summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2019-06-12 21:27:02 +0800
committerIru Cai <mytbk920423@gmail.com>2019-11-17 15:10:42 +0800
commitf9f245d531427556200416b9d2c880df71931204 (patch)
tree315628fe9ea2930620dfb3cee00b4ca00f3d0e43
parentbe023de5ad63ea426ca7a7bc75dc29daffec8647 (diff)
downloadcoreboot-f9f245d531427556200416b9d2c880df71931204.tar.xz
import mrc.asm
-rw-r--r--src/northbridge/intel/haswell/Makefile.inc8
-rw-r--r--src/northbridge/intel/haswell/mrc.asm59709
-rw-r--r--src/northbridge/intel/haswell/raminit.c16
3 files changed, 59716 insertions, 17 deletions
diff --git a/src/northbridge/intel/haswell/Makefile.inc b/src/northbridge/intel/haswell/Makefile.inc
index b9863367c9..fa1b428921 100644
--- a/src/northbridge/intel/haswell/Makefile.inc
+++ b/src/northbridge/intel/haswell/Makefile.inc
@@ -31,11 +31,9 @@ romstage-y += report_platform.c
smm-y += finalize.c
-# We don't ship that, but booting without it is bound to fail
-cbfs-files-$(CONFIG_HAVE_MRC) += mrc.bin
-mrc.bin-file := $(call strip_quotes,$(CONFIG_MRC_FILE))
-mrc.bin-position := 0xfffa0000
-mrc.bin-type := mrc
+romstage-libs += $(obj)/mrc.o
+$(obj)/mrc.o: $(src)/northbridge/intel/haswell/mrc.asm
+ nasm -f elf32 -o $@ $<
postcar-y += memmap.c
diff --git a/src/northbridge/intel/haswell/mrc.asm b/src/northbridge/intel/haswell/mrc.asm
new file mode 100644
index 0000000000..a2cc980e9c
--- /dev/null
+++ b/src/northbridge/intel/haswell/mrc.asm
@@ -0,0 +1,59709 @@
+;; Generated with r2dumpbin (https://github.com/mytbk/r2dumpbin)
+
+bits 32
+
+global mrc_entry
+
+mrc_entry:
+mov ecx, esp
+mov esp, 0xff800000
+push ecx
+push eax
+mov al, 1
+out 0x80, al
+cld
+call fcn_fffc18c8 ; call 0xfffc18c8
+pop ecx
+pop ecx
+mov esp, ecx
+push eax
+mov al, 2
+out 0x80, al
+pop eax
+ret
+
+loc_fffa001e:
+db 0x00
+db 0x00
+
+fcn_fffa0020:
+push ebp
+add eax, 0xdf
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 8]
+mov dword [ebp - 0x10], eax
+mov ecx, dword [edx + 9]
+
+loc_fffa0037:
+imul eax, ebx, 0x2fa
+mov esi, dword [ebp - 0x10]
+lea eax, [esi + eax + 5]
+xor esi, esi
+mov dword [ebp - 0x14], eax
+
+loc_fffa0049:
+imul eax, esi, 0x14f
+mov edi, dword [ebp - 0x14]
+lea eax, [edi + eax + 8]
+movzx edi, byte [ecx + 0x10]
+mov word [eax + 0x128], di
+mov di, word [ecx + 8]
+mov word [eax + 0x12a], di
+mov di, word [ecx + 0x20]
+mov word [eax + 0x12c], di
+mov di, word [ecx + 0x1e]
+mov word [eax + 0x12e], di
+mov di, word [ecx + 0xe]
+mov word [eax + 0x130], di
+mov di, word [ecx + 0x1c]
+mov word [eax + 0x132], di
+mov di, word [ecx + 0xa]
+mov word [eax + 0x134], di
+mov di, word [ecx + 0x22]
+mov word [eax + 0x136], di
+mov di, word [ecx + 0x14]
+mov word [eax + 0x138], di
+mov di, word [ecx + 0xc]
+mov word [eax + 0x13e], di
+cmp byte [edx], 5
+jbe short loc_fffa00d6 ; jbe 0xfffa00d6
+mov di, word [ecx + 0x68]
+mov word [eax + 0x140], di
+jmp short loc_fffa00df ; jmp 0xfffa00df
+
+loc_fffa00d6:
+mov word [eax + 0x140], 0
+
+loc_fffa00df:
+mov di, word [ecx + 0x16]
+inc esi
+mov word [eax + 0x142], di
+mov di, word [ecx + 0x1a]
+mov word [eax + 0x148], di
+mov di, word [ecx + 0x12]
+mov word [eax + 0x14a], di
+cmp esi, 2
+mov di, word [ecx + 0x18]
+mov word [eax + 0x14c], di
+jne loc_fffa0049 ; jne 0xfffa0049
+inc ebx
+cmp ebx, 2
+jne loc_fffa0037 ; jne 0xfffa0037
+pop eax
+pop edx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa0126:
+push ebp
+or edx, 0x80000000
+mov ebp, esp
+push edi
+push esi
+push ebx
+push esi
+mov dword [ebp - 0x10], 0xa
+
+loc_fffa013a:
+mov dword [eax + 0x6c04], ecx
+lea esi, [eax + 0x6c00]
+mov dword [eax + 0x6c00], edx
+mov ebx, 0x64
+
+loc_fffa0151:
+mov edi, dword [esi]
+test edi, edi
+jns short loc_fffa015a ; jns 0xfffa015a
+dec ebx
+jne short loc_fffa0151 ; jne 0xfffa0151
+
+loc_fffa015a:
+mov bx, word [eax + 0x6c00]
+cmp bx, 0x40
+je short loc_fffa016c ; je 0xfffa016c
+dec dword [ebp - 0x10]
+jne short loc_fffa013a ; jne 0xfffa013a
+
+loc_fffa016c:
+pop ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa0172:
+push ebp
+mov edx, eax
+shl edx, 0x14
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+mov esi, eax
+push ebx
+lea esp, [esp - 0x1c]
+mov dword [ebp - 0x1c], edx
+xor edx, edx
+
+loc_fffa018a:
+mov ecx, dword [0xf0000060]
+mov ebx, edi
+shl ebx, 0xf
+and ecx, 0xfc000000
+add ecx, dword [ebp - 0x1c]
+add ecx, ebx
+mov cx, word [ecx]
+inc cx
+je loc_fffa0236 ; je 0xfffa0236
+mov ecx, dword [0xf0000060]
+add ebx, dword [ebp - 0x1c]
+and ecx, 0xfc000000
+lea ecx, [ebx + ecx + 0xa]
+mov cx, word [ecx]
+cmp cx, 0x604
+jne short loc_fffa0236 ; jne 0xfffa0236
+mov edx, dword [0xf0000060]
+mov ecx, esi
+and edx, 0xfc000000
+inc eax
+lea edx, [ebx + edx + 0x18]
+mov byte [edx], cl
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+lea edx, [ebx + edx + 0x19]
+mov byte [edx], al
+mov edx, dword [0xf0000060]
+movzx eax, al
+and edx, 0xfc000000
+mov ecx, eax
+shl ecx, 0x14
+lea edx, [ebx + edx + 0x1a]
+mov byte [edx], 0xff
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+add edx, ecx
+mov word [edx], 0
+call fcn_fffa0172 ; call 0xfffa0172
+mov dl, al
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [ebx + eax + 0x1a]
+mov byte [eax], dl
+mov al, dl
+
+loc_fffa0236:
+inc edi
+cmp edi, 0x20
+jne loc_fffa018a ; jne 0xfffa018a
+test dl, dl
+cmovne esi, edx
+lea esp, [esp + 0x1c]
+pop ebx
+mov eax, esi
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa0250:
+push ebp
+shl edx, 0xf
+shl ecx, 0xc
+mov ebp, esp
+push edi
+shl eax, 0x14
+push esi
+lea esi, [ecx + edx]
+add edx, eax
+push ebx
+push ebx
+mov ebx, dword [ebp + 8]
+mov dword [ebx], 0
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+mov dword [ebp - 0x10], esi
+lea edx, [ebx + edx + 0xb]
+add ecx, edx
+mov dl, byte [ecx]
+mov ecx, 0x10
+cmp dl, 6
+je loc_fffa0369 ; je 0xfffa0369
+
+loc_fffa0293:
+mov ebx, dword [0xf0000060]
+mov edx, dword [ebp - 0x10]
+and ebx, 0xfc000000
+add edx, ecx
+add ebx, eax
+add ebx, edx
+mov ebx, dword [ebx]
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+add esi, eax
+add esi, edx
+mov esi, dword [esi]
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+add esi, eax
+add esi, edx
+mov dword [esi], 0
+mov edi, dword [0xf0000060]
+mov esi, dword [0xf0000060]
+and edi, 0xfc000000
+and esi, 0xfc000000
+add edi, eax
+add esi, eax
+add edi, edx
+add esi, edx
+mov esi, dword [esi]
+mov dword [edi], 0xffffffff
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+add esi, eax
+add esi, edx
+mov esi, dword [esi]
+cmp ebx, esi
+mov esi, dword [0xf0000060]
+jne short loc_fffa0322 ; jne 0xfffa0322
+and esi, 0xfc000000
+add esi, eax
+add esi, edx
+jmp short loc_fffa0331 ; jmp 0xfffa0331
+
+loc_fffa0322:
+and esi, 0xfc000000
+add esi, eax
+add esi, edx
+test bl, 1
+je short loc_fffa0335 ; je 0xfffa0335
+
+loc_fffa0331:
+mov dword [esi], ebx
+jmp short loc_fffa035d ; jmp 0xfffa035d
+
+loc_fffa0335:
+mov edi, dword [ebp + 8]
+mov esi, dword [esi]
+and esi, 0xfffffff0
+sub dword [edi], esi
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+add esi, eax
+add esi, edx
+lea edx, [ecx + 4]
+mov dword [esi], ebx
+and ebx, 6
+cmp ebx, 4
+cmove ecx, edx
+
+loc_fffa035d:
+add ecx, 4
+cmp ecx, 0x24
+jbe loc_fffa0293 ; jbe 0xfffa0293
+
+loc_fffa0369:
+pop edi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa036f: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea ecx, [ebp - 0xc]
+lea esp, [esp - 0x1c]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov esi, dword [eax + 0x48]
+mov edi, dword [eax + 0x4c]
+mov eax, dword [0xff7d7538]
+and esi, 0xfffffffe
+mov edx, dword [eax]
+push ecx
+push 0
+push 0
+push ref_fffcd4e4 ; push 0xfffcd4e4
+push eax
+call dword [edx + 0x20] ; ucall
+mov eax, dword [esi + 0x5f00]
+or ah, 6
+mov dword [esi + 0x5f00], eax
+mov al, byte [esi + 0x5da8]
+or eax, 3
+mov byte [esi + 0x5da8], al
+lea esp, [ebp - 8]
+pop esi
+xor eax, eax
+pop edi
+pop ebp
+ret
+
+fcn_fffa03ca: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov esi, dword [ebp + 0x10]
+mov ebx, dword [ebp + 0xc]
+add esi, ebx
+jmp short loc_fffa03ef ; jmp 0xfffa03ef
+
+loc_fffa03d9: ; not directly referenced
+movzx edx, byte [ebx]
+mov eax, dword [0xff7d753c]
+inc ebx
+test eax, eax
+je short loc_fffa03ef ; je 0xfffa03ef
+sub esp, 0xc
+push edx
+call eax ; ucall
+add esp, 0x10
+
+loc_fffa03ef: ; not directly referenced
+cmp ebx, esi
+jne short loc_fffa03d9 ; jne 0xfffa03d9
+lea esp, [ebp - 8]
+or eax, 0xffffffff
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffa03fd: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov eax, dword [eax]
+cmp dword [eax - 4], 0xfeadb00b
+je short loc_fffa0410 ; je 0xfffa0410
+
+loc_fffa040e: ; not directly referenced
+jmp short loc_fffa040e ; jmp 0xfffa040e
+
+loc_fffa0410: ; not directly referenced
+mov edx, dword [eax + 0x254]
+mov eax, dword [ebp + 0xc]
+mov dword [eax], edx
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa041f: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov eax, dword [eax]
+cmp dword [eax - 4], 0xfeadb00b
+je short loc_fffa0432 ; je 0xfffa0432
+
+loc_fffa0430: ; not directly referenced
+jmp short loc_fffa0430 ; jmp 0xfffa0430
+
+loc_fffa0432: ; not directly referenced
+mov edx, dword [eax + 0x68]
+mov eax, dword [ebp + 0xc]
+mov dword [eax], edx
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa043e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov eax, dword [ebp + 8]
+push ebx
+mov eax, dword [eax]
+cmp dword [eax - 4], 0xfeadb00b
+jne short loc_fffa0462 ; jne 0xfffa0462
+lea edx, [eax - 4]
+mov ebx, 3
+mov eax, dword [eax + 0x250]
+jmp short loc_fffa0464 ; jmp 0xfffa0464
+
+loc_fffa0462: ; not directly referenced
+jmp short loc_fffa0462 ; jmp 0xfffa0462
+
+loc_fffa0464: ; not directly referenced
+cmp eax, 0x13
+ja short loc_fffa0494 ; ja 0xfffa0494
+inc eax
+mov esi, dword [ebp + 0xc]
+imul ecx, eax, 0xc
+mov dword [edx + 0x254], eax
+lea edi, [edx + ecx + 0x158]
+mov ecx, ebx
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov esi, dword [ebp + 0xc]
+mov ecx, dword [esi]
+add esi, 0xc
+test ecx, ecx
+mov dword [ebp + 0xc], esi
+jns short loc_fffa0464 ; jns 0xfffa0464
+xor eax, eax
+jmp short loc_fffa0499 ; jmp 0xfffa0499
+
+loc_fffa0494: ; not directly referenced
+mov eax, 0x80000009
+
+loc_fffa0499: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa049e: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [eax], 0
+mov eax, dword [ebp + 0x14]
+mov dword [eax], 0
+mov eax, dword [ebp + 0x18]
+mov dword [eax], 0
+mov eax, dword [ebp + 0x1c]
+mov dword [eax], 0
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa04c9: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [eax], 0x1000000
+mov dword [eax + 4], 0
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa04e0: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa04e7: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa04ee: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa04f5: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+mov eax, dword [ebp + 0x18]
+out dx, ax
+pop ebp
+ret
+
+fcn_fffa0502: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+pop ebp
+mov eax, dword [eax]
+ret
+
+fcn_fffa050c: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+pop ebp
+mov al, byte [eax]
+ret
+
+fcn_fffa0516:
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov dword [ebp - 0x20], edx
+mov word [ebp - 0x1a], cx
+call fcn_fffc908a ; call 0xfffc908a
+mov ebx, eax
+call fcn_fffc9077 ; call 0xfffc9077
+dec eax
+sete dl
+cmp ebx, 0x306c0
+sete al
+and dl, al
+mov ax, word [ebp - 0x1a]
+mov byte [ebp - 0x1b], dl
+je short loc_fffa0570 ; je 0xfffa0570
+and eax, 0xfffffffd
+mov dx, word [ebp - 0x1a]
+cmp ax, 0x21
+sete al
+sub edx, 0x20
+movzx eax, al
+cmp dx, 1
+ja loc_fffa0608 ; ja 0xfffa0608
+jmp near loc_fffa05fc ; jmp 0xfffa05fc
+
+loc_fffa0570:
+and eax, 0xfffffffd
+mov dx, word [ebp - 0x1a]
+cmp ax, 0x14
+sete al
+sub edx, 0x13
+movzx eax, al
+cmp dx, 1
+ja short loc_fffa05e0 ; ja 0xfffa05e0
+jmp short loc_fffa05ea ; jmp 0xfffa05ea
+
+loc_fffa058c:
+movzx edx, word [ebp - 0x1a]
+mov ecx, dword [ebp - 0x20]
+mov eax, edi
+call fcn_fffa0126 ; call 0xfffa0126
+mov edx, esi
+mov ecx, dword [ebp + 8]
+mov eax, edi
+call fcn_fffa0126 ; call 0xfffa0126
+cmp byte [ebp - 0x1b], 0
+mov esi, dword [edi + 0x6c04]
+mov ecx, ebx
+mov edx, 2
+jne short loc_fffa05be ; jne 0xfffa05be
+mov edx, 3
+
+loc_fffa05be:
+mov eax, edi
+call fcn_fffa0126 ; call 0xfffa0126
+jmp short loc_fffa061a ; jmp 0xfffa061a
+
+loc_fffa05c7:
+mov ecx, ebx
+mov edx, 1
+jmp short loc_fffa05d7 ; jmp 0xfffa05d7
+
+loc_fffa05d0:
+mov ecx, ebx
+mov edx, 2
+
+loc_fffa05d7:
+mov eax, edi
+call fcn_fffa0126 ; call 0xfffa0126
+jmp short loc_fffa058c ; jmp 0xfffa058c
+
+loc_fffa05e0:
+cmp eax, 1
+sbb ebx, ebx
+add ebx, 4
+jmp short loc_fffa05f2 ; jmp 0xfffa05f2
+
+loc_fffa05ea:
+cmp eax, 1
+sbb ebx, ebx
+add ebx, 2
+
+loc_fffa05f2:
+cmp eax, 1
+sbb esi, esi
+add esi, 8
+jmp short loc_fffa05d0 ; jmp 0xfffa05d0
+
+loc_fffa05fc:
+cmp eax, 1
+sbb ebx, ebx
+add ebx, 7
+mov esi, ebx
+jmp short loc_fffa05c7 ; jmp 0xfffa05c7
+
+loc_fffa0608:
+cmp eax, 1
+sbb ebx, ebx
+add ebx, 9
+cmp eax, 1
+sbb esi, esi
+add esi, 7
+jmp short loc_fffa05c7 ; jmp 0xfffa05c7
+
+loc_fffa061a:
+lea esp, [esp + 0x1c]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa0625:
+push ebp
+mov ebp, esp
+push edi
+mov edi, 0x10100
+push esi
+push ebx
+lea esp, [esp - 0x7c]
+mov dword [ebp - 0x44], edx
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x5c], eax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov eax, dword [eax + 0x48]
+mov dword [ebp - 0x6c], eax
+call fcn_fffc908a ; call 0xfffc908a
+mov dword [ebp - 0x70], eax
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov dx, word [edx + 0x50]
+or edx, 2
+mov word [eax + 0x50], dx
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov byte [ebp - 0x40], 0
+mov ax, word [eax + 0x10000]
+mov dword [ebp - 0x2c], 0
+inc ax
+setne byte [ebp - 0x4b]
+xor ebx, ebx
+jmp near loc_fffa0743 ; jmp 0xfffa0743
+
+loc_fffa06aa:
+movzx esi, bl
+mov eax, dword [0xf0000060]
+shl esi, 0xc
+and eax, 0xfc000000
+lea eax, [esi + eax + 0xe0000]
+mov ax, word [eax]
+inc ax
+je short loc_fffa0742 ; je 0xfffa0742
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [esi + eax + 0xe0018]
+mov dword [eax], edi
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [esi + eax + 0xe0019]
+movzx eax, byte [eax]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov ecx, eax
+shl ecx, 0x14
+lea edx, [esi + edx + 0xe001a]
+mov byte [edx], 0xff
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+add edx, ecx
+mov word [edx], 0
+call fcn_fffa0172 ; call 0xfffa0172
+mov byte [ebp - 0x40], al
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov dl, byte [ebp - 0x40]
+movzx edi, dl
+inc edi
+shl edi, 8
+lea eax, [esi + eax + 0xe001a]
+mov byte [eax], dl
+
+loc_fffa0742:
+inc ebx
+
+loc_fffa0743:
+call fcn_fffc5da5 ; call 0xfffc5da5
+cmp bl, al
+jb loc_fffa06aa ; jb 0xfffa06aa
+mov dword [ebp - 0x60], 0
+mov dword [ebp - 0x50], 0
+mov byte [ebp - 0x4a], 0
+mov byte [ebp - 0x48], 1
+jmp near loc_fffa0833 ; jmp 0xfffa0833
+
+loc_fffa076b:
+mov eax, dword [0xf0000060]
+mov ebx, esi
+shl ebx, 0xf
+and eax, 0xfc000000
+add eax, dword [ebp - 0x54]
+mov dword [ebp - 0x58], ebx
+add eax, ebx
+mov ax, word [eax]
+inc ax
+je loc_fffa0826 ; je 0xfffa0826
+mov eax, dword [0xf0000060]
+mov edi, dword [ebp - 0x54]
+add edi, ebx
+and eax, 0xfc000000
+mov byte [ebp - 0x49], 0
+lea eax, [edi + eax + 0xe]
+mov bl, byte [eax]
+sar bl, 7
+and ebx, 7
+
+loc_fffa07ac:
+movzx ecx, byte [ebp - 0x49]
+mov eax, dword [0xf0000060]
+mov edx, ecx
+and eax, 0xfc000000
+shl edx, 0xc
+add eax, dword [ebp - 0x54]
+mov dword [ebp - 0x78], edx
+add edx, edi
+mov dword [ebp - 0x64], edx
+mov edx, dword [ebp - 0x78]
+add edx, dword [ebp - 0x58]
+add eax, edx
+mov ax, word [eax]
+inc ax
+je short loc_fffa081e ; je 0xfffa081e
+sub esp, 0xc
+lea eax, [ebp - 0x2c]
+push eax
+mov edx, esi
+mov eax, dword [ebp - 0x68]
+call fcn_fffa0250 ; call 0xfffa0250
+mov edx, dword [ebp - 0x2c]
+add dword [ebp - 0x60], edx
+mov eax, dword [0xf0000060]
+mov ecx, dword [ebp - 0x64]
+and eax, 0xfc000000
+add esp, 0x10
+lea eax, [ecx + eax + 0xa]
+mov ax, word [eax]
+cmp ax, 0x300
+jne short loc_fffa081e ; jne 0xfffa081e
+cmp byte [ebp - 0x4a], 1
+je short loc_fffa081e ; je 0xfffa081e
+mov dword [ebp - 0x50], 2
+mov byte [ebp - 0x4a], 1
+
+loc_fffa081e:
+inc byte [ebp - 0x49]
+cmp byte [ebp - 0x49], bl
+jbe short loc_fffa07ac ; jbe 0xfffa07ac
+
+loc_fffa0826:
+inc esi
+cmp esi, 0x20
+jne loc_fffa076b ; jne 0xfffa076b
+inc byte [ebp - 0x48]
+
+loc_fffa0833:
+mov al, byte [ebp - 0x40]
+cmp byte [ebp - 0x48], al
+ja short loc_fffa08a8 ; ja 0xfffa08a8
+movzx eax, byte [ebp - 0x48]
+xor esi, esi
+mov ebx, eax
+mov dword [ebp - 0x68], eax
+shl ebx, 0x14
+mov dword [ebp - 0x54], ebx
+jmp near loc_fffa076b ; jmp 0xfffa076b
+
+loc_fffa0851:
+mov ecx, dword [0xf0000060]
+mov ebx, eax
+shl ebx, 0xf
+and ecx, 0xfc000000
+add ecx, edx
+add ecx, ebx
+mov cx, word [ecx]
+inc cx
+je short loc_fffa089f ; je 0xfffa089f
+mov ecx, dword [0xf0000060]
+add ebx, edx
+and ecx, 0xfc000000
+lea ecx, [ebx + ecx + 0xa]
+mov cx, word [ecx]
+cmp cx, 0x604
+jne short loc_fffa089f ; jne 0xfffa089f
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+lea ecx, [ebx + ecx + 0x18]
+mov dword [ecx], 0
+
+loc_fffa089f:
+inc eax
+cmp eax, 0x20
+jne short loc_fffa0851 ; jne 0xfffa0851
+dec byte [ebp - 0x40]
+
+loc_fffa08a8:
+cmp byte [ebp - 0x40], 0
+je short loc_fffa08db ; je 0xfffa08db
+movzx edx, byte [ebp - 0x40]
+xor eax, eax
+shl edx, 0x14
+jmp short loc_fffa0851 ; jmp 0xfffa0851
+
+loc_fffa08b9:
+movzx eax, bl
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+inc ebx
+shl eax, 0xc
+lea eax, [edx + eax + 0xe0018]
+mov dword [eax], 0
+jmp short loc_fffa08dd ; jmp 0xfffa08dd
+
+loc_fffa08db:
+xor ebx, ebx
+
+loc_fffa08dd:
+call fcn_fffc5da5 ; call 0xfffc5da5
+cmp bl, al
+jb short loc_fffa08b9 ; jb 0xfffa08b9
+mov edx, dword [ebp - 0x44]
+lea edi, [ebp - 0x27]
+mov esi, ref_fffc9e28 ; mov esi, 0xfffc9e28
+mov ecx, 0xf
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov eax, dword [edx + 5]
+lea ebx, [ebp - 0x27]
+lea esi, [ebp - 0x18]
+mov al, byte [eax + 6]
+mov byte [ebp - 0x64], al
+mov eax, dword [edx + 0xd]
+mov al, byte [eax + 4]
+mov dword [ebp - 0x2c], 0
+mov byte [ebp - 0x68], al
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov ax, word [eax + 0x54]
+and eax, 0xe
+mov word [ebp - 0x58], ax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov dword [ebp - 0x48], ebx
+mov dword [ebp - 0x3c], esi
+mov dword [ebp - 0x40], ebx
+mov byte [ebp - 0x54], 0xff
+mov ax, word [eax + 0x10000]
+inc ax
+setne byte [ebp - 0x71]
+
+loc_fffa0950:
+mov ebx, dword [ebp - 0x40]
+mov esi, dword [ebp - 0x40]
+movzx edx, byte [ebx]
+movzx ecx, byte [ebx + 1]
+mov bl, byte [ebx + 2]
+mov byte [ebp - 0x4a], bl
+mov ebx, dword [ebp - 0x58]
+test word [esi + 3], bx
+je loc_fffa0c37 ; je 0xfffa0c37
+shl edx, 0x14
+mov eax, dword [0xf0000060]
+shl ecx, 0xf
+and eax, 0xfc000000
+add ecx, edx
+movzx edx, byte [ebp - 0x4a]
+shl edx, 0xc
+lea edi, [ecx + edx]
+lea eax, [edi + eax + 0xba]
+mov al, byte [eax]
+test al, 0x40
+je loc_fffa0c37 ; je 0xfffa0c37
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea edx, [edi + eax + 0x18]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [edi + eax + 0x18]
+mov eax, dword [eax]
+and eax, 0xff0000ff
+or eax, 0x10100
+mov dword [edx], eax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov word [eax + 0x100000], 0
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov ax, word [eax + 0x100000]
+inc ax
+je loc_fffa0c37 ; je 0xfffa0c37
+mov eax, dword [0xf0000060]
+xor esi, esi
+and eax, 0xfc000000
+mov bl, byte [eax + 0x10000e]
+sar bl, 7
+and ebx, 7
+
+loc_fffa0a0b:
+mov edx, esi
+mov eax, dword [0xf0000060]
+movzx ecx, dl
+and eax, 0xfc000000
+mov edx, ecx
+shl edx, 0xc
+lea eax, [eax + edx + 0x100000]
+mov ax, word [eax]
+inc ax
+je short loc_fffa0a49 ; je 0xfffa0a49
+sub esp, 0xc
+lea eax, [ebp - 0x2c]
+push eax
+xor edx, edx
+mov eax, 1
+call fcn_fffa0250 ; call 0xfffa0250
+mov eax, dword [ebp - 0x2c]
+add esp, 0x10
+add dword [ebp - 0x34], eax
+
+loc_fffa0a49:
+inc esi
+mov edx, esi
+cmp dl, bl
+jbe short loc_fffa0a0b ; jbe 0xfffa0a0b
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov al, byte [eax + 0x10000b]
+cmp al, 3
+jne short loc_fffa0a95 ; jne 0xfffa0a95
+cmp byte [ebp - 0x68], 0
+jne short loc_fffa0a86 ; jne 0xfffa0a86
+cmp byte [ebp - 0x64], 0
+sete al
+test byte [ebp - 0x71], al
+je short loc_fffa0a7b ; je 0xfffa0a7b
+jmp near loc_fffa0c12 ; jmp 0xfffa0c12
+
+loc_fffa0a7b:
+cmp dword [ebp - 0x50], 2
+jne short loc_fffa0a86 ; jne 0xfffa0a86
+jmp near loc_fffa0c12 ; jmp 0xfffa0c12
+
+loc_fffa0a86:
+cmp dword [ebp - 0x50], 1
+je loc_fffa0c0b ; je 0xfffa0c0b
+jmp near loc_fffa0be0 ; jmp 0xfffa0be0
+
+loc_fffa0a95:
+cmp al, 6
+jne loc_fffa0c12 ; jne 0xfffa0c12
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [edi + eax + 0x19]
+mov byte [eax], 1
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [edi + eax + 0x1a]
+mov byte [eax], 0xff
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov word [eax + 0x100000], 0
+mov eax, 1
+call fcn_fffa0172 ; call 0xfffa0172
+mov byte [ebp - 0x49], al
+mov al, 1
+jmp short loc_fffa0b47 ; jmp 0xfffa0b47
+
+loc_fffa0ae3:
+mov byte [ebp - 0x4c], dl
+mov esi, edx
+shl esi, 0xf
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+mov dword [ebp - 0x80], esi
+add ebx, ecx
+add ebx, dword [ebp - 0x80]
+add esi, ecx
+mov dword [ebp - 0x78], esi
+mov bx, word [ebx]
+inc bx
+je short loc_fffa0b40 ; je 0xfffa0b40
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+lea ebx, [esi + ebx + 0xa]
+mov bx, word [ebx]
+cmp bx, 0x300
+jne short loc_fffa0b40 ; jne 0xfffa0b40
+sub esp, 0xc
+lea ecx, [ebp - 0x34]
+push ecx
+movzx edx, dl
+xor ecx, ecx
+movzx eax, al
+mov bl, 1
+call fcn_fffa0250 ; call 0xfffa0250
+add esp, 0x10
+jmp short loc_fffa0bb1 ; jmp 0xfffa0bb1
+
+loc_fffa0b40:
+inc edx
+cmp edx, 0x20
+jne short loc_fffa0ae3 ; jne 0xfffa0ae3
+inc eax
+
+loc_fffa0b47:
+cmp al, byte [ebp - 0x49]
+ja short loc_fffa0b56 ; ja 0xfffa0b56
+movzx ecx, al
+xor edx, edx
+shl ecx, 0x14
+jmp short loc_fffa0ae3 ; jmp 0xfffa0ae3
+
+loc_fffa0b56:
+xor ebx, ebx
+jmp short loc_fffa0bb1 ; jmp 0xfffa0bb1
+
+loc_fffa0b5a:
+mov ecx, dword [0xf0000060]
+mov esi, eax
+shl esi, 0xf
+and ecx, 0xfc000000
+add ecx, edx
+add ecx, esi
+mov cx, word [ecx]
+inc cx
+je short loc_fffa0ba8 ; je 0xfffa0ba8
+mov ecx, dword [0xf0000060]
+add esi, edx
+and ecx, 0xfc000000
+lea ecx, [esi + ecx + 0xa]
+mov cx, word [ecx]
+cmp cx, 0x604
+jne short loc_fffa0ba8 ; jne 0xfffa0ba8
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+lea ecx, [esi + ecx + 0x18]
+mov dword [ecx], 0
+
+loc_fffa0ba8:
+inc eax
+cmp eax, 0x20
+jne short loc_fffa0b5a ; jne 0xfffa0b5a
+dec byte [ebp - 0x49]
+
+loc_fffa0bb1:
+cmp byte [ebp - 0x49], 0
+je short loc_fffa0bc2 ; je 0xfffa0bc2
+movzx edx, byte [ebp - 0x49]
+xor eax, eax
+shl edx, 0x14
+jmp short loc_fffa0b5a ; jmp 0xfffa0b5a
+
+loc_fffa0bc2:
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+dec bl
+lea eax, [edi + eax + 0x18]
+mov dword [eax], 0
+jne short loc_fffa0c12 ; jne 0xfffa0c12
+cmp dword [ebp - 0x50], 1
+je short loc_fffa0c12 ; je 0xfffa0c12
+
+loc_fffa0be0:
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea edx, [edi + eax + 0x3e]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [edi + eax + 0x3e]
+mov ax, word [eax]
+or eax, 0x18
+mov word [edx], ax
+mov bl, byte [ebp - 0x4a]
+mov byte [ebp - 0x54], bl
+
+loc_fffa0c0b:
+mov dword [ebp - 0x50], 1
+
+loc_fffa0c12:
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea edx, [edi + eax + 0x18]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+lea eax, [edi + eax + 0x18]
+mov eax, dword [eax]
+and eax, 0xff0000ff
+mov dword [edx], eax
+
+loc_fffa0c37:
+add dword [ebp - 0x40], 5
+mov esi, dword [ebp - 0x3c]
+cmp dword [ebp - 0x40], esi
+jne loc_fffa0950 ; jne 0xfffa0950
+xor eax, eax
+cmp byte [ebp - 0x54], 0xff
+
+loc_fffa0c4d:
+jne short loc_fffa0cb3 ; jne 0xfffa0cb3
+mov edx, dword [ebp - 0x44]
+mov eax, dword [edx + 5]
+mov ebx, dword [eax + 8]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov edx, ebx
+or edx, 4
+mov dword [eax + 0x10010], edx
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov dword [eax + 0x10014], 0
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov dx, word [edx + 0x10004]
+or edx, 6
+cmp byte [ebp - 0x4b], 0
+mov word [eax + 0x10004], dx
+jne short loc_fffa0d08 ; jne 0xfffa0d08
+jmp near loc_fffa0eae ; jmp 0xfffa0eae
+
+loc_fffa0cb3:
+cmp byte [ebp - 0x54], al
+je short loc_fffa0cfc ; je 0xfffa0cfc
+mov esi, dword [ebp - 0x48]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+movzx ebx, byte [esi + 1]
+movzx ecx, byte [esi]
+shl ecx, 0x14
+shl ebx, 0xf
+add ebx, ecx
+movzx ecx, byte [esi + 2]
+shl ecx, 0xc
+add ecx, ebx
+lea ebx, [ecx + edx + 0x3e]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+lea edx, [ecx + edx + 0x3e]
+mov dx, word [edx]
+or edx, 4
+mov word [ebx], dx
+
+loc_fffa0cfc:
+inc eax
+add dword [ebp - 0x48], 5
+cmp al, 3
+jmp near loc_fffa0c4d ; jmp 0xfffa0c4d
+
+loc_fffa0d08:
+mov edx, dword [ebp - 0x44]
+cmp dword [ebp - 0x50], 0
+mov eax, dword [edx + 5]
+je short loc_fffa0d1a ; je 0xfffa0d1a
+cmp byte [eax + 6], 0
+jne short loc_fffa0d20 ; jne 0xfffa0d20
+
+loc_fffa0d1a:
+cmp byte [eax + 5], 0
+jne short loc_fffa0d2a ; jne 0xfffa0d2a
+
+loc_fffa0d20:
+cmp byte [eax + 5], 1
+jne loc_fffa0eae ; jne 0xfffa0eae
+
+loc_fffa0d2a:
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov esi, dword [ebp - 0x44]
+mov dx, word [edx + 0x50]
+and dl, 7
+mov word [eax + 0x50], dx
+mov eax, dword [0xf0000060]
+mov ecx, dword [esi + 5]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov cl, byte [ecx + 4]
+shl ecx, 3
+mov dl, byte [edx + 0x50]
+or edx, ecx
+mov byte [eax + 0x50], dl
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov ax, word [eax + 0x50]
+and ah, 0xfc
+or ah, 2
+mov word [edx + 0x50], ax
+mov eax, dword [esi + 5]
+mov al, byte [eax + 7]
+cmp al, 1
+jne short loc_fffa0dc4 ; jne 0xfffa0dc4
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov dl, byte [edx + 0x10062]
+and edx, 0xfffffff9
+jmp short loc_fffa0e11 ; jmp 0xfffa0e11
+
+loc_fffa0dc4:
+cmp al, 2
+jne short loc_fffa0df2 ; jne 0xfffa0df2
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov al, byte [eax + 0x10062]
+and eax, 0xfffffff9
+or eax, 2
+mov byte [edx + 0x10062], al
+jmp short loc_fffa0e17 ; jmp 0xfffa0e17
+
+loc_fffa0df2:
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov dl, byte [edx + 0x10062]
+or edx, 6
+
+loc_fffa0e11:
+mov byte [eax + 0x10062], dl
+
+loc_fffa0e17:
+mov edx, dword [ebp - 0x44]
+mov eax, dword [edx + 5]
+cmp byte [eax + 6], 0
+je short loc_fffa0e48 ; je 0xfffa0e48
+cmp dword [ebp - 0x50], 0
+je short loc_fffa0e48 ; je 0xfffa0e48
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov dx, word [edx + 0x50]
+or edx, 2
+jmp short loc_fffa0e65 ; jmp 0xfffa0e65
+
+loc_fffa0e48:
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov dx, word [edx + 0x50]
+and edx, 0xfffffffd
+
+loc_fffa0e65:
+mov word [eax + 0x50], dx
+sub esp, 0xc
+lea eax, [ebp - 0x30]
+xor ecx, ecx
+push eax
+mov edx, 2
+xor eax, eax
+call fcn_fffa0250 ; call 0xfffa0250
+mov edx, dword [ebp - 0x44]
+add esp, 0x10
+cmp byte [edx], 0xb
+jbe loc_fffa0ff3 ; jbe 0xfffa0ff3
+mov eax, dword [edx + 5]
+cmp byte [eax + 0xc], 1
+jne loc_fffa0ff3 ; jne 0xfffa0ff3
+mov eax, dword [ebx + 0xc7204]
+or eax, 8
+mov dword [ebx + 0xc7204], eax
+jmp near loc_fffa0ff3 ; jmp 0xfffa0ff3
+
+loc_fffa0eae:
+mov ecx, dword [ebp - 0x5c]
+sub esp, 0xc
+lea edx, [ebp - 0x2c]
+mov eax, dword [ecx]
+push edx
+push 0
+push 0
+push ref_fffcd4b4 ; push 0xfffcd4b4
+push ecx
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+cmp dword [ebp - 0x70], 0x40650
+je short loc_fffa0f2f ; je 0xfffa0f2f
+
+loc_fffa0ed3:
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov ax, word [eax + 0x50]
+and ax, 0xfc05
+or eax, 2
+mov word [edx + 0x50], ax
+mov edx, dword [ebp - 0x44]
+mov eax, dword [edx + 5]
+mov word [eax + 2], 0
+mov eax, dword [edx + 5]
+mov byte [eax + 4], 0
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov dl, byte [edx + 0x54]
+and edx, 0xffffffef
+mov byte [eax + 0x54], dl
+jmp near loc_fffa0ff3 ; jmp 0xfffa0ff3
+
+loc_fffa0f2f:
+mov eax, dword [ebx + 0x130040]
+lea esi, [ebx + 0x130040]
+or eax, 0x80000000
+cmp byte [ebp - 0x4b], 0
+mov dword [ebx + 0x130040], eax
+jne short loc_fffa0f83 ; jne 0xfffa0f83
+
+loc_fffa0f4c:
+mov ebx, dword [ebp - 0x6c]
+and ebx, 0xfffffffe
+mov eax, dword [ebx + 0x5f0c]
+lea esi, [ebx + 0x5f0c]
+or eax, 1
+mov dword [ebx + 0x5f0c], eax
+mov eax, dword [ebp - 0x2c]
+push edx
+push 1
+push eax
+push dword [ebp - 0x5c]
+call dword [eax + 4] ; ucall
+add esp, 0x10
+cmp byte [ebp - 0x4b], 0
+je loc_fffa0ed3 ; je 0xfffa0ed3
+jmp short loc_fffa0fb9 ; jmp 0xfffa0fb9
+
+loc_fffa0f83:
+mov edx, dword [ebx + 0x130040]
+mov edi, dword [ebp - 0x2c]
+mov ebx, 0xbb9
+jmp short loc_fffa0fab ; jmp 0xfffa0fab
+
+loc_fffa0f93:
+mov edx, dword [esi]
+push eax
+mov dword [ebp - 0x7c], edx
+push 0x3e8
+push edi
+push dword [ebp - 0x5c]
+call dword [edi + 4] ; ucall
+add esp, 0x10
+mov edx, dword [ebp - 0x7c]
+
+loc_fffa0fab:
+and edx, 0x40000000
+je short loc_fffa0f4c ; je 0xfffa0f4c
+dec bx
+jne short loc_fffa0f93 ; jne 0xfffa0f93
+jmp short loc_fffa0f4c ; jmp 0xfffa0f4c
+
+loc_fffa0fb9:
+mov edx, dword [ebx + 0x5f0c]
+mov edi, dword [ebp - 0x2c]
+mov ebx, 0xbb9
+jmp short loc_fffa0fe1 ; jmp 0xfffa0fe1
+
+loc_fffa0fc9:
+mov edx, dword [esi]
+push eax
+mov dword [ebp - 0x7c], edx
+push 0x3e8
+push edi
+push dword [ebp - 0x5c]
+call dword [edi + 4] ; ucall
+add esp, 0x10
+mov edx, dword [ebp - 0x7c]
+
+loc_fffa0fe1:
+and dh, 2
+je loc_fffa0ed3 ; je 0xfffa0ed3
+dec bx
+jne short loc_fffa0fc9 ; jne 0xfffa0fc9
+jmp near loc_fffa0ed3 ; jmp 0xfffa0ed3
+
+loc_fffa0ff3:
+mov edx, dword [0xf0000060]
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+and edx, 0xfc000000
+mov eax, dword [ebp - 0x34]
+mov ecx, dword [ebp - 0x30]
+mov bx, word [ebx + 0x10004]
+and ebx, 0xfffffff9
+mov word [edx + 0x10004], bx
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov ebx, dword [ebp - 0x44]
+mov edx, dword [edx + 0x10010]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov dword [edx + 0x10010], 0
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov edx, dword [edx + 0x10014]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov dword [edx + 0x10014], 0
+mov edx, dword [ebx + 9]
+cmp byte [edx + 3], 0
+jne short loc_fffa10c0 ; jne 0xfffa10c0
+add eax, ecx
+add eax, dword [ebp - 0x60]
+cmp eax, 0x3fffffff
+mov edx, dword [ebx + 5]
+jbe short loc_fffa1094 ; jbe 0xfffa1094
+mov word [edx], 0x800
+jmp short loc_fffa10c0 ; jmp 0xfffa10c0
+
+loc_fffa1094:
+cmp eax, 0x2fffffff
+jbe short loc_fffa10a2 ; jbe 0xfffa10a2
+mov word [edx], 0x700
+jmp short loc_fffa10c0 ; jmp 0xfffa10c0
+
+loc_fffa10a2:
+cmp eax, 0x1fffffff
+jbe short loc_fffa10b0 ; jbe 0xfffa10b0
+mov word [edx], 0x600
+jmp short loc_fffa10c0 ; jmp 0xfffa10c0
+
+loc_fffa10b0:
+cmp eax, 0x10000000
+sbb eax, eax
+xor al, al
+add ax, 0x500
+mov word [edx], ax
+
+loc_fffa10c0:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa10c8: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 8]
+mov eax, dword [ebp + 0x10]
+test eax, eax
+je short loc_fffa10db ; je 0xfffa10db
+call fcn_fffc5e98 ; call 0xfffc5e98
+
+loc_fffa10db: ; not directly referenced
+xor eax, eax
+leave
+ret
+
+fcn_fffa10df:
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, eax
+lea eax, [ebp - 0xc]
+lea esp, [esp - 0x10]
+mov esi, dword [edx + 9]
+call fcn_fffa9196 ; call 0xfffa9196
+mov edx, 0xc8
+mov eax, esi
+call fcn_fffab210 ; call 0xfffab210
+mov dl, byte [ebx + 0x9dc]
+cmp byte [ebp - 0xc], dl
+mov dl, 1
+jne short loc_fffa1154 ; jne 0xfffa1154
+mov cl, byte [ebx + 0x9dd]
+cmp byte [ebp - 0xb], cl
+jne short loc_fffa1154 ; jne 0xfffa1154
+mov cl, byte [ebx + 0x9de]
+cmp byte [ebp - 0xa], cl
+jne short loc_fffa1154 ; jne 0xfffa1154
+mov cl, byte [ebx + 0x9df]
+cmp byte [ebp - 9], cl
+jne short loc_fffa1154 ; jne 0xfffa1154
+mov ecx, dword [ebx + 0x9d8]
+cmp dword [ebx + 0x1005], ecx
+jne short loc_fffa1154 ; jne 0xfffa1154
+mov ecx, dword [ebx + 0x9d4]
+cmp dword [ebx + 0x1001], ecx
+jne short loc_fffa1154 ; jne 0xfffa1154
+cmp eax, dword [ebx + 0x9e0]
+setne dl
+
+loc_fffa1154:
+lea esp, [esp + 0x10]
+mov al, dl
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffa115e:
+push ebp
+mov ebp, esp
+push esi
+mov esi, ecx
+push ebx
+xor ebx, ebx
+jmp short loc_fffa1170 ; jmp 0xfffa1170
+
+loc_fffa1169:
+mov cl, byte [edx + ebx]
+mov byte [eax + ebx], cl
+inc ebx
+
+loc_fffa1170:
+cmp ebx, esi
+jne short loc_fffa1169 ; jne 0xfffa1169
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffa1178: ; not directly referenced
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 0x10]
+mov edx, dword [ebp + 0xc]
+mov eax, dword [ebp + 8]
+pop ebp
+jmp near fcn_fffa115e ; jmp 0xfffa115e
+
+fcn_fffa118a:
+push ebp
+test edx, edx
+mov ebp, esp
+jne short loc_fffa1197 ; jne 0xfffa1197
+jmp short loc_fffa119d ; jmp 0xfffa119d
+
+loc_fffa1193:
+mov byte [eax + edx], 0
+
+loc_fffa1197:
+dec edx
+cmp edx, 0xffffffffffffffff
+jne short loc_fffa1193 ; jne 0xfffa1193
+
+loc_fffa119d:
+pop ebp
+ret
+
+fcn_fffa119f: ; not directly referenced
+push ebp
+test edx, edx
+mov ebp, esp
+jne short loc_fffa11ab ; jne 0xfffa11ab
+jmp short loc_fffa11b1 ; jmp 0xfffa11b1
+
+loc_fffa11a8: ; not directly referenced
+mov byte [eax + edx], cl
+
+loc_fffa11ab: ; not directly referenced
+dec edx
+cmp edx, 0xffffffffffffffff
+jne short loc_fffa11a8 ; jne 0xfffa11a8
+
+loc_fffa11b1: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffa11b3:
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+lea ecx, [ebp - 0x1c]
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x24]
+mov eax, dword [0xff7d7538]
+mov edx, dword [eax]
+push ecx
+push eax
+call dword [edx + 0x30] ; ucall
+add esp, 0x10
+jmp short loc_fffa1216 ; jmp 0xfffa1216
+
+loc_fffa11d5:
+cmp di, 0xfffffffffffffffe
+je short loc_fffa11e1 ; je 0xfffa11e1
+cmp word [ecx + 4], di
+jne short loc_fffa1211 ; jne 0xfffa1211
+
+loc_fffa11e1:
+mov edx, dword [ebx + 4]
+cmp dword [ecx + 0x10], edx
+mov eax, dword [ecx + 0xc]
+jne short loc_fffa1206 ; jne 0xfffa1206
+cmp eax, dword [ebx]
+jne short loc_fffa1206 ; jne 0xfffa1206
+mov esi, dword [ecx + 0x14]
+mov eax, dword [ecx + 0x18]
+xor esi, dword [ebx + 8]
+xor eax, dword [ebx + 0xc]
+or esi, eax
+sete al
+movzx eax, al
+jmp short loc_fffa1208 ; jmp 0xfffa1208
+
+loc_fffa1206:
+xor eax, eax
+
+loc_fffa1208:
+test eax, eax
+je short loc_fffa1211 ; je 0xfffa1211
+lea eax, [ecx + 4]
+jmp short loc_fffa121f ; jmp 0xfffa121f
+
+loc_fffa1211:
+mov eax, dword [ecx]
+mov dword [ebp - 0x1c], eax
+
+loc_fffa1216:
+mov ecx, dword [ebp - 0x1c]
+test ecx, ecx
+jne short loc_fffa11d5 ; jne 0xfffa11d5
+xor eax, eax
+
+loc_fffa121f:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa1227: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 8]
+call fcn_fffc9077 ; call 0xfffc9077
+call fcn_fffc908a ; call 0xfffc908a
+mov edx, 4
+mov eax, ref_fffcd4a4 ; mov eax, 0xfffcd4a4
+call fcn_fffa11b3 ; call 0xfffa11b3
+test eax, eax
+je short loc_fffa124f ; je 0xfffa124f
+mov byte [eax + 0x49], 0
+
+loc_fffa124f: ; not directly referenced
+xor eax, eax
+leave
+ret
+
+fcn_fffa1253:
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edx, [ebp + 0xc]
+mov edi, edx
+push ebx
+lea esp, [esp - 0xec]
+mov eax, dword [ebp + 8]
+test eax, eax
+mov dword [ebp - 0xa4], edx
+mov dword [ebp - 0xa0], 0
+lea edx, [ebp - 0x9a]
+mov dword [ebp - 0xcc], 0
+mov dword [ebp - 0xdc], 0
+mov dword [ebp - 0xac], edx
+jne loc_fffa1cbd ; jne 0xfffa1cbd
+
+loc_fffa12a0:
+or eax, 0xffffffff
+jmp near loc_fffa1d18 ; jmp 0xfffa1d18
+
+loc_fffa12a8:
+inc ebx
+
+loc_fffa12a9:
+mov dl, byte [ebx]
+cmp dl, 0x25
+setne cl
+test dl, dl
+setne dl
+test cl, dl
+jne short loc_fffa12a8 ; jne 0xfffa12a8
+mov esi, ebx
+sub esi, eax
+je short loc_fffa12d7 ; je 0xfffa12d7
+lea ecx, [ebp - 0xa0]
+mov edx, esi
+call fcn_fffc199b ; call 0xfffc199b
+test eax, eax
+js short loc_fffa12a0 ; js 0xfffa12a0
+add dword [ebp - 0xcc], esi
+
+loc_fffa12d7:
+cmp byte [ebx], 0
+mov eax, ebx
+je loc_fffa1cbd ; je 0xfffa1cbd
+lea esi, [ebx + 1]
+mov dword [ebp - 0xb0], 0
+
+loc_fffa12ef:
+mov dl, byte [esi]
+test dl, dl
+jne short loc_fffa1308 ; jne 0xfffa1308
+
+loc_fffa12f5:
+mov dword [ebp - 0xc0], 0
+jmp short loc_fffa1350 ; jmp 0xfffa1350
+
+loc_fffa1301:
+test cl, cl
+je short loc_fffa1318 ; je 0xfffa1318
+inc eax
+jmp short loc_fffa130d ; jmp 0xfffa130d
+
+loc_fffa1308:
+mov eax, ref_fffc9e9c ; mov eax, 0xfffc9e9c
+
+loc_fffa130d:
+mov cl, byte [eax]
+cmp cl, dl
+jne short loc_fffa1301 ; jne 0xfffa1301
+jmp near loc_fffa1cd1 ; jmp 0xfffa1cd1
+
+loc_fffa1318:
+cmp dl, 0x2a
+jne short loc_fffa12f5 ; jne 0xfffa12f5
+lea eax, [edi + 4]
+mov edi, dword [edi]
+test edi, edi
+mov dword [ebp - 0xc0], edi
+jns short loc_fffa1339 ; jns 0xfffa1339
+neg dword [ebp - 0xc0]
+or dword [ebp - 0xb0], 4
+
+loc_fffa1339:
+inc esi
+mov edi, eax
+jmp short loc_fffa136b ; jmp 0xfffa136b
+
+loc_fffa133e:
+imul edx, dword [ebp - 0xc0], 0xa
+inc esi
+lea eax, [edx + eax - 0x30]
+mov dword [ebp - 0xc0], eax
+
+loc_fffa1350:
+movsx eax, byte [esi]
+test al, al
+je short loc_fffa136b ; je 0xfffa136b
+lea edx, [eax - 0x30]
+cmp dl, 9
+ja short loc_fffa136b ; ja 0xfffa136b
+cmp dword [ebp - 0xc0], 0x1f3
+jle short loc_fffa133e ; jle 0xfffa133e
+
+loc_fffa136b:
+cmp dword [ebp - 0xc0], 0x1f4
+jg loc_fffa12a0 ; jg 0xfffa12a0
+cmp byte [esi], 0x2e
+mov dword [ebp - 0xbc], 0xffffffff
+jne short loc_fffa13fa ; jne 0xfffa13fa
+cmp byte [esi + 1], 0x2a
+lea eax, [esi + 1]
+mov dword [ebp - 0xbc], 0
+jne short loc_fffa13cd ; jne 0xfffa13cd
+lea eax, [edi + 4]
+mov edi, dword [edi]
+cmp edi, 0x1f4
+mov dword [ebp - 0xbc], edi
+jg loc_fffa12a0 ; jg 0xfffa12a0
+add esi, 2
+mov edi, eax
+jmp short loc_fffa13fa ; jmp 0xfffa13fa
+
+loc_fffa13bb:
+imul esi, dword [ebp - 0xbc], 0xa
+inc eax
+lea edx, [esi + edx - 0x30]
+mov dword [ebp - 0xbc], edx
+
+loc_fffa13cd:
+movsx edx, byte [eax]
+test dl, dl
+je short loc_fffa13e8 ; je 0xfffa13e8
+lea ecx, [edx - 0x30]
+cmp cl, 9
+ja short loc_fffa13e8 ; ja 0xfffa13e8
+cmp dword [ebp - 0xbc], 0x1f3
+jle short loc_fffa13bb ; jle 0xfffa13bb
+
+loc_fffa13e8:
+cmp dword [ebp - 0xbc], 0x1f4
+jg loc_fffa12a0 ; jg 0xfffa12a0
+mov esi, eax
+
+loc_fffa13fa:
+xor ebx, ebx
+cmp byte [esi], 0x3a
+jne short loc_fffa144d ; jne 0xfffa144d
+cmp byte [esi + 1], 0x2a
+lea eax, [esi + 1]
+jne short loc_fffa142e ; jne 0xfffa142e
+mov ebx, dword [edi]
+lea eax, [edi + 4]
+test ebx, ebx
+js short loc_fffa141d ; js 0xfffa141d
+cmp ebx, 0x24
+jle short loc_fffa141f ; jle 0xfffa141f
+jmp near loc_fffa12a0 ; jmp 0xfffa12a0
+
+loc_fffa141d:
+xor ebx, ebx
+
+loc_fffa141f:
+add esi, 2
+mov edi, eax
+jmp short loc_fffa144d ; jmp 0xfffa144d
+
+loc_fffa1426:
+imul ebx, ebx, 0xa
+inc eax
+lea ebx, [ebx + edx - 0x30]
+
+loc_fffa142e:
+movsx edx, byte [eax]
+test dl, dl
+je short loc_fffa1442 ; je 0xfffa1442
+lea ecx, [edx - 0x30]
+cmp cl, 9
+ja short loc_fffa1442 ; ja 0xfffa1442
+cmp ebx, 0x23
+jle short loc_fffa1426 ; jle 0xfffa1426
+
+loc_fffa1442:
+cmp ebx, 0x24
+jg loc_fffa12a0 ; jg 0xfffa12a0
+mov esi, eax
+
+loc_fffa144d:
+cmp byte [esi], 0x5b
+mov dword [ebp - 0xc4], 0
+jne short loc_fffa1489 ; jne 0xfffa1489
+lea ecx, [esi + 1]
+not esi
+mov dword [ebp - 0xdc], ecx
+mov eax, ecx
+
+loc_fffa1469:
+lea edx, [esi + eax]
+mov dword [ebp - 0xc4], edx
+mov dl, byte [eax]
+mov ecx, eax
+test dl, dl
+je loc_fffa12a0 ; je 0xfffa12a0
+inc eax
+cmp dl, 0x5d
+jne short loc_fffa1469 ; jne 0xfffa1469
+jmp near loc_fffa1ce9 ; jmp 0xfffa1ce9
+
+loc_fffa1489:
+mov dl, byte [esi]
+test dl, dl
+je short loc_fffa14ba ; je 0xfffa14ba
+jmp short loc_fffa1498 ; jmp 0xfffa1498
+
+loc_fffa1491:
+test al, al
+je short loc_fffa14b4 ; je 0xfffa14b4
+inc ecx
+jmp short loc_fffa149d ; jmp 0xfffa149d
+
+loc_fffa1498:
+mov ecx, ref_fffcc45c ; mov ecx, 0xfffcc45c
+
+loc_fffa149d:
+mov al, byte [ecx]
+cmp al, dl
+jne short loc_fffa1491 ; jne 0xfffa1491
+jmp near loc_fffa1cf1 ; jmp 0xfffa1cf1
+
+loc_fffa14a8:
+cmp al, dl
+jne short loc_fffa14b8 ; jne 0xfffa14b8
+or edx, 1
+add esi, 2
+jmp short loc_fffa14ba ; jmp 0xfffa14ba
+
+loc_fffa14b4:
+xor edx, edx
+jmp short loc_fffa14ba ; jmp 0xfffa14ba
+
+loc_fffa14b8:
+mov esi, ecx
+
+loc_fffa14ba:
+mov al, byte [esi]
+test al, al
+jne short loc_fffa14ca ; jne 0xfffa14ca
+mov eax, dword [edi]
+add edi, 4
+jmp near loc_fffa1cbd ; jmp 0xfffa1cbd
+
+loc_fffa14ca:
+cmp al, 0x43
+mov byte [ebp - 0xb8], 0
+jne short loc_fffa14f5 ; jne 0xfffa14f5
+lea ecx, [esi + 1]
+mov dword [ebp - 0xb4], ecx
+mov cl, byte [esi + 1]
+test cl, cl
+mov byte [ebp - 0xb8], cl
+je loc_fffa12a0 ; je 0xfffa12a0
+mov esi, dword [ebp - 0xb4]
+
+loc_fffa14f5:
+cmp al, 0x6e
+mov byte [ebp - 0xa8], al
+jne short loc_fffa155b ; jne 0xfffa155b
+mov eax, dword [edi]
+test eax, eax
+je loc_fffa1d11 ; je 0xfffa1d11
+cmp dl, 0x68
+jne short loc_fffa151c ; jne 0xfffa151c
+mov edx, dword [ebp - 0xcc]
+mov word [eax], dx
+jmp near loc_fffa1d11 ; jmp 0xfffa1d11
+
+loc_fffa151c:
+cmp dl, 0x69
+jne short loc_fffa152e ; jne 0xfffa152e
+mov cl, byte [ebp - 0xcc]
+mov byte [eax], cl
+jmp near loc_fffa1d11 ; jmp 0xfffa1d11
+
+loc_fffa152e:
+cmp dl, 0x6c
+jne short loc_fffa1535 ; jne 0xfffa1535
+jmp short loc_fffa154e ; jmp 0xfffa154e
+
+loc_fffa1535:
+cmp dl, 0x6a
+jne short loc_fffa154e ; jne 0xfffa154e
+mov ecx, dword [ebp - 0xcc]
+mov dword [eax + 4], 0
+mov dword [eax], ecx
+jmp near loc_fffa1d11 ; jmp 0xfffa1d11
+
+loc_fffa154e:
+mov edx, dword [ebp - 0xcc]
+mov dword [eax], edx
+jmp near loc_fffa1d11 ; jmp 0xfffa1d11
+
+loc_fffa155b:
+cmp al, 0x25
+jne short loc_fffa158a ; jne 0xfffa158a
+sub esp, 0xc
+lea eax, [ebp - 0xa8]
+push 0
+xor ecx, ecx
+xor edx, edx
+push 1
+push eax
+lea eax, [ebp - 0xa0]
+push 0
+push 0
+call fcn_fffc19d8 ; call 0xfffc19d8
+mov ebx, eax
+add esp, 0x20
+jmp near loc_fffa1cac ; jmp 0xfffa1cac
+
+loc_fffa158a:
+mov cl, al
+and ecx, 0xffffffdf
+cmp cl, 0x43
+jne short loc_fffa160f ; jne 0xfffa160f
+cmp al, 0x63
+jne short loc_fffa15a5 ; jne 0xfffa15a5
+mov eax, dword [edi]
+add edi, 4
+mov byte [ebp - 0xa7], al
+jmp short loc_fffa15b1 ; jmp 0xfffa15b1
+
+loc_fffa15a5:
+mov al, byte [ebp - 0xb8]
+mov byte [ebp - 0xa7], al
+
+loc_fffa15b1:
+mov eax, 1
+cmp dword [ebp - 0xbc], 0
+mov edx, dword [ebp - 0xbc]
+cmovs edx, eax
+test edx, edx
+cmovg eax, edx
+xor ebx, ebx
+mov dword [ebp - 0xb0], eax
+
+loc_fffa15d3:
+sub esp, 0xc
+lea ecx, [ebp - 0xa7]
+push 0
+xor edx, edx
+lea eax, [ebp - 0xa0]
+push 1
+push ecx
+xor ecx, ecx
+push 0
+push 0
+call fcn_fffc19d8 ; call 0xfffc19d8
+add esp, 0x20
+cmp eax, 0xffffffffffffffff
+je loc_fffa12a0 ; je 0xfffa12a0
+add ebx, eax
+dec dword [ebp - 0xb0]
+jne short loc_fffa15d3 ; jne 0xfffa15d3
+jmp near loc_fffa1cac ; jmp 0xfffa1cac
+
+loc_fffa160f:
+cmp al, 0x73
+jne loc_fffa16ad ; jne 0xfffa16ad
+mov ecx, dword [edi]
+lea eax, [edi + 4]
+test ecx, ecx
+mov dword [ebp - 0xb4], eax
+mov eax, ref_fffcc463 ; mov eax, 0xfffcc463
+cmove ecx, eax
+mov ebx, ecx
+jmp short loc_fffa1631 ; jmp 0xfffa1631
+
+loc_fffa1630:
+inc ebx
+
+loc_fffa1631:
+cmp byte [ebx], 0
+jne short loc_fffa1630 ; jne 0xfffa1630
+sub ebx, ecx
+cmp dword [ebp - 0xbc], 0
+js short loc_fffa164e ; js 0xfffa164e
+cmp ebx, dword [ebp - 0xbc]
+cmovg ebx, dword [ebp - 0xbc]
+
+loc_fffa164e:
+mov edx, dword [ebp - 0xc0]
+xor eax, eax
+sub edx, ebx
+cmp ebx, dword [ebp - 0xc0]
+cmovl eax, edx
+mov edx, dword [ebp - 0xb0]
+xor edi, edi
+and edx, 4
+je short loc_fffa1672 ; je 0xfffa1672
+mov edi, eax
+xor eax, eax
+
+loc_fffa1672:
+test byte [ebp - 0xb0], 0x40
+je short loc_fffa169c ; je 0xfffa169c
+add edi, eax
+xor eax, eax
+test edx, edx
+mov dword [ebp - 0xb0], edi
+sete al
+add eax, edi
+mov edi, 2
+cdq
+idiv edi
+mov edi, dword [ebp - 0xb0]
+sub edi, eax
+
+loc_fffa169c:
+sub esp, 0xc
+push edi
+push ebx
+push ecx
+xor ecx, ecx
+push 0
+push 0
+jmp near loc_fffa1c94 ; jmp 0xfffa1c94
+
+loc_fffa16ad:
+cmp al, 0x70
+jne short loc_fffa16d8 ; jne 0xfffa16d8
+mov byte [ebp - 0xa8], 0x58
+xor edx, edx
+mov dword [ebp - 0xbc], 8
+mov dword [ebp - 0xc0], 8
+mov dword [ebp - 0xb0], 0x28
+
+loc_fffa16d8:
+mov al, byte [ebp - 0xa8]
+cmp al, 0x69
+mov byte [ebp - 0xb8], al
+sete byte [ebp - 0xd0]
+cmp al, 0x64
+sete al
+or al, byte [ebp - 0xd0]
+jne short loc_fffa1705 ; jne 0xfffa1705
+xor ecx, ecx
+cmp byte [ebp - 0xb8], 0x49
+jne short loc_fffa172d ; jne 0xfffa172d
+
+loc_fffa1705:
+mov al, byte [ebp - 0xb8]
+and dword [ebp - 0xb0], 0xfffffff7
+and eax, 0xffffffdf
+or dword [ebp - 0xb0], 0x80
+cmp al, 0x49
+mov ecx, 0xa
+jne short loc_fffa172d ; jne 0xfffa172d
+test ebx, ebx
+cmovne ecx, ebx
+
+loc_fffa172d:
+mov al, byte [ebp - 0xb8]
+and eax, 0xffffffdf
+cmp al, 0x58
+mov byte [ebp - 0xb4], al
+sete byte [ebp - 0xc8]
+mov eax, 0x10
+cmp byte [ebp - 0xc8], 0
+cmovne ecx, eax
+cmp byte [ebp - 0xb4], 0x55
+jne short loc_fffa1767 ; jne 0xfffa1767
+test ebx, ebx
+mov ecx, 0xa
+cmovne ecx, ebx
+
+loc_fffa1767:
+cmp byte [ebp - 0xb8], 0x6f
+je short loc_fffa1783 ; je 0xfffa1783
+cmp byte [ebp - 0xb8], 0x62
+je short loc_fffa178a ; je 0xfffa178a
+cmp ecx, 1
+ja short loc_fffa178f ; ja 0xfffa178f
+jmp near loc_fffa12a0 ; jmp 0xfffa12a0
+
+loc_fffa1783:
+mov ecx, 8
+jmp short loc_fffa178f ; jmp 0xfffa178f
+
+loc_fffa178a:
+mov ecx, 2
+
+loc_fffa178f:
+test byte [ebp - 0xb0], 0x80
+je loc_fffa184b ; je 0xfffa184b
+cmp dl, 0x6c
+jne short loc_fffa17ac ; jne 0xfffa17ac
+lea edx, [edi + 4]
+mov dword [ebp - 0xb4], edx
+jmp short loc_fffa17ba ; jmp 0xfffa17ba
+
+loc_fffa17ac:
+cmp dl, 0x6a
+jne short loc_fffa17be ; jne 0xfffa17be
+lea eax, [edi + 8]
+
+loc_fffa17b4:
+mov dword [ebp - 0xb4], eax
+
+loc_fffa17ba:
+mov ebx, dword [edi]
+jmp short loc_fffa17ea ; jmp 0xfffa17ea
+
+loc_fffa17be:
+cmp dl, 0x7a
+lea eax, [edi + 4]
+jne short loc_fffa17c8 ; jne 0xfffa17c8
+jmp short loc_fffa17b4 ; jmp 0xfffa17b4
+
+loc_fffa17c8:
+cmp dl, 0x74
+mov dword [ebp - 0xb4], eax
+mov ebx, dword [edi]
+jne short loc_fffa17d7 ; jne 0xfffa17d7
+jmp short loc_fffa17ea ; jmp 0xfffa17ea
+
+loc_fffa17d7:
+cmp dl, 0x68
+jne short loc_fffa17e1 ; jne 0xfffa17e1
+movsx ebx, bx
+jmp short loc_fffa17ea ; jmp 0xfffa17ea
+
+loc_fffa17e1:
+movsx eax, bl
+cmp dl, 0x69
+cmove ebx, eax
+
+loc_fffa17ea:
+mov eax, ebx
+cdq
+mov eax, edx
+xor eax, ebx
+sub eax, edx
+test ebx, ebx
+jns short loc_fffa1800 ; jns 0xfffa1800
+mov byte [ebp - 0xa6], 0x2d
+jmp short loc_fffa1825 ; jmp 0xfffa1825
+
+loc_fffa1800:
+test byte [ebp - 0xb0], 2
+je short loc_fffa1812 ; je 0xfffa1812
+mov byte [ebp - 0xa6], 0x2b
+jmp short loc_fffa1825 ; jmp 0xfffa1825
+
+loc_fffa1812:
+test byte [ebp - 0xb0], 1
+setne dl
+shl edx, 5
+mov byte [ebp - 0xa6], dl
+
+loc_fffa1825:
+cmp byte [ebp - 0xa6], 0
+mov dword [ebp - 0xd4], 0
+je short loc_fffa18ac ; je 0xfffa18ac
+or dword [ebp - 0xb0], 8
+mov dword [ebp - 0xd4], 1
+jmp short loc_fffa18ac ; jmp 0xfffa18ac
+
+loc_fffa184b:
+cmp dl, 0x6c
+jne short loc_fffa185b ; jne 0xfffa185b
+lea edx, [edi + 4]
+mov dword [ebp - 0xb4], edx
+jmp short loc_fffa1869 ; jmp 0xfffa1869
+
+loc_fffa185b:
+cmp dl, 0x6a
+jne short loc_fffa186d ; jne 0xfffa186d
+lea eax, [edi + 8]
+
+loc_fffa1863:
+mov dword [ebp - 0xb4], eax
+
+loc_fffa1869:
+mov eax, dword [edi]
+jmp short loc_fffa189b ; jmp 0xfffa189b
+
+loc_fffa186d:
+cmp dl, 0x7a
+lea eax, [edi + 4]
+jne short loc_fffa1877 ; jne 0xfffa1877
+jmp short loc_fffa1863 ; jmp 0xfffa1863
+
+loc_fffa1877:
+cmp dl, 0x74
+mov dword [ebp - 0xb4], eax
+mov eax, dword [edi]
+jne short loc_fffa1886 ; jne 0xfffa1886
+jmp short loc_fffa189b ; jmp 0xfffa189b
+
+loc_fffa1886:
+cmp dl, 0x68
+jne short loc_fffa1892 ; jne 0xfffa1892
+and eax, 0xffff
+jmp short loc_fffa189b ; jmp 0xfffa189b
+
+loc_fffa1892:
+movzx ebx, al
+cmp dl, 0x69
+cmove eax, ebx
+
+loc_fffa189b:
+mov byte [ebp - 0xa6], 0x30
+mov dword [ebp - 0xd4], 0
+
+loc_fffa18ac:
+test eax, eax
+setne dl
+cmp byte [ebp - 0xb8], 0x6f
+sete bl
+test dl, bl
+mov ebx, 1
+cmove ebx, dword [ebp - 0xd4]
+cmp byte [ebp - 0xc8], 0
+mov dword [ebp - 0xd4], ebx
+jne short loc_fffa18e1 ; jne 0xfffa18e1
+cmp byte [ebp - 0xb8], 0x62
+jne short loc_fffa1913 ; jne 0xfffa1913
+
+loc_fffa18e1:
+mov ebx, dword [ebp - 0xb0]
+and ebx, 0x20
+jne short loc_fffa18f0 ; jne 0xfffa18f0
+test dl, dl
+je short loc_fffa1913 ; je 0xfffa1913
+
+loc_fffa18f0:
+mov dl, byte [ebp - 0xb8]
+test ebx, ebx
+mov byte [ebp - 0xa5], dl
+je short loc_fffa1909 ; je 0xfffa1909
+or edx, 0x20
+mov byte [ebp - 0xa5], dl
+
+loc_fffa1909:
+mov dword [ebp - 0xd4], 2
+
+loc_fffa1913:
+test byte [ebp - 0xb0], 8
+je short loc_fffa192a ; je 0xfffa192a
+lea edx, [ebp - 0xa6]
+mov dword [ebp - 0xe4], edx
+jmp short loc_fffa193e ; jmp 0xfffa193e
+
+loc_fffa192a:
+mov dword [ebp - 0xe4], 0
+mov dword [ebp - 0xd4], 0
+
+loc_fffa193e:
+cmp ecx, 0xa
+jne short loc_fffa1967 ; jne 0xfffa1967
+jmp short loc_fffa1957 ; jmp 0xfffa1957
+
+loc_fffa1945:
+xor edx, edx
+inc edi
+div ecx
+mov ebx, edi
+neg ebx
+add edx, 0x30
+mov byte [ebx + ebp - 0x18], dl
+jmp short loc_fffa195e ; jmp 0xfffa195e
+
+loc_fffa1957:
+xor edi, edi
+mov ecx, 0xa
+
+loc_fffa195e:
+test eax, eax
+jne short loc_fffa1945 ; jne 0xfffa1945
+jmp near loc_fffa1a29 ; jmp 0xfffa1a29
+
+loc_fffa1967:
+cmp byte [ebp - 0xb8], 0x75
+sete byte [ebp - 0xc8]
+cmp ecx, 8
+sete bl
+cmp ecx, 2
+sete dl
+or dl, bl
+jne short loc_fffa19a2 ; jne 0xfffa19a2
+xor edi, edi
+mov dl, byte [ebp - 0xc8]
+or edx, dword [ebp - 0xd0]
+cmp ecx, 0x10
+mov byte [ebp - 0xd8], dl
+jne loc_fffa1a25 ; jne 0xfffa1a25
+
+loc_fffa19a2:
+cmp ecx, 0x10
+lea edx, [ecx - 1]
+mov dword [ebp - 0xd8], edx
+je short loc_fffa19bd ; je 0xfffa19bd
+cmp bl, 1
+sbb ecx, ecx
+and ecx, 0xfffffffe
+add ecx, 3
+jmp short loc_fffa19c2 ; jmp 0xfffa19c2
+
+loc_fffa19bd:
+mov ecx, 4
+
+loc_fffa19c2:
+xor edi, edi
+jmp short loc_fffa19fd ; jmp 0xfffa19fd
+
+loc_fffa19c6:
+mov ebx, dword [ebp - 0xd8]
+and ebx, eax
+cmp byte [ebp - 0xb8], 0x78
+mov dl, byte [ebx + ref_fffc9ec4] ; mov dl, byte [ebx - 0x3613c]
+sete bl
+or bl, byte [ebp - 0xd0]
+jne short loc_fffa19ef ; jne 0xfffa19ef
+cmp byte [ebp - 0xc8], 0
+je short loc_fffa19f2 ; je 0xfffa19f2
+
+loc_fffa19ef:
+or edx, 0x20
+
+loc_fffa19f2:
+shr eax, cl
+inc edi
+mov ebx, edi
+neg ebx
+mov byte [ebx + ebp - 0x18], dl
+
+loc_fffa19fd:
+test eax, eax
+jne short loc_fffa19c6 ; jne 0xfffa19c6
+jmp short loc_fffa1a29 ; jmp 0xfffa1a29
+
+loc_fffa1a03:
+xor edx, edx
+div ecx
+mov dl, byte [edx + ref_fffc9ec4] ; mov dl, byte [edx - 0x3613c]
+mov bl, dl
+or ebx, 0x20
+cmp byte [ebp - 0xd8], 0
+cmovne edx, ebx
+inc edi
+mov ebx, edi
+neg ebx
+mov byte [ebx + ebp - 0x18], dl
+
+loc_fffa1a25:
+test eax, eax
+jne short loc_fffa1a03 ; jne 0xfffa1a03
+
+loc_fffa1a29:
+cmp dword [ebp - 0xc4], 0
+mov dword [ebp - 0xd8], 0
+je loc_fffa1bdf ; je 0xfffa1bdf
+mov eax, dword [ebp - 0xdc]
+mov ecx, dword [ebp - 0xc4]
+mov dword [ebp - 0xd0], 0x82
+mov dword [ebp - 0xc8], edi
+sub dword [ebp - 0xd0], edi
+xor ebx, ebx
+mov byte [ebp - 0xe5], 0
+lea ecx, [eax + ecx - 1]
+mov dword [ebp - 0xb8], ecx
+jmp near loc_fffa1bca ; jmp 0xfffa1bca
+
+loc_fffa1a7a:
+cmp dword [ebp - 0xc4], 0
+je loc_fffa1d04 ; je 0xfffa1d04
+mov edx, dword [ebp - 0xb8]
+mov al, byte [edx]
+cmp al, 0x2d
+je loc_fffa1bdf ; je 0xfffa1bdf
+cmp al, 0x2a
+jne short loc_fffa1af1 ; jne 0xfffa1af1
+mov eax, dword [ebp - 0xb4]
+mov ecx, dword [ebp - 0xb4]
+add ecx, 4
+mov ebx, dword [eax]
+test ebx, ebx
+js loc_fffa1bd9 ; js 0xfffa1bd9
+mov eax, dword [ebp - 0xc4]
+dec edx
+dec eax
+mov dword [ebp - 0xec], edx
+mov dword [ebp - 0xb4], ecx
+je loc_fffa1bdf ; je 0xfffa1bdf
+jmp short loc_fffa1b35 ; jmp 0xfffa1b35
+
+loc_fffa1ad0:
+sub ecx, 0x30
+imul ecx, dword [ebp - 0xc4]
+imul edx, dword [ebp - 0xc4], 0xa
+add ebx, ecx
+dec eax
+mov dword [ebp - 0xc4], edx
+jne short loc_fffa1b11 ; jne 0xfffa1b11
+jmp near loc_fffa1bdf ; jmp 0xfffa1bdf
+
+loc_fffa1af1:
+mov eax, dword [ebp - 0xc4]
+mov ecx, dword [ebp - 0xb8]
+sub ecx, eax
+mov dword [ebp - 0xc4], 1
+xor ebx, ebx
+mov dword [ebp - 0xb8], ecx
+
+loc_fffa1b11:
+mov edx, dword [ebp - 0xb8]
+add edx, eax
+mov dword [ebp - 0xec], edx
+mov edx, dword [ebp - 0xb8]
+movsx ecx, byte [edx + eax]
+test cl, cl
+je short loc_fffa1b35 ; je 0xfffa1b35
+lea edx, [ecx - 0x30]
+cmp dl, 9
+jbe short loc_fffa1ad0 ; jbe 0xfffa1ad0
+
+loc_fffa1b35:
+mov ecx, dword [ebp - 0xec]
+mov edx, dword [ebp - 0xec]
+dec edx
+dec eax
+test ebx, ebx
+mov dword [ebp - 0xb8], edx
+mov dword [ebp - 0xc4], eax
+mov cl, byte [ecx]
+mov byte [ebp - 0xe5], cl
+je short loc_fffa1bc1 ; je 0xfffa1bc1
+
+loc_fffa1b5b:
+cmp dword [ebp - 0xc8], ebx
+jle short loc_fffa1bdf ; jle 0xfffa1bdf
+mov ecx, dword [ebp - 0xc8]
+lea edx, [ebp - 0x9a]
+sub ecx, ebx
+xor eax, eax
+mov dword [ebp - 0xe0], ecx
+add edx, dword [ebp - 0xd0]
+jmp short loc_fffa1b89 ; jmp 0xfffa1b89
+
+loc_fffa1b81:
+mov cl, byte [edx + eax]
+mov byte [edx + eax - 1], cl
+inc eax
+
+loc_fffa1b89:
+cmp eax, dword [ebp - 0xe0]
+jne short loc_fffa1b81 ; jne 0xfffa1b81
+dec dword [ebp - 0xd0]
+mov edx, dword [ebp - 0xd0]
+add edx, dword [ebp - 0xc8]
+mov cl, byte [ebp - 0xe5]
+sub edx, ebx
+inc edi
+inc dword [ebp - 0xd8]
+mov dword [ebp - 0xc8], eax
+mov byte [ebp + edx - 0x9a], cl
+jmp short loc_fffa1bca ; jmp 0xfffa1bca
+
+loc_fffa1bc1:
+cmp dword [ebp - 0xc4], 0
+je short loc_fffa1bdf ; je 0xfffa1bdf
+
+loc_fffa1bca:
+cmp dword [ebp - 0xc8], 0
+jne loc_fffa1a7a ; jne 0xfffa1a7a
+jmp short loc_fffa1bdf ; jmp 0xfffa1bdf
+
+loc_fffa1bd9:
+mov dword [ebp - 0xb4], ecx
+
+loc_fffa1bdf:
+cmp dword [ebp - 0xbc], 0
+js short loc_fffa1bf1 ; js 0xfffa1bf1
+and dword [ebp - 0xb0], 0xffffffef
+jmp short loc_fffa1bfb ; jmp 0xfffa1bfb
+
+loc_fffa1bf1:
+mov dword [ebp - 0xbc], 1
+
+loc_fffa1bfb:
+mov eax, dword [ebp - 0xbc]
+add eax, dword [ebp - 0xd8]
+cmp eax, edi
+mov ebx, edi
+mov edx, dword [ebp - 0xd4]
+mov ecx, dword [ebp - 0xc0]
+cmovge ebx, eax
+xor eax, eax
+add edx, ebx
+sub ecx, edx
+cmp edx, dword [ebp - 0xc0]
+mov edx, dword [ebp - 0xb0]
+cmovl eax, ecx
+xor ecx, ecx
+and edx, 4
+je short loc_fffa1c3a ; je 0xfffa1c3a
+mov ecx, eax
+xor eax, eax
+
+loc_fffa1c3a:
+test byte [ebp - 0xb0], 0x40
+je short loc_fffa1c64 ; je 0xfffa1c64
+add ecx, eax
+xor eax, eax
+test edx, edx
+mov dword [ebp - 0xb8], ecx
+sete al
+add eax, ecx
+mov ecx, 2
+cdq
+idiv ecx
+mov ecx, dword [ebp - 0xb8]
+sub ecx, eax
+
+loc_fffa1c64:
+sub ebx, edi
+test byte [ebp - 0xb0], 0x10
+je short loc_fffa1c73 ; je 0xfffa1c73
+add ebx, eax
+xor eax, eax
+
+loc_fffa1c73:
+sub esp, 0xc
+mov edx, dword [ebp - 0xac]
+push ecx
+sub edx, edi
+mov ecx, dword [ebp - 0xe4]
+push edi
+add edx, 0x82
+push edx
+push ebx
+push dword [ebp - 0xd4]
+
+loc_fffa1c94:
+mov edx, eax
+lea eax, [ebp - 0xa0]
+call fcn_fffc19d8 ; call 0xfffc19d8
+mov ebx, eax
+add esp, 0x20
+mov edi, dword [ebp - 0xb4]
+
+loc_fffa1cac:
+test ebx, ebx
+js loc_fffa12a0 ; js 0xfffa12a0
+
+loc_fffa1cb4:
+add dword [ebp - 0xcc], ebx
+lea eax, [esi + 1]
+
+loc_fffa1cbd:
+cmp byte [eax], 0
+je short loc_fffa1cc9 ; je 0xfffa1cc9
+mov ebx, eax
+jmp near loc_fffa12a9 ; jmp 0xfffa12a9
+
+loc_fffa1cc9:
+mov eax, dword [ebp - 0xcc]
+jmp short loc_fffa1d18 ; jmp 0xfffa1d18
+
+loc_fffa1cd1:
+sub eax, ref_fffc9e9c ; sub eax, 0xfffc9e9c
+inc esi
+mov edx, dword [eax*4 + ref_fffc9ea4] ; mov edx, dword [eax*4 - 0x3615c]
+or dword [ebp - 0xb0], edx
+jmp near loc_fffa12ef ; jmp 0xfffa12ef
+
+loc_fffa1ce9:
+lea esi, [ecx + 1]
+jmp near loc_fffa1489 ; jmp 0xfffa1489
+
+loc_fffa1cf1:
+mov al, byte [esi + 1]
+lea ecx, [esi + 1]
+test al, al
+jne loc_fffa14a8 ; jne 0xfffa14a8
+jmp near loc_fffa14b8 ; jmp 0xfffa14b8
+
+loc_fffa1d04:
+test ebx, ebx
+jne loc_fffa1b5b ; jne 0xfffa1b5b
+jmp near loc_fffa1bdf ; jmp 0xfffa1bdf
+
+loc_fffa1d11:
+add edi, 4
+xor ebx, ebx
+jmp short loc_fffa1cb4 ; jmp 0xfffa1cb4
+
+loc_fffa1d18:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa1d20:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, ecx
+lea esp, [esp - 0x2c]
+mov edi, dword [ebp + 0xc]
+mov dword [ebp - 0x24], edx
+mov esi, dword [edi + 9]
+mov dword [ecx + 0x5f], 0xc8
+mov dword [ecx + 0x5b], esi
+mov dword [ecx + 0x1d], 0
+mov byte [ecx + 0x1c], 0
+mov dword [ecx + 0x45], 0
+mov edx, dword [esi + 4]
+cmp edx, 2
+je short loc_fffa1d63 ; je 0xfffa1d63
+cmp edx, 3
+je short loc_fffa1d70 ; je 0xfffa1d70
+dec edx
+jne short loc_fffa1da5 ; jne 0xfffa1da5
+jmp short loc_fffa1d81 ; jmp 0xfffa1d81
+
+loc_fffa1d63:
+cmp eax, 4
+setne al
+movzx eax, al
+add eax, eax
+jmp short loc_fffa1d7c ; jmp 0xfffa1d7c
+
+loc_fffa1d70:
+cmp eax, 4
+setne al
+movzx eax, al
+lea eax, [eax + eax*2]
+
+loc_fffa1d7c:
+mov dword [ebx + 0x49], eax
+jmp short loc_fffa1dac ; jmp 0xfffa1dac
+
+loc_fffa1d81:
+cmp eax, 4
+jne short loc_fffa1d88 ; jne 0xfffa1d88
+jmp short loc_fffa1da5 ; jmp 0xfffa1da5
+
+loc_fffa1d88:
+mov dword [ecx + 0x49], 1
+movzx eax, byte [esi + 0x53]
+mov dword [ecx + 0x1d], eax
+mov al, byte [esi + 0x54]
+mov byte [ecx + 0x1c], al
+movzx eax, word [esi + 0x4c]
+mov dword [ecx + 0x45], eax
+jmp short loc_fffa1dac ; jmp 0xfffa1dac
+
+loc_fffa1da5:
+mov dword [ebx + 0x49], 0
+
+loc_fffa1dac:
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 4]
+mov dword [ebx + 0x67], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x10]
+mov dword [ebx + 0x63], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x14]
+mov dword [ebx + 0x6b], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x18]
+mov dword [ebx + 0x73], 0xfed00000
+mov dword [ebx + 0x6f], eax
+mov eax, dword [edi + 5]
+movzx eax, word [eax]
+mov dword [ebx + 0x7b], eax
+movzx eax, word [esi + 1]
+mov dword [ebx + 0x18], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x1c]
+shr eax, 0x14
+mov dword [ebx + 0x7f], eax
+mov eax, dword [edi + 5]
+movzx eax, word [eax + 2]
+mov dword [ebx + 0x35], eax
+mov eax, dword [edi + 5]
+movzx eax, byte [eax + 4]
+cmp al, 0x11
+jne short loc_fffa1e11 ; jne 0xfffa1e11
+mov dword [ebx + 0x31], 0x400
+jmp short loc_fffa1e17 ; jmp 0xfffa1e17
+
+loc_fffa1e11:
+shl eax, 5
+mov dword [ebx + 0x31], eax
+
+loc_fffa1e17:
+push eax
+lea eax, [ebx + 0x39]
+mov dword [ebp - 0x1c], eax
+lea eax, [ebx + 0x3e]
+lea ecx, [ebx + 0x3b]
+push eax
+lea eax, [ebx + 0x3d]
+lea edx, [ebx + 0x3a]
+push eax
+lea eax, [ebx + 0x3c]
+mov byte [ebx + 0x55], 0
+push eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffc8290 ; call 0xfffc8290
+mov eax, dword [edi + 1]
+add esp, 0x10
+mov edx, 1
+movzx eax, byte [eax + 0x20]
+mov dword [ebx + 0x25], eax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov ax, word [eax + 2]
+cmp ax, 0xa04
+sete cl
+cmp ax, 0xc04
+sete byte [ebp - 0x1c]
+or cl, byte [ebp - 0x1c]
+jne short loc_fffa1e83 ; jne 0xfffa1e83
+cmp ax, 0xa0c
+sete dl
+cmp ax, 0xd04
+sete al
+or edx, eax
+movzx edx, dl
+
+loc_fffa1e83:
+mov byte [ebx + 0x52], dl
+mov eax, dword [esi + 0x4e]
+mov dword [ebx + 0x8b], eax
+mov word [ebx + 0x8f], 0x3e8
+mov byte [ebx + 0x54], 0
+mov al, byte [esi + 0x2e]
+mov byte [ebx + 0x57], al
+mov al, byte [esi + 0x2f]
+mov byte [ebx + 0x6d8], al
+mov al, byte [esi + 0x30]
+mov byte [ebx + 0x6d9], al
+mov al, byte [esi + 0x31]
+mov byte [ebx + 0x6da], al
+mov al, byte [esi + 0x6b]
+mov byte [ebx + 0x6db], al
+mov al, byte [ebx + 0x6dc]
+mov dl, byte [esi + 0x32]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x33]
+and edx, 1
+and eax, 0xfffffffd
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x34]
+and edx, 1
+and eax, 0xfffffffb
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x35]
+and edx, 1
+and eax, 0xfffffff7
+shl edx, 3
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x36]
+and edx, 1
+and eax, 0xffffffef
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x37]
+and edx, 1
+and eax, 0xffffffdf
+shl edx, 5
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x38]
+and edx, 1
+and eax, 0xffffffbf
+shl edx, 6
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov dl, byte [esi + 0x39]
+shl edx, 7
+and eax, 0x7f
+or eax, edx
+mov byte [ebx + 0x6dc], al
+mov al, byte [ebx + 0x6dd]
+mov dl, byte [esi + 0x3a]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov dl, byte [esi + 0x3b]
+and edx, 1
+and eax, 0xfffffffd
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov dl, byte [esi + 0x3c]
+and edx, 1
+and eax, 0xfffffffb
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov dl, byte [esi + 0x3e]
+and edx, 1
+and eax, 0xffffffef
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov dl, byte [esi + 0x3f]
+and edx, 1
+and eax, 0xffffffdf
+shl edx, 5
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov dl, byte [esi + 0x40]
+and edx, 1
+and eax, 0xffffffbf
+shl edx, 6
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov dl, byte [esi + 0x41]
+shl edx, 7
+and eax, 0x7f
+or eax, edx
+mov byte [ebx + 0x6dd], al
+mov al, byte [ebx + 0x6de]
+mov dl, byte [esi + 0x42]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x6de], al
+mov dl, byte [esi + 0x43]
+and edx, 1
+and eax, 0xfffffffb
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x6de], al
+mov dl, byte [esi + 0x44]
+and edx, 1
+and eax, 0xfffffff7
+shl edx, 3
+or eax, edx
+mov byte [ebx + 0x6de], al
+mov dl, byte [esi + 0x47]
+and edx, 1
+and eax, 0xffffffbf
+shl edx, 6
+or eax, edx
+mov byte [ebx + 0x6de], al
+mov dl, byte [esi + 0x48]
+shl edx, 7
+and eax, 0x7f
+or eax, edx
+mov byte [ebx + 0x6de], al
+mov al, byte [ebx + 0x6df]
+mov dl, byte [esi + 0x49]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x6df], al
+mov dl, byte [esi + 0x4a]
+and edx, 1
+and eax, 0xfffffffd
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x6df], al
+mov dl, byte [esi + 0x4b]
+and edx, 1
+and eax, 0xfffffffb
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x6df], al
+cmp byte [edi], 1
+jbe short loc_fffa20cf ; jbe 0xfffa20cf
+mov dl, byte [esi + 0x58]
+and eax, 0xfffffff7
+and edx, 1
+shl edx, 3
+or eax, edx
+mov byte [ebx + 0x6df], al
+mov dl, byte [esi + 0x59]
+and edx, 1
+and eax, 0xffffffef
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x6df], al
+mov dl, byte [esi + 0x5a]
+and edx, 1
+and eax, 0xffffffdf
+shl edx, 5
+or eax, edx
+jmp short loc_fffa20d5 ; jmp 0xfffa20d5
+
+loc_fffa20cf:
+and eax, 0xffffffe7
+or eax, 0x20
+
+loc_fffa20d5:
+mov byte [ebx + 0x6df], al
+cmp byte [edi], 3
+mov al, byte [ebx + 0x6de]
+jbe short loc_fffa213a ; jbe 0xfffa213a
+mov dl, byte [esi + 0x5c]
+and eax, 0xfffffffd
+and edx, 1
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x6de], al
+mov al, byte [esi + 0x5d]
+mov byte [ebx + 0x91], al
+mov al, byte [esi + 0x5e]
+mov byte [ebx + 0x92], al
+mov al, byte [esi + 0x5f]
+mov byte [ebx + 0x93], al
+mov al, byte [esi + 0x60]
+mov byte [ebx + 0x94], al
+mov al, byte [esi + 0x61]
+mov byte [ebx + 0x95], al
+mov al, byte [esi + 0x62]
+mov byte [ebx + 0x96], al
+mov al, byte [esi + 0x63]
+mov byte [ebx + 0x97], al
+jmp short loc_fffa2174 ; jmp 0xfffa2174
+
+loc_fffa213a:
+or eax, 2
+mov byte [ebx + 0x91], 0xff
+mov byte [ebx + 0x6de], al
+mov byte [ebx + 0x92], 0x40
+mov byte [ebx + 0x93], 1
+mov byte [ebx + 0x94], 1
+mov byte [ebx + 0x95], 0
+mov byte [ebx + 0x96], 7
+mov byte [ebx + 0x97], 0
+
+loc_fffa2174:
+cmp byte [edi], 4
+jbe short loc_fffa219c ; jbe 0xfffa219c
+mov eax, dword [esi + 0x64]
+mov edx, 0x5f5e100
+cmp eax, 0x55d4a7f
+jbe short loc_fffa2197 ; jbe 0xfffa2197
+mov ecx, 0xf4240
+xor edx, edx
+div ecx
+imul edx, eax, 0xf4240
+
+loc_fffa2197:
+mov dword [ebx + 0x21], edx
+jmp short loc_fffa21a3 ; jmp 0xfffa21a3
+
+loc_fffa219c:
+mov dword [ebx + 0x21], 0x5f5e100
+
+loc_fffa21a3:
+cmp byte [edi], 5
+mov dl, byte [ebx + 0x6df]
+jbe short loc_fffa21be ; jbe 0xfffa21be
+mov al, byte [esi + 0x6a]
+and edx, 0xffffffbf
+and eax, 1
+shl eax, 6
+or edx, eax
+jmp short loc_fffa21c1 ; jmp 0xfffa21c1
+
+loc_fffa21be:
+or edx, 0x40
+
+loc_fffa21c1:
+mov byte [ebx + 0x6df], dl
+cmp byte [edi], 8
+jbe short loc_fffa2203 ; jbe 0xfffa2203
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x2b]
+shr eax, 0x14
+mov dword [ebx + 0x83], eax
+mov al, byte [esi + 0x6c]
+mov byte [ebx + 0x98], al
+mov al, byte [esi + 0x6d]
+mov byte [ebx + 0x99], al
+mov ax, word [esi + 0x6e]
+mov word [ebx + 0x9a], ax
+mov al, byte [esi + 0x70]
+mov byte [ebx + 0x9c], al
+jmp short loc_fffa222b ; jmp 0xfffa222b
+
+loc_fffa2203:
+mov dword [ebx + 0x83], 4
+mov byte [ebx + 0x98], 0
+mov byte [ebx + 0x99], 1
+mov word [ebx + 0x9a], 0x30ce
+mov byte [ebx + 0x9c], 1
+
+loc_fffa222b:
+cmp byte [edi], 9
+jbe loc_fffa251b ; jbe 0xfffa251b
+mov al, byte [esi + 0x71]
+mov byte [ebx + 0x9d], al
+mov al, byte [esi + 0x72]
+mov byte [ebx + 0x9e], al
+mov al, byte [esi + 0x73]
+mov byte [ebx + 0x9f], al
+mov al, byte [esi + 0x74]
+mov byte [ebx + 0xa0], al
+mov eax, dword [ebx + 0x2d]
+cmp eax, 0x40650
+jne short loc_fffa226b ; jne 0xfffa226b
+mov dl, byte [esi + 0x75]
+mov byte [ebx + 0xa1], dl
+
+loc_fffa226b:
+mov dl, byte [esi + 0x76]
+cmp eax, 0x40650
+mov byte [ebx + 0xa2], dl
+mov dl, byte [esi + 0x77]
+mov byte [ebx + 0xa3], dl
+mov dl, byte [esi + 0x78]
+mov byte [ebx + 0xa4], dl
+mov dl, byte [esi + 0x79]
+mov byte [ebx + 0xa5], dl
+mov dl, byte [esi + 0x7a]
+mov byte [ebx + 0xa6], dl
+mov dl, byte [esi + 0x7b]
+mov byte [ebx + 0xa8], dl
+mov dl, byte [esi + 0x7c]
+mov byte [ebx + 0xa7], dl
+mov dl, byte [esi + 0x7d]
+mov byte [ebx + 0xa9], dl
+mov dl, byte [esi + 0x7e]
+mov byte [ebx + 0xaa], dl
+mov dl, byte [esi + 0x7f]
+mov byte [ebx + 0xab], dl
+mov dl, byte [esi + 0x80]
+mov byte [ebx + 0xac], dl
+mov dx, word [esi + 0x81]
+mov word [ebx + 0xad], dx
+mov dl, byte [esi + 0x83]
+mov byte [ebx + 0xaf], dl
+mov dl, byte [esi + 0x84]
+mov byte [ebx + 0xb0], dl
+mov dl, byte [esi + 0x85]
+mov byte [ebx + 0xb1], dl
+mov dx, word [esi + 0x86]
+mov word [ebx + 0xb2], dx
+mov dl, byte [esi + 0x88]
+mov byte [ebx + 0xb4], dl
+mov dl, byte [esi + 0x89]
+mov byte [ebx + 0xb5], dl
+mov dl, byte [esi + 0x8a]
+mov byte [ebx + 0xb6], dl
+mov dl, byte [esi + 0x8b]
+mov byte [ebx + 0xb7], dl
+mov dl, byte [esi + 0x8c]
+mov byte [ebx + 0xb8], dl
+mov dl, byte [esi + 0x8d]
+mov byte [ebx + 0xb9], dl
+mov dl, byte [esi + 0x8e]
+mov byte [ebx + 0xba], dl
+mov dl, byte [esi + 0x8f]
+mov byte [ebx + 0xbb], dl
+mov dl, byte [esi + 0x90]
+mov byte [ebx + 0xbc], dl
+mov dl, byte [esi + 0x91]
+mov byte [ebx + 0xbd], dl
+mov dl, byte [esi + 0x92]
+mov byte [ebx + 0xbe], dl
+mov dl, byte [esi + 0x93]
+mov byte [ebx + 0xbf], dl
+mov dl, byte [esi + 0x94]
+mov byte [ebx + 0xc0], dl
+mov dl, byte [esi + 0x95]
+mov byte [ebx + 0xc1], dl
+mov dl, byte [esi + 0x96]
+mov byte [ebx + 0xc2], dl
+mov dl, byte [esi + 0x97]
+mov byte [ebx + 0xc3], dl
+mov dl, byte [esi + 0x98]
+mov byte [ebx + 0xc5], dl
+mov dl, byte [esi + 0x99]
+mov byte [ebx + 0xc4], dl
+mov dl, byte [esi + 0xa2]
+mov byte [ebx + 0xc7], dl
+mov dl, byte [esi + 0xa3]
+mov byte [ebx + 0xc6], dl
+mov dl, byte [esi + 0x9a]
+mov byte [ebx + 0xc9], dl
+mov dl, byte [esi + 0x9b]
+mov byte [ebx + 0xc8], dl
+mov dl, byte [esi + 0xa4]
+mov byte [ebx + 0xcb], dl
+mov dl, byte [esi + 0xa5]
+mov byte [ebx + 0xca], dl
+mov dl, byte [esi + 0x9c]
+mov byte [ebx + 0xcd], dl
+mov dl, byte [esi + 0x9d]
+mov byte [ebx + 0xcc], dl
+mov dl, byte [esi + 0xa6]
+mov byte [ebx + 0xcf], dl
+mov dl, byte [esi + 0xa7]
+mov byte [ebx + 0xce], dl
+mov dl, byte [esi + 0x9e]
+mov byte [ebx + 0xd1], dl
+mov dl, byte [esi + 0x9f]
+mov byte [ebx + 0xd0], dl
+mov dl, byte [esi + 0xa8]
+mov byte [ebx + 0xd3], dl
+mov dl, byte [esi + 0xa9]
+mov byte [ebx + 0xd2], dl
+mov dl, byte [esi + 0xa0]
+mov byte [ebx + 0xd5], dl
+mov dl, byte [esi + 0xa1]
+mov byte [ebx + 0xd4], dl
+mov dl, byte [esi + 0xaa]
+mov byte [ebx + 0xd7], dl
+mov dl, byte [esi + 0xab]
+mov byte [ebx + 0xd6], dl
+mov dl, byte [esi + 0xac]
+mov byte [ebx + 0xd8], dl
+mov dx, word [esi + 0xad]
+mov word [ebx + 0xd9], dx
+mov dl, byte [esi + 0xaf]
+mov byte [ebx + 0xdb], dl
+mov dl, byte [esi + 0xb0]
+mov byte [ebx + 0xdc], dl
+jne loc_fffa2673 ; jne 0xfffa2673
+mov al, byte [esi + 0xb1]
+mov byte [ebx + 0xdd], al
+mov al, byte [esi + 0xb2]
+mov byte [ebx + 0xde], al
+jmp near loc_fffa2673 ; jmp 0xfffa2673
+
+loc_fffa251b:
+mov ecx, dword [ebx + 0x2d]
+mov byte [ebx + 0x9d], 0
+cmp ecx, 0x40650
+mov byte [ebx + 0x9e], 0
+mov byte [ebx + 0x9f], 0
+mov byte [ebx + 0xa0], 1
+jne short loc_fffa2549 ; jne 0xfffa2549
+mov byte [ebx + 0xa1], 0
+
+loc_fffa2549:
+mov byte [ebx + 0xa2], 0
+mov byte [ebx + 0xa3], 1
+mov byte [ebx + 0xa4], 0
+mov byte [ebx + 0xa6], 3
+mov byte [ebx + 0xa9], 0
+mov byte [ebx + 0xaa], 0
+mov byte [ebx + 0xab], 0
+mov byte [ebx + 0xac], 0
+mov word [ebx + 0xad], 0
+mov byte [ebx + 0xaf], 0
+mov byte [ebx + 0xb0], 0
+mov byte [ebx + 0xb1], 0
+mov word [ebx + 0xb2], 0
+mov eax, ebx
+xor edx, edx
+
+loc_fffa25ac:
+mov byte [ebx + edx + 0xa7], 0
+inc edx
+mov byte [eax + 0xb4], 0xff
+mov byte [eax + 0xb8], 0xff
+mov byte [eax + 0xbc], 0xff
+mov byte [eax + 0xc0], 0xff
+mov byte [eax + 0xc4], 0
+mov byte [eax + 0xc8], 0
+mov byte [eax + 0xcc], 0
+mov byte [eax + 0xd0], 0
+mov byte [eax + 0xd4], 0
+mov byte [eax + 0xb5], 0xff
+mov byte [eax + 0xb9], 0xff
+mov byte [eax + 0xbd], 0xff
+mov byte [eax + 0xc1], 0xff
+mov byte [eax + 0xc5], 0
+mov byte [eax + 0xc9], 0
+mov byte [eax + 0xcd], 0
+mov byte [eax + 0xd1], 0
+mov byte [eax + 0xd5], 0
+add eax, 2
+cmp edx, 2
+jne loc_fffa25ac ; jne 0xfffa25ac
+cmp ecx, 0x40650
+mov byte [ebx + 0xd8], 1
+mov word [ebx + 0xd9], 0x200
+mov byte [ebx + 0xdb], 0
+mov byte [ebx + 0xdc], 0x30
+jne short loc_fffa2673 ; jne 0xfffa2673
+mov byte [ebx + 0xdd], 1
+mov byte [ebx + 0xde], 0x40
+
+loc_fffa2673:
+cmp byte [edi], 0xa
+jbe short loc_fffa2698 ; jbe 0xfffa2698
+mov al, byte [esi + 0xc2]
+mov byte [ebx + 0x59], al
+mov al, byte [esi + 0xc3]
+mov byte [ebx + 0x5a], al
+mov al, byte [esi + 0xc4]
+mov byte [ebx + 0x6e5], al
+jmp short loc_fffa26a7 ; jmp 0xfffa26a7
+
+loc_fffa2698:
+mov byte [ebx + 0x59], 1
+mov byte [ebx + 0x5a], 1
+mov byte [ebx + 0x6e5], 0
+
+loc_fffa26a7:
+cmp byte [edi], 0xb
+mov al, byte [ebx + 0x6dd]
+jbe short loc_fffa26c5 ; jbe 0xfffa26c5
+mov dl, byte [esi + 0xc5]
+and eax, 0xfffffff7
+and edx, 1
+shl edx, 3
+or eax, edx
+jmp short loc_fffa26c8 ; jmp 0xfffa26c8
+
+loc_fffa26c5:
+or eax, 8
+
+loc_fffa26c8:
+mov byte [ebx + 0x6dd], al
+cmp byte [edi], 0xe
+mov al, 1
+jbe short loc_fffa26de ; jbe 0xfffa26de
+mov al, byte [esi + 0xc7]
+and eax, 1
+
+loc_fffa26de:
+mov dl, al
+mov al, byte [ebx + 0x6de]
+shl edx, 4
+and eax, 0xffffffef
+or eax, edx
+mov dword [ebx + 0x41], 0
+mov byte [ebx + 0x6de], al
+mov byte [ebx + 0x40], 0
+mov al, byte [esi + 0x11]
+cmp dword [ebx + 0x2d], 0x40650
+mov byte [ebx + 0x56], al
+mov al, byte [esi + 0x2c]
+mov byte [ebx + 0x58], al
+mov al, byte [esi]
+mov byte [ebx + 0x53], al
+mov al, byte [esi + 0x52]
+mov byte [ebx + 0x6e1], al
+jne short loc_fffa2732 ; jne 0xfffa2732
+mov al, byte [esi + 0x57]
+mov byte [ebx + 0x6e3], 0
+mov byte [ebx + 0x6e2], al
+
+loc_fffa2732:
+lea ecx, [ebx + 0xdf]
+mov byte [ebx + 0xe3], 0
+mov dword [ebp - 0x1c], 0
+
+loc_fffa2746:
+imul edx, dword [ebp - 0x1c], 0x2fa
+add edx, ecx
+mov eax, edx
+mov dword [ebp - 0x28], edx
+mov edx, dword [ebp - 0x1c]
+add eax, 5
+mov dl, byte [esi + edx + 0x2a]
+cmp dl, 2
+mov byte [ebp - 0x20], dl
+je short loc_fffa2782 ; je 0xfffa2782
+cmp dl, 3
+je short loc_fffa27a9 ; je 0xfffa27a9
+dec dl
+jne short loc_fffa27cd ; jne 0xfffa27cd
+mov dword [eax + 8], 1
+mov dword [eax + 0x157], 0
+jmp short loc_fffa2793 ; jmp 0xfffa2793
+
+loc_fffa2782:
+mov dword [eax + 8], 0
+mov dword [eax + 0x157], 1
+
+loc_fffa2793:
+mov edx, dword [ebp - 0x28]
+mov dword [edx + 5], 2
+inc byte [ecx + 4]
+mov dword [eax + 4], 1
+jmp short loc_fffa27f2 ; jmp 0xfffa27f2
+
+loc_fffa27a9:
+mov edx, dword [ebp - 0x28]
+mov dword [eax + 8], 1
+mov dword [eax + 0x157], 1
+mov dword [edx + 5], 1
+mov dword [eax + 4], 0
+jmp short loc_fffa27f2 ; jmp 0xfffa27f2
+
+loc_fffa27cd:
+mov edx, dword [ebp - 0x28]
+mov dword [eax + 8], 0
+mov dword [eax + 0x157], 0
+mov dword [edx + 5], 2
+inc byte [ecx + 4]
+mov dword [eax + 4], 2
+
+loc_fffa27f2:
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 2
+jne loc_fffa2746 ; jne 0xfffa2746
+mov eax, dword [edi + 1]
+mov al, byte [eax]
+mov byte [ebx + 0x23a], al
+mov eax, dword [edi + 1]
+mov al, byte [eax + 1]
+mov byte [ebx + 0x389], al
+mov eax, dword [edi + 1]
+mov al, byte [eax + 2]
+mov byte [ebx + 0x534], al
+mov eax, dword [edi + 1]
+mov al, byte [eax + 3]
+mov byte [ebx + 0x683], al
+mov eax, dword [0xff7d7538]
+mov eax, dword [eax]
+cmp dword [eax - 4], 0xfeadb00b
+jne short loc_fffa2850 ; jne 0xfffa2850
+mov eax, dword [eax + 0x258]
+xor esi, esi
+add eax, 0xe2
+mov dword [ebp - 0x2c], eax
+jmp short loc_fffa28bb ; jmp 0xfffa28bb
+
+loc_fffa2850:
+jmp short loc_fffa2850 ; jmp 0xfffa2850
+
+loc_fffa2852:
+imul eax, dword [ebp - 0x1c], 0x14f
+mov ecx, dword [ebp - 0x28]
+lea edx, [eax + ecx + 0xd0]
+add edx, ebx
+cmp byte [edx + 0x16a], 0xff
+lea eax, [edx + 0x1c]
+mov dword [ebp - 0x20], eax
+jne short loc_fffa28ac ; jne 0xfffa28ac
+cmp dword [edx + 0x1c], 0
+jne short loc_fffa28ac ; jne 0xfffa28ac
+push eax
+push dword [ebp - 0x1c]
+mov dword [ebp - 0x30], edx
+push esi
+push ref_fffcc46a ; push 0xfffcc46a
+call fcn_fffa1253 ; call 0xfffa1253
+mov edx, dword [ebp - 0x30]
+mov ecx, 0x100
+lea eax, [edx + 0x40]
+mov edx, dword [ebp - 0x2c]
+call fcn_fffa115e ; call 0xfffa115e
+mov edx, dword [ebp - 0x20]
+add esp, 0x10
+mov byte [edx + 0x14e], 0
+
+loc_fffa28ac:
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 2
+jne short loc_fffa2852 ; jne 0xfffa2852
+inc esi
+cmp esi, 2
+je short loc_fffa28cd ; je 0xfffa28cd
+
+loc_fffa28bb:
+imul ecx, esi, 0x2fa
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x28], ecx
+jmp short loc_fffa2852 ; jmp 0xfffa2852
+
+loc_fffa28cd:
+cmp dword [ebp - 0x24], 2
+je short loc_fffa28f8 ; je 0xfffa28f8
+cmp dword [ebp - 0x24], 3
+je short loc_fffa28ff ; je 0xfffa28ff
+cmp dword [ebp - 0x24], 1
+jne short loc_fffa2912 ; jne 0xfffa2912
+cmp dword [ebx + 0x49], 1
+mov esi, 1
+jne short loc_fffa292d ; jne 0xfffa292d
+mov edx, edi
+mov eax, ebx
+call fcn_fffa0020 ; call 0xfffa0020
+mov esi, dword [ebp - 0x24]
+jmp short loc_fffa292d ; jmp 0xfffa292d
+
+loc_fffa28f8:
+mov esi, 2
+jmp short loc_fffa291e ; jmp 0xfffa291e
+
+loc_fffa28ff:
+mov edx, ebx
+mov eax, 3
+call fcn_fffa91af ; call 0xfffa91af
+mov esi, 3
+jmp short loc_fffa291e ; jmp 0xfffa291e
+
+loc_fffa2912:
+mov edx, ebx
+mov eax, dword [ebp - 0x24]
+call fcn_fffa91af ; call 0xfffa91af
+xor esi, esi
+
+loc_fffa291e:
+cmp dword [ebx + 0x49], 1
+jne short loc_fffa292d ; jne 0xfffa292d
+mov edx, edi
+mov eax, ebx
+call fcn_fffa0020 ; call 0xfffa0020
+
+loc_fffa292d:
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa2937:
+push ebp
+lea edx, [eax + 3]
+and edx, 0xfffffffc
+mov ebp, esp
+lea esp, [esp - 8]
+mov eax, dword [0xff7d0000]
+test eax, eax
+jne short loc_fffa2959 ; jne 0xfffa2959
+mov dword [0xff7d0004], 0xff7d0008
+jmp short loc_fffa297f ; jmp 0xfffa297f
+
+loc_fffa2959:
+mov ecx, dword [0xff7d0004]
+cmp dword [ecx + eax], 0x900ddea1
+je short loc_fffa297f ; je 0xfffa297f
+push edx
+push 0x35
+push ref_fffc9e88 ; push 0xfffc9e88
+push ref_fffcc48b ; push 0xfffcc48b
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+
+loc_fffa297d:
+jmp short loc_fffa297d ; jmp 0xfffa297d
+
+loc_fffa297f:
+lea ecx, [edx + eax]
+cmp ecx, 0x752c
+ja short loc_fffa29a1 ; ja 0xfffa29a1
+mov edx, dword [0xff7d0004]
+mov dword [0xff7d0000], ecx
+add eax, edx
+mov dword [edx + ecx], 0x900ddea1
+jmp short loc_fffa29b8 ; jmp 0xfffa29b8
+
+loc_fffa29a1:
+push edx
+push 0x43
+push ref_fffc9e88 ; push 0xfffc9e88
+push ref_fffcc4ab ; push 0xfffcc4ab
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+
+loc_fffa29b6:
+jmp short loc_fffa29b6 ; jmp 0xfffa29b6
+
+loc_fffa29b8:
+leave
+ret
+
+fcn_fffa29ba: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov ecx, dword [ebp + 8]
+mov edi, dword [ebp + 0x10]
+mov edx, dword [ebp + 0xc]
+movzx eax, di
+mov esi, dword [ebp + 0x14]
+mov ebx, dword [ecx]
+cmp dword [ebx - 4], 0xfeadb00b
+jne short loc_fffa29f2 ; jne 0xfffa29f2
+add eax, 4
+mov dword [ebp - 0x1c], edx
+call fcn_fffa2937 ; call 0xfffa2937
+test eax, eax
+mov edx, dword [ebp - 0x1c]
+jne short loc_fffa29f4 ; jne 0xfffa29f4
+jmp short loc_fffa2a1e ; jmp 0xfffa2a1e
+
+loc_fffa29f2: ; not directly referenced
+jmp short loc_fffa29f2 ; jmp 0xfffa29f2
+
+loc_fffa29f4: ; not directly referenced
+lea ecx, [eax + 4]
+mov dword [esi], ecx
+mov word [eax + 4], dx
+mov edx, dword [esi]
+mov word [edx + 2], di
+mov edx, dword [esi]
+mov dword [edx + 4], 0
+mov edx, dword [ebx + 0x254]
+mov dword [eax], edx
+mov dword [ebx + 0x254], eax
+xor eax, eax
+jmp short loc_fffa2a23 ; jmp 0xfffa2a23
+
+loc_fffa2a1e: ; not directly referenced
+mov eax, 0x80000009
+
+loc_fffa2a23: ; not directly referenced
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa2a2c: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 8]
+movzx edx, byte [eax + 0xf]
+push edx
+movzx edx, byte [eax + 0xe]
+push edx
+movzx edx, byte [eax + 0xd]
+push edx
+movzx edx, byte [eax + 0xc]
+push edx
+movzx edx, byte [eax + 0xb]
+push edx
+movzx edx, byte [eax + 0xa]
+push edx
+movzx edx, byte [eax + 9]
+push edx
+movzx edx, byte [eax + 8]
+push edx
+movzx edx, word [eax + 6]
+push edx
+movzx edx, word [eax + 4]
+push edx
+push dword [eax]
+push ref_fffcc4d1 ; push 0xfffcc4d1
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x30
+leave
+ret
+
+fcn_fffa2a76: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov edx, dword [ebp + 8]
+mov eax, dword [ebp + 0xc]
+mov edx, dword [edx]
+cmp dword [edx - 4], 0xfeadb00b
+jne short loc_fffa2aa4 ; jne 0xfffa2aa4
+lea ecx, [edx - 4]
+mov edx, dword [edx + 0x15c]
+mov dword [ebp - 0x20], edx
+mov dword [ebp - 0x1c], ecx
+xor edx, edx
+jmp short loc_fffa2aea ; jmp 0xfffa2aea
+
+loc_fffa2aa4: ; not directly referenced
+jmp short loc_fffa2aa4 ; jmp 0xfffa2aa4
+
+loc_fffa2aa6: ; not directly referenced
+imul ecx, edx, 0xc
+mov ebx, dword [ebp - 0x1c]
+lea edi, [ebx + ecx + 0x70]
+mov ebx, dword [eax]
+mov ecx, dword [edi + 4]
+mov esi, dword [ecx + 4]
+cmp dword [eax + 4], esi
+jne short loc_fffa2ad7 ; jne 0xfffa2ad7
+cmp ebx, dword [ecx]
+jne short loc_fffa2ad7 ; jne 0xfffa2ad7
+mov esi, dword [eax + 8]
+mov ebx, dword [eax + 0xc]
+xor esi, dword [ecx + 8]
+xor ebx, dword [ecx + 0xc]
+or esi, ebx
+sete cl
+movzx ecx, cl
+jmp short loc_fffa2ad9 ; jmp 0xfffa2ad9
+
+loc_fffa2ad7: ; not directly referenced
+xor ecx, ecx
+
+loc_fffa2ad9: ; not directly referenced
+test ecx, ecx
+je short loc_fffa2ae9 ; je 0xfffa2ae9
+mov eax, dword [ebp + 0x18]
+mov edx, dword [edi + 8]
+mov dword [eax], edx
+xor eax, eax
+jmp short loc_fffa2af9 ; jmp 0xfffa2af9
+
+loc_fffa2ae9: ; not directly referenced
+inc edx
+
+loc_fffa2aea: ; not directly referenced
+cmp edx, dword [ebp - 0x20]
+jl short loc_fffa2aa6 ; jl 0xfffa2aa6
+call fcn_fffa2a2c ; call 0xfffa2a2c
+mov eax, 0x8000000e
+
+loc_fffa2af9: ; not directly referenced
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa2b02: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov edx, dword [ebp + 8]
+mov ebx, dword [edx]
+cmp dword [ebx - 4], 0xfeadb00b
+jne short loc_fffa2b1f ; jne 0xfffa2b1f
+sub ebx, 4
+jmp short loc_fffa2b21 ; jmp 0xfffa2b21
+
+loc_fffa2b1f: ; not directly referenced
+jmp short loc_fffa2b1f ; jmp 0xfffa2b1f
+
+loc_fffa2b21: ; not directly referenced
+mov edi, dword [ebx + 0x160]
+xor esi, esi
+mov dword [ebp - 0x1c], edi
+jmp short loc_fffa2b87 ; jmp 0xfffa2b87
+
+loc_fffa2b2e: ; not directly referenced
+mov edx, dword [ebp + 0xc]
+mov eax, dword [edx + 4]
+imul edx, esi, 0xc
+mov edi, dword [eax + 4]
+mov edx, dword [ebx + edx + 0x74]
+cmp dword [edx + 4], edi
+mov ecx, dword [edx]
+jne short loc_fffa2b5f ; jne 0xfffa2b5f
+cmp ecx, dword [eax]
+jne short loc_fffa2b5f ; jne 0xfffa2b5f
+mov ecx, dword [edx + 8]
+mov edx, dword [edx + 0xc]
+xor ecx, dword [eax + 8]
+xor edx, dword [eax + 0xc]
+or ecx, edx
+sete al
+movzx eax, al
+jmp short loc_fffa2b61 ; jmp 0xfffa2b61
+
+loc_fffa2b5f: ; not directly referenced
+xor eax, eax
+
+loc_fffa2b61: ; not directly referenced
+test eax, eax
+je short loc_fffa2b86 ; je 0xfffa2b86
+push eax
+push eax
+push ref_fffc9eec ; push 0xfffc9eec
+push ref_fffcc505 ; push 0xfffcc505
+call fcn_fffa1253 ; call 0xfffa1253
+mov edx, dword [ebp + 0xc]
+mov eax, dword [edx + 4]
+call fcn_fffa2a2c ; call 0xfffa2a2c
+add esp, 0x10
+jmp short loc_fffa2b8c ; jmp 0xfffa2b8c
+
+loc_fffa2b86: ; not directly referenced
+inc esi
+
+loc_fffa2b87: ; not directly referenced
+cmp esi, dword [ebp - 0x1c]
+jne short loc_fffa2b2e ; jne 0xfffa2b2e
+
+loc_fffa2b8c: ; not directly referenced
+cmp esi, dword [ebx + 0x160]
+jne short loc_fffa2bc0 ; jne 0xfffa2bc0
+cmp esi, 0x13
+jbe short loc_fffa2bb7 ; jbe 0xfffa2bb7
+push eax
+push eax
+push ref_fffc9eec ; push 0xfffc9eec
+push ref_fffcc519 ; push 0xfffcc519
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+mov eax, 0x80000009
+jmp near loc_fffa2c49 ; jmp 0xfffa2c49
+
+loc_fffa2bb7: ; not directly referenced
+lea eax, [esi + 1]
+mov dword [ebx + 0x160], eax
+
+loc_fffa2bc0: ; not directly referenced
+imul esi, esi, 0xc
+mov ecx, 3
+lea eax, [ebx + esi + 0x70]
+mov esi, dword [ebp + 0xc]
+mov edi, eax
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+xor esi, esi
+jmp short loc_fffa2c2c ; jmp 0xfffa2c2c
+
+loc_fffa2bd7: ; not directly referenced
+imul eax, esi, 0xc
+mov edi, dword [ebp + 0xc]
+lea ecx, [ebx + eax + 0x164]
+mov eax, dword [edi + 4]
+mov edx, dword [ecx + 4]
+mov edi, dword [edx]
+mov dword [ebp - 0x1c], edi
+mov edi, dword [eax + 4]
+cmp dword [edx + 4], edi
+jne short loc_fffa2c14 ; jne 0xfffa2c14
+mov edi, dword [ebp - 0x1c]
+cmp edi, dword [eax]
+jne short loc_fffa2c14 ; jne 0xfffa2c14
+mov edi, dword [edx + 8]
+mov edx, dword [edx + 0xc]
+xor edi, dword [eax + 8]
+xor edx, dword [eax + 0xc]
+or edi, edx
+sete al
+movzx eax, al
+jmp short loc_fffa2c16 ; jmp 0xfffa2c16
+
+loc_fffa2c14: ; not directly referenced
+xor eax, eax
+
+loc_fffa2c16: ; not directly referenced
+test eax, eax
+je short loc_fffa2c2b ; je 0xfffa2c2b
+mov eax, dword [ebp + 0xc]
+push edi
+push dword [eax + 8]
+push ecx
+push dword [ebp + 8]
+call dword [ecx + 8] ; ucall
+add esp, 0x10
+
+loc_fffa2c2b: ; not directly referenced
+inc esi
+
+loc_fffa2c2c: ; not directly referenced
+cmp esi, dword [ebx + 0x254]
+jb short loc_fffa2bd7 ; jb 0xfffa2bd7
+mov edx, dword [ebp + 0xc]
+mov eax, dword [edx]
+add edx, 0xc
+test eax, eax
+mov dword [ebp + 0xc], edx
+jns loc_fffa2b21 ; jns 0xfffa2b21
+xor eax, eax
+
+loc_fffa2c49: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa2c51:
+push ebp
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x5ac]
+mov esi, ref_fffc9e38 ; mov esi, 0xfffc9e38
+push ebx
+mov ebx, 0xd
+lea esp, [esp - 0x65c]
+mov ecx, ebx
+mov dword [ebp - 0x63c], eax
+mov al, dl
+rep stosb ; rep stosb byte es:[edi], al
+mov ebx, ecx
+mov ecx, dword [ebp - 0x63c]
+lea edi, [ebp - 0x59f]
+mov dword [ebp - 0x5dc], 0
+mov dword [ebp - 0x5d8], 0
+mov dword [ebp - 0x5d4], 0
+mov dword [ebp - 0x5d0], fcn_fffa10c8 ; mov dword [ebp - 0x5d0], 0xfffa10c8
+mov byte [ebp - 0x60a], 1
+mov eax, dword [ecx + 0x1e]
+mov ecx, 0xd
+mov dword [ebp - 0x609], eax
+mov al, dl
+rep stosb ; rep stosb byte es:[edi], al
+lea eax, [ebp - 0x59f]
+lea edi, [ebp - 0x635]
+mov dword [ebp - 0x5c8], eax
+mov cl, 3
+mov al, dl
+mov dword [ebp - 0x5cc], 1
+rep stosb ; rep stosb byte es:[edi], al
+lea edi, [ebp - 0x605]
+mov cl, 5
+rep stosb ; rep stosb byte es:[edi], al
+mov eax, dword [ebp - 0x63c]
+lea edi, [ebp - 0x508]
+mov byte [ebp - 0x635], 2
+mov byte [ebp - 0x633], 1
+mov eax, dword [eax + 0x42]
+mov dword [ebp - 0x664], eax
+mov al, byte [ebp - 0x605]
+mov cl, byte [ebp - 0x664]
+and eax, 0xfffffffe
+and ecx, 1
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x605], al
+mov eax, dword [ecx + 0x2e]
+mov ecx, 8
+mov dword [ebp - 0x604], eax
+mov eax, ebx
+rep stosd ; rep stosd dword es:[edi], eax
+mov al, dl
+lea edi, [ebp - 0x403]
+mov cl, 0xc3
+rep stosb ; rep stosb byte es:[edi], al
+mov byte [ebp - 0x403], 1
+mov eax, dword [ebp - 0x63c]
+lea edi, [ebp - 0x632]
+mov cl, byte [eax + 0x74]
+mov al, byte [ebp - 0x402]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x402], al
+mov al, byte [ecx + 0x76]
+mov byte [ebp - 0x401], al
+mov ax, word [ecx + 0x72]
+mov word [ebp - 0x400], ax
+mov cl, byte [ecx + 0x79]
+mov al, byte [ebp - 0x3fc]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3fc], al
+mov al, byte [ecx + 0x7b]
+mov byte [ebp - 0x3fb], al
+mov ax, word [ecx + 0x77]
+mov word [ebp - 0x3fa], ax
+mov cl, byte [ecx + 0x7e]
+mov al, byte [ebp - 0x3f6]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3f6], al
+mov al, byte [ecx + 0x80]
+mov byte [ebp - 0x3f5], al
+mov ax, word [ecx + 0x7c]
+mov word [ebp - 0x3f4], ax
+mov cl, byte [ecx + 0x83]
+mov al, byte [ebp - 0x3f0]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3f0], al
+mov al, byte [ecx + 0x85]
+mov byte [ebp - 0x3ef], al
+mov ax, word [ecx + 0x81]
+mov word [ebp - 0x3ee], ax
+mov cl, byte [ecx + 0x88]
+mov al, byte [ebp - 0x3ea]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [ebp - 0x3ea], al
+mov ecx, dword [ebp - 0x63c]
+mov al, byte [ecx + 0x8a]
+mov byte [ebp - 0x3e9], al
+mov ax, word [ecx + 0x86]
+mov word [ebp - 0x3e8], ax
+mov cl, byte [ecx + 0x8d]
+mov al, byte [ebp - 0x3e4]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3e4], al
+mov al, byte [ecx + 0x8f]
+mov byte [ebp - 0x3e3], al
+mov ax, word [ecx + 0x8b]
+mov word [ebp - 0x3e2], ax
+mov cl, byte [ecx + 0x92]
+mov al, byte [ebp - 0x3de]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3de], al
+mov al, byte [ecx + 0x94]
+mov byte [ebp - 0x3dd], al
+mov ax, word [ecx + 0x90]
+mov word [ebp - 0x3dc], ax
+mov cl, byte [ecx + 0x97]
+mov al, byte [ebp - 0x3d8]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3d8], al
+mov al, byte [ecx + 0x99]
+mov byte [ebp - 0x3d7], al
+mov ax, word [ecx + 0x95]
+mov word [ebp - 0x3d6], ax
+mov cl, byte [ecx + 0x9c]
+mov al, byte [ebp - 0x3d2]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3d2], al
+mov al, byte [ecx + 0x9e]
+mov byte [ebp - 0x3d1], al
+mov ax, word [ecx + 0x9a]
+mov word [ebp - 0x3d0], ax
+mov cl, byte [ecx + 0xa1]
+mov al, byte [ebp - 0x3cc]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3cc], al
+mov al, byte [ecx + 0xa3]
+mov byte [ebp - 0x3cb], al
+mov ax, word [ecx + 0x9f]
+mov word [ebp - 0x3ca], ax
+mov cl, byte [ecx + 0xa6]
+mov al, byte [ebp - 0x3c6]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3c6], al
+mov al, byte [ecx + 0xa8]
+mov byte [ebp - 0x3c5], al
+mov ax, word [ecx + 0xa4]
+mov word [ebp - 0x3c4], ax
+mov cl, byte [ecx + 0xab]
+mov al, byte [ebp - 0x3c0]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3c0], al
+mov al, byte [ecx + 0xad]
+mov byte [ebp - 0x3bf], al
+mov ax, word [ecx + 0xa9]
+mov word [ebp - 0x3be], ax
+mov cl, byte [ecx + 0xb0]
+mov al, byte [ebp - 0x3ba]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3ba], al
+mov al, byte [ecx + 0xb2]
+mov byte [ebp - 0x3b9], al
+mov ax, word [ecx + 0xae]
+mov word [ebp - 0x3b8], ax
+mov al, byte [ebp - 0x3b4]
+mov cl, byte [ecx + 0xb5]
+and eax, 0xfffffffe
+and ecx, 1
+or byte [ebp - 0x3ae], 1
+or eax, ecx
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x3b4], al
+or byte [ebp - 0x3ad], 1
+mov al, byte [ecx + 0xb7]
+mov byte [ebp - 0x3b3], al
+mov ax, word [ecx + 0xb3]
+mov word [ebp - 0x3b2], ax
+mov al, byte [ebp - 0x3ac]
+and eax, 0xfffffffc
+or eax, 2
+mov byte [ebp - 0x3ac], al
+movzx eax, byte [ecx + 0x75]
+mov dword [ebp - 0x397], eax
+movzx eax, byte [ecx + 0x7a]
+mov dword [ebp - 0x393], eax
+movzx eax, byte [ecx + 0x7f]
+mov dword [ebp - 0x38f], eax
+movzx eax, byte [ecx + 0x84]
+mov dword [ebp - 0x38b], eax
+movzx eax, byte [ecx + 0x89]
+mov dword [ebp - 0x387], eax
+movzx eax, byte [ecx + 0x8e]
+mov dword [ebp - 0x383], eax
+movzx eax, byte [ecx + 0x93]
+mov dword [ebp - 0x37f], eax
+movzx eax, byte [ecx + 0x98]
+mov dword [ebp - 0x37b], eax
+movzx eax, byte [ecx + 0x9d]
+mov dword [ebp - 0x377], eax
+movzx eax, byte [ecx + 0xa2]
+mov dword [ebp - 0x373], eax
+movzx eax, byte [ecx + 0xa7]
+mov dword [ebp - 0x36f], eax
+movzx eax, byte [ecx + 0xac]
+mov dword [ebp - 0x36b], eax
+movzx eax, byte [ecx + 0xb1]
+mov dword [ebp - 0x367], eax
+movzx eax, byte [ecx + 0xb6]
+mov dword [ebp - 0x363], eax
+movzx eax, byte [ecx + 0xc3]
+mov dword [ebp - 0x35f], eax
+movzx eax, byte [ecx + 0xc5]
+mov dword [ebp - 0x35b], eax
+movzx eax, byte [ecx + 0xc7]
+mov dword [ebp - 0x357], eax
+movzx eax, byte [ecx + 0xc9]
+mov dword [ebp - 0x353], eax
+movzx eax, byte [ecx + 0xcb]
+mov dword [ebp - 0x34f], eax
+movzx eax, byte [ecx + 0xcd]
+mov cl, byte [ecx + 0xc2]
+mov dword [ebp - 0x34b], eax
+mov al, byte [ebp - 0x346]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [ebp - 0x346], al
+mov eax, dword [ebp - 0x63c]
+mov cl, byte [eax + 0xc4]
+mov al, byte [ebp - 0x345]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [ebp - 0x345], al
+mov eax, dword [ebp - 0x63c]
+mov cl, byte [eax + 0xc6]
+mov al, byte [ebp - 0x344]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [ebp - 0x344], al
+mov eax, dword [ebp - 0x63c]
+mov cl, byte [eax + 0xc8]
+mov al, byte [ebp - 0x343]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [ebp - 0x343], al
+mov eax, dword [ebp - 0x63c]
+mov byte [ebp - 0x4c0], 3
+mov byte [ebp - 0x4bf], 0
+mov dword [ebp - 0x4aa], 0
+mov byte [ebp - 0x565], 4
+mov cl, byte [eax + 0xca]
+mov al, byte [ebp - 0x342]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [ebp - 0x342], al
+mov eax, dword [ebp - 0x63c]
+mov cl, byte [eax + 0xcc]
+mov al, byte [ebp - 0x341]
+and ecx, 1
+and eax, 0xfffffffe
+or eax, ecx
+mov ecx, 3
+mov byte [ebp - 0x341], al
+mov eax, dword [ebp - 0x63c]
+cmp dword [eax + 0x46], 0
+mov al, dl
+rep stosb ; rep stosb byte es:[edi], al
+mov ecx, dword [ebp - 0x63c]
+lea eax, [ebp - 0x632]
+mov dword [ebp - 0x61a], eax
+lea edi, [ebp - 0x585]
+setne byte [ebp - 0x636]
+mov eax, dword [ecx + 0x22]
+mov dword [ebp - 0x4be], eax
+mov eax, dword [ecx + 0x26]
+mov word [ebp - 0x4ba], ax
+mov eax, dword [ecx + 0x2a]
+mov word [ebp - 0x4b8], ax
+mov ecx, 4
+lea eax, [ebp - 0x636]
+mov dword [ebp - 0x4b6], eax
+lea eax, [ebp - 0x61a]
+mov dword [ebp - 0x4b2], eax
+lea eax, [ebp - 0x60a]
+mov dword [ebp - 0x4ae], eax
+lea eax, [ebp - 0x5cc]
+mov dword [ebp - 0x4a6], eax
+lea eax, [ebp - 0x508]
+mov dword [ebp - 0x4a2], eax
+lea eax, [ebp - 0x635]
+mov dword [ebp - 0x49e], eax
+lea eax, [ebp - 0x605]
+mov dword [ebp - 0x49a], eax
+lea eax, [ebp - 0x403]
+mov dword [ebp - 0x496], eax
+mov dword [ebp - 0x564], eax
+mov byte [ebp - 0x560], 1
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov esi, ref_fffc9e48 ; mov esi, 0xfffc9e48
+lea edi, [ebp - 0x4e8]
+mov cl, 0xa
+mov al, dl
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x592]
+mov cl, 0xd
+rep stosb ; rep stosb byte es:[edi], al
+mov eax, ebx
+lea edi, [ebp - 0x340]
+mov cl, 0x32
+mov dword [ebp - 0x55f], 0xe8000000
+rep stosd ; rep stosd dword es:[edi], eax
+mov ecx, dword [ebp - 0x63c]
+mov dword [ebp - 0x55b], 0x800
+mov dword [ebp - 0x557], 0xe8100000
+mov word [ebp - 0x592], 0x800
+mov word [ebp - 0x590], 2
+mov byte [ebp - 0x58e], 1
+mov byte [ebp - 0x58d], 2
+mov byte [ebp - 0x58c], 3
+mov eax, dword [ecx + 0x4a]
+mov byte [ebp - 0x58b], 2
+mov byte [ebp - 0x316], al
+mov eax, dword [ecx + 0x4e]
+mov byte [ebp - 0x315], al
+mov byte [ebp - 0x340], 1
+mov byte [ebp - 0x33d], 1
+mov byte [ebp - 0x32f], 1
+mov byte [ebp - 0x31c], 1
+mov byte [ebp - 0x314], 1
+mov byte [ebp - 0x312], 1
+mov byte [ebp - 0x311], 1
+mov byte [ebp - 0x310], 4
+mov byte [ebp - 0x30f], 0xc
+mov byte [ebp - 0x30d], 1
+mov byte [ebp - 0x30c], 1
+mov byte [ebp - 0x30b], 1
+mov byte [ebp - 0x30a], 1
+mov byte [ebp - 0x308], 1
+mov eax, dword [ecx + 0x56]
+mov byte [ebp - 0x2e9], al
+mov eax, dword [ecx + 0x52]
+mov byte [ebp - 0x2d4], al
+mov byte [ebp - 0x2ca], al
+lea edi, [ebp - 0x463]
+mov eax, ebx
+mov ecx, 0x18
+mov byte [ebp - 0x307], 1
+mov byte [ebp - 0x306], 1
+mov byte [ebp - 0x304], 1
+mov byte [ebp - 0x302], 1
+mov byte [ebp - 0x300], 1
+mov byte [ebp - 0x2ff], 1
+mov byte [ebp - 0x2fe], 1
+mov byte [ebp - 0x2fd], 1
+mov byte [ebp - 0x2fc], 1
+mov byte [ebp - 0x2f9], 1
+mov byte [ebp - 0x2f8], 1
+mov byte [ebp - 0x2f7], 1
+mov byte [ebp - 0x2ea], 1
+mov byte [ebp - 0x2e6], 1
+mov byte [ebp - 0x2e4], 1
+mov byte [ebp - 0x2e3], 6
+mov byte [ebp - 0x2e2], 0x40
+mov byte [ebp - 0x2e1], 1
+mov byte [ebp - 0x2e0], 1
+mov byte [ebp - 0x2de], 7
+mov dword [ebp - 0x2dc], 0x5f5e100
+mov byte [ebp - 0x2d6], 1
+mov byte [ebp - 0x2d3], 1
+mov word [ebp - 0x2d2], 0x30ce
+mov byte [ebp - 0x2d0], 1
+mov byte [ebp - 0x2cc], 1
+mov byte [ebp - 0x2c9], 1
+mov byte [ebp - 0x2c6], 3
+mov byte [ebp - 0x2b8], 0xff
+rep stosd ; rep stosd dword es:[edi], eax
+mov al, dl
+lea edi, [ebp - 0x492]
+mov cl, 0x2f
+mov byte [ebp - 0x2b7], 0xff
+rep stosb ; rep stosb byte es:[edi], al
+mov ecx, dword [ebp - 0x63c]
+mov byte [ebp - 0x2b6], 0xff
+mov byte [ebp - 0x2b5], 0xff
+mov byte [ebp - 0x2b4], 0xff
+mov byte [ebp - 0x2b3], 0xff
+mov byte [ebp - 0x2b2], 0xff
+mov byte [ebp - 0x2b1], 0xff
+mov byte [ebp - 0x2b0], 0xff
+mov al, byte [ecx + 0x3a]
+mov byte [ebp - 0x2af], 0xff
+mov byte [ebp - 0x492], al
+mov al, byte [ecx + 0x3b]
+mov byte [ebp - 0x491], al
+mov al, byte [ecx + 0x3c]
+mov byte [ebp - 0x2ae], 0xff
+mov byte [ebp - 0x2ad], 0xff
+mov byte [ebp - 0x2ac], 0xff
+mov byte [ebp - 0x2ab], 0xff
+mov byte [ebp - 0x2aa], 0xff
+mov byte [ebp - 0x2a9], 0xff
+mov byte [ebp - 0x294], 1
+mov word [ebp - 0x293], 0x200
+mov byte [ebp - 0x290], 0x30
+mov byte [ebp - 0x28f], 1
+mov byte [ebp - 0x28e], 0x40
+mov byte [ebp - 0x27e], 1
+mov byte [ebp - 0x27d], 1
+mov byte [ebp - 0x27b], 1
+mov byte [ebp - 0x462], 1
+mov byte [ebp - 0x461], 1
+mov byte [ebp - 0x460], 1
+mov byte [ebp - 0x490], al
+mov al, byte [ecx + 0x3d]
+lea edi, [ebp - 0x575]
+mov byte [ebp - 0x48f], al
+mov eax, dword [ecx + 4]
+mov dword [ebp - 0x48e], eax
+mov eax, dword [ecx + 8]
+mov dword [ebp - 0x48a], eax
+mov eax, dword [ecx + 0xc]
+mov dword [ebp - 0x486], eax
+mov eax, dword [ecx + 0x10]
+mov dword [ebp - 0x482], eax
+mov esi, ref_fffc9e70 ; mov esi, 0xfffc9e70
+movzx eax, word [ecx + 0x14]
+mov dword [ebp - 0x47a], 0xfed84000
+mov dword [ebp - 0x47e], eax
+mov eax, dword [ecx + 0x36]
+mov dword [ebp - 0x476], eax
+mov eax, dword [ecx + 0x32]
+mov byte [ebp - 0x472], al
+mov ecx, 4
+mov eax, ebx
+mov byte [ebp - 0x471], 1
+rep stosd ; rep stosd dword es:[edi], eax
+mov al, dl
+lea edi, [ebp - 0x526]
+mov cl, 0x1e
+mov dword [ebp - 0x470], 0xfed80000
+rep stosb ; rep stosb byte es:[edi], al
+mov ecx, dword [ebp - 0x63c]
+lea eax, [ebp - 0x492]
+lea edi, [ebp - 0x53e]
+mov dword [ebp - 0x525], eax
+lea eax, [ebp - 0x592]
+mov dword [ebp - 0x521], eax
+lea eax, [ebp - 0x340]
+mov dword [ebp - 0x51d], eax
+lea eax, [ebp - 0x463]
+mov dword [ebp - 0x519], eax
+lea eax, [ebp - 0x575]
+mov dword [ebp - 0x515], eax
+mov eax, dword [ecx + 0x5a]
+mov ecx, 6
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov dword [ebp - 0x511], eax
+lea edi, [ebp - 0x600]
+mov al, dl
+mov cl, 5
+mov dword [ebp - 0x467], 0x400000
+mov byte [ebp - 0x526], 0xe
+mov dword [ebp - 0x616], fcn_fffa049e ; mov dword [ebp - 0x616], 0xfffa049e
+mov dword [ebp - 0x612], fcn_fffa04c9 ; mov dword [ebp - 0x612], 0xfffa04c9
+rep stosb ; rep stosb byte es:[edi], al
+lea edi, [ebp - 0x553]
+mov cl, 0x15
+rep stosb ; rep stosb byte es:[edi], al
+lea eax, [ebp - 0x600]
+lea edi, [ebp - 0x62f]
+mov dword [ebp - 0x552], eax
+mov cl, 3
+mov al, dl
+mov edx, dword [ebp - 0x63c]
+rep stosb ; rep stosb byte es:[edi], al
+mov eax, ebx
+lea edi, [ebp - 0x278]
+mov cl, 0x98
+mov dword [ebp - 0x60e], fcn_fffa04e0 ; mov dword [ebp - 0x60e], 0xfffa04e0
+rep stosd ; rep stosd dword es:[edi], eax
+mov eax, dword [edx + 0x3e]
+mov byte [ebp - 0x553], 1
+mov dword [ebp - 0x20c], eax
+mov byte [ebp - 0x62f], 1
+lea eax, [ebp - 0x5d4]
+mov dword [ebp - 0x278], 0xfeadb00b
+mov dword [ebp - 0x200], eax
+mov dword [ebp - 0x25c], fcn_fffa2b02 ; mov dword [ebp - 0x25c], 0xfffa2b02
+lea eax, [ebp - 0x526]
+mov dword [ebp - 0x254], fcn_fffa2a76 ; mov dword [ebp - 0x254], 0xfffa2a76
+mov dword [ebp - 0x1f4], eax
+mov dword [ebp - 0x250], fcn_fffa043e ; mov dword [ebp - 0x250], 0xfffa043e
+lea eax, [ebp - 0x5dc]
+mov dword [ebp - 0x24c], fcn_fffa041f ; mov dword [ebp - 0x24c], 0xfffa041f
+mov dword [ebp - 0x1e8], eax
+mov dword [ebp - 0x244], fcn_fffa03fd ; mov dword [ebp - 0x244], 0xfffa03fd
+lea eax, [ebp - 0x4c0]
+mov dword [ebp - 0x240], fcn_fffa29ba ; mov dword [ebp - 0x240], 0xfffa29ba
+mov dword [ebp - 0x1dc], eax
+mov dword [ebp - 0x230], fcn_fffa04e7 ; mov dword [ebp - 0x230], 0xfffa04e7
+lea eax, [ebp - 0x565]
+mov dword [ebp - 0x224], fcn_fffa1178 ; mov dword [ebp - 0x224], 0xfffa1178
+mov dword [ebp - 0x1d0], eax
+mov dword [ebp - 0x21c], fcn_fffa04ee ; mov dword [ebp - 0x21c], 0xfffa04ee
+lea eax, [ebp - 0x585]
+mov dword [ebp - 0x214], ref_fffcc83c ; mov dword [ebp - 0x214], 0xfffcc83c
+mov dword [ebp - 0x204], ref_fffcd4b4 ; mov dword [ebp - 0x204], 0xfffcd4b4
+mov dword [ebp - 0x1f8], ref_fffcd4e4 ; mov dword [ebp - 0x1f8], 0xfffcd4e4
+mov dword [ebp - 0x1ec], ref_fffcd4d4 ; mov dword [ebp - 0x1ec], 0xfffcd4d4
+mov dword [ebp - 0x1e0], ref_fffcca3c ; mov dword [ebp - 0x1e0], 0xfffcca3c
+mov dword [ebp - 0x1d4], ref_fffcc988 ; mov dword [ebp - 0x1d4], 0xfffcc988
+mov dword [ebp - 0x1c8], ref_fffcc96c ; mov dword [ebp - 0x1c8], 0xfffcc96c
+mov dword [ebp - 0x1c4], eax
+lea eax, [ebp - 0x53e]
+mov dword [ebp - 0x1b8], eax
+lea eax, [ebp - 0x4e8]
+mov dword [ebp - 0x1ac], eax
+lea eax, [ebp - 0x5ac]
+mov dword [ebp - 0x1a0], eax
+lea eax, [ebp - 0x616]
+mov dword [ebp - 0x194], eax
+lea eax, [ebp - 0x612]
+mov dword [ebp - 0x188], eax
+lea eax, [ebp - 0x60e]
+mov dword [ebp - 0x17c], eax
+lea eax, [ebp - 0x553]
+mov dword [ebp - 0x170], eax
+lea eax, [ebp - 0x62f]
+mov dword [ebp - 0x164], eax
+lea eax, [ebp - 0x274]
+mov dword [ebp - 0x62c], eax
+mov eax, dword [edx + 0x4e2]
+mov dword [0xff7d753c], eax
+cmp dword [edx], 0xf
+mov dword [ebp - 0x1bc], ref_fffcd488 ; mov dword [ebp - 0x1bc], 0xfffcd488
+mov dword [ebp - 0x1b0], ref_fffcd534 ; mov dword [ebp - 0x1b0], 0xfffcd534
+mov dword [ebp - 0x1a4], ref_fffcd524 ; mov dword [ebp - 0x1a4], 0xfffcd524
+mov dword [ebp - 0x198], ref_fffcc88c ; mov dword [ebp - 0x198], 0xfffcc88c
+mov dword [ebp - 0x18c], ref_fffcc89c ; mov dword [ebp - 0x18c], 0xfffcc89c
+mov dword [ebp - 0x180], ref_fffcc8ac ; mov dword [ebp - 0x180], 0xfffcc8ac
+mov dword [ebp - 0x174], ref_fffcc8bc ; mov dword [ebp - 0x174], 0xfffcc8bc
+mov dword [ebp - 0x168], ref_fffcc8cc ; mov dword [ebp - 0x168], 0xfffcc8cc
+mov dword [ebp - 0x118], 0xe
+mov dword [ebp - 0x1c], edx
+jne loc_fffa559c ; jne 0xfffa559c
+sub esp, 0xc
+lea eax, [ebp - 0x62c]
+push ref_fffcc534 ; push 0xfffcc534
+mov dword [0xff7d7538], eax
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+cmp dword [ebp - 0x20c], 2
+jne short loc_fffa39a6 ; jne 0xfffa39a6
+mov eax, dword [ebp - 0x63c]
+cmp dword [eax + 0x5a], 0
+je short loc_fffa39a6 ; je 0xfffa39a6
+sub esp, 0xc
+mov dword [ebp - 0x20c], 0x11
+push ref_fffcc552 ; push 0xfffcc552
+call fcn_fffa1253 ; call 0xfffa1253
+mov eax, dword [ebp - 0x63c]
+add esp, 0x10
+cmp dword [eax + 0x6e], 0
+je short loc_fffa39a6 ; je 0xfffa39a6
+mov al, byte [ebp - 0x3ac]
+and byte [ebp - 0x3ae], 0xfe
+and eax, 0xfffffffc
+and byte [ebp - 0x3ad], 0xfe
+or eax, 5
+mov byte [ebp - 0x3ac], al
+
+loc_fffa39a6:
+mov edx, dword [ebp - 0x63c]
+mov eax, dword [edx + 0x6a]
+cmp eax, 0x42b
+je short loc_fffa39dc ; je 0xfffa39dc
+ja short loc_fffa39c1 ; ja 0xfffa39c1
+cmp eax, 0x320
+jne short loc_fffa39fd ; jne 0xfffa39fd
+jmp short loc_fffa39d1 ; jmp 0xfffa39d1
+
+loc_fffa39c1:
+cmp eax, 0x535
+je short loc_fffa39e7 ; je 0xfffa39e7
+cmp eax, 0x640
+jne short loc_fffa39fd ; jne 0xfffa39fd
+jmp short loc_fffa39f2 ; jmp 0xfffa39f2
+
+loc_fffa39d1:
+mov word [ebp - 0x33f], 0x320
+jmp short loc_fffa3a17 ; jmp 0xfffa3a17
+
+loc_fffa39dc:
+mov word [ebp - 0x33f], 0x42b
+jmp short loc_fffa3a17 ; jmp 0xfffa3a17
+
+loc_fffa39e7:
+mov word [ebp - 0x33f], 0x535
+jmp short loc_fffa3a17 ; jmp 0xfffa3a17
+
+loc_fffa39f2:
+mov word [ebp - 0x33f], 0x640
+jmp short loc_fffa3a17 ; jmp 0xfffa3a17
+
+loc_fffa39fd:
+push edx
+push edx
+push eax
+push ref_fffcc574 ; push 0xfffcc574
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+mov eax, 0xfffffffe
+jmp near loc_fffa56a4 ; jmp 0xfffa56a4
+
+loc_fffa3a17:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+cmp eax, 1
+mov dx, word [edx + 0xf8002]
+jne loc_fffa3bb5 ; jne 0xfffa3bb5
+mov eax, edx
+and eax, 0xfffffffd
+cmp ax, 0x8c44
+je short loc_fffa3aa7 ; je 0xfffa3aa7
+cmp ax, 0x8c4c
+je short loc_fffa3aa7 ; je 0xfffa3aa7
+cmp dx, 0x8c5c
+sete cl
+cmp dx, 0x8c50
+sete al
+or cl, al
+jne short loc_fffa3aa7 ; jne 0xfffa3aa7
+mov eax, edx
+and eax, 0xfffffff7
+cmp ax, 0x8c42
+je short loc_fffa3aa7 ; je 0xfffa3aa7
+jmp near loc_fffa3b14 ; jmp 0xfffa3b14
+
+loc_fffa3a6d:
+imul eax, ebx, 6
+lea eax, [ebp + eax - 0x402]
+cmp byte [eax + 1], 0
+jne short loc_fffa3a8d ; jne 0xfffa3a8d
+mov dx, word [eax + 2]
+mov byte [eax + 4], 4
+cmp dx, 0x7f
+jbe short loc_fffa3a91 ; jbe 0xfffa3a91
+jmp short loc_fffa3a97 ; jmp 0xfffa3a97
+
+loc_fffa3a8d:
+mov byte [eax + 4], 3
+
+loc_fffa3a91:
+mov byte [eax + 5], 2
+jmp short loc_fffa3aa4 ; jmp 0xfffa3aa4
+
+loc_fffa3a97:
+cmp dx, 0x130
+sbb edx, edx
+add edx, 4
+mov byte [eax + 5], dl
+
+loc_fffa3aa4:
+inc ebx
+jmp short loc_fffa3aa9 ; jmp 0xfffa3aa9
+
+loc_fffa3aa7:
+xor ebx, ebx
+
+loc_fffa3aa9:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jl short loc_fffa3a6d ; jl 0xfffa3a6d
+
+loc_fffa3ab5:
+sub esp, 0xc
+push ref_fffcc5c7 ; push 0xfffcc5c7
+call fcn_fffa1253 ; call 0xfffa1253
+mov eax, dword [0xf0000060]
+mov ebx, dword [0xff7d7538]
+and eax, 0xfc000000
+mov edx, dword [eax + 0xf80f0]
+and edx, 0xfffffffe
+mov word [edx + 0x3424], 0x10
+mov eax, dword [edx + 0x3428]
+or eax, 1
+mov dword [edx + 0x3428], eax
+mov eax, dword [0xf0000060]
+add esp, 0x10
+and eax, 0xfc000000
+mov ax, word [eax + 0xf80a4]
+test al, 4
+je loc_fffa3c99 ; je 0xfffa3c99
+jmp near loc_fffa3c2e ; jmp 0xfffa3c2e
+
+loc_fffa3b14:
+cmp dx, 0x8c4f
+sete cl
+cmp dx, 0x8c49
+sete al
+or cl, al
+jne short loc_fffa3ba2 ; jne 0xfffa3ba2
+cmp dx, 0x8c41
+sete cl
+cmp dx, 0x8c4b
+sete al
+or cl, al
+jne short loc_fffa3ba2 ; jne 0xfffa3ba2
+add dx, 0x63bf
+xor ebx, ebx
+cmp dx, 6
+jbe short loc_fffa3ba4 ; jbe 0xfffa3ba4
+jmp near loc_fffa3ab5 ; jmp 0xfffa3ab5
+
+loc_fffa3b4e:
+imul eax, ebx, 6
+lea eax, [ebp + eax - 0x402]
+mov dl, byte [eax + 1]
+cmp dl, 5
+jne short loc_fffa3b62 ; jne 0xfffa3b62
+jmp short loc_fffa3b84 ; jmp 0xfffa3b84
+
+loc_fffa3b62:
+cmp dl, 2
+jne short loc_fffa3b7a ; jne 0xfffa3b7a
+cmp word [eax + 2], 0x50
+mov byte [eax + 4], 4
+sbb edx, edx
+add edx, 2
+mov byte [eax + 5], dl
+jmp short loc_fffa3b9f ; jmp 0xfffa3b9f
+
+loc_fffa3b7a:
+mov dx, word [eax + 2]
+cmp dx, 0x6f
+ja short loc_fffa3b8a ; ja 0xfffa3b8a
+
+loc_fffa3b84:
+mov byte [eax + 4], 5
+jmp short loc_fffa3b95 ; jmp 0xfffa3b95
+
+loc_fffa3b8a:
+cmp dx, 0xff
+mov byte [eax + 4], 6
+ja short loc_fffa3b9b ; ja 0xfffa3b9b
+
+loc_fffa3b95:
+mov byte [eax + 5], 2
+jmp short loc_fffa3b9f ; jmp 0xfffa3b9f
+
+loc_fffa3b9b:
+mov byte [eax + 5], 3
+
+loc_fffa3b9f:
+inc ebx
+jmp short loc_fffa3ba4 ; jmp 0xfffa3ba4
+
+loc_fffa3ba2:
+xor ebx, ebx
+
+loc_fffa3ba4:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jl short loc_fffa3b4e ; jl 0xfffa3b4e
+jmp near loc_fffa3ab5 ; jmp 0xfffa3ab5
+
+loc_fffa3bb5:
+cmp eax, 2
+jne loc_fffa3ab5 ; jne 0xfffa3ab5
+jmp short loc_fffa3c1b ; jmp 0xfffa3c1b
+
+loc_fffa3bc0:
+imul eax, ebx, 6
+lea esi, [ebp + eax - 0x402]
+mov al, byte [esi + 1]
+cmp al, 3
+sete cl
+test al, al
+sete dl
+or cl, dl
+je short loc_fffa3bf3 ; je 0xfffa3bf3
+mov ax, word [esi + 2]
+cmp ax, 0x6f
+ja short loc_fffa3be7 ; ja 0xfffa3be7
+jmp short loc_fffa3c0a ; jmp 0xfffa3c0a
+
+loc_fffa3be7:
+cmp ax, 0xff
+mov byte [esi + 4], 6
+ja short loc_fffa3c14 ; ja 0xfffa3c14
+jmp short loc_fffa3c0e ; jmp 0xfffa3c0e
+
+loc_fffa3bf3:
+cmp al, 2
+jne short loc_fffa3c0a ; jne 0xfffa3c0a
+cmp word [esi + 2], 0x50
+mov byte [esi + 4], 4
+sbb eax, eax
+add eax, 2
+mov byte [esi + 5], al
+jmp short loc_fffa3c18 ; jmp 0xfffa3c18
+
+loc_fffa3c0a:
+mov byte [esi + 4], 5
+
+loc_fffa3c0e:
+mov byte [esi + 5], 2
+jmp short loc_fffa3c18 ; jmp 0xfffa3c18
+
+loc_fffa3c14:
+mov byte [esi + 5], 3
+
+loc_fffa3c18:
+inc ebx
+jmp short loc_fffa3c1d ; jmp 0xfffa3c1d
+
+loc_fffa3c1b:
+xor ebx, ebx
+
+loc_fffa3c1d:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jl short loc_fffa3bc0 ; jl 0xfffa3bc0
+jmp near loc_fffa3ab5 ; jmp 0xfffa3ab5
+
+loc_fffa3c2e:
+mov eax, dword [edx + 0x3410]
+or eax, 0x10
+mov dword [edx + 0x3410], eax
+mov eax, dword [edx + 0x3410]
+in al, 0x70
+mov esi, eax
+mov eax, dword [edx + 0x3410]
+and eax, 0xffffffef
+and esi, 0xffffff80
+mov dword [edx + 0x3410], eax
+mov ecx, esi
+mov eax, dword [edx + 0x3410]
+or ecx, 0xa
+mov al, cl
+out 0x70, al
+in al, 0x71
+and eax, 0xffffff8f
+or eax, 0x60
+out 0x71, al
+or esi, 0xb
+mov eax, esi
+out 0x70, al
+in al, 0x71
+or eax, 0xffffff80
+out 0x71, al
+mov al, cl
+out 0x70, al
+in al, 0x71
+and eax, 0xffffff8f
+or eax, 0x20
+out 0x71, al
+mov eax, esi
+out 0x70, al
+in al, 0x71
+and eax, 0x7f
+out 0x71, al
+
+loc_fffa3c99:
+mov dword [edx + 0x3310], 0x10
+mov eax, ebx
+call fcn_fffc7c9d ; call 0xfffc7c9d
+mov eax, 0xc
+call fcn_fffa2937 ; call 0xfffa2937
+test eax, eax
+mov esi, eax
+je short loc_fffa3d32 ; je 0xfffa3d32
+mov edx, 0xc
+call fcn_fffa118a ; call 0xfffa118a
+mov eax, 0x28
+call fcn_fffa2937 ; call 0xfffa2937
+test eax, eax
+mov edi, eax
+je short loc_fffa3d32 ; je 0xfffa3d32
+mov edx, 0x28
+call fcn_fffa118a ; call 0xfffa118a
+mov ecx, 0x28
+mov edx, ref_fffcc8dc ; mov edx, 0xfffcc8dc
+mov eax, edi
+call fcn_fffa115e ; call 0xfffa115e
+mov dword [esi + 8], edi
+mov dword [esi], 0x80000010
+mov dword [esi + 4], ref_fffcd534 ; mov dword [esi + 4], 0xfffcd534
+push edi
+push edi
+mov eax, dword [ebx]
+push esi
+push ebx
+call dword [eax + 0x18] ; ucall
+pop eax
+pop edx
+mov eax, dword [ebx]
+push ref_fffcc97c ; push 0xfffcc97c
+push ebx
+call dword [eax + 0x18] ; ucall
+pop ecx
+pop esi
+mov eax, dword [ebx]
+push ref_fffcca30 ; push 0xfffcca30
+push ebx
+call dword [eax + 0x24] ; ucall
+pop edi
+pop eax
+mov eax, dword [ebx]
+push ref_fffcd560 ; push 0xfffcd560
+push ebx
+call dword [eax + 0x24] ; ucall
+add esp, 0x10
+
+loc_fffa3d32:
+push ecx
+push 0
+push 0
+push dword [0xff7d7538]
+call fcn_fffb9720 ; call 0xfffb9720
+mov dword [esp], ref_fffcc5e7 ; mov dword [esp], 0xfffcc5e7
+call fcn_fffa1253 ; call 0xfffa1253
+mov eax, 0x10f
+mov esi, dword [0xff7d7538]
+call fcn_fffa2937 ; call 0xfffa2937
+add esp, 0x10
+test eax, eax
+mov ebx, eax
+je loc_fffa3def ; je 0xfffa3def
+mov edx, eax
+mov eax, esi
+call fcn_fffc5bf6 ; call 0xfffc5bf6
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov edx, dword [eax + 0xfb020]
+and edx, 0xffe0
+or edx, dword [ebx + 0xc]
+mov dword [eax + 0xfb020], edx
+mov dl, byte [eax + 0xfb004]
+or edx, 1
+mov byte [eax + 0xfb004], dl
+mov dl, byte [eax + 0xfb040]
+or edx, 8
+mov byte [eax + 0xfb040], dl
+mov dl, byte [eax + 0xfb040]
+and edx, 0xfffffff8
+or edx, 1
+mov byte [eax + 0xfb040], dl
+mov edx, 0xff
+xor eax, eax
+call fcn_fffc917f ; call 0xfffc917f
+mov eax, dword [0xff7d7538]
+lea ecx, [ebx + 0x10]
+push edi
+add ebx, 0x2c
+push edi
+mov edx, dword [eax]
+push ecx
+push eax
+call dword [edx + 0x18] ; ucall
+pop eax
+pop edx
+mov eax, dword [esi]
+push ebx
+push esi
+call dword [eax + 0x24] ; ucall
+add esp, 0x10
+
+loc_fffa3def:
+sub esp, 0xc
+push ref_fffcc60f ; push 0xfffcc60f
+call fcn_fffa1253 ; call 0xfffa1253
+pop ebx
+push dword [0xff7d7538]
+call fcn_fffaea18 ; call 0xfffaea18
+mov dword [esp], ref_fffcc635 ; mov dword [esp], 0xfffcc635
+call fcn_fffa1253 ; call 0xfffa1253
+mov edx, dword [0xff7d7538]
+mov dword [ebp - 0x640], edx
+call fcn_fffc908a ; call 0xfffc908a
+mov ecx, dword [ebp - 0x640]
+lea edx, [ebp - 0x628]
+mov dword [ebp - 0x648], eax
+mov eax, dword [ecx]
+mov dword [esp], edx
+push 0
+push 0
+push ref_fffcd4e4 ; push 0xfffcd4e4
+push ecx
+call dword [eax + 0x20] ; ucall
+mov ebx, dword [ebp - 0x628]
+add esp, 0x20
+call fcn_fffc908a ; call 0xfffc908a
+mov ecx, eax
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+xor edx, edx
+mov eax, dword [ebx + 1]
+mov eax, dword [eax + 4]
+or eax, 1
+mov dword [esi + 0x48], eax
+mov dword [esi + 0x4c], edx
+mov eax, dword [ebx + 1]
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+xor edx, edx
+mov eax, dword [eax + 8]
+or eax, 1
+mov dword [esi + 0x68], eax
+mov dword [esi + 0x6c], edx
+mov eax, dword [ebx + 1]
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+xor edx, edx
+mov eax, dword [eax + 0xc]
+or eax, 1
+mov dword [esi + 0x40], eax
+mov dword [esi + 0x44], edx
+mov eax, dword [ebx + 1]
+xor edx, edx
+mov esi, dword [eax + 4]
+mov eax, dword [eax + 0x18]
+or eax, 1
+cmp ecx, 0x40660
+mov dword [esi + 0x5420], eax
+mov dword [esi + 0x5424], edx
+jne short loc_fffa3eec ; jne 0xfffa3eec
+mov eax, dword [ebx + 1]
+xor edx, edx
+mov ecx, dword [eax + 4]
+mov eax, dword [eax + 0x22]
+or eax, 1
+mov dword [ecx + 0x5408], eax
+mov dword [ecx + 0x540c], edx
+
+loc_fffa3eec:
+mov edx, dword [ebp - 0x640]
+mov ebx, dword [ebp - 0x628]
+mov esi, ref_fffcd4a4 ; mov esi, 0xfffcd4a4
+mov eax, dword [edx]
+lea edx, [ebp - 0x620]
+push edx
+push 0x6d
+push 4
+push dword [ebp - 0x640]
+call dword [eax + 0x34] ; ucall
+mov eax, dword [ebp - 0x620]
+mov ecx, 4
+mov edx, 8
+lea edi, [eax + 8]
+add eax, 0x18
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+call fcn_fffa118a ; call 0xfffa118a
+mov eax, dword [ebp - 0x620]
+mov edx, 8
+add eax, 0x20
+call fcn_fffa118a ; call 0xfffa118a
+mov eax, dword [ebp - 0x620]
+mov edx, 0x1e
+add eax, 0x29
+call fcn_fffa118a ; call 0xfffa118a
+mov eax, dword [ebp - 0x620]
+add esp, 0x10
+mov byte [eax + 0x28], 0
+mov byte [eax + 0x6c], 0
+cmp byte [ebx], 1
+jbe short loc_fffa3f82 ; jbe 0xfffa3f82
+mov edx, dword [ebx + 0xd]
+mov dx, word [edx + 0x4a]
+mov word [eax + 0x47], dx
+mov edx, dword [ebx + 0xd]
+mov dl, byte [edx + 0x49]
+mov byte [eax + 0x49], dl
+jmp short loc_fffa3f8c ; jmp 0xfffa3f8c
+
+loc_fffa3f82:
+mov word [eax + 0x47], 0
+mov byte [eax + 0x49], 0
+
+loc_fffa3f8c:
+mov ecx, dword [ebp - 0x640]
+sub esp, 0xc
+lea edx, [ebp - 0x5e8]
+mov eax, dword [ecx]
+push edx
+push 0
+push 0
+push ref_fffcc8bc ; push 0xfffcc8bc
+push ecx
+call dword [eax + 0x20] ; ucall
+mov eax, dword [ebp - 0x620]
+add esp, 0x20
+mov byte [eax + 0x20], 2
+mov edx, dword [ebp - 0x5e8]
+mov ecx, dword [edx + 1]
+test byte [ecx], 0x10
+je short loc_fffa3fd4 ; je 0xfffa3fd4
+mov edx, dword [edx + 9]
+mov edx, dword [edx]
+mov dl, byte [edx + 0x301]
+mov byte [eax + 0x21], dl
+
+loc_fffa3fd4:
+mov ebx, dword [ebp - 0x628]
+call fcn_fffc908a ; call 0xfffc908a
+mov esi, eax
+call fcn_fffc9077 ; call 0xfffc9077
+dec eax
+sete dl
+cmp esi, 0x306c0
+sete al
+test dl, al
+mov eax, dword [ebx + 1]
+je short loc_fffa4009 ; je 0xfffa4009
+mov eax, dword [eax + 4]
+mov dword [eax + 0x5434], 0x1060100
+jmp short loc_fffa4025 ; jmp 0xfffa4025
+
+loc_fffa4009:
+movzx edx, byte [ebx]
+mov eax, dword [eax + 8]
+mov dword [eax + 0x71c], edx
+mov eax, dword [ebx + 1]
+mov eax, dword [eax + 8]
+mov dword [eax + 0x720], 0x1060100
+
+loc_fffa4025:
+cmp dword [ebp - 0x648], 0x40660
+sete dl
+cmp dword [ebp - 0x648], 0x306c0
+sete al
+or dl, al
+je loc_fffa4d64 ; je 0xfffa4d64
+mov eax, dword [ebp - 0x628]
+mov dword [ebp - 0x660], eax
+call fcn_fffc9077 ; call 0xfffc9077
+mov eax, dword [0xf0000060]
+sub esp, 0xc
+and eax, 0xfc000000
+mov edx, dword [eax + 0x48]
+mov ecx, dword [eax + 0x4c]
+mov dword [ebp - 0x648], edx
+mov dword [ebp - 0x644], ecx
+mov eax, dword [0xf0000060]
+mov ecx, dword [ebp - 0x640]
+and eax, 0xfc000000
+lea edx, [ebp - 0x5e8]
+mov esi, dword [eax + 0x68]
+mov edi, dword [eax + 0x6c]
+mov eax, dword [ecx]
+push edx
+push 0
+push 0
+push ref_fffcca3c ; push 0xfffcca3c
+push ecx
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+test eax, eax
+js loc_fffa4d64 ; js 0xfffa4d64
+mov eax, dword [ebp - 0x648]
+mov ebx, esi
+and eax, 0xfffffffe
+and ebx, 0xfffffffe
+mov dword [ebp - 0x648], eax
+call fcn_fffc908a ; call 0xfffc908a
+mov edi, eax
+call fcn_fffc9077 ; call 0xfffc9077
+mov edx, 0xa00
+
+loc_fffa40d3:
+test ebx, ebx
+je short loc_fffa40de ; je 0xfffa40de
+lea esi, [edx + ebx]
+mov ecx, dword [esi]
+jmp short loc_fffa40fc ; jmp 0xfffa40fc
+
+loc_fffa40de:
+mov esi, dword [0xf0000060]
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+and esi, 0xfc000000
+add ecx, edx
+add esi, edx
+mov ecx, dword [ecx]
+
+loc_fffa40fc:
+and ecx, 0xffffffe0
+add edx, 0x10
+or ecx, 0xc
+cmp edx, 0xa40
+mov dword [esi], ecx
+jne short loc_fffa40d3 ; jne 0xfffa40d3
+dec eax
+sete dl
+cmp edi, 0x306c0
+sete al
+and dl, al
+mov byte [ebp - 0x658], dl
+jne short loc_fffa412c ; jne 0xfffa412c
+
+loc_fffa4126:
+test ebx, ebx
+je short loc_fffa4188 ; je 0xfffa4188
+jmp short loc_fffa4176 ; jmp 0xfffa4176
+
+loc_fffa412c:
+xor eax, eax
+lea ecx, [ebx + 0xa04]
+
+loc_fffa4134:
+test ebx, ebx
+je short loc_fffa413f ; je 0xfffa413f
+lea esi, [ecx + eax]
+mov edx, dword [esi]
+jmp short loc_fffa4167 ; jmp 0xfffa4167
+
+loc_fffa413f:
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+lea esi, [eax + edx + 0xa04]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+lea edx, [eax + edx + 0xa04]
+mov edx, dword [edx]
+
+loc_fffa4167:
+add eax, 0x10
+or dh, 8
+cmp eax, 0x40
+mov dword [esi], edx
+jne short loc_fffa4134 ; jne 0xfffa4134
+jmp short loc_fffa4126 ; jmp 0xfffa4126
+
+loc_fffa4176:
+cmp byte [ebp - 0x658], 0
+jne loc_fffa42c3 ; jne 0xfffa42c3
+jmp near loc_fffa4231 ; jmp 0xfffa4231
+
+loc_fffa4188:
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov eax, dword [eax + 0x904]
+and eax, 0xffffffe0
+or eax, 2
+mov dword [edx + 0x904], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x924]
+and eax, 0xffffffe0
+or eax, 2
+mov dword [edx + 0x924], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x904]
+and eax, 0xfffffc1f
+or eax, 0x60
+mov dword [edx + 0x904], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x924]
+and eax, 0xfffffc1f
+or eax, 0x60
+mov dword [edx + 0x924], eax
+jmp near loc_fffa4176 ; jmp 0xfffa4176
+
+loc_fffa4231:
+test ebx, ebx
+jne short loc_fffa4292 ; jne 0xfffa4292
+
+loc_fffa4235:
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov eax, dword [eax + 0x90c]
+and eax, 0xfffff81f
+or eax, 0x120
+mov dword [edx + 0x90c], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x92c]
+and eax, 0xfffff81f
+or eax, 0x120
+mov dword [edx + 0x92c], eax
+jmp near loc_fffa43cb ; jmp 0xfffa43cb
+
+loc_fffa4292:
+mov eax, dword [ebx + 0x90c]
+and eax, 0xfffff81f
+or eax, 0x120
+mov dword [ebx + 0x90c], eax
+mov eax, dword [ebx + 0x92c]
+and eax, 0xfffff81f
+or eax, 0x120
+mov dword [ebx + 0x92c], eax
+jmp near loc_fffa43cb ; jmp 0xfffa43cb
+
+loc_fffa42c3:
+test ebx, ebx
+jne loc_fffa4378 ; jne 0xfffa4378
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov edx, dword [edx + 0x904]
+and edx, 0xfe3fffff
+mov dword [eax + 0x904], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x924]
+and edx, 0xfe3fffff
+mov dword [eax + 0x924], edx
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x904]
+and eax, 0x9fffffff
+or eax, 0x20000000
+mov dword [edx + 0x904], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x924]
+and eax, 0x9fffffff
+or eax, 0x20000000
+mov dword [edx + 0x924], eax
+jmp near loc_fffa4235 ; jmp 0xfffa4235
+
+loc_fffa4378:
+mov eax, dword [ebx + 0x904]
+and eax, 0xfe3fffff
+mov dword [ebx + 0x904], eax
+mov eax, dword [ebx + 0x924]
+and eax, 0xfe3fffff
+mov dword [ebx + 0x924], eax
+mov eax, dword [ebx + 0x904]
+and eax, 0x9fffffff
+or eax, 0x20000000
+mov dword [ebx + 0x904], eax
+mov eax, dword [ebx + 0x924]
+and eax, 0x9fffffff
+or eax, 0x20000000
+mov dword [ebx + 0x924], eax
+jmp near loc_fffa4231 ; jmp 0xfffa4231
+
+loc_fffa43cb:
+cmp byte [ebp - 0x658], 0
+jne short loc_fffa43e1 ; jne 0xfffa43e1
+
+loc_fffa43d4:
+test ebx, ebx
+je loc_fffa44ad ; je 0xfffa44ad
+jmp near loc_fffa5681 ; jmp 0xfffa5681
+
+loc_fffa43e1:
+test ebx, ebx
+jne short loc_fffa4437 ; jne 0xfffa4437
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov edx, dword [edx + 0x90c]
+and edx, 0xfff1ffff
+mov dword [eax + 0x90c], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x92c]
+and edx, 0xfff1ffff
+mov dword [eax + 0x92c], edx
+jmp short loc_fffa44ad ; jmp 0xfffa44ad
+
+loc_fffa4437:
+mov eax, dword [ebx + 0x90c]
+and eax, 0xfff1ffff
+mov dword [ebx + 0x90c], eax
+mov eax, dword [ebx + 0x92c]
+and eax, 0xfff1ffff
+mov dword [ebx + 0x92c], eax
+jmp near loc_fffa43d4 ; jmp 0xfffa43d4
+
+loc_fffa445e:
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov edx, dword [edx + 0x910]
+and dh, 0xc3
+mov dword [eax + 0x910], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x930]
+and dh, 0xc3
+mov dword [eax + 0x930], edx
+jmp near loc_fffa4564 ; jmp 0xfffa4564
+
+loc_fffa44ad:
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+xor edi, edi
+mov eax, dword [eax + 0x90c]
+and eax, 0xfe1fffff
+or eax, 0xa00000
+mov dword [edx + 0x90c], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x92c]
+and eax, 0xfe1fffff
+or eax, 0xa00000
+mov dword [edx + 0x92c], eax
+
+loc_fffa4507:
+mov edx, dword [ebp - 0x660]
+mov eax, 0x200
+cmp byte [edx], 2
+jbe short loc_fffa4522 ; jbe 0xfffa4522
+mov eax, dword [edx + 0xd]
+movzx eax, byte [eax + edi + 0x54]
+shl eax, 6
+
+loc_fffa4522:
+mov edx, dword [0xf0000060]
+mov ecx, edi
+shl ecx, 5
+and edx, 0xfc000000
+inc edi
+lea esi, [ecx + edx + 0x910]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+lea edx, [ecx + edx + 0x910]
+mov edx, dword [edx]
+and edx, 0xfffffc3f
+or edx, eax
+cmp edi, 2
+mov dword [esi], edx
+jne short loc_fffa4507 ; jne 0xfffa4507
+jmp near loc_fffa445e ; jmp 0xfffa445e
+
+loc_fffa4564:
+cmp byte [ebp - 0x658], 0
+jne loc_fffa45f1 ; jne 0xfffa45f1
+
+loc_fffa4571:
+test ebx, ebx
+jne short loc_fffa45ca ; jne 0xfffa45ca
+
+loc_fffa4575:
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov edx, dword [edx + 0x80c]
+and edx, 0xffe3ffff
+mov dword [eax + 0x80c], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x82c]
+and edx, 0xffe3ffff
+mov dword [eax + 0x82c], edx
+jmp near loc_fffa476b ; jmp 0xfffa476b
+
+loc_fffa45ca:
+mov eax, dword [ebx + 0x80c]
+and eax, 0xffe3ffff
+mov dword [ebx + 0x80c], eax
+mov eax, dword [ebx + 0x82c]
+and eax, 0xffe3ffff
+mov dword [ebx + 0x82c], eax
+jmp near loc_fffa476b ; jmp 0xfffa476b
+
+loc_fffa45f1:
+test ebx, ebx
+jne loc_fffa46f4 ; jne 0xfffa46f4
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov eax, dword [eax + 0x910]
+and eax, 0x1fffffff
+or eax, 0x80000000
+mov dword [edx + 0x910], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x930]
+and eax, 0x1fffffff
+or eax, 0x80000000
+mov dword [edx + 0x930], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x80c]
+and eax, 0xfffffe7f
+or ah, 1
+mov dword [edx + 0x80c], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x82c]
+and eax, 0xfffffe7f
+or ah, 1
+mov dword [edx + 0x82c], eax
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x80c]
+and dh, 0xcf
+mov dword [eax + 0x80c], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x82c]
+and dh, 0xcf
+mov dword [eax + 0x82c], edx
+jmp near loc_fffa4575 ; jmp 0xfffa4575
+
+loc_fffa46f4:
+mov eax, dword [ebx + 0x910]
+and eax, 0x1fffffff
+or eax, 0x80000000
+mov dword [ebx + 0x910], eax
+mov eax, dword [ebx + 0x930]
+and eax, 0x1fffffff
+or eax, 0x80000000
+mov dword [ebx + 0x930], eax
+mov eax, dword [ebx + 0x80c]
+and eax, 0xfffffe7f
+or ah, 1
+mov dword [ebx + 0x80c], eax
+mov eax, dword [ebx + 0x82c]
+and eax, 0xfffffe7f
+or ah, 1
+mov dword [ebx + 0x82c], eax
+mov eax, dword [ebx + 0x80c]
+and ah, 0xcf
+mov dword [ebx + 0x80c], eax
+mov eax, dword [ebx + 0x82c]
+and ah, 0xcf
+mov dword [ebx + 0x82c], eax
+jmp near loc_fffa4571 ; jmp 0xfffa4571
+
+loc_fffa476b:
+cmp byte [ebp - 0x658], 0
+je loc_fffa4840 ; je 0xfffa4840
+test ebx, ebx
+jne short loc_fffa47ce ; jne 0xfffa47ce
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov edx, dword [edx + 0x80c]
+or edx, 0x600000
+mov dword [eax + 0x80c], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x82c]
+or edx, 0x600000
+mov dword [eax + 0x82c], edx
+jmp short loc_fffa47f0 ; jmp 0xfffa47f0
+
+loc_fffa47ce:
+mov eax, dword [ebx + 0x80c]
+or eax, 0x600000
+mov dword [ebx + 0x80c], eax
+mov eax, dword [ebx + 0x82c]
+or eax, 0x600000
+mov dword [ebx + 0x82c], eax
+
+loc_fffa47f0:
+sub esp, 0xc
+mov ecx, 0x22
+push 0
+mov edx, 0xc008018
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+and ah, 0xe1
+mov ecx, 0x23
+or ah, 0xc
+mov edx, 0xc008018
+mov dword [esp], eax
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+mov esi, 0xc008018
+add esp, 0x10
+mov byte [ebp - 0x65a], 0x23
+mov byte [ebp - 0x659], 0x22
+jmp short loc_fffa4853 ; jmp 0xfffa4853
+
+loc_fffa4840:
+mov byte [ebp - 0x65a], 0x16
+mov esi, 0xc008001
+mov byte [ebp - 0x659], 0x15
+
+loc_fffa4853:
+test ebx, ebx
+jne short loc_fffa4894 ; jne 0xfffa4894
+sub esp, 0xc
+mov edx, esi
+push 0
+movzx ecx, byte [ebp - 0x659]
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+and eax, 0xc1ffffff
+mov edx, esi
+movzx ecx, byte [ebp - 0x65a]
+or eax, 0x6000000
+mov dword [esp], eax
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+add esp, 0x10
+
+loc_fffa4894:
+cmp byte [ebp - 0x658], 0
+jne loc_fffa55a4 ; jne 0xfffa55a4
+mov esi, 0xc0c8001
+
+loc_fffa48a6:
+sub esp, 0xc
+mov edx, esi
+push 0
+movzx ecx, byte [ebp - 0x659]
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+and eax, 0xe07fffff
+mov edx, esi
+movzx ecx, byte [ebp - 0x65a]
+mov dword [esp], eax
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+add esp, 0x10
+cmp byte [ebp - 0x658], 0
+mov edx, 0x13
+je short loc_fffa4962 ; je 0xfffa4962
+sub esp, 0xc
+mov ecx, 0x20
+push 0
+mov edx, 0xc308803
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+and eax, 0x8ff83fff
+mov ecx, 0x21
+or eax, 0x40064000
+mov edx, 0xc308803
+mov dword [esp], eax
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+add esp, 0x10
+test ebx, ebx
+jne loc_fffa5628 ; jne 0xfffa5628
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov eax, dword [eax + 0xc24]
+and eax, 0xffff807f
+or ah, 2
+mov dword [edx + 0xc24], eax
+jmp near loc_fffa5628 ; jmp 0xfffa5628
+
+loc_fffa4962:
+test ebx, ebx
+je short loc_fffa4979 ; je 0xfffa4979
+mov eax, dword [ebx + 0xc28]
+and eax, 0xffffffe0
+or eax, edx
+mov dword [ebx + 0xc28], eax
+jmp short loc_fffa49a0 ; jmp 0xfffa49a0
+
+loc_fffa4979:
+mov ecx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and ecx, 0xfc000000
+mov eax, dword [eax + 0xc28]
+and eax, 0xffffffe0
+or eax, edx
+mov dword [ecx + 0xc28], eax
+
+loc_fffa49a0:
+mov al, byte [ebp - 0x658]
+shl eax, 0x1f
+sar eax, 0x1f
+and eax, 0x40
+test ebx, ebx
+jne loc_fffa4baa ; jne 0xfffa4baa
+mov ecx, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+and ecx, 0xfc000000
+mov dx, word [edx + 0x8c38]
+and edx, 0xffffffbf
+or edx, eax
+mov word [ecx + 0x8c38], dx
+mov ecx, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and ecx, 0xfc000000
+and edx, 0xfc000000
+mov dx, word [edx + 0x9c38]
+and edx, 0xffffffbf
+or edx, eax
+mov word [ecx + 0x9c38], dx
+mov ecx, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and ecx, 0xfc000000
+and edx, 0xfc000000
+mov dx, word [edx + 0xac38]
+and edx, 0xffffffbf
+or edx, eax
+mov word [ecx + 0xac38], dx
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov ax, word [eax + 0x8260]
+and eax, 0xfffffffc
+or eax, 2
+mov word [edx + 0x8260], ax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov ax, word [eax + 0x9260]
+and eax, 0xfffffffc
+or eax, 2
+mov word [edx + 0x9260], ax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov ax, word [eax + 0xa260]
+and eax, 0xfffffffc
+or eax, 2
+mov word [edx + 0xa260], ax
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x900]
+and edx, 0xf3ffffff
+mov dword [eax + 0x900], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x920]
+and edx, 0xf3ffffff
+mov dword [eax + 0x920], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x904]
+or dh, 0xc
+mov dword [eax + 0x904], edx
+mov eax, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov edx, dword [edx + 0x924]
+or dh, 0xc
+mov dword [eax + 0x924], edx
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x90c]
+and eax, 0xc1ffffff
+or eax, 0xe000000
+mov dword [edx + 0x90c], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x92c]
+and eax, 0xc1ffffff
+or eax, 0xe000000
+mov dword [edx + 0x92c], eax
+jmp short loc_fffa4c0d ; jmp 0xfffa4c0d
+
+loc_fffa4baa:
+mov edx, dword [ebx + 0xc38]
+and edx, 0xffffffbf
+or edx, eax
+mov dword [ebx + 0xc38], edx
+mov eax, dword [ebx + 0x260]
+and eax, 0xfffffffc
+or eax, 2
+mov dword [ebx + 0x260], eax
+mov eax, dword [ebx + 0x900]
+and eax, 0xf3ffffff
+mov dword [ebx + 0x900], eax
+mov eax, dword [ebx + 0x920]
+and eax, 0xf3ffffff
+mov dword [ebx + 0x920], eax
+mov eax, dword [ebx + 0x904]
+or ah, 0xc
+mov dword [ebx + 0x904], eax
+mov eax, dword [ebx + 0x924]
+or ah, 0xc
+mov dword [ebx + 0x924], eax
+
+loc_fffa4c0d:
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+and edx, 0xfc000000
+mov ecx, dword [ebp - 0x660]
+mov eax, dword [eax + 0x891c]
+and eax, 0xc7ffffff
+or eax, 0x28000000
+mov dword [edx + 0x891c], eax
+mov edx, dword [0xf0000060]
+mov eax, dword [0xf0000060]
+and edx, 0xfc000000
+and eax, 0xfc000000
+mov eax, dword [eax + 0x893c]
+and eax, 0xc7ffffff
+or eax, 0x28000000
+mov dword [edx + 0x893c], eax
+mov eax, dword [ebx + 0x258]
+or eax, 0x20000000
+xor edx, edx
+mov dword [ebx + 0x258], eax
+mov eax, dword [ebx + 0x208]
+and eax, 0xfffff800
+or eax, 0x6b5
+mov dword [ebx + 0x208], eax
+mov eax, dword [ebx + 0x22c]
+xor ax, ax
+or eax, 0x2020
+mov dword [ebx + 0x22c], eax
+mov eax, dword [ecx + 0xd]
+cmp byte [eax + 3], 0
+je short loc_fffa4ce2 ; je 0xfffa4ce2
+mov eax, dword [ebp - 0x5e8]
+mov eax, dword [eax + 2]
+mov al, byte [eax + 0x21a4]
+and eax, 0xf
+dec al
+je short loc_fffa4ce2 ; je 0xfffa4ce2
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov eax, dword [eax + 0xe4]
+test eax, 0x400000
+je loc_fffa562f ; je 0xfffa562f
+
+loc_fffa4ce2:
+mov ecx, dword [ebx + 0x84]
+mov eax, dword [ebx + 0x98]
+and eax, 0xfffffff0
+and ecx, 0xf
+or eax, ecx
+mov dword [ebx + 0x98], eax
+mov al, byte [ebx + 0x88]
+or eax, 0x20
+mov byte [ebx + 0x88], al
+
+loc_fffa4d0b:
+mov cx, word [ebx + 0x8a]
+lea eax, [ebx + 0x8a]
+and ch, 8
+jne short loc_fffa4d0b ; jne 0xfffa4d0b
+test dl, dl
+jne short loc_fffa4d26 ; jne 0xfffa4d26
+
+loc_fffa4d21:
+mov ax, word [eax]
+jmp short loc_fffa4d64 ; jmp 0xfffa4d64
+
+loc_fffa4d26:
+mov dx, word [eax]
+and edx, 0xf
+cmp dx, 2
+jne short loc_fffa4d4b ; jne 0xfffa4d4b
+mov edx, dword [ebp - 0x5e8]
+mov edx, dword [edx + 2]
+mov dx, word [edx + 0x21aa]
+and edx, 0xf
+cmp dx, 2
+je short loc_fffa4d21 ; je 0xfffa4d21
+
+loc_fffa4d4b:
+mov dl, byte [ebx + 0x88]
+or edx, 0x20
+mov byte [ebx + 0x88], dl
+
+loc_fffa4d5a:
+mov dx, word [eax]
+and dh, 8
+jne short loc_fffa4d5a ; jne 0xfffa4d5a
+jmp short loc_fffa4d21 ; jmp 0xfffa4d21
+
+loc_fffa4d64:
+mov eax, dword [ebp - 0x640]
+mov edx, dword [ebp - 0x628]
+call fcn_fffa0625 ; call 0xfffa0625
+mov edi, dword [ebp - 0x628]
+mov dword [ebp - 0x624], 0
+mov eax, dword [edi + 0x11]
+cmp byte [eax + 0xb], 0
+jne loc_fffa4e1b ; jne 0xfffa4e1b
+
+loc_fffa4d92:
+mov eax, dword [0xf0000060]
+mov esi, dword [ebp - 0x628]
+and eax, 0xfc000000
+mov edx, dword [eax + 0x4c]
+mov eax, dword [eax + 0x48]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov edx, dword [eax + 0x6c]
+mov eax, dword [eax + 0x68]
+mov edi, eax
+call fcn_fffc908a ; call 0xfffc908a
+mov edx, dword [ebp - 0x640]
+sub esp, 0xc
+mov ebx, eax
+and edi, 0xfffffffe
+mov eax, dword [edx]
+lea edx, [ebp - 0x620]
+push edx
+push 0
+push 0
+push ref_fffcc96c ; push 0xfffcc96c
+push dword [ebp - 0x640]
+call dword [eax + 0x20] ; ucall
+mov ecx, dword [ebp - 0x640]
+add esp, 0x14
+lea edx, [ebp - 0x5e8]
+mov eax, dword [ecx]
+push edx
+push 0
+push 0
+push ref_fffcd534 ; push 0xfffcd534
+push ecx
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+cmp ebx, 0x40650
+jne loc_fffa5349 ; jne 0xfffa5349
+jmp near loc_fffa533a ; jmp 0xfffa533a
+
+loc_fffa4e1b:
+mov edx, 7
+lea eax, [ebp - 0x5f6]
+call fcn_fffa118a ; call 0xfffa118a
+mov edx, 7
+lea eax, [ebp - 0x5ef]
+call fcn_fffa118a ; call 0xfffa118a
+mov eax, dword [0xff7d7538]
+sub esp, 0xc
+lea ecx, [ebp - 0x620]
+mov bl, 1
+mov edx, dword [eax]
+push ecx
+push 0
+push 0
+push ref_fffcd488 ; push 0xfffcd488
+push eax
+call dword [edx + 0x20] ; ucall
+mov ecx, 0x150
+add esp, 0x20
+rdmsr
+mov dword [ebp - 0x648], eax
+mov dword [ebp - 0x644], edx
+
+loc_fffa4e71:
+mov al, bl
+and eax, 0xfffffffd
+dec al
+je short loc_fffa4e85 ; je 0xfffa4e85
+lea eax, [ebx - 4]
+cmp al, 1
+ja loc_fffa532b ; ja 0xfffa532b
+
+loc_fffa4e85:
+mov edx, 5
+lea eax, [ebp - 0x5fb]
+call fcn_fffa118a ; call 0xfffa118a
+mov edx, 8
+lea eax, [ebp - 0x5b4]
+mov byte [ebp - 0x5f7], bl
+call fcn_fffa118a ; call 0xfffa118a
+mov edx, 8
+lea eax, [ebp - 0x5b4]
+call fcn_fffa118a ; call 0xfffa118a
+mov al, byte [ebp - 0x5f7]
+sub esp, 0xc
+mov byte [ebp - 0x5af], al
+lea eax, [ebp - 0x624]
+push eax
+mov byte [ebp - 0x5b0], 1
+lea ecx, [ebp - 0x5b4]
+mov edx, dword [ebp - 0x5b0]
+mov eax, 2
+mov dword [ebp - 0x5b4], 0
+call fcn_fffc8f0f ; call 0xfffc8f0f
+add esp, 0x10
+test eax, eax
+jne short loc_fffa4f44 ; jne 0xfffa4f44
+cmp dword [ebp - 0x624], 0
+jne short loc_fffa4f44 ; jne 0xfffa4f44
+mov eax, dword [ebp - 0x5b4]
+mov edx, eax
+mov byte [ebp - 0x5fb], al
+and edx, 0x100
+shr edx, 8
+mov byte [ebp - 0x5fa], dl
+mov edx, eax
+and edx, 0x200
+and eax, 0x400
+shr edx, 9
+shr eax, 0xa
+mov byte [ebp - 0x5f9], dl
+mov byte [ebp - 0x5f8], al
+
+loc_fffa4f44:
+cmp dword [ebp - 0x624], 0
+jne loc_fffa532b ; jne 0xfffa532b
+cmp byte [ebp - 0x5fa], 0
+jne short loc_fffa4f70 ; jne 0xfffa4f70
+cmp byte [ebp - 0x5f9], 0
+jne short loc_fffa4f70 ; jne 0xfffa4f70
+cmp byte [ebp - 0x5f8], 0
+je loc_fffa532b ; je 0xfffa532b
+
+loc_fffa4f70:
+mov edx, 7
+lea eax, [ebp - 0x5f6]
+call fcn_fffa118a ; call 0xfffa118a
+mov edx, 8
+lea eax, [ebp - 0x5b4]
+mov byte [ebp - 0x5f0], bl
+call fcn_fffa118a ; call 0xfffa118a
+mov edx, 8
+lea eax, [ebp - 0x5b4]
+call fcn_fffa118a ; call 0xfffa118a
+mov al, byte [ebp - 0x5f0]
+sub esp, 0xc
+mov byte [ebp - 0x5af], al
+lea eax, [ebp - 0x624]
+push eax
+mov byte [ebp - 0x5b0], 0x10
+lea ecx, [ebp - 0x5b4]
+mov edx, dword [ebp - 0x5b0]
+mov eax, 2
+mov dword [ebp - 0x5b4], 0
+call fcn_fffc8f0f ; call 0xfffc8f0f
+add esp, 0x10
+test eax, eax
+jne loc_fffa532b ; jne 0xfffa532b
+cmp dword [ebp - 0x624], 0
+jne short loc_fffa5040 ; jne 0xfffa5040
+mov eax, dword [ebp - 0x5b4]
+mov ecx, 1
+mov edx, eax
+mov byte [ebp - 0x5f6], al
+and edx, 0x100000
+movzx eax, ah
+shr edx, 0x14
+mov byte [ebp - 0x5f5], dl
+lea edx, [ebp - 0x5f4]
+call fcn_fffc8dcb ; call 0xfffc8dcb
+mov eax, dword [ebp - 0x5b4]
+mov ecx, 1
+shr eax, 0x15
+lea edx, [ebp - 0x5f2]
+call fcn_fffc8d04 ; call 0xfffc8d04
+
+loc_fffa5040:
+cmp dword [ebp - 0x624], 0
+jne loc_fffa532b ; jne 0xfffa532b
+mov edx, 7
+lea eax, [ebp - 0x5ef]
+call fcn_fffa118a ; call 0xfffa118a
+cmp bl, 1
+mov byte [ebp - 0x5e9], bl
+jne loc_fffa520e ; jne 0xfffa520e
+mov eax, dword [edi + 0x11]
+mov dx, word [eax + 6]
+mov byte [ebp - 0x5ef], dl
+mov dl, byte [eax + 0xa]
+test dl, dl
+mov byte [ebp - 0x5ee], dl
+jne short loc_fffa508c ; jne 0xfffa508c
+mov dx, word [eax + 4]
+jmp short loc_fffa5090 ; jmp 0xfffa5090
+
+loc_fffa508c:
+mov dx, word [eax + 2]
+
+loc_fffa5090:
+mov word [ebp - 0x5ed], dx
+mov ax, word [eax]
+mov word [ebp - 0x5eb], ax
+xor eax, eax
+
+loc_fffa50a3:
+mov dl, byte [ebp + eax - 0x5f6]
+cmp byte [ebp + eax - 0x5ef], dl
+je loc_fffa51ff ; je 0xfffa51ff
+
+loc_fffa50b7:
+sub esp, 0xc
+mov eax, dword [ebp - 0x620]
+push 0x3c
+call dword [eax] ; ucall
+mov al, byte [ebp - 0x5ee]
+mov cl, byte [ebp - 0x5ef]
+movsx edx, word [ebp - 0x5eb]
+mov byte [ebp - 0x659], al
+mov al, byte [ebp - 0x5e9]
+mov dword [ebp - 0x658], edx
+mov byte [ebp - 0x65a], al
+mov edx, 8
+lea eax, [ebp - 0x5c4]
+mov byte [ebp - 0x668], cl
+movzx esi, word [ebp - 0x5ed]
+call fcn_fffa118a ; call 0xfffa118a
+mov cl, byte [ebp - 0x668]
+mov eax, esi
+mov byte [ebp - 0x5b4], cl
+lea edx, [ebp - 0x5e8]
+xor ecx, ecx
+mov word [ebp - 0x5e8], 0
+call fcn_fffc8dcb ; call 0xfffc8dcb
+movzx edx, word [ebp - 0x5e8]
+mov eax, dword [ebp - 0x5b4]
+and edx, 0xfff
+and eax, 0xfff000ff
+shl edx, 8
+xor ecx, ecx
+or eax, edx
+mov dl, byte [ebp - 0x659]
+mov dword [ebp - 0x5b4], eax
+and edx, 1
+mov al, byte [ebp - 0x5b2]
+mov word [ebp - 0x5e8], 0
+shl edx, 4
+and eax, 0xffffffef
+or eax, edx
+lea edx, [ebp - 0x5e8]
+mov byte [ebp - 0x5b2], al
+mov eax, dword [ebp - 0x658]
+call fcn_fffc8d04 ; call 0xfffc8d04
+mov ax, word [ebp - 0x5b2]
+mov edx, dword [ebp - 0x5e8]
+shl edx, 5
+and eax, 0x1f
+or eax, edx
+mov ecx, 4
+mov word [ebp - 0x5b2], ax
+lea edx, [ebp - 0x5b4]
+lea eax, [ebp - 0x5c4]
+call fcn_fffa115e ; call 0xfffa115e
+mov dl, byte [ebp - 0x65a]
+mov eax, 2
+mov byte [ebp - 0x5bf], dl
+mov edx, dword [ebp - 0x5c4]
+mov byte [ebp - 0x5c0], 0x11
+mov dword [ebp - 0x668], edx
+mov esi, dword [ebp - 0x5c0]
+call fcn_fffc8e6f ; call 0xfffc8e6f
+add esp, 0x10
+test eax, eax
+mov edx, dword [ebp - 0x668]
+jns short loc_fffa5256 ; jns 0xfffa5256
+jmp near loc_fffa532b ; jmp 0xfffa532b
+
+loc_fffa51ff:
+inc eax
+cmp eax, 7
+jne loc_fffa50a3 ; jne 0xfffa50a3
+jmp near loc_fffa532b ; jmp 0xfffa532b
+
+loc_fffa520e:
+lea eax, [ebx - 3]
+cmp al, 2
+ja loc_fffa532b ; ja 0xfffa532b
+cmp bl, 4
+mov eax, dword [edi + 0x11]
+je short loc_fffa522c ; je 0xfffa522c
+cmp bl, 5
+je short loc_fffa5232 ; je 0xfffa5232
+mov ax, word [eax + 8]
+jmp short loc_fffa5236 ; jmp 0xfffa5236
+
+loc_fffa522c:
+mov ax, word [eax + 0xc]
+jmp short loc_fffa5236 ; jmp 0xfffa5236
+
+loc_fffa5232:
+mov ax, word [eax + 0xe]
+
+loc_fffa5236:
+mov word [ebp - 0x5eb], ax
+mov cx, word [ebp - 0x5f2]
+cmp word [ebp - 0x5eb], cx
+jne loc_fffa50b7 ; jne 0xfffa50b7
+jmp near loc_fffa532b ; jmp 0xfffa532b
+
+loc_fffa5256:
+mov dword [ebp - 0x5bc], edx
+mov ecx, 8
+lea edx, [ebp - 0x5bc]
+lea eax, [ebp - 0x5e8]
+mov dword [ebp - 0x5b8], esi
+or byte [ebp - 0x5b5], 0x80
+call fcn_fffa115e ; call 0xfffa115e
+mov eax, dword [ebp - 0x5e8]
+mov edx, dword [ebp - 0x5e4]
+mov ecx, 0x150
+wrmsr
+mov eax, 2
+call fcn_fffc8e6f ; call 0xfffc8e6f
+mov eax, dword [ebp - 0x648]
+mov edx, dword [ebp - 0x644]
+mov ecx, 8
+mov dword [ebp - 0x5e8], eax
+mov dword [ebp - 0x5e4], edx
+lea eax, [ebp - 0x5bc]
+lea edx, [ebp - 0x5e8]
+call fcn_fffa115e ; call 0xfffa115e
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov edx, dword [ebp - 0x648]
+mov ecx, dword [ebp - 0x644]
+mov dword [ebp - 0x5e8], edx
+mov dword [ebp - 0x5e4], ecx
+lea edx, [ebp - 0x5e8]
+mov ecx, 8
+lea eax, [ebp - 0x5b4]
+call fcn_fffa115e ; call 0xfffa115e
+mov ecx, dword [ebp - 0x5b0]
+cmp dword [ebp - 0x5b8], ecx
+je short loc_fffa531e ; je 0xfffa531e
+mov eax, dword [ebp - 0x5b4]
+cmp dword [ebp - 0x5bc], eax
+jne short loc_fffa532b ; jne 0xfffa532b
+
+loc_fffa531e:
+movzx eax, byte [ebp - 0x5b8]
+mov dword [ebp - 0x624], eax
+
+loc_fffa532b:
+inc ebx
+cmp bl, 6
+jne loc_fffa4e71 ; jne 0xfffa4e71
+jmp near loc_fffa4d92 ; jmp 0xfffa4d92
+
+loc_fffa533a:
+mov al, byte [edi + 0xa78]
+or eax, 2
+mov byte [edi + 0xa78], al
+
+loc_fffa5349:
+mov eax, dword [esi + 0xd]
+mov edx, dword [ebp - 0x5e8]
+mov al, byte [eax]
+mov byte [edx + 0x22], al
+mov eax, dword [esi + 0xd]
+mov al, byte [eax + 1]
+mov byte [edx + 0x24], al
+mov eax, dword [esi + 0xd]
+mov al, byte [eax + 2]
+mov byte [edx + 0x26], al
+xor eax, eax
+
+loc_fffa536b:
+mov edx, dword [ebp - 0x5e8]
+mov ecx, dword [edx + eax*4]
+cmp ecx, 1
+jne short loc_fffa537f ; jne 0xfffa537f
+cmp byte [edx + 0x22], 0
+jmp short loc_fffa5393 ; jmp 0xfffa5393
+
+loc_fffa537f:
+cmp ecx, 2
+jne short loc_fffa538a ; jne 0xfffa538a
+cmp byte [edx + 0x24], 0
+jmp short loc_fffa5393 ; jmp 0xfffa5393
+
+loc_fffa538a:
+cmp ecx, 3
+jne short loc_fffa539c ; jne 0xfffa539c
+cmp byte [edx + 0x26], 0
+
+loc_fffa5393:
+jne short loc_fffa539c ; jne 0xfffa539c
+mov dword [edx + eax*4], 0
+
+loc_fffa539c:
+inc eax
+cmp eax, 8
+jne short loc_fffa536b ; jne 0xfffa536b
+mov ebx, dword [ebp - 0x5e8]
+mov dword [ebp - 0x5b4], 0
+xor ecx, ecx
+
+loc_fffa53b4:
+mov eax, dword [ebx + ecx*4]
+mov esi, 1
+shl esi, cl
+inc ecx
+mov edx, esi
+or byte [ebp + eax - 0x5b4], dl
+cmp ecx, 8
+jne short loc_fffa53b4 ; jne 0xfffa53b4
+xor eax, eax
+
+loc_fffa53cf:
+cmp byte [ebx + eax*2 + 0x20], 1
+mov dl, al
+jne short loc_fffa542d ; jne 0xfffa542d
+movzx ecx, byte [ebx + eax*2 + 0x21]
+shl ecx, 0x18
+mov dword [ebp - 0x648], ecx
+movzx ecx, byte [ebp + eax - 0x5b4]
+or ecx, 0x80000000
+cmp al, 2
+je short loc_fffa540d ; je 0xfffa540d
+cmp al, 3
+je short loc_fffa5414 ; je 0xfffa5414
+dec dl
+mov esi, 0x14
+mov edx, 0x20
+cmove esi, edx
+jmp short loc_fffa5419 ; jmp 0xfffa5419
+
+loc_fffa540d:
+mov esi, 0x2c
+jmp short loc_fffa5419 ; jmp 0xfffa5419
+
+loc_fffa5414:
+mov esi, 0x38
+
+loc_fffa5419:
+add esi, edi
+mov edx, dword [esi]
+and edx, 0xf8ffff01
+or edx, dword [ebp - 0x648]
+or edx, ecx
+mov dword [esi], edx
+
+loc_fffa542d:
+inc eax
+cmp eax, 4
+jne short loc_fffa53cf ; jne 0xfffa53cf
+mov al, byte [edi + 4]
+and eax, 0xfffffff8
+cmp byte [ebx + 0x22], 1
+sete dl
+or eax, edx
+mov byte [edi + 4], al
+sub esp, 0xc
+mov eax, dword [ebp - 0x620]
+push dword [ebp - 0x640]
+mov esi, 0x1a
+call dword [eax + 4] ; ucall
+mov ecx, dword [ebp - 0x5e8]
+add esp, 0x10
+xor eax, eax
+
+loc_fffa5467:
+cmp byte [ecx + eax*2 + 0x20], 1
+mov dl, al
+jne short loc_fffa549a ; jne 0xfffa549a
+cmp al, 2
+je short loc_fffa5484 ; je 0xfffa5484
+cmp al, 3
+je short loc_fffa548b ; je 0xfffa548b
+dec dl
+mov ebx, 0x26
+cmovne ebx, esi
+jmp short loc_fffa5490 ; jmp 0xfffa5490
+
+loc_fffa5484:
+mov ebx, 0x32
+jmp short loc_fffa5490 ; jmp 0xfffa5490
+
+loc_fffa548b:
+mov ebx, 0x3e
+
+loc_fffa5490:
+add ebx, edi
+
+loc_fffa5492:
+mov dx, word [ebx]
+and dl, 2
+jne short loc_fffa5492 ; jne 0xfffa5492
+
+loc_fffa549a:
+inc eax
+cmp eax, 4
+jne short loc_fffa5467 ; jne 0xfffa5467
+mov eax, dword [ebp - 0x628]
+mov eax, dword [eax + 1]
+mov edx, dword [eax + 4]
+mov eax, dword [edx + 0x5f00]
+or eax, 1
+mov dword [edx + 0x5f00], eax
+mov eax, ref_fffcc904 ; mov eax, 0xfffcc904
+call fcn_fffbf91e ; call 0xfffbf91e
+lea eax, [ebp - 0x5e8]
+call fcn_fffbf908 ; call 0xfffbf908
+test eax, eax
+jne short loc_fffa54e7 ; jne 0xfffa54e7
+cmp dword [ebp - 0x5e8], 0x11
+jne short loc_fffa54e7 ; jne 0xfffa54e7
+mov eax, ref_fffcd554 ; mov eax, 0xfffcd554
+call fcn_fffbf91e ; call 0xfffbf91e
+
+loc_fffa54e7:
+mov ecx, dword [ebp - 0x640]
+push eax
+push eax
+mov eax, dword [ecx]
+push ref_fffcc910 ; push 0xfffcc910
+push ecx
+call dword [eax + 0x18] ; ucall
+mov dword [esp], ref_fffcc65f ; mov dword [esp], 0xfffcc65f
+call fcn_fffa1253 ; call 0xfffa1253
+mov eax, dword [0xff7d7538]
+pop edx
+pop ecx
+mov edx, dword [eax]
+push ref_fffcd498 ; push 0xfffcd498
+push eax
+call dword [edx + 0x18] ; ucall
+mov dword [esp], ref_fffcc688 ; mov dword [esp], 0xfffcc688
+call fcn_fffa1253 ; call 0xfffa1253
+mov eax, dword [0xff7d7538]
+call fcn_fffc1b54 ; call 0xfffc1b54
+mov edx, 0xfffe
+mov eax, ref_fffcd4c4 ; mov eax, 0xfffcd4c4
+call fcn_fffa11b3 ; call 0xfffa11b3
+add esp, 0x10
+test eax, eax
+jne short loc_fffa5573 ; jne 0xfffa5573
+cmp dword [ebp - 0x20c], 0x11
+je short loc_fffa555d ; je 0xfffa555d
+sub esp, 0xc
+push ref_fffcc6ab ; push 0xfffcc6ab
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+
+loc_fffa555d:
+mov eax, dword [ebp - 0x63c]
+mov dword [eax + 0x66], 0
+mov dword [eax + 0x62], 0
+jmp short loc_fffa5585 ; jmp 0xfffa5585
+
+loc_fffa5573:
+mov ecx, dword [ebp - 0x63c]
+mov edx, dword [eax + 0x18]
+add eax, 0x1c
+mov dword [ecx + 0x66], edx
+mov dword [ecx + 0x62], eax
+
+loc_fffa5585:
+sub esp, 0xc
+push ref_fffcc6dd ; push 0xfffcc6dd
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+xor eax, eax
+jmp near loc_fffa56a4 ; jmp 0xfffa56a4
+
+loc_fffa559c:
+or eax, 0xffffffff
+jmp near loc_fffa56a4 ; jmp 0xfffa56a4
+
+loc_fffa55a4:
+sub esp, 0xc
+mov edx, 0xc088018
+push 0
+movzx esi, byte [ebp - 0x659]
+mov eax, dword [ebp - 0x648]
+mov ecx, esi
+call fcn_fffa0516 ; call 0xfffa0516
+and eax, 0x81ffffff
+mov edx, 0xc088018
+movzx edi, byte [ebp - 0x65a]
+or eax, 0x10000000
+mov dword [esp], eax
+mov ecx, edi
+mov eax, dword [ebp - 0x648]
+call fcn_fffa0516 ; call 0xfffa0516
+mov ecx, esi
+mov edx, 0xc0c8018
+mov eax, dword [ebp - 0x648]
+mov dword [esp], 0
+call fcn_fffa0516 ; call 0xfffa0516
+and eax, 0xffefffff
+mov ecx, edi
+mov dword [esp], eax
+mov edx, 0xc0c8018
+mov eax, dword [ebp - 0x648]
+mov esi, 0xc0c8018
+call fcn_fffa0516 ; call 0xfffa0516
+add esp, 0x10
+jmp near loc_fffa48a6 ; jmp 0xfffa48a6
+
+loc_fffa5628:
+xor edx, edx
+jmp near loc_fffa4962 ; jmp 0xfffa4962
+
+loc_fffa562f:
+mov edx, dword [ebp - 0x640]
+sub esp, 0xc
+mov eax, dword [edx]
+lea edx, [ebp - 0x620]
+push edx
+push 0
+push 0
+push ref_fffcc96c ; push 0xfffcc96c
+push dword [ebp - 0x640]
+call dword [eax + 0x20] ; ucall
+mov eax, dword [ebp - 0x620]
+add esp, 0x14
+push dword [ebp - 0x640]
+call dword [eax + 8] ; ucall
+mov eax, dword [ebx + 0x84]
+and eax, 0xfffffff0
+or eax, 2
+mov dword [ebx + 0x84], eax
+mov dl, 1
+add esp, 0x10
+jmp near loc_fffa4ce2 ; jmp 0xfffa4ce2
+
+loc_fffa5681:
+mov eax, dword [ebx + 0x910]
+and ah, 0xc3
+mov dword [ebx + 0x910], eax
+mov eax, dword [ebx + 0x930]
+and ah, 0xc3
+mov dword [ebx + 0x930], eax
+jmp near loc_fffa4564 ; jmp 0xfffa4564
+
+loc_fffa56a4:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa56ac: ; not directly referenced
+push ebp
+mov ecx, 9
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x31]
+mov esi, ref_fffc9ef8 ; mov esi, 0xfffc9ef8
+push ebx
+lea esp, [esp - 0xdc]
+mov ebx, dword [ebp + 8]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov edx, dword [ebx + 0x1021]
+lea eax, [ebx + 0x16be]
+mov byte [ebp - 0x45], 0x40
+mov dword [ebp - 0xa0], eax
+mov byte [ebp - 0x44], 0x60
+mov byte [ebp - 0x43], 0x40
+mov byte [ebp - 0x42], 0x40
+mov byte [ebp - 0x41], 0x40
+mov byte [ebp - 0x40], 0x19
+mov byte [ebp - 0x3f], 0x32
+mov byte [ebp - 0x3e], 0x14
+mov byte [ebp - 0x3d], 0x14
+mov byte [ebp - 0x3c], 0x19
+mov byte [ebp - 0x51], 0x2e
+mov byte [ebp - 0x50], 0x46
+mov byte [ebp - 0x4f], 0x46
+mov byte [ebp - 0x4e], 0x2e
+mov byte [ebp - 0x3b], 0x21
+mov byte [ebp - 0x3a], 0x32
+mov byte [ebp - 0x39], 0x14
+mov byte [ebp - 0x38], 0x14
+mov byte [ebp - 0x37], 0x1d
+mov byte [ebp - 0x4d], 0x3b
+mov byte [ebp - 0x4c], 0x35
+mov byte [ebp - 0x4b], 0x35
+mov byte [ebp - 0x4a], 0x35
+mov dword [ebp - 0x70], edx
+mov eax, dword [ebx + edx*4 + 0x172c]
+mov ecx, dword [ebx + 0x1005]
+mov esi, dword [ebx + 0x1001]
+mov dword [ebp - 0x6c], ecx
+mov dword [ebp - 0x88], eax
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x5e]
+mov dword [ebp - 0xd4], esi
+call fcn_fffa119f ; call 0xfffa119f
+lea edx, [ebp - 0x3b]
+mov ecx, 5
+lea eax, [ebp - 0x36]
+mov esi, 0xcf8
+call fcn_fffa115e ; call 0xfffa115e
+lea edx, [ebp - 0x4d]
+mov ecx, 4
+lea eax, [ebp - 0x49]
+call fcn_fffa115e ; call 0xfffa115e
+lea edx, [ebx + 0x2974]
+mov eax, 0x80000000
+mov dword [ebp - 0xa4], edx
+mov edx, esi
+out dx, eax
+mov ecx, 0xcfc
+mov edx, ecx
+in eax, dx
+shr eax, 0x10
+mov edx, esi
+mov word [ebx + 0x2978], ax
+mov eax, 0x80000008
+out dx, eax
+mov edx, ecx
+in eax, dx
+cmp dword [ebp - 0x6c], 0x306c0
+mov byte [ebx + 0x297a], al
+sete byte [ebp - 0xa7]
+cmp dword [ebp - 0x6c], 0x40660
+sete byte [ebp - 0xa8]
+mov cl, byte [ebp - 0xa8]
+or cl, byte [ebp - 0xa7]
+mov byte [ebp - 0xa5], cl
+jne short loc_fffa5810 ; jne 0xfffa5810
+
+loc_fffa57f9: ; not directly referenced
+xor ecx, ecx
+mov edx, 0x35
+mov eax, ebx
+call fcn_fffc6438 ; call 0xfffc6438
+test eax, eax
+jne short loc_fffa586c ; jne 0xfffa586c
+jmp near loc_fffa58b6 ; jmp 0xfffa58b6
+
+loc_fffa5810: ; not directly referenced
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffa583d ; jne 0xfffa583d
+imul eax, dword [ebp - 0x70], 0x2a
+lea eax, [ebx + eax + 0x297c]
+movzx esi, word [eax + 0x10]
+mov cx, word [eax + 0xe]
+movzx edx, cx
+sub edx, esi
+cmp edx, 4
+jle short loc_fffa583d ; jle 0xfffa583d
+sub ecx, 4
+mov word [eax + 0x10], cx
+
+loc_fffa583d: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffa57f9 ; jne 0xfffa57f9
+imul eax, dword [ebp - 0x70], 0x2a
+lea eax, [ebx + eax + 0x3cc3]
+movzx esi, word [eax + 0x10]
+mov cx, word [eax + 0xe]
+movzx edx, cx
+sub edx, esi
+cmp edx, 4
+jle short loc_fffa57f9 ; jle 0xfffa57f9
+sub ecx, 4
+mov word [eax + 0x10], cx
+jmp short loc_fffa57f9 ; jmp 0xfffa57f9
+
+loc_fffa586c: ; not directly referenced
+xor edx, edx
+mov eax, dword [ebx + 0x16ce]
+mov ecx, 0x7d0
+div ecx
+cmp dword [ebx + 0x1749], 2
+sete byte [ebp - 0xd5]
+movzx esi, byte [ebp - 0xd5]
+cmp dword [ebp - 0x6c], 0x40650
+mov dword [ebp - 0x74], esi
+mov word [ebx + 0x1766], ax
+je loc_fffa5a27 ; je 0xfffa5a27
+mov dword [ebp - 0xd0], 0
+jmp near loc_fffa5a70 ; jmp 0xfffa5a70
+
+loc_fffa58b6: ; not directly referenced
+sub esp, 0xc
+lea eax, [ebp - 0x5c]
+push eax
+lea ecx, [ebp - 0x5f]
+lea edx, [ebp - 0x58]
+mov eax, ebx
+call fcn_fffb5038 ; call 0xfffb5038
+add esp, 0x10
+test eax, eax
+je short loc_fffa58f7 ; je 0xfffa58f7
+mov dword [ebx + 0x16c6], eax
+mov eax, dword [ebp - 0x58]
+mov dword [ebx + 0x16ce], eax
+mov eax, dword [ebp - 0x5c]
+mov dword [ebx + 0x16d2], eax
+mov al, byte [ebp - 0x5f]
+mov byte [ebx + 0x16d6], al
+jmp near loc_fffa586c ; jmp 0xfffa586c
+
+loc_fffa58f7: ; not directly referenced
+cmp dword [ebx + 0x16d7], 0
+jne short loc_fffa5979 ; jne 0xfffa5979
+cmp dword [ebx + 0x1021], 1
+jne short loc_fffa5915 ; jne 0xfffa5915
+mov al, byte [ebx + 0xff4]
+test al, al
+je short loc_fffa5915 ; je 0xfffa5915
+jmp short loc_fffa5973 ; jmp 0xfffa5973
+
+loc_fffa5915: ; not directly referenced
+mov eax, dword [ebx + 0xff9]
+mov ecx, dword [ebx + 0x16c6]
+test eax, eax
+mov edi, dword [ebx + 0x16d2]
+mov dword [ebp - 0x74], ecx
+mov esi, 0x3e8
+je short loc_fffa593e ; je 0xfffa593e
+mov ecx, 0x186a0
+xor edx, edx
+div ecx
+mov esi, eax
+
+loc_fffa593e: ; not directly referenced
+dec edi
+mov eax, 0x411ab
+mov ecx, 0x30d40
+cmovne ecx, eax
+mov eax, 0x3b9aca00
+imul ecx, esi
+mul dword [ebp - 0x74]
+xor edi, edi
+push edi
+push ecx
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+add eax, 0x1f4
+mov ecx, 0x3e8
+xor edx, edx
+add esp, 0x10
+div ecx
+
+loc_fffa5973: ; not directly referenced
+mov byte [ebx + 0x16d6], al
+
+loc_fffa5979: ; not directly referenced
+mov al, byte [ebx + 0x16d6]
+lea edx, [eax - 3]
+cmp dl, 0xc
+jbe short loc_fffa5991 ; jbe 0xfffa5991
+
+loc_fffa5987: ; not directly referenced
+mov edx, 0x15
+jmp near loc_fffa7821 ; jmp 0xfffa7821
+
+loc_fffa5991: ; not directly referenced
+mov esi, 0xf
+and esi, eax
+xor eax, eax
+cmp dword [ebx + 0x16d2], 0
+setne al
+shl eax, 4
+or esi, eax
+mov eax, dword [ebx + 0x103f]
+or esi, 0x80000000
+mov dword [eax + 0x5e00], esi
+call fcn_fffc6986 ; call 0xfffc6986
+imul edi, eax, 0x3e8
+jmp short loc_fffa59d4 ; jmp 0xfffa59d4
+
+loc_fffa59c8: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov esi, dword [eax + 0x5e00]
+
+loc_fffa59d4: ; not directly referenced
+mov eax, esi
+shr eax, 0x18
+test al, al
+jns loc_fffa77fb ; jns 0xfffa77fb
+call fcn_fffc6986 ; call 0xfffc6986
+cmp edx, 0
+ja short loc_fffa5987 ; ja 0xfffa5987
+cmp eax, edi
+jb short loc_fffa59c8 ; jb 0xfffa59c8
+jmp short loc_fffa5987 ; jmp 0xfffa5987
+
+loc_fffa59f1: ; not directly referenced
+sub esp, 0xc
+lea eax, [ebp - 0x5c]
+push eax
+lea edx, [ebp - 0x58]
+lea ecx, [ebp - 0x5f]
+mov eax, ebx
+call fcn_fffb5038 ; call 0xfffb5038
+mov dword [ebx + 0x16c6], eax
+add esp, 0x10
+mov al, byte [ebx + 0x16d6]
+cmp byte [ebp - 0x5f], al
+mov edx, 0x15
+jne loc_fffa7821 ; jne 0xfffa7821
+jmp near loc_fffa586c ; jmp 0xfffa586c
+
+loc_fffa5a27: ; not directly referenced
+xor eax, eax
+cmp byte [ebx + 0x16ba], 0
+sete al
+shl eax, 0xa
+cmp dword [ebp - 0x74], 0
+je short loc_fffa5a5a ; je 0xfffa5a5a
+mov dl, byte [ebx + 0x16bc]
+or ah, 8
+mov ecx, edx
+shr dl, 4
+and ecx, 0xf
+shl ecx, 0xc
+and edx, 0xf
+shl edx, 0x10
+or eax, ecx
+or eax, edx
+
+loc_fffa5a5a: ; not directly referenced
+mov edx, dword [ebx + 0x103f]
+mov dword [ebp - 0xd0], 1
+mov dword [edx + 0x2008], eax
+
+loc_fffa5a70: ; not directly referenced
+movzx eax, byte [ebx + 0x16bf]
+movzx edx, byte [ebx + 0x16be]
+shl edx, 0x18
+shl eax, 0x10
+movzx ecx, byte [ebx + 0x16c1]
+or eax, edx
+movzx edx, byte [ebx + 0x16c0]
+shl edx, 8
+or edx, ecx
+mov cl, 4
+or eax, edx
+mov edx, dword [ebx + 0x103f]
+cmp dword [ebp - 0x88], 0x546
+seta byte [ebp - 0xb8]
+mov dword [edx + 0x5034], eax
+mov eax, dword [ebx + 0x103f]
+mov dl, byte [ebx + 0x16d6]
+mov esi, dword [eax + 0x3918]
+and esi, 3
+cmp dword [ebx + 0x16d2], 1
+sbb eax, eax
+and eax, 0xfffffffe
+add eax, 6
+sub edx, eax
+cmp dl, 4
+cmovle ecx, edx
+xor eax, eax
+test cl, cl
+cmovns eax, ecx
+and esi, 0xff
+cmp dword [ebp - 0x6c], 0x40650
+jne short loc_fffa5b21 ; jne 0xfffa5b21
+cmp al, 2
+mov dl, 2
+movzx ecx, byte [ebp - 0xb8]
+cmovle edx, eax
+movsx edx, dl
+lea eax, [ecx + ecx*2]
+add edx, eax
+mov dl, byte [esi + edx*4 + ref_fffc9f3c] ; mov dl, byte [esi + edx*4 - 0x360c4]
+mov byte [ebp - 0x98], dl
+jmp short loc_fffa5b3d ; jmp 0xfffa5b3d
+
+loc_fffa5b21: ; not directly referenced
+movzx edx, byte [ebp - 0xb8]
+movsx eax, al
+lea edx, [edx + edx*4]
+add eax, edx
+mov al, byte [esi + eax*4 + ref_fffc9f14] ; mov al, byte [esi + eax*4 - 0x360ec]
+mov byte [ebp - 0x98], al
+
+loc_fffa5b3d: ; not directly referenced
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffa5b55 ; jne 0xfffa5b55
+imul eax, dword [ebp - 0x70], 0x2a
+mov ax, word [ebx + eax + 0x298a]
+mov byte [ebp - 0x5e], al
+
+loc_fffa5b55: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffa5b6d ; jne 0xfffa5b6d
+imul eax, dword [ebp - 0x70], 0x2a
+mov ax, word [ebx + eax + 0x3cd1]
+mov byte [ebp - 0x5d], al
+
+loc_fffa5b6d: ; not directly referenced
+lea edx, [ebx + 0xfd8]
+xor edi, edi
+mov byte [ebp - 0xa6], 0
+mov dword [ebp - 0xcc], edx
+
+loc_fffa5b82: ; not directly referenced
+imul eax, edi, 0x1347
+mov ecx, dword [ebp - 0xa0]
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffa5d10 ; jne 0xfffa5d10
+mov edx, dword [ebp - 0xa4]
+mov ecx, edi
+lea esi, [edx + eax + 8]
+cmp dword [esi + 0xf5], 2
+sete al
+add byte [ebp - 0xa6], al
+mov eax, 1
+shl eax, cl
+or byte [ebx + 0x176b], al
+mov al, byte [esi + 0x114f]
+or byte [ebx + 0x176a], al
+movzx eax, byte [esi + 0x114f]
+and eax, 0xf
+cmp dword [ebp - 0x74], 0
+je short loc_fffa5c0f ; je 0xfffa5c0f
+imul eax, edi, 0x2fa
+mov ecx, dword [ebp - 0xcc]
+lea edx, [ecx + eax + 0xe4]
+xor eax, eax
+cmp byte [edx + 0x2ee], 0
+setne al
+mov ecx, eax
+or ecx, 2
+cmp byte [edx + 0x2ef], 0
+cmovne eax, ecx
+
+loc_fffa5c0f: ; not directly referenced
+lea edx, [edi + 0x18]
+shl edx, 8
+add edx, dword [ebx + 0x103f]
+mov dword [edx], eax
+movzx edx, byte [esi + 0x114f]
+and edx, 0xf
+cmp dword [ebp - 0x6c], 0x40650
+mov eax, edx
+jne short loc_fffa5c49 ; jne 0xfffa5c49
+cmp dword [ebp - 0x74], 0
+je short loc_fffa5c44 ; je 0xfffa5c44
+or eax, 0x20
+cmp byte [ebx + 0x16bb], 0
+jne short loc_fffa5c49 ; jne 0xfffa5c49
+
+loc_fffa5c44: ; not directly referenced
+mov eax, edx
+or eax, 0x30
+
+loc_fffa5c49: ; not directly referenced
+mov edx, edi
+shl edx, 8
+mov dword [ebp - 0x9c], edx
+mov edx, dword [ebx + 0x103f]
+mov ecx, dword [ebp - 0x9c]
+lea edx, [ecx + edx + 0x1c20]
+mov dword [edx], eax
+movzx eax, byte [esi + 0x114f]
+mov dword [ebp - 0x7c], eax
+and eax, 0xf
+cmp dword [ebp - 0x74], 0
+je short loc_fffa5cf2 ; je 0xfffa5cf2
+lea ecx, [edi*4]
+mov dword [ebp - 0x78], 0
+movzx edx, byte [ebx + 0x16bc]
+xor eax, eax
+sar edx, cl
+and edx, 0xf
+mov dword [ebp - 0xe0], edx
+jmp short loc_fffa5cdd ; jmp 0xfffa5cdd
+
+loc_fffa5ca0: ; not directly referenced
+mov edx, dword [ebp - 0xe0]
+shr edx, cl
+and edx, 1
+mov dword [ebp - 0x84], edx
+mov edx, dword [ebp - 0x78]
+cmp dword [ebp - 0x84], edx
+jne short loc_fffa5cce ; jne 0xfffa5cce
+cmp dword [ebp - 0x80], 0
+je short loc_fffa5cce ; je 0xfffa5cce
+mov edx, 1
+shl edx, cl
+or eax, edx
+and eax, 0xf
+
+loc_fffa5cce: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffa5ca0 ; jne 0xfffa5ca0
+inc dword [ebp - 0x78]
+cmp dword [ebp - 0x78], 4
+je short loc_fffa5cef ; je 0xfffa5cef
+
+loc_fffa5cdd: ; not directly referenced
+mov cl, byte [ebp - 0x78]
+mov edx, dword [ebp - 0x7c]
+sar edx, cl
+xor ecx, ecx
+and edx, 1
+mov dword [ebp - 0x80], edx
+jmp short loc_fffa5ca0 ; jmp 0xfffa5ca0
+
+loc_fffa5cef: ; not directly referenced
+and eax, 0xf
+
+loc_fffa5cf2: ; not directly referenced
+mov edx, dword [ebx + 0x103f]
+mov ecx, dword [ebp - 0x9c]
+lea edx, [ecx + edx + 0x1220]
+mov dword [edx], eax
+and eax, 0xf
+mov byte [esi + 0x1150], al
+
+loc_fffa5d10: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffa5b82 ; jne 0xfffa5b82
+mov eax, 0x3600
+xor di, di
+
+loc_fffa5d22: ; not directly referenced
+movzx edx, byte [ebx + 0x176a]
+bt edx, edi
+jb short loc_fffa5d3c ; jb 0xfffa5d3c
+
+loc_fffa5d2e: ; not directly referenced
+inc edi
+add eax, 4
+cmp edi, 4
+jne short loc_fffa5d22 ; jne 0xfffa5d22
+jmp near loc_fffa5e1e ; jmp 0xfffa5e1e
+
+loc_fffa5d3c: ; not directly referenced
+mov edx, dword [ebx + 0x103f]
+mov dword [ebp - 0x84], 0
+add edx, eax
+mov dword [edx], 0x200c040
+mov edx, dword [ebx + 0x103f]
+lea edx, [eax + edx + 0x10]
+mov dword [edx], 0x88888888
+mov edx, dword [ebx + 0x103f]
+lea edx, [eax + edx + 0x20]
+mov dword [edx], 0x3b08060
+mov edx, dword [ebx + 0x103f]
+lea edx, [eax + edx + 0x30]
+mov dword [edx], 0x88888888
+imul edx, edi, 0x12
+add edx, 0x220
+mov dword [ebp - 0x7c], edx
+lea edx, [edi + edi*8]
+add edx, 0x300
+mov dword [ebp - 0x80], edx
+
+loc_fffa5d9c: ; not directly referenced
+imul edx, dword [ebp - 0x84], 0x1347
+mov esi, dword [ebp - 0xa4]
+mov ecx, dword [ebp - 0x7c]
+lea edx, [esi + edx + 8]
+mov esi, dword [ebp - 0x80]
+lea ecx, [edx + ecx + 5]
+mov dword [ebp - 0x9c], ecx
+lea edx, [edx + esi + 9]
+mov esi, 9
+
+loc_fffa5dc9: ; not directly referenced
+mov ecx, dword [ebp - 0x9c]
+mov word [ecx], 0x60
+mov word [ecx - 0x48], 0x40
+mov byte [edx], 0x3b
+mov word [ecx + 0x48], 0x40
+add ecx, 2
+mov byte [edx + 0xdfd], 0x20
+mov dword [ebp - 0x9c], ecx
+mov ecx, esi
+mov byte [edx + 0xe21], 0x20
+mov byte [edx + 0xdd9], 1
+inc edx
+dec cl
+mov esi, ecx
+jne short loc_fffa5dc9 ; jne 0xfffa5dc9
+inc dword [ebp - 0x84]
+cmp dword [ebp - 0x84], 2
+jne short loc_fffa5d9c ; jne 0xfffa5d9c
+jmp near loc_fffa5d2e ; jmp 0xfffa5d2e
+
+loc_fffa5e1e: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x3648], 0
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x364c], 0x88888888
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x3670], 0
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x365c], 0
+mov al, byte [ebp - 0xb8]
+and eax, 1
+mov edi, eax
+mov eax, dword [ebp - 0xd0]
+shl edi, 0x13
+shl eax, 0x1a
+or edi, eax
+cmp dword [ebp - 0x74], 0
+je short loc_fffa5ea7 ; je 0xfffa5ea7
+or edi, 0x10000000
+cmp dword [ebp - 0xd4], 0
+setne dl
+cmp dword [ebp - 0x6c], 0x40650
+sete al
+test dl, al
+je short loc_fffa5ea1 ; je 0xfffa5ea1
+or edi, 0x80000000
+
+loc_fffa5ea1: ; not directly referenced
+or edi, 0x40000000
+
+loc_fffa5ea7: ; not directly referenced
+mov eax, edi
+or ah, 1
+cmp byte [ebp - 0xa5], 0
+cmovne edi, eax
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x3674], edi
+cmp byte [ebx + 0x106d], 1
+sbb ecx, ecx
+mov al, byte [ebp - 0x98]
+and eax, 7
+not ecx
+shl eax, 0xa
+and ecx, 0x40
+or ecx, eax
+mov eax, dword [ebx + 0x103f]
+or ecx, 0x7efc010
+xor esi, esi
+cmp dword [ebp - 0x6c], 0x40650
+mov dword [eax + 0x3660], ecx
+jne short loc_fffa5f0d ; jne 0xfffa5f0d
+cmp dword [ebp - 0x74], 1
+sbb esi, esi
+and esi, 0xfffffe80
+add esi, 0x3f180
+
+loc_fffa5f0d: ; not directly referenced
+mov dword [ebp - 0x7c], 0
+
+loc_fffa5f14: ; not directly referenced
+imul eax, dword [ebp - 0x7c], 0x1347
+mov edx, dword [ebp - 0xa0]
+cmp dword [edx + eax + 0x12be], 2
+je short loc_fffa5f39 ; je 0xfffa5f39
+
+loc_fffa5f2b: ; not directly referenced
+inc dword [ebp - 0x7c]
+cmp dword [ebp - 0x7c], 2
+jne short loc_fffa5f14 ; jne 0xfffa5f14
+jmp near loc_fffa6006 ; jmp 0xfffa6006
+
+loc_fffa5f39: ; not directly referenced
+mov edx, dword [ebp - 0xa4]
+mov byte [ebp - 0x84], 0
+lea eax, [edx + eax + 8]
+mov edx, dword [ebp - 0x7c]
+mov dword [ebp - 0x80], eax
+mov dword [eax + 0x141], edi
+movzx eax, byte [ebp + edx - 0x5e]
+shl edx, 8
+add edx, 0x64
+mov dword [ebp - 0x98], edx
+lea eax, [eax + eax - 6]
+movzx eax, al
+mov dword [ebp - 0x9c], eax
+jmp short loc_fffa5fef ; jmp 0xfffa5fef
+
+loc_fffa5f76: ; not directly referenced
+movzx eax, byte [ebp - 0x84]
+mov edx, dword [ebp - 0x80]
+mov dword [ebp - 0x78], eax
+and esi, 0xffffffe0
+inc byte [ebp - 0x84]
+mov dword [edx + eax*4 + 0xf9], 0
+mov dword [edx + eax*4 + 0x11d], 0
+mov dword [edx + eax*4 + 0x145], ecx
+movzx eax, byte [ebp + eax - 0x31]
+imul eax, dword [ebp - 0x9c]
+movzx edx, byte [ebx + 0x1755]
+mov dword [ebp - 0xe0], edx
+cdq
+idiv dword [ebp - 0xe0]
+mov edx, dword [ebp - 0x80]
+and eax, 0x1f
+or esi, eax
+mov eax, dword [ebp - 0x78]
+shl eax, 9
+add eax, dword [ebp - 0x98]
+add eax, dword [ebx + 0x103f]
+mov dword [eax], esi
+mov eax, dword [ebp - 0x78]
+mov dword [edx + eax*4 + 0x169], esi
+
+loc_fffa5fef: ; not directly referenced
+mov al, byte [ebp - 0x84]
+cmp al, byte [ebx + 0x1755]
+jb loc_fffa5f76 ; jb 0xfffa5f76
+jmp near loc_fffa5f2b ; jmp 0xfffa5f2b
+
+loc_fffa6006: ; not directly referenced
+mov edx, dword [ebp - 0x88]
+movzx esi, word [ebp - 0x88]
+sub dx, 0x3b6
+xor ecx, ecx
+movzx eax, dx
+mov word [ebp - 0x7c], dx
+imul eax, eax, 0xc0
+cdq
+idiv esi
+sub eax, 0x14
+cmp dword [ebp - 0x6c], 0x40650
+jne short loc_fffa604b ; jne 0xfffa604b
+movzx ecx, ax
+mov edx, dword [ebx + 0x103f]
+add ecx, 0x4d8140
+mov dword [edx + 0x366c], ecx
+
+loc_fffa604b: ; not directly referenced
+cmp byte [ebp - 0xa5], 0
+je short loc_fffa6069 ; je 0xfffa6069
+movzx ecx, ax
+mov eax, dword [ebx + 0x103f]
+add ecx, 0x4d8140
+mov dword [eax + 0x306c], ecx
+
+loc_fffa6069: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+lea edi, [ebp - 0x28]
+shl esi, 7
+mov word [ebp - 0x78], 0x3e8
+mov dword [eax + 0x3a24], ecx
+mov ecx, 4
+movzx eax, word [ebx + 0x1067]
+imul eax, eax, 0x2ee00
+cdq
+idiv esi
+mov esi, ref_fffc9f04 ; mov esi, 0xfffc9f04
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+xor esi, esi
+xor edi, edi
+sub ax, 0x3e8
+mov word [ebp - 0x98], ax
+xor eax, eax
+jmp short loc_fffa6105 ; jmp 0xfffa6105
+
+loc_fffa60b0: ; not directly referenced
+mov byte [ebp - 0x80], al
+
+loc_fffa60b3: ; not directly referenced
+mov ecx, dword [ebp - 0x9c]
+sub cx, word [ebp + edx*2 - 0x28]
+mov word [ebp - 0xe0], cx
+mov al, dl
+sar cx, 0xf
+mov word [ebp - 0x84], cx
+mov ecx, dword [ebp - 0xe0]
+xor ecx, dword [ebp - 0x84]
+sub ecx, dword [ebp - 0x84]
+cmp word [ebp - 0x78], cx
+jg short loc_fffa60ef ; jg 0xfffa60ef
+mov al, byte [ebp - 0x80]
+jmp short loc_fffa60f9 ; jmp 0xfffa60f9
+
+loc_fffa60ef: ; not directly referenced
+mov edi, dword [ebp - 0xcc]
+mov word [ebp - 0x78], cx
+
+loc_fffa60f9: ; not directly referenced
+inc edx
+cmp edx, 8
+jne short loc_fffa60b0 ; jne 0xfffa60b0
+inc esi
+cmp esi, 8
+je short loc_fffa6126 ; je 0xfffa6126
+
+loc_fffa6105: ; not directly referenced
+mov ecx, esi
+mov edx, dword [ebp - 0x98]
+sub dx, word [ebp + esi*2 - 0x28]
+mov byte [ebp - 0xcc], cl
+mov word [ebp - 0x9c], dx
+mov byte [ebp - 0x80], al
+xor edx, edx
+jmp short loc_fffa60b3 ; jmp 0xfffa60b3
+
+loc_fffa6126: ; not directly referenced
+cmp dword [ebp - 0x6c], 0x40650
+jne short loc_fffa613f ; jne 0xfffa613f
+mov edx, dword [ebx + 0x103f]
+mov dword [edx + 0xf68], 0x2051c
+
+loc_fffa613f: ; not directly referenced
+cmp byte [ebp - 0xa5], 0
+je short loc_fffa6162 ; je 0xfffa6162
+lea eax, [eax + edi*8]
+mov edx, dword [ebx + 0x103f]
+movzx eax, al
+shl eax, 0xc
+add eax, 0x53f
+mov dword [edx + 0xf6c], eax
+
+loc_fffa6162: ; not directly referenced
+mov dl, byte [ebp - 0xb8]
+mov ecx, dword [ebx + 0x103f]
+and edx, 1
+mov dword [ebp - 0x78], 0
+mov eax, edx
+shl eax, 0x1a
+shl edx, 0x1b
+or eax, 0x3e00000
+mov dword [ecx + 0x3678], eax
+mov ecx, edx
+or ecx, 0x10
+or edx, 0x20000010
+mov dword [ebx + 0x175e], eax
+mov dword [ebp - 0x80], ecx
+mov eax, 0x1208
+mov dword [ebp - 0x84], edx
+
+loc_fffa61aa: ; not directly referenced
+imul edx, dword [ebp - 0x78], 0x1347
+mov esi, dword [ebp - 0xa0]
+cmp dword [esi + edx + 0x12be], 2
+jne loc_fffa6305 ; jne 0xfffa6305
+mov esi, dword [ebx + 0x103f]
+mov edi, dword [ebp - 0xa4]
+cmp dword [ebp - 0x74], 0
+mov ecx, dword [ebp - 0x84]
+cmove ecx, dword [ebp - 0x80]
+lea esi, [eax + esi + 0x608]
+lea edx, [edi + edx + 8]
+mov dword [esi], ecx
+cmp byte [ebx + 0x106d], 0
+mov esi, ecx
+je short loc_fffa61ff ; je 0xfffa61ff
+or ecx, 0x10000000
+mov esi, ecx
+
+loc_fffa61ff: ; not directly referenced
+mov edi, dword [ebx + 0x103f]
+and ecx, 0xfffe1fff
+or ecx, 0x1a000
+and esi, 0xffe1ffff
+or esi, 0x40120000
+lea edi, [eax + edi + 0x2004]
+mov dword [edi], ecx
+mov edi, dword [ebx + 0x103f]
+and ecx, 0xffe1bfff
+or ecx, 0x120000
+cmp dword [ebp - 0x6c], 0x40650
+lea edi, [eax + edi + 0x14]
+mov dword [edi], ecx
+mov ecx, dword [ebx + 0x103f]
+lea ecx, [eax + ecx + 0xa14]
+mov dword [ecx], esi
+lea ecx, [eax + 0x2000]
+jne short loc_fffa626a ; jne 0xfffa626a
+mov esi, dword [ebx + 0x103f]
+add esi, ecx
+mov dword [esi], 0xc183060
+
+loc_fffa626a: ; not directly referenced
+cmp byte [ebp - 0xa5], 0
+je short loc_fffa627c ; je 0xfffa627c
+add ecx, dword [ebx + 0x103f]
+mov byte [ecx], 0x60
+
+loc_fffa627c: ; not directly referenced
+mov ecx, dword [ebx + 0x103f]
+add ecx, eax
+mov dword [ecx], 0xc183060
+mov ecx, dword [ebx + 0x103f]
+lea ecx, [eax + ecx + 0x2210]
+mov dword [ecx], 0x8102040
+mov ecx, dword [ebx + 0x103f]
+lea ecx, [eax + ecx + 0x604]
+mov dword [ecx], 0x8102040
+mov byte [edx + 0x2fd], 0x40
+mov byte [edx + 0x2fe], 0x40
+mov byte [edx + 0x2ff], 0x40
+mov byte [edx + 0x300], 0x40
+mov edx, dword [ebx + 0x103f]
+lea edx, [eax + edx + 0x1ffc]
+mov dword [edx], 0
+mov edx, dword [ebx + 0x103f]
+lea edx, [eax + edx + 0x220c]
+mov dword [edx], 0
+mov edx, dword [ebx + 0x103f]
+lea edx, [eax + edx + 0x600]
+mov dword [edx], 0
+
+loc_fffa6305: ; not directly referenced
+inc dword [ebp - 0x78]
+add eax, 0x100
+cmp dword [ebp - 0x78], 2
+jne loc_fffa61aa ; jne 0xfffa61aa
+mov eax, dword [ebp - 0xd0]
+shl eax, 3
+cmp byte [ebp - 0xa6], 0
+mov dword [ebx + 0x1756], eax
+je short loc_fffa6341 ; je 0xfffa6341
+mov dl, byte [ebp - 0x35]
+mov al, 0x3c
+cmp dword [ebx + 0xffd], 1
+cmovne eax, edx
+mov byte [ebp - 0x35], al
+
+loc_fffa6341: ; not directly referenced
+cmp dword [ebp - 0x6c], 0x40650
+jne short loc_fffa6352 ; jne 0xfffa6352
+mov byte [ebp - 0x40], 0x28
+mov byte [ebp - 0x36], 0x28
+
+loc_fffa6352: ; not directly referenced
+mov edi, 0xc
+xor esi, esi
+
+loc_fffa6359: ; not directly referenced
+movzx eax, byte [ebp + esi - 0x40]
+movzx edx, byte [ebp + esi - 0x36]
+mov dword [ebp - 0x80], eax
+movzx eax, byte [ebp + esi - 0x45]
+mov ecx, dword [ebp - 0x80]
+sub ecx, edx
+imul eax, ecx
+mov ecx, dword [ebp - 0x80]
+add ecx, edx
+cdq
+add ecx, ecx
+idiv ecx
+mov edx, esi
+cmp dl, 1
+jne short loc_fffa63a4 ; jne 0xfffa63a4
+cmp ax, 0xfffffffffffffff0
+mov edx, 0xfffffff0
+cmovge edx, eax
+mov eax, 0xf
+cmp dx, 0xf
+cmovle eax, edx
+and eax, 0x1f
+shl eax, 0xf
+jmp short loc_fffa63cc ; jmp 0xfffa63cc
+
+loc_fffa63a4: ; not directly referenced
+cmp ax, 0xfffffffffffffff8
+mov ecx, 0xfffffff8
+cmovl eax, ecx
+mov ecx, 7
+cmp ax, 7
+cmovg eax, ecx
+and eax, 0xf
+test dl, dl
+jne short loc_fffa63c8 ; jne 0xfffa63c8
+shl eax, 0xb
+jmp short loc_fffa63cc ; jmp 0xfffa63cc
+
+loc_fffa63c8: ; not directly referenced
+mov ecx, edi
+shl eax, cl
+
+loc_fffa63cc: ; not directly referenced
+inc esi
+or dword [ebx + 0x1756], eax
+add edi, 4
+cmp esi, 5
+jne loc_fffa6359 ; jne 0xfffa6359
+mov eax, dword [ebx + 0x103f]
+mov edx, dword [ebx + 0x1756]
+mov dword [eax + 0x3a14], edx
+mov al, byte [ebp - 0xb8]
+and eax, 1
+mov edi, eax
+imul eax, dword [ebp - 0x70], 0x2a
+shl edi, 0x19
+add eax, ebx
+and edi, 0xfeffffff
+cmp word [eax + 0x2988], 2
+jne short loc_fffa6459 ; jne 0xfffa6459
+
+loc_fffa6415: ; not directly referenced
+mov eax, 1
+mov edx, 2
+
+loc_fffa641f: ; not directly referenced
+imul ecx, dword [ebp - 0x70], 0x2a
+add ecx, ebx
+mov word [ecx + 0x2988], dx
+lea edx, [eax + 1]
+dec eax
+mov word [ecx + 0x3ccf], dx
+mov al, byte [ebp - 0x48]
+mov dl, 0x59
+movzx esi, word [ebx + 0x1766]
+cmovne edx, eax
+cmp dword [ebp - 0x74], 0
+mov al, 0x3f
+cmove eax, edx
+mov dword [ebp - 0x78], esi
+mov byte [ebp - 0x48], al
+xor esi, esi
+jmp short loc_fffa646c ; jmp 0xfffa646c
+
+loc_fffa6459: ; not directly referenced
+cmp word [eax + 0x3ccf], 2
+je short loc_fffa6415 ; je 0xfffa6415
+xor eax, eax
+mov edx, 1
+jmp short loc_fffa641f ; jmp 0xfffa641f
+
+loc_fffa646c: ; not directly referenced
+movzx ecx, byte [ebp + esi - 0x49]
+mov al, cl
+mov byte [ebp - 0x70], cl
+shr al, 1
+movzx eax, al
+add eax, dword [ebp - 0x78]
+cdq
+idiv ecx
+mov edx, 5
+lea ecx, [esi + esi*4]
+cmp ax, 4
+cmovbe eax, edx
+cmp ax, 0x10
+ja short loc_fffa649f ; ja 0xfffa649f
+mov dl, byte [ebp - 0x70]
+cmp dl, byte [ebp + esi - 0x51]
+jae short loc_fffa64a8 ; jae 0xfffa64a8
+
+loc_fffa649f: ; not directly referenced
+shr ax, 1
+movzx eax, ax
+dec eax
+jmp short loc_fffa64ae ; jmp 0xfffa64ae
+
+loc_fffa64a8: ; not directly referenced
+movzx eax, ax
+add eax, 0xf
+
+loc_fffa64ae: ; not directly referenced
+shl eax, cl
+inc esi
+add edi, eax
+cmp esi, 4
+jne short loc_fffa646c ; jne 0xfffa646c
+mov eax, dword [ebx + 0x103f]
+mov ecx, dword [ebp - 0x7c]
+add ecx, 0x18
+movzx ecx, cx
+mov dword [eax + 0x3a18], edi
+mov dword [ebx + 0x175a], edi
+imul eax, ecx, 0x64
+sub ecx, 0xf
+cdq
+idiv ecx
+call fcn_fffb2140 ; call 0xfffb2140
+movzx esi, word [ebx + 0x1766]
+movzx ecx, ax
+imul esi, esi, 0x7d0
+imul ecx, ecx, 0x7d0
+mov eax, esi
+cdq
+mov dword [ebp - 0x70], esi
+idiv ecx
+movzx esi, word [ebx + 0x1067]
+mov edi, esi
+sub edi, dword [ebp - 0x7c]
+sub edi, 0x18
+movzx edi, di
+movzx ecx, ax
+mov eax, ecx
+add ecx, 0x3e8
+shl eax, 7
+cdq
+idiv ecx
+mov dword [ebp - 0x78], eax
+imul eax, edi, 0x64
+sub edi, 0xf
+cdq
+idiv edi
+call fcn_fffb2140 ; call 0xfffb2140
+mov edi, eax
+mov eax, 0x7080
+cdq
+and edi, 0xffff
+idiv esi
+imul edi, edi, 0x7d0
+mov ecx, eax
+mov eax, dword [ebp - 0x70]
+cdq
+and ecx, 0x1f
+idiv edi
+shl ecx, 0xc
+movzx esi, ax
+mov eax, 0x1f400
+add esi, 0x3e8
+cdq
+idiv esi
+or ecx, 0x80000
+mov edx, dword [ebp - 0x78]
+and edx, 0x3f
+and eax, 0x3f
+shl eax, 6
+or ecx, eax
+mov eax, dword [ebx + 0x103f]
+or ecx, edx
+mov dword [eax + 0x3a1c], ecx
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x2008]
+and eax, 0xfffffc20
+or eax, 0x316
+mov dword [ebx + 0x1762], eax
+mov dword [edx + 0x2008], eax
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x2000], 0
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x2004], 0
+mov edx, dword [ebx + 0x103f]
+mov al, byte [ebx + 0x3acb]
+mov byte [edx + 0x42a0], al
+mov edx, dword [ebx + 0x103f]
+mov al, byte [ebx + 0x4e12]
+mov byte [edx + 0x46a0], al
+mov eax, dword [ebx + 0x103f]
+mov edx, 0x96
+mov dword [eax + 0x5f08], 0x115
+mov eax, ebx
+call fcn_fffb2d3a ; call 0xfffb2d3a
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3644]
+and eax, 0x8fffffff
+or eax, 0x20000000
+mov dword [edx + 0x3644], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3700]
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov dword [edx + 0x3700], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3810]
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov dword [edx + 0x3810], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3904]
+and eax, 0xfc7fffff
+or eax, 0x1000000
+mov dword [edx + 0x3904], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3a04]
+and eax, 0x8fffffff
+or eax, 0x20000000
+mov dword [edx + 0x3a04], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3a08]
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov dword [edx + 0x3a08], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3a0c]
+and eax, 0xf0ffffff
+or eax, 0x2000000
+mov dword [edx + 0x3a0c], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3a10]
+and eax, 0xf87fffff
+or eax, 0x1000000
+mov dword [edx + 0x3a10], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x3a20]
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov dword [edx + 0x3a20], eax
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [ebx + 0x1762]
+or eax, 0x20
+mov dword [edx + 0x2008], eax
+mov ecx, dword [ebx + 0x103f]
+mov eax, dword [ebx + 0x1756]
+mov esi, dword [ecx + 0x3a04]
+mov edx, esi
+shr edx, 9
+sub edx, esi
+and edx, 0x3f
+shl edx, 4
+and eax, 0xfffffc0f
+or eax, edx
+or ah, 4
+mov dword [ebx + 0x1756], eax
+mov dword [ecx + 0x3a14], eax
+cmp byte [ebx + 0x1070], 1
+je short loc_fffa677d ; je 0xfffa677d
+
+loc_fffa675b: ; not directly referenced
+cmp dword [ebp - 0x88], 0x4b0
+je loc_fffa6954 ; je 0xfffa6954
+cmp dword [ebp - 0x88], 0x546
+sete al
+jmp near loc_fffa6956 ; jmp 0xfffa6956
+
+loc_fffa677d: ; not directly referenced
+cmp dword [ebp - 0xd4], 2
+seta al
+test byte [ebp - 0xa7], al
+jne short loc_fffa67ad ; jne 0xfffa67ad
+cmp dword [ebp - 0x6c], 0x40650
+sete al
+or eax, dword [ebp - 0xa8]
+cmp dword [ebp - 0xd4], 0
+setne dl
+test al, dl
+je short loc_fffa675b ; je 0xfffa675b
+
+loc_fffa67ad: ; not directly referenced
+movzx edi, byte [ebx + 0x1748]
+test edi, edi
+sete al
+or al, byte [ebp - 0xd5]
+je loc_fffa6876 ; je 0xfffa6876
+sub esp, 0xc
+lea eax, [ebp - 0x58]
+push eax
+lea ecx, [ebp - 0x28]
+mov edx, 0x17
+mov eax, 1
+call fcn_fffc8f0f ; call 0xfffc8f0f
+mov al, byte [ebp - 0x25]
+add esp, 0x10
+test al, al
+js loc_fffa6876 ; js 0xfffa6876
+or eax, 0xffffff80
+mov byte [ebp - 0x25], al
+mov al, byte [ebp - 0x28]
+or eax, 1
+cmp dword [ebx + 0x1749], 2
+mov byte [ebp - 0x28], al
+jne short loc_fffa680d ; jne 0xfffa680d
+and eax, 0xfffffff1
+or eax, 8
+mov byte [ebp - 0x28], al
+
+loc_fffa680d: ; not directly referenced
+mov edx, dword [ebp - 0x28]
+mov eax, 1
+mov dword [ebp - 0xdc], edx
+call fcn_fffc8e6f ; call 0xfffc8e6f
+test eax, eax
+mov edx, dword [ebp - 0xdc]
+js short loc_fffa6876 ; js 0xfffa6876
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov esi, dword [eax + 0x48]
+and esi, 0xfffffffe
+mov dword [esi + 0x5da0], edx
+mov dword [esi + 0x5da4], 0x80000018
+mov eax, 1
+call fcn_fffc8e6f ; call 0xfffc8e6f
+mov eax, dword [esi + 0x5da4]
+mov eax, dword [esi + 0x5da0]
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov eax, dword [esi + 0x5da4]
+mov eax, dword [esi + 0x5da0]
+
+loc_fffa6876: ; not directly referenced
+cmp edi, 1
+mov eax, 0x64
+mov edx, 0x32
+cmove eax, edx
+cmp dword [ebp - 0x74], 1
+jne short loc_fffa68a5 ; jne 0xfffa68a5
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x5880]
+and al, 0x7f
+mov dword [edx + 0x5880], eax
+mov eax, 0x61
+
+loc_fffa68a5: ; not directly referenced
+cmp dword [ebx + 0x1025], 0
+jne loc_fffa675b ; jne 0xfffa675b
+dec edi
+sete dl
+or dl, byte [ebp - 0xd5]
+je loc_fffa675b ; je 0xfffa675b
+xor esi, esi
+mov dword [ebp - 0x74], eax
+
+loc_fffa68c7: ; not directly referenced
+imul eax, esi, 0x1347
+mov ecx, dword [ebp - 0xa0]
+cmp dword [ecx + eax + 0x12be], 2
+jne short loc_fffa6945 ; jne 0xfffa6945
+mov edi, dword [ebp - 0xa4]
+lea ecx, [edi + eax + 8]
+mov edi, 0x64
+movzx eax, word [ecx + 0x1a]
+imul eax, dword [ebp - 0x74]
+cdq
+mov dword [ebp - 0x6c], eax
+idiv edi
+cmp dword [ecx + 0x1151], 2
+mov word [ecx + 0x1a], ax
+jne short loc_fffa691f ; jne 0xfffa691f
+movzx eax, word [ecx + 0x1167]
+imul eax, dword [ebp - 0x74]
+cdq
+mov dword [ebp - 0x6c], eax
+idiv edi
+mov word [ecx + 0x1167], ax
+
+loc_fffa691f: ; not directly referenced
+cmp dword [ecx + 0x124c], 2
+jne short loc_fffa6945 ; jne 0xfffa6945
+movzx eax, word [ecx + 0x1262]
+mov edi, 0x64
+imul eax, dword [ebp - 0x74]
+cdq
+mov dword [ebp - 0x6c], eax
+idiv edi
+mov word [ecx + 0x1262], ax
+
+loc_fffa6945: ; not directly referenced
+inc esi
+cmp esi, 2
+je loc_fffa675b ; je 0xfffa675b
+jmp near loc_fffa68c7 ; jmp 0xfffa68c7
+
+loc_fffa6954: ; not directly referenced
+mov al, 3
+
+loc_fffa6956: ; not directly referenced
+mov edx, dword [ebx + 0x103f]
+and eax, 3
+lea ecx, [ebx + 0x2b29]
+lea esi, [ebx + 0x16be]
+mov dword [ebp - 0x74], ecx
+mov dword [ebp - 0x6c], 0
+mov dword [ebp - 0x78], esi
+mov dword [edx + 0x58a4], eax
+
+loc_fffa697e: ; not directly referenced
+mov edi, dword [ebp - 0x74]
+cmp dword [edi - 0x1ad], 2
+jne loc_fffa6f44 ; jne 0xfffa6f44
+imul eax, dword [ebp - 0x6c], 0x1347
+mov esi, dword [ebp - 0x78]
+lea eax, [esi + eax + 0x12be]
+mov dword [ebp - 0x88], eax
+imul eax, dword [ebx + 0x1021], 0x2a
+mov edi, dword [ebp - 0x88]
+lea eax, [edi + eax + 8]
+movzx ecx, word [eax + 8]
+movzx edx, word [eax + 0x26]
+lea esi, [ecx + edx + 4]
+mov cx, word [eax + 0x10]
+mov dl, cl
+and edx, 0x1f
+cmp cx, 0x1f
+mov edi, edx
+mov dl, 0x1f
+cmovbe edx, edi
+mov di, word [eax + 0x1a]
+mov word [ebp - 0x70], di
+mov ecx, edx
+mov dl, byte [ebp - 0x70]
+and ecx, 0x1f
+and edx, 0x1f
+cmp word [ebp - 0x70], 0x1f
+mov edi, edx
+mov dl, 0x1f
+cmovbe edx, edi
+and edx, 0x1f
+shl edx, 5
+or ecx, edx
+mov dl, byte [eax + 0xc]
+and edx, 0x3f
+cmp word [eax + 0xc], 0x3f
+mov edi, edx
+mov dl, 0x3f
+cmovbe edx, edi
+and edx, 0x3f
+shl edx, 0xa
+or ecx, edx
+mov dl, byte [eax + 0x24]
+and edx, 0xf
+cmp word [eax + 0x24], 0xf
+mov edi, edx
+mov dl, 0xf
+cmovbe edx, edi
+mov edi, 0x3f
+and edx, 0xf
+shl edx, 0x10
+cmp esi, 0x3f
+cmova esi, edi
+mov di, word [eax + 0x1e]
+and esi, 0x3f
+or ecx, edx
+shl esi, 0x14
+mov edx, edi
+or ecx, esi
+and edx, 0xf
+cmp di, 0xf
+mov esi, edx
+mov dl, 0xf
+cmovbe edx, esi
+and edx, 0xf
+shl edx, 0x1a
+or ecx, edx
+cmp dword [ebx + 0x1749], 2
+jne short loc_fffa6a83 ; jne 0xfffa6a83
+movzx edx, word [ebp - 0x70]
+movzx eax, word [eax + 0x1c]
+sub eax, edx
+mov edx, 3
+cmp eax, 3
+cmovle edx, eax
+shl edx, 0x1e
+or ecx, edx
+
+loc_fffa6a83: ; not directly referenced
+mov eax, dword [ebp - 0x6c]
+mov esi, dword [ebp - 0x88]
+add eax, 0x10
+shl eax, 0xa
+add eax, dword [ebx + 0x103f]
+mov dword [eax], ecx
+mov dword [esi + 0x1a5], ecx
+imul eax, dword [ebp - 0x6c], 0x1347
+lea eax, [ebx + eax + 0x297c]
+mov dword [ebp - 0x7c], eax
+imul eax, dword [ebx + 0x1021], 0x2a
+mov edi, dword [ebp - 0x7c]
+lea eax, [edi + eax + 8]
+mov edi, 0x1f
+mov si, word [eax + 6]
+mov ax, word [eax + 8]
+mov word [ebp - 0x80], ax
+mov cl, byte [ebp - 0x80]
+movzx edx, word [ebp - 0x80]
+and ecx, 0x1f
+movzx eax, si
+sub eax, edx
+cmp word [ebp - 0x80], 0x1f
+mov dl, 0x1f
+mov dword [ebp - 0x70], eax
+cmovbe edx, ecx
+mov ecx, esi
+and edi, edx
+and ecx, 0x1f
+shl edi, 5
+cmp si, 0x1f
+mov byte [ebp - 0x88], cl
+mov cl, 0x1f
+mov al, byte [ebp - 0x88]
+cmovbe ecx, eax
+and ecx, 0x1f
+or edi, ecx
+cmp dword [ebp - 0x70], 7
+mov ecx, 7
+cmovbe ecx, dword [ebp - 0x70]
+and ecx, 7
+or edi, 0x1400
+shl ecx, 0xe
+or edi, ecx
+cmp dword [ebx + 0x1749], 2
+jne short loc_fffa6bae ; jne 0xfffa6bae
+movzx esi, word [ebp - 0x80]
+mov ecx, edi
+or ecx, 0x2000000
+cmp byte [ebx + 0x16bb], 0
+cmovne edi, ecx
+add edx, 0x1f
+movzx ecx, word [ebx + 0x1766]
+and edx, 0x1f
+add ecx, ecx
+and edi, 0xfffff01f
+shl edx, 5
+dec esi
+or edi, edx
+xor edx, edx
+or edi, 0x800
+lea eax, [ecx + 0xdab]
+div ecx
+mov edx, 7
+sub esi, eax
+lea eax, [ecx + 0x6d5]
+cmp esi, 7
+cmova esi, edx
+xor edx, edx
+div ecx
+and esi, 7
+and edi, 0xfe07fbff
+shl esi, 0x16
+mov ecx, 7
+inc eax
+cmp eax, 7
+cmova eax, ecx
+or edi, esi
+and eax, 7
+shl eax, 0x13
+or edi, eax
+
+loc_fffa6bae: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+mov eax, dword [ebx + 0x103f]
+shl esi, 0xa
+mov ecx, dword [ebp - 0x7c]
+mov dword [ebp - 0x70], esi
+add esi, 0x4014
+add eax, esi
+mov dword [ebp - 0x88], esi
+mov dword [eax], edi
+mov dword [ecx + 0x1b5], edi
+imul eax, dword [ebp - 0x6c], 0x1347
+imul edx, dword [ebx + 0x1021], 0x2a
+mov edi, dword [ebp - 0x78]
+lea eax, [edx + eax + 0x12b0]
+mov edx, dword [ebx + 0x1749]
+cmp edx, 2
+lea esi, [edi + eax + 0x16]
+mov eax, dword [ebx + 0x16c6]
+jne short loc_fffa6c1f ; jne 0xfffa6c1f
+cmp eax, 0x42b
+mov ecx, 4
+jbe short loc_fffa6c45 ; jbe 0xfffa6c45
+cmp eax, 0x535
+mov cl, 6
+ja short loc_fffa6c45 ; ja 0xfffa6c45
+
+loc_fffa6c18: ; not directly referenced
+mov ecx, 5
+jmp short loc_fffa6c45 ; jmp 0xfffa6c45
+
+loc_fffa6c1f: ; not directly referenced
+cmp eax, 0x42b
+mov ecx, 3
+jbe short loc_fffa6c45 ; jbe 0xfffa6c45
+cmp eax, 0x640
+mov cl, 4
+jbe short loc_fffa6c45 ; jbe 0xfffa6c45
+cmp eax, 0x74b
+jbe short loc_fffa6c18 ; jbe 0xfffa6c18
+cmp eax, 0x961
+sbb ecx, ecx
+add ecx, 7
+
+loc_fffa6c45: ; not directly referenced
+cmp ecx, 0xf
+mov eax, 0xf
+mov di, word [esi + 0xa]
+movzx esi, word [esi + 6]
+cmovbe eax, ecx
+and eax, 0xf
+mov ecx, eax
+or ecx, 0xc0000000
+cmp edx, 2
+cmovne eax, ecx
+cmp di, 0xff
+mov cl, 0xff
+cmovbe ecx, edi
+mov edi, dword [ebp - 0x78]
+movzx ecx, cl
+shl ecx, 4
+or eax, ecx
+xor ecx, ecx
+cmp edx, 2
+sete cl
+add esi, 5
+add ecx, 6
+or ah, 0x40
+and ecx, 0xf
+mov edx, ecx
+shl edx, 0xf
+shl ecx, 0x13
+or eax, edx
+cmp esi, 0x1f
+mov edx, 0x1f
+cmovbe edx, esi
+or eax, ecx
+and edx, 0x1f
+mov ecx, dword [ebp - 0x70]
+shl edx, 0x17
+mov esi, dword [ebp - 0x74]
+or eax, edx
+mov edx, dword [ebx + 0x103f]
+or eax, 0x20000000
+lea edx, [ecx + edx + 0x4004]
+mov dword [edx], eax
+mov dword [esi - 4], eax
+imul eax, dword [ebp - 0x6c], 0x1347
+imul edx, dword [ebx + 0x1021], 0x2a
+lea eax, [edx + eax + 0x12b0]
+lea edx, [edi + eax + 0x16]
+movzx eax, word [edx + 0x28]
+movzx ecx, word [edx + 8]
+lea esi, [ecx + eax + 6]
+mov eax, 0x3f
+cmp esi, 0x3f
+cmova esi, eax
+movzx eax, word [edx + 6]
+and esi, 0x3f
+cmp dword [ebx + 0x1749], 2
+je short loc_fffa6d19 ; je 0xfffa6d19
+mov edi, ecx
+sub edi, eax
+mov eax, edi
+add eax, 7
+jmp short loc_fffa6d1e ; jmp 0xfffa6d1e
+
+loc_fffa6d19: ; not directly referenced
+mov eax, 8
+
+loc_fffa6d1e: ; not directly referenced
+cmp eax, 0xf
+mov edi, 0xf
+movzx edx, word [edx + 0x26]
+cmovbe edi, eax
+and edi, 0xf
+mov eax, edi
+shl eax, 6
+lea edx, [ecx + edx + 4]
+shl edi, 0xa
+or eax, esi
+or eax, edi
+cmp edx, 0x3f
+mov ecx, 0x3f
+mov edi, dword [ebp - 0x70]
+cmova edx, ecx
+or eax, 0xef0000
+and edx, 0x3f
+mov ecx, dword [ebx + 0x103f]
+shl edx, 0x19
+or eax, edx
+mov edx, dword [ebp - 0x88]
+add edx, ecx
+mov esi, eax
+or esi, 0x80000000
+and eax, 0x7fffffff
+mov edx, dword [edx]
+shr edx, 5
+and edx, 0x1f
+cmp edx, 6
+cmovl esi, eax
+lea eax, [edi + ecx + 0x4008]
+mov ecx, dword [ebp - 0x74]
+mov dword [eax], esi
+mov dword [ecx], esi
+shr esi, 0x1f
+inc esi
+and esi, 3
+mov ecx, esi
+mov eax, esi
+shl ecx, 4
+shl eax, 6
+or eax, ecx
+lea edx, [esi*4]
+or eax, edx
+mov edx, dword [ebx + 0x103f]
+or eax, esi
+mov esi, dword [ebp - 0x78]
+mov ecx, 0xa
+lea edx, [edi + edx + 0x40d0]
+mov byte [edx], al
+imul eax, dword [ebp - 0x6c], 0x1347
+imul edx, dword [ebx + 0x1021], 0x2a
+lea eax, [edx + eax + 0x12b0]
+lea edi, [esi + eax + 0x16]
+mov eax, dword [ebx + 0x1749]
+mov dword [ebp - 0x7c], eax
+mov eax, dword [ebx + 0x16c6]
+cmp eax, 0x320
+jbe short loc_fffa6e30 ; jbe 0xfffa6e30
+cmp eax, 0x42b
+mov cl, 0xd
+jbe short loc_fffa6e30 ; jbe 0xfffa6e30
+cmp eax, 0x535
+mov cl, 0x10
+jbe short loc_fffa6e30 ; jbe 0xfffa6e30
+cmp eax, 0x640
+mov cl, 0x14
+jbe short loc_fffa6e30 ; jbe 0xfffa6e30
+cmp eax, 0x74b
+mov cl, 0x17
+jbe short loc_fffa6e30 ; jbe 0xfffa6e30
+cmp eax, 0x855
+mov cl, 0x1a
+jbe short loc_fffa6e30 ; jbe 0xfffa6e30
+cmp eax, 0x961
+sbb ecx, ecx
+and ecx, 0xfffffffd
+add ecx, 0x20
+
+loc_fffa6e30: ; not directly referenced
+cmp ecx, 0x3f
+mov edx, 0x3f
+cmova ecx, edx
+and ecx, 0x3f
+cmp dword [ebp - 0x7c], 2
+jne short loc_fffa6e50 ; jne 0xfffa6e50
+cmp eax, 0x536
+sbb edx, edx
+add edx, 6
+jmp short loc_fffa6e6d ; jmp 0xfffa6e6d
+
+loc_fffa6e50: ; not directly referenced
+cmp eax, 0x640
+mov edx, 7
+jbe short loc_fffa6e6d ; jbe 0xfffa6e6d
+cmp eax, 0x74b
+jbe short loc_fffa6e6d ; jbe 0xfffa6e6d
+cmp eax, 0x856
+sbb edx, edx
+add edx, 8
+
+loc_fffa6e6d: ; not directly referenced
+cmp edx, 0xf
+mov esi, 0xf
+cmovbe esi, edx
+mov edx, 4
+and esi, 0xf
+shl esi, 6
+or esi, ecx
+cmp eax, 0x320
+jbe short loc_fffa6ec3 ; jbe 0xfffa6ec3
+cmp eax, 0x42b
+mov dl, 5
+jbe short loc_fffa6ec3 ; jbe 0xfffa6ec3
+cmp eax, 0x535
+mov dl, 6
+jbe short loc_fffa6ec3 ; jbe 0xfffa6ec3
+cmp eax, 0x640
+mov dl, 7
+jbe short loc_fffa6ec3 ; jbe 0xfffa6ec3
+cmp eax, 0x74b
+mov dl, 8
+jbe short loc_fffa6ec3 ; jbe 0xfffa6ec3
+cmp eax, 0x855
+mov dl, 0xa
+jbe short loc_fffa6ec3 ; jbe 0xfffa6ec3
+cmp eax, 0x961
+sbb edx, edx
+add edx, 0xc
+
+loc_fffa6ec3: ; not directly referenced
+cmp edx, 0xf
+mov ecx, 0xf
+cmovbe ecx, edx
+movzx edx, word [edi + 8]
+and ecx, 0xf
+shl ecx, 0xa
+or ecx, esi
+movzx esi, word [edi + 6]
+sub esi, edx
+cmp eax, 0x536
+lea edi, [esi + 7]
+lea edx, [esi + 8]
+cmovb edx, edi
+cmp dword [ebp - 0x7c], 2
+movzx edi, word [ebx + 0x1766]
+jne short loc_fffa6f0b ; jne 0xfffa6f0b
+add edi, edi
+xor edx, edx
+lea eax, [edi + 0x157b]
+div edi
+lea edx, [esi + eax + 6]
+
+loc_fffa6f0b: ; not directly referenced
+cmp edx, 0x1f
+mov eax, 0x1f
+cmova edx, eax
+and edx, 0x1f
+mov eax, edx
+mov esi, edx
+shl eax, 0xe
+shl esi, 0x13
+or eax, ecx
+shl edx, 0x18
+or eax, esi
+or eax, edx
+mov ecx, dword [ebp - 0x70]
+mov edx, dword [ebx + 0x103f]
+mov esi, dword [ebp - 0x74]
+lea edx, [ecx + edx + 0x400c]
+mov dword [edx], eax
+mov dword [esi + 4], eax
+
+loc_fffa6f44: ; not directly referenced
+inc dword [ebp - 0x6c]
+add dword [ebp - 0x74], 0x1347
+cmp dword [ebp - 0x6c], 2
+jne loc_fffa697e ; jne 0xfffa697e
+xor eax, eax
+cmp byte [ebx + 0x3acb], 0
+je short loc_fffa6f6d ; je 0xfffa6f6d
+cmp dword [ebx + 0x2a71], 2
+sete al
+
+loc_fffa6f6d: ; not directly referenced
+cmp byte [ebx + 0x4e12], 0
+je short loc_fffa6f85 ; je 0xfffa6f85
+mov dl, al
+or edx, 2
+cmp dword [ebx + 0x3db8], 2
+cmove eax, edx
+
+loc_fffa6f85: ; not directly referenced
+movzx eax, al
+lea esi, [ebx + 0x2974]
+xor edi, edi
+mov dword [ebp - 0x70], eax
+mov dword [ebp - 0x7c], esi
+
+loc_fffa6f96: ; not directly referenced
+mov esi, dword [ebp - 0x70]
+bt esi, edi
+jae loc_fffa7126 ; jae 0xfffa7126
+imul eax, edi, 0x1347
+mov edx, dword [ebp - 0x7c]
+lea esi, [edx + eax + 8]
+mov eax, dword [esi + 0x121a]
+mov cl, byte [esi + 0x114f]
+cmp eax, 3
+mov byte [ebp - 0x6c], cl
+sete cl
+cmp eax, 8
+sete dl
+xor eax, eax
+or cl, dl
+je short loc_fffa6fe8 ; je 0xfffa6fe8
+mov eax, dword [ebp - 0xc8]
+mov al, byte [esi + 0x1235]
+mov word [ebp - 0xc8], ax
+mov eax, 1
+
+loc_fffa6fe8: ; not directly referenced
+mov edx, dword [esi + 0x1315]
+cmp edx, 8
+sete cl
+cmp edx, 3
+sete dl
+or cl, dl
+jne short loc_fffa7002 ; jne 0xfffa7002
+test eax, eax
+je short loc_fffa7020 ; je 0xfffa7020
+
+loc_fffa7002: ; not directly referenced
+mov edx, dword [ebp - 0xc8]
+mov cl, byte [esi + 0x1330]
+mov dh, cl
+cmp dl, 5
+mov word [ebp - 0xc8], dx
+mov al, dl
+jne short loc_fffa7026 ; jne 0xfffa7026
+jmp short loc_fffa7034 ; jmp 0xfffa7034
+
+loc_fffa7020: ; not directly referenced
+mov byte [ebp - 0x74], 6
+jmp short loc_fffa7042 ; jmp 0xfffa7042
+
+loc_fffa7026: ; not directly referenced
+mov ecx, dword [ebp - 0xc8]
+movzx edx, ch
+cmp dl, 5
+jne short loc_fffa7020 ; jne 0xfffa7020
+
+loc_fffa7034: ; not directly referenced
+mov edx, dword [ebp - 0xc8]
+cmp dh, al
+je short loc_fffa7020 ; je 0xfffa7020
+mov byte [ebp - 0x74], 7
+
+loc_fffa7042: ; not directly referenced
+sub esp, 0xc
+mov edx, edi
+movzx ecx, byte [ebp - 0x6c]
+push ecx
+movsx eax, byte [ebp - 0x74]
+mov dword [ebp - 0x6c], ecx
+push 1
+xor ecx, ecx
+push 1
+push eax
+mov eax, ebx
+push 8
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x20
+cmp byte [ebp - 0x74], 7
+jne loc_fffa7126 ; jne 0xfffa7126
+mov eax, dword [esi + 0x1a9]
+sub esp, 0xc
+push dword [ebp - 0x6c]
+mov dword [ebp - 0x74], eax
+xor ecx, ecx
+push 1
+shr eax, 0xf
+mov edx, edi
+push 1
+and eax, 0xf
+inc eax
+push eax
+mov eax, ebx
+push 0
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x14
+mov eax, dword [ebp - 0x74]
+push dword [ebp - 0x6c]
+shr eax, 0x13
+xor ecx, ecx
+push 1
+and eax, 0xf
+mov edx, edi
+push 1
+inc eax
+push eax
+mov eax, ebx
+push 1
+call fcn_fffb3b9c ; call 0xfffb3b9c
+mov esi, dword [esi + 0x1b1]
+add esp, 0x14
+push dword [ebp - 0x6c]
+mov eax, esi
+xor ecx, ecx
+push 1
+shr eax, 0x13
+mov edx, edi
+push 1
+and eax, 0x1f
+inc eax
+push eax
+mov eax, ebx
+push 4
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x14
+mov eax, esi
+push dword [ebp - 0x6c]
+shr eax, 0x18
+xor ecx, ecx
+push 1
+and eax, 0x1f
+mov edx, edi
+push 1
+shr esi, 0xe
+inc eax
+push eax
+mov eax, ebx
+and esi, 0x1f
+push 5
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x14
+lea eax, [esi + 1]
+push dword [ebp - 0x6c]
+xor ecx, ecx
+mov edx, edi
+push 1
+push 1
+push eax
+mov eax, ebx
+push 0xe
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x20
+
+loc_fffa7126: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffa6f96 ; jne 0xfffa6f96
+mov dword [ebp - 0x6c], 0x4294
+mov dword [ebp - 0x74], 0
+
+loc_fffa713e: ; not directly referenced
+imul eax, dword [ebp - 0x74], 0x1347
+mov esi, dword [ebp - 0x78]
+cmp dword [esi + eax + 0x12be], 2
+jne loc_fffa73da ; jne 0xfffa73da
+imul edx, dword [ebx + 0x1021], 0x2a
+mov esi, 0x1ff
+mov edi, 0x2800
+lea eax, [eax + edx + 0x2960]
+lea ecx, [ebx + eax + 0x24]
+movzx eax, word [ecx + 0x12]
+cmp word [ecx + 0x14], 0x1ff
+cmovbe si, word [ecx + 0x14]
+movzx ecx, ax
+and esi, 0x1ff
+imul eax, eax, 0x59
+shl esi, 0x10
+cdq
+idiv edi
+mov edx, 0x7f
+cmp eax, 0x7f
+cmovbe edx, eax
+or ecx, esi
+mov esi, dword [ebp - 0x6c]
+mov eax, dword [ebx + 0x103f]
+shl edx, 0x19
+sub esi, 0x4294
+or ecx, edx
+mov dword [ebp - 0x70], esi
+lea eax, [esi + eax + 0x4298]
+mov dword [eax], ecx
+cmp dword [ebx + 0x1749], 2
+mov ecx, dword [ebx + 0x16c6]
+jne short loc_fffa71e2 ; jne 0xfffa71e2
+movzx esi, word [ebx + 0x1766]
+mov eax, 0x57e40
+add esi, esi
+cdq
+idiv esi
+jmp short loc_fffa7215 ; jmp 0xfffa7215
+
+loc_fffa71e2: ; not directly referenced
+cmp ecx, 0x640
+mov eax, 0x100
+jbe short loc_fffa7215 ; jbe 0xfffa7215
+cmp ecx, 0x74b
+mov al, 0x2b
+jbe short loc_fffa7226 ; jbe 0xfffa7226
+cmp ecx, 0x855
+mov al, 0x56
+jbe short loc_fffa7226 ; jbe 0xfffa7226
+cmp ecx, 0x961
+sbb eax, eax
+and eax, 0xffffffd5
+add eax, 0x1ab
+jmp short loc_fffa7226 ; jmp 0xfffa7226
+
+loc_fffa7215: ; not directly referenced
+cmp ecx, 0x320
+mov edx, 4
+jbe loc_fffa72b1 ; jbe 0xfffa72b1
+
+loc_fffa7226: ; not directly referenced
+cmp ecx, 0x42b
+jbe short loc_fffa72a5 ; jbe 0xfffa72a5
+cmp ecx, 0x535
+jbe short loc_fffa725d ; jbe 0xfffa725d
+cmp ecx, 0x640
+jbe short loc_fffa72ac ; jbe 0xfffa72ac
+cmp ecx, 0x74b
+jbe short loc_fffa72b8 ; jbe 0xfffa72b8
+cmp ecx, 0x855
+jbe short loc_fffa7289 ; jbe 0xfffa7289
+cmp ecx, 0x960
+mov edx, 0xe
+ja short loc_fffa7282 ; ja 0xfffa7282
+jmp short loc_fffa7290 ; jmp 0xfffa7290
+
+loc_fffa725d: ; not directly referenced
+cmp ecx, 0x640
+mov edx, 7
+jbe short loc_fffa72b1 ; jbe 0xfffa72b1
+cmp ecx, 0x74b
+jbe short loc_fffa72bd ; jbe 0xfffa72bd
+cmp ecx, 0x855
+jbe short loc_fffa7297 ; jbe 0xfffa7297
+cmp ecx, 0x960
+jbe short loc_fffa729e ; jbe 0xfffa729e
+
+loc_fffa7282: ; not directly referenced
+mov ecx, 0x14
+jmp short loc_fffa72c2 ; jmp 0xfffa72c2
+
+loc_fffa7289: ; not directly referenced
+mov edx, 0xb
+jmp short loc_fffa7297 ; jmp 0xfffa7297
+
+loc_fffa7290: ; not directly referenced
+mov edx, 0xc
+jmp short loc_fffa729e ; jmp 0xfffa729e
+
+loc_fffa7297: ; not directly referenced
+mov ecx, 0x10
+jmp short loc_fffa72c2 ; jmp 0xfffa72c2
+
+loc_fffa729e: ; not directly referenced
+mov ecx, 0x12
+jmp short loc_fffa72c2 ; jmp 0xfffa72c2
+
+loc_fffa72a5: ; not directly referenced
+mov edx, 6
+jmp short loc_fffa72b1 ; jmp 0xfffa72b1
+
+loc_fffa72ac: ; not directly referenced
+mov edx, 8
+
+loc_fffa72b1: ; not directly referenced
+mov ecx, 0xc
+jmp short loc_fffa72c2 ; jmp 0xfffa72c2
+
+loc_fffa72b8: ; not directly referenced
+mov edx, 0xa
+
+loc_fffa72bd: ; not directly referenced
+mov ecx, 0xe
+
+loc_fffa72c2: ; not directly referenced
+shl edx, 0xc
+cmp eax, 0x3ff
+mov esi, 0x3ff
+mov edi, 0xf
+cmovbe esi, eax
+sub ecx, 8
+and esi, 0x3ff
+or dh, 2
+shl esi, 0x10
+cmp ecx, 0xf
+mov eax, dword [ebx + 0x103f]
+cmovbe edi, ecx
+or edx, esi
+shl edi, 0x1c
+xor ecx, ecx
+or edx, edi
+mov edi, dword [ebp - 0x70]
+lea eax, [edi + eax + 0x42a4]
+mov dword [eax], edx
+cmp dword [ebx + 0x1749], 2
+mov esi, dword [ebx + 0x1005]
+mov edx, dword [ebx + 0x16c6]
+jne short loc_fffa7337 ; jne 0xfffa7337
+movzx edi, word [ebx + 0x1766]
+mov eax, 0x15f90
+add edi, edi
+cdq
+idiv edi
+cmp esi, 0x40650
+jne short loc_fffa739d ; jne 0xfffa739d
+jmp short loc_fffa7377 ; jmp 0xfffa7377
+
+loc_fffa7337: ; not directly referenced
+cmp edx, 0x640
+mov eax, 0x40
+jbe loc_fffa7810 ; jbe 0xfffa7810
+cmp edx, 0x74b
+mov al, 0x4b
+jbe loc_fffa7810 ; jbe 0xfffa7810
+cmp edx, 0x855
+mov al, 0x56
+jbe loc_fffa7810 ; jbe 0xfffa7810
+cmp edx, 0x961
+sbb eax, eax
+and eax, 0xfffffff5
+add eax, 0x6b
+jmp near loc_fffa7810 ; jmp 0xfffa7810
+
+loc_fffa7377: ; not directly referenced
+mov edx, 0x100
+jmp short loc_fffa7383 ; jmp 0xfffa7383
+
+loc_fffa737e: ; not directly referenced
+mov edx, 0x80
+
+loc_fffa7383: ; not directly referenced
+cmp eax, 0x3ff
+mov ecx, 0x3ff
+cmovbe ecx, eax
+and ecx, 0x3ff
+shl ecx, 0xa
+or ecx, edx
+jmp short loc_fffa73ae ; jmp 0xfffa73ae
+
+loc_fffa739d: ; not directly referenced
+cmp eax, 0xff
+mov edx, 0xff
+mov cl, 0x80
+cmovbe edx, eax
+mov ch, dl
+
+loc_fffa73ae: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov esi, dword [ebp - 0x70]
+lea eax, [esi + eax + 0x4290]
+mov dword [eax], ecx
+mov eax, dword [ebp - 0x6c]
+add eax, dword [ebx + 0x103f]
+mov edx, dword [eax]
+mov dl, 0xff
+mov dword [eax], edx
+mov eax, dword [ebp - 0x6c]
+add eax, dword [ebx + 0x103f]
+mov eax, dword [eax]
+
+loc_fffa73da: ; not directly referenced
+inc dword [ebp - 0x74]
+add dword [ebp - 0x6c], 0x400
+cmp dword [ebp - 0x74], 2
+jne loc_fffa713e ; jne 0xfffa713e
+mov edx, dword [ebx + 0x1005]
+cmp edx, 0x306c0
+jne short loc_fffa740a ; jne 0xfffa740a
+cmp dword [ebx + 0x1001], 1
+mov eax, 0x100030
+je short loc_fffa7437 ; je 0xfffa7437
+
+loc_fffa740a: ; not directly referenced
+cmp edx, 0x40650
+mov eax, 0x100000
+jne short loc_fffa7437 ; jne 0xfffa7437
+cmp dword [ebx + 0x1749], 2
+mov ax, 0x2000
+jne short loc_fffa7437 ; jne 0xfffa7437
+cmp byte [ebx + 0x16bb], 1
+sbb eax, eax
+and eax, 0x2000
+add eax, 0x4100000
+
+loc_fffa7437: ; not directly referenced
+mov edx, dword [ebx + 0x103f]
+mov dword [edx + 0x4c20], eax
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4f8c], 0x553c3038
+cmp byte [ebx + 0x1743], 0
+je short loc_fffa7469 ; je 0xfffa7469
+mov eax, dword [ebx + 0x103f]
+mov byte [eax + 0x4c39], 1
+
+loc_fffa7469: ; not directly referenced
+cmp dword [ebx + 0x1749], 2
+jne short loc_fffa74b4 ; jne 0xfffa74b4
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffa7493 ; jne 0xfffa7493
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x4010]
+and eax, 0xfffffff0
+or eax, 7
+mov dword [edx + 0x4010], eax
+
+loc_fffa7493: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffa74b4 ; jne 0xfffa74b4
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x4410]
+and eax, 0xfffffff0
+or eax, 7
+mov dword [edx + 0x4410], eax
+
+loc_fffa74b4: ; not directly referenced
+xor esi, esi
+xor eax, eax
+lea edi, [ebx + 0x2974]
+
+loc_fffa74be: ; not directly referenced
+imul ecx, eax, 0x1347
+mov dword [ebp + eax*4 - 0x28], 0
+add ecx, edi
+cmp dword [ecx + 8], 2
+lea edx, [ecx + 8]
+jne short loc_fffa7501 ; jne 0xfffa7501
+cmp dword [edx + 0x1151], 2
+jne short loc_fffa74ea ; jne 0xfffa74ea
+mov ecx, dword [edx + 0x1222]
+mov dword [ebp + eax*4 - 0x28], ecx
+
+loc_fffa74ea: ; not directly referenced
+cmp dword [edx + 0x124c], 2
+jne short loc_fffa7501 ; jne 0xfffa7501
+mov ecx, dword [ebp + eax*4 - 0x28]
+add ecx, dword [edx + 0x131d]
+mov dword [ebp + eax*4 - 0x28], ecx
+
+loc_fffa7501: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffa74be ; jne 0xfffa74be
+mov eax, dword [ebp - 0x24]
+mov ecx, dword [ebp - 0x28]
+cmp eax, ecx
+ja short loc_fffa752c ; ja 0xfffa752c
+mov edx, 4
+mov dword [ebx + 0x2980], 0
+mov dword [ebx + 0x3cc7], 1
+jmp short loc_fffa7547 ; jmp 0xfffa7547
+
+loc_fffa752c: ; not directly referenced
+mov edx, 1
+mov dword [ebx + 0x2980], 1
+mov dword [ebx + 0x3cc7], 0
+mov eax, ecx
+
+loc_fffa7547: ; not directly referenced
+mov ecx, eax
+mov edi, 0xff
+shr ecx, 8
+cmp ecx, 0xff
+cmovbe edi, ecx
+add ecx, ecx
+cmp ecx, 0xff
+mov dword [ebp - 0x6c], edi
+mov edi, 0xff
+cmova ecx, edi
+and edx, 0xfffffbcf
+movzx ecx, cl
+mov dword [ebp - 0x70], edx
+shl ecx, 0x10
+xor edx, edx
+shl dword [ebp - 0x6c], 0x18
+or dword [ebp - 0x6c], ecx
+cmp dword [ebx + 0x1749], 2
+sete dl
+or dword [ebp - 0x70], 0x20
+shl edx, 0xa
+or dword [ebp - 0x70], edx
+cmp byte [ebx + 0x1071], 0
+mov edx, dword [ebp - 0x70]
+je short loc_fffa75e4 ; je 0xfffa75e4
+cmp word [ebx + 0x1072], 0x3fff
+mov esi, 0x3fff
+cmovbe si, word [ebx + 0x1072]
+mov edi, 3
+and esi, 0x3fff
+mov cl, byte [ebx + 0x1074]
+cmp byte [ebx + 0x1074], 3
+cmovbe edi, ecx
+and edi, 3
+shl edi, 0x15
+or esi, edi
+or esi, 0x800000
+
+loc_fffa75e4: ; not directly referenced
+cmp byte [ebx + 0x16b3], 0
+je short loc_fffa7622 ; je 0xfffa7622
+mov edi, dword [ebp - 0x24]
+cmp dword [ebp - 0x28], edi
+jne short loc_fffa761b ; jne 0xfffa761b
+call fcn_fffb21bf ; call 0xfffb21bf
+mov edi, dword [ebp - 0x70]
+sub eax, 9
+or edi, 0x40
+and eax, 7
+mov edx, edi
+or esi, 0x800000
+shl eax, 7
+and edx, 0xfffffc7f
+or edx, eax
+jmp short loc_fffa7622 ; jmp 0xfffa7622
+
+loc_fffa761b: ; not directly referenced
+mov byte [ebx + 0x16b3], 0
+
+loc_fffa7622: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+lea ecx, [ebx + 0x16be]
+mov dword [ebp - 0x74], 0x5004
+mov dword [ebp - 0x70], ecx
+mov dword [eax + 0x5024], esi
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x5000], edx
+mov eax, dword [ebx + 0x103f]
+mov edx, dword [ebp - 0x6c]
+mov dword [ebp - 0x6c], 0
+mov dword [eax + 0x5014], edx
+
+loc_fffa7660: ; not directly referenced
+imul eax, dword [ebp - 0x6c], 0x1347
+mov esi, dword [ebp - 0xa0]
+cmp dword [esi + eax + 0x12be], 2
+jne loc_fffa77e6 ; jne 0xfffa77e6
+mov edi, dword [ebp - 0x70]
+xor edx, edx
+lea eax, [edi + eax + 0x12be]
+cmp dword [eax + 0x1151], 2
+jne short loc_fffa7696 ; jne 0xfffa7696
+mov edx, dword [eax + 0x1222]
+
+loc_fffa7696: ; not directly referenced
+cmp dword [eax + 0x124c], 2
+lea ecx, [eax + 0x1151]
+lea esi, [eax + 0x124c]
+jne short loc_fffa76b3 ; jne 0xfffa76b3
+cmp dword [eax + 0x131d], edx
+ja short loc_fffa76b9 ; ja 0xfffa76b9
+
+loc_fffa76b3: ; not directly referenced
+mov edx, ecx
+xor eax, eax
+jmp short loc_fffa76c2 ; jmp 0xfffa76c2
+
+loc_fffa76b9: ; not directly referenced
+mov edx, esi
+mov eax, 0x10000
+mov esi, ecx
+
+loc_fffa76c2: ; not directly referenced
+mov cl, byte [edx + 0xdd]
+test cl, cl
+mov byte [ebp - 0x78], cl
+je short loc_fffa7715 ; je 0xfffa7715
+cmp dword [edx], 2
+jne short loc_fffa7715 ; jne 0xfffa7715
+mov edi, dword [edx + 0xd1]
+mov ecx, 0xff
+shr edi, 8
+cmp edi, 0xff
+cmova edi, ecx
+mov ecx, edi
+mov al, cl
+xor ecx, ecx
+cmp byte [ebp - 0x78], 1
+setne cl
+and eax, 0xfff5ffff
+mov edi, ecx
+xor ecx, ecx
+shl edi, 0x11
+cmp byte [edx + 0xe1], 0x10
+sete cl
+or eax, edi
+shl ecx, 0x13
+or eax, ecx
+
+loc_fffa7715: ; not directly referenced
+mov cl, byte [esi + 0xdd]
+test cl, cl
+mov byte [ebp - 0x78], cl
+je short loc_fffa776a ; je 0xfffa776a
+cmp dword [esi], 2
+jne short loc_fffa776a ; jne 0xfffa776a
+mov edi, dword [esi + 0xd1]
+mov ecx, 0xff
+shr edi, 8
+cmp edi, 0xff
+cmova edi, ecx
+mov ecx, edi
+mov ah, cl
+xor ecx, ecx
+cmp byte [ebp - 0x78], 1
+setne cl
+and eax, 0xffebffff
+mov edi, ecx
+xor ecx, ecx
+shl edi, 0x12
+cmp byte [esi + 0xe1], 0x10
+sete cl
+or eax, edi
+mov esi, ecx
+shl esi, 0x14
+or eax, esi
+
+loc_fffa776a: ; not directly referenced
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffa7786 ; jne 0xfffa7786
+lea ecx, [eax + eax]
+and eax, 0xffefffff
+and ecx, 0x100000
+or eax, ecx
+
+loc_fffa7786: ; not directly referenced
+mov ecx, eax
+or ecx, 0x200000
+cmp byte [ebx + 0x106b], 0
+cmovne eax, ecx
+mov ecx, eax
+or ecx, 0x400000
+cmp byte [ebx + 0x106c], 0
+cmovne eax, ecx
+mov ecx, dword [ebp - 0x74]
+add ecx, dword [ebx + 0x103f]
+mov dword [ecx], eax
+cmp dword [ebx + 0x1749], 2
+jne short loc_fffa77e6 ; jne 0xfffa77e6
+xor eax, eax
+cmp byte [edx + 0xe1], 0x20
+mov edx, dword [ebp - 0x6c]
+sete al
+shl edx, 0xa
+mov ecx, dword [ebx + 0x103f]
+lea eax, [eax + eax*2 + 0x200d00]
+lea edx, [ecx + edx + 0x4210]
+mov dword [edx], eax
+
+loc_fffa77e6: ; not directly referenced
+inc dword [ebp - 0x6c]
+add dword [ebp - 0x74], 4
+cmp dword [ebp - 0x6c], 2
+jne loc_fffa7660 ; jne 0xfffa7660
+xor edx, edx
+jmp short loc_fffa7821 ; jmp 0xfffa7821
+
+loc_fffa77fb: ; not directly referenced
+mov eax, ebx
+call fcn_fffbd79f ; call 0xfffbd79f
+test eax, eax
+mov edx, 0x11
+jne short loc_fffa7821 ; jne 0xfffa7821
+jmp near loc_fffa59f1 ; jmp 0xfffa59f1
+
+loc_fffa7810: ; not directly referenced
+cmp esi, 0x40650
+jne loc_fffa739d ; jne 0xfffa739d
+jmp near loc_fffa737e ; jmp 0xfffa737e
+
+loc_fffa7821: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, edx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffa782b:
+db 0x00
+
+fcn_fffa782c: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov dl, byte [eax + 0x102b]
+mov byte [eax + 0x173f], 0
+mov byte [eax + 0x1740], dl
+mov dl, byte [eax + 0x16b0]
+mov byte [eax + 0x173c], dl
+mov edx, dword [eax + 0x1047]
+mov ecx, dword [edx + 0x18]
+test cx, cx
+jne short loc_fffa786a ; jne 0xfffa786a
+shr ecx, 0x10
+cmp cx, 1
+jbe short loc_fffa786a ; jbe 0xfffa786a
+jmp short loc_fffa7870 ; jmp 0xfffa7870
+
+loc_fffa786a: ; not directly referenced
+mov cl, byte [eax + 0x16b2]
+
+loc_fffa7870: ; not directly referenced
+mov byte [eax + 0x173e], cl
+mov edx, dword [edx + 0x28]
+test dx, dx
+jne short loc_fffa7889 ; jne 0xfffa7889
+shr edx, 0x10
+cmp dx, 1
+jbe short loc_fffa7889 ; jbe 0xfffa7889
+jmp short loc_fffa788f ; jmp 0xfffa788f
+
+loc_fffa7889: ; not directly referenced
+mov dl, byte [eax + 0x16b1]
+
+loc_fffa788f: ; not directly referenced
+mov byte [eax + 0x173d], dl
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa7899: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa78a0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x103b]
+mov edx, dword [eax + 0xe4]
+mov ecx, dword [eax + 0xe8]
+xor eax, eax
+and dl, 8
+setne al
+mov edx, ecx
+shr edx, 0x15
+mov dword [ebp - 0x20], eax
+shr ecx, 4
+mov eax, dword [ebx + 0xff5]
+mov dword [ebx + 0x16d2], eax
+mov eax, dword [ebx + 0xff0]
+mov dword [ebp - 0x1c], eax
+dec eax
+and ecx, 7
+cmp eax, 0x7ffffffe
+mov eax, 0xa6b
+cmovb eax, dword [ebp - 0x1c]
+and edx, 7
+mov dword [ebp - 0x1c], eax
+mov dword [ebx + 0x16c2], eax
+jne short loc_fffa7911 ; jne 0xfffa7911
+mov dword [ebx + 0x16d2], 0
+
+loc_fffa7911: ; not directly referenced
+cmp dword [ebp - 0x20], 0
+mov esi, dword [ebx + 0x16d2]
+je short loc_fffa7931 ; je 0xfffa7931
+test edx, edx
+je short loc_fffa797e ; je 0xfffa797e
+mov byte [ebx + 0x1747], 1
+xor ecx, ecx
+mov edx, 7
+jmp short loc_fffa793a ; jmp 0xfffa793a
+
+loc_fffa7931: ; not directly referenced
+movzx ecx, cl
+xor edi, edi
+test edx, edx
+je short loc_fffa7971 ; je 0xfffa7971
+
+loc_fffa793a: ; not directly referenced
+add edx, 6
+mov eax, 0xbebc200
+imul edx, edx, 0x5f5e100
+mov dword [ebp - 0x24], ecx
+mul edx
+push 0x5af3
+add eax, 0x883d2000
+push 0x107a4000
+adc edx, 0x2d79
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+mov edi, eax
+add esp, 0x10
+mov ecx, dword [ebp - 0x24]
+
+loc_fffa7971: ; not directly referenced
+test ecx, ecx
+je short loc_fffa7980 ; je 0xfffa7980
+mov edx, 0xb
+sub edx, ecx
+jmp short loc_fffa7985 ; jmp 0xfffa7985
+
+loc_fffa797e: ; not directly referenced
+xor edi, edi
+
+loc_fffa7980: ; not directly referenced
+mov edx, 0xa
+
+loc_fffa7985: ; not directly referenced
+imul eax, edx, 0x5f5e100
+mov ecx, 0xfe502ab
+mul ecx
+push 0x5af3
+add eax, 0x883d2000
+push 0x107a4000
+adc edx, 0x2d79
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+cmp dword [ebx + 0x1021], 0
+je short loc_fffa79d1 ; je 0xfffa79d1
+cmp dword [ebp - 0x20], 0
+je short loc_fffa79c8 ; je 0xfffa79c8
+cmp esi, 1
+cmovne edi, eax
+jmp short loc_fffa79d5 ; jmp 0xfffa79d5
+
+loc_fffa79c8: ; not directly referenced
+cmp edi, eax
+mov esi, 1
+ja short loc_fffa79d5 ; ja 0xfffa79d5
+
+loc_fffa79d1: ; not directly referenced
+mov edi, eax
+xor esi, esi
+
+loc_fffa79d5: ; not directly referenced
+cmp edi, dword [ebp - 0x1c]
+jae short loc_fffa79e6 ; jae 0xfffa79e6
+mov dword [ebx + 0x16c2], edi
+mov dword [ebx + 0x16d2], esi
+
+loc_fffa79e6: ; not directly referenced
+mov ecx, dword [ebx + 0x16c2]
+xor eax, eax
+
+loc_fffa79ee: ; not directly referenced
+lea edx, [eax + eax*8]
+cmp ecx, dword [edx + ref_fffcbc08] ; cmp ecx, dword [edx - 0x343f8]
+jne short loc_fffa7a01 ; jne 0xfffa7a01
+mov eax, dword [edx + ref_fffcbc04] ; mov eax, dword [edx - 0x343fc]
+jmp short loc_fffa7a0c ; jmp 0xfffa7a0c
+
+loc_fffa7a01: ; not directly referenced
+inc eax
+cmp eax, 0x11
+jne short loc_fffa79ee ; jne 0xfffa79ee
+mov eax, 0x2625a0
+
+loc_fffa7a0c: ; not directly referenced
+mov dword [ebx + 0x16ca], eax
+lea esp, [ebp - 0xc]
+pop ebx
+xor eax, eax
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa7a1c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x103b]
+mov edx, dword [eax + 0x1021]
+mov ecx, dword [ebx + 0xe4]
+mov esi, dword [ebx + 0xe8]
+mov dword [eax + 0xc], esi
+movzx esi, ch
+test esi, 8
+mov dword [eax + 8], ecx
+mov ebx, dword [ebx + 0x54]
+jne short loc_fffa7a74 ; jne 0xfffa7a74
+and bl, 0x10
+je short loc_fffa7a74 ; je 0xfffa7a74
+mov ebx, dword [eax + 0x1009]
+mov dword [eax + 0x1724], ebx
+mov ebx, dword [eax + 0x100d]
+mov dword [eax + 0x1728], ebx
+jmp short loc_fffa7a88 ; jmp 0xfffa7a88
+
+loc_fffa7a74: ; not directly referenced
+mov dword [eax + 0x1724], 0
+mov dword [eax + 0x1728], 0
+
+loc_fffa7a88: ; not directly referenced
+mov ebx, ecx
+shr ebx, 0x13
+and ebx, 3
+cmp ebx, 1
+je short loc_fffa7ab3 ; je 0xfffa7ab3
+cmp ebx, 2
+je short loc_fffa7abf ; je 0xfffa7abf
+cmp ebx, 1
+sbb ebx, ebx
+and ebx, 0x3e00
+add ebx, 0x200
+mov dword [eax + 0x1751], ebx
+jmp short loc_fffa7ac9 ; jmp 0xfffa7ac9
+
+loc_fffa7ab3: ; not directly referenced
+mov dword [eax + 0x1751], 0x2000
+jmp short loc_fffa7ac9 ; jmp 0xfffa7ac9
+
+loc_fffa7abf: ; not directly referenced
+mov dword [eax + 0x1751], 0x800
+
+loc_fffa7ac9: ; not directly referenced
+mov ebx, esi
+shl ebx, 0x1b
+sar ebx, 0x1f
+add ebx, 2
+mov dword [ebp - 0x1c], ebx
+mov ebx, esi
+shl ebx, 0x19
+sar ebx, 0x1f
+add ebx, 2
+cmp dword [eax + 0x1005], 0x40650
+mov dword [ebp - 0x14], ebx
+mov ebx, 1
+cmovne ebx, dword [ebp - 0x14]
+mov dword [ebp - 0x14], ebx
+mov ebx, ecx
+shr ebx, 0x10
+and ebx, 2
+cmp bl, 1
+sbb ebx, ebx
+add ebx, 2
+mov word [ebp - 0x30], bx
+mov ebx, ecx
+shr ebx, 0x18
+and ebx, 1
+mov dword [ebp - 0x3c], ebx
+je short loc_fffa7b2c ; je 0xfffa7b2c
+mov byte [eax + 0x1740], 1
+mov dword [ebp - 0x38], 1
+jmp short loc_fffa7b45 ; jmp 0xfffa7b45
+
+loc_fffa7b2c: ; not directly referenced
+xor ebx, ebx
+and ecx, 0x2000000
+jne short loc_fffa7b42 ; jne 0xfffa7b42
+xor ebx, ebx
+cmp byte [eax + 0x1740], 0
+setne bl
+
+loc_fffa7b42: ; not directly referenced
+mov dword [ebp - 0x38], ebx
+
+loc_fffa7b45: ; not directly referenced
+imul edi, edx, 0x2a
+lea ecx, [eax + 0x2974]
+mov dword [ebp - 0x18], 0
+mov dword [ebp - 0x20], ecx
+
+loc_fffa7b58: ; not directly referenced
+imul edx, dword [ebp - 0x18], 0x1347
+add edx, dword [ebp - 0x20]
+cmp dword [edx + 8], 2
+lea ecx, [edx + 8]
+je short loc_fffa7b79 ; je 0xfffa7b79
+
+loc_fffa7b6b: ; not directly referenced
+inc dword [ebp - 0x18]
+cmp dword [ebp - 0x18], 2
+jne short loc_fffa7b58 ; jne 0xfffa7b58
+jmp near loc_fffa7c48 ; jmp 0xfffa7c48
+
+loc_fffa7b79: ; not directly referenced
+cmp word [ebp - 0x30], 2
+je short loc_fffa7ba8 ; je 0xfffa7ba8
+cmp dword [eax + 0x1021], 0
+jne short loc_fffa7bbe ; jne 0xfffa7bbe
+mov edx, dword [eax + 0x16c6]
+cmp edx, 0x74b
+ja short loc_fffa7ba8 ; ja 0xfffa7ba8
+cmp dword [ecx + 0xf5], 1
+jbe short loc_fffa7bbe ; jbe 0xfffa7bbe
+cmp edx, 0x534
+jbe short loc_fffa7bbe ; jbe 0xfffa7bbe
+
+loc_fffa7ba8: ; not directly referenced
+lea edx, [ecx + edi]
+mov ebx, 2
+cmp word [edx + 0xc], 2
+cmovae bx, word [edx + 0xc]
+mov word [edx + 0xc], bx
+
+loc_fffa7bbe: ; not directly referenced
+lea ebx, [ecx + edi]
+mov dword [ebp - 0x44], 0
+mov dword [ebp - 0x40], ebx
+
+loc_fffa7bcb: ; not directly referenced
+imul edx, dword [ebp - 0x44], 0xfb
+lea esi, [ecx + edx + 0x1150]
+cmp dword [esi + 1], 2
+lea edx, [esi + 1]
+jne short loc_fffa7c3a ; jne 0xfffa7c3a
+mov ebx, dword [ebp - 0x40]
+cmp dword [ebp - 0x38], 1
+mov bx, word [ebx + 0xc]
+mov word [edx + edi + 8], bx
+jne short loc_fffa7c22 ; jne 0xfffa7c22
+mov bl, byte [edx + 0xbc]
+test bl, bl
+mov byte [ebp - 0x31], bl
+jne short loc_fffa7c10 ; jne 0xfffa7c10
+cmp dword [ebp - 0x3c], 1
+jne short loc_fffa7c29 ; jne 0xfffa7c29
+mov dword [esi + 1], 1
+jmp short loc_fffa7c3a ; jmp 0xfffa7c3a
+
+loc_fffa7c10: ; not directly referenced
+cmp byte [ebp - 0x31], 1
+jne short loc_fffa7c29 ; jne 0xfffa7c29
+mov dword [edx + 0xcd], 9
+jmp short loc_fffa7c3a ; jmp 0xfffa7c3a
+
+loc_fffa7c22: ; not directly referenced
+mov byte [edx + 0xbc], 0
+
+loc_fffa7c29: ; not directly referenced
+mov dword [edx + 0xcd], 8
+mov byte [eax + 0x1740], 0
+
+loc_fffa7c3a: ; not directly referenced
+inc dword [ebp - 0x44]
+cmp dword [ebp - 0x44], 2
+jne short loc_fffa7bcb ; jne 0xfffa7bcb
+jmp near loc_fffa7b6b ; jmp 0xfffa7b6b
+
+loc_fffa7c48: ; not directly referenced
+cmp byte [eax + 0x1740], 1
+mov dword [eax + 0x1700], 0
+sete dl
+mov edi, 2
+add edx, 8
+xor esi, esi
+mov byte [eax + 0x1755], dl
+mov dword [ebp - 0x18], 0
+xor ebx, ebx
+
+loc_fffa7c75: ; not directly referenced
+imul ecx, esi, 0x1347
+add ecx, dword [ebp - 0x20]
+cmp dword [ecx + 8], 2
+lea edx, [ecx + 8]
+jne short loc_fffa7cdd ; jne 0xfffa7cdd
+xor ecx, ecx
+cmp dword [edx + 0x1151], 2
+jne short loc_fffa7c98 ; jne 0xfffa7c98
+mov ecx, dword [edx + 0x1222]
+
+loc_fffa7c98: ; not directly referenced
+cmp dword [edx + 0x124c], 2
+jne short loc_fffa7ca7 ; jne 0xfffa7ca7
+add ecx, dword [edx + 0x131d]
+
+loc_fffa7ca7: ; not directly referenced
+cmp ecx, ebx
+mov dword [edx + 0xf1], ecx
+jbe short loc_fffa7cbe ; jbe 0xfffa7cbe
+mov edi, dword [edx + 0xf5]
+mov dword [ebp - 0x18], esi
+mov ebx, ecx
+jmp short loc_fffa7cdd ; jmp 0xfffa7cdd
+
+loc_fffa7cbe: ; not directly referenced
+sete byte [ebp - 0x30]
+cmp dword [ebp - 0x14], 1
+sete cl
+test byte [ebp - 0x30], cl
+je short loc_fffa7cdd ; je 0xfffa7cdd
+mov ecx, dword [edx + 0xf5]
+cmp ecx, edi
+jae short loc_fffa7cdd ; jae 0xfffa7cdd
+mov edi, ecx
+mov dword [ebp - 0x18], esi
+
+loc_fffa7cdd: ; not directly referenced
+inc esi
+mov edx, dword [edx + 0xf1]
+add dword [eax + 0x1700], edx
+cmp esi, 2
+jne short loc_fffa7c75 ; jne 0xfffa7c75
+cmp dword [ebp - 0x1c], 1
+je short loc_fffa7d04 ; je 0xfffa7d04
+
+loc_fffa7cf5: ; not directly referenced
+cmp dword [ebp - 0x14], 1
+jne loc_fffa7d97 ; jne 0xfffa7d97
+jmp near loc_fffa7da6 ; jmp 0xfffa7da6
+
+loc_fffa7d04: ; not directly referenced
+xor ecx, ecx
+
+loc_fffa7d06: ; not directly referenced
+imul edx, ecx, 0x1347
+mov ebx, dword [ebp - 0x20]
+cmp dword [ebx + edx + 8], 2
+jne short loc_fffa7d88 ; jne 0xfffa7d88
+cmp ecx, dword [ebp - 0x18]
+je short loc_fffa7d88 ; je 0xfffa7d88
+lea ebx, [eax + edx + 0x2960]
+cmp dword [ebx + 0x1c], 2
+lea edx, [ebx + 0x1c]
+jne short loc_fffa7d88 ; jne 0xfffa7d88
+mov dword [ebx + 0x1c], 1
+cmp dword [edx + 0x1151], 2
+mov byte [edx + 0x114e], 0
+mov byte [edx + 0x114f], 0
+jne short loc_fffa7d64 ; jne 0xfffa7d64
+mov dword [edx + 0x1151], 1
+mov byte [edx + 0x122e], 0
+mov dword [edx + 0x1222], 0
+
+loc_fffa7d64: ; not directly referenced
+cmp dword [edx + 0x124c], 2
+jne short loc_fffa7d88 ; jne 0xfffa7d88
+mov dword [edx + 0x124c], 1
+mov byte [edx + 0x1329], 0
+mov dword [edx + 0x131d], 0
+
+loc_fffa7d88: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne loc_fffa7d06 ; jne 0xfffa7d06
+jmp near loc_fffa7cf5 ; jmp 0xfffa7cf5
+
+loc_fffa7d97: ; not directly referenced
+cmp byte [eax + 0x1070], 1
+jne loc_fffa7e66 ; jne 0xfffa7e66
+jmp short loc_fffa7dfe ; jmp 0xfffa7dfe
+
+loc_fffa7da6: ; not directly referenced
+xor ecx, ecx
+
+loc_fffa7da8: ; not directly referenced
+imul ebx, ecx, 0x1347
+add ebx, dword [ebp - 0x20]
+cmp dword [ebx + 8], 2
+lea edx, [ebx + 8]
+jne short loc_fffa7df6 ; jne 0xfffa7df6
+mov ebx, dword [edx + 0x1151]
+xor esi, esi
+cmp ebx, 2
+jne short loc_fffa7dcd ; jne 0xfffa7dcd
+mov esi, dword [edx + 0x1222]
+
+loc_fffa7dcd: ; not directly referenced
+cmp dword [edx + 0x124c], 2
+jne short loc_fffa7df6 ; jne 0xfffa7df6
+cmp dword [edx + 0x131d], esi
+ja short loc_fffa7e5c ; ja 0xfffa7e5c
+jmp short loc_fffa7dec ; jmp 0xfffa7dec
+
+loc_fffa7de0: ; not directly referenced
+mov dword [edx + 0x1151], 1
+jmp short loc_fffa7df6 ; jmp 0xfffa7df6
+
+loc_fffa7dec: ; not directly referenced
+mov dword [edx + 0x124c], 1
+
+loc_fffa7df6: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne short loc_fffa7da8 ; jne 0xfffa7da8
+jmp short loc_fffa7d97 ; jmp 0xfffa7d97
+
+loc_fffa7dfe: ; not directly referenced
+cmp dword [eax + 0x2974], 2
+mov byte [eax + 0x1748], 1
+jne short loc_fffa7e66 ; jne 0xfffa7e66
+xor edx, edx
+
+loc_fffa7e10: ; not directly referenced
+imul ebx, edx, 0x1347
+add ebx, dword [ebp - 0x20]
+cmp dword [ebx + 8], 2
+lea ecx, [ebx + 8]
+jne short loc_fffa7e54 ; jne 0xfffa7e54
+cmp dword [ecx + 0x1151], 2
+jne short loc_fffa7e3b ; jne 0xfffa7e3b
+cmp byte [ecx + 0x1211], 0
+jne short loc_fffa7e3b ; jne 0xfffa7e3b
+mov byte [eax + 0x1748], 0
+
+loc_fffa7e3b: ; not directly referenced
+cmp dword [ecx + 0x124c], 2
+jne short loc_fffa7e54 ; jne 0xfffa7e54
+cmp byte [ecx + 0x130c], 0
+jne short loc_fffa7e54 ; jne 0xfffa7e54
+mov byte [eax + 0x1748], 0
+
+loc_fffa7e54: ; not directly referenced
+inc edx
+cmp edx, 2
+je short loc_fffa7e66 ; je 0xfffa7e66
+jmp short loc_fffa7e10 ; jmp 0xfffa7e10
+
+loc_fffa7e5c: ; not directly referenced
+cmp ebx, 2
+jne short loc_fffa7df6 ; jne 0xfffa7df6
+jmp near loc_fffa7de0 ; jmp 0xfffa7de0
+
+loc_fffa7e66: ; not directly referenced
+lea esp, [esp + 0x3c]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa7e71: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa7e78: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 8]
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x5f08], 0x14
+cmp dword [eax + 0x297c], 2
+jne short loc_fffa7eab ; jne 0xfffa7eab
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x48a8], 0x3000
+
+loc_fffa7eab: ; not directly referenced
+cmp dword [eax + 0x3cc3], 2
+jne short loc_fffa7ec4 ; jne 0xfffa7ec4
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x48b0], 0x3000
+
+loc_fffa7ec4: ; not directly referenced
+call fcn_fffab1b6 ; call 0xfffab1b6
+xor eax, eax
+leave
+ret
+
+fcn_fffa7ecd: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 0x38
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0xcc]
+mov edi, dword [ebp + 8]
+mov eax, edi
+mov esi, dword [edi + 0x1005]
+lea ebx, [edi + 0x16be]
+mov dword [ebp - 0x90], ebx
+mov ebx, dword [edi + 0x1001]
+mov dword [ebp - 0x74], esi
+mov dword [ebp - 0x7c], ebx
+lea esi, [edi + 0x2974]
+call fcn_fffc6438 ; call 0xfffc6438
+mov dword [ebp - 0x8c], esi
+mov dword [ebp - 0x6c], 0x4004
+xor esi, esi
+
+loc_fffa7f1e: ; not directly referenced
+imul eax, esi, 0x1347
+mov ebx, dword [ebp - 0x90]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffa8131 ; jne 0xfffa8131
+mov ebx, dword [ebp - 0x8c]
+cmp byte [edi + 0x102e], 1
+lea eax, [ebx + eax + 8]
+mov dword [ebp - 0x70], eax
+jne loc_fffa7fef ; jne 0xfffa7fef
+cmp dword [ebp - 0x7c], 2
+setbe dl
+cmp dword [ebp - 0x74], 0x306c0
+sete al
+test dl, al
+jne short loc_fffa7f88 ; jne 0xfffa7f88
+cmp dword [ebp - 0x74], 0x40660
+sete al
+cmp dword [ebp - 0x74], 0x40650
+sete dl
+or eax, edx
+cmp dword [ebp - 0x7c], 0
+sete dl
+test al, dl
+je short loc_fffa7fef ; je 0xfffa7fef
+
+loc_fffa7f88: ; not directly referenced
+mov ebx, dword [ebp - 0x6c]
+add ebx, dword [edi + 0x103f]
+mov cl, 6
+mov eax, dword [ebx]
+mov edx, eax
+shr edx, 0xc
+and edx, 7
+cmp dl, 6
+cmovb edx, ecx
+and ah, 0x8f
+and edx, 7
+shl edx, 0xc
+or eax, edx
+mov edx, eax
+shr edx, 0xf
+and edx, 0xf
+cmp dl, 6
+cmovb edx, ecx
+and eax, 0xfff87fff
+and edx, 0xf
+shl edx, 0xf
+or eax, edx
+mov edx, eax
+shr edx, 0x13
+and edx, 0xf
+cmp dl, 6
+cmovb edx, ecx
+and eax, 0xff87ffff
+and edx, 0xf
+shl edx, 0x13
+or eax, edx
+mov dword [ebx], eax
+mov ebx, dword [ebp - 0x70]
+mov dword [ebx + 0x1a9], eax
+
+loc_fffa7fef: ; not directly referenced
+cmp byte [edi + 0x102e], 1
+jne loc_fffa8080 ; jne 0xfffa8080
+jmp short loc_fffa8016 ; jmp 0xfffa8016
+
+loc_fffa7ffe: ; not directly referenced
+rdrand eax
+mov dword [ebp - 0x60], eax
+pushfd
+pop eax
+mov dword [ebp - 0x64], eax
+test byte [ebp - 0x64], 1
+mov eax, edx
+cmovne eax, dword [ebp - 0x60]
+dec ebx
+jmp short loc_fffa801f ; jmp 0xfffa801f
+
+loc_fffa8016: ; not directly referenced
+mov ebx, 0x186a0
+xor eax, eax
+xor edx, edx
+
+loc_fffa801f: ; not directly referenced
+test eax, eax
+sete cl
+test ebx, ebx
+setne byte [ebp - 0x78]
+test byte [ebp - 0x78], cl
+jne short loc_fffa7ffe ; jne 0xfffa7ffe
+or ebx, eax
+jne short loc_fffa806a ; jne 0xfffa806a
+push edx
+lea eax, [ebp - 0x60]
+lea edx, [ebp - 0x65]
+push eax
+lea eax, [ebp - 0x68]
+lea ecx, [ebp - 0x66]
+push eax
+lea eax, [ebp - 0x67]
+push eax
+lea eax, [ebp - 0x64]
+call fcn_fffc8290 ; call 0xfffc8290
+movzx eax, byte [ebp - 0x65]
+add esp, 0x10
+imul eax, eax, 0x3c
+movzx edx, byte [ebp - 0x64]
+add eax, edx
+movzx edx, byte [ebp - 0x66]
+imul edx, edx, 0xe10
+add eax, edx
+
+loc_fffa806a: ; not directly referenced
+movzx eax, ax
+mov edx, dword [edi + 0x103f]
+lea eax, [eax + eax + 1]
+lea edx, [edx + esi*4 + 0x2000]
+mov dword [edx], eax
+
+loc_fffa8080: ; not directly referenced
+imul eax, dword [edi + 0x1021], 0x2a
+mov ebx, dword [ebp - 0x70]
+cmp word [ebx + eax + 0xc], 1
+jne short loc_fffa80bc ; jne 0xfffa80bc
+mov eax, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x6c]
+mov cl, byte [edi + 0x106e]
+lea edx, [ebx + eax + 0xc]
+mov ebx, ecx
+mov eax, dword [edx]
+and ebx, 1
+shr cl, 1
+and eax, 0xfffffff0
+and ecx, 7
+or eax, ebx
+add ecx, ecx
+or eax, ecx
+mov dword [edx], eax
+
+loc_fffa80bc: ; not directly referenced
+cmp byte [edi + 0x106f], 0
+jne short loc_fffa80e4 ; jne 0xfffa80e4
+mov ebx, dword [ebp - 0x70]
+mov edx, dword [ebp - 0x6c]
+mov eax, dword [ebx + 0x1a9]
+and eax, 0xdfffffff
+mov dword [ebx + 0x1a9], eax
+add edx, dword [edi + 0x103f]
+mov dword [edx], eax
+
+loc_fffa80e4: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x70]
+lea eax, [eax + esi*8 + 0x48a8]
+mov dword [eax], 0x3000
+mov dl, byte [ebx + 0x114f]
+mov eax, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x6c]
+lea eax, [ebx + eax + 0x29c]
+mov byte [eax], dl
+cmp byte [edi + 0x1740], 1
+jne short loc_fffa8131 ; jne 0xfffa8131
+mov eax, dword [edi + 0x103f]
+lea edx, [eax + esi*4 + 0x5004]
+mov eax, dword [edx]
+or eax, 0x3000000
+mov dword [edx], eax
+
+loc_fffa8131: ; not directly referenced
+inc esi
+add dword [ebp - 0x6c], 0x400
+cmp esi, 2
+jne loc_fffa7f1e ; jne 0xfffa7f1e
+xor ebx, ebx
+cmp dword [edi + 0x1749], 2
+sete bl
+test byte [edi + 0x16b7], 1
+mov dword [ebp - 0x84], ebx
+je short loc_fffa8161 ; je 0xfffa8161
+test ebx, ebx
+je short loc_fffa816a ; je 0xfffa816a
+
+loc_fffa8161: ; not directly referenced
+xor edx, edx
+mov eax, edi
+call fcn_fffb348c ; call 0xfffb348c
+
+loc_fffa816a: ; not directly referenced
+cmp dword [ebp - 0x74], 0x306c0
+sete byte [ebp - 0x9c]
+cmp dword [ebp - 0x74], 0x40660
+sete al
+or al, byte [ebp - 0x9c]
+jne short loc_fffa81a2 ; jne 0xfffa81a2
+
+loc_fffa818a: ; not directly referenced
+lea esi, [edi + 0x2974]
+mov dword [ebp - 0x6c], 0
+mov dword [ebp - 0xa0], esi
+jmp near loc_fffa82af ; jmp 0xfffa82af
+
+loc_fffa81a2: ; not directly referenced
+lea eax, [edi + 0x2974]
+mov dword [ebp - 0x78], 0x3074
+mov dword [ebp - 0x70], 0
+mov dword [ebp - 0x98], eax
+
+loc_fffa81bc: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0x1347
+mov ebx, dword [ebp - 0x90]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffa8296 ; jne 0xfffa8296
+mov esi, dword [ebp - 0x98]
+mov dword [ebp - 0x6c], 0
+lea edx, [esi + eax + 8]
+mov al, byte [edi + 0x1755]
+mov byte [ebp - 0x94], al
+jmp short loc_fffa8263 ; jmp 0xfffa8263
+
+loc_fffa81f6: ; not directly referenced
+mov ecx, dword [ebp - 0x6c]
+mov esi, 0xfffffff0
+add ecx, 0x50
+movzx ebx, byte [edx + ecx*4 + 7]
+mov al, byte [edx + ecx*4 + 6]
+shr al, 5
+and ebx, 1
+shl ebx, 3
+or eax, ebx
+or esi, eax
+test ebx, ebx
+mov bl, byte [edx + ecx*4 + 7]
+cmovne eax, esi
+shr bl, 1
+movsx eax, al
+mov esi, ebx
+and esi, 7
+mov dword [ebp - 0x88], esi
+mov bl, byte [edx + ecx*4 + 7]
+shr bl, 4
+mov esi, 0xfffffff0
+or esi, ebx
+test bl, 8
+mov cl, byte [edx + ecx*4 + 8]
+cmovne ebx, esi
+add eax, dword [ebp - 0x88]
+and ecx, 7
+cmp eax, 6
+jg short loc_fffa8272 ; jg 0xfffa8272
+movsx ebx, bl
+inc dword [ebp - 0x6c]
+add ebx, ecx
+cmp ebx, 6
+jg short loc_fffa8272 ; jg 0xfffa8272
+
+loc_fffa8263: ; not directly referenced
+mov al, byte [ebp - 0x6c]
+cmp byte [ebp - 0x94], al
+ja short loc_fffa81f6 ; ja 0xfffa81f6
+xor ecx, ecx
+jmp short loc_fffa8274 ; jmp 0xfffa8274
+
+loc_fffa8272: ; not directly referenced
+mov cl, 1
+
+loc_fffa8274: ; not directly referenced
+mov al, byte [edx + 0x142]
+and eax, 0xfffffffe
+or eax, ecx
+mov byte [edx + 0x142], al
+mov eax, dword [ebp - 0x78]
+add eax, dword [edi + 0x103f]
+mov edx, dword [edx + 0x141]
+mov dword [eax], edx
+
+loc_fffa8296: ; not directly referenced
+inc dword [ebp - 0x70]
+add dword [ebp - 0x78], 0x100
+cmp dword [ebp - 0x70], 2
+jne loc_fffa81bc ; jne 0xfffa81bc
+jmp near loc_fffa818a ; jmp 0xfffa818a
+
+loc_fffa82af: ; not directly referenced
+imul edx, dword [ebp - 0x6c], 0x1347
+mov ebx, dword [ebp - 0x90]
+mov dword [ebp - 0x78], edx
+cmp dword [ebx + edx + 0x12be], 2
+je short loc_fffa82d7 ; je 0xfffa82d7
+
+loc_fffa82c9: ; not directly referenced
+inc dword [ebp - 0x6c]
+cmp dword [ebp - 0x6c], 2
+jne short loc_fffa82af ; jne 0xfffa82af
+jmp near loc_fffa83ac ; jmp 0xfffa83ac
+
+loc_fffa82d7: ; not directly referenced
+mov edx, dword [ebp - 0xa0]
+mov esi, dword [ebp - 0x78]
+mov ebx, dword [ebp - 0x6c]
+mov byte [ebp - 0x70], 0
+shl ebx, 8
+mov dword [ebp - 0x98], ebx
+lea eax, [edx + esi + 8]
+jmp short loc_fffa836f ; jmp 0xfffa836f
+
+loc_fffa82f6: ; not directly referenced
+mov cl, byte [ebp - 0x88]
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x94], bl
+je short loc_fffa831a ; je 0xfffa831a
+mov bl, byte [esi + 0x24]
+mov cl, byte [esi]
+cmp byte [esi], bl
+cmovae ebx, ecx
+cmp dl, bl
+cmovb edx, ebx
+
+loc_fffa831a: ; not directly referenced
+inc dword [ebp - 0x88]
+add esi, 9
+cmp dword [ebp - 0x88], 4
+jne short loc_fffa82f6 ; jne 0xfffa82f6
+mov ecx, dword [ebp - 0x80]
+mov bl, 7
+shr dl, 3
+add ecx, 0x50
+sub ebx, edx
+shr ebx, 1
+and ebx, 3
+mov dl, byte [eax + ecx*4 + 6]
+and byte [eax + ecx*4 + 5], 0x7f
+and edx, 0xfffffffc
+or edx, ebx
+mov byte [eax + ecx*4 + 6], dl
+mov edx, dword [eax + ecx*4 + 5]
+mov ecx, dword [ebp - 0x80]
+mov ebx, dword [ebp - 0x98]
+shl ecx, 9
+inc byte [ebp - 0x70]
+lea ecx, [ebx + ecx + 0x60]
+add ecx, dword [edi + 0x103f]
+mov dword [ecx], edx
+
+loc_fffa836f: ; not directly referenced
+mov dl, byte [ebp - 0x70]
+cmp dl, byte [edi + 0x1755]
+jae loc_fffa82c9 ; jae 0xfffa82c9
+mov ebx, dword [ebp - 0x78]
+mov dword [ebp - 0x88], 0
+movzx esi, dl
+xor edx, edx
+mov dword [ebp - 0x80], esi
+lea esi, [eax + esi + 0x1106]
+mov bl, byte [edi + ebx + 0x3acb]
+mov byte [ebp - 0x94], bl
+jmp near loc_fffa82f6 ; jmp 0xfffa82f6
+
+loc_fffa83ac: ; not directly referenced
+movzx ecx, word [edi + 0x1766]
+mov eax, ecx
+shr ax, 1
+movzx eax, ax
+add eax, 0xb2c
+cdq
+idiv ecx
+mov ecx, 7
+cmp eax, 7
+ja short loc_fffa83dc ; ja 0xfffa83dc
+xor cl, cl
+cmp eax, 2
+jbe short loc_fffa83dc ; jbe 0xfffa83dc
+cmp eax, 3
+mov cl, 4
+cmovne ecx, eax
+
+loc_fffa83dc: ; not directly referenced
+and ecx, 7
+xor eax, eax
+cmp dword [ebp - 0x84], 0
+cmove eax, ecx
+xor ebx, ebx
+lea esi, [ecx*8]
+mov edx, esi
+mov byte [ebp - 0x70], dl
+lea ecx, [eax*8]
+mov byte [ebp - 0x78], cl
+
+loc_fffa8403: ; not directly referenced
+imul eax, ebx, 0x1347
+mov esi, dword [ebp - 0x90]
+cmp dword [esi + eax + 0x12be], 2
+je short loc_fffa8424 ; je 0xfffa8424
+
+loc_fffa8419: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffa8403 ; jne 0xfffa8403
+jmp near loc_fffa84bd ; jmp 0xfffa84bd
+
+loc_fffa8424: ; not directly referenced
+mov esi, dword [ebp - 0x8c]
+lea edx, [esi + eax + 8]
+mov eax, ebx
+shl eax, 8
+mov dword [ebp - 0x6c], eax
+xor eax, eax
+jmp short loc_fffa84b0 ; jmp 0xfffa84b0
+
+loc_fffa843a: ; not directly referenced
+cmp dword [ebp - 0x74], 0x40650
+jne short loc_fffa8455 ; jne 0xfffa8455
+movzx esi, al
+add esi, 0x50
+mov cl, byte [edx + esi*4 + 8]
+and ecx, 0xffffffc7
+or ecx, dword [ebp - 0x78]
+jmp short loc_fffa8481 ; jmp 0xfffa8481
+
+loc_fffa8455: ; not directly referenced
+cmp dword [ebp - 0x7c], 1
+sete cl
+test byte [ebp - 0x9c], cl
+je short loc_fffa8471 ; je 0xfffa8471
+movzx ecx, al
+and byte [edx + ecx*4 + 0x148], 0xc7
+jmp short loc_fffa8485 ; jmp 0xfffa8485
+
+loc_fffa8471: ; not directly referenced
+movzx esi, al
+add esi, 0x50
+mov cl, byte [edx + esi*4 + 8]
+and ecx, 0xffffffc7
+or ecx, dword [ebp - 0x70]
+
+loc_fffa8481: ; not directly referenced
+mov byte [edx + esi*4 + 8], cl
+
+loc_fffa8485: ; not directly referenced
+movzx ecx, al
+inc eax
+mov esi, dword [edx + ecx*4 + 0x145]
+shl ecx, 9
+mov dword [ebp - 0x88], esi
+mov esi, dword [ebp - 0x6c]
+lea esi, [esi + ecx + 0x60]
+mov ecx, dword [edi + 0x103f]
+add esi, ecx
+mov ecx, dword [ebp - 0x88]
+mov dword [esi], ecx
+
+loc_fffa84b0: ; not directly referenced
+cmp al, byte [edi + 0x1755]
+jb short loc_fffa843a ; jb 0xfffa843a
+jmp near loc_fffa8419 ; jmp 0xfffa8419
+
+loc_fffa84bd: ; not directly referenced
+cmp dword [ebp - 0x74], 0x40650
+jne loc_fffa878d ; jne 0xfffa878d
+mov dword [ebp - 0x74], 0
+
+loc_fffa84d1: ; not directly referenced
+imul eax, dword [ebp - 0x74], 0x1347
+mov ebx, dword [ebp - 0x90]
+cmp dword [ebx + eax + 0x12be], 2
+je short loc_fffa84f7 ; je 0xfffa84f7
+
+loc_fffa84e8: ; not directly referenced
+inc dword [ebp - 0x74]
+cmp dword [ebp - 0x74], 2
+je loc_fffa8667 ; je 0xfffa8667
+jmp short loc_fffa84d1 ; jmp 0xfffa84d1
+
+loc_fffa84f7: ; not directly referenced
+mov esi, dword [ebp - 0x8c]
+mov dword [ebp - 0x80], 0
+lea ebx, [esi + eax + 8]
+mov al, byte [edi + eax + 0x3acb]
+mov byte [ebp - 0x7c], al
+mov dword [ebp - 0x6c], ebx
+xor esi, esi
+
+loc_fffa8517: ; not directly referenced
+mov cl, byte [ebp - 0x80]
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x7c], al
+je short loc_fffa8553 ; je 0xfffa8553
+mov al, byte [edi + 0x1755]
+mov byte [ebp - 0x70], al
+xor eax, eax
+jmp short loc_fffa854e ; jmp 0xfffa854e
+
+loc_fffa8533: ; not directly referenced
+mov ecx, dword [ebp - 0x6c]
+mov dx, word [ecx + eax*2 + 0x26d]
+mov ecx, esi
+movzx ecx, cl
+shr dx, 6
+cmp cx, dx
+cmovbe esi, edx
+inc eax
+
+loc_fffa854e: ; not directly referenced
+cmp byte [ebp - 0x70], al
+ja short loc_fffa8533 ; ja 0xfffa8533
+
+loc_fffa8553: ; not directly referenced
+inc dword [ebp - 0x80]
+add dword [ebp - 0x6c], 0x12
+cmp dword [ebp - 0x80], 4
+jne short loc_fffa8517 ; jne 0xfffa8517
+cmp dword [ebp - 0x84], 0
+mov al, 1
+je short loc_fffa8578 ; je 0xfffa8578
+movzx ecx, word [edi + 0x1766]
+lea eax, [ecx + 0x3f]
+cdq
+idiv ecx
+
+loc_fffa8578: ; not directly referenced
+lea eax, [esi + eax*2 + 0xf]
+mov byte [ebp - 0x70], al
+mov eax, dword [ebp - 0x74]
+mov byte [ebp - 0x6c], 0
+shl eax, 8
+add eax, 0x64
+mov dword [ebp - 0x7c], eax
+jmp near loc_fffa8653 ; jmp 0xfffa8653
+
+loc_fffa8594: ; not directly referenced
+movzx esi, byte [ebp - 0x6c]
+lea edx, [esi + 0x50]
+mov al, byte [ebx + edx*4 + 8]
+shr al, 6
+and eax, 1
+cmp al, 1
+sbb byte [ebp - 0x70], 0xff
+movzx ecx, byte [ebx + edx*4 + 7]
+mov al, byte [ebx + edx*4 + 6]
+shr al, 5
+and ecx, 1
+shl ecx, 3
+or eax, ecx
+mov dword [ebp - 0x80], ecx
+mov cl, al
+mov dl, byte [ebx + edx*4 + 7]
+or ecx, 0xfffffff0
+cmp dword [ebp - 0x80], 0
+cmovne eax, ecx
+shr dl, 1
+and edx, 7
+test byte [ebx + 0x144], 0x40
+je short loc_fffa8602 ; je 0xfffa8602
+lea edx, [esi + 0x58]
+mov al, byte [ebx + edx*4 + 0xa]
+movzx edx, byte [ebx + edx*4 + 0xb]
+shr al, 5
+and edx, 3
+shl edx, 3
+or eax, edx
+mov dl, byte [ebp - 0x70]
+cmp byte [ebp - 0x70], al
+cmovae eax, edx
+jmp short loc_fffa860d ; jmp 0xfffa860d
+
+loc_fffa8602: ; not directly referenced
+lea eax, [edx + eax + 0xe]
+mov cl, 0x11
+cmp al, 0x11
+cmovl eax, ecx
+
+loc_fffa860d: ; not directly referenced
+and eax, 0x1f
+lea edx, [esi + 0x58]
+mov cl, al
+shl ecx, 5
+shr al, 3
+mov byte [ebp - 0x78], cl
+mov cl, byte [ebx + edx*4 + 0xa]
+and eax, 3
+and ecx, 0x1f
+or ecx, dword [ebp - 0x78]
+mov byte [ebx + edx*4 + 0xa], cl
+mov cl, byte [ebx + edx*4 + 0xb]
+and ecx, 0xfffffffc
+or ecx, eax
+mov byte [ebx + edx*4 + 0xb], cl
+mov eax, dword [ebx + edx*4 + 9]
+mov edx, esi
+inc byte [ebp - 0x6c]
+shl edx, 9
+add edx, dword [ebp - 0x7c]
+add edx, dword [edi + 0x103f]
+mov dword [edx], eax
+
+loc_fffa8653: ; not directly referenced
+mov al, byte [ebp - 0x6c]
+cmp al, byte [edi + 0x1755]
+jb loc_fffa8594 ; jb 0xfffa8594
+jmp near loc_fffa84e8 ; jmp 0xfffa84e8
+
+loc_fffa8667: ; not directly referenced
+cmp byte [edi + 0x16b3], 0
+je loc_fffa878d ; je 0xfffa878d
+mov eax, dword [edi + 0x103f]
+mov ecx, dword [edi + 0x2b31]
+mov dword [ebp - 0x80], 0
+mov edx, dword [eax + 0x4024]
+mov ebx, dword [eax + 0x40d0]
+mov esi, dword [eax + 0x4ca4]
+mov eax, ecx
+and eax, 0x1f
+mov dword [ebp - 0x70], edx
+mov dword [ebp - 0x6c], eax
+mov eax, ecx
+shr eax, 5
+mov dword [ebp - 0x7c], ebx
+shr ecx, 0x1a
+mov edx, dword [edi + 0x2b25]
+mov ebx, dword [edi + 0x2b29]
+and ecx, 3
+and eax, 0x1f
+mov dword [ebp - 0x74], ecx
+shr edx, 0x1e
+shr ebx, 0x1f
+cmp dword [edi + 0x1749], 1
+jne short loc_fffa86e5 ; jne 0xfffa86e5
+movzx eax, al
+xor ecx, ecx
+add eax, edx
+sub eax, ebx
+cmp eax, 5
+sete cl
+mov dword [ebp - 0x80], ecx
+
+loc_fffa86e5: ; not directly referenced
+mov ecx, esi
+mov eax, 1
+and ecx, 3
+cmp cl, 2
+jne short loc_fffa86fc ; jne 0xfffa86fc
+mov eax, esi
+shr eax, 4
+and eax, 7
+
+loc_fffa86fc: ; not directly referenced
+mov esi, dword [ebp - 0x74]
+add esi, dword [ebp - 0x6c]
+add edx, esi
+mov cl, byte [edi + 0x3acb]
+add edx, edx
+mov byte [ebp - 0x78], cl
+not edx
+add edx, 5
+mov dword [ebp - 0x6c], edx
+mov edx, ebx
+sub edx, dword [ebp - 0x80]
+lea edx, [edx + eax*4 + 0x7ffffffc]
+xor eax, eax
+mov dword [ebp - 0x74], edx
+xor edx, edx
+
+loc_fffa872a: ; not directly referenced
+mov cl, al
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x78], bl
+je short loc_fffa877b ; je 0xfffa877b
+lea ebx, [eax*8]
+mov cl, bl
+mov esi, dword [ebp - 0x70]
+shr esi, cl
+lea ecx, [eax + eax]
+and esi, 0x3f
+add esi, dword [ebp - 0x6c]
+mov dword [ebp - 0x84], esi
+mov esi, dword [ebp - 0x7c]
+shr esi, cl
+mov ecx, dword [ebp - 0x84]
+and esi, 3
+mov dword [ebp - 0x80], esi
+mov esi, dword [ebp - 0x74]
+sub esi, dword [ebp - 0x80]
+lea esi, [ecx + esi*2]
+mov cl, bl
+and esi, 0xff
+shl esi, cl
+or edx, esi
+
+loc_fffa877b: ; not directly referenced
+inc eax
+cmp eax, 4
+jne short loc_fffa872a ; jne 0xfffa872a
+mov eax, dword [edi + 0x1047]
+mov dword [eax + 0xc04], edx
+
+loc_fffa878d: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+mov dword [eax + 0x5f08], 0x14
+cmp dword [edi + 0x297c], 2
+jne short loc_fffa87e4 ; jne 0xfffa87e4
+mov edx, dword [edi + 0x16c6]
+mov eax, dword [edi + 0x2b31]
+cmp edx, 0x74a
+ja short loc_fffa87ce ; ja 0xfffa87ce
+
+loc_fffa87ba: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+mov dword [edx + 0x4014], eax
+mov dword [edi + 0x2b31], eax
+jmp short loc_fffa87e4 ; jmp 0xfffa87e4
+
+loc_fffa87ce: ; not directly referenced
+and ah, 0xf3
+or ah, 8
+cmp edx, 0x854
+jbe short loc_fffa87ba ; jbe 0xfffa87ba
+and ah, 0xcf
+or ah, 0x20
+jmp short loc_fffa87ba ; jmp 0xfffa87ba
+
+loc_fffa87e4: ; not directly referenced
+cmp dword [edi + 0x3cc3], 2
+jne short loc_fffa8827 ; jne 0xfffa8827
+mov edx, dword [edi + 0x16c6]
+mov eax, dword [edi + 0x3e78]
+cmp edx, 0x74a
+jbe short loc_fffa8815 ; jbe 0xfffa8815
+and ah, 0xf3
+or ah, 8
+cmp edx, 0x854
+jbe short loc_fffa8815 ; jbe 0xfffa8815
+and ah, 0xcf
+or ah, 0x20
+
+loc_fffa8815: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+mov dword [edx + 0x4414], eax
+mov dword [edi + 0x3e78], eax
+
+loc_fffa8827: ; not directly referenced
+mov eax, edi
+call fcn_fffab1b6 ; call 0xfffab1b6
+mov edx, dword [edi + 0x103f]
+cmp byte [edi + 0x106d], 1
+sbb eax, eax
+and eax, 0x40000000
+mov dword [edx + 0x501c], eax
+mov eax, edi
+call fcn_fffb2dca ; call 0xfffb2dca
+lea ecx, [edi + 0x102f]
+mov edx, 0x39
+mov eax, edi
+call fcn_fffc6438 ; call 0xfffc6438
+cmp byte [edi + 0x107d], 0
+jne loc_fffa8fac ; jne 0xfffa8fac
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x40]
+mov dword [ebp - 0x50], ref_fffc9f84 ; mov dword [ebp - 0x50], 0xfffc9f84
+mov dword [ebp - 0x4c], ref_fffcb73c ; mov dword [ebp - 0x4c], 0xfffcb73c
+mov dword [ebp - 0x48], ref_fffcb78c ; mov dword [ebp - 0x48], 0xfffcb78c
+mov dword [ebp - 0x44], ref_fffcb7ec ; mov dword [ebp - 0x44], 0xfffcb7ec
+mov dword [ebp - 0xc4], 0
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x38]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x30]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x28]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x20]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0xff
+mov edx, 4
+lea eax, [ebp - 0x58]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 4
+lea eax, [ebp - 0x54]
+call fcn_fffa119f ; call 0xfffa119f
+cmp dword [edi + 0x1749], 2
+jne short loc_fffa8917 ; jne 0xfffa8917
+mov word [ebp - 0x5c], 8
+mov word [ebp - 0x5a], 1
+jmp short loc_fffa8923 ; jmp 0xfffa8923
+
+loc_fffa8917: ; not directly referenced
+mov word [ebp - 0x5c], 0x228
+mov word [ebp - 0x5a], 7
+
+loc_fffa8923: ; not directly referenced
+mov ebx, dword [edi + 0x1021]
+mov dword [ebp - 0xc8], ebx
+dec ebx
+je loc_fffa8fac ; je 0xfffa8fac
+lea ebx, [ebp - 0x30]
+lea esi, [ebp - 0x54]
+lea eax, [ebp - 0x40]
+lea edx, [ebp - 0x38]
+mov dword [ebp - 0x6c], eax
+mov dword [ebp - 0x80], edx
+mov dword [ebp - 0x84], esi
+mov dword [ebp - 0x78], ebx
+lea esi, [ebp - 0x28]
+mov dword [ebp - 0xa4], ebx
+mov dword [ebp - 0x70], esi
+mov dword [ebp - 0xa8], esi
+mov ebx, dword [ebp - 0x80]
+mov esi, dword [ebp - 0x6c]
+lea eax, [ebp - 0x20]
+lea edx, [ebp - 0x58]
+mov dword [ebp - 0x7c], eax
+mov dword [ebp - 0x9c], edx
+mov dword [ebp - 0xb0], edx
+mov dword [ebp - 0xac], eax
+mov dword [ebp - 0xa0], ebx
+mov dword [ebp - 0x98], esi
+mov dword [ebp - 0x88], 0
+mov byte [ebp - 0x74], 0xff
+
+loc_fffa899e: ; not directly referenced
+imul eax, dword [ebp - 0x88], 0x1347
+mov ebx, dword [ebp - 0x90]
+mov dword [ebp - 0xc0], eax
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffa8d25 ; jne 0xfffa8d25
+xor edx, edx
+mov dword [ebp - 0xd0], eax
+
+loc_fffa89ca: ; not directly referenced
+imul eax, edx, 0xfb
+mov esi, dword [ebp - 0xd0]
+lea eax, [eax + esi + 0x1150]
+add eax, dword [ebp - 0x8c]
+cmp dword [eax + 9], 2
+lea ebx, [eax + 9]
+jne loc_fffa8d1b ; jne 0xfffa8d1b
+mov ecx, dword [ebp - 0xc8]
+mov eax, dword [edi + ecx*4 + 0x172c]
+cmp eax, 0x546
+je short loc_fffa8a25 ; je 0xfffa8a25
+cmp eax, 0x5dc
+je short loc_fffa8a2c ; je 0xfffa8a2c
+cmp eax, 0x4b0
+setne cl
+movzx eax, cl
+movzx ecx, cl
+lea eax, [eax + eax*2 + 1]
+mov dword [ebp - 0x94], ecx
+jmp short loc_fffa8a3b ; jmp 0xfffa8a3b
+
+loc_fffa8a25: ; not directly referenced
+mov eax, 2
+jmp short loc_fffa8a31 ; jmp 0xfffa8a31
+
+loc_fffa8a2c: ; not directly referenced
+mov eax, 3
+
+loc_fffa8a31: ; not directly referenced
+mov dword [ebp - 0x94], 0
+
+loc_fffa8a3b: ; not directly referenced
+movzx esi, byte [ebx + 0xbc]
+and eax, 0xfffffe0f
+movzx ecx, byte [ebx + 0xc9]
+and esi, 1
+shl esi, 4
+and ecx, 0xf
+shl ecx, 5
+or eax, esi
+movzx esi, byte [ebx + 0xe2]
+or eax, ecx
+and esi, 7
+and ah, 0x81
+movzx ecx, byte [ebx + 0xdd]
+shl esi, 9
+and ecx, 7
+shl ecx, 0xc
+or eax, esi
+or eax, ecx
+mov esi, dword [ebp - 0xc0]
+mov ecx, dword [ebp - 0x8c]
+and eax, 0xfffe7fff
+movzx esi, byte [ecx + esi + 0xfd]
+mov ecx, dword [edi + 0x16c6]
+and esi, 3
+shl esi, 0xf
+or eax, esi
+cmp ecx, 0x640
+je short loc_fffa8aec ; je 0xfffa8aec
+ja short loc_fffa8ac2 ; ja 0xfffa8ac2
+cmp ecx, 0x42b
+je short loc_fffa8ad4 ; je 0xfffa8ad4
+cmp ecx, 0x535
+jne short loc_fffa8b10 ; jne 0xfffa8b10
+jmp short loc_fffa8ae0 ; jmp 0xfffa8ae0
+
+loc_fffa8ac2: ; not directly referenced
+cmp ecx, 0x74b
+je short loc_fffa8af8 ; je 0xfffa8af8
+cmp ecx, 0x855
+jne short loc_fffa8b10 ; jne 0xfffa8b10
+jmp short loc_fffa8b04 ; jmp 0xfffa8b04
+
+loc_fffa8ad4: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0x60000
+jmp short loc_fffa8b1a ; jmp 0xfffa8b1a
+
+loc_fffa8ae0: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0xa0000
+jmp short loc_fffa8b1a ; jmp 0xfffa8b1a
+
+loc_fffa8aec: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0xe0000
+jmp short loc_fffa8b1a ; jmp 0xfffa8b1a
+
+loc_fffa8af8: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0x120000
+jmp short loc_fffa8b1a ; jmp 0xfffa8b1a
+
+loc_fffa8b04: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0x160000
+jmp short loc_fffa8b1a ; jmp 0xfffa8b1a
+
+loc_fffa8b10: ; not directly referenced
+mov dword [ebp - 0x94], 1
+
+loc_fffa8b1a: ; not directly referenced
+movzx ecx, byte [ebx + 0xe3]
+and eax, 0xff1fffff
+and ecx, 7
+mov dword [ebp - 0xd4], 0
+shl ecx, 0x15
+mov dword [ebp - 0xb4], 0
+or eax, ecx
+mov ecx, dword [edi + 0x1749]
+mov dword [ebp - 0xb8], ecx
+mov ecx, eax
+and ecx, 0xfffe7e0f
+cmp dword [ebp - 0xb8], 2
+cmove eax, ecx
+
+loc_fffa8b60: ; not directly referenced
+mov bl, byte [ebp - 0xd4]
+test bl, bl
+mov byte [ebp - 0xb9], bl
+jne short loc_fffa8b7f ; jne 0xfffa8b7f
+cmp dword [ebp - 0x94], 0
+jne loc_fffa8d08 ; jne 0xfffa8d08
+jmp short loc_fffa8b91 ; jmp 0xfffa8b91
+
+loc_fffa8b7f: ; not directly referenced
+cmp dword [ebp - 0xb4], 0
+jne loc_fffa8d08 ; jne 0xfffa8d08
+and eax, 0xff0001ff
+
+loc_fffa8b91: ; not directly referenced
+mov esi, dword [ebp - 0xd4]
+xor ebx, ebx
+mov si, word [ebp + esi*2 - 0x5c]
+movzx ecx, si
+mov word [ebp - 0xbc], si
+dec ecx
+mov dword [ebp - 0xcc], ecx
+jmp near loc_fffa8cfb ; jmp 0xfffa8cfb
+
+loc_fffa8bb4: ; not directly referenced
+cmp dword [ebp - 0xb8], 2
+jne loc_fffa8c5c ; jne 0xfffa8c5c
+mov esi, dword [ebp - 0xd4]
+imul ecx, ebx, 0xc
+add ecx, dword [ebp + esi*4 - 0x48]
+cmp eax, dword [ecx]
+jne short loc_fffa8c2e ; jne 0xfffa8c2e
+
+loc_fffa8bd2: ; not directly referenced
+mov esi, dword [ebp - 0x98]
+mov bl, byte [ecx + 5]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xa0]
+mov bl, byte [ecx + 6]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xa4]
+mov bl, byte [ecx + 7]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xa8]
+mov bl, byte [ecx + 8]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xac]
+mov bl, byte [ecx + 9]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xb0]
+mov bl, byte [ecx + 4]
+mov byte [ebp - 0xb4], bl
+mov byte [esi + edx], bl
+mov ebx, dword [ebp - 0x8c]
+cmp byte [ebx + 7], 1
+jne short loc_fffa8c4e ; jne 0xfffa8c4e
+jmp short loc_fffa8c49 ; jmp 0xfffa8c49
+
+loc_fffa8c2e: ; not directly referenced
+cmp byte [ebp - 0xb9], 1
+jne loc_fffa8cfa ; jne 0xfffa8cfa
+cmp ebx, dword [ebp - 0xcc]
+jne loc_fffa8cfa ; jne 0xfffa8cfa
+jmp short loc_fffa8bd2 ; jmp 0xfffa8bd2
+
+loc_fffa8c49: ; not directly referenced
+mov cl, byte [ecx + 0xa]
+jmp short loc_fffa8c51 ; jmp 0xfffa8c51
+
+loc_fffa8c4e: ; not directly referenced
+mov cl, byte [ecx + 0xb]
+
+loc_fffa8c51: ; not directly referenced
+mov esi, dword [ebp - 0x84]
+mov byte [esi + edx], cl
+jmp short loc_fffa8cc7 ; jmp 0xfffa8cc7
+
+loc_fffa8c5c: ; not directly referenced
+mov esi, dword [ebp - 0xd4]
+imul ecx, ebx, 0xb
+add ecx, dword [ebp + esi*4 - 0x50]
+cmp eax, dword [ecx]
+jne short loc_fffa8ce5 ; jne 0xfffa8ce5
+
+loc_fffa8c6d: ; not directly referenced
+mov esi, dword [ebp - 0x98]
+mov bl, byte [ecx + 5]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xa0]
+mov bl, byte [ecx + 6]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xa4]
+mov bl, byte [ecx + 7]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xa8]
+mov bl, byte [ecx + 8]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xac]
+mov bl, byte [ecx + 9]
+mov byte [esi + edx], bl
+mov esi, dword [ebp - 0xb0]
+mov bl, byte [ecx + 4]
+mov byte [ebp - 0xb4], bl
+mov byte [esi + edx], bl
+mov ebx, dword [ebp - 0x84]
+mov cl, byte [ecx + 0xa]
+mov byte [ebx + edx], cl
+
+loc_fffa8cc7: ; not directly referenced
+mov cl, byte [ebp - 0xb4]
+mov bl, byte [ebp - 0x74]
+cmp byte [ebp - 0x74], cl
+mov dword [ebp - 0xb4], 1
+cmovbe ecx, ebx
+mov byte [ebp - 0x74], cl
+jmp short loc_fffa8d08 ; jmp 0xfffa8d08
+
+loc_fffa8ce5: ; not directly referenced
+cmp byte [ebp - 0xb9], 1
+jne short loc_fffa8cfa ; jne 0xfffa8cfa
+cmp ebx, dword [ebp - 0xcc]
+je loc_fffa8c6d ; je 0xfffa8c6d
+
+loc_fffa8cfa: ; not directly referenced
+inc ebx
+
+loc_fffa8cfb: ; not directly referenced
+cmp word [ebp - 0xbc], bx
+ja loc_fffa8bb4 ; ja 0xfffa8bb4
+
+loc_fffa8d08: ; not directly referenced
+inc dword [ebp - 0xd4]
+cmp dword [ebp - 0xd4], 2
+jne loc_fffa8b60 ; jne 0xfffa8b60
+
+loc_fffa8d1b: ; not directly referenced
+inc edx
+cmp edx, 2
+jne loc_fffa89ca ; jne 0xfffa89ca
+
+loc_fffa8d25: ; not directly referenced
+inc dword [ebp - 0x88]
+add dword [ebp - 0x84], 2
+add dword [ebp - 0x98], 4
+add dword [ebp - 0xa0], 4
+add dword [ebp - 0xa4], 4
+add dword [ebp - 0xa8], 4
+add dword [ebp - 0xac], 4
+add dword [ebp - 0xb0], 2
+cmp dword [ebp - 0x88], 2
+jne loc_fffa899e ; jne 0xfffa899e
+xor ebx, ebx
+xor edx, edx
+
+loc_fffa8d6d: ; not directly referenced
+imul esi, edx, 0x1347
+mov eax, dword [ebp - 0x90]
+mov dword [ebp - 0x8c], esi
+cmp dword [eax + esi + 0x12be], 2
+jne loc_fffa8f57 ; jne 0xfffa8f57
+xor eax, eax
+mov dword [ebp - 0x88], esi
+
+loc_fffa8d95: ; not directly referenced
+imul ecx, eax, 0xfb
+mov esi, dword [ebp - 0x88]
+lea ecx, [ecx + esi + 0x2400]
+cmp dword [edi + ecx + 0x16cd], 2
+jne loc_fffa8e97 ; jne 0xfffa8e97
+mov ecx, dword [ebp - 0x9c]
+mov cl, byte [ecx + eax]
+mov byte [ebp - 0xba], cl
+sub cl, byte [ebp - 0x74]
+mov byte [ebp - 0x84], cl
+je loc_fffa8e97 ; je 0xfffa8e97
+mov esi, dword [ebp - 0x6c]
+movzx ecx, byte [esi + eax]
+inc ecx
+mov dword [ebp - 0x94], ecx
+mov cl, byte [ebp - 0x84]
+sar dword [ebp - 0x94], cl
+mov cl, byte [ebp - 0x94]
+mov byte [esi + eax], cl
+mov ecx, dword [ebp - 0x80]
+movzx esi, byte [ecx + eax]
+lea ecx, [esi + 1]
+mov esi, dword [ebp - 0x80]
+mov dword [ebp - 0x94], ecx
+mov cl, byte [ebp - 0x84]
+sar dword [ebp - 0x94], cl
+mov cl, byte [ebp - 0x94]
+mov byte [esi + eax], cl
+mov ecx, dword [ebp - 0x78]
+movzx esi, byte [ecx + eax]
+lea ecx, [esi + 1]
+mov esi, dword [ebp - 0x78]
+mov dword [ebp - 0x94], ecx
+mov cl, byte [ebp - 0x84]
+sar dword [ebp - 0x94], cl
+mov cl, byte [ebp - 0x94]
+mov byte [esi + eax], cl
+mov ecx, dword [ebp - 0x70]
+movzx esi, byte [ecx + eax]
+lea ecx, [esi + 1]
+mov esi, dword [ebp - 0x70]
+mov dword [ebp - 0x94], ecx
+mov cl, byte [ebp - 0x84]
+sar dword [ebp - 0x94], cl
+mov cl, byte [ebp - 0x94]
+mov byte [esi + eax], cl
+mov ecx, dword [ebp - 0x7c]
+movzx esi, byte [ecx + eax]
+lea ecx, [esi + 1]
+mov esi, dword [ebp - 0x7c]
+mov dword [ebp - 0x94], ecx
+mov cl, byte [ebp - 0x84]
+sar dword [ebp - 0x94], cl
+mov cl, byte [ebp - 0x94]
+mov byte [esi + eax], cl
+
+loc_fffa8e97: ; not directly referenced
+inc eax
+cmp eax, 2
+jne loc_fffa8d95 ; jne 0xfffa8d95
+mov eax, dword [ebp - 0x8c]
+cmp dword [edi + eax + 0x2a71], 1
+ja short loc_fffa8ec0 ; ja 0xfffa8ec0
+mov al, byte [ebp + edx*2 - 0x54]
+mov cl, byte [ebp + edx*2 - 0x53]
+cmp cl, al
+cmovae eax, ecx
+jmp short loc_fffa8ee8 ; jmp 0xfffa8ee8
+
+loc_fffa8ec0: ; not directly referenced
+movzx ecx, byte [ebp + edx*2 - 0x54]
+movzx eax, byte [ebp + edx*2 - 0x53]
+cmp cl, al
+je short loc_fffa8ef3 ; je 0xfffa8ef3
+lea eax, [ecx + eax + 1]
+sar eax, 1
+cmp al, 0xf7
+ja short loc_fffa8eee ; ja 0xfffa8eee
+test al, 7
+mov byte [ebp + edx*2 - 0x54], al
+je short loc_fffa8ef3 ; je 0xfffa8ef3
+and eax, 0xf8
+add eax, 8
+
+loc_fffa8ee8: ; not directly referenced
+mov byte [ebp + edx*2 - 0x54], al
+jmp short loc_fffa8ef3 ; jmp 0xfffa8ef3
+
+loc_fffa8eee: ; not directly referenced
+mov byte [ebp + edx*2 - 0x54], 0xf8
+
+loc_fffa8ef3: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+mov esi, dword [ebp - 0x6c]
+lea eax, [ebx + eax + 0x42f8]
+mov ecx, dword [esi]
+mov dword [eax], ecx
+mov eax, dword [ebp - 0x80]
+mov esi, dword [ebp - 0x78]
+mov ecx, dword [eax]
+mov eax, dword [edi + 0x103f]
+lea eax, [ebx + eax + 0x42fc]
+mov dword [eax], ecx
+mov eax, dword [edi + 0x103f]
+mov ecx, dword [esi]
+mov esi, dword [ebp - 0x7c]
+lea eax, [ebx + eax + 0x42f4]
+mov dword [eax], ecx
+mov eax, dword [ebp - 0x70]
+mov ecx, dword [eax]
+mov eax, dword [edi + 0x103f]
+lea eax, [ebx + eax + 0x42f0]
+mov dword [eax], ecx
+mov eax, dword [edi + 0x103f]
+mov ecx, dword [esi]
+lea eax, [ebx + eax + 0x42ec]
+mov dword [eax], ecx
+
+loc_fffa8f57: ; not directly referenced
+inc edx
+add dword [ebp - 0x6c], 4
+add ebx, 0x400
+add dword [ebp - 0x80], 4
+add dword [ebp - 0x78], 4
+add dword [ebp - 0x70], 4
+add dword [ebp - 0x7c], 4
+add dword [ebp - 0x9c], 2
+cmp edx, 2
+jne loc_fffa8d6d ; jne 0xfffa8d6d
+mov al, byte [ebp - 0x52]
+mov ebx, dword [ebp - 0xc4]
+movzx edx, byte [ebp - 0x74]
+mov bl, byte [ebp - 0x54]
+mov bh, al
+mov eax, dword [edi + 0x103f]
+mov dword [eax + 0x5888], ebx
+mov eax, dword [edi + 0x103f]
+mov dword [eax + 0x5884], edx
+
+loc_fffa8fac: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa8fb6: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov edi, dword [ebp + 8]
+cmp dword [edi + 0x1749], 2
+jne short loc_fffa9029 ; jne 0xfffa9029
+jmp short loc_fffa901a ; jmp 0xfffa901a
+
+loc_fffa8fce: ; not directly referenced
+mov edx, dword [ebp - 0x2c]
+mov cl, bl
+mov eax, 1
+shl eax, cl
+test byte [edi + edx + 0x3acb], al
+je short loc_fffa900c ; je 0xfffa900c
+push eax
+lea ecx, [ebp - 0x1c]
+mov edx, esi
+push eax
+mov eax, edi
+push ecx
+mov ecx, ebx
+push 5
+call fcn_fffb8e54 ; call 0xfffb8e54
+pop eax
+pop edx
+lea eax, [ebp - 0x1c]
+mov ecx, ebx
+push eax
+mov edx, esi
+mov eax, edi
+push 8
+call fcn_fffb8e54 ; call 0xfffb8e54
+add esp, 0x10
+
+loc_fffa900c: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffa8fce ; jne 0xfffa8fce
+inc esi
+cmp esi, 2
+jne short loc_fffa901c ; jne 0xfffa901c
+jmp short loc_fffa9029 ; jmp 0xfffa9029
+
+loc_fffa901a: ; not directly referenced
+xor esi, esi
+
+loc_fffa901c: ; not directly referenced
+imul edx, esi, 0x1347
+xor ebx, ebx
+mov dword [ebp - 0x2c], edx
+jmp short loc_fffa8fce ; jmp 0xfffa8fce
+
+loc_fffa9029: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+mov eax, dword [edx + 0x5030]
+or al, 0x89
+mov dword [edx + 0x5030], eax
+mov eax, dword [edi + 0x103f]
+mov dword [eax + 0x50fc], 0x8f
+cmp byte [edi + 0x102f], 0
+je loc_fffa913e ; je 0xfffa913e
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0xa0]
+or eax, 1
+mov dword [edx + 0xa0], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0xbc]
+or eax, 1
+mov dword [edx + 0xbc], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0xa8]
+or eax, 1
+mov dword [edx + 0xa8], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0x90]
+or eax, 1
+mov dword [edx + 0x90], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0x98]
+or eax, 1
+mov dword [edx + 0x98], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0x5c]
+or eax, 1
+mov dword [edx + 0x5c], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0xb0]
+or eax, 1
+mov dword [edx + 0xb0], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0xb4]
+or eax, 1
+mov dword [edx + 0xb4], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0x78]
+or ah, 4
+mov dword [edx + 0x78], eax
+mov edx, dword [edi + 0x103b]
+mov eax, dword [edx + 0x50]
+or eax, 1
+mov dword [edx + 0x50], eax
+mov ecx, dword [edi + 0x103f]
+movzx edx, byte [edi + 0x107c]
+and edx, 1
+shl edx, 5
+mov eax, dword [ecx + 0x5880]
+and eax, 0xffffffdf
+or eax, edx
+mov dword [ecx + 0x5880], eax
+
+loc_fffa913e: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+add edx, 0x5030
+
+loc_fffa914a: ; not directly referenced
+mov eax, dword [edx]
+test al, 0x20
+je short loc_fffa914a ; je 0xfffa914a
+xor eax, eax
+mov edx, 0x140000a0
+mov ecx, eax
+and ecx, 0xe00fffff
+or ecx, 0x5a00000
+and ecx, 0xfff00fff
+or ecx, 0x24000
+and ecx, 0xfffff00f
+mov eax, ecx
+push ecx
+or eax, 0x4f
+push ecx
+push edx
+mov edx, 0x5d10
+push eax
+mov eax, edi
+call fcn_fffb210b ; call 0xfffb210b
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa9196:
+push ebp
+test eax, eax
+mov ebp, esp
+je short loc_fffa91ad ; je 0xfffa91ad
+pop ebp
+mov ecx, 4
+mov edx, ref_fffcb7f8 ; mov edx, 0xfffcb7f8
+jmp near fcn_fffa115e ; jmp 0xfffa115e
+
+loc_fffa91ad:
+pop ebp
+ret
+
+fcn_fffa91af:
+push ebp
+mov ecx, 0xc
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x48]
+mov esi, ref_fffc9f54 ; mov esi, 0xfffc9f54
+push ebx
+lea esp, [esp - 0x8c]
+mov dword [ebp - 0x84], edx
+add edx, 0xdf
+mov dword [ebp - 0x80], eax
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov dword [ebp - 0x70], 1
+mov cl, byte [ebp - 0x80]
+mov dword [ebp - 0x88], edx
+mov dword [ebp - 0x6c], 0
+shl dword [ebp - 0x70], cl
+mov byte [ebp - 0x5e], 0
+mov byte [ebp - 0x71], 0
+
+loc_fffa91fc:
+imul eax, dword [ebp - 0x6c], 0x2fa
+add eax, dword [ebp - 0x88]
+cmp dword [eax + 5], 2
+lea esi, [eax + 5]
+mov dword [ebp - 0x8c], esi
+jne loc_fffa945f ; jne 0xfffa945f
+mov dword [ebp - 0x68], 0
+
+loc_fffa9223:
+imul eax, dword [ebp - 0x68], 0x14f
+add eax, dword [ebp - 0x8c]
+cmp dword [eax + 8], 1
+lea edi, [eax + 8]
+ja loc_fffa9452 ; ja 0xfffa9452
+cmp byte [edi + 0x14e], 0
+je loc_fffa944f ; je 0xfffa944f
+add eax, 0x2c
+mov byte [ebp - 0x5d], 0
+mov dword [ebp - 0x5c], eax
+xor eax, eax
+jmp near loc_fffa9437 ; jmp 0xfffa9437
+
+loc_fffa925b:
+movzx edx, byte [ebp - 0x5d]
+lea eax, [ebp - 0x48]
+imul edx, edx, 6
+add edx, eax
+movzx eax, byte [edx + 4]
+test dword [ebp - 0x70], eax
+je loc_fffa942b ; je 0xfffa942b
+mov esi, dword [ebp - 0x84]
+xor eax, eax
+movzx ebx, byte [edx + 5]
+mov ecx, dword [esi + 0x49]
+bt ebx, ecx
+jae loc_fffa9434 ; jae 0xfffa9434
+mov si, word [edx + 2]
+mov bx, word [edx]
+mov word [ebp - 0x76], si
+mov eax, dword [ebp - 0x5c]
+movzx esi, bx
+add eax, esi
+mov dword [ebp - 0x64], esi
+setne cl
+cmp bx, 0xff
+movzx edx, byte [edi + 0x14e]
+mov dword [ebp - 0x7c], eax
+setbe al
+test cl, al
+je loc_fffa942f ; je 0xfffa942f
+mov si, word [ebp - 0x76]
+inc esi
+sub esi, ebx
+movzx eax, si
+add eax, dword [ebp - 0x64]
+cmp eax, 0xff
+mov word [ebp - 0x60], si
+jg loc_fffa942f ; jg 0xfffa942f
+mov esi, dword [ebp - 0x7c]
+mov eax, 1
+mov dword [ebp - 0x90], edx
+jmp near loc_fffa9386 ; jmp 0xfffa9386
+
+loc_fffa92ee:
+mov eax, ebx
+mov dl, byte [ebp - 0x5e]
+sub eax, ecx
+add ax, word [ebp - 0x92]
+movzx ecx, byte [ebp - 0x5e]
+mov word [ebp - 0x74], ax
+shr ax, 8
+cmp ax, cx
+cmovne edx, eax
+setne al
+movzx eax, al
+movzx ecx, byte [ebp - 0x74]
+dec eax
+mov byte [ebp - 0x5e], dl
+mov word [ebp - 0x74], cx
+jne short loc_fffa9348 ; jne 0xfffa9348
+cmp dl, 1
+lea eax, [ebp - 0x4c]
+lea ecx, [ebp - 0x4d]
+mov byte [ebp - 0x4d], 0
+sbb edx, edx
+sub esp, 0xc
+push eax
+and edx, 0xfffffffe
+mov eax, 5
+add edx, 0x6e
+call fcn_fffc1ae2 ; call 0xfffc1ae2
+add esp, 0x10
+
+loc_fffa9348:
+sub esp, 0xc
+lea eax, [ebp - 0x4c]
+push eax
+movzx edx, word [ebp - 0x74]
+lea ecx, [ebp - 0x4d]
+shl edx, 8
+mov eax, 4
+or edx, dword [ebp - 0x90]
+call fcn_fffc1ae2 ; call 0xfffc1ae2
+mov al, byte [ebp - 0x4d]
+add esp, 0x10
+cmp dword [ebp - 0x4c], 0
+mov byte [esi], al
+jne loc_fffa9477 ; jne 0xfffa9477
+xor eax, eax
+
+loc_fffa937d:
+inc esi
+test eax, eax
+jne loc_fffa942f ; jne 0xfffa942f
+
+loc_fffa9386:
+mov ecx, dword [ebp - 0x7c]
+mov edx, dword [ebp - 0x60]
+add edx, ecx
+mov word [ebp - 0x92], si
+mov word [ebp - 0x74], dx
+cmp word [ebp - 0x74], si
+jne loc_fffa92ee ; jne 0xfffa92ee
+test eax, eax
+je short loc_fffa93cc ; je 0xfffa93cc
+jmp near loc_fffa942f ; jmp 0xfffa942f
+
+loc_fffa93ac:
+mov ecx, ebx
+mov edx, ebx
+and ecx, 7
+mov esi, 1
+shr dx, 3
+inc ebx
+shl esi, cl
+movzx edx, dx
+mov dword [ebp - 0x7c], esi
+mov cl, byte [ebp - 0x7c]
+or byte [edi + edx + 4], cl
+
+loc_fffa93cc:
+cmp bx, word [ebp - 0x76]
+jbe short loc_fffa93ac ; jbe 0xfffa93ac
+cmp dword [ebp - 0x80], 0
+jne short loc_fffa9434 ; jne 0xfffa9434
+mov esi, dword [ebp - 0x5c]
+mov dl, byte [esi + 2]
+cmp dl, 0xb
+je short loc_fffa93e8 ; je 0xfffa93e8
+cmp dl, 0xf1
+jne short loc_fffa944f ; jne 0xfffa944f
+
+loc_fffa93e8:
+cmp dword [ebp - 0x64], 0xb0
+jne short loc_fffa9434 ; jne 0xfffa9434
+mov esi, dword [ebp - 0x5c]
+cmp word [esi + 0xb0], 0x4a0c
+je short loc_fffa9418 ; je 0xfffa9418
+
+loc_fffa93ff:
+mov word [edi + 0xd4], 0
+mov byte [edi + 0xd6], 0
+mov byte [edi + 0xd7], 0
+jmp short loc_fffa944f ; jmp 0xfffa944f
+
+loc_fffa9418:
+mov esi, dword [ebp - 0x5c]
+mov dl, byte [esi + 0xb3]
+and edx, 0xfffffffe
+cmp dl, 0x12
+jne short loc_fffa93ff ; jne 0xfffa93ff
+jmp short loc_fffa9434 ; jmp 0xfffa9434
+
+loc_fffa942b:
+xor eax, eax
+jmp short loc_fffa9434 ; jmp 0xfffa9434
+
+loc_fffa942f:
+mov eax, 1
+
+loc_fffa9434:
+inc byte [ebp - 0x5d]
+
+loc_fffa9437:
+cmp byte [ebp - 0x5d], 7
+setbe cl
+test eax, eax
+sete dl
+test cl, dl
+jne loc_fffa925b ; jne 0xfffa925b
+test eax, eax
+jne short loc_fffa9452 ; jne 0xfffa9452
+
+loc_fffa944f:
+inc byte [ebp - 0x71]
+
+loc_fffa9452:
+inc dword [ebp - 0x68]
+cmp dword [ebp - 0x68], 2
+jne loc_fffa9223 ; jne 0xfffa9223
+
+loc_fffa945f:
+inc dword [ebp - 0x6c]
+cmp dword [ebp - 0x6c], 2
+jne loc_fffa91fc ; jne 0xfffa91fc
+cmp byte [ebp - 0x71], 1
+sbb eax, eax
+and eax, 0x16
+jmp short loc_fffa9484 ; jmp 0xfffa9484
+
+loc_fffa9477:
+mov byte [esi], 0
+mov eax, 1
+jmp near loc_fffa937d ; jmp 0xfffa937d
+
+loc_fffa9484:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa948c: ; not directly referenced
+push ebp
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+push ebx
+push ecx
+mov eax, dword [ebp + 8]
+add eax, 0x14
+
+loc_fffa949b: ; not directly referenced
+lea ecx, [edx*4 + ref_fffcb80c] ; lea ecx, [edx*4 - 0x347f4]
+mov dword [ebp - 0x10], ecx
+movzx ecx, word [edx*4 + ref_fffcb80c] ; movzx ecx, word [edx*4 - 0x347f4]
+sub ecx, eax
+jmp short loc_fffa94c1 ; jmp 0xfffa94c1
+
+loc_fffa94b1: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov esi, dword [eax]
+add eax, 4
+add ebx, dword [edi + 0x103f]
+mov dword [ebx], esi
+
+loc_fffa94c1: ; not directly referenced
+mov edi, dword [ebp - 0x10]
+lea ebx, [eax + ecx]
+movzx esi, word [edi + 2]
+cmp ebx, esi
+jbe short loc_fffa94b1 ; jbe 0xfffa94b1
+inc edx
+cmp edx, 0x5d
+jne short loc_fffa949b ; jne 0xfffa949b
+pop edx
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa94dd: ; not directly referenced
+push ebp
+xor eax, eax
+mov ecx, 0xb
+mov ebp, esp
+mov edx, 7
+push edi
+push esi
+lea edi, [ebp - 0x1f4]
+push ebx
+lea esp, [esp - 0x27c]
+mov esi, dword [ebp + 8]
+rep stosd ; rep stosd dword es:[edi], eax
+lea ebx, [esi + 0x16be]
+mov dword [ebp - 0x264], ebx
+mov bl, byte [esi + 0x176a]
+mov cl, 1
+mov byte [ebp - 0x240], bl
+lea eax, [ebp - 0x217]
+mov ebx, dword [esi + 0x1021]
+mov word [ebp - 0x1e6], 0x3ff
+mov word [ebp - 0x1ca], 1
+mov word [ebp - 0x1ff], 0x20
+mov dword [ebp - 0x1fd], 0
+mov dword [ebp - 0x1f9], 9
+mov byte [ebp - 0x1f5], 0
+mov dword [ebp - 0x248], ebx
+movzx edi, byte [esi + 0x176b]
+call fcn_fffa119f ; call 0xfffa119f
+mov eax, dword [esi + 0x1005]
+cmp eax, 0x40650
+je short loc_fffa95ba ; je 0xfffa95ba
+cmp eax, 0x40660
+jne short loc_fffa9594 ; jne 0xfffa9594
+mov dword [ebp - 0x250], 0x14
+mov ebx, 0x19
+jmp short loc_fffa95c9 ; jmp 0xfffa95c9
+
+loc_fffa9594: ; not directly referenced
+cmp dword [esi + 0x1001], 2
+sbb ebx, ebx
+and ebx, 4
+add ebx, 0x10
+cmp dword [esi + 0x1001], 2
+mov dword [ebp - 0x250], ebx
+sbb ebx, ebx
+and ebx, 4
+add ebx, 0x15
+jmp short loc_fffa95c9 ; jmp 0xfffa95c9
+
+loc_fffa95ba: ; not directly referenced
+mov dword [ebp - 0x250], 0x12
+mov ebx, 0x17
+
+loc_fffa95c9: ; not directly referenced
+push 8
+mov eax, edi
+and ebx, 0x3f
+push 0
+movzx edx, al
+lea eax, [ebp - 0x1ff]
+push 0
+shl ebx, 0x10
+mov ecx, 2
+push eax
+lea eax, [ebp - 0x1f4]
+push 0
+push eax
+mov eax, esi
+push 7
+push 2
+call fcn_fffb2650 ; call 0xfffb2650
+add esp, 0x20
+mov dword [ebp - 0x23c], 0
+mov dword [ebp - 0x24c], ebx
+
+loc_fffa960d: ; not directly referenced
+imul eax, dword [ebp - 0x23c], 0x1347
+mov ebx, dword [ebp - 0x264]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffa96c7 ; jne 0xfffa96c7
+mov edi, dword [ebp - 0x23c]
+lea ebx, [esi + eax + 0x297c]
+shl edi, 8
+xor eax, eax
+mov dword [ebp - 0x238], edi
+add edi, 0x64
+mov dword [ebp - 0x244], edi
+jmp short loc_fffa9669 ; jmp 0xfffa9669
+
+loc_fffa964e: ; not directly referenced
+movzx edi, al
+inc eax
+mov edx, dword [ebx + edi*4 + 0x169]
+shl edi, 9
+add edi, dword [ebp - 0x244]
+add ecx, edi
+or edx, 0x40
+mov dword [ecx], edx
+
+loc_fffa9669: ; not directly referenced
+cmp al, byte [esi + 0x1755]
+mov ecx, dword [esi + 0x103f]
+jb short loc_fffa964e ; jb 0xfffa964e
+mov eax, dword [ebp - 0x238]
+mov edi, dword [ebx + 0x141]
+add eax, 0x3074
+cmp dword [esi + 0x1749], 2
+jne short loc_fffa969b ; jne 0xfffa969b
+add ecx, eax
+and edi, 0xefffffff
+mov dword [ecx], edi
+
+loc_fffa969b: ; not directly referenced
+add eax, dword [esi + 0x103f]
+or edi, 0x1000004
+mov edx, dword [ebp - 0x23c]
+shl edx, 0xa
+mov dword [eax], edi
+mov eax, dword [esi + 0x103f]
+lea eax, [edx + eax + 0x4028]
+mov edx, dword [ebp - 0x24c]
+mov dword [eax], edx
+
+loc_fffa96c7: ; not directly referenced
+inc dword [ebp - 0x23c]
+cmp dword [ebp - 0x23c], 2
+jne loc_fffa960d ; jne 0xfffa960d
+imul edi, dword [ebp - 0x248], 0x2a
+mov dword [ebp - 0x23c], 0
+movzx ebx, byte [ebp - 0x240]
+mov dword [ebp - 0x270], edi
+mov dword [ebp - 0x27c], ebx
+
+loc_fffa96fe: ; not directly referenced
+mov ebx, dword [ebp - 0x27c]
+mov ecx, dword [ebp - 0x23c]
+mov al, byte [ebp - 0x23c]
+bt ebx, ecx
+mov byte [ebp - 0x272], al
+jb short loc_fffa974a ; jb 0xfffa974a
+
+loc_fffa971b: ; not directly referenced
+inc dword [ebp - 0x23c]
+cmp dword [ebp - 0x23c], 4
+jne short loc_fffa96fe ; jne 0xfffa96fe
+lea ebx, [esi + 0x2974]
+mov eax, 0x3074
+mov dword [ebp - 0x240], 0
+mov dword [ebp - 0x24c], ebx
+jmp near loc_fffaa18f ; jmp 0xfffaa18f
+
+loc_fffa974a: ; not directly referenced
+mov cl, byte [ebp - 0x23c]
+mov eax, 1
+xor edi, edi
+mov byte [ebp - 0x238], 0
+shl eax, cl
+movzx ebx, al
+mov byte [ebp - 0x24c], al
+mov dword [ebp - 0x248], ebx
+lea ebx, [esi + 0x2974]
+mov dword [ebp - 0x254], ebx
+
+loc_fffa977b: ; not directly referenced
+mov ecx, dword [ebp - 0x248]
+mov edx, edi
+mov eax, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0x238], al
+mov bl, byte [ebp - 0x24c]
+imul eax, edi, 0x1347
+test byte [esi + eax + 0x3acb], bl
+je loc_fffa9885 ; je 0xfffa9885
+mov ebx, dword [ebp - 0x254]
+mov dl, 0
+lea ecx, [ebx + eax + 8]
+mov eax, dword [ebp - 0x23c]
+mov byte [ecx + eax + 0x10cd], 0
+mov al, byte [esi + 0x16d6]
+cmp al, 1
+cmovbe eax, edx
+cmp dword [esi + 0x1749], 2
+jne short loc_fffa982b ; jne 0xfffa982b
+movzx edx, word [esi + 0x1766]
+mov ebx, dword [ebp - 0x270]
+add edx, edx
+cmp al, 5
+mov dword [ebp - 0x240], edx
+movzx edx, al
+mov eax, dword [ebp - 0x240]
+movzx ebx, word [ecx + ebx + 0xe]
+mov dword [ebp - 0x244], ebx
+mov ebx, 4
+cmovae ebx, edx
+add eax, 0x157b
+xor edx, edx
+div dword [ebp - 0x240]
+mov edx, dword [ebp - 0x244]
+add eax, dword [ebp - 0x250]
+lea eax, [eax + edx*2 + 1]
+add ebx, eax
+jmp short loc_fffa9859 ; jmp 0xfffa9859
+
+loc_fffa982b: ; not directly referenced
+mov ebx, dword [ebp - 0x270]
+cmp al, 5
+mov edx, 4
+movzx ebx, word [ecx + ebx + 0xe]
+mov dword [ebp - 0x244], ebx
+movzx ebx, al
+mov eax, dword [ebp - 0x244]
+cmovae edx, ebx
+add edx, dword [ebp - 0x250]
+lea ebx, [edx + eax*2 + 5]
+
+loc_fffa9859: ; not directly referenced
+cmp ebx, 0x3f
+mov eax, 0x3f
+mov edx, edi
+cmovbe eax, ebx
+mov ebx, dword [ebp - 0x23c]
+shl edx, 0xa
+lea edx, [ebx + edx + 0x4024]
+add edx, dword [esi + 0x103f]
+mov byte [edx], al
+mov byte [ecx + ebx + 0x10d1], al
+
+loc_fffa9885: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffa977b ; jne 0xfffa977b
+movzx ebx, byte [ebp - 0x238]
+mov di, 0x118
+mov dword [ebp - 0x268], ebx
+jmp near loc_fffa9bae ; jmp 0xfffa9bae
+
+loc_fffa98a5: ; not directly referenced
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x24c]
+test byte [esi + eax + 0x3acb], dl
+jne short loc_fffa98e8 ; jne 0xfffa98e8
+
+loc_fffa98ba: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffa98a5 ; jne 0xfffa98a5
+jmp short loc_fffa98ff ; jmp 0xfffa98ff
+
+loc_fffa98c2: ; not directly referenced
+push eax
+movzx eax, byte [ebp - 0x238]
+mov ecx, dword [ebp - 0x23c]
+push edi
+mov edx, ebx
+push 0
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+inc byte [ebp - 0x238]
+add esp, 0x10
+jmp short loc_fffa98ef ; jmp 0xfffa98ef
+
+loc_fffa98e8: ; not directly referenced
+mov byte [ebp - 0x238], 0
+
+loc_fffa98ef: ; not directly referenced
+mov cl, byte [ebp - 0x238]
+cmp cl, byte [esi + 0x1755]
+jb short loc_fffa98c2 ; jb 0xfffa98c2
+jmp short loc_fffa98ba ; jmp 0xfffa98ba
+
+loc_fffa98ff: ; not directly referenced
+push eax
+lea ebx, [ebp - 0x217]
+xor ecx, ecx
+push 0
+mov edx, dword [ebp - 0x268]
+mov eax, esi
+push 1
+push ebx
+lea ebx, [ebp - 0x60]
+call fcn_fffb21f3 ; call 0xfffb21f3
+lea eax, [ebp - 0x180]
+lea edx, [ebp - 0x1c8]
+lea ecx, [ebp - 0xf0]
+mov dword [ebp - 0x284], eax
+mov dword [ebp - 0x244], edx
+mov dword [ebp - 0x238], ecx
+lea eax, [ebp - 0xa8]
+lea ecx, [edi - 8]
+mov dword [ebp - 0x258], esi
+lea edx, [ebp - 0x138]
+mov dword [ebp - 0x240], ebx
+mov dword [ebp - 0x248], eax
+add esp, 0x10
+mov dword [ebp - 0x254], 0x54
+mov dword [ebp - 0x26c], ecx
+
+loc_fffa9975: ; not directly referenced
+mov eax, dword [ebp - 0x258]
+mov bl, byte [ebp - 0x24c]
+test byte [eax + 0x3acb], bl
+je short loc_fffa99a8 ; je 0xfffa99a8
+mov cl, byte [esi + 0x1755]
+mov ebx, dword [ebp - 0x254]
+mov byte [ebp - 0x271], cl
+mov dword [ebp - 0x25c], ebx
+xor eax, eax
+jmp near loc_fffa9b92 ; jmp 0xfffa9b92
+
+loc_fffa99a8: ; not directly referenced
+add dword [ebp - 0x258], 0x1347
+add dword [ebp - 0x254], 0x100
+add dword [ebp - 0x284], 0x24
+add dword [ebp - 0x244], 0x24
+add dword [ebp - 0x238], 0x24
+add edx, 0x24
+add dword [ebp - 0x240], 0x24
+add dword [ebp - 0x248], 0x24
+cmp dword [ebp - 0x254], 0x254
+jne short loc_fffa9975 ; jne 0xfffa9975
+jmp near loc_fffa9ba3 ; jmp 0xfffa9ba3
+
+loc_fffa99f3: ; not directly referenced
+mov ecx, dword [ebp - 0x25c]
+add ecx, dword [esi + 0x103f]
+mov ecx, dword [ecx]
+cmp ecx, 0x1f
+seta cl
+cmp di, 0x118
+movzx ecx, cl
+jne loc_fffa9ab3 ; jne 0xfffa9ab3
+test ecx, ecx
+je short loc_fffa9a66 ; je 0xfffa9a66
+mov ecx, dword [ebp - 0x284]
+mov ebx, dword [ebp - 0x244]
+mov dword [edx + eax*4], 0x118
+mov dword [ecx + eax*4], 0x118
+mov ecx, dword [ebp - 0x238]
+mov dword [ebx + eax*4], 0x118
+mov ebx, dword [ebp - 0x240]
+mov dword [ecx + eax*4], 0x118
+mov ecx, dword [ebp - 0x248]
+mov dword [ebx + eax*4], 0x118
+mov dword [ecx + eax*4], 0x118
+jmp near loc_fffa9b87 ; jmp 0xfffa9b87
+
+loc_fffa9a66: ; not directly referenced
+mov ebx, dword [ebp - 0x284]
+mov ecx, dword [ebp - 0x244]
+mov dword [edx + eax*4], 0xfffffff8
+mov dword [ebx + eax*4], 0xfffffff8
+mov ebx, dword [ebp - 0x238]
+mov dword [ecx + eax*4], 0xfffffff8
+mov ecx, dword [ebp - 0x240]
+mov dword [ebx + eax*4], 0xfffffff8
+mov ebx, dword [ebp - 0x248]
+mov dword [ecx + eax*4], 0xfffffff8
+mov dword [ebx + eax*4], 0xfffffff8
+jmp near loc_fffa9b87 ; jmp 0xfffa9b87
+
+loc_fffa9ab3: ; not directly referenced
+test ecx, ecx
+je loc_fffa9b87 ; je 0xfffa9b87
+mov ecx, dword [ebp - 0x284]
+mov ebx, dword [ebp - 0x26c]
+cmp dword [ecx + eax*4], ebx
+jne short loc_fffa9acf ; jne 0xfffa9acf
+mov dword [ecx + eax*4], edi
+
+loc_fffa9acf: ; not directly referenced
+mov ecx, dword [ebp - 0x238]
+mov ebx, dword [ebp - 0x26c]
+cmp dword [ecx + eax*4], ebx
+jne short loc_fffa9ae5 ; jne 0xfffa9ae5
+mov dword [ecx + eax*4], edi
+jmp short loc_fffa9af1 ; jmp 0xfffa9af1
+
+loc_fffa9ae5: ; not directly referenced
+mov ecx, dword [ebp - 0x238]
+mov dword [edx + eax*4], edi
+mov dword [ecx + eax*4], edi
+
+loc_fffa9af1: ; not directly referenced
+cmp edi, 0x190
+jne short loc_fffa9b48 ; jne 0xfffa9b48
+mov ebx, dword [ebp - 0x244]
+cmp dword [ebx + eax*4], 0x118
+jne short loc_fffa9b48 ; jne 0xfffa9b48
+mov ecx, dword [ebp - 0x284]
+mov ecx, dword [ecx + eax*4]
+cmp ecx, 0x190
+mov dword [ebp - 0x260], ecx
+je short loc_fffa9b48 ; je 0xfffa9b48
+mov ecx, dword [ebp - 0x244]
+mov ebx, dword [edx + eax*4]
+add ebx, 0xffffffffffffff80
+mov dword [ecx + eax*4], ebx
+mov ecx, dword [ebp - 0x248]
+mov dword [ecx + eax*4], ebx
+mov ebx, dword [ebp - 0x240]
+mov ecx, dword [ebp - 0x260]
+mov dword [ebx + eax*4], ecx
+jmp short loc_fffa9b87 ; jmp 0xfffa9b87
+
+loc_fffa9b48: ; not directly referenced
+mov ebx, dword [edx + eax*4]
+mov ecx, edi
+sub ecx, ebx
+mov dword [ebp - 0x260], ebx
+mov ebx, dword [ebp - 0x240]
+mov dword [ebp - 0x278], ecx
+mov ecx, dword [ebx + eax*4]
+mov ebx, dword [ebp - 0x248]
+sub ecx, dword [ebx + eax*4]
+cmp dword [ebp - 0x278], ecx
+jle short loc_fffa9b87 ; jle 0xfffa9b87
+mov ecx, dword [ebp - 0x260]
+mov dword [ebx + eax*4], ecx
+mov ebx, dword [ebp - 0x240]
+mov dword [ebx + eax*4], edi
+
+loc_fffa9b87: ; not directly referenced
+inc eax
+add dword [ebp - 0x25c], 0x200
+
+loc_fffa9b92: ; not directly referenced
+cmp byte [ebp - 0x271], al
+ja loc_fffa99f3 ; ja 0xfffa99f3
+jmp near loc_fffa99a8 ; jmp 0xfffa99a8
+
+loc_fffa9ba3: ; not directly referenced
+add edi, 8
+cmp edi, 0x198
+je short loc_fffa9bb5 ; je 0xfffa9bb5
+
+loc_fffa9bae: ; not directly referenced
+xor ebx, ebx
+jmp near loc_fffa98a5 ; jmp 0xfffa98a5
+
+loc_fffa9bb5: ; not directly referenced
+lea ebx, [esi + 0x2974]
+mov dword [ebp - 0x254], ebx
+imul ebx, dword [ebp - 0x23c], 9
+xor edi, edi
+mov dword [ebp - 0x258], ebx
+
+loc_fffa9bd0: ; not directly referenced
+imul eax, edi, 0x1347
+mov bl, byte [ebp - 0x24c]
+test byte [esi + eax + 0x3acb], bl
+jne short loc_fffa9bf1 ; jne 0xfffa9bf1
+
+loc_fffa9be5: ; not directly referenced
+inc edi
+cmp edi, 2
+je loc_fffa9ccf ; je 0xfffa9ccf
+jmp short loc_fffa9bd0 ; jmp 0xfffa9bd0
+
+loc_fffa9bf1: ; not directly referenced
+mov ebx, dword [ebp - 0x254]
+mov byte [ebp - 0x26c], 0
+lea eax, [ebx + eax + 8]
+lea ebx, [edi + edi*8]
+mov dword [ebp - 0x248], eax
+mov dword [ebp - 0x244], ebx
+jmp near loc_fffa9cb8 ; jmp 0xfffa9cb8
+
+loc_fffa9c16: ; not directly referenced
+movzx ecx, byte [ebp - 0x26c]
+mov eax, dword [ebp - 0x244]
+add eax, ecx
+mov ebx, dword [ebp + eax*4 - 0x60]
+mov eax, dword [ebp + eax*4 - 0xa8]
+mov dword [ebp - 0x238], ebx
+add ebx, eax
+mov dword [ebp - 0x240], eax
+mov eax, ebx
+cdq
+mov dword [ebp - 0x25c], ebx
+mov ebx, 2
+idiv ebx
+mov edx, dword [ebp - 0x238]
+sub edx, dword [ebp - 0x240]
+cmp eax, 0x198
+mov dword [ebp - 0x260], eax
+jle short loc_fffa9c71 ; jle 0xfffa9c71
+
+loc_fffa9c67: ; not directly referenced
+mov eax, 7
+jmp near loc_fffaa6a7 ; jmp 0xfffaa6a7
+
+loc_fffa9c71: ; not directly referenced
+sub edx, 0x21
+cmp edx, 0x3e
+ja short loc_fffa9c67 ; ja 0xfffa9c67
+mov ebx, dword [ebp - 0x258]
+mov eax, dword [ebp - 0x248]
+mov edx, dword [ebp - 0x260]
+lea ebx, [ecx + ebx + 0x130]
+mov word [eax + ebx*2 + 0xd], dx
+mov edx, edi
+push eax
+mov eax, esi
+push 0
+push 0xff
+push ecx
+mov ecx, dword [ebp - 0x23c]
+call fcn_fffb0168 ; call 0xfffb0168
+inc byte [ebp - 0x26c]
+add esp, 0x10
+
+loc_fffa9cb8: ; not directly referenced
+mov bl, byte [ebp - 0x26c]
+cmp bl, byte [esi + 0x1755]
+jb loc_fffa9c16 ; jb 0xfffa9c16
+jmp near loc_fffa9be5 ; jmp 0xfffa9be5
+
+loc_fffa9ccf: ; not directly referenced
+movzx ecx, byte [esi + 0x1755]
+mov eax, 1
+mov word [ebp - 0x220], 0x1ff
+mov word [ebp - 0x21e], 0x1ff
+shl eax, cl
+dec eax
+mov word [ebp - 0x248], ax
+mov al, byte [ebp - 0x272]
+shr al, 1
+lea edx, [eax + eax]
+movzx edx, dl
+movzx eax, al
+mov dword [ebp - 0x240], edx
+add eax, 0x4028
+inc edx
+mov dword [ebp - 0x254], edx
+mov dword [ebp - 0x25c], eax
+jmp near loc_fffa9ed7 ; jmp 0xfffa9ed7
+
+loc_fffa9d25: ; not directly referenced
+push ebx
+lea eax, [ebp - 0x217]
+xor ecx, ecx
+push 0
+mov edx, dword [ebp - 0x268]
+xor ebx, ebx
+push 1
+push eax
+mov eax, esi
+call fcn_fffb21f3 ; call 0xfffb21f3
+add esp, 0x10
+
+loc_fffa9d45: ; not directly referenced
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x24c]
+mov word [ebp + ebx*2 - 0x220], 0
+test byte [esi + eax + 0x3acb], dl
+je loc_fffa9ecd ; je 0xfffa9ecd
+lea eax, [esi + eax + 0x297c]
+mov dword [ebp - 0x238], eax
+mov al, byte [esi + 0x1755]
+xor ecx, ecx
+mov byte [ebp - 0x244], al
+mov eax, ebx
+shl eax, 8
+mov edx, 1
+add eax, 0x54
+jmp short loc_fffa9db9 ; jmp 0xfffa9db9
+
+loc_fffa9d92: ; not directly referenced
+mov edi, dword [esi + 0x103f]
+add edi, eax
+mov edi, dword [edi]
+and edi, 0x1ff
+cmp edi, 0x1f
+jle short loc_fffa9db3 ; jle 0xfffa9db3
+mov edi, edx
+shl edi, cl
+or word [ebp + ebx*2 - 0x220], di
+
+loc_fffa9db3: ; not directly referenced
+inc ecx
+add eax, 0x200
+
+loc_fffa9db9: ; not directly referenced
+cmp byte [ebp - 0x244], cl
+ja short loc_fffa9d92 ; ja 0xfffa9d92
+mov dx, word [ebp + ebx*2 - 0x220]
+mov ecx, dword [ebp - 0x248]
+xor edi, edi
+cmp dx, cx
+mov word [ebp - 0x244], dx
+jne loc_fffa9ea5 ; jne 0xfffa9ea5
+mov eax, dword [ebp - 0x238]
+mov ecx, dword [ebp - 0x23c]
+mov dl, byte [eax + ecx + 0x10cd]
+cmp dl, 0xd
+ja loc_fffa9ea5 ; ja 0xfffa9ea5
+mov edi, dword [ebp - 0x254]
+add edx, 2
+mov byte [eax + ecx + 0x10cd], dl
+mov edx, eax
+movzx eax, byte [eax + edi + 0x10cd]
+mov edi, dword [ebp - 0x240]
+shl eax, 4
+add al, byte [edx + edi + 0x10cd]
+movzx edx, al
+mov eax, ebx
+shl eax, 0xa
+add eax, dword [ebp - 0x25c]
+add eax, dword [esi + 0x103f]
+mov byte [eax], dl
+jmp near loc_fffa9ecd ; jmp 0xfffa9ecd
+
+loc_fffa9e42: ; not directly referenced
+mov eax, edi
+mov edx, dword [ebp - 0x244]
+movzx eax, al
+bt edx, edi
+mov dword [ebp - 0x26c], eax
+jae short loc_fffa9ea2 ; jae 0xfffa9ea2
+mov ecx, dword [ebp - 0x258]
+lea edx, [eax + ecx + 0x130]
+mov ecx, dword [ebp - 0x238]
+mov ax, word [ecx + edx*2 + 0xd]
+cmp ax, 0x7f
+jbe loc_fffa9c67 ; jbe 0xfffa9c67
+add eax, 0xffffffffffffff80
+mov word [ecx + edx*2 + 0xd], ax
+mov edx, ebx
+push ecx
+mov eax, esi
+mov ecx, dword [ebp - 0x23c]
+push 0
+push 0xff
+push dword [ebp - 0x26c]
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffa9ea2: ; not directly referenced
+inc edi
+jmp short loc_fffa9ebf ; jmp 0xfffa9ebf
+
+loc_fffa9ea5: ; not directly referenced
+imul edx, dword [ebp - 0x23c], 9
+movzx eax, word [ebp - 0x244]
+mov dword [ebp - 0x258], edx
+mov dword [ebp - 0x244], eax
+
+loc_fffa9ebf: ; not directly referenced
+mov ecx, edi
+cmp cl, byte [esi + 0x1755]
+jb loc_fffa9e42 ; jb 0xfffa9e42
+
+loc_fffa9ecd: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffa9d45 ; jne 0xfffa9d45
+
+loc_fffa9ed7: ; not directly referenced
+cmp word [ebp - 0x220], 0
+jne loc_fffa9d25 ; jne 0xfffa9d25
+cmp word [ebp - 0x21e], 0
+jne loc_fffa9d25 ; jne 0xfffa9d25
+lea edi, [esi + 0x16be]
+mov dword [ebp - 0x240], edi
+imul edi, dword [ebp - 0x23c], 9
+xor ebx, ebx
+mov dword [ebp - 0x244], edi
+
+loc_fffa9f0e: ; not directly referenced
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x24c]
+test byte [esi + eax + 0x3acb], dl
+jne short loc_fffa9f2b ; jne 0xfffa9f2b
+
+loc_fffa9f23: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffa9f0e ; jne 0xfffa9f0e
+jmp short loc_fffa9f8c ; jmp 0xfffa9f8c
+
+loc_fffa9f2b: ; not directly referenced
+mov ecx, dword [ebp - 0x240]
+mov byte [ebp - 0x238], 0
+lea edi, [ecx + eax + 0x12be]
+jmp short loc_fffa9f7c ; jmp 0xfffa9f7c
+
+loc_fffa9f41: ; not directly referenced
+movzx eax, byte [ebp - 0x238]
+mov ecx, dword [ebp - 0x244]
+lea edx, [eax + ecx + 0x130]
+mov ecx, dword [ebp - 0x23c]
+add word [edi + edx*2 + 0xd], 0x40
+push edx
+mov edx, ebx
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+inc byte [ebp - 0x238]
+add esp, 0x10
+
+loc_fffa9f7c: ; not directly referenced
+mov al, byte [ebp - 0x238]
+cmp al, byte [esi + 0x1755]
+jb short loc_fffa9f41 ; jb 0xfffa9f41
+jmp short loc_fffa9f23 ; jmp 0xfffa9f23
+
+loc_fffa9f8c: ; not directly referenced
+imul ebx, dword [ebp - 0x23c], 9
+mov word [ebp - 0x220], 0
+mov word [ebp - 0x21e], 0
+mov byte [ebp - 0x240], 0x40
+mov dword [ebp - 0x25c], ebx
+
+loc_fffa9fb2: ; not directly referenced
+push eax
+lea edi, [ebp - 0x217]
+xor ecx, ecx
+push 0
+mov edx, dword [ebp - 0x268]
+mov eax, esi
+push 1
+xor ebx, ebx
+push edi
+mov edi, 1
+call fcn_fffb21f3 ; call 0xfffb21f3
+lea eax, [esi + 0x2974]
+add esp, 0x10
+mov dword [ebp - 0x258], eax
+
+loc_fffa9fe3: ; not directly referenced
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x24c]
+test byte [esi + eax + 0x3acb], dl
+je loc_fffaa0d4 ; je 0xfffaa0d4
+mov ecx, dword [ebp - 0x258]
+mov byte [ebp - 0x238], 0
+lea eax, [ecx + eax + 8]
+mov dword [ebp - 0x244], eax
+mov eax, ebx
+shl eax, 8
+add eax, 0x54
+mov dword [ebp - 0x254], eax
+jmp near loc_fffaa0af ; jmp 0xfffaa0af
+
+loc_fffaa026: ; not directly referenced
+movzx eax, word [ebp + ebx*2 - 0x220]
+mov dl, byte [ebp - 0x238]
+bt eax, edx
+mov word [ebp - 0x260], ax
+movzx ecx, byte [ebp - 0x238]
+jb short loc_fffaa0a9 ; jb 0xfffaa0a9
+mov eax, ecx
+shl eax, 9
+add eax, dword [ebp - 0x254]
+add eax, dword [esi + 0x103f]
+mov eax, dword [eax]
+cmp eax, 0x1f
+jbe short loc_fffaa076 ; jbe 0xfffaa076
+mov eax, 1
+shl eax, cl
+or eax, dword [ebp - 0x260]
+mov word [ebp + ebx*2 - 0x220], ax
+jmp short loc_fffaa0a9 ; jmp 0xfffaa0a9
+
+loc_fffaa076: ; not directly referenced
+mov edx, dword [ebp - 0x25c]
+lea eax, [ecx + edx + 0x130]
+mov edx, dword [ebp - 0x244]
+inc word [edx + eax*2 + 0xd]
+mov edx, ebx
+push eax
+mov eax, esi
+push 0
+push 0xff
+push ecx
+mov ecx, dword [ebp - 0x23c]
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffaa0a9: ; not directly referenced
+inc byte [ebp - 0x238]
+
+loc_fffaa0af: ; not directly referenced
+mov cl, byte [ebp - 0x238]
+cmp cl, byte [esi + 0x1755]
+jb loc_fffaa026 ; jb 0xfffaa026
+mov eax, dword [ebp - 0x248]
+cmp word [ebp + ebx*2 - 0x220], ax
+mov al, 0
+cmovne edi, eax
+
+loc_fffaa0d4: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffa9fe3 ; jne 0xfffa9fe3
+mov edx, edi
+test dl, dl
+jne short loc_fffaa0f5 ; jne 0xfffaa0f5
+dec byte [ebp - 0x240]
+jne loc_fffa9fb2 ; jne 0xfffa9fb2
+jmp near loc_fffa9c67 ; jmp 0xfffa9c67
+
+loc_fffaa0f5: ; not directly referenced
+lea edi, [esi + 0x2974]
+mov dword [ebp - 0x240], edi
+imul edi, dword [ebp - 0x23c], 9
+xor ebx, ebx
+mov dword [ebp - 0x248], edi
+
+loc_fffaa110: ; not directly referenced
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x24c]
+test byte [esi + eax + 0x3acb], dl
+jne short loc_fffaa131 ; jne 0xfffaa131
+
+loc_fffaa125: ; not directly referenced
+inc ebx
+cmp ebx, 2
+je loc_fffa971b ; je 0xfffa971b
+jmp short loc_fffaa110 ; jmp 0xfffaa110
+
+loc_fffaa131: ; not directly referenced
+mov ecx, dword [ebp - 0x240]
+mov byte [ebp - 0x238], 0
+lea edi, [ecx + eax + 8]
+jmp short loc_fffaa17f ; jmp 0xfffaa17f
+
+loc_fffaa144: ; not directly referenced
+movzx eax, byte [ebp - 0x238]
+mov ecx, dword [ebp - 0x248]
+lea edx, [eax + ecx + 0x130]
+sub word [edi + edx*2 + 0xd], 0x40
+mov edx, ebx
+push ecx
+mov ecx, dword [ebp - 0x23c]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+inc byte [ebp - 0x238]
+add esp, 0x10
+
+loc_fffaa17f: ; not directly referenced
+mov al, byte [ebp - 0x238]
+cmp al, byte [esi + 0x1755]
+jb short loc_fffaa144 ; jb 0xfffaa144
+jmp short loc_fffaa125 ; jmp 0xfffaa125
+
+loc_fffaa18f: ; not directly referenced
+imul ecx, dword [ebp - 0x240], 0x1347
+mov ebx, dword [ebp - 0x264]
+cmp dword [ebx + ecx + 0x12be], 2
+je short loc_fffaa1c2 ; je 0xfffaa1c2
+
+loc_fffaa1a9: ; not directly referenced
+inc dword [ebp - 0x240]
+add eax, 0x100
+cmp dword [ebp - 0x240], 2
+jne short loc_fffaa18f ; jne 0xfffaa18f
+jmp near loc_fffaa242 ; jmp 0xfffaa242
+
+loc_fffaa1c2: ; not directly referenced
+mov edi, dword [ebp - 0x24c]
+cmp dword [esi + 0x1749], 2
+lea ebx, [edi + ecx + 8]
+mov edi, dword [ebx + 0x141]
+jne short loc_fffaa1eb ; jne 0xfffaa1eb
+mov ecx, dword [esi + 0x103f]
+and edi, 0xefffffff
+add ecx, eax
+mov dword [ecx], edi
+
+loc_fffaa1eb: ; not directly referenced
+mov ecx, dword [esi + 0x103f]
+mov edi, dword [ebx + 0x141]
+add ecx, eax
+lea edx, [eax - 0x3010]
+mov dword [ebp - 0x250], edx
+mov dword [ecx], edi
+xor ecx, ecx
+jmp short loc_fffaa235 ; jmp 0xfffaa235
+
+loc_fffaa20b: ; not directly referenced
+movzx edx, cl
+inc ecx
+mov edi, dword [ebx + edx*4 + 0x169]
+mov dword [ebp - 0x23c], edi
+mov edi, edx
+shl edi, 9
+add edi, dword [ebp - 0x250]
+add edi, dword [esi + 0x103f]
+mov edx, dword [ebp - 0x23c]
+mov dword [edi], edx
+
+loc_fffaa235: ; not directly referenced
+cmp cl, byte [esi + 0x1755]
+jb short loc_fffaa20b ; jb 0xfffaa20b
+jmp near loc_fffaa1a9 ; jmp 0xfffaa1a9
+
+loc_fffaa242: ; not directly referenced
+mov eax, esi
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov dword [ebp - 0x250], esi
+mov dword [ebp - 0x24c], 0
+
+loc_fffaa259: ; not directly referenced
+imul ebx, dword [ebp - 0x24c], 0x1347
+mov edi, dword [ebp - 0x264]
+cmp dword [edi + ebx + 0x12be], 2
+jne loc_fffaa68a ; jne 0xfffaa68a
+xor ecx, ecx
+mov edx, 4
+lea eax, [ebp - 0x21b]
+mov word [ebp - 0x210], 0xf000
+mov word [ebp - 0x20e], 0xf000
+mov word [ebp - 0x20c], 0xf000
+mov word [ebp - 0x20a], 0xf000
+mov word [ebp - 0x208], 0x1000
+mov word [ebp - 0x206], 0x1000
+mov word [ebp - 0x204], 0x1000
+mov word [ebp - 0x202], 0x1000
+call fcn_fffa119f ; call 0xfffa119f
+mov edi, dword [ebp - 0x250]
+mov eax, 2
+cmp dword [edi + 0x297c], 2
+jne loc_fffaa68a ; jne 0xfffaa68a
+lea edi, [esi + ebx + 0x297c]
+xor ecx, ecx
+mov dword [ebp - 0x238], edi
+mov word [ebp - 0x248], 0x1000
+mov word [ebp - 0x244], 0xf000
+
+loc_fffaa30a: ; not directly referenced
+mov eax, 0xf
+bt eax, ecx
+jae loc_fffaa3d9 ; jae 0xfffaa3d9
+mov ebx, dword [ebp - 0x250]
+mov al, 1
+shl eax, cl
+test byte [ebx + 0x3acb], al
+je loc_fffaa3d9 ; je 0xfffaa3d9
+mov al, byte [esi + 0x1755]
+mov dword [ebp - 0x23c], 0
+mov byte [ebp - 0x240], al
+jmp short loc_fffaa38f ; jmp 0xfffaa38f
+
+loc_fffaa346: ; not directly referenced
+movzx ebx, byte [edi + ecx + 0x10cd]
+mov edx, dword [ebp - 0x23c]
+mov eax, dword [ebp - 0x238]
+imul ebx, ebx, 0xffffffffffffffc0
+add bx, word [eax + edx*2 + 0x26d]
+cmp word [ebp + ecx*2 - 0x210], bx
+jge short loc_fffaa377 ; jge 0xfffaa377
+mov word [ebp + ecx*2 - 0x210], bx
+
+loc_fffaa377: ; not directly referenced
+cmp word [ebp + ecx*2 - 0x208], bx
+jle short loc_fffaa389 ; jle 0xfffaa389
+mov word [ebp + ecx*2 - 0x208], bx
+
+loc_fffaa389: ; not directly referenced
+inc dword [ebp - 0x23c]
+
+loc_fffaa38f: ; not directly referenced
+mov dl, byte [ebp - 0x23c]
+cmp byte [ebp - 0x240], dl
+ja short loc_fffaa346 ; ja 0xfffaa346
+mov bx, word [ebp + ecx*2 - 0x210]
+cmp word [ebp - 0x244], bx
+cmovge bx, word [ebp - 0x244]
+mov word [ebp - 0x244], bx
+mov bx, word [ebp + ecx*2 - 0x208]
+cmp word [ebp - 0x248], bx
+cmovle bx, word [ebp - 0x248]
+mov word [ebp - 0x248], bx
+
+loc_fffaa3d9: ; not directly referenced
+inc ecx
+add dword [ebp - 0x238], 0x12
+cmp ecx, 4
+jne loc_fffaa30a ; jne 0xfffaa30a
+movsx edx, word [ebp - 0x244]
+mov cl, 2
+movsx eax, word [ebp - 0x248]
+mov byte [ebp - 0x23c], 0
+add eax, edx
+cdq
+idiv ecx
+mov cl, 0x40
+neg eax
+add eax, 0x160
+cdq
+idiv ecx
+movsx bx, al
+shl ebx, 6
+mov dword [ebp - 0x254], eax
+mov word [ebp - 0x240], bx
+mov byte [ebp - 0x244], al
+xor ebx, ebx
+
+loc_fffaa42e: ; not directly referenced
+mov eax, 0xf
+bt eax, ebx
+jae loc_fffaa586 ; jae 0xfffaa586
+mov edx, dword [ebp - 0x250]
+mov cl, bl
+mov al, 1
+shl eax, cl
+test byte [edx + 0x3acb], al
+je loc_fffaa586 ; je 0xfffaa586
+mov eax, dword [ebp - 0x240]
+add ax, word [ebp + ebx*2 - 0x208]
+mov cl, byte [ebp - 0x244]
+cmp ax, 0x3f
+mov byte [ebx + ebp - 0x21b], cl
+jg short loc_fffaa48f ; jg 0xfffaa48f
+movsx edx, ax
+mov eax, 0x7f
+sub eax, edx
+sar eax, 6
+add eax, dword [ebp - 0x254]
+mov byte [ebx + ebp - 0x21b], al
+
+loc_fffaa48f: ; not directly referenced
+mov dl, byte [ebx + ebp - 0x21b]
+movsx ax, dl
+shl eax, 6
+add ax, word [ebp + ebx*2 - 0x210]
+cwde
+cmp eax, 0x1bf
+jle short loc_fffaa4be ; jle 0xfffaa4be
+sub eax, 0x180
+sar eax, 6
+sub edx, eax
+mov byte [ebx + ebp - 0x21b], dl
+
+loc_fffaa4be: ; not directly referenced
+mov al, byte [ebx + ebp - 0x21b]
+mov byte [ebp - 0x238], 0
+movsx edx, al
+mov dword [ebp - 0x248], edx
+mov ecx, dword [ebp - 0x248]
+movsx edx, byte [ebp - 0x23c]
+sub ecx, edx
+mov edx, ecx
+lea ecx, [eax - 0xe]
+cmp edx, 0xf
+mov dl, byte [ebp - 0x23c]
+cmovge edx, ecx
+movsx ecx, dl
+mov byte [ebp - 0x23c], dl
+mov edx, dword [ebp - 0x248]
+sub edx, ecx
+lea ecx, [eax - 1]
+test edx, edx
+mov dl, byte [ebp - 0x23c]
+cmovle edx, ecx
+sub al, byte [edi + ebx + 0x10cd]
+cbw
+shl eax, 6
+lea ecx, [ebx + ebx*8]
+mov byte [ebp - 0x23c], dl
+mov word [ebp - 0x248], ax
+mov dword [ebp - 0x258], ecx
+jmp short loc_fffaa578 ; jmp 0xfffaa578
+
+loc_fffaa538: ; not directly referenced
+movzx eax, byte [ebp - 0x238]
+mov ecx, dword [ebp - 0x258]
+lea edx, [eax + ecx + 0x130]
+mov ecx, dword [ebp - 0x248]
+add word [edi + edx*2 + 0xd], cx
+mov ecx, ebx
+push edx
+mov edx, dword [ebp - 0x24c]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+inc byte [ebp - 0x238]
+add esp, 0x10
+
+loc_fffaa578: ; not directly referenced
+mov al, byte [ebp - 0x238]
+cmp al, byte [esi + 0x1755]
+jb short loc_fffaa538 ; jb 0xfffaa538
+
+loc_fffaa586: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffaa42e ; jne 0xfffaa42e
+mov eax, dword [ebp - 0x24c]
+shl eax, 0xa
+add eax, 0x4028
+mov dword [ebp - 0x240], eax
+add eax, dword [esi + 0x103f]
+cmp byte [ebp - 0x23c], 0
+mov ebx, dword [eax]
+jge short loc_fffaa5d9 ; jge 0xfffaa5d9
+mov edx, ebx
+mov cl, byte [ebp - 0x23c]
+shr edx, 0x10
+neg ecx
+and edx, 0x3f
+mov eax, 7
+movzx ecx, cl
+cmp edx, ecx
+mov edx, 0
+cmovge eax, edx
+jmp short loc_fffaa5f9 ; jmp 0xfffaa5f9
+
+loc_fffaa5d9: ; not directly referenced
+jne short loc_fffaa5df ; jne 0xfffaa5df
+
+loc_fffaa5db: ; not directly referenced
+xor eax, eax
+jmp short loc_fffaa5f9 ; jmp 0xfffaa5f9
+
+loc_fffaa5df: ; not directly referenced
+movsx edx, byte [ebp - 0x23c]
+mov eax, ebx
+shr eax, 0x10
+not eax
+and eax, 0x3f
+cmp edx, eax
+jle short loc_fffaa5db ; jle 0xfffaa5db
+mov eax, 7
+
+loc_fffaa5f9: ; not directly referenced
+mov edx, ebx
+and ebx, 0xffc00000
+shr edx, 0x10
+add edx, dword [ebp - 0x23c]
+and edx, 0x3f
+mov ecx, edx
+mov dword [edi + 0x10d5], edx
+shl ecx, 0x10
+xor edx, edx
+or ebx, ecx
+mov dword [ebp - 0x248], ebx
+
+loc_fffaa622: ; not directly referenced
+mov ecx, 0xf
+bt ecx, edx
+jae short loc_fffaa657 ; jae 0xfffaa657
+mov cl, dl
+mov ebx, 1
+shl ebx, cl
+mov ecx, dword [ebp - 0x250]
+test byte [ecx + 0x3acb], bl
+je short loc_fffaa657 ; je 0xfffaa657
+mov cl, byte [edx + ebp - 0x21b]
+sub ecx, dword [ebp - 0x23c]
+mov byte [edi + edx + 0x10cd], cl
+
+loc_fffaa657: ; not directly referenced
+lea ecx, [edx*4]
+mov bl, byte [edi + edx + 0x10cd]
+and ebx, 0xf
+inc edx
+shl ebx, cl
+or dword [ebp - 0x248], ebx
+cmp edx, 4
+jne short loc_fffaa622 ; jne 0xfffaa622
+mov edx, dword [ebp - 0x240]
+add edx, dword [esi + 0x103f]
+mov ebx, dword [ebp - 0x248]
+mov dword [edx], ebx
+
+loc_fffaa68a: ; not directly referenced
+inc dword [ebp - 0x24c]
+add dword [ebp - 0x250], 0x1347
+cmp dword [ebp - 0x24c], 2
+jne loc_fffaa259 ; jne 0xfffaa259
+
+loc_fffaa6a7: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa6af: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x1c], 0
+mov al, byte [ebx + 0x9e8]
+lea edi, [ebx + 0x10b7]
+mov byte [ebx + 0x297b], al
+mov eax, dword [ebx + 0x9e4]
+mov dword [ebp - 0x24], edi
+mov dword [ebx + 0x2974], eax
+lea edi, [ebx + 0x9e4]
+mov dword [ebp - 0x28], edi
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x2c], edi
+
+loc_fffaa6f6: ; not directly referenced
+imul eax, dword [ebp - 0x1c], 0x2fa
+imul edx, dword [ebp - 0x1c], 0x2e6
+mov edi, dword [ebp - 0x24]
+add edx, dword [ebp - 0x28]
+lea eax, [edi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x1c], 0x1347
+add eax, dword [ebp - 0x2c]
+lea esi, [edx + 5]
+mov ecx, dword [esi + 5]
+mov dword [eax + 0xfd], ecx
+mov cl, byte [esi + 9]
+mov byte [eax + 0x1157], cl
+mov cl, byte [esi + 4]
+mov byte [eax + 0xf8], cl
+mov edx, dword [edx + 5]
+lea edi, [eax + 8]
+mov dword [eax + 8], edx
+mov dword [ebp - 0x20], edi
+xor edi, edi
+
+loc_fffaa747: ; not directly referenced
+imul eax, edi, 0x2a
+mov ecx, dword [ebp - 0x20]
+inc edi
+lea edx, [esi + eax + 0xa]
+lea eax, [ecx + eax + 8]
+mov ecx, 0x2a
+call fcn_fffa115e ; call 0xfffa115e
+cmp edi, 4
+jne short loc_fffaa747 ; jne 0xfffaa747
+xor di, di
+
+loc_fffaa768: ; not directly referenced
+imul eax, edi, 0xfb
+mov dword [ebp - 0x38], eax
+lea ecx, [esi + eax + 0xb0]
+lea edx, [ecx + 2]
+mov ecx, dword [ecx + 2]
+dec ecx
+mov dword [ebp - 0x3c], edx
+cmp ecx, 1
+ja short loc_fffaa7ca ; ja 0xfffaa7ca
+imul edx, edi, 0x14f
+mov ecx, dword [ebp - 0x30]
+lea edx, [ecx + edx + 0x20]
+mov dword [ebp - 0x34], edx
+mov edx, dword [ebp - 0x20]
+mov ecx, 0xfb
+lea eax, [edx + eax + 0x1151]
+mov edx, dword [ebp - 0x3c]
+call fcn_fffa115e ; call 0xfffa115e
+imul eax, edi, 0x1f
+mov ecx, 0x1f
+lea edx, [esi + eax + 0x2a8]
+mov eax, dword [ebp - 0x34]
+add eax, 0x81
+call fcn_fffa115e ; call 0xfffa115e
+
+loc_fffaa7ca: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffaa768 ; jne 0xfffaa768
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 2
+jne loc_fffaa6f6 ; jne 0xfffaa6f6
+mov eax, dword [ebx + 0xfc2]
+mov dword [ebx + 0x172c], eax
+mov eax, dword [ebx + 0xfc6]
+mov dword [ebx + 0x1730], eax
+mov eax, dword [ebx + 0xfca]
+mov dword [ebx + 0x1734], eax
+mov eax, dword [ebx + 0xfce]
+mov dword [ebx + 0x1738], eax
+mov eax, dword [ebx + 0x9d8]
+mov dword [ebx + 0x1005], eax
+mov eax, dword [ebx + 0x9d4]
+mov dword [ebx + 0x1001], eax
+mov eax, dword [ebx + 0xfb5]
+mov dword [ebx + 0x16c6], eax
+mov eax, dword [ebx + 0xfb9]
+mov dword [ebx + 0x16ce], eax
+mov al, byte [ebx + 0xfc1]
+mov byte [ebx + 0x16d6], al
+mov eax, dword [ebx + 0xfbd]
+mov dword [ebx + 0x16d2], eax
+mov al, byte [ebx + 0xfd2]
+mov byte [ebx + 0x1740], al
+mov eax, dword [ebx + 0xfd3]
+mov dword [ebx + 0x1749], eax
+mov al, byte [ebx + 0xfd7]
+mov byte [ebx + 0x1746], al
+lea esp, [esp + 0x3c]
+pop ebx
+xor eax, eax
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa884: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x103b]
+mov edx, dword [eax + 0xe4]
+mov eax, dword [eax + 0xe8]
+cmp eax, dword [ebx + 0xc]
+jne short loc_fffaa8ad ; jne 0xfffaa8ad
+cmp edx, dword [ebx + 8]
+je short loc_fffaa91e ; je 0xfffaa91e
+
+loc_fffaa8ad: ; not directly referenced
+mov eax, 0x17
+jmp near loc_fffaa948 ; jmp 0xfffaa948
+
+loc_fffaa8b7: ; not directly referenced
+imul eax, edi, 0xfb
+mov edx, dword [ebp - 0x30]
+lea eax, [eax + edx + 0xa80]
+mov edx, dword [ebp - 0x38]
+lea eax, [edx + eax + 0x13]
+mov dword [ebp - 0x2c], eax
+imul eax, edi, 0x14f
+add eax, dword [ebp - 0x34]
+cmp dword [ebx + eax + 0x10c4], 1
+jne short loc_fffaa8ec ; jne 0xfffaa8ec
+mov word [ebp - 0x1a], 0
+jmp short loc_fffaa900 ; jmp 0xfffaa900
+
+loc_fffaa8ec: ; not directly referenced
+lea eax, [ebx + eax + 0x115d]
+lea ecx, [ebp - 0x1a]
+mov edx, 0xb
+call fcn_fffb8646 ; call 0xfffb8646
+
+loc_fffaa900: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov ax, word [eax + 0xdb]
+cmp word [ebp - 0x1a], ax
+jne short loc_fffaa8ad ; jne 0xfffaa8ad
+inc edi
+cmp edi, 2
+jne short loc_fffaa8b7 ; jne 0xfffaa8b7
+inc esi
+cmp esi, 2
+je short loc_fffaa93f ; je 0xfffaa93f
+jmp short loc_fffaa926 ; jmp 0xfffaa926
+
+loc_fffaa91e: ; not directly referenced
+lea edx, [ebx + 8]
+xor esi, esi
+mov dword [ebp - 0x38], edx
+
+loc_fffaa926: ; not directly referenced
+imul eax, esi, 0x2e6
+imul edx, esi, 0x2fa
+xor edi, edi
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x34], edx
+jmp near loc_fffaa8b7 ; jmp 0xfffaa8b7
+
+loc_fffaa93f: ; not directly referenced
+mov byte [ebx + 0x1742], 1
+xor eax, eax
+
+loc_fffaa948: ; not directly referenced
+lea esp, [esp + 0x2c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa951: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+lea esp, [esp - 0x1c]
+mov byte [ebp - 0x19], dl
+call fcn_fffc6986 ; call 0xfffc6986
+lea edi, [eax + 0x2710]
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x4800], 5
+
+loc_fffaa97b: ; not directly referenced
+mov eax, dword [esi + 0x103f]
+mov ebx, dword [eax + 0x4804]
+mov edx, ebx
+mov eax, ebx
+shr edx, 0x10
+shr eax, 0x10
+and edx, 2
+and eax, 1
+or eax, edx
+and al, byte [ebp - 0x19]
+cmp al, byte [ebp - 0x19]
+jne short loc_fffaa9a5 ; jne 0xfffaa9a5
+xor eax, eax
+jmp short loc_fffaa9b3 ; jmp 0xfffaa9b3
+
+loc_fffaa9a5: ; not directly referenced
+call fcn_fffc6986 ; call 0xfffc6986
+cmp edi, eax
+ja short loc_fffaa97b ; ja 0xfffaa97b
+mov eax, 0x11
+
+loc_fffaa9b3: ; not directly referenced
+mov edx, ebx
+and ebx, 1
+and edx, 2
+or ebx, edx
+mov edx, 0x13
+test byte [ebp - 0x19], bl
+cmovne eax, edx
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa9d1: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 0x2c
+mov ebp, esp
+push edi
+push esi
+lea eax, [ebp - 0x44]
+push ebx
+lea esp, [esp - 0x5c]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x50], 0
+mov byte [ebp - 0x4c], 0
+mov byte [ebp - 0x4b], 0
+mov byte [ebp - 0x4a], 1
+mov byte [ebp - 0x49], 0
+mov dword [ebp - 0x48], 0
+mov byte [ebp - 0x56], 0
+mov byte [ebp - 0x55], 0
+call fcn_fffa119f ; call 0xfffa119f
+cmp byte [ebx + 0x1740], 1
+je short loc_fffaaa2c ; je 0xfffaaa2c
+cmp byte [ebx + 0x16b8], 1
+je short loc_fffaaa2c ; je 0xfffaaa2c
+
+loc_fffaaa25: ; not directly referenced
+xor esi, esi
+jmp near loc_fffaaca7 ; jmp 0xfffaaca7
+
+loc_fffaaa2c: ; not directly referenced
+push eax
+lea ecx, [ebp - 0x55]
+lea edx, [ebp - 0x56]
+push eax
+mov eax, ebx
+mov word [ebp - 0x1a], 1
+push 0
+mov word [ebp - 0x1c], 1
+xor esi, esi
+push 1
+lea edi, [ebp - 0x48]
+call fcn_fffb1ee8 ; call 0xfffb1ee8
+add esp, 0x10
+
+loc_fffaaa53: ; not directly referenced
+imul eax, esi, 0x1347
+cmp dword [ebx + eax + 0x297c], 2
+jne loc_fffaab48 ; jne 0xfffaab48
+push eax
+lea eax, [ebp - 0x50]
+lea ecx, [ebp - 0x44]
+push edi
+mov edx, esi
+push eax
+lea eax, [ebp - 0x4c]
+push eax
+lea eax, [ebp - 0x20]
+push eax
+lea eax, [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x34]
+push eax
+mov eax, ebx
+push 0
+call fcn_fffc3d24 ; call 0xfffc3d24
+xor edx, edx
+add esp, 0x18
+mov ecx, edx
+mov eax, 0x1800
+and ecx, 0xfffffc00
+or eax, 0x28
+mov edx, ecx
+lea ecx, [esi*8 + 0x48a8]
+or edx, 2
+push edx
+mov edx, ecx
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+mov eax, dword [ebx + 0x1005]
+add esp, 0x10
+cmp eax, 0x306c0
+jne short loc_fffaaad2 ; jne 0xfffaaad2
+cmp dword [ebx + 0x1001], 2
+ja short loc_fffaaaf2 ; ja 0xfffaaaf2
+jmp short loc_fffaab05 ; jmp 0xfffaab05
+
+loc_fffaaad2: ; not directly referenced
+cmp eax, 0x40660
+jne short loc_fffaaae4 ; jne 0xfffaaae4
+
+loc_fffaaad9: ; not directly referenced
+cmp dword [ebx + 0x1001], 0
+jne short loc_fffaaaf2 ; jne 0xfffaaaf2
+jmp short loc_fffaab05 ; jmp 0xfffaab05
+
+loc_fffaaae4: ; not directly referenced
+cmp eax, 0x40650
+je short loc_fffaaad9 ; je 0xfffaaad9
+cmp eax, 0x306d0
+jne short loc_fffaab05 ; jne 0xfffaab05
+
+loc_fffaaaf2: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+lea eax, [eax + esi*4 + 0x4980]
+mov dword [eax], 0
+
+loc_fffaab05: ; not directly referenced
+lea edx, [ebp - 0x54]
+mov eax, ebx
+mov ecx, 1
+mov dword [ebp - 0x54], 0
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+imul edx, esi, 0x28
+mov eax, dword [ebx + 0x103f]
+lea eax, [edx + eax + 0x4808]
+mov edx, dword [ebp - 0x54]
+mov dword [eax], edx
+mov edx, esi
+shl edx, 0xa
+mov eax, dword [ebx + 0x103f]
+lea eax, [edx + eax + 0x4200]
+mov dword [eax], 0x20
+
+loc_fffaab48: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffaaa53 ; jne 0xfffaaa53
+lea eax, [ebx + 0x2974]
+mov dword [ebp - 0x5c], 0
+mov dword [ebp - 0x68], eax
+
+loc_fffaab62: ; not directly referenced
+movzx eax, byte [ebx + 0x176a]
+mov ecx, dword [ebp - 0x5c]
+mov dl, byte [ebp - 0x5c]
+bt eax, ecx
+mov byte [ebp - 0x60], dl
+jb short loc_fffaab87 ; jb 0xfffaab87
+
+loc_fffaab77: ; not directly referenced
+inc dword [ebp - 0x5c]
+cmp dword [ebp - 0x5c], 4
+jne short loc_fffaab62 ; jne 0xfffaab62
+xor esi, esi
+jmp near loc_fffaac61 ; jmp 0xfffaac61
+
+loc_fffaab87: ; not directly referenced
+mov cl, byte [ebp - 0x5c]
+mov esi, 1
+xor edx, edx
+mov eax, ebx
+shl esi, cl
+and esi, 0xff
+mov ecx, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+mov edi, eax
+mov edx, 1
+mov ecx, esi
+mov eax, ebx
+call fcn_fffc41bb ; call 0xfffc41bb
+mov dl, byte [ebp - 0x60]
+or eax, edi
+shr dl, 1
+xor edi, edi
+movzx edx, dl
+imul edx, edx, 0xfb
+movzx eax, al
+mov dword [ebp - 0x64], edx
+mov dword [ebp - 0x60], eax
+
+loc_fffaabcd: ; not directly referenced
+mov word [ebp - 0x42], di
+mov word [ebp - 0x3a], di
+xor esi, esi
+
+loc_fffaabd7: ; not directly referenced
+mov eax, dword [ebp - 0x60]
+bt eax, esi
+jae short loc_fffaac3c ; jae 0xfffaac3c
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0x64]
+mov ecx, dword [ebp - 0x68]
+lea eax, [eax + edx + 0x1150]
+lea eax, [ecx + eax + 9]
+lea ecx, [ebp - 0x44]
+mov dx, word [eax + 0xd5]
+mov ax, word [eax + 0xd9]
+dec edx
+mov word [ebp - 0x38], dx
+lea edx, [eax - 8]
+mov word [ebp - 0x36], dx
+shr ax, 3
+mov edx, esi
+movzx eax, ax
+mov dword [ebp - 0x28], eax
+push eax
+lea eax, [ebp - 0x30]
+push 0
+push 0
+push 0
+push 0
+push eax
+lea eax, [ebp - 0x3c]
+push 0
+push eax
+mov eax, ebx
+call fcn_fffc3d24 ; call 0xfffc3d24
+add esp, 0x20
+
+loc_fffaac3c: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffaabd7 ; jne 0xfffaabd7
+mov edx, dword [ebp - 0x60]
+mov eax, ebx
+call fcn_fffaa951 ; call 0xfffaa951
+test eax, eax
+mov esi, eax
+jne short loc_fffaac61 ; jne 0xfffaac61
+inc edi
+cmp edi, 8
+jne loc_fffaabcd ; jne 0xfffaabcd
+jmp near loc_fffaab77 ; jmp 0xfffaab77
+
+loc_fffaac61: ; not directly referenced
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffaac7a ; jne 0xfffaac7a
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x48a8], 0x3000
+
+loc_fffaac7a: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffaac93 ; jne 0xfffaac93
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x48b0], 0x3000
+
+loc_fffaac93: ; not directly referenced
+test esi, esi
+je loc_fffaaa25 ; je 0xfffaaa25
+mov edx, 0xdddc
+mov eax, ebx
+call fcn_fffc83be ; call 0xfffc83be
+
+loc_fffaaca7: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaacb1: ; not directly referenced
+push ebp
+mov ecx, 4
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x54]
+mov esi, ref_fffcb7fc ; mov esi, 0xfffcb7fc
+push ebx
+lea esp, [esp - 0x8c]
+mov ebx, dword [ebp + 8]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea eax, [ebx + 0x2974]
+mov dword [ebp - 0x60], 0
+mov dword [ebp - 0x5c], 0
+mov dword [ebp - 0x58], 0
+xor esi, esi
+mov dword [ebp - 0x84], 0
+mov dword [ebp - 0x78], eax
+jmp near loc_fffaad82 ; jmp 0xfffaad82
+
+loc_fffaacff: ; not directly referenced
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0x78]
+lea eax, [edx + eax + 0x1254]
+movzx edx, word [eax + 0xd9]
+imul edx, dword [eax + 0xd5]
+movzx ecx, byte [eax + 0xde]
+shr edx, 0x14
+mov dword [ebp - 0x74], ecx
+cmp byte [eax + 0xdf], 0
+mov ecx, 1
+movzx edi, byte [eax + 0xdf]
+cmove edi, ecx
+imul edi, edx
+movzx edx, byte [eax + 0xe3]
+movzx eax, byte [eax + 0xe1]
+imul eax, dword [ebp - 0x74]
+imul eax, edi
+movzx edx, word [ebp + edx*2 - 0x54]
+cmp edx, eax
+cmove ecx, dword [ebp - 0x84]
+mov dword [ebp - 0x84], ecx
+jmp short loc_fffaad78 ; jmp 0xfffaad78
+
+loc_fffaad6e: ; not directly referenced
+mov dword [ebp - 0x84], 1
+
+loc_fffaad78: ; not directly referenced
+inc esi
+cmp esi, 2
+je loc_fffaae09 ; je 0xfffaae09
+
+loc_fffaad82: ; not directly referenced
+imul eax, esi, 0x1347
+mov dl, byte [ebx + eax + 0x3acb]
+mov byte [ebp - 0x6d], dl
+and dl, 1
+je short loc_fffaadfa ; je 0xfffaadfa
+mov ecx, dword [ebp - 0x78]
+lea eax, [ecx + eax + 0x1159]
+movzx edx, word [eax + 0xd9]
+imul edx, dword [eax + 0xd5]
+movzx edi, byte [eax + 0xde]
+shr edx, 0x14
+mov dword [ebp - 0x74], edi
+movzx edi, byte [eax + 0xdf]
+mov ecx, edi
+and edi, 0xff
+test cl, cl
+jne short loc_fffaadd4 ; jne 0xfffaadd4
+mov edi, 1
+
+loc_fffaadd4: ; not directly referenced
+imul edx, edi
+movzx edi, byte [eax + 0xe3]
+movzx eax, byte [eax + 0xe1]
+imul eax, dword [ebp - 0x74]
+imul eax, edx
+movzx edi, word [ebp + edi*2 - 0x54]
+cmp edi, eax
+je short loc_fffaadfa ; je 0xfffaadfa
+jmp near loc_fffaad6e ; jmp 0xfffaad6e
+
+loc_fffaadfa: ; not directly referenced
+test byte [ebp - 0x6d], 4
+jne loc_fffaacff ; jne 0xfffaacff
+jmp near loc_fffaad78 ; jmp 0xfffaad78
+
+loc_fffaae09: ; not directly referenced
+cmp dword [ebp - 0x84], 1
+jne short loc_fffaae17 ; jne 0xfffaae17
+jmp near loc_fffab1a2 ; jmp 0xfffab1a2
+
+loc_fffaae17: ; not directly referenced
+cmp dword [ebx + 0x1005], 0x306c0
+jne short loc_fffaae30 ; jne 0xfffaae30
+cmp dword [ebx + 0x1001], 1
+jbe loc_fffab1ac ; jbe 0xfffab1ac
+
+loc_fffaae30: ; not directly referenced
+xor ecx, ecx
+mov edx, 0x2c
+lea eax, [ebp - 0x44]
+call fcn_fffa119f ; call 0xfffa119f
+cmp byte [ebx + 0x1740], 1
+jne short loc_fffaae92 ; jne 0xfffaae92
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffaae6e ; jne 0xfffaae6e
+mov eax, dword [ebx + 0x103f]
+mov edi, dword [eax + 0x5004]
+mov edx, edi
+mov dword [ebp - 0x80], edi
+and edx, 0xfcffffff
+mov dword [eax + 0x5004], edx
+
+loc_fffaae6e: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffaae92 ; jne 0xfffaae92
+mov eax, dword [ebx + 0x103f]
+mov edx, dword [eax + 0x5008]
+mov dword [ebp - 0x7c], edx
+and edx, 0xfcffffff
+mov dword [eax + 0x5008], edx
+
+loc_fffaae92: ; not directly referenced
+mov dword [ebp - 0x28], 3
+mov word [ebp - 0x1a], 0x20
+mov word [ebp - 0x1c], 0x400
+mov word [ebp - 0x36], 0x18
+mov word [ebp - 0x42], 1
+mov word [ebp - 0x3a], 1
+mov edi, 0x4200
+xor esi, esi
+
+loc_fffaaebe: ; not directly referenced
+imul eax, esi, 0x1347
+cmp dword [ebx + eax + 0x297c], 2
+jne loc_fffaafc2 ; jne 0xfffaafc2
+push eax
+lea ecx, [ebp - 0x58]
+lea eax, [ebp - 0x60]
+push ecx
+mov edx, esi
+lea ecx, [ebp - 0x44]
+push eax
+lea eax, [ebp - 0x5c]
+push eax
+lea eax, [ebp - 0x20]
+push eax
+lea eax, [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x34]
+push eax
+mov eax, ebx
+push 0
+call fcn_fffc3d24 ; call 0xfffc3d24
+xor edx, edx
+mov eax, 0x1800
+mov ecx, edx
+add esp, 0x20
+and ecx, 0xfffffc00
+mov edx, ecx
+mov ecx, eax
+and ecx, 0x8fffffff
+or edx, 2
+mov eax, ecx
+mov ecx, dword [ebx + 0x1005]
+or eax, 0x10000000
+cmp ecx, 0x306c0
+jne short loc_fffaaf38 ; jne 0xfffaaf38
+cmp dword [ebx + 0x1001], 2
+jbe short loc_fffaaf59 ; jbe 0xfffaaf59
+jmp short loc_fffaaf6a ; jmp 0xfffaaf6a
+
+loc_fffaaf38: ; not directly referenced
+cmp ecx, 0x40660
+jne short loc_fffaaf49 ; jne 0xfffaaf49
+
+loc_fffaaf40: ; not directly referenced
+cmp dword [ebx + 0x1001], 0
+jmp short loc_fffaaf57 ; jmp 0xfffaaf57
+
+loc_fffaaf49: ; not directly referenced
+cmp ecx, 0x40650
+je short loc_fffaaf40 ; je 0xfffaaf40
+cmp ecx, 0x306d0
+
+loc_fffaaf57: ; not directly referenced
+jne short loc_fffaaf6a ; jne 0xfffaaf6a
+
+loc_fffaaf59: ; not directly referenced
+mov ecx, eax
+and ecx, 0xffe0ffff
+mov eax, ecx
+or eax, 0x10000
+jmp short loc_fffaaf7d ; jmp 0xfffaaf7d
+
+loc_fffaaf6a: ; not directly referenced
+mov ecx, dword [ebx + 0x103f]
+lea ecx, [ecx + esi*4 + 0x4980]
+mov dword [ecx], 1
+
+loc_fffaaf7d: ; not directly referenced
+push ecx
+push ecx
+lea ecx, [esi*8 + 0x48a8]
+push edx
+mov edx, ecx
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+mov eax, dword [ebx + 0x103f]
+and dword [ebp - 0x6c], 0xffff7f24
+add eax, edi
+or dword [ebp - 0x6c], 0x8092
+mov edx, dword [ebp - 0x6c]
+add esp, 0x10
+mov dword [eax], 0x20
+mov eax, dword [ebx + 0x103f]
+lea eax, [edi + eax - 0x1c0]
+mov dword [eax], edx
+
+loc_fffaafc2: ; not directly referenced
+inc esi
+add edi, 0x400
+cmp esi, 2
+jne loc_fffaaebe ; jne 0xfffaaebe
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x6c], 0
+mov dword [ebp - 0x8c], edi
+
+loc_fffaafe5: ; not directly referenced
+movzx eax, byte [ebx + 0x176a]
+mov ecx, dword [ebp - 0x6c]
+bt eax, ecx
+mov dl, byte [ebp - 0x6c]
+jb short loc_fffab008 ; jb 0xfffab008
+
+loc_fffaaff7: ; not directly referenced
+add dword [ebp - 0x6c], 2
+cmp dword [ebp - 0x6c], 4
+jne short loc_fffaafe5 ; jne 0xfffaafe5
+xor esi, esi
+jmp near loc_fffab127 ; jmp 0xfffab127
+
+loc_fffab008: ; not directly referenced
+shr dl, 1
+mov cl, byte [ebp - 0x6c]
+movzx edx, dl
+mov eax, 1
+imul edx, edx, 0xfb
+xor edi, edi
+shl eax, cl
+mov byte [ebp - 0x6d], 0
+and eax, 0xff
+mov dword [ebp - 0x88], edx
+mov dword [ebp - 0x84], eax
+
+loc_fffab034: ; not directly referenced
+mov edx, edi
+mov ecx, dword [ebp - 0x84]
+mov eax, ebx
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0x6d], al
+movzx edx, byte [ebp - 0x6d]
+bt edx, edi
+mov dword [ebp - 0x78], edx
+jae loc_fffab109 ; jae 0xfffab109
+imul eax, edi, 0x1347
+mov ecx, dword [ebp - 0x88]
+mov edx, dword [ebp - 0x8c]
+lea eax, [eax + ecx + 0x1150]
+lea ecx, [ebp - 0x30]
+lea esi, [edx + eax + 9]
+mov ax, word [esi + 0xd9]
+mov dx, word [esi + 0xd5]
+dec edx
+mov word [ebp - 0x38], dx
+lea edx, [eax - 0x100]
+mov word [ebp - 0x36], dx
+push edx
+movzx eax, ah
+mov edx, edi
+push 0
+mov dword [ebp - 0x74], eax
+dec eax
+push 0
+mov dword [ebp - 0x28], eax
+lea eax, [ebp - 0x3c]
+push 0
+push 0
+push ecx
+xor ecx, ecx
+push 0
+push eax
+mov eax, ebx
+call fcn_fffc3d24 ; call 0xfffc3d24
+mov eax, dword [esi + 0xd5]
+add esp, 0x20
+imul edx, edi, 0x28
+shr eax, 0xa
+add edx, 0x4808
+imul eax, dword [ebp - 0x74]
+mov dword [ebp - 0x90], edx
+dec eax
+call fcn_fffb21bf ; call 0xfffb21bf
+mov edx, dword [ebp - 0x90]
+mov ecx, dword [ebx + 0x103f]
+add ecx, edx
+and eax, 0x7f
+mov esi, eax
+or eax, 0x8000000
+or esi, 0x400000
+mov dword [ecx], esi
+mov ecx, dword [ebx + 0x103f]
+lea edx, [edx + ecx + 4]
+mov dword [edx], eax
+
+loc_fffab109: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffab034 ; jne 0xfffab034
+mov edx, dword [ebp - 0x78]
+mov eax, ebx
+call fcn_fffaa951 ; call 0xfffaa951
+test eax, eax
+mov esi, eax
+je loc_fffaaff7 ; je 0xfffaaff7
+
+loc_fffab127: ; not directly referenced
+cmp byte [ebx + 0x1740], 1
+jne short loc_fffab160 ; jne 0xfffab160
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffab148 ; jne 0xfffab148
+mov eax, dword [ebx + 0x103f]
+mov edi, dword [ebp - 0x80]
+mov dword [eax + 0x5004], edi
+
+loc_fffab148: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffab160 ; jne 0xfffab160
+mov eax, dword [ebx + 0x103f]
+mov edx, dword [ebp - 0x7c]
+mov dword [eax + 0x5008], edx
+
+loc_fffab160: ; not directly referenced
+mov edx, 0x3c
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffab185 ; jne 0xfffab185
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x48a8], 0x3000
+
+loc_fffab185: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffab19e ; jne 0xfffab19e
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x48b0], 0x3000
+
+loc_fffab19e: ; not directly referenced
+test esi, esi
+je short loc_fffab1ac ; je 0xfffab1ac
+
+loc_fffab1a2: ; not directly referenced
+mov dword [ebx + 0x174d], 1
+
+loc_fffab1ac: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffab1b6: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+mov esi, 0x80
+push ebx
+mov dl, byte [eax + 0x106a]
+movzx ecx, dl
+test dl, dl
+movzx edx, byte [eax + 0x1069]
+cmovne esi, ecx
+cmp dl, 6
+sete bl
+cmp dl, 1
+setbe cl
+or bl, cl
+jne short loc_fffab1f8 ; jne 0xfffab1f8
+xor edx, edx
+cmp dword [eax + 0x1749], 2
+setne dl
+lea edx, [edx*4 + 2]
+
+loc_fffab1f8: ; not directly referenced
+mov eax, dword [eax + 0x103f]
+and edx, 0xf
+shl edx, 0xc
+or edx, esi
+mov dword [eax + 0x4cb0], edx
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffab210:
+push ebp
+mov ebp, esp
+push esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x400]
+
+loc_fffab21e:
+mov dword [ebp + ebx*4 - 0x408], ebx
+mov ecx, ebx
+mov esi, 8
+
+loc_fffab22c:
+test cl, 1
+je short loc_fffab23b ; je 0xfffab23b
+shr ecx, 1
+xor ecx, 0xedb88320
+jmp short loc_fffab23d ; jmp 0xfffab23d
+
+loc_fffab23b:
+shr ecx, 1
+
+loc_fffab23d:
+dec esi
+jne short loc_fffab22c ; jne 0xfffab22c
+mov dword [ebp + ebx*4 - 0x408], ecx
+inc ebx
+cmp ebx, 0x100
+jne short loc_fffab21e ; jne 0xfffab21e
+or ecx, 0xffffffff
+xor bx, bx
+jmp short loc_fffab26d ; jmp 0xfffab26d
+
+loc_fffab258:
+mov esi, ecx
+xor cl, byte [eax + ebx]
+movzx ecx, cl
+inc ebx
+shr esi, 8
+mov ecx, dword [ebp + ecx*4 - 0x408]
+xor ecx, esi
+
+loc_fffab26d:
+cmp ebx, edx
+jne short loc_fffab258 ; jne 0xfffab258
+lea esp, [esp + 0x400]
+mov eax, ecx
+pop ebx
+not eax
+pop esi
+pop ebp
+ret
+
+fcn_fffab280: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x1c], 0
+lea eax, [ebx + 8]
+mov dword [ebp - 0x28], eax
+mov al, byte [ebx + 0x297b]
+lea edi, [ebx + 0x10b7]
+mov byte [ebx + 0x9e8], al
+mov eax, dword [ebx + 0x2974]
+mov dword [ebp - 0x2c], edi
+mov dword [ebx + 0x9e4], eax
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x30], edi
+lea edi, [ebx + 0x9e4]
+mov dword [ebp - 0x34], edi
+
+loc_fffab2cd: ; not directly referenced
+imul eax, dword [ebp - 0x1c], 0x2fa
+imul edx, dword [ebp - 0x1c], 0x1347
+mov edi, dword [ebp - 0x2c]
+add edx, dword [ebp - 0x30]
+mov dword [ebp - 0x20], 0
+lea eax, [edi + eax + 5]
+mov dword [ebp - 0x24], eax
+imul eax, dword [ebp - 0x1c], 0x2e6
+add eax, dword [ebp - 0x34]
+lea esi, [edx + 8]
+mov ecx, dword [esi + 0xf5]
+lea edi, [eax + 5]
+mov dword [edi + 5], ecx
+mov cl, byte [esi + 0x114f]
+mov byte [edi + 9], cl
+mov cl, byte [esi + 0xf0]
+mov byte [edi + 4], cl
+mov edx, dword [edx + 8]
+mov dword [eax + 5], edx
+
+loc_fffab320: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2a
+mov ecx, 0x2a
+lea edx, [esi + eax + 8]
+lea eax, [edi + eax + 0xa]
+call fcn_fffa115e ; call 0xfffa115e
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 4
+jne short loc_fffab320 ; jne 0xfffab320
+lea edx, [esi + 0x1151]
+mov ecx, 0xfb
+lea eax, [edi + 0xb2]
+call fcn_fffa115e ; call 0xfffa115e
+mov edx, dword [ebp - 0x24]
+mov ecx, 0x1f
+add edx, 0xa1
+lea eax, [edi + 0x2a8]
+call fcn_fffa115e ; call 0xfffa115e
+lea edx, [esi + 0x124c]
+mov ecx, 0xfb
+lea eax, [edi + 0x1ad]
+call fcn_fffa115e ; call 0xfffa115e
+mov edx, dword [ebp - 0x24]
+lea eax, [edi + 0x2c7]
+add edx, 0x1f0
+mov ecx, 0x1f
+call fcn_fffa115e ; call 0xfffa115e
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 2
+jne loc_fffab2cd ; jne 0xfffab2cd
+mov eax, dword [ebx + 0x172c]
+xor edx, edx
+mov dword [ebx + 0xfc2], eax
+mov eax, dword [ebx + 0x1730]
+mov dword [ebx + 0xfc6], eax
+mov eax, dword [ebx + 0x1734]
+mov dword [ebx + 0xfca], eax
+mov eax, dword [ebx + 0x1738]
+mov dword [ebx + 0xfce], eax
+lea eax, [ebx + 0x14]
+
+loc_fffab3df: ; not directly referenced
+lea ecx, [edx*4 + ref_fffcb80c] ; lea ecx, [edx*4 - 0x347f4]
+mov dword [ebp - 0x20], ecx
+movzx ecx, word [edx*4 + ref_fffcb80c] ; movzx ecx, word [edx*4 - 0x347f4]
+sub ecx, eax
+jmp short loc_fffab402 ; jmp 0xfffab402
+
+loc_fffab3f5: ; not directly referenced
+add esi, dword [ebx + 0x103f]
+mov esi, dword [esi]
+mov dword [eax], esi
+add eax, 4
+
+loc_fffab402: ; not directly referenced
+mov edi, dword [ebp - 0x20]
+lea esi, [eax + ecx]
+movzx edi, word [edi + 2]
+cmp esi, edi
+jbe short loc_fffab3f5 ; jbe 0xfffab3f5
+inc edx
+cmp edx, 0x5d
+jne short loc_fffab3df ; jne 0xfffab3df
+lea eax, [ebx + 0x9dc]
+call fcn_fffa9196 ; call 0xfffa9196
+mov eax, dword [ebx + 0x1005]
+mov edx, dword [ebx + 0x1037]
+mov dword [ebx + 0x9d8], eax
+mov eax, dword [ebx + 0x1001]
+mov dword [ebx + 0x9d4], eax
+mov eax, dword [ebx + 0x16c6]
+mov dword [ebx + 0xfb5], eax
+mov eax, dword [ebx + 0x16ce]
+mov dword [ebx + 0xfb9], eax
+mov al, byte [ebx + 0x16d6]
+mov byte [ebx + 0xfc1], al
+mov eax, dword [ebx + 0x16d2]
+mov dword [ebx + 0xfbd], eax
+mov al, byte [ebx + 0x1740]
+mov byte [ebx + 0xfd2], al
+mov eax, dword [ebx + 0x1749]
+mov dword [ebx + 0xfd3], eax
+mov al, byte [ebx + 0x1746]
+mov byte [ebx + 0xfd7], al
+mov eax, dword [ebx + 0x1033]
+call fcn_fffab210 ; call 0xfffab210
+mov dword [ebx + 0x9e0], eax
+mov edx, 0xfd0
+mov eax, dword [ebp - 0x28]
+call fcn_fffab210 ; call 0xfffab210
+mov dword [ebx + 4], eax
+lea esp, [esp + 0x2c]
+pop ebx
+xor eax, eax
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffab4bf:
+db 0x00
+
+fcn_fffab4c0: ; not directly referenced
+push ebp
+mov ecx, 0x20
+mov edx, 0x200
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+lea eax, [ebp - 0x218]
+push ebx
+lea esp, [esp - 0x39c]
+call fcn_fffa119f ; call 0xfffa119f
+mov ebx, dword [ebp + 8]
+add ebx, 0x16be
+mov dword [ebp - 0x380], ebx
+mov ebx, dword [ebp + 8]
+mov bl, byte [ebx + 0x176a]
+mov byte [ebp - 0x388], bl
+mov ebx, dword [ebp + 8]
+mov bl, byte [ebx + 0x176b]
+mov byte [ebp - 0x33c], bl
+mov ebx, dword [ebp + 8]
+add ebx, 0x2974
+mov dword [ebp - 0x368], ebx
+mov ebx, dword [ebp + 8]
+cmp dword [ebx + 0x1749], 2
+jne loc_fffaca53 ; jne 0xfffaca53
+lea edi, [ebp - 0x260]
+mov esi, ref_fffcb980 ; mov esi, 0xfffcb980
+mov ecx, 6
+mov edx, 0x10
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea eax, [ebp - 0x2a8]
+lea ebx, [ebp - 0x2a8]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0xc
+lea eax, [ebp - 0x2c8]
+mov byte [ebp - 0x2a7], 1
+lea esi, [ebp - 0x298]
+mov edi, 1
+call fcn_fffa119f ; call 0xfffa119f
+jmp short loc_fffab5b9 ; jmp 0xfffab5b9
+
+loc_fffab57e: ; not directly referenced
+mov eax, dword [ebp + ecx*4 - 0x2c8]
+mov edx, eax
+add eax, eax
+and edx, 0x8000
+and eax, 0xffff
+shr edx, 0xf
+or eax, edx
+mov edx, edi
+shl edx, cl
+and edx, dword [ebp - 0x358]
+sar edx, cl
+or eax, edx
+mov dword [ebp + ecx*4 - 0x2c8], eax
+inc ecx
+cmp ecx, 3
+jne short loc_fffab57e ; jne 0xfffab57e
+inc ebx
+cmp ebx, esi
+je short loc_fffab5c6 ; je 0xfffab5c6
+
+loc_fffab5b9: ; not directly referenced
+movzx eax, byte [ebx]
+xor ecx, ecx
+mov dword [ebp - 0x358], eax
+jmp short loc_fffab57e ; jmp 0xfffab57e
+
+loc_fffab5c6: ; not directly referenced
+lea eax, [ebp - 0x2c8]
+lea ebx, [ebp - 0x2bc]
+
+loc_fffab5d2: ; not directly referenced
+mov edx, dword [eax]
+mov ecx, edx
+add edx, edx
+and ecx, 0x8000
+and edx, 0xffff
+shr ecx, 0xf
+or edx, ecx
+mov dword [eax], edx
+add eax, 4
+cmp eax, ebx
+jne short loc_fffab5d2 ; jne 0xfffab5d2
+mov edx, dword [ebp + 8]
+mov ecx, dword [ebp + 8]
+add edx, 0x2974
+add ecx, 0x10b7
+mov ebx, 0x3074
+xor edi, edi
+mov dword [ebp - 0x340], edx
+mov dword [ebp - 0x344], ecx
+
+loc_fffab617: ; not directly referenced
+imul eax, edi, 0x1347
+mov esi, dword [ebp + 8]
+test byte [esi + eax + 0x3acb], 1
+jne short loc_fffab651 ; jne 0xfffab651
+
+loc_fffab62a: ; not directly referenced
+inc edi
+add ebx, 0x100
+cmp edi, 2
+jne short loc_fffab617 ; jne 0xfffab617
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x358], 0
+add ebx, 0x2974
+mov dword [ebp - 0x344], ebx
+jmp near loc_fffab71f ; jmp 0xfffab71f
+
+loc_fffab651: ; not directly referenced
+mov esi, dword [ebp - 0x340]
+mov ecx, 0xff
+mov edx, 0x40
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x358], eax
+imul eax, edi, 0x2fa
+mov esi, dword [ebp - 0x344]
+lea eax, [esi + eax + 0x2b3]
+call fcn_fffa119f ; call 0xfffa119f
+lea eax, [ebx - 0x3010]
+mov dword [ebp - 0x33c], eax
+xor eax, eax
+jmp short loc_fffab6ba ; jmp 0xfffab6ba
+
+loc_fffab693: ; not directly referenced
+movzx esi, al
+mov ecx, dword [ebp - 0x358]
+inc eax
+mov edx, dword [ecx + esi*4 + 0x169]
+mov ecx, dword [ebp - 0x348]
+shl esi, 9
+add esi, dword [ebp - 0x33c]
+add ecx, esi
+or edx, 0x60
+mov dword [ecx], edx
+
+loc_fffab6ba: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov edx, dword [esi + 0x103f]
+cmp al, byte [esi + 0x1755]
+mov dword [ebp - 0x348], edx
+jb short loc_fffab693 ; jb 0xfffab693
+mov esi, dword [ebp - 0x358]
+mov ecx, edx
+add ecx, ebx
+sub esp, 0xc
+mov edx, 1
+mov eax, dword [esi + 0x141]
+or eax, 0x1000008
+mov dword [ecx], eax
+mov ecx, edi
+push 0
+shl edx, cl
+mov eax, dword [ebp + 8]
+and edx, 0xff
+mov ecx, 1
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x358], eax
+je loc_fffab62a ; je 0xfffab62a
+jmp near loc_fffad341 ; jmp 0xfffad341
+
+loc_fffab71f: ; not directly referenced
+mov dl, byte [ebp - 0x358]
+mov ebx, 1
+shr dl, 1
+mov eax, ebx
+movzx ecx, dl
+add ecx, 5
+shl eax, cl
+mov cl, dl
+xor edx, edx
+shl ebx, cl
+mov cl, byte [ebp - 0x358]
+or eax, ebx
+and cl, 1
+mov ebx, edx
+cmove ebx, eax
+cmove eax, edx
+mov dword [ebp - 0x254], ebx
+mov dword [ebp - 0x250], eax
+xor ebx, ebx
+
+loc_fffab75d: ; not directly referenced
+imul eax, ebx, 0x1347
+mov esi, dword [ebp + 8]
+test byte [esi + eax + 0x3acb], 1
+je short loc_fffab79c ; je 0xfffab79c
+sub esp, 0xc
+lea edi, [ebp - 0x260]
+push dword [ebp - 0x2c0]
+push dword [ebp - 0x2c4]
+push dword [ebp - 0x2c8]
+xor ecx, ecx
+mov edx, ebx
+push 2
+mov eax, esi
+push edi
+call fcn_fffc9445 ; call 0xfffc9445
+add esp, 0x20
+
+loc_fffab79c: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffab75d ; jne 0xfffab75d
+mov edx, 3
+mov eax, dword [ebp + 8]
+call fcn_fffc96b2 ; call 0xfffc96b2
+mov ebx, dword [ebp + 8]
+xor esi, esi
+add ebx, 0x10b7
+mov dword [ebp - 0x340], ebx
+
+loc_fffab7c0: ; not directly referenced
+imul eax, esi, 0x1347
+mov ebx, dword [ebp + 8]
+test byte [ebx + eax + 0x3acb], 1
+jne short loc_fffab7de ; jne 0xfffab7de
+
+loc_fffab7d3: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffab7c0 ; jne 0xfffab7c0
+jmp near loc_fffab8d3 ; jmp 0xfffab8d3
+
+loc_fffab7de: ; not directly referenced
+mov edi, dword [ebp - 0x344]
+mov edx, dword [ebp - 0x340]
+mov ecx, dword [ebp + 8]
+lea eax, [edi + eax + 8]
+mov dword [ebp - 0x36c], eax
+imul eax, esi, 0x2fa
+mov cl, byte [ecx + 0x1755]
+mov byte [ebp - 0x33c], cl
+lea edi, [edx + eax + 5]
+mov edx, esi
+shl edx, 8
+xor eax, eax
+add edx, 0x54
+jmp short loc_fffab859 ; jmp 0xfffab859
+
+loc_fffab819: ; not directly referenced
+mov ecx, dword [ebp - 0x36c]
+mov bl, byte [edi + eax + 0x2a6]
+cmp byte [ecx + 0x1232], 0x20
+jne short loc_fffab83e ; jne 0xfffab83e
+and bl, 2
+je short loc_fffab83e ; je 0xfffab83e
+mov byte [ebp + eax - 0x2e8], 0
+jmp short loc_fffab852 ; jmp 0xfffab852
+
+loc_fffab83e: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov ecx, dword [ebx + 0x103f]
+add ecx, edx
+mov ebx, dword [ecx]
+mov byte [ebp + eax - 0x2e8], bl
+
+loc_fffab852: ; not directly referenced
+inc eax
+add edx, 0x200
+
+loc_fffab859: ; not directly referenced
+cmp byte [ebp - 0x33c], al
+ja short loc_fffab819 ; ja 0xfffab819
+xor edx, edx
+jmp short loc_fffab8c3 ; jmp 0xfffab8c3
+
+loc_fffab865: ; not directly referenced
+movzx eax, dl
+mov al, byte [ebp + eax - 0x2e8]
+test al, al
+je short loc_fffab8c2 ; je 0xfffab8c2
+xor ebx, ebx
+mov byte [ebp - 0x33c], 0
+xor ecx, ecx
+
+loc_fffab87e: ; not directly referenced
+test al, 1
+je short loc_fffab88f ; je 0xfffab88f
+test ecx, ecx
+jne short loc_fffab899 ; jne 0xfffab899
+movzx ebx, byte [ebp - 0x33c]
+mov cl, 1
+
+loc_fffab88f: ; not directly referenced
+inc byte [ebp - 0x33c]
+shr al, 1
+jne short loc_fffab87e ; jne 0xfffab87e
+
+loc_fffab899: ; not directly referenced
+movzx eax, dl
+mov dword [ebp - 0x33c], ebx
+lea ecx, [edi + eax*8]
+mov bl, byte [ebp - 0x358]
+mov al, byte [edi + eax + 0x2a6]
+lea eax, [ebx + eax*8]
+mov ebx, dword [ebp - 0x33c]
+mov byte [ebx + ecx + 0x2ae], al
+
+loc_fffab8c2: ; not directly referenced
+inc edx
+
+loc_fffab8c3: ; not directly referenced
+mov ebx, dword [ebp + 8]
+cmp dl, byte [ebx + 0x1755]
+jb short loc_fffab865 ; jb 0xfffab865
+jmp near loc_fffab7d3 ; jmp 0xfffab7d3
+
+loc_fffab8d3: ; not directly referenced
+inc byte [ebp - 0x358]
+cmp byte [ebp - 0x358], 8
+jne loc_fffab71f ; jne 0xfffab71f
+mov ebx, dword [ebp + 8]
+test byte [ebx + 0x3acb], 1
+jne short loc_fffab90a ; jne 0xfffab90a
+
+loc_fffab8f2: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x358], 0
+test byte [ebx + 0x4e12], 1
+je short loc_fffab95b ; je 0xfffab95b
+jmp short loc_fffab933 ; jmp 0xfffab933
+
+loc_fffab90a: ; not directly referenced
+sub esp, 0xc
+mov ecx, 1
+push 2
+mov edx, 1
+mov eax, dword [ebp + 8]
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x358], eax
+je short loc_fffab8f2 ; je 0xfffab8f2
+jmp near loc_fffad341 ; jmp 0xfffad341
+
+loc_fffab933: ; not directly referenced
+sub esp, 0xc
+mov ecx, 1
+push 2
+mov edx, 2
+mov eax, dword [ebp + 8]
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x358], eax
+jne loc_fffad341 ; jne 0xfffad341
+
+loc_fffab95b: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov ecx, 0x7f
+mov edx, 0x48
+lea eax, [ebp - 0x2a8]
+mov bl, byte [ebx + 0x176a]
+mov byte [ebp - 0x37c], bl
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x48
+lea eax, [ebp - 0x260]
+call fcn_fffa119f ; call 0xfffa119f
+mov ebx, dword [ebp + 8]
+mov eax, 0x3074
+add ebx, 0x2974
+mov dword [ebp - 0x33c], 0
+mov dword [ebp - 0x344], ebx
+
+loc_fffab9af: ; not directly referenced
+imul edx, dword [ebp - 0x33c], 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + edx + 0x12be], 2
+jne short loc_fffaba1f ; jne 0xfffaba1f
+mov edi, dword [ebp - 0x344]
+lea esi, [edi + edx + 8]
+lea edx, [eax - 0x3010]
+mov dword [ebp - 0x340], edx
+xor edx, edx
+jmp short loc_fffab9fe ; jmp 0xfffab9fe
+
+loc_fffab9e3: ; not directly referenced
+movzx edi, dl
+inc edx
+mov ecx, dword [esi + edi*4 + 0x169]
+shl edi, 9
+add edi, dword [ebp - 0x340]
+add ebx, edi
+or ecx, 0x60
+mov dword [ebx], ecx
+
+loc_fffab9fe: ; not directly referenced
+mov ebx, dword [ebp + 8]
+cmp dl, byte [ebx + 0x1755]
+mov ebx, dword [ebx + 0x103f]
+jb short loc_fffab9e3 ; jb 0xfffab9e3
+add ebx, eax
+mov edx, dword [esi + 0x141]
+or edx, 0x1000008
+mov dword [ebx], edx
+
+loc_fffaba1f: ; not directly referenced
+inc dword [ebp - 0x33c]
+add eax, 0x100
+cmp dword [ebp - 0x33c], 2
+jne loc_fffab9af ; jne 0xfffab9af
+xor edi, edi
+
+loc_fffaba39: ; not directly referenced
+mov ecx, edi
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x37c], bl
+jne short loc_fffaba6b ; jne 0xfffaba6b
+
+loc_fffaba4a: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffaba39 ; jne 0xfffaba39
+mov ebx, dword [ebp + 8]
+mov eax, 0x3074
+add ebx, 0x2974
+xor esi, esi
+mov dword [ebp - 0x340], ebx
+jmp near loc_fffabb88 ; jmp 0xfffabb88
+
+loc_fffaba6b: ; not directly referenced
+movzx eax, bl
+xor esi, esi
+mov dword [ebp - 0x340], eax
+
+loc_fffaba76: ; not directly referenced
+imul eax, esi, 0x1347
+mov ecx, dword [ebp + 8]
+mov byte [ebp - 0x33c], bl
+test byte [ecx + eax + 0x3acb], bl
+je short loc_fffabae0 ; je 0xfffabae0
+mov ecx, esi
+sub esp, 0xc
+mov edx, 1
+mov eax, dword [ebp + 8]
+shl edx, cl
+mov ecx, dword [ebp - 0x340]
+push 0
+and edx, 0xff
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+jne loc_fffac0f1 ; jne 0xfffac0f1
+sub esp, 0xc
+mov ecx, edi
+push 0
+mov edx, esi
+mov eax, dword [ebp + 8]
+push 0x4000
+push 0x3000
+push 4
+push ref_fffcc93c ; push 0xfffcc93c
+call fcn_fffc9445 ; call 0xfffc9445
+add esp, 0x20
+
+loc_fffabae0: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffaba76 ; jne 0xfffaba76
+push eax
+lea esi, [ebp - 0x2a8]
+mov ecx, 0x7f
+push eax
+mov edx, edi
+mov eax, dword [ebp + 8]
+push esi
+and ebx, 0xff
+xor esi, esi
+push 2
+call fcn_fffc97c8 ; call 0xfffc97c8
+pop eax
+pop edx
+lea eax, [ebp - 0x260]
+xor ecx, ecx
+push eax
+mov edx, edi
+mov eax, dword [ebp + 8]
+push 0xfffffffffffffffe
+call fcn_fffc97c8 ; call 0xfffc97c8
+add esp, 0x10
+
+loc_fffabb22: ; not directly referenced
+imul eax, esi, 0x1347
+mov ecx, dword [ebp + 8]
+mov dl, byte [ebp - 0x33c]
+test byte [ecx + eax + 0x3acb], dl
+jne short loc_fffabb45 ; jne 0xfffabb45
+
+loc_fffabb3a: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffabb22 ; jne 0xfffabb22
+jmp near loc_fffaba4a ; jmp 0xfffaba4a
+
+loc_fffabb45: ; not directly referenced
+push 1
+mov ecx, 4
+mov edx, esi
+push 0x40
+mov eax, dword [ebp + 8]
+push 1
+push 3
+call fcn_fffafa3c ; call 0xfffafa3c
+mov ecx, esi
+mov edx, 1
+mov eax, dword [ebp + 8]
+mov dword [esp], 2
+shl edx, cl
+mov ecx, ebx
+and edx, 0xff
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+je short loc_fffabb3a ; je 0xfffabb3a
+jmp near loc_fffac0f1 ; jmp 0xfffac0f1
+
+loc_fffabb88: ; not directly referenced
+imul edx, esi, 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + edx + 0x12be], 2
+je short loc_fffabbab ; je 0xfffabbab
+
+loc_fffabb9e: ; not directly referenced
+inc esi
+add eax, 0x100
+cmp esi, 2
+jne short loc_fffabb88 ; jne 0xfffabb88
+jmp short loc_fffabc10 ; jmp 0xfffabc10
+
+loc_fffabbab: ; not directly referenced
+mov edi, dword [ebp - 0x340]
+lea ebx, [edi + edx + 8]
+mov edi, dword [ebp + 8]
+mov edx, eax
+mov ecx, dword [ebx + 0x141]
+add edx, dword [edi + 0x103f]
+mov dword [edx], ecx
+lea ecx, [eax - 0x3010]
+xor edx, edx
+mov dword [ebp - 0x33c], ecx
+jmp short loc_fffabc03 ; jmp 0xfffabc03
+
+loc_fffabbd8: ; not directly referenced
+movzx ecx, dl
+inc edx
+mov edi, dword [ebx + ecx*4 + 0x169]
+shl ecx, 9
+mov dword [ebp - 0x344], edi
+mov edi, dword [ebp + 8]
+add ecx, dword [ebp - 0x33c]
+add ecx, dword [edi + 0x103f]
+mov edi, dword [ebp - 0x344]
+mov dword [ecx], edi
+
+loc_fffabc03: ; not directly referenced
+mov ecx, dword [ebp + 8]
+cmp dl, byte [ecx + 0x1755]
+jb short loc_fffabbd8 ; jb 0xfffabbd8
+jmp short loc_fffabb9e ; jmp 0xfffabb9e
+
+loc_fffabc10: ; not directly referenced
+mov ecx, 0x7f
+mov edx, 0x10
+lea ebx, [ebp - 0x2e8]
+mov eax, ebx
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x10
+lea eax, [ebp - 0x308]
+lea esi, [ebp - 0x330]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x10
+lea eax, [ebp - 0x2c8]
+lea edi, [ebp - 0x338]
+call fcn_fffa119f ; call 0xfffa119f
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x368], esi
+mov dword [ebp - 0x344], edi
+lea esi, [ebp - 0x260]
+lea edi, [ebp - 0x2a8]
+mov dword [ebp - 0x348], esi
+mov dword [ebp - 0x370], edi
+mov esi, dword [ebp - 0x344]
+mov edi, dword [ebp - 0x368]
+add eax, 0xfd8
+mov dword [ebp - 0x340], edi
+mov dword [ebp - 0x33c], esi
+xor edi, edi
+mov dword [ebp - 0x39c], eax
+
+loc_fffabca3: ; not directly referenced
+imul eax, edi, 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffabeb6 ; jne 0xfffabeb6
+imul edx, edi, 0x2fa
+mov ebx, dword [ebp + 8]
+mov esi, dword [ebp - 0x39c]
+xor ecx, ecx
+mov al, byte [ebx + eax + 0x3acb]
+mov ebx, dword [ebp - 0x370]
+lea edx, [esi + edx + 0xe4]
+mov byte [ebp - 0x384], al
+lea esi, [edi*4]
+mov dword [ebp - 0x388], esi
+mov esi, dword [ebp - 0x348]
+mov eax, dword [ebp - 0x388]
+mov dword [ebp - 0x38c], edx
+mov dword [ebp - 0x36c], ebx
+mov dword [ebp - 0x374], esi
+mov dword [ebp - 0x398], eax
+
+loc_fffabd19: ; not directly referenced
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x384], al
+je loc_fffabdf7 ; je 0xfffabdf7
+mov eax, dword [ebp - 0x398]
+mov edx, dword [ebp + 8]
+add eax, ecx
+lea ebx, [ebp - 0x2e8]
+add eax, eax
+mov dword [ebp - 0x3a0], 0
+add ebx, eax
+mov dl, byte [edx + 0x1755]
+mov dword [ebp - 0x3a4], ebx
+mov byte [ebp - 0x390], dl
+lea esi, [ebp + eax - 0x308]
+mov eax, dword [ebp - 0x388]
+add eax, ecx
+lea eax, [ebp + eax*2 - 0x2c8]
+mov dword [ebp - 0x394], eax
+jmp short loc_fffabdf3 ; jmp 0xfffabdf3
+
+loc_fffabd7b: ; not directly referenced
+mov ebx, dword [ebp - 0x38c]
+mov edx, dword [ebp - 0x3a0]
+movzx edx, byte [ebx + edx + 0x2ee]
+bt edx, eax
+jae short loc_fffabdb8 ; jae 0xfffabdb8
+mov edx, dword [ebp - 0x36c]
+mov bl, byte [edx + eax]
+mov edx, dword [ebp - 0x3a4]
+cmp byte [edx], bl
+jbe short loc_fffabda9 ; jbe 0xfffabda9
+mov byte [edx], bl
+
+loc_fffabda9: ; not directly referenced
+mov edx, dword [ebp - 0x374]
+mov bl, byte [edx + eax]
+cmp byte [esi], bl
+jae short loc_fffabdb8 ; jae 0xfffabdb8
+mov byte [esi], bl
+
+loc_fffabdb8: ; not directly referenced
+inc eax
+
+loc_fffabdb9: ; not directly referenced
+cmp byte [ebp - 0x390], al
+ja short loc_fffabd7b ; ja 0xfffabd7b
+movzx eax, byte [esi]
+mov ebx, dword [ebp - 0x3a4]
+inc esi
+inc dword [ebp - 0x3a4]
+movzx edx, byte [ebx]
+mov ebx, dword [ebp - 0x394]
+add eax, edx
+mov edx, dword [ebp - 0x3a0]
+sar eax, 1
+mov byte [ebx + edx], al
+inc edx
+cmp edx, 2
+mov dword [ebp - 0x3a0], edx
+je short loc_fffabdf7 ; je 0xfffabdf7
+
+loc_fffabdf3: ; not directly referenced
+xor eax, eax
+jmp short loc_fffabdb9 ; jmp 0xfffabdb9
+
+loc_fffabdf7: ; not directly referenced
+inc ecx
+add dword [ebp - 0x374], 9
+add dword [ebp - 0x36c], 9
+cmp ecx, 4
+jne loc_fffabd19 ; jne 0xfffabd19
+lea eax, [ebp + edi*8 - 0x2c7]
+xor cl, cl
+xor ebx, ebx
+mov esi, 1
+
+loc_fffabe1f: ; not directly referenced
+mov edx, esi
+shl edx, cl
+test byte [ebp - 0x384], dl
+je short loc_fffabe3a ; je 0xfffabe3a
+mov dl, byte [eax]
+sub dl, byte [eax - 1]
+mov byte [ebp + ecx - 0x328], dl
+inc ebx
+jmp short loc_fffabe42 ; jmp 0xfffabe42
+
+loc_fffabe3a: ; not directly referenced
+mov byte [ebp + ecx - 0x328], 0
+
+loc_fffabe42: ; not directly referenced
+inc ecx
+add eax, 2
+cmp ecx, 4
+jne short loc_fffabe1f ; jne 0xfffabe1f
+xor edx, edx
+test bl, bl
+je short loc_fffabe69 ; je 0xfffabe69
+movsx edx, byte [ebp - 0x328]
+movsx eax, byte [ebp - 0x327]
+movzx ebx, bl
+add eax, edx
+cdq
+idiv ebx
+mov dl, al
+
+loc_fffabe69: ; not directly referenced
+movsx ax, dl
+mov cl, 2
+mov esi, dword [ebp - 0x340]
+idiv cl
+mov ebx, dword [ebp - 0x33c]
+neg eax
+add eax, 0x40
+add edx, eax
+mov byte [esi], al
+movzx eax, byte [ebp + edi*8 - 0x2c7]
+mov byte [esi + 1], dl
+movzx edx, byte [ebp + edi*8 - 0x2c8]
+add eax, edx
+sar eax, 1
+movzx edx, byte [ebp + edi*8 - 0x2c6]
+mov byte [ebx], al
+movzx eax, byte [ebp + edi*8 - 0x2c5]
+add eax, edx
+sar eax, 1
+mov byte [ebx + 1], al
+
+loc_fffabeb6: ; not directly referenced
+inc edi
+add dword [ebp - 0x340], 2
+add dword [ebp - 0x33c], 2
+add dword [ebp - 0x348], 0x24
+add dword [ebp - 0x370], 0x24
+cmp edi, 2
+jne loc_fffabca3 ; jne 0xfffabca3
+mov ebx, dword [ebp + 8]
+xor di, di
+add ebx, 0x10b7
+mov dword [ebp - 0x36c], 0
+movzx esi, byte [ebp - 0x37c]
+mov dword [ebp - 0x374], ebx
+mov dword [ebp - 0x340], esi
+
+loc_fffabf05: ; not directly referenced
+imul esi, edi, 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + esi + 0x12be], 2
+jne loc_fffac0c0 ; jne 0xfffac0c0
+imul eax, edi, 0x2fa
+mov ebx, dword [ebp - 0x374]
+lea eax, [ebx + eax + 5]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x348], eax
+lea ebx, [ebx + esi + 0x297c]
+mov dword [ebp - 0x33c], ebx
+xor ebx, ebx
+
+loc_fffabf47: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov cl, bl
+mov eax, 1
+shl eax, cl
+test byte [edx + esi + 0x3acb], al
+je short loc_fffabf83 ; je 0xfffabf83
+mov ecx, dword [ebp - 0x344]
+and eax, 0xff
+push 1
+movzx edx, byte [ecx + ebx]
+mov ecx, 4
+push edx
+mov edx, edi
+push 1
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffabf83: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffabf47 ; jne 0xfffabf47
+xor bl, bl
+
+loc_fffabf8b: ; not directly referenced
+mov eax, dword [ebp - 0x368]
+mov edx, dword [ebp - 0x33c]
+movzx esi, byte [eax + ebx]
+movzx eax, byte [edx + ebx + 0x2fd]
+sub esi, eax
+je loc_fffac0b6 ; je 0xfffac0b6
+push 1
+mov cl, bl
+mov eax, 1
+push esi
+shl eax, cl
+mov edx, edi
+and eax, 0xff
+xor ecx, ecx
+push eax
+push dword [ebp - 0x340]
+mov eax, dword [ebp + 8]
+call fcn_fffafa3c ; call 0xfffafa3c
+mov eax, dword [ebp - 0x348]
+mov edx, dword [ebp - 0x348]
+add esp, 0x10
+mov al, byte [eax + 0x2f2]
+cmp byte [edx + ebx + 0x2ee], al
+jne short loc_fffac040 ; jne 0xfffac040
+mov edx, dword [ebp - 0x33c]
+mov eax, esi
+push 1
+mov ecx, 2
+add eax, dword [edx + 0x195]
+mov edx, edi
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push dword [ebp - 0x340]
+call fcn_fffafa3c ; call 0xfffafa3c
+mov ecx, dword [ebp - 0x33c]
+mov eax, esi
+push 1
+mov edx, edi
+add eax, dword [ecx + 0x18d]
+mov ecx, 3
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push dword [ebp - 0x340]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+
+loc_fffac040: ; not directly referenced
+mov eax, dword [ebp - 0x348]
+mov edx, dword [ebp - 0x348]
+mov dword [ebp - 0x36c], 1
+mov al, byte [eax + 0x2f3]
+cmp byte [edx + ebx + 0x2ee], al
+jne short loc_fffac0b6 ; jne 0xfffac0b6
+mov edx, dword [ebp - 0x33c]
+mov eax, esi
+push 1
+mov ecx, 2
+add eax, dword [edx + 0x199]
+mov edx, edi
+push eax
+mov eax, dword [ebp + 8]
+push 2
+push dword [ebp - 0x340]
+call fcn_fffafa3c ; call 0xfffafa3c
+mov ecx, dword [ebp - 0x33c]
+mov edx, edi
+push 1
+mov eax, dword [ebp + 8]
+add esi, dword [ecx + 0x1a1]
+mov ecx, 1
+push esi
+push 2
+push dword [ebp - 0x340]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+
+loc_fffac0b6: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffabf8b ; jne 0xfffabf8b
+
+loc_fffac0c0: ; not directly referenced
+inc edi
+add dword [ebp - 0x368], 2
+add dword [ebp - 0x344], 2
+cmp edi, 2
+jne loc_fffabf05 ; jne 0xfffabf05
+cmp dword [ebp - 0x36c], 0
+je short loc_fffac104 ; je 0xfffac104
+sub esp, 0xc
+push dword [ebp + 8]
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+jmp short loc_fffac104 ; jmp 0xfffac104
+
+loc_fffac0f1: ; not directly referenced
+mov dword [ebp - 0x358], eax
+cmp dword [ebp - 0x358], 0
+jne loc_fffad341 ; jne 0xfffad341
+
+loc_fffac104: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov ecx, 0x7f
+mov edx, 0x48
+lea eax, [ebp - 0x2a8]
+mov bl, byte [ebx + 0x176a]
+mov byte [ebp - 0x348], bl
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x48
+lea eax, [ebp - 0x260]
+call fcn_fffa119f ; call 0xfffa119f
+mov ebx, dword [ebp + 8]
+mov eax, 0x3074
+add ebx, 0x2974
+mov dword [ebp - 0x33c], 0
+mov dword [ebp - 0x344], ebx
+
+loc_fffac158: ; not directly referenced
+imul edx, dword [ebp - 0x33c], 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + edx + 0x12be], 2
+jne short loc_fffac1c8 ; jne 0xfffac1c8
+mov edi, dword [ebp - 0x344]
+lea esi, [edi + edx + 8]
+lea edx, [eax - 0x3010]
+mov dword [ebp - 0x340], edx
+xor edx, edx
+jmp short loc_fffac1a7 ; jmp 0xfffac1a7
+
+loc_fffac18c: ; not directly referenced
+movzx edi, dl
+inc edx
+mov ecx, dword [esi + edi*4 + 0x169]
+shl edi, 9
+add edi, dword [ebp - 0x340]
+add ebx, edi
+or ecx, 0x60
+mov dword [ebx], ecx
+
+loc_fffac1a7: ; not directly referenced
+mov ebx, dword [ebp + 8]
+cmp dl, byte [ebx + 0x1755]
+mov ebx, dword [ebx + 0x103f]
+jb short loc_fffac18c ; jb 0xfffac18c
+add ebx, eax
+mov edx, dword [esi + 0x141]
+or edx, 0x1000008
+mov dword [ebx], edx
+
+loc_fffac1c8: ; not directly referenced
+inc dword [ebp - 0x33c]
+add eax, 0x100
+cmp dword [ebp - 0x33c], 2
+jne loc_fffac158 ; jne 0xfffac158
+xor edi, edi
+
+loc_fffac1e2: ; not directly referenced
+mov ecx, edi
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x348], bl
+jne short loc_fffac214 ; jne 0xfffac214
+
+loc_fffac1f3: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffac1e2 ; jne 0xfffac1e2
+mov ebx, dword [ebp + 8]
+mov eax, 0x3074
+add ebx, 0x2974
+xor esi, esi
+mov dword [ebp - 0x340], ebx
+jmp near loc_fffac35f ; jmp 0xfffac35f
+
+loc_fffac214: ; not directly referenced
+movzx eax, bl
+xor esi, esi
+mov dword [ebp - 0x340], eax
+
+loc_fffac21f: ; not directly referenced
+imul eax, esi, 0x1347
+mov ecx, dword [ebp + 8]
+mov byte [ebp - 0x33c], bl
+test byte [ecx + eax + 0x3acb], bl
+je short loc_fffac289 ; je 0xfffac289
+mov ecx, esi
+sub esp, 0xc
+mov edx, 1
+mov eax, dword [ebp + 8]
+shl edx, cl
+mov ecx, dword [ebp - 0x340]
+push 0
+and edx, 0xff
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+jne loc_fffac65c ; jne 0xfffac65c
+sub esp, 0xc
+mov ecx, edi
+push 0
+mov edx, esi
+mov eax, dword [ebp + 8]
+push 0x4000
+push 0x3000
+push 4
+push ref_fffcc93c ; push 0xfffcc93c
+call fcn_fffc9445 ; call 0xfffc9445
+add esp, 0x20
+
+loc_fffac289: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffac21f ; jne 0xfffac21f
+push ecx
+lea esi, [ebp - 0x2a8]
+mov edx, edi
+push ecx
+mov eax, dword [ebp + 8]
+mov ecx, 0x7f
+push esi
+and ebx, 0xff
+push 2
+call fcn_fffc9bf1 ; call 0xfffc9bf1
+pop esi
+pop eax
+lea eax, [ebp - 0x260]
+xor ecx, ecx
+push eax
+mov edx, edi
+mov eax, dword [ebp + 8]
+push 0xfffffffffffffffe
+xor esi, esi
+call fcn_fffc9bf1 ; call 0xfffc9bf1
+add esp, 0x10
+
+loc_fffac2cb: ; not directly referenced
+imul eax, esi, 0x1347
+mov ecx, dword [ebp + 8]
+mov dl, byte [ebp - 0x33c]
+test byte [ecx + eax + 0x3acb], dl
+jne short loc_fffac2ee ; jne 0xfffac2ee
+
+loc_fffac2e3: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffac2cb ; jne 0xfffac2cb
+jmp near loc_fffac1f3 ; jmp 0xfffac1f3
+
+loc_fffac2ee: ; not directly referenced
+push 1
+mov ecx, 2
+mov edx, esi
+push 0x60
+mov eax, dword [ebp + 8]
+push 3
+push ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+push 1
+mov ecx, 3
+mov edx, esi
+push 0x60
+mov eax, dword [ebp + 8]
+push 1
+push ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+mov ecx, 1
+push 1
+mov edx, esi
+mov eax, dword [ebp + 8]
+push 0x60
+push 2
+push ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+mov ecx, esi
+mov edx, 1
+mov eax, dword [ebp + 8]
+mov dword [esp], 2
+shl edx, cl
+mov ecx, ebx
+and edx, 0xff
+call fcn_fffc957e ; call 0xfffc957e
+add esp, 0x10
+test eax, eax
+je short loc_fffac2e3 ; je 0xfffac2e3
+jmp near loc_fffac65c ; jmp 0xfffac65c
+
+loc_fffac35f: ; not directly referenced
+imul edx, esi, 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + edx + 0x12be], 2
+je short loc_fffac382 ; je 0xfffac382
+
+loc_fffac375: ; not directly referenced
+inc esi
+add eax, 0x100
+cmp esi, 2
+jne short loc_fffac35f ; jne 0xfffac35f
+jmp short loc_fffac3e7 ; jmp 0xfffac3e7
+
+loc_fffac382: ; not directly referenced
+mov edi, dword [ebp - 0x340]
+lea ebx, [edi + edx + 8]
+mov edi, dword [ebp + 8]
+mov edx, eax
+mov ecx, dword [ebx + 0x141]
+add edx, dword [edi + 0x103f]
+mov dword [edx], ecx
+lea ecx, [eax - 0x3010]
+xor edx, edx
+mov dword [ebp - 0x33c], ecx
+jmp short loc_fffac3da ; jmp 0xfffac3da
+
+loc_fffac3af: ; not directly referenced
+movzx ecx, dl
+inc edx
+mov edi, dword [ebx + ecx*4 + 0x169]
+shl ecx, 9
+mov dword [ebp - 0x344], edi
+mov edi, dword [ebp + 8]
+add ecx, dword [ebp - 0x33c]
+add ecx, dword [edi + 0x103f]
+mov edi, dword [ebp - 0x344]
+mov dword [ecx], edi
+
+loc_fffac3da: ; not directly referenced
+mov ecx, dword [ebp + 8]
+cmp dl, byte [ecx + 0x1755]
+jb short loc_fffac3af ; jb 0xfffac3af
+jmp short loc_fffac375 ; jmp 0xfffac375
+
+loc_fffac3e7: ; not directly referenced
+mov ecx, 0x7f
+mov edx, 4
+lea eax, [ebp - 0x2c8]
+lea ebx, [ebp - 0x308]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 4
+lea eax, [ebp - 0x2e8]
+lea esi, [ebp - 0x2a8]
+call fcn_fffa119f ; call 0xfffa119f
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x340], ebx
+add eax, 0x10b7
+lea edi, [ebp - 0x260]
+mov dword [ebp - 0x344], esi
+mov dword [ebp - 0x368], edi
+xor ebx, ebx
+mov dword [ebp - 0x384], eax
+
+loc_fffac442: ; not directly referenced
+imul eax, ebx, 0x1347
+mov edx, dword [ebp - 0x380]
+cmp dword [edx + eax + 0x12be], 2
+jne loc_fffac598 ; jne 0xfffac598
+imul edx, ebx, 0x2fa
+mov edi, dword [ebp + 8]
+mov esi, dword [ebp - 0x384]
+mov dword [ebp - 0x33c], 0
+mov al, byte [edi + eax + 0x3acb]
+mov edi, dword [ebp - 0x344]
+lea edx, [esi + edx + 5]
+mov byte [ebp - 0x370], al
+mov dword [ebp - 0x36c], edx
+lea eax, [ebp + ebx*2 - 0x18]
+mov esi, dword [ebp - 0x368]
+mov dword [ebp - 0x378], eax
+
+loc_fffac4a2: ; not directly referenced
+mov cl, byte [ebp - 0x33c]
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x370], al
+je short loc_fffac4d2 ; je 0xfffac4d2
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x37c], 0
+mov al, byte [eax + 0x1755]
+mov byte [ebp - 0x374], al
+jmp short loc_fffac54c ; jmp 0xfffac54c
+
+loc_fffac4d2: ; not directly referenced
+inc dword [ebp - 0x33c]
+add edi, 9
+add esi, 9
+cmp dword [ebp - 0x33c], 4
+jne short loc_fffac4a2 ; jne 0xfffac4a2
+jmp short loc_fffac55f ; jmp 0xfffac55f
+
+loc_fffac4e9: ; not directly referenced
+mov edx, dword [ebp - 0x36c]
+mov cl, byte [ebp - 0x37c]
+movzx eax, byte [edx + 0x2f2]
+mov edx, dword [ebp - 0x37c]
+sar eax, cl
+and eax, 1
+xor eax, 1
+add eax, dword [ebp - 0x378]
+mov dl, byte [edi + edx]
+mov cl, byte [eax - 0x2b0]
+cmp byte [eax - 0x2b0], dl
+cmovbe edx, ecx
+mov cl, byte [eax - 0x2d0]
+mov byte [eax - 0x2b0], dl
+mov edx, dword [ebp - 0x37c]
+mov dl, byte [esi + edx]
+cmp byte [eax - 0x2d0], dl
+cmovae edx, ecx
+inc dword [ebp - 0x37c]
+mov byte [eax - 0x2d0], dl
+
+loc_fffac54c: ; not directly referenced
+mov al, byte [ebp - 0x37c]
+cmp byte [ebp - 0x374], al
+ja short loc_fffac4e9 ; ja 0xfffac4e9
+jmp near loc_fffac4d2 ; jmp 0xfffac4d2
+
+loc_fffac55f: ; not directly referenced
+movzx edx, byte [ebp + ebx*2 - 0x2c8]
+mov esi, dword [ebp - 0x340]
+movzx eax, byte [ebp + ebx*2 - 0x2e8]
+add eax, edx
+mov edx, dword [ebp - 0x340]
+sar eax, 1
+mov byte [edx], al
+movzx edx, byte [ebp + ebx*2 - 0x2c7]
+movzx eax, byte [ebp + ebx*2 - 0x2e7]
+add eax, edx
+sar eax, 1
+mov byte [esi + 1], al
+
+loc_fffac598: ; not directly referenced
+inc ebx
+add dword [ebp - 0x340], 2
+add dword [ebp - 0x344], 0x24
+add dword [ebp - 0x368], 0x24
+cmp ebx, 2
+jne loc_fffac442 ; jne 0xfffac442
+movzx esi, byte [ebp - 0x348]
+xor bl, bl
+
+loc_fffac5c0: ; not directly referenced
+imul eax, ebx, 0x1347
+mov edi, dword [ebp - 0x380]
+cmp dword [edi + eax + 0x12be], 2
+jne short loc_fffac650 ; jne 0xfffac650
+push 1
+movzx eax, byte [ebp + ebx*2 - 0x308]
+mov ecx, 2
+push eax
+mov edx, ebx
+mov eax, dword [ebp + 8]
+push 1
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+push 1
+movzx eax, byte [ebp + ebx*2 - 0x308]
+mov ecx, 3
+push eax
+mov edx, ebx
+mov eax, dword [ebp + 8]
+push 1
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+mov ecx, 2
+push 1
+movzx eax, byte [ebp + ebx*2 - 0x307]
+mov edx, ebx
+push eax
+mov eax, dword [ebp + 8]
+push 2
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+push 1
+movzx eax, byte [ebp + ebx*2 - 0x307]
+mov ecx, 1
+push eax
+mov edx, ebx
+mov eax, dword [ebp + 8]
+push 2
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+
+loc_fffac650: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffac5c0 ; jne 0xfffac5c0
+jmp short loc_fffac66f ; jmp 0xfffac66f
+
+loc_fffac65c: ; not directly referenced
+mov dword [ebp - 0x358], eax
+cmp dword [ebp - 0x358], 0
+jne loc_fffad341 ; jne 0xfffad341
+
+loc_fffac66f: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x344], 0x4220
+add ebx, 0xfd8
+mov dword [ebp - 0x340], 0
+mov dword [ebp - 0x394], ebx
+mov ebx, dword [ebp + 8]
+add ebx, 0x2974
+mov dword [ebp - 0x398], ebx
+
+loc_fffac6a1: ; not directly referenced
+imul eax, dword [ebp - 0x340], 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffaca27 ; jne 0xfffaca27
+imul edx, dword [ebp - 0x340], 0x2fa
+mov esi, dword [ebp - 0x394]
+mov edi, dword [ebp - 0x398]
+mov byte [ebp - 0x33c], 0
+mov byte [ebp - 0x368], 0
+xor ebx, ebx
+lea eax, [edi + eax + 8]
+lea ecx, [esi + edx + 0xe4]
+mov dword [ebp - 0x378], eax
+xor esi, esi
+xor eax, eax
+
+loc_fffac6fa: ; not directly referenced
+mov dl, byte [ecx + eax + 0x2a6]
+cmp dl, 2
+mov byte [ebp - 0x348], dl
+je short loc_fffac73e ; je 0xfffac73e
+ja short loc_fffac721 ; ja 0xfffac721
+mov dl, al
+and edx, 7
+cmp byte [ebp - 0x348], 0
+mov edi, edx
+cmove esi, edi
+jmp short loc_fffac756 ; jmp 0xfffac756
+
+loc_fffac721: ; not directly referenced
+cmp byte [ebp - 0x348], 4
+je short loc_fffac74b ; je 0xfffac74b
+mov dl, al
+and edx, 7
+cmp byte [ebp - 0x348], 6
+movzx edi, dl
+cmove ebx, edi
+jmp short loc_fffac756 ; jmp 0xfffac756
+
+loc_fffac73e: ; not directly referenced
+mov dl, al
+and edx, 7
+mov byte [ebp - 0x33c], dl
+jmp short loc_fffac756 ; jmp 0xfffac756
+
+loc_fffac74b: ; not directly referenced
+mov dl, al
+and edx, 7
+mov byte [ebp - 0x368], dl
+
+loc_fffac756: ; not directly referenced
+inc eax
+cmp eax, 8
+jne short loc_fffac6fa ; jne 0xfffac6fa
+mov al, byte [ebp - 0x33c]
+mov dl, byte [ebp - 0x368]
+and eax, 7
+and edx, 7
+shl eax, 0x1c
+and esi, 7
+mov dword [ebp - 0x33c], eax
+mov eax, ebx
+and eax, 7
+mov dword [ebp - 0x388], ebx
+shl edx, 0x18
+mov byte [ebp - 0x348], 0
+shl eax, 0x1c
+xor edi, edi
+shl esi, 0x18
+or eax, edx
+shr edx, 0x18
+or dword [ebp - 0x33c], esi
+mov ebx, esi
+mov byte [ebp - 0x374], dl
+mov dl, byte [ebp - 0x33c]
+xor esi, esi
+shr ebx, 0x18
+and edx, 7
+mov byte [ebp - 0x368], dl
+mov byte [ebp - 0x36c], bl
+movzx edx, bl
+mov ebx, dword [ebp - 0x388]
+lea edx, [ecx + edx*8]
+mov dword [ebp - 0x384], edx
+mov edx, dword [ebp - 0x33c]
+mov byte [ebp - 0x37c], 0
+shr edx, 0x1c
+mov byte [ebp - 0x370], 0
+lea edx, [ecx + edx*8]
+mov dword [ebp - 0x390], edx
+movzx edx, byte [ebp - 0x374]
+lea edx, [ecx + edx*8]
+lea ecx, [ecx + ebx*8]
+mov dword [ebp - 0x38c], edx
+mov dword [ebp - 0x388], ecx
+xor edx, edx
+xor ebx, ebx
+
+loc_fffac813: ; not directly referenced
+mov ecx, dword [ebp - 0x384]
+mov cl, byte [ecx + ebx + 0x2ae]
+cmp cl, 1
+mov byte [ebp - 0x39c], cl
+je short loc_fffac83d ; je 0xfffac83d
+jb short loc_fffac835 ; jb 0xfffac835
+cmp cl, 2
+cmove esi, edx
+jmp short loc_fffac843 ; jmp 0xfffac843
+
+loc_fffac835: ; not directly referenced
+mov byte [ebp - 0x368], dl
+jmp short loc_fffac843 ; jmp 0xfffac843
+
+loc_fffac83d: ; not directly referenced
+mov byte [ebp - 0x348], dl
+
+loc_fffac843: ; not directly referenced
+mov ecx, dword [ebp - 0x390]
+mov cl, byte [ecx + ebx + 0x2ae]
+cmp cl, 0x11
+mov byte [ebp - 0x39c], cl
+je short loc_fffac868 ; je 0xfffac868
+cmp cl, 0x12
+je short loc_fffac870 ; je 0xfffac870
+cmp cl, 0x10
+cmove edi, edx
+jmp short loc_fffac876 ; jmp 0xfffac876
+
+loc_fffac868: ; not directly referenced
+mov byte [ebp - 0x37c], dl
+jmp short loc_fffac876 ; jmp 0xfffac876
+
+loc_fffac870: ; not directly referenced
+mov byte [ebp - 0x370], dl
+
+loc_fffac876: ; not directly referenced
+mov ecx, dword [ebp - 0x38c]
+mov cl, byte [ecx + ebx + 0x2ae]
+cmp cl, 0x21
+mov byte [ebp - 0x39c], cl
+je short loc_fffac8a2 ; je 0xfffac8a2
+cmp cl, 0x22
+je short loc_fffac8af ; je 0xfffac8af
+cmp cl, 0x20
+jne short loc_fffac8bc ; jne 0xfffac8bc
+mov ecx, edx
+and eax, 0xfffffff8
+and ecx, 7
+jmp short loc_fffac8ba ; jmp 0xfffac8ba
+
+loc_fffac8a2: ; not directly referenced
+mov ecx, edx
+and eax, 0xffffff8f
+and ecx, 7
+shl ecx, 4
+jmp short loc_fffac8ba ; jmp 0xfffac8ba
+
+loc_fffac8af: ; not directly referenced
+mov ecx, edx
+and ah, 0xf8
+and ecx, 7
+shl ecx, 8
+
+loc_fffac8ba: ; not directly referenced
+or eax, ecx
+
+loc_fffac8bc: ; not directly referenced
+mov ecx, dword [ebp - 0x388]
+mov cl, byte [ecx + ebx + 0x2ae]
+cmp cl, 0x31
+mov byte [ebp - 0x39c], cl
+je short loc_fffac8eb ; je 0xfffac8eb
+cmp cl, 0x32
+je short loc_fffac8fa ; je 0xfffac8fa
+cmp cl, 0x30
+jne short loc_fffac909 ; jne 0xfffac909
+mov ecx, edx
+and ah, 0x8f
+and ecx, 7
+shl ecx, 0xc
+jmp short loc_fffac907 ; jmp 0xfffac907
+
+loc_fffac8eb: ; not directly referenced
+mov ecx, edx
+and eax, 0xfff8ffff
+and ecx, 7
+shl ecx, 0x10
+jmp short loc_fffac907 ; jmp 0xfffac907
+
+loc_fffac8fa: ; not directly referenced
+mov ecx, edx
+and eax, 0xff8fffff
+and ecx, 7
+shl ecx, 0x14
+
+loc_fffac907: ; not directly referenced
+or eax, ecx
+
+loc_fffac909: ; not directly referenced
+inc edx
+inc ebx
+and edx, 7
+cmp ebx, 8
+jne loc_fffac813 ; jne 0xfffac813
+mov dl, byte [ebp - 0x348]
+mov cl, byte [ebp - 0x368]
+and edx, 7
+and ecx, 7
+shl edx, 4
+or ecx, dword [ebp - 0x33c]
+and esi, 7
+or ecx, edx
+shl esi, 8
+and edi, 7
+or ecx, esi
+mov dl, byte [ebp - 0x37c]
+shl edi, 0xc
+and ecx, 0xfff88fff
+and edx, 7
+or ecx, edi
+shl edx, 0x10
+mov ebx, dword [ebp - 0x378]
+or ecx, edx
+mov dl, byte [ebp - 0x370]
+and edx, 7
+and ecx, 0xff8fffff
+shl edx, 0x14
+or ecx, edx
+cmp byte [ebx + 0x1232], 0x20
+jne loc_fffaca04 ; jne 0xfffaca04
+mov dl, byte [ebp - 0x36c]
+and ecx, 0x8fffffff
+shl edx, 0x1c
+and eax, 0x8fffffff
+or ecx, edx
+mov edx, ecx
+and ch, 0x8f
+and edx, 7
+shl edx, 0xc
+or ecx, edx
+mov edx, ecx
+and ecx, 0xfff8ffff
+shl edx, 0xc
+and edx, 0x70000
+or ecx, edx
+mov edx, ecx
+and ecx, 0xff8fffff
+shl edx, 0xc
+and edx, 0x700000
+or ecx, edx
+mov dl, byte [ebp - 0x374]
+shl edx, 0x1c
+or eax, edx
+mov edx, eax
+and ah, 0x8f
+and edx, 7
+shl edx, 0xc
+or eax, edx
+mov edx, eax
+and eax, 0xfff8ffff
+shl edx, 0xc
+and edx, 0x70000
+or eax, edx
+mov edx, eax
+and eax, 0xff8fffff
+shl edx, 0xc
+and edx, 0x700000
+or eax, edx
+
+loc_fffaca04: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov edx, dword [ebp - 0x344]
+mov esi, dword [ebp - 0x344]
+add edx, dword [ebx + 0x103f]
+mov dword [edx], ecx
+mov edx, dword [ebx + 0x103f]
+lea edx, [esi + edx + 4]
+mov dword [edx], eax
+
+loc_fffaca27: ; not directly referenced
+inc dword [ebp - 0x340]
+add dword [ebp - 0x344], 0x400
+cmp dword [ebp - 0x340], 2
+jne loc_fffac6a1 ; jne 0xfffac6a1
+mov ebx, dword [ebp + 8]
+mov byte [ebx + 0x1744], 1
+jmp near loc_fffad341 ; jmp 0xfffad341
+
+loc_fffaca53: ; not directly referenced
+imul esi, edi, 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + esi + 0x12be], 2
+jne loc_fffacafd ; jne 0xfffacafd
+mov ebx, dword [ebp - 0x368]
+mov byte [ebp - 0x358], 0
+lea ebx, [ebx + esi + 8]
+mov dword [ebp - 0x340], ebx
+jmp short loc_fffacad9 ; jmp 0xfffacad9
+
+loc_fffaca86: ; not directly referenced
+movzx eax, byte [ebp - 0x358]
+xor ebx, ebx
+mov dword [ebp - 0x344], eax
+
+loc_fffaca95: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov cl, bl
+mov eax, 1
+shl eax, cl
+test byte [edx + esi + 0x3acb], al
+je short loc_fffacacd ; je 0xfffacacd
+cmp byte [edx + 0x102c], 1
+jne short loc_fffacacd ; jne 0xfffacacd
+push edx
+mov ecx, ebx
+mov edx, edi
+push 0x20
+mov eax, dword [ebp + 8]
+push 5
+push dword [ebp - 0x344]
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffacacd: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffaca95 ; jne 0xfffaca95
+inc byte [ebp - 0x358]
+
+loc_fffacad9: ; not directly referenced
+mov ebx, dword [ebp + 8]
+movzx ecx, byte [ebx + 0x1755]
+cmp byte [ebp - 0x358], cl
+jb short loc_fffaca86 ; jb 0xfffaca86
+mov eax, dword [ebp - 0x340]
+xor edx, edx
+add eax, 0xf9
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffacafd: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffaca53 ; jne 0xfffaca53
+movzx edx, byte [ebp - 0x33c]
+mov eax, dword [ebp + 8]
+call fcn_fffc58d3 ; call 0xfffc58d3
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x358], 0
+add ebx, 0x2974
+mov dword [ebp - 0x384], ebx
+
+loc_fffacb2c: ; not directly referenced
+mov dl, byte [ebp - 0x358]
+sub esp, 0xc
+and edx, 0x7f
+mov ebx, edx
+mov eax, edx
+shl ebx, 0xe
+mov ecx, edx
+shl eax, 0x15
+shl ecx, 7
+or eax, ebx
+mov ebx, dword [ebp + 8]
+or eax, ecx
+or eax, edx
+mov edx, dword [ebx + 0x103f]
+mov dword [edx + 0x390c], eax
+push ebx
+call fcn_fffbd7da ; call 0xfffbd7da
+mov al, byte [ebp - 0x358]
+add esp, 0x10
+movzx esi, byte [ebp - 0x358]
+mov dword [ebp - 0x374], 0
+shr al, 1
+mov dword [ebp - 0x344], esi
+movzx eax, al
+sub esi, 2
+lea eax, [ebp + eax*8 - 0x218]
+mov dword [ebp - 0x378], esi
+mov dword [ebp - 0x368], eax
+
+loc_fffacb9d: ; not directly referenced
+mov cl, byte [ebp - 0x374]
+mov esi, 1
+shl esi, cl
+mov ebx, esi
+test byte [ebp - 0x388], bl
+je loc_fffad153 ; je 0xfffad153
+mov edi, esi
+xor ebx, ebx
+and edi, 0xff
+
+loc_fffacbc2: ; not directly referenced
+mov ecx, edi
+mov edx, ebx
+mov eax, dword [ebp + 8]
+call fcn_fffc41bb ; call 0xfffc41bb
+imul eax, ebx, 0x1347
+mov ecx, dword [ebp + 8]
+mov edx, esi
+mov dword [ebp + ebx*4 - 0x338], 0
+mov dword [ebp + ebx*4 - 0x330], 0
+test byte [ecx + eax + 0x3acb], dl
+je short loc_fffacc2b ; je 0xfffacc2b
+push eax
+mov ecx, edi
+mov edx, ebx
+push eax
+mov eax, dword [ebp + 8]
+push 4
+push 3
+call fcn_fffb96d4 ; call 0xfffb96d4
+mov ecx, dword [ebp + 8]
+mov edx, ebx
+shl edx, 0xa
+add esp, 0x10
+mov eax, dword [ecx + 0x103f]
+lea edx, [edx + eax + 0x4194]
+mov eax, dword [edx]
+or eax, 0x80000000
+mov dword [edx], eax
+
+loc_fffacc2b: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffacbc2 ; jne 0xfffacbc2
+mov ebx, esi
+mov eax, 1
+mov byte [ebp - 0x33c], bl
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x348], 0xffffffe0
+movzx ecx, byte [ebx + 0x1755]
+shl eax, cl
+dec eax
+mov dword [ebp - 0x340], eax
+
+loc_fffacc5b: ; not directly referenced
+push 1
+mov al, byte [ebp - 0x348]
+mov ecx, dword [ebp - 0x348]
+push 0
+mov byte [ebp - 0x36c], al
+mov edx, 1
+push 0
+mov eax, dword [ebp + 8]
+xor ebx, ebx
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffacc8f: ; not directly referenced
+imul eax, ebx, 0x1347
+mov ecx, dword [ebp + 8]
+mov dl, byte [ebp - 0x33c]
+test byte [ecx + eax + 0x3acb], dl
+je short loc_fffacd0f ; je 0xfffacd0f
+mov edi, dword [ebp - 0x384]
+lea esi, [edi + eax + 8]
+mov eax, ebx
+shl eax, 8
+mov dword [ebp - 0x370], eax
+add eax, 0x64
+mov dword [ebp - 0x37c], eax
+xor eax, eax
+jmp short loc_fffacce4 ; jmp 0xfffacce4
+
+loc_fffaccc9: ; not directly referenced
+movzx edi, al
+inc eax
+mov edx, dword [esi + edi*4 + 0x169]
+shl edi, 9
+add edi, dword [ebp - 0x37c]
+add ecx, edi
+or edx, 0x60
+mov dword [ecx], edx
+
+loc_fffacce4: ; not directly referenced
+mov edx, dword [ebp + 8]
+cmp al, byte [edx + 0x1755]
+mov ecx, dword [edx + 0x103f]
+jb short loc_fffaccc9 ; jb 0xfffaccc9
+mov eax, dword [esi + 0x141]
+mov esi, dword [ebp - 0x370]
+or eax, 0x1000001
+lea edx, [esi + ecx + 0x3074]
+mov dword [edx], eax
+
+loc_fffacd0f: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffacc8f ; jne 0xfffacc8f
+mov eax, dword [ebp + 8]
+mov edi, 1
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov ebx, dword [ebp + 8]
+mov edx, 2
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4800], 5
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov eax, ebx
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov eax, ebx
+mov edx, 2
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4800], 2
+xor eax, eax
+
+loc_fffacd6a: ; not directly referenced
+imul edx, eax, 0x1347
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x33c]
+test byte [esi + edx + 0x3acb], bl
+je short loc_fffacdf0 ; je 0xfffacdf0
+mov dl, byte [esi + 0x1755]
+xor ecx, ecx
+mov byte [ebp - 0x370], dl
+mov edx, eax
+shl edx, 8
+add edx, 0x54
+jmp short loc_fffacdc5 ; jmp 0xfffacdc5
+
+loc_fffacd9a: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov ebx, edx
+add ebx, dword [esi + 0x103f]
+mov esi, edi
+shl esi, cl
+mov ebx, dword [ebx]
+dec ebx
+jne short loc_fffacdb7 ; jne 0xfffacdb7
+or dword [ebp + eax*4 - 0x338], esi
+jmp short loc_fffacdbe ; jmp 0xfffacdbe
+
+loc_fffacdb7: ; not directly referenced
+or dword [ebp + eax*4 - 0x330], esi
+
+loc_fffacdbe: ; not directly referenced
+inc ecx
+add edx, 0x200
+
+loc_fffacdc5: ; not directly referenced
+cmp byte [ebp - 0x370], cl
+ja short loc_fffacd9a ; ja 0xfffacd9a
+mov ebx, dword [ebp - 0x340]
+cmp dword [ebp + eax*4 - 0x338], ebx
+jne short loc_fffacdf0 ; jne 0xfffacdf0
+mov esi, dword [ebp - 0x368]
+mov bl, byte [ebp - 0x36c]
+cmp byte [esi + eax*4], bl
+jle short loc_fffacdf0 ; jle 0xfffacdf0
+mov byte [esi + eax*4], bl
+
+loc_fffacdf0: ; not directly referenced
+inc eax
+cmp eax, 2
+jne loc_fffacd6a ; jne 0xfffacd6a
+xor edi, edi
+
+loc_fffacdfc: ; not directly referenced
+imul eax, edi, 0x1347
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x33c]
+test byte [esi + eax + 0x3acb], bl
+je short loc_ffface85 ; je 0xffface85
+mov ebx, dword [ebp - 0x384]
+lea esi, [ebx + eax + 8]
+mov ebx, edi
+shl ebx, 8
+lea eax, [ebx + 0x64]
+mov dword [ebp - 0x36c], eax
+xor eax, eax
+jmp short loc_ffface5b ; jmp 0xffface5b
+
+loc_ffface30: ; not directly referenced
+movzx edx, al
+inc eax
+mov ecx, dword [esi + edx*4 + 0x169]
+shl edx, 9
+mov dword [ebp - 0x370], ecx
+mov ecx, dword [ebp + 8]
+add edx, dword [ebp - 0x36c]
+add edx, dword [ecx + 0x103f]
+mov ecx, dword [ebp - 0x370]
+mov dword [edx], ecx
+
+loc_ffface5b: ; not directly referenced
+mov edx, dword [ebp + 8]
+cmp al, byte [edx + 0x1755]
+jb short loc_ffface30 ; jb 0xffface30
+mov eax, edx
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov ecx, dword [ebp + 8]
+mov eax, dword [esi + 0x141]
+mov edx, dword [ecx + 0x103f]
+lea edx, [ebx + edx + 0x3074]
+mov dword [edx], eax
+
+loc_ffface85: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffacdfc ; jne 0xfffacdfc
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x33c]
+test byte [esi + 0x3acb], bl
+je short loc_fffacebe ; je 0xfffacebe
+mov edi, dword [ebp - 0x340]
+cmp dword [ebp - 0x338], edi
+jne loc_fffad328 ; jne 0xfffad328
+cmp dword [ebp - 0x330], edi
+jne loc_fffad328 ; jne 0xfffad328
+
+loc_fffacebe: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x33c]
+test byte [esi + 0x4e12], bl
+je short loc_fffaceed ; je 0xfffaceed
+mov edi, dword [ebp - 0x340]
+cmp dword [ebp - 0x334], edi
+jne loc_fffad328 ; jne 0xfffad328
+cmp dword [ebp - 0x32c], edi
+jne loc_fffad328 ; jne 0xfffad328
+
+loc_fffaceed: ; not directly referenced
+mov edx, dword [ebp - 0x374]
+xor edi, edi
+shl edx, 2
+lea eax, [ebp + edx - 0x328]
+lea ecx, [ebp + edx - 0x2e8]
+lea esi, [ebp + edx - 0x2a8]
+mov dword [ebp - 0x370], eax
+lea ebx, [ebp + edx - 0x308]
+lea eax, [ebp + edx - 0x2c8]
+mov dword [ebp - 0x348], ecx
+lea edx, [ebp + edx - 0x260]
+mov dword [ebp - 0x36c], esi
+mov dword [ebp - 0x394], edx
+
+loc_fffacf3a: ; not directly referenced
+imul edx, edi, 0x1347
+mov esi, dword [ebp + 8]
+mov cl, byte [ebp - 0x33c]
+test byte [esi + edx + 0x3acb], cl
+je loc_fffad0d7 ; je 0xfffad0d7
+xor ecx, ecx
+mov esi, dword [ebp - 0x340]
+cmp dword [ebp + edi*4 - 0x338], esi
+jne short loc_fffacf73 ; jne 0xfffacf73
+xor ecx, ecx
+cmp dword [ebp + edi*4 - 0x330], esi
+sete cl
+
+loc_fffacf73: ; not directly referenced
+cmp byte [ebp - 0x358], 0
+setne dl
+test dl, cl
+je short loc_fffacfa0 ; je 0xfffacfa0
+mov esi, dword [ebp - 0x368]
+movsx edx, byte [esi + edi*4]
+movsx esi, byte [esi + edi*4 - 8]
+sub edx, esi
+cmp edx, 0x10
+setle dl
+movzx edx, dl
+jmp near loc_fffad035 ; jmp 0xfffad035
+
+loc_fffacfa0: ; not directly referenced
+cmp byte [ebp - 0x358], 0
+mov edx, ecx
+jne loc_fffad035 ; jne 0xfffad035
+test ecx, ecx
+je short loc_fffacff4 ; je 0xfffacff4
+mov edx, dword [ebp - 0x370]
+mov ecx, dword [ebp - 0x348]
+mov esi, dword [ebp - 0x36c]
+mov dword [ebx], 0
+mov dword [eax], 0
+mov dword [edx], 0
+mov edx, dword [ebp - 0x394]
+mov dword [ecx], 0
+mov dword [esi], 0
+mov dword [edx], 0
+jmp near loc_fffad0d7 ; jmp 0xfffad0d7
+
+loc_fffacff4: ; not directly referenced
+mov ecx, dword [ebp - 0x370]
+mov esi, dword [ebp - 0x348]
+mov edx, dword [ebp - 0x36c]
+mov dword [ebx], 0xfffffffe
+mov dword [eax], 0xfffffffe
+mov dword [ecx], 0xfffffffe
+mov ecx, dword [ebp - 0x394]
+mov dword [esi], 0xfffffffe
+mov dword [edx], 0xfffffffe
+mov dword [ecx], 0xfffffffe
+jmp near loc_fffad0d7 ; jmp 0xfffad0d7
+
+loc_fffad035: ; not directly referenced
+test edx, edx
+je loc_fffad0d7 ; je 0xfffad0d7
+mov esi, dword [ebp - 0x378]
+cmp dword [ebx], esi
+jne short loc_fffad04f ; jne 0xfffad04f
+mov esi, dword [ebp - 0x344]
+mov dword [ebx], esi
+
+loc_fffad04f: ; not directly referenced
+mov esi, dword [ebp - 0x378]
+cmp dword [eax], esi
+mov esi, dword [ebp - 0x344]
+jne short loc_fffad061 ; jne 0xfffad061
+jmp short loc_fffad069 ; jmp 0xfffad069
+
+loc_fffad061: ; not directly referenced
+mov edx, dword [ebp - 0x348]
+mov dword [edx], esi
+
+loc_fffad069: ; not directly referenced
+mov dword [eax], esi
+cmp byte [ebp - 0x358], 0x7e
+jne short loc_fffad095 ; jne 0xfffad095
+mov edx, dword [ebp - 0x370]
+cmp dword [edx], 0
+jne short loc_fffad095 ; jne 0xfffad095
+mov edx, dword [ebx]
+cmp edx, dword [ebp - 0x344]
+je short loc_fffad095 ; je 0xfffad095
+mov esi, dword [ebp - 0x344]
+lea edx, [edx + esi + 2]
+mov dword [eax], edx
+
+loc_fffad095: ; not directly referenced
+mov edx, dword [ebp - 0x348]
+mov esi, dword [eax]
+mov ecx, esi
+mov edx, dword [edx]
+sub ecx, edx
+mov dword [ebp - 0x37c], edx
+mov dword [ebp - 0x38c], ecx
+mov ecx, dword [ebp - 0x394]
+mov edx, dword [ecx]
+mov ecx, dword [ebp - 0x36c]
+sub edx, dword [ecx]
+cmp dword [ebp - 0x38c], edx
+jle short loc_fffad0d7 ; jle 0xfffad0d7
+mov edx, dword [ebp - 0x37c]
+mov dword [ecx], edx
+mov ecx, dword [ebp - 0x394]
+mov dword [ecx], esi
+
+loc_fffad0d7: ; not directly referenced
+inc edi
+add dword [ebp - 0x370], 0x10
+add ebx, 0x10
+add dword [ebp - 0x348], 0x10
+add eax, 0x10
+add dword [ebp - 0x36c], 0x10
+add dword [ebp - 0x394], 0x10
+cmp edi, 2
+jne loc_fffacf3a ; jne 0xfffacf3a
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x33c]
+test byte [esi + 0x3acb], bl
+je short loc_fffad12b ; je 0xfffad12b
+mov edx, dword [esi + 0x103f]
+mov eax, dword [edx + 0x4194]
+and eax, 0x7fffffff
+mov dword [edx + 0x4194], eax
+
+loc_fffad12b: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x33c]
+test byte [esi + 0x4e12], bl
+je short loc_fffad153 ; je 0xfffad153
+mov edx, dword [esi + 0x103f]
+mov eax, dword [edx + 0x4594]
+and eax, 0x7fffffff
+mov dword [edx + 0x4594], eax
+
+loc_fffad153: ; not directly referenced
+inc dword [ebp - 0x374]
+inc dword [ebp - 0x368]
+cmp dword [ebp - 0x374], 4
+jne loc_fffacb9d ; jne 0xfffacb9d
+add byte [ebp - 0x358], 2
+cmp byte [ebp - 0x358], 0x80
+jne loc_fffacb2c ; jne 0xfffacb2c
+lea ebx, [ebp - 0x2a8]
+mov dword [ebp - 0x340], ebx
+mov ebx, dword [ebp + 8]
+lea edi, [ebp - 0x260]
+add ebx, 0x2974
+xor esi, esi
+mov dword [ebp - 0x370], ebx
+
+loc_fffad1a3: ; not directly referenced
+imul eax, esi, 0x1347
+mov ebx, dword [ebp - 0x380]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffad2d3 ; jne 0xfffad2d3
+mov ebx, dword [ebp - 0x370]
+mov byte [ebp - 0x348], 0
+xor edx, edx
+mov byte [ebp - 0x368], 0
+mov byte [ebp - 0x344], 0
+xor ecx, ecx
+lea ebx, [ebx + eax + 8]
+mov dword [ebp - 0x36c], ebx
+mov ebx, dword [ebp + 8]
+mov al, byte [ebx + eax + 0x3acb]
+mov byte [ebp - 0x374], al
+
+loc_fffad1f6: ; not directly referenced
+mov ebx, 1
+mov al, cl
+shl ebx, cl
+test byte [ebp - 0x374], bl
+je short loc_fffad270 ; je 0xfffad270
+mov ebx, dword [ebp - 0x340]
+mov ebx, dword [ebx + ecx*4]
+mov dword [ebp - 0x33c], ebx
+mov ebx, dword [edi + ecx*4]
+sub ebx, dword [ebp - 0x33c]
+mov dword [ebp - 0x358], ebx
+je loc_fffad31c ; je 0xfffad31c
+cmp dword [ebp - 0x358], 0x10
+mov bl, 0x40
+jle short loc_fffad244 ; jle 0xfffad244
+mov ebx, dword [ebp - 0x358]
+sar ebx, 1
+add ebx, dword [ebp - 0x33c]
+
+loc_fffad244: ; not directly referenced
+cmp al, 2
+je short loc_fffad263 ; je 0xfffad263
+and ebx, 0x7f
+cmp al, 3
+je short loc_fffad26a ; je 0xfffad26a
+dec al
+je short loc_fffad25b ; je 0xfffad25b
+mov byte [ebp - 0x344], bl
+jmp short loc_fffad270 ; jmp 0xfffad270
+
+loc_fffad25b: ; not directly referenced
+mov byte [ebp - 0x368], bl
+jmp short loc_fffad270 ; jmp 0xfffad270
+
+loc_fffad263: ; not directly referenced
+mov dl, bl
+and edx, 0x7f
+jmp short loc_fffad270 ; jmp 0xfffad270
+
+loc_fffad26a: ; not directly referenced
+mov byte [ebp - 0x348], bl
+
+loc_fffad270: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffad1f6 ; jne 0xfffad1f6
+mov al, byte [ebp - 0x348]
+mov ebx, dword [ebp + 8]
+and eax, 0x7f
+and edx, 0x7f
+shl edx, 0xe
+mov cl, byte [ebp - 0x368]
+shl eax, 0x15
+and ecx, 0x7f
+shl ecx, 7
+or eax, edx
+mov dl, byte [ebp - 0x344]
+or eax, ecx
+and edx, 0x7f
+mov ecx, esi
+shl ecx, 8
+or eax, edx
+mov edx, dword [ebx + 0x103f]
+lea edx, [ecx + edx + 0x180c]
+mov dword [edx], eax
+mov eax, dword [ebp - 0x36c]
+movzx ecx, byte [ebx + 0x1755]
+add eax, 0xf9
+xor edx, edx
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffad2d3: ; not directly referenced
+inc esi
+add edi, 0x10
+add dword [ebp - 0x340], 0x10
+cmp esi, 2
+jne loc_fffad1a3 ; jne 0xfffad1a3
+push 2
+xor ecx, ecx
+mov edx, 1
+push 0
+mov eax, dword [ebp + 8]
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x14
+push dword [ebp + 8]
+call fcn_fffbd7da ; call 0xfffbd7da
+mov dword [ebp - 0x358], eax
+add esp, 0x10
+jmp short loc_fffad341 ; jmp 0xfffad341
+
+loc_fffad31c: ; not directly referenced
+mov dword [ebp - 0x358], 6
+jmp short loc_fffad341 ; jmp 0xfffad341
+
+loc_fffad328: ; not directly referenced
+add dword [ebp - 0x348], 8
+cmp dword [ebp - 0x348], 0x20
+jne loc_fffacc5b ; jne 0xfffacc5b
+jmp near loc_fffaceed ; jmp 0xfffaceed
+
+loc_fffad341: ; not directly referenced
+mov eax, dword [ebp - 0x358]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffad34f:
+db 0x00
+
+fcn_fffad350: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, edx
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x4c]
+mov byte [ebp - 0x2a], cl
+mov al, byte [ebp + 8]
+mov dl, byte [ebp + 0xc]
+mov cl, byte [ebp + 0x18]
+mov byte [ebp - 0x2c], al
+mov byte [ebp - 0x48], dl
+mov byte [ebp - 0x2b], cl
+mov edx, 2
+xor ecx, ecx
+lea eax, [ebp - 0x21]
+mov edi, dword [ebp + 0x10]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 1
+mov edx, 7
+lea eax, [ebp - 0x1f]
+call fcn_fffa119f ; call 0xfffa119f
+movzx eax, byte [ebp - 0x2a]
+mov dl, byte [ebp - 0x48]
+shr edx, 1
+mov dword [ebp - 0x30], eax
+sar eax, 1
+and edx, 1
+and eax, 1
+mov dword [ebp - 0x38], edx
+movzx ecx, byte [ebp - 0x2b]
+mov dword [ebp - 0x34], eax
+mov eax, esi
+mov dword [ebp - 0x50], ecx
+movzx esi, al
+mov dword [ebp - 0x4c], esi
+jmp near loc_fffad512 ; jmp 0xfffad512
+
+loc_fffad3c5: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+bt edx, esi
+jae short loc_fffad43d ; jae 0xfffad43d
+movzx eax, byte [edi + esi]
+mov ecx, dword [ebp + 0x14]
+movzx edx, byte [ecx + esi]
+mov cl, byte [ebp - 0x2c]
+add eax, edx
+add eax, dword [ebp - 0x50]
+imul edx, esi, 0x1347
+sar eax, 1
+mov byte [ebp + esi - 0x21], al
+and cl, byte [ebx + edx + 0x3acb]
+test byte [ebp - 0x48], 1
+mov byte [ebp - 0x29], cl
+je short loc_fffad419 ; je 0xfffad419
+push 0
+and eax, 0xff
+mov edx, esi
+push eax
+movzx eax, cl
+mov ecx, dword [ebp - 0x4c]
+push 1
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffad419: ; not directly referenced
+cmp dword [ebp - 0x38], 0
+je short loc_fffad43d ; je 0xfffad43d
+push 0
+movzx eax, byte [ebp + esi - 0x21]
+mov ecx, dword [ebp - 0x4c]
+push eax
+movzx eax, byte [ebp - 0x29]
+mov edx, esi
+push 2
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffad43d: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffad3c5 ; jne 0xfffad3c5
+sub esp, 0xc
+xor si, si
+push ebx
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+mov byte [ebp - 0x29], 0
+
+loc_fffad456: ; not directly referenced
+push edx
+xor ecx, ecx
+push edx
+mov edx, dword [ebp + 0x1c]
+push 0
+movsx eax, byte [edx + esi]
+mov edx, 2
+push eax
+mov eax, ebx
+call fcn_fffafeda ; call 0xfffafeda
+add esp, 0xc
+lea eax, [ebp - 0x1f]
+push 0
+movzx ecx, byte [ebx + 0x1768]
+mov edx, dword [ebp - 0x30]
+push 1
+push eax
+mov eax, ebx
+call fcn_fffb21f3 ; call 0xfffb21f3
+add esp, 0x10
+or byte [ebp - 0x29], al
+mov dl, byte [ebp - 0x2a]
+cmp byte [ebp - 0x29], dl
+jne short loc_fffad49e ; jne 0xfffad49e
+
+loc_fffad49a: ; not directly referenced
+xor ecx, ecx
+jmp short loc_fffad4a6 ; jmp 0xfffad4a6
+
+loc_fffad49e: ; not directly referenced
+inc esi
+cmp esi, 2
+je short loc_fffad49a ; je 0xfffad49a
+jmp short loc_fffad456 ; jmp 0xfffad456
+
+loc_fffad4a6: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x2a], dl
+je short loc_fffad4e5 ; je 0xfffad4e5
+mov esi, dword [ebp + 0x14]
+mov al, byte [edi + ecx]
+cmp byte [esi + ecx], al
+jbe short loc_fffad4e5 ; jbe 0xfffad4e5
+and dl, byte [ebp - 0x29]
+cmp byte [ebp - 0x2b], 0
+je short loc_fffad4d1 ; je 0xfffad4d1
+test dl, dl
+mov dl, byte [ebp + ecx - 0x21]
+je short loc_fffad4da ; je 0xfffad4da
+dec edx
+jmp short loc_fffad4e2 ; jmp 0xfffad4e2
+
+loc_fffad4d1: ; not directly referenced
+test dl, dl
+mov dl, byte [ebp + ecx - 0x21]
+je short loc_fffad4df ; je 0xfffad4df
+inc edx
+
+loc_fffad4da: ; not directly referenced
+mov byte [edi + ecx], dl
+jmp short loc_fffad4e5 ; jmp 0xfffad4e5
+
+loc_fffad4df: ; not directly referenced
+mov esi, dword [ebp + 0x14]
+
+loc_fffad4e2: ; not directly referenced
+mov byte [esi + ecx], dl
+
+loc_fffad4e5: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne short loc_fffad4a6 ; jne 0xfffad4a6
+test byte [ebp - 0x2a], 1
+mov al, 1
+je short loc_fffad4fd ; je 0xfffad4fd
+mov esi, dword [ebp + 0x14]
+mov al, byte [edi]
+cmp byte [esi], al
+setbe al
+
+loc_fffad4fd: ; not directly referenced
+cmp dword [ebp - 0x34], 0
+je short loc_fffad50e ; je 0xfffad50e
+mov esi, dword [ebp + 0x14]
+mov dl, byte [edi + 1]
+cmp byte [esi + 1], dl
+ja short loc_fffad512 ; ja 0xfffad512
+
+loc_fffad50e: ; not directly referenced
+test al, al
+jne short loc_fffad519 ; jne 0xfffad519
+
+loc_fffad512: ; not directly referenced
+xor esi, esi
+jmp near loc_fffad3c5 ; jmp 0xfffad3c5
+
+loc_fffad519: ; not directly referenced
+push eax
+xor ecx, ecx
+mov edx, 2
+push eax
+mov eax, ebx
+push 0
+push 0
+call fcn_fffafeda ; call 0xfffafeda
+mov dword [esp], ebx
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad540: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov dword [ebp - 0x2c], eax
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x34], dl
+mov byte [ebp - 0x35], cl
+mov byte [ebp - 0x30], al
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x24]
+mov ebx, dword [ebp + 0xc]
+mov byte [ebp - 0x1a], 0xf8
+mov byte [ebp - 0x19], 8
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x22]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x1e]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0x7f
+mov edx, 2
+lea eax, [ebp - 0x1c]
+call fcn_fffa119f ; call 0xfffa119f
+movzx esi, byte [ebp - 0x35]
+xor edx, edx
+mov ecx, esi
+mov eax, dword [ebp - 0x2c]
+call fcn_fffc41bb ; call 0xfffc41bb
+test ebx, ebx
+mov edi, eax
+je short loc_fffad5be ; je 0xfffad5be
+mov al, byte [ebx]
+mov byte [ebp - 0x20], al
+
+loc_fffad5be: ; not directly referenced
+mov ecx, esi
+mov edx, 1
+mov eax, dword [ebp - 0x2c]
+call fcn_fffc41bb ; call 0xfffc41bb
+or eax, edi
+test ebx, ebx
+je short loc_fffad5d9 ; je 0xfffad5d9
+mov dl, byte [ebx + 1]
+mov byte [ebp - 0x1f], dl
+
+loc_fffad5d9: ; not directly referenced
+cmp byte [ebp - 0x34], 0
+jne short loc_fffad60d ; jne 0xfffad60d
+push edx
+movzx ecx, al
+lea eax, [ebp - 0x1a]
+push 0
+xor edx, edx
+push 0
+push eax
+movzx eax, byte [ebp - 0x1c]
+push eax
+movsx eax, byte [ebp - 0x1e]
+push eax
+movzx eax, byte [ebp - 0x30]
+push eax
+mov eax, dword [ebp - 0x2c]
+push esi
+call fcn_fffc13c0 ; call 0xfffc13c0
+add esp, 0x20
+jmp near loc_fffad6e9 ; jmp 0xfffad6e9
+
+loc_fffad60d: ; not directly referenced
+movzx eax, al
+movzx edi, byte [ebp - 0x30]
+mov dword [ebp - 0x30], eax
+push eax
+movzx ecx, byte [ebp - 0x34]
+push eax
+lea eax, [ebp - 0x1a]
+mov dword [ebp - 0x34], ecx
+push eax
+lea eax, [ebp - 0x20]
+mov ecx, dword [ebp - 0x30]
+push 0
+mov edx, dword [ebp - 0x34]
+push eax
+lea eax, [ebp - 0x1e]
+push eax
+mov eax, dword [ebp - 0x2c]
+push edi
+push esi
+call fcn_fffad350 ; call 0xfffad350
+mov al, byte [ebp - 0x20]
+add esp, 0x20
+mov byte [ebp - 0x24], al
+test ebx, ebx
+mov al, byte [ebp - 0x1f]
+mov byte [ebp - 0x23], al
+je short loc_fffad65c ; je 0xfffad65c
+mov al, byte [ebx]
+mov byte [ebp - 0x20], al
+mov al, byte [ebx + 1]
+mov byte [ebp - 0x1f], al
+
+loc_fffad65c: ; not directly referenced
+push ecx
+lea eax, [ebp - 0x1a]
+mov edx, dword [ebp - 0x34]
+push ecx
+mov ecx, dword [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x1c]
+push 1
+push eax
+lea eax, [ebp - 0x20]
+push eax
+mov eax, dword [ebp - 0x2c]
+push edi
+push esi
+xor esi, esi
+call fcn_fffad350 ; call 0xfffad350
+mov al, byte [ebp - 0x20]
+add esp, 0x20
+mov byte [ebp - 0x22], al
+mov al, byte [ebp - 0x1f]
+mov byte [ebp - 0x21], al
+
+loc_fffad68d: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+bt eax, esi
+jae short loc_fffad6e3 ; jae 0xfffad6e3
+imul eax, esi, 0x1347
+mov ecx, dword [ebp - 0x2c]
+mov dl, byte [ebp - 0x35]
+and dl, byte [ecx + eax + 0x3acb]
+movzx eax, byte [ebp + esi - 0x22]
+cmp al, 0x7f
+jne short loc_fffad6bd ; jne 0xfffad6bd
+cmp byte [ebp + esi - 0x24], 0
+jne short loc_fffad6bd ; jne 0xfffad6bd
+mov al, byte [ebx + esi]
+jmp short loc_fffad6c8 ; jmp 0xfffad6c8
+
+loc_fffad6bd: ; not directly referenced
+movzx ecx, byte [ebp + esi - 0x24]
+lea eax, [ecx + eax + 1]
+shr eax, 1
+
+loc_fffad6c8: ; not directly referenced
+push 1
+movzx eax, al
+mov ecx, dword [ebp - 0x34]
+push eax
+movzx eax, dl
+mov edx, esi
+push edi
+push eax
+mov eax, dword [ebp - 0x2c]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffad6e3: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffad68d ; jne 0xfffad68d
+
+loc_fffad6e9: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad6f1: ; not directly referenced
+push ebp
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x4c]
+mov ebx, dword [ebp + 8]
+cmp dword [ebx + 0x1749], 2
+lea eax, [ebx + 0x16be]
+sete dl
+mov dword [ebp - 0x40], eax
+mov dword [ebp - 0x44], edx
+mov al, byte [ebx + 0x176a]
+cmp dword [ebp - 0x44], 0
+mov ecx, dword [ebx + 0x1021]
+movzx edx, byte [ebx + 0x176b]
+mov byte [ebp - 0x2c], al
+jne short loc_fffad753 ; jne 0xfffad753
+cmp dword [ebx + 0x297c], 2
+je loc_fffad81a ; je 0xfffad81a
+cmp dword [ebx + 0x3cc3], 2
+je loc_fffad81e ; je 0xfffad81e
+mov al, 0x40
+jmp near loc_fffad83e ; jmp 0xfffad83e
+
+loc_fffad753: ; not directly referenced
+sub esp, 0xc
+mov ecx, 0xa
+push 1
+mov eax, ebx
+call fcn_fffc1345 ; call 0xfffc1345
+mov eax, dword [ebx + 0x2b09]
+mov edx, 3
+mov byte [ebp - 0x1e], al
+mov eax, dword [ebx + 0x2b11]
+mov byte [ebp - 0x1a], al
+mov eax, dword [ebx + 0x3e50]
+pop ecx
+mov byte [ebp - 0x1d], al
+mov eax, dword [ebx + 0x3e58]
+pop edi
+mov byte [ebp - 0x19], al
+lea eax, [ebp - 0x1e]
+push eax
+movzx esi, byte [ebp - 0x2c]
+mov eax, ebx
+push 1
+mov ecx, esi
+lea edi, [ebp - 0x1a]
+call fcn_fffad540 ; call 0xfffad540
+pop eax
+pop edx
+mov ecx, esi
+mov edx, 2
+push edi
+mov eax, ebx
+push 1
+call fcn_fffad540 ; call 0xfffad540
+mov eax, dword [ebx + 0x2b15]
+mov edx, 2
+mov byte [ebp - 0x1a], al
+mov eax, dword [ebx + 0x2b1d]
+mov byte [ebp - 0x1c], al
+mov eax, dword [ebx + 0x3e5c]
+mov byte [ebp - 0x19], al
+mov eax, dword [ebx + 0x3e64]
+pop ecx
+mov byte [ebp - 0x1b], al
+mov ecx, esi
+pop eax
+mov eax, ebx
+push edi
+push 2
+call fcn_fffad540 ; call 0xfffad540
+pop eax
+pop edx
+lea eax, [ebp - 0x1c]
+mov ecx, esi
+push eax
+mov edx, 1
+mov eax, ebx
+push 2
+call fcn_fffad540 ; call 0xfffad540
+add esp, 0x10
+cmp dword [ebx + 0x297c], 2
+jne loc_fffad9a0 ; jne 0xfffad9a0
+jmp near loc_fffad91f ; jmp 0xfffad91f
+
+loc_fffad81a: ; not directly referenced
+xor eax, eax
+jmp short loc_fffad823 ; jmp 0xfffad823
+
+loc_fffad81e: ; not directly referenced
+mov eax, 1
+
+loc_fffad823: ; not directly referenced
+imul eax, eax, 0x1347
+imul ecx, ecx, 0x2a
+add ecx, eax
+mov al, 0x55
+cmp word [ebx + ecx + 0x2988], 2
+mov cl, 0x40
+cmovne eax, ecx
+
+loc_fffad83e: ; not directly referenced
+sub esp, 0xc
+mov byte [ebp - 0x21], al
+push 1
+mov byte [ebp - 0x22], al
+mov ecx, 0xa
+mov eax, ebx
+mov byte [ebp - 0x1f], 0x40
+mov byte [ebp - 0x20], 0x40
+xor esi, esi
+call fcn_fffc1345 ; call 0xfffc1345
+lea edx, [ebx + 0x2974]
+add esp, 0x10
+mov dword [ebp - 0x30], edx
+
+loc_fffad86b: ; not directly referenced
+imul eax, esi, 0x1347
+mov ecx, dword [ebp - 0x40]
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffad910 ; jne 0xfffad910
+mov edx, dword [ebp - 0x30]
+xor ecx, ecx
+push 1
+lea edi, [edx + eax + 8]
+mov edx, esi
+movzx eax, byte [edi + 0x2fd]
+neg eax
+push eax
+push 1
+movzx eax, byte [edi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+push 1
+movzx eax, byte [ebp + esi - 0x22]
+mov ecx, 2
+push eax
+mov edx, esi
+push 1
+movzx eax, byte [edi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+mov ecx, 1
+push 1
+movzx eax, byte [ebp + esi - 0x22]
+mov edx, esi
+push eax
+push 1
+movzx eax, byte [edi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+push 1
+movzx eax, byte [ebp + esi - 0x20]
+mov ecx, 4
+push eax
+mov edx, esi
+push 1
+movzx eax, byte [edi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+
+loc_fffad910: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffad86b ; jne 0xfffad86b
+jmp near loc_fffadd81 ; jmp 0xfffadd81
+
+loc_fffad91f: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov edx, 0x80080020
+mov dword [eax + 0x4908], 0
+xor eax, eax
+mov ecx, eax
+or ecx, 0x80000
+and ecx, 0xfffff807
+mov eax, ecx
+push ecx
+or eax, 8
+push ecx
+push edx
+mov edx, 0x4910
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+mov eax, dword [ebx + 0x103f]
+mov edx, 0x48d8
+mov dword [eax + 0x4198], 0x2c08
+mov eax, dword [ebx + 0x103f]
+mov byte [eax + 0x4958], 0xff
+mov eax, ebx
+pop esi
+pop edi
+push 0
+push 0
+call fcn_fffb210b ; call 0xfffb210b
+pop eax
+pop edx
+mov eax, ebx
+mov edx, 0x48e8
+push 0
+push 0x3f8
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+
+loc_fffad9a0: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne loc_fffada2e ; jne 0xfffada2e
+mov eax, dword [ebx + 0x103f]
+mov edx, 0x80080020
+mov dword [eax + 0x490c], 0
+xor eax, eax
+mov ecx, eax
+or ecx, 0x80000
+and ecx, 0xfffff807
+mov eax, ecx
+push ecx
+or eax, 8
+push ecx
+push edx
+mov edx, 0x4918
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+mov eax, dword [ebx + 0x103f]
+mov edx, 0x48e0
+mov dword [eax + 0x4598], 0x2c08
+mov eax, dword [ebx + 0x103f]
+mov byte [eax + 0x495c], 0xff
+mov eax, ebx
+pop esi
+pop edi
+push 0
+push 0
+call fcn_fffb210b ; call 0xfffb210b
+pop eax
+pop edx
+mov eax, ebx
+mov edx, 0x48f0
+push 0
+push 0x3f8
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+
+loc_fffada2e: ; not directly referenced
+lea edi, [ebx + 0x3fc4]
+xor esi, esi
+
+loc_fffada36: ; not directly referenced
+mov ecx, esi
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x2c], al
+je short loc_fffada89 ; je 0xfffada89
+test byte [ebx + 0x3acb], al
+mov dl, al
+je short loc_fffada59 ; je 0xfffada59
+mov cl, byte [edi - 0x1347]
+mov byte [ebp - 0x20], cl
+jmp short loc_fffada5d ; jmp 0xfffada5d
+
+loc_fffada59: ; not directly referenced
+mov byte [ebp - 0x20], 0
+
+loc_fffada5d: ; not directly referenced
+test byte [ebx + 0x4e12], dl
+je short loc_fffada6c ; je 0xfffada6c
+mov dl, byte [edi]
+mov byte [ebp - 0x1f], dl
+jmp short loc_fffada70 ; jmp 0xfffada70
+
+loc_fffada6c: ; not directly referenced
+mov byte [ebp - 0x1f], 0
+
+loc_fffada70: ; not directly referenced
+movzx ecx, al
+mov edx, 4
+push eax
+push eax
+lea eax, [ebp - 0x20]
+push eax
+mov eax, ebx
+push ecx
+call fcn_fffad540 ; call 0xfffad540
+add esp, 0x10
+
+loc_fffada89: ; not directly referenced
+inc esi
+inc edi
+cmp esi, 4
+jne short loc_fffada36 ; jne 0xfffada36
+
+loc_fffada90: ; not directly referenced
+lea edx, [ebx + 0x2974]
+lea ecx, [ebx + 0xfd8]
+mov dword [ebp - 0x38], ebx
+mov dword [ebp - 0x2c], 0
+mov dword [ebp - 0x4c], edx
+mov dword [ebp - 0x50], ecx
+jmp short loc_fffadae5 ; jmp 0xfffadae5
+
+loc_fffadaae: ; not directly referenced
+mov ecx, esi
+mov eax, 1
+mov edx, esi
+shl eax, cl
+cmp dl, 2
+mov cl, 0xc
+cmovne ecx, eax
+and cl, byte [ebp - 0x2c]
+je short loc_fffadadd ; je 0xfffadadd
+push eax
+movzx ecx, cl
+mov edx, 4
+push eax
+mov eax, ebx
+push edi
+push 1
+call fcn_fffad540 ; call 0xfffad540
+add esp, 0x10
+
+loc_fffadadd: ; not directly referenced
+inc esi
+cmp esi, 3
+jne short loc_fffadaae ; jne 0xfffadaae
+jmp short loc_fffada90 ; jmp 0xfffada90
+
+loc_fffadae5: ; not directly referenced
+imul eax, dword [ebp - 0x2c], 0x1347
+mov ecx, dword [ebp - 0x40]
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffadd30 ; jne 0xfffadd30
+mov edx, dword [ebp - 0x4c]
+lea eax, [edx + eax + 8]
+mov edx, dword [eax + 0x18d]
+cmp dword [eax + 0x195], edx
+cmovbe edx, dword [eax + 0x195]
+cmp dword [ebp - 0x44], 0
+je short loc_fffadb48 ; je 0xfffadb48
+mov ecx, dword [eax + 0x199]
+cmp dword [eax + 0x1a1], ecx
+cmovbe ecx, dword [eax + 0x1a1]
+cmp ecx, edx
+cmovbe edx, ecx
+mov dword [ebp - 0x30], edx
+
+loc_fffadb38: ; not directly referenced
+mov edx, dword [ebp - 0x38]
+xor ecx, ecx
+mov dl, byte [edx + 0x3acb]
+mov byte [ebp - 0x34], dl
+jmp short loc_fffadb58 ; jmp 0xfffadb58
+
+loc_fffadb48: ; not directly referenced
+mov ecx, dword [eax + 0x19d]
+cmp edx, ecx
+cmovbe ecx, edx
+mov dword [ebp - 0x30], ecx
+jmp short loc_fffadb38 ; jmp 0xfffadb38
+
+loc_fffadb58: ; not directly referenced
+mov esi, 1
+shl esi, cl
+mov edx, esi
+test byte [ebp - 0x34], dl
+je short loc_fffadb85 ; je 0xfffadb85
+movzx edi, byte [eax + ecx + 0x305]
+movzx esi, byte [eax + ecx + 0x301]
+cmp edi, esi
+cmovbe esi, edi
+cmp dword [ebp - 0x30], esi
+cmovbe esi, dword [ebp - 0x30]
+mov dword [ebp - 0x30], esi
+
+loc_fffadb85: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffadb58 ; jne 0xfffadb58
+imul eax, dword [ebp - 0x2c], 0x1347
+mov ecx, dword [ebp - 0x30]
+neg ecx
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x3c], ecx
+lea esi, [ebx + eax + 0x297c]
+xor eax, eax
+cmp dword [ebx + 0x1749], 2
+sete al
+mov dword [ebp - 0x48], eax
+
+loc_fffadbb7: ; not directly referenced
+mov edx, dword [ebp - 0x38]
+mov cl, byte [ebp - 0x34]
+mov edi, 1
+shl edi, cl
+mov eax, edi
+test byte [edx + 0x3acb], al
+je short loc_fffadc1d ; je 0xfffadc1d
+cmp dword [ebp - 0x48], 0
+jne short loc_fffadbf1 ; jne 0xfffadbf1
+push 1
+mov eax, edi
+xor ecx, ecx
+push dword [ebp - 0x3c]
+and eax, 0xff
+mov edx, dword [ebp - 0x2c]
+push eax
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffadbf1: ; not directly referenced
+mov ecx, dword [ebp - 0x34]
+and edi, 0xff
+push 1
+mov edx, dword [ebp - 0x2c]
+movzx eax, byte [esi + ecx + 0x301]
+add eax, dword [ebp - 0x3c]
+push eax
+mov ecx, 4
+mov eax, ebx
+push 1
+push edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffadc1d: ; not directly referenced
+inc dword [ebp - 0x34]
+cmp dword [ebp - 0x34], 4
+jne short loc_fffadbb7 ; jne 0xfffadbb7
+push 1
+mov eax, dword [esi + 0x195]
+sub eax, dword [ebp - 0x30]
+push eax
+mov ecx, 2
+mov edx, dword [ebp - 0x2c]
+push 1
+movzx eax, byte [esi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+cmp dword [ebp - 0x48], 0
+je loc_fffadd08 ; je 0xfffadd08
+imul eax, dword [ebp - 0x2c], 0x2fa
+mov edx, dword [ebp - 0x50]
+lea edi, [edx + eax + 0xe4]
+cmp byte [edi + 0x2ee], 0
+je short loc_fffadc8a ; je 0xfffadc8a
+push 1
+push dword [ebp - 0x3c]
+xor ecx, ecx
+mov edx, dword [ebp - 0x2c]
+push 1
+mov eax, ebx
+push 0
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffadc8a: ; not directly referenced
+cmp byte [edi + 0x2ef], 0
+je short loc_fffadcab ; je 0xfffadcab
+push 1
+push dword [ebp - 0x3c]
+xor ecx, ecx
+mov edx, dword [ebp - 0x2c]
+push 2
+mov eax, ebx
+push 0
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffadcab: ; not directly referenced
+push 1
+mov eax, dword [esi + 0x18d]
+sub eax, dword [ebp - 0x30]
+push eax
+mov ecx, 3
+mov edx, dword [ebp - 0x2c]
+push 1
+movzx eax, byte [esi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+push 1
+mov eax, dword [esi + 0x199]
+sub eax, dword [ebp - 0x30]
+push eax
+mov ecx, 2
+mov edx, dword [ebp - 0x2c]
+push 2
+movzx eax, byte [esi + 0x114f]
+push eax
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+push 1
+mov eax, dword [esi + 0x1a1]
+sub eax, dword [ebp - 0x30]
+push eax
+push 2
+jmp short loc_fffadd16 ; jmp 0xfffadd16
+
+loc_fffadd08: ; not directly referenced
+push 1
+mov eax, dword [esi + 0x19d]
+sub eax, dword [ebp - 0x30]
+push eax
+push 1
+
+loc_fffadd16: ; not directly referenced
+movzx eax, byte [esi + 0x114f]
+mov ecx, 1
+push eax
+mov edx, dword [ebp - 0x2c]
+mov eax, ebx
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffadd30: ; not directly referenced
+inc dword [ebp - 0x2c]
+add dword [ebp - 0x38], 0x1347
+cmp dword [ebp - 0x2c], 2
+jne loc_fffadae5 ; jne 0xfffadae5
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffadd5d ; jne 0xfffadd5d
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4198], 0
+
+loc_fffadd5d: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffadd76 ; jne 0xfffadd76
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4598], 0
+
+loc_fffadd76: ; not directly referenced
+sub esp, 0xc
+push ebx
+call fcn_fffbd7da ; call 0xfffbd7da
+jmp short loc_fffaddcc ; jmp 0xfffaddcc
+
+loc_fffadd81: ; not directly referenced
+push ecx
+movzx esi, byte [ebp - 0x2c]
+xor edx, edx
+push ecx
+mov eax, ebx
+mov ecx, esi
+push 0
+push 1
+call fcn_fffad540 ; call 0xfffad540
+pop edi
+pop eax
+lea edi, [ebp - 0x22]
+mov ecx, esi
+push edi
+mov edx, 2
+mov eax, ebx
+push 1
+call fcn_fffad540 ; call 0xfffad540
+pop eax
+pop edx
+mov ecx, esi
+mov edx, 1
+push edi
+mov eax, ebx
+xor esi, esi
+push 1
+lea edi, [ebp - 0x20]
+call fcn_fffad540 ; call 0xfffad540
+add esp, 0x10
+jmp near loc_fffadaae ; jmp 0xfffadaae
+
+loc_fffaddcc: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaddd4: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 0x10
+mov ebp, esp
+push edi
+push esi
+lea eax, [ebp - 0x28]
+push ebx
+lea esp, [esp - 0x2c]
+mov esi, dword [ebp + 8]
+mov bl, byte [esi + 0x176a]
+mov byte [ebp - 0x31], bl
+call fcn_fffa119f ; call 0xfffa119f
+cmp dword [esi + 0x1749], 2
+mov eax, esi
+movzx edx, byte [esi + 0x176b]
+setne cl
+sub esp, 0xc
+xor edi, edi
+push 0
+xor ebx, ebx
+lea ecx, [ecx*4 + 6]
+movzx ecx, cl
+call fcn_fffc1345 ; call 0xfffc1345
+lea eax, [esi + 0x16be]
+add esp, 0x10
+mov dword [ebp - 0x38], eax
+
+loc_fffade30: ; not directly referenced
+imul eax, edi, 0x1347
+mov edx, dword [ebp - 0x38]
+lea eax, [edx + eax + 0x12b0]
+mov edx, edi
+movzx ecx, byte [eax + 0x115d]
+mov dword [ebp - 0x30], eax
+mov eax, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+or ebx, eax
+movzx eax, bl
+bt eax, edi
+mov dword [ebp - 0x2c], eax
+jae short loc_fffade76 ; jae 0xfffade76
+mov eax, dword [ebp - 0x30]
+xor edx, edx
+movzx ecx, byte [esi + 0x1755]
+add eax, 0x107
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffade76: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffade30 ; jne 0xfffade30
+sub esp, 0xc
+lea eax, [ebp - 0x28]
+push eax
+lea edx, [esi + 0x1774]
+mov ecx, dword [ebp - 0x2c]
+push 0x36
+mov eax, esi
+push 0
+push 0xd
+push 0
+call fcn_fffc0a00 ; call 0xfffc0a00
+add esp, 0x14
+push esi
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+cmp dword [esi + 0x297c], 2
+jne short loc_fffadebe ; jne 0xfffadebe
+mov edi, dword [esi + 0x2734]
+mov ebx, dword [esi + 0x2738]
+jmp short loc_fffadec4 ; jmp 0xfffadec4
+
+loc_fffadebe: ; not directly referenced
+or ebx, 0xffffffff
+or edi, 0xffffffff
+
+loc_fffadec4: ; not directly referenced
+cmp dword [esi + 0x3cc3], 2
+jne short loc_fffadee3 ; jne 0xfffadee3
+mov eax, dword [esi + 0x277c]
+cmp edi, eax
+cmova edi, eax
+mov eax, dword [esi + 0x2780]
+cmp ebx, eax
+cmova ebx, eax
+
+loc_fffadee3: ; not directly referenced
+mov eax, ebx
+mov ecx, 2
+sub eax, edi
+cdq
+idiv ecx
+mov cl, 0xa
+push edx
+mov dword [ebp - 0x2c], eax
+push edx
+cdq
+idiv ecx
+push 0
+mov cl, 1
+mov edx, 2
+push eax
+mov eax, esi
+call fcn_fffafeda ; call 0xfffafeda
+mov dword [esp], esi
+call fcn_fffbd7da ; call 0xfffbd7da
+add edi, dword [ebp - 0x2c]
+sub ebx, dword [ebp - 0x2c]
+lea edx, [esi + 0x2734]
+add esp, 0x10
+xor ecx, ecx
+mov dword [ebp - 0x30], edi
+mov dword [ebp - 0x2c], ebx
+
+loc_fffadf29: ; not directly referenced
+mov edi, 1
+shl edi, cl
+mov ebx, edi
+test byte [ebp - 0x31], bl
+je short loc_fffadf42 ; je 0xfffadf42
+mov ebx, dword [ebp - 0x30]
+mov dword [edx], ebx
+mov ebx, dword [ebp - 0x2c]
+mov dword [edx + 4], ebx
+
+loc_fffadf42: ; not directly referenced
+inc ecx
+add edx, 0x90
+cmp ecx, 4
+jne short loc_fffadf29 ; jne 0xfffadf29
+cmp dword [esi + 0x297c], 2
+jne short loc_fffadf64 ; jne 0xfffadf64
+mov edx, dword [esi + 0x103f]
+mov byte [edx + 0x4198], 0
+
+loc_fffadf64: ; not directly referenced
+cmp dword [esi + 0x3cc3], 2
+jne short loc_fffadf7a ; jne 0xfffadf7a
+mov edx, dword [esi + 0x103f]
+mov byte [edx + 0x4598], 0
+
+loc_fffadf7a: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffadf82: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+push eax
+mov eax, ebx
+movzx ecx, byte [ebx + 0x176b]
+lea esi, [ebx + 0x1774]
+push 0
+mov edx, esi
+push 1
+push 1
+call fcn_fffc32d9 ; call 0xfffc32d9
+add esp, 0x10
+test eax, eax
+jne short loc_fffadfc8 ; jne 0xfffadfc8
+push ecx
+movzx ecx, byte [ebx + 0x176b]
+mov edx, esi
+push 1
+mov eax, ebx
+push 0
+push 0
+call fcn_fffc32d9 ; call 0xfffc32d9
+add esp, 0x10
+
+loc_fffadfc8: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffadfcf: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+push eax
+push eax
+movzx ecx, byte [ebx + 0x176b]
+lea esi, [ebx + 0x1774]
+push 0
+mov edx, esi
+mov eax, ebx
+push 0xf
+push 1
+push 0
+push 1
+push 1
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+test eax, eax
+jne short loc_fffae023 ; jne 0xfffae023
+push eax
+mov edx, esi
+push eax
+movzx ecx, byte [ebx + 0x176b]
+mov eax, ebx
+push 1
+push 0xf
+push 0
+push 1
+push 0
+push 1
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+
+loc_fffae023: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffae02a: ; not directly referenced
+push ebp
+mov ecx, 1
+mov ebp, esp
+lea esp, [esp - 0x10]
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x176b]
+push 0xa
+push 1
+call fcn_fffb03ba ; call 0xfffb03ba
+leave
+ret
+
+fcn_fffae04b: ; not directly referenced
+push ebp
+mov ecx, 0xb
+mov ebp, esp
+lea esp, [esp - 0x10]
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x176b]
+push 0x11
+push 0
+call fcn_fffb03ba ; call 0xfffb03ba
+leave
+ret
+
+fcn_fffae06c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x17c]
+mov esi, dword [ebp + 8]
+lea ebx, [esi + 0x16be]
+mov dword [ebp - 0x144], ebx
+xor ebx, ebx
+cmp dword [esi + 0x1749], 2
+sete bl
+xor edi, edi
+mov dword [ebp - 0x164], ebx
+mov bl, byte [esi + 0x176b]
+mov byte [ebp - 0x159], bl
+mov bl, byte [esi + 0x176a]
+mov byte [ebp - 0x148], bl
+mov ebx, dword [ebp - 0x144]
+mov dword [ebp - 0x16c], ebx
+
+loc_fffae0c0: ; not directly referenced
+imul ebx, edi, 0x1347
+mov eax, dword [ebp - 0x144]
+cmp dword [eax + ebx + 0x12be], 2
+jne loc_fffae176 ; jne 0xfffae176
+mov edx, dword [ebp - 0x16c]
+mov byte [ebp - 0x13c], 0
+lea edx, [edx + ebx + 0x12be]
+mov dword [ebp - 0x160], edx
+jmp short loc_fffae155 ; jmp 0xfffae155
+
+loc_fffae0f6: ; not directly referenced
+movzx ecx, byte [ebp - 0x13c]
+mov dword [ebp - 0x158], 0
+mov dword [ebp - 0x168], ecx
+
+loc_fffae10d: ; not directly referenced
+mov cl, byte [ebp - 0x158]
+mov eax, 1
+shl eax, cl
+test byte [esi + ebx + 0x3acb], al
+je short loc_fffae140 ; je 0xfffae140
+push edx
+mov ecx, dword [ebp - 0x158]
+mov edx, edi
+push 0x20
+mov eax, esi
+push 5
+push dword [ebp - 0x168]
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffae140: ; not directly referenced
+inc dword [ebp - 0x158]
+cmp dword [ebp - 0x158], 4
+jne short loc_fffae10d ; jne 0xfffae10d
+inc byte [ebp - 0x13c]
+
+loc_fffae155: ; not directly referenced
+movzx ecx, byte [esi + 0x1755]
+cmp byte [ebp - 0x13c], cl
+jb short loc_fffae0f6 ; jb 0xfffae0f6
+mov eax, dword [ebp - 0x160]
+xor edx, edx
+add eax, 0xf9
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffae176: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffae0c0 ; jne 0xfffae0c0
+movzx edx, byte [ebp - 0x159]
+mov eax, esi
+call fcn_fffc58d3 ; call 0xfffc58d3
+movzx ebx, byte [ebp - 0x148]
+mov dword [ebp - 0x158], 0
+mov dword [ebp - 0x180], ebx
+lea ebx, [esi + 0x16be]
+mov dword [ebp - 0x170], ebx
+
+loc_fffae1b1: ; not directly referenced
+mov ebx, dword [ebp - 0x180]
+mov ecx, dword [ebp - 0x158]
+bt ebx, ecx
+jb short loc_fffae1d8 ; jb 0xfffae1d8
+
+loc_fffae1c2: ; not directly referenced
+inc dword [ebp - 0x158]
+cmp dword [ebp - 0x158], 4
+jne short loc_fffae1b1 ; jne 0xfffae1b1
+xor edi, edi
+jmp near loc_fffae7c4 ; jmp 0xfffae7c4
+
+loc_fffae1d8: ; not directly referenced
+mov cl, byte [ebp - 0x158]
+mov eax, 1
+shl eax, cl
+movzx ebx, al
+mov byte [ebp - 0x159], al
+mov dword [ebp - 0x168], ebx
+xor ebx, ebx
+
+loc_fffae1f6: ; not directly referenced
+mov edx, ebx
+mov ecx, dword [ebp - 0x168]
+mov eax, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x159]
+test byte [esi + eax + 0x3acb], dl
+je short loc_fffae256 ; je 0xfffae256
+cmp dword [ebp - 0x164], 0
+jne short loc_fffae23b ; jne 0xfffae23b
+push eax
+mov ecx, dword [ebp - 0x168]
+mov edx, ebx
+push eax
+mov eax, esi
+push 4
+push 3
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+
+loc_fffae23b: ; not directly referenced
+mov edx, ebx
+mov eax, dword [esi + 0x103f]
+shl edx, 0xa
+lea edx, [edx + eax + 0x4194]
+mov eax, dword [edx]
+or eax, 0x80000000
+mov dword [edx], eax
+
+loc_fffae256: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffae1f6 ; jne 0xfffae1f6
+mov edi, 0xffffffe0
+
+loc_fffae261: ; not directly referenced
+push 1
+mov ecx, edi
+mov edx, 1
+push 0
+mov eax, esi
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+mov dword [ebp - 0x160], 0x3074
+mov dword [ebp - 0x13c], 0
+
+loc_fffae296: ; not directly referenced
+imul eax, dword [ebp - 0x13c], 0x1347
+mov bl, byte [ebp - 0x159]
+test byte [esi + eax + 0x3acb], bl
+je loc_fffae35a ; je 0xfffae35a
+mov ebx, dword [ebp - 0x170]
+xor edx, edx
+lea eax, [ebx + eax + 0x12be]
+mov dword [ebp - 0x140], eax
+mov eax, dword [ebp - 0x160]
+sub eax, 0x3010
+mov dword [ebp - 0x144], eax
+jmp short loc_fffae30b ; jmp 0xfffae30b
+
+loc_fffae2db: ; not directly referenced
+movzx ecx, dl
+mov ebx, dword [ebp - 0x140]
+mov dword [ebp - 0x148], ecx
+inc edx
+mov eax, dword [ebx + ecx*4 + 0x169]
+shl ecx, 9
+add ecx, dword [ebp - 0x144]
+add ecx, dword [esi + 0x103f]
+or eax, 0x60
+and eax, 0xfffffe7f
+mov dword [ecx], eax
+
+loc_fffae30b: ; not directly referenced
+cmp dl, byte [esi + 0x1755]
+jb short loc_fffae2db ; jb 0xfffae2db
+mov eax, dword [ebp - 0x140]
+mov eax, dword [eax + 0x141]
+mov dword [ebp - 0x140], eax
+or eax, 0x1000000
+cmp dword [ebp - 0x164], 0
+cmovne eax, dword [ebp - 0x140]
+or eax, 1
+and eax, 0xdfffffff
+mov dword [ebp - 0x140], eax
+mov eax, dword [ebp - 0x160]
+add eax, dword [esi + 0x103f]
+mov ebx, dword [ebp - 0x140]
+mov dword [eax], ebx
+
+loc_fffae35a: ; not directly referenced
+inc dword [ebp - 0x13c]
+add dword [ebp - 0x160], 0x100
+cmp dword [ebp - 0x13c], 2
+jne loc_fffae296 ; jne 0xfffae296
+mov eax, esi
+lea ebx, [ebp - 0xa8]
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov eax, dword [esi + 0x103f]
+mov edx, 2
+mov dword [eax + 0x4800], 1
+mov eax, esi
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov eax, esi
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov edx, 2
+mov eax, esi
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov eax, dword [esi + 0x103f]
+lea ecx, [ebp - 0x60]
+mov dword [ebp - 0x160], esi
+lea edx, [ebp - 0xf0]
+mov dword [ebp - 0x13c], ecx
+mov dword [ebp - 0x144], ebx
+mov dword [ebp - 0x148], 0x54
+mov dword [eax + 0x4800], 2
+lea eax, [ebp - 0x138]
+mov dword [ebp - 0x184], eax
+lea eax, [edi - 1]
+mov dword [ebp - 0x17c], eax
+
+loc_fffae3fd: ; not directly referenced
+mov eax, dword [ebp - 0x160]
+mov bl, byte [ebp - 0x159]
+test byte [eax + 0x3acb], bl
+je short loc_fffae430 ; je 0xfffae430
+mov cl, byte [esi + 0x1755]
+mov ebx, dword [ebp - 0x148]
+mov byte [ebp - 0x15a], cl
+mov dword [ebp - 0x16c], ebx
+xor eax, eax
+jmp near loc_fffae556 ; jmp 0xfffae556
+
+loc_fffae430: ; not directly referenced
+add dword [ebp - 0x160], 0x1347
+add dword [ebp - 0x148], 0x100
+add edx, 0x24
+add dword [ebp - 0x184], 0x24
+add dword [ebp - 0x13c], 0x24
+add dword [ebp - 0x144], 0x24
+cmp dword [ebp - 0x148], 0x254
+jne short loc_fffae3fd ; jne 0xfffae3fd
+mov dword [ebp - 0x13c], 0
+jmp near loc_fffae567 ; jmp 0xfffae567
+
+loc_fffae477: ; not directly referenced
+mov ecx, dword [ebp - 0x16c]
+add ecx, dword [esi + 0x103f]
+xor ebx, ebx
+mov ecx, dword [ecx]
+dec ecx
+mov ecx, edi
+sete bl
+cmp cl, 0xe0
+jne short loc_fffae4e9 ; jne 0xfffae4e9
+test ebx, ebx
+je short loc_fffae4b9 ; je 0xfffae4b9
+mov ebx, dword [ebp - 0x184]
+mov ecx, dword [ebp - 0x13c]
+mov dword [edx + eax*4], edi
+mov dword [ebx + eax*4], edi
+mov ebx, dword [ebp - 0x144]
+mov dword [ecx + eax*4], edi
+mov dword [ebx + eax*4], edi
+jmp near loc_fffae54b ; jmp 0xfffae54b
+
+loc_fffae4b9: ; not directly referenced
+mov ecx, dword [ebp - 0x184]
+mov ebx, dword [ebp - 0x13c]
+mov dword [edx + eax*4], 0xffffffdf
+mov dword [ecx + eax*4], 0xffffffdf
+mov ecx, dword [ebp - 0x144]
+mov dword [ebx + eax*4], 0xffffffdf
+mov dword [ecx + eax*4], 0xffffffdf
+jmp short loc_fffae54b ; jmp 0xfffae54b
+
+loc_fffae4e9: ; not directly referenced
+test ebx, ebx
+je short loc_fffae54b ; je 0xfffae54b
+mov ebx, dword [ebp - 0x17c]
+cmp dword [edx + eax*4], ebx
+mov dword [edx + eax*4], edi
+jne short loc_fffae4fd ; jne 0xfffae4fd
+jmp short loc_fffae506 ; jmp 0xfffae506
+
+loc_fffae4fd: ; not directly referenced
+mov ecx, dword [ebp - 0x184]
+mov dword [ecx + eax*4], edi
+
+loc_fffae506: ; not directly referenced
+mov ebx, dword [ebp - 0x184]
+mov ecx, edi
+mov ebx, dword [ebx + eax*4]
+sub ecx, ebx
+mov dword [ebp - 0x174], ebx
+mov dword [ebp - 0x178], ecx
+mov ecx, dword [ebp - 0x13c]
+mov ebx, dword [ecx + eax*4]
+mov ecx, dword [ebp - 0x144]
+sub ebx, dword [ecx + eax*4]
+cmp dword [ebp - 0x178], ebx
+jle short loc_fffae54b ; jle 0xfffae54b
+mov ebx, dword [ebp - 0x174]
+mov dword [ecx + eax*4], ebx
+mov ecx, dword [ebp - 0x13c]
+mov dword [ecx + eax*4], edi
+
+loc_fffae54b: ; not directly referenced
+inc eax
+add dword [ebp - 0x16c], 0x200
+
+loc_fffae556: ; not directly referenced
+cmp byte [ebp - 0x15a], al
+ja loc_fffae477 ; ja 0xfffae477
+jmp near loc_fffae430 ; jmp 0xfffae430
+
+loc_fffae567: ; not directly referenced
+imul eax, dword [ebp - 0x13c], 0x1347
+mov bl, byte [ebp - 0x159]
+test byte [esi + eax + 0x3acb], bl
+je loc_fffae649 ; je 0xfffae649
+mov ebx, dword [ebp - 0x170]
+mov ecx, dword [ebp - 0x13c]
+shl ecx, 8
+mov dword [ebp - 0x16c], ecx
+add ecx, 0x64
+mov dword [ebp - 0x160], ecx
+lea eax, [ebx + eax + 0x12be]
+mov dword [ebp - 0x144], eax
+xor eax, eax
+jmp short loc_fffae5d1 ; jmp 0xfffae5d1
+
+loc_fffae5b3: ; not directly referenced
+movzx ebx, al
+mov ecx, dword [ebp - 0x144]
+inc eax
+mov ecx, dword [ecx + ebx*4 + 0x169]
+shl ebx, 9
+add ebx, dword [ebp - 0x160]
+add edx, ebx
+mov dword [edx], ecx
+
+loc_fffae5d1: ; not directly referenced
+cmp al, byte [esi + 0x1755]
+mov edx, dword [esi + 0x103f]
+jb short loc_fffae5b3 ; jb 0xfffae5b3
+mov ebx, dword [ebp - 0x16c]
+add ebx, 0x3074
+cmp dword [ebp - 0x164], 0
+je short loc_fffae635 ; je 0xfffae635
+add edx, ebx
+mov eax, dword [ebp - 0x140]
+and eax, 0xbfffffff
+mov dword [edx], eax
+mov edx, 1
+mov eax, esi
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov eax, dword [esi + 0x103f]
+and dword [ebp - 0x140], 0xbffffffe
+add eax, ebx
+mov edx, dword [ebp - 0x140]
+mov dword [eax], edx
+mov edx, 1
+mov eax, esi
+call fcn_fffb2d76 ; call 0xfffb2d76
+
+loc_fffae635: ; not directly referenced
+mov ecx, dword [ebp - 0x144]
+add ebx, dword [esi + 0x103f]
+mov eax, dword [ecx + 0x141]
+mov dword [ebx], eax
+
+loc_fffae649: ; not directly referenced
+inc dword [ebp - 0x13c]
+cmp dword [ebp - 0x13c], 2
+jne loc_fffae567 ; jne 0xfffae567
+mov eax, esi
+inc edi
+call fcn_fffb8e01 ; call 0xfffb8e01
+cmp edi, 0x20
+jne loc_fffae261 ; jne 0xfffae261
+imul ebx, dword [ebp - 0x158], 9
+xor di, di
+mov dword [ebp - 0x148], ebx
+
+loc_fffae67d: ; not directly referenced
+imul eax, edi, 0x1347
+mov bl, byte [ebp - 0x159]
+test byte [esi + eax + 0x3acb], bl
+jne short loc_fffae69e ; jne 0xfffae69e
+
+loc_fffae692: ; not directly referenced
+inc edi
+cmp edi, 2
+je loc_fffae1c2 ; je 0xfffae1c2
+jmp short loc_fffae67d ; jmp 0xfffae67d
+
+loc_fffae69e: ; not directly referenced
+mov edx, dword [ebp - 0x170]
+lea ebx, [edx + eax + 0x12be]
+mov edx, edi
+shl edx, 0xa
+mov eax, dword [esi + 0x103f]
+lea edx, [edx + eax + 0x4194]
+mov eax, dword [edx]
+and eax, 0x7fffffff
+cmp dword [ebp - 0x164], 0
+mov dword [edx], eax
+jne short loc_fffae6e7 ; jne 0xfffae6e7
+push eax
+mov ecx, dword [ebp - 0x168]
+mov edx, edi
+push eax
+mov eax, esi
+push 0
+push 3
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+
+loc_fffae6e7: ; not directly referenced
+lea eax, [ebx + 0xf9]
+xor edx, edx
+movzx ecx, byte [esi + 0x1755]
+call fcn_fffc83ab ; call 0xfffc83ab
+add ebx, dword [ebp - 0x148]
+xor eax, eax
+mov dword [ebp - 0x144], ebx
+jmp short loc_fffae757 ; jmp 0xfffae757
+
+loc_fffae70b: ; not directly referenced
+movzx ecx, al
+lea ebx, [edi + edi*8]
+add ebx, ecx
+mov edx, dword [ebp + ebx*4 - 0xa8]
+mov ebx, dword [ebp + ebx*4 - 0x60]
+sub ebx, edx
+mov dword [ebp - 0x13c], ebx
+je loc_fffae801 ; je 0xfffae801
+xor ebx, ebx
+cmp dword [ebp - 0x13c], 0xc
+jle short loc_fffae741 ; jle 0xfffae741
+mov ebx, dword [ebp - 0x13c]
+sar ebx, 1
+add ebx, edx
+
+loc_fffae741: ; not directly referenced
+add ecx, dword [ebp - 0x144]
+add ebx, 0x20
+inc eax
+mov byte [ecx + 0x1106], bl
+mov byte [ecx + 0x112a], bl
+
+loc_fffae757: ; not directly referenced
+cmp al, byte [esi + 0x1755]
+jb short loc_fffae70b ; jb 0xfffae70b
+jmp near loc_fffae692 ; jmp 0xfffae692
+
+loc_fffae764: ; not directly referenced
+imul eax, ebx, 0x1347
+mov cl, byte [ebp - 0x158]
+test byte [esi + eax + 0x3acb], cl
+jne short loc_fffae7a7 ; jne 0xfffae7a7
+
+loc_fffae779: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffae764 ; jne 0xfffae764
+jmp short loc_fffae7be ; jmp 0xfffae7be
+
+loc_fffae781: ; not directly referenced
+push eax
+movzx eax, byte [ebp - 0x140]
+mov ecx, edi
+push 0
+mov edx, ebx
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+inc byte [ebp - 0x140]
+add esp, 0x10
+jmp short loc_fffae7ae ; jmp 0xfffae7ae
+
+loc_fffae7a7: ; not directly referenced
+mov byte [ebp - 0x140], 0
+
+loc_fffae7ae: ; not directly referenced
+mov al, byte [ebp - 0x140]
+cmp al, byte [esi + 0x1755]
+jb short loc_fffae781 ; jb 0xfffae781
+jmp short loc_fffae779 ; jmp 0xfffae779
+
+loc_fffae7be: ; not directly referenced
+inc edi
+cmp edi, 4
+je short loc_fffae7d7 ; je 0xfffae7d7
+
+loc_fffae7c4: ; not directly referenced
+mov ecx, edi
+mov eax, 1
+xor ebx, ebx
+shl eax, cl
+mov byte [ebp - 0x158], al
+jmp short loc_fffae764 ; jmp 0xfffae764
+
+loc_fffae7d7: ; not directly referenced
+push 2
+xor ecx, ecx
+mov edx, 1
+push 0
+mov eax, esi
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+mov eax, esi
+call fcn_fffb8e01 ; call 0xfffb8e01
+jmp short loc_fffae806 ; jmp 0xfffae806
+
+loc_fffae801: ; not directly referenced
+mov eax, 6
+
+loc_fffae806: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffae80e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x3c]
+mov edi, dword [ebp + 8]
+mov byte [ebp - 0x1a], 1
+mov byte [ebp - 0x19], 0x19
+mov dword [ebp - 0x34], 0
+lea eax, [edi + 0x16be]
+mov dword [ebp - 0x40], eax
+
+loc_fffae835: ; not directly referenced
+mov cl, bl
+mov esi, 1
+shl esi, cl
+mov eax, esi
+test byte [edi + 0x176a], al
+je loc_fffae8f8 ; je 0xfffae8f8
+test byte [edi + 0x3acb], al
+mov byte [ebp - 0x2c], al
+je short loc_fffae877 ; je 0xfffae877
+mov cl, byte [edi + ebx + 0x3a49]
+mov dl, 0xf
+movsx eax, byte [edi + ebx + 0x3a4d]
+cmp cl, 0xf
+cmovbe edx, ecx
+mov cl, al
+sub ecx, edx
+mov byte [ebp - 0x30], cl
+jmp short loc_fffae87f ; jmp 0xfffae87f
+
+loc_fffae877: ; not directly referenced
+mov dl, 0xf
+xor eax, eax
+mov byte [ebp - 0x30], 0
+
+loc_fffae87f: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+test byte [edi + 0x4e12], cl
+je short loc_fffae8aa ; je 0xfffae8aa
+movsx ecx, byte [edi + ebx + 0x4d94]
+cmp al, cl
+cmovb eax, ecx
+mov cl, byte [edi + ebx + 0x4d90]
+cmp dl, cl
+cmova edx, ecx
+mov cl, al
+sub ecx, edx
+mov byte [ebp - 0x30], cl
+
+loc_fffae8aa: ; not directly referenced
+cmp byte [ebp - 0x30], 0
+mov edx, 0
+movsx ecx, byte [ebp - 0x30]
+cmovs ecx, edx
+and esi, 0xff
+push edx
+mov byte [ebp - 0x30], cl
+push edx
+lea edx, [ebp - 0x19]
+push 0
+push esi
+push ebx
+push 1
+push edx
+lea edx, [edi + 0x1774]
+push edx
+mov edx, 0xc
+push 0xa
+push eax
+mov eax, edi
+push ecx
+lea ecx, [ebp - 0x1a]
+push 1
+call fcn_fffc4850 ; call 0xfffc4850
+mov dword [ebp - 0x34], eax
+add esp, 0x30
+dec eax
+je loc_fffaea03 ; je 0xfffaea03
+
+loc_fffae8f8: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffae835 ; jne 0xfffae835
+lea ecx, [edi + 0x2974]
+mov dword [ebp - 0x3c], edi
+mov dword [ebp - 0x2c], 0
+xor ebx, ebx
+mov dword [ebp - 0x48], ecx
+
+loc_fffae917: ; not directly referenced
+imul eax, dword [ebp - 0x2c], 0x1347
+mov edx, dword [ebp - 0x40]
+cmp dword [edx + eax + 0x12be], 2
+jne loc_fffae9ed ; jne 0xfffae9ed
+mov ecx, dword [ebp - 0x48]
+lea esi, [ecx + eax + 8]
+mov ecx, dword [ebp - 0x3c]
+mov eax, dword [esi + 0x1a9]
+mov edx, eax
+shr edx, 0xf
+shr eax, 0x13
+and edx, 0xf
+and eax, 0xf
+cmp dl, al
+cmova eax, edx
+mov dl, 0
+lea eax, [eax + eax - 8]
+test al, al
+cmovns edx, eax
+mov byte [ebp - 0x35], dl
+mov dl, byte [ecx + 0x3acb]
+xor ecx, ecx
+
+loc_fffae968: ; not directly referenced
+mov eax, 1
+shl eax, cl
+test dl, al
+je short loc_fffae97f ; je 0xfffae97f
+mov al, byte [esi + ecx + 0x10d1]
+cmp bl, al
+cmovb ebx, eax
+
+loc_fffae97f: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffae968 ; jne 0xfffae968
+mov al, bl
+sub al, byte [ebp - 0x35]
+movzx eax, al
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x44], eax
+
+loc_fffae997: ; not directly referenced
+mov edx, dword [ebp - 0x3c]
+mov cl, byte [ebp - 0x30]
+mov eax, 1
+shl eax, cl
+test byte [edx + 0x3acb], al
+je short loc_fffae9e4 ; je 0xfffae9e4
+mov edx, dword [ebp - 0x30]
+mov cl, bl
+sub cl, byte [esi + edx + 0x10d1]
+movzx ecx, cl
+movsx edx, byte [ebp - 0x35]
+cmp ecx, edx
+jle short loc_fffae9e4 ; jle 0xfffae9e4
+sub esp, 0xc
+and eax, 0xff
+push eax
+xor ecx, ecx
+mov edx, dword [ebp - 0x2c]
+push 0
+mov eax, edi
+push 1
+push dword [ebp - 0x44]
+push 0xc
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x20
+
+loc_fffae9e4: ; not directly referenced
+inc dword [ebp - 0x30]
+cmp dword [ebp - 0x30], 4
+jne short loc_fffae997 ; jne 0xfffae997
+
+loc_fffae9ed: ; not directly referenced
+inc dword [ebp - 0x2c]
+add dword [ebp - 0x3c], 0x1347
+cmp dword [ebp - 0x2c], 2
+jne loc_fffae917 ; jne 0xfffae917
+jmp short loc_fffaea0a ; jmp 0xfffaea0a
+
+loc_fffaea03: ; not directly referenced
+mov dword [ebp - 0x34], 0x18
+
+loc_fffaea0a: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffaea15:
+db 0x00
+db 0x00
+db 0x00
+
+fcn_fffaea18:
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea ecx, [ebp - 0x20]
+push ebx
+lea esp, [esp - 0x78]
+mov eax, dword [ebp + 8]
+mov edx, dword [eax]
+push ecx
+push 0
+push 0
+push ref_fffcc988 ; push 0xfffcc988
+push eax
+call dword [edx + 0x20] ; ucall
+add esp, 0x20
+test eax, eax
+mov dword [ebp - 0x58], eax
+jne loc_fffafa2f ; jne 0xfffafa2f
+mov eax, dword [ebp - 0x20]
+mov dl, byte [eax]
+mov ebx, dword [eax + 0xe]
+mov esi, dword [eax + 6]
+mov eax, dword [eax + 1]
+test eax, eax
+mov byte [ebp - 0x67], dl
+mov dword [ebp - 0x30], eax
+je loc_fffaf9ce ; je 0xfffaf9ce
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov eax, dword [eax + 0xf80f0]
+and eax, 0xfffffffe
+mov dword [ebp - 0x44], eax
+mov ecx, dword [eax + 0x3418]
+mov dword [ebp - 0x48], ecx
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov dword [ebp - 0x5c], eax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov dword [ebp - 0x2c], eax
+mov edi, dword [0xf0000060]
+mov edx, dword [0xf0000060]
+and edi, 0xfc000000
+and edx, 0xfc000000
+cmp dword [ebp - 0x5c], 1
+mov dword [ebp - 0x4c], edx
+mov dword [ebp - 0x50], 0
+jne short loc_fffaead0 ; jne 0xfffaead0
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+add eax, 0xd0000
+mov dword [ebp - 0x50], eax
+
+loc_fffaead0:
+mov ecx, dword [ebp - 0x2c]
+mov edx, dword [ebp - 0x2c]
+mov cx, word [ecx + 0xf8040]
+mov ax, word [edx + 0xf8002]
+mov word [ebp - 0x6a], cx
+mov ecx, dword [ebp - 0x30]
+mov eax, dword [ebp - 0x48]
+or ah, 0x80
+test byte [ecx + 0x55], 1
+cmovne eax, dword [ebp - 0x48]
+cmp dword [ebp - 0x5c], 1
+mov dword [ebp - 0x48], eax
+jne short loc_fffaeb10 ; jne 0xfffaeb10
+or ah, 0x20
+test byte [ecx + 0x56], 1
+cmovne eax, dword [ebp - 0x48]
+mov dword [ebp - 0x48], eax
+
+loc_fffaeb10:
+mov edx, dword [ebp - 0x30]
+mov eax, dword [ebp - 0x48]
+or eax, 0x8000000
+test byte [edx + 0x57], 3
+cmovne eax, dword [ebp - 0x48]
+mov dword [ebp - 0x48], eax
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov dword [ebp - 0x60], eax
+mov byte [ebp - 0x3c], 0
+jmp near loc_fffaeca4 ; jmp 0xfffaeca4
+
+loc_fffaeb37:
+movzx edx, byte [ebp - 0x3c]
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+movzx eax, byte [edx + edx + ref_fffcba34] ; movzx eax, byte [edx + edx - 0x345cc]
+shl eax, 0xf
+mov dword [ebp - 0x40], eax
+movzx eax, byte [edx + edx + ref_fffcba35] ; movzx eax, byte [edx + edx - 0x345cb]
+shl eax, 0xc
+add eax, dword [ebp - 0x40]
+add eax, ecx
+mov ecx, dword [ebp - 0x30]
+test byte [ecx + edx + 0x55], 1
+jne short loc_fffaeb81 ; jne 0xfffaeb81
+mov dword [eax + 0x10], 0
+mov word [eax + 4], 0
+jmp near loc_fffaeca1 ; jmp 0xfffaeca1
+
+loc_fffaeb81:
+mov edx, dword [ebp - 0x30]
+test byte [edx + 0x57], 0x10
+je short loc_fffaeb95 ; je 0xfffaeb95
+mov dx, word [eax + 0x78]
+and edx, 0xfffffffc
+mov word [eax + 0x78], dx
+
+loc_fffaeb95:
+mov edx, dword [eax + 0x10]
+test edx, edx
+jne short loc_fffaebb4 ; jne 0xfffaebb4
+mov dx, word [eax + 4]
+and dl, 2
+jne short loc_fffaebb4 ; jne 0xfffaebb4
+mov dword [eax + 0x10], esi
+mov byte [ebp - 0x72], 0
+mov word [ebp - 0x66], 0
+jmp short loc_fffaebc3 ; jmp 0xfffaebc3
+
+loc_fffaebb4:
+mov esi, dword [eax + 0x10]
+mov cx, word [eax + 4]
+mov word [ebp - 0x66], cx
+mov byte [ebp - 0x72], 1
+
+loc_fffaebc3:
+mov cx, word [eax + 4]
+or ecx, 6
+mov word [eax + 4], cx
+cmp byte [ebp - 0x72], 0
+jne short loc_fffaebdf ; jne 0xfffaebdf
+mov cx, word [esi + 0x20]
+or ecx, 2
+mov word [esi + 0x20], cx
+
+loc_fffaebdf:
+mov cx, word [eax + 0x80]
+or ecx, 1
+mov word [eax + 0x80], cx
+mov ecx, dword [esi + 4]
+lea edx, [esi + 4]
+and ch, 0xf
+mov dword [ebp - 0x64], edx
+mov dword [esi + 4], ecx
+cmp byte [ebp - 0x3c], 0
+jne short loc_fffaec19 ; jne 0xfffaec19
+mov ecx, dword [ebp - 0x30]
+mov edx, 3
+test byte [ecx], 2
+jne short loc_fffaec32 ; jne 0xfffaec32
+
+loc_fffaec12:
+mov edx, 2
+jmp short loc_fffaec32 ; jmp 0xfffaec32
+
+loc_fffaec19:
+cmp dword [ebp - 0x60], 1
+jne short loc_fffaec12 ; jne 0xfffaec12
+cmp byte [ebp - 0x3c], 1
+jne short loc_fffaec12 ; jne 0xfffaec12
+mov edx, dword [ebp - 0x30]
+test byte [edx], 4
+je short loc_fffaec12 ; je 0xfffaec12
+mov edx, 3
+
+loc_fffaec32:
+mov ecx, dword [ebp - 0x64]
+mov ecx, dword [ecx]
+and ecx, 0xfffffff0
+or edx, ecx
+mov ecx, dword [ebp - 0x64]
+mov dword [ecx], edx
+mov cx, word [eax + 0x80]
+and ecx, 0xfffffffe
+mov word [eax + 0x80], cx
+mov ecx, dword [eax + 0x78]
+or ecx, 4
+mov dword [eax + 0x78], ecx
+mov ecx, dword [eax + 0x7c]
+or ecx, 0x4080
+mov dword [eax + 0x7c], ecx
+mov ecx, dword [eax + 0x8c]
+and ecx, 0xfbfff4ff
+or ecx, 0x20400
+mov dword [eax + 0x8c], ecx
+cmp byte [ebp - 0x72], 0
+je short loc_fffaec8f ; je 0xfffaec8f
+mov dx, word [ebp - 0x66]
+mov word [eax + 4], dx
+jmp short loc_fffaeca1 ; jmp 0xfffaeca1
+
+loc_fffaec8f:
+mov dx, word [eax + 4]
+and edx, 0xfffffff9
+mov word [eax + 4], dx
+mov dword [eax + 0x10], 0
+
+loc_fffaeca1:
+inc byte [ebp - 0x3c]
+
+loc_fffaeca4:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+dec eax
+cmp eax, 1
+ja short loc_fffaecbe ; ja 0xfffaecbe
+mov cl, byte [ebp - 0x3c]
+cmp cl, byte [eax + ref_fffcb998] ; cmp cl, byte [eax - 0x34668]
+jb loc_fffaeb37 ; jb 0xfffaeb37
+
+loc_fffaecbe:
+sub esp, 0xc
+xor ecx, ecx
+push 0x4481
+mov edx, 0xe5007f04
+mov eax, dword [ebp - 0x44]
+call fcn_fffc90fb ; call 0xfffc90fb
+xor esi, esi
+add esp, 0x10
+jmp short loc_fffaed00 ; jmp 0xfffaed00
+
+loc_fffaecdc:
+mov edx, esi
+sub esp, 0xc
+movzx eax, dl
+mov ecx, 0xfffffffe
+shl eax, 8
+inc esi
+push 0
+lea edx, [eax - 0x1affbef1]
+mov eax, dword [ebp - 0x44]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffaed00:
+call fcn_fffc5d89 ; call 0xfffc5d89
+mov ecx, esi
+cmp cl, al
+jb short loc_fffaecdc ; jb 0xfffaecdc
+sub esp, 0xc
+or ecx, 0xffffffff
+push 0x180000
+mov edx, 0xe5007f14
+mov eax, dword [ebp - 0x44]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+cmp dword [ebp - 0x60], 2
+jne short loc_fffaed46 ; jne 0xfffaed46
+sub esp, 0xc
+mov ecx, 0xff3fffff
+push 0
+mov edx, 0xe5007f02
+mov eax, dword [ebp - 0x44]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffaed46:
+mov eax, dword [ebp - 0x30]
+test byte [eax + 0x57], 3
+je short loc_fffaed66 ; je 0xfffaed66
+mov dword [edi + 0xa0010], ebx
+mov ax, word [edi + 0xa0004]
+or eax, 6
+mov word [edi + 0xa0004], ax
+
+loc_fffaed66:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov esi, eax
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+mov edx, dword [ebp - 0x30]
+mov dword [ebp - 0x3c], eax
+test byte [edx + 0x57], 3
+je loc_fffaefd0 ; je 0xfffaefd0
+xor eax, eax
+cmp esi, 1
+jne short loc_fffaedb4 ; jne 0xfffaedb4
+mov edx, dword [edi + 0xa00e0]
+mov eax, 0x15000000
+and edx, 0x18
+sub edx, 8
+cmp edx, 0x10
+ja short loc_fffaeda6 ; ja 0xfffaeda6
+mov eax, dword [edx*4 + ref_fffcb9f0] ; mov eax, dword [edx*4 - 0x34610]
+
+loc_fffaeda6:
+mov edx, dword [ebx + 4]
+and edx, 0xffffff
+or edx, eax
+mov dword [ebx + 4], edx
+
+loc_fffaedb4:
+mov edx, dword [ebx + 0xc]
+and edx, 0xff00
+or edx, 0x200000a
+mov dword [ebx + 0xc], edx
+mov edx, dword [ebx + 0x10]
+and edx, 0xfffff9df
+or dh, 6
+mov dword [ebx + 0x10], edx
+cmp esi, 1
+jne short loc_fffaee00 ; jne 0xfffaee00
+mov edx, dword [ebx + 0x8008]
+and edx, 0xfff7ffff
+mov dword [ebx + 0x8008], edx
+mov edx, dword [ebx + 0x8058]
+and edx, 0xffeefeff
+or edx, 0x110000
+jmp short loc_fffaee17 ; jmp 0xfffaee17
+
+loc_fffaee00:
+cmp esi, 2
+jne short loc_fffaee1d ; jne 0xfffaee1d
+mov edx, dword [ebx + 0x8058]
+and edx, 0xfffefeff
+or edx, 0x10000
+
+loc_fffaee17:
+mov dword [ebx + 0x8058], edx
+
+loc_fffaee1d:
+mov edx, dword [ebx + 0x8060]
+or edx, 0x2040000
+mov dword [ebx + 0x8060], edx
+mov edx, dword [ebx + 0x8090]
+or dh, 0x41
+mov dword [ebx + 0x8090], edx
+mov edx, dword [ebx + 0x8094]
+or edx, 0xa04000
+mov dword [ebx + 0x8094], edx
+mov edx, dword [ebx + 0x80e0]
+and edx, 0xfffeffbf
+or edx, 0x40
+mov dword [ebx + 0x80e0], edx
+mov edx, dword [ebx + 0x80ec]
+and dh, 0x81
+or dh, 0xc
+mov dword [ebx + 0x80ec], edx
+mov edx, dword [ebx + 0x80f0]
+and edx, 0xffefffff
+mov dword [ebx + 0x80f0], edx
+cmp esi, 2
+jne loc_fffaf9d7 ; jne 0xfffaf9d7
+mov eax, dword [ebx + 0x80fc]
+or eax, 0x2000000
+mov dword [ebx + 0x80fc], eax
+mov eax, dword [ebx + 0x8110]
+and eax, 0xffeff6fb
+or eax, 0x100800
+mov dword [ebx + 0x8110], eax
+mov eax, dword [ebx + 0x8140]
+mov dword [ebx + 0x8140], 0xff00f03c
+mov edx, 0x200000
+mov eax, 0x2000
+jmp short loc_fffaef02 ; jmp 0xfffaef02
+
+loc_fffaeed5:
+mov eax, dword [ebx + 0x8110]
+and eax, 0xffeff7fb
+or eax, 0x100800
+mov dword [ebx + 0x8110], eax
+mov eax, dword [ebx + 0x8140]
+mov dword [ebx + 0x8140], 0xff03c132
+mov edx, 0x202000
+xor eax, eax
+
+loc_fffaef02:
+mov ecx, dword [ebx + 0x8154]
+not edx
+and edx, ecx
+or edx, eax
+mov dword [ebx + 0x8154], edx
+mov eax, dword [ebx + 0x8154]
+and eax, 0xfffffff7
+mov dword [ebx + 0x8154], eax
+cmp esi, 2
+jne short loc_fffaef71 ; jne 0xfffaef71
+mov eax, dword [ebx + 0x8164]
+or eax, 3
+mov dword [ebx + 0x8164], eax
+mov dword [ebx + 0x8174], 0x1400c0a
+mov eax, dword [ebx + 0x817c]
+mov dword [ebx + 0x817c], 0x33200a3
+mov eax, dword [ebx + 0x8180]
+mov dword [ebx + 0x8180], 0xcb0028
+mov eax, dword [ebx + 0x8184]
+mov dword [ebx + 0x8184], 0x64001e
+
+loc_fffaef71:
+mov ax, word [edi + 0xa0044]
+mov cl, byte [ebp - 0x3c]
+or ax, 0xc401
+mov word [edi + 0xa0044], ax
+mov al, byte [edi + 0xa0046]
+or eax, 0xf
+mov byte [edi + 0xa0046], al
+cmp cl, 3
+seta dl
+cmp esi, 2
+sete al
+test dl, al
+je short loc_fffaefb2 ; je 0xfffaefb2
+mov eax, dword [ebx + 0x8188]
+or eax, 0x5000000
+jmp short loc_fffaefca ; jmp 0xfffaefca
+
+loc_fffaefb2:
+test cl, cl
+setne dl
+dec esi
+sete al
+test dl, al
+je short loc_fffaefd0 ; je 0xfffaefd0
+mov eax, dword [ebx + 0x8188]
+or eax, 0x1000000
+
+loc_fffaefca:
+mov dword [ebx + 0x8188], eax
+
+loc_fffaefd0:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+dec eax
+cmp eax, 1
+ja short loc_fffaefee ; ja 0xfffaefee
+mov edx, dword [eax*4 + ref_fffcb9e0] ; mov edx, dword [eax*4 - 0x34620]
+mov esi, dword [eax*4 + ref_fffcb9e8] ; mov esi, dword [eax*4 - 0x34618]
+mov dword [ebp - 0x3c], edx
+jmp short loc_fffaeff7 ; jmp 0xfffaeff7
+
+loc_fffaefee:
+xor esi, esi
+mov dword [ebp - 0x3c], 0
+
+loc_fffaeff7:
+mov ecx, dword [ebp - 0x30]
+test byte [ecx + 0x57], 3
+je loc_fffaf5ea ; je 0xfffaf5ea
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+cmp eax, 1
+jne loc_fffaf0b7 ; jne 0xfffaf0b7
+mov eax, dword [edi + 0xa00e0]
+and eax, 6
+cmp eax, 4
+je short loc_fffaf04a ; je 0xfffaf04a
+cmp eax, 6
+je short loc_fffaf03c ; je 0xfffaf03c
+cmp eax, 2
+setne al
+movzx eax, al
+lea edx, [eax + eax + 0xc]
+mov dword [ebp - 0x38], edx
+mov edx, 0x3fff
+jmp short loc_fffaf056 ; jmp 0xfffaf056
+
+loc_fffaf03c:
+mov dword [ebp - 0x38], 8
+mov edx, 0xff
+jmp short loc_fffaf056 ; jmp 0xfffaf056
+
+loc_fffaf04a:
+mov dword [ebp - 0x38], 0xa
+mov edx, 0xfff
+
+loc_fffaf056:
+mov ecx, dword [edi + 0xa00e0]
+and ecx, 0x18
+cmp ecx, 0x10
+je short loc_fffaf092 ; je 0xfffaf092
+cmp ecx, 0x18
+je short loc_fffaf087 ; je 0xfffaf087
+xor eax, eax
+cmp ecx, 8
+setne al
+mov ecx, 0xf
+lea eax, [eax + eax + 4]
+mov dword [ebp - 0x34], eax
+mov eax, 0x3f
+cmove eax, ecx
+jmp short loc_fffaf09e ; jmp 0xfffaf09e
+
+loc_fffaf087:
+mov dword [ebp - 0x34], 0
+xor eax, eax
+jmp short loc_fffaf09e ; jmp 0xfffaf09e
+
+loc_fffaf092:
+mov dword [ebp - 0x34], 2
+mov eax, 3
+
+loc_fffaf09e:
+mov ecx, dword [edi + 0xa00e0]
+and ecx, 0x20
+je short loc_fffaf0ab ; je 0xfffaf0ab
+jmp short loc_fffaf0df ; jmp 0xfffaf0df
+
+loc_fffaf0ab:
+or dh, 0x40
+mov dword [ebp - 0x54], 1
+jmp short loc_fffaf106 ; jmp 0xfffaf106
+
+loc_fffaf0b7:
+cmp eax, 2
+jne short loc_fffaf0e8 ; jne 0xfffaf0e8
+mov eax, dword [edi + 0xa00e0]
+mov dword [ebp - 0x34], 4
+and eax, 0x20
+je short loc_fffaf0ee ; je 0xfffaf0ee
+mov dword [ebp - 0x38], 8
+mov eax, 0xf
+mov edx, 0xff
+
+loc_fffaf0df:
+mov dword [ebp - 0x54], 0
+jmp short loc_fffaf106 ; jmp 0xfffaf106
+
+loc_fffaf0e8:
+xor eax, eax
+xor edx, edx
+jmp short loc_fffaf106 ; jmp 0xfffaf106
+
+loc_fffaf0ee:
+mov dword [ebp - 0x54], 1
+mov dword [ebp - 0x38], 8
+mov eax, 0xf
+mov edx, 0x1ff
+
+loc_fffaf106:
+mov ecx, dword [edi + 0xa00d4]
+and ecx, 0xffff8000
+or ecx, edx
+mov dword [edi + 0xa00d4], ecx
+mov edx, dword [edi + 0xa00dc]
+and edx, 0xffffffc0
+or edx, eax
+mov dword [edi + 0xa00dc], edx
+lea eax, [ebp - 0x1c]
+call fcn_fffbf908 ; call 0xfffbf908
+cmp dword [ebp - 0x1c], 0x11
+jne short loc_fffaf177 ; jne 0xfffaf177
+mov edx, dword [edi + 0xa00dc]
+mov eax, dword [edi + 0xa00d8]
+and eax, 0xffffffc0
+and edx, 0x3f
+or eax, edx
+mov dword [edi + 0xa00d8], eax
+mov edx, dword [edi + 0xa00d4]
+mov eax, dword [edi + 0xa00d0]
+and eax, 0xffff8000
+and edx, 0x7fff
+or eax, edx
+mov dword [edi + 0xa00d0], eax
+jmp near loc_fffaf5ea ; jmp 0xfffaf5ea
+
+loc_fffaf177:
+mov edx, dword [ebp - 0x2c]
+mov ax, word [edx + 0xf80a2]
+test al, 0x20
+je short loc_fffaf1cb ; je 0xfffaf1cb
+mov eax, dword [edx + 0xf80ac]
+test eax, 0x10000
+je short loc_fffaf1cb ; je 0xfffaf1cb
+mov edx, dword [edi + 0xa00dc]
+mov eax, dword [edi + 0xa00d8]
+and eax, 0xffffffc0
+and edx, 0x3f
+or eax, edx
+mov dword [edi + 0xa00d8], eax
+mov edx, dword [edi + 0xa00d4]
+mov eax, dword [edi + 0xa00d0]
+and eax, 0xffff8000
+and edx, 0x7fff
+or eax, edx
+mov dword [edi + 0xa00d0], eax
+
+loc_fffaf1cb:
+mov ecx, dword [ebp - 0x2c]
+mov eax, dword [ecx + 0xf80ac]
+and eax, 0xfffeffff
+mov dword [ecx + 0xf80ac], eax
+mov edx, dword [ebp - 0x30]
+mov al, byte [edx + 0x57]
+mov dl, 1
+test al, 4
+je short loc_fffaf1f6 ; je 0xfffaf1f6
+mov dl, al
+and edx, 7
+cmp dl, 6
+sete dl
+
+loc_fffaf1f6:
+and eax, 7
+cmp al, 5
+jne short loc_fffaf276 ; jne 0xfffaf276
+mov ecx, dword [ebp - 0x2c]
+mov ax, word [ecx + 0xf80a2]
+test al, 0x20
+jne short loc_fffaf226 ; jne 0xfffaf226
+jmp near loc_fffaf9e7 ; jmp 0xfffaf9e7
+
+loc_fffaf210:
+mov ecx, dword [esi + edx*4]
+add ecx, ebx
+mov eax, dword [ecx]
+and eax, 0x7ffffffd
+or eax, 0x80000000
+mov dword [ecx], eax
+inc edx
+jmp short loc_fffaf228 ; jmp 0xfffaf228
+
+loc_fffaf226:
+xor edx, edx
+
+loc_fffaf228:
+cmp edx, dword [ebp - 0x34]
+jne short loc_fffaf210 ; jne 0xfffaf210
+mov eax, dword [ebp - 0x34]
+mov dword [ebp - 0x2c], 0xa
+lea eax, [esi + eax*4]
+mov dword [ebp - 0x40], eax
+
+loc_fffaf23d:
+mov eax, esi
+xor edx, edx
+jmp short loc_fffaf24e ; jmp 0xfffaf24e
+
+loc_fffaf243:
+mov ecx, dword [eax]
+add eax, 4
+add ecx, ebx
+mov ecx, dword [ecx]
+or edx, ecx
+
+loc_fffaf24e:
+cmp eax, dword [ebp - 0x40]
+jne short loc_fffaf243 ; jne 0xfffaf243
+mov eax, 0x2710
+mov dword [ebp - 0x70], edx
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov edx, dword [ebp - 0x70]
+and dl, 0x10
+je loc_fffaf9e7 ; je 0xfffaf9e7
+dec dword [ebp - 0x2c]
+jne short loc_fffaf23d ; jne 0xfffaf23d
+jmp near loc_fffaf9e7 ; jmp 0xfffaf9e7
+
+loc_fffaf276:
+cmp dword [ebp - 0x34], 0
+je loc_fffaf44c ; je 0xfffaf44c
+dec dl
+jne loc_fffaf3ef ; jne 0xfffaf3ef
+mov eax, dword [edi + 0xa00d0]
+test eax, eax
+jne short loc_fffaf2a0 ; jne 0xfffaf2a0
+mov eax, dword [edi + 0xa00d8]
+test eax, eax
+je loc_fffaf3ef ; je 0xfffaf3ef
+
+loc_fffaf2a0:
+xor eax, eax
+
+loc_fffaf2a2:
+mov edx, dword [ebp - 0x3c]
+mov ecx, ebx
+add ecx, dword [edx + eax*4]
+mov edx, dword [ecx]
+and dl, 1
+je short loc_fffaf2bb ; je 0xfffaf2bb
+mov edx, dword [ecx]
+and edx, 0xffffffed
+or edx, 0x10
+mov dword [ecx], edx
+
+loc_fffaf2bb:
+inc eax
+cmp eax, dword [ebp - 0x38]
+jb short loc_fffaf2a2 ; jb 0xfffaf2a2
+mov dword [ebp - 0x2c], 0xa
+
+loc_fffaf2c8:
+mov dword [ebp - 0x60], 0
+xor eax, eax
+
+loc_fffaf2d1:
+mov edx, dword [ebp - 0x3c]
+mov ecx, dword [edx + eax*4]
+inc eax
+add ecx, ebx
+mov edx, dword [ecx]
+or dword [ebp - 0x60], edx
+cmp eax, dword [ebp - 0x38]
+jb short loc_fffaf2d1 ; jb 0xfffaf2d1
+mov eax, 0x2710
+call fcn_fffc5e98 ; call 0xfffc5e98
+test byte [ebp - 0x60], 0x10
+je short loc_fffaf2f9 ; je 0xfffaf2f9
+dec dword [ebp - 0x2c]
+jne short loc_fffaf2c8 ; jne 0xfffaf2c8
+
+loc_fffaf2f9:
+mov eax, dword [edi + 0xa00d0]
+and eax, 0xffff8000
+mov dword [edi + 0xa00d0], eax
+xor edx, edx
+
+loc_fffaf30c:
+mov eax, dword [ebp - 0x3c]
+mov ecx, ebx
+add ecx, dword [eax + edx*4]
+mov eax, dword [ecx]
+and eax, 0xff01fffd
+or eax, 0xfe0000
+mov dword [ecx], eax
+inc edx
+cmp edx, dword [ebp - 0x38]
+jne short loc_fffaf30c ; jne 0xfffaf30c
+cmp dword [ebp - 0x54], 0
+je short loc_fffaf347 ; je 0xfffaf347
+mov eax, dword [ebp - 0x3c]
+mov ecx, dword [ebp - 0x38]
+mov edx, ebx
+add edx, dword [eax + ecx*4]
+mov eax, dword [edx]
+and eax, 0xff01fffd
+or eax, 0xfe0000
+mov dword [edx], eax
+
+loc_fffaf347:
+xor edx, edx
+
+loc_fffaf349:
+mov ecx, dword [esi + edx*4]
+add ecx, ebx
+mov eax, dword [ecx]
+and eax, 0x7ffffffd
+or eax, 0x80000000
+mov dword [ecx], eax
+inc edx
+cmp edx, dword [ebp - 0x34]
+jne short loc_fffaf349 ; jne 0xfffaf349
+mov eax, dword [edi + 0xa00d8]
+and eax, 0xffffffc0
+mov dword [edi + 0xa00d8], eax
+mov edx, dword [ebp - 0x34]
+mov dword [ebp - 0x2c], 0xa
+lea edx, [esi + edx*4]
+mov dword [ebp - 0x40], edx
+
+loc_fffaf381:
+mov eax, esi
+xor edx, edx
+
+loc_fffaf385:
+mov ecx, dword [eax]
+add eax, 4
+add ecx, ebx
+mov ecx, dword [ecx]
+or edx, ecx
+cmp eax, dword [ebp - 0x40]
+jne short loc_fffaf385 ; jne 0xfffaf385
+mov eax, 0x2710
+mov dword [ebp - 0x70], edx
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov edx, dword [ebp - 0x70]
+and dl, 0x10
+je short loc_fffaf3af ; je 0xfffaf3af
+dec dword [ebp - 0x2c]
+jne short loc_fffaf381 ; jne 0xfffaf381
+
+loc_fffaf3af:
+xor eax, eax
+
+loc_fffaf3b1:
+mov ecx, dword [esi + eax*4]
+add ecx, ebx
+mov edx, dword [ecx]
+and edx, 0xff01fffd
+or edx, 0xfe0000
+mov dword [ecx], edx
+inc eax
+cmp eax, dword [ebp - 0x34]
+jne short loc_fffaf3b1 ; jne 0xfffaf3b1
+mov eax, dword [ebx + 0x80]
+or eax, 1
+mov dword [ebx + 0x80], eax
+mov eax, dword [ebx + 0x80]
+and eax, 0xfffffffe
+mov dword [ebx + 0x80], eax
+jmp near loc_fffafa2a ; jmp 0xfffafa2a
+
+loc_fffaf3ef:
+mov ecx, dword [ebp - 0x2c]
+mov ax, word [ecx + 0xf80a2]
+test al, 0x20
+je short loc_fffaf44c ; je 0xfffaf44c
+xor edx, edx
+
+loc_fffaf3ff:
+mov ecx, dword [esi + edx*4]
+add ecx, ebx
+mov eax, dword [ecx]
+and eax, 0x7ffffffd
+or eax, 0x80000000
+mov dword [ecx], eax
+inc edx
+cmp edx, dword [ebp - 0x34]
+jb short loc_fffaf3ff ; jb 0xfffaf3ff
+mov dword [ebp - 0x2c], 0xa
+
+loc_fffaf41f:
+xor ecx, ecx
+xor eax, eax
+
+loc_fffaf423:
+mov edx, dword [esi + eax*4]
+inc eax
+add edx, ebx
+mov edx, dword [edx]
+or ecx, edx
+cmp eax, dword [ebp - 0x34]
+jb short loc_fffaf423 ; jb 0xfffaf423
+mov eax, 0x2710
+mov dword [ebp - 0x70], ecx
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov ecx, dword [ebp - 0x70]
+and cl, 0x10
+je short loc_fffaf44c ; je 0xfffaf44c
+dec dword [ebp - 0x2c]
+jne short loc_fffaf41f ; jne 0xfffaf41f
+
+loc_fffaf44c:
+mov eax, dword [ebp - 0x30]
+test byte [eax + 0x57], 0x10
+je loc_fffaf5ea ; je 0xfffaf5ea
+xor edx, edx
+
+loc_fffaf45b:
+mov eax, dword [ebp - 0x3c]
+mov ecx, ebx
+add ecx, dword [eax + edx*4]
+mov eax, dword [ecx]
+test al, 1
+je short loc_fffaf473 ; je 0xfffaf473
+mov eax, dword [ecx]
+and eax, 0xffffffed
+or eax, 0x10
+mov dword [ecx], eax
+
+loc_fffaf473:
+inc edx
+cmp edx, dword [ebp - 0x38]
+jb short loc_fffaf45b ; jb 0xfffaf45b
+mov dword [ebp - 0x2c], 0xa
+
+loc_fffaf480:
+mov dword [ebp - 0x60], 0
+xor eax, eax
+
+loc_fffaf489:
+mov edx, dword [ebp - 0x3c]
+mov ecx, dword [edx + eax*4]
+inc eax
+add ecx, ebx
+mov edx, dword [ecx]
+or dword [ebp - 0x60], edx
+cmp eax, dword [ebp - 0x38]
+jb short loc_fffaf489 ; jb 0xfffaf489
+mov eax, 0x2710
+call fcn_fffc5e98 ; call 0xfffc5e98
+test byte [ebp - 0x60], 0x10
+je short loc_fffaf4b1 ; je 0xfffaf4b1
+dec dword [ebp - 0x2c]
+jne short loc_fffaf480 ; jne 0xfffaf480
+
+loc_fffaf4b1:
+xor eax, eax
+xor ecx, ecx
+
+loc_fffaf4b5:
+mov edx, dword [ebp - 0x30]
+cmp byte [edx + ecx + 0x58], 1
+jne short loc_fffaf4c8 ; jne 0xfffaf4c8
+mov edx, 1
+shl edx, cl
+or eax, edx
+
+loc_fffaf4c8:
+inc ecx
+cmp ecx, dword [ebp - 0x38]
+jb short loc_fffaf4b5 ; jb 0xfffaf4b5
+mov edx, dword [edi + 0xa00d0]
+and edx, 0xffff8000
+or edx, eax
+mov dword [edi + 0xa00d0], edx
+xor eax, eax
+
+loc_fffaf4e4:
+mov edx, dword [ebp - 0x3c]
+mov ecx, ebx
+add ecx, dword [edx + eax*4]
+mov edx, dword [ecx]
+and edx, 0xff01fffd
+or edx, 0xfe0000
+mov dword [ecx], edx
+inc eax
+cmp eax, dword [ebp - 0x38]
+jne short loc_fffaf4e4 ; jne 0xfffaf4e4
+cmp dword [ebp - 0x54], 0
+je short loc_fffaf51e ; je 0xfffaf51e
+mov ecx, dword [ebp - 0x3c]
+mov edx, ebx
+add edx, dword [ecx + eax*4]
+mov eax, dword [edx]
+and eax, 0xff01fffd
+or eax, 0xfe0000
+mov dword [edx], eax
+
+loc_fffaf51e:
+xor edx, edx
+jmp short loc_fffaf536 ; jmp 0xfffaf536
+
+loc_fffaf522:
+mov ecx, dword [esi + edx*4]
+add ecx, ebx
+mov eax, dword [ecx]
+and eax, 0x7ffffffd
+or eax, 0x80000000
+mov dword [ecx], eax
+inc edx
+
+loc_fffaf536:
+cmp edx, dword [ebp - 0x34]
+jne short loc_fffaf522 ; jne 0xfffaf522
+xor eax, eax
+xor ecx, ecx
+jmp short loc_fffaf555 ; jmp 0xfffaf555
+
+loc_fffaf541:
+mov edx, dword [ebp - 0x30]
+cmp byte [edx + ecx + 0x66], 1
+jne short loc_fffaf554 ; jne 0xfffaf554
+mov edx, 1
+shl edx, cl
+or eax, edx
+
+loc_fffaf554:
+inc ecx
+
+loc_fffaf555:
+cmp ecx, dword [ebp - 0x34]
+jne short loc_fffaf541 ; jne 0xfffaf541
+mov edx, dword [edi + 0xa00d8]
+and edx, 0xffffffc0
+or edx, eax
+mov dword [edi + 0xa00d8], edx
+mov ecx, dword [ebp - 0x34]
+mov dword [ebp - 0x38], 0xa
+lea ecx, [esi + ecx*4]
+mov dword [ebp - 0x2c], ecx
+
+loc_fffaf57b:
+mov eax, esi
+xor edx, edx
+jmp short loc_fffaf58c ; jmp 0xfffaf58c
+
+loc_fffaf581:
+mov ecx, dword [eax]
+add eax, 4
+add ecx, ebx
+mov ecx, dword [ecx]
+or edx, ecx
+
+loc_fffaf58c:
+cmp eax, dword [ebp - 0x2c]
+jne short loc_fffaf581 ; jne 0xfffaf581
+mov eax, 0x2710
+mov dword [ebp - 0x70], edx
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov edx, dword [ebp - 0x70]
+and dl, 0x10
+je short loc_fffaf5c5 ; je 0xfffaf5c5
+dec dword [ebp - 0x38]
+jne short loc_fffaf57b ; jne 0xfffaf57b
+jmp short loc_fffaf5c5 ; jmp 0xfffaf5c5
+
+loc_fffaf5ad:
+mov ecx, dword [esi + eax*4]
+add ecx, ebx
+mov edx, dword [ecx]
+and edx, 0xff01fffd
+or edx, 0xfe0000
+mov dword [ecx], edx
+inc eax
+jmp short loc_fffaf5c7 ; jmp 0xfffaf5c7
+
+loc_fffaf5c5:
+xor eax, eax
+
+loc_fffaf5c7:
+cmp eax, dword [ebp - 0x34]
+jne short loc_fffaf5ad ; jne 0xfffaf5ad
+mov eax, dword [ebx + 0x80]
+or eax, 1
+mov dword [ebx + 0x80], eax
+mov eax, dword [ebx + 0x80]
+and eax, 0xfffffffe
+mov dword [ebx + 0x80], eax
+
+loc_fffaf5ea:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov dword [ebp - 0x34], eax
+xor esi, esi
+xor edx, edx
+xor ebx, ebx
+jmp short loc_fffaf635 ; jmp 0xfffaf635
+
+loc_fffaf5fa:
+mov eax, dword [ecx + ebx*4 + 0x6c]
+cmp eax, 8
+je short loc_fffaf634 ; je 0xfffaf634
+cmp ebx, 7
+ja short loc_fffaf61b ; ja 0xfffaf61b
+cmp eax, 3
+ja short loc_fffaf634 ; ja 0xfffaf634
+lea ecx, [ebx + eax*8]
+mov eax, 1
+shl eax, cl
+or edx, eax
+jmp short loc_fffaf634 ; jmp 0xfffaf634
+
+loc_fffaf61b:
+cmp dword [ebp - 0x34], 1
+jne short loc_fffaf634 ; jne 0xfffaf634
+lea ecx, [eax - 4]
+cmp ecx, 3
+ja short loc_fffaf634 ; ja 0xfffaf634
+lea ecx, [ebx + eax*8 - 0x28]
+mov eax, dword [ebp - 0x34]
+shl eax, cl
+or esi, eax
+
+loc_fffaf634:
+inc ebx
+
+loc_fffaf635:
+mov dword [ebp - 0x70], edx
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+mov ecx, dword [ebp - 0x30]
+cmp ebx, eax
+mov edx, dword [ebp - 0x70]
+jb short loc_fffaf5fa ; jb 0xfffaf5fa
+test byte [ecx + 0x55], 1
+je short loc_fffaf659 ; je 0xfffaf659
+mov eax, dword [ebp - 0x4c]
+mov dword [eax + 0xe8074], edx
+
+loc_fffaf659:
+cmp dword [ebp - 0x34], 1
+jne short loc_fffaf66e ; jne 0xfffaf66e
+mov edx, dword [ebp - 0x30]
+test byte [edx + 0x56], 1
+je short loc_fffaf66e ; je 0xfffaf66e
+mov ecx, dword [ebp - 0x50]
+mov dword [ecx + 0x74], esi
+
+loc_fffaf66e:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov dword [ebp - 0x3c], eax
+mov eax, dword [ebp - 0x30]
+test byte [eax + 0x57], 3
+jne short loc_fffaf6c2 ; jne 0xfffaf6c2
+jmp near loc_fffaf75b ; jmp 0xfffaf75b
+
+loc_fffaf684:
+mov edx, dword [ebp - 0x30]
+mov eax, dword [edx + ebx*4 + 0x6c]
+cmp eax, 8
+je short loc_fffaf6bf ; je 0xfffaf6bf
+cmp ebx, 7
+ja short loc_fffaf6a9 ; ja 0xfffaf6a9
+cmp eax, 3
+ja short loc_fffaf6bf ; ja 0xfffaf6bf
+lea ecx, [ebx + eax*8]
+mov eax, 1
+shl eax, cl
+or dword [ebp - 0x34], eax
+jmp short loc_fffaf6bf ; jmp 0xfffaf6bf
+
+loc_fffaf6a9:
+lea edx, [eax - 4]
+cmp edx, 3
+ja short loc_fffaf6bf ; ja 0xfffaf6bf
+lea ecx, [ebx + eax*8 - 0x28]
+mov eax, 1
+shl eax, cl
+or dword [ebp - 0x38], eax
+
+loc_fffaf6bf:
+inc ebx
+jmp short loc_fffaf6d2 ; jmp 0xfffaf6d2
+
+loc_fffaf6c2:
+mov dword [ebp - 0x38], 0
+mov dword [ebp - 0x34], 0
+xor ebx, ebx
+
+loc_fffaf6d2:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jb short loc_fffaf684 ; jb 0xfffaf684
+xor esi, esi
+mov dword [ebp - 0x2c], 0
+xor ebx, ebx
+jmp short loc_fffaf71c ; jmp 0xfffaf71c
+
+loc_fffaf6eb:
+mov ecx, dword [ebp - 0x30]
+mov eax, dword [ecx + ebx*4 + 0xa4]
+cmp eax, 8
+je short loc_fffaf71b ; je 0xfffaf71b
+cmp eax, 3
+ja short loc_fffaf70e ; ja 0xfffaf70e
+lea ecx, [ebx + eax*8]
+mov eax, 1
+shl eax, cl
+or dword [ebp - 0x2c], eax
+jmp short loc_fffaf71b ; jmp 0xfffaf71b
+
+loc_fffaf70e:
+lea ecx, [ebx + eax*8 - 0x20]
+mov eax, 1
+shl eax, cl
+or esi, eax
+
+loc_fffaf71b:
+inc ebx
+
+loc_fffaf71c:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+dec eax
+xor edx, edx
+cmp eax, 1
+ja short loc_fffaf730 ; ja 0xfffaf730
+movzx edx, byte [eax + ref_fffcb9dc] ; movzx edx, byte [eax - 0x34624]
+
+loc_fffaf730:
+cmp ebx, edx
+jb short loc_fffaf6eb ; jb 0xfffaf6eb
+mov edx, dword [ebp - 0x34]
+mov dword [edi + 0xa00c0], edx
+mov edx, dword [ebp - 0x2c]
+mov dword [edi + 0xa00c8], edx
+cmp dword [ebp - 0x3c], 1
+jne short loc_fffaf75b ; jne 0xfffaf75b
+mov edx, dword [ebp - 0x38]
+mov dword [edi + 0xa00c4], edx
+mov dword [edi + 0xa00cc], esi
+
+loc_fffaf75b:
+mov esi, dword [ebp - 0x30]
+xor ebx, ebx
+jmp short loc_fffaf797 ; jmp 0xfffaf797
+
+loc_fffaf762:
+mov al, byte [esi + 5]
+mov cl, byte [esi + 6]
+and eax, 7
+and ecx, 7
+shl ecx, 0xb
+sub esp, 0xc
+shl eax, 8
+lea edx, [ebx + 0xe50041]
+or eax, ecx
+mov ecx, 0xffff80ff
+push eax
+shl edx, 8
+mov eax, dword [ebp - 0x44]
+call fcn_fffc90fb ; call 0xfffc90fb
+inc ebx
+add esi, 6
+add esp, 0x10
+
+loc_fffaf797:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jb short loc_fffaf762 ; jb 0xfffaf762
+mov ecx, dword [ebp - 0x30]
+test byte [ecx], 1
+je loc_fffaf94f ; je 0xfffaf94f
+mov ax, word [ebp - 0x6a]
+and eax, 0xfffffffc
+add eax, 0x3c
+mov word [ebp - 0x34], ax
+mov edx, eax
+in ax, dx
+mov word [ebp - 0x38], ax
+or eax, 2
+out dx, ax
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov esi, eax
+xor ebx, ebx
+jmp near loc_fffaf866 ; jmp 0xfffaf866
+
+loc_fffaf7d8:
+cmp ebx, 7
+ja short loc_fffaf823 ; ja 0xfffaf823
+mov ecx, dword [ebp - 0x30]
+test byte [ecx + 0x55], 1
+je short loc_fffaf823 ; je 0xfffaf823
+imul eax, ebx, 6
+test byte [ecx + eax + 1], 1
+jne short loc_fffaf806 ; jne 0xfffaf806
+mov edx, dword [ebp - 0x4c]
+mov cl, bl
+mov al, byte [edx + 0xe8064]
+mov edx, 1
+shl edx, cl
+or eax, edx
+jmp short loc_fffaf81a ; jmp 0xfffaf81a
+
+loc_fffaf806:
+mov ecx, dword [ebp - 0x4c]
+mov edx, 0xfffffffe
+mov al, byte [ecx + 0xe8064]
+mov cl, bl
+rol edx, cl
+and eax, edx
+
+loc_fffaf81a:
+mov edx, dword [ebp - 0x4c]
+mov byte [edx + 0xe8064], al
+
+loc_fffaf823:
+cmp esi, 1
+jne short loc_fffaf865 ; jne 0xfffaf865
+cmp ebx, 0xd
+ja short loc_fffaf865 ; ja 0xfffaf865
+mov ecx, dword [ebp - 0x30]
+test byte [ecx + 0x56], 1
+je short loc_fffaf865 ; je 0xfffaf865
+imul eax, ebx, 6
+mov edx, dword [ebp - 0x50]
+test byte [ecx + eax + 1], 1
+mov al, byte [edx + 0x64]
+lea ecx, [ebx - 8]
+mov edx, esi
+jne short loc_fffaf857 ; jne 0xfffaf857
+shl edx, cl
+mov ecx, dword [ebp - 0x50]
+or eax, edx
+mov byte [ecx + 0x64], al
+jmp short loc_fffaf865 ; jmp 0xfffaf865
+
+loc_fffaf857:
+shl edx, cl
+mov ecx, edx
+not ecx
+and ecx, eax
+mov eax, dword [ebp - 0x50]
+mov byte [eax + 0x64], cl
+
+loc_fffaf865:
+inc ebx
+
+loc_fffaf866:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jb loc_fffaf7d8 ; jb 0xfffaf7d8
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov edx, dword [ebp - 0x30]
+mov dword [ebp - 0x2c], eax
+test byte [edx + 0x57], 3
+je loc_fffaf944 ; je 0xfffaf944
+mov esi, dword [edi + 0xa00e4]
+xor ebx, ebx
+and esi, 0x7fff
+jmp short loc_fffaf8cc ; jmp 0xfffaf8cc
+
+loc_fffaf89b:
+cmp dword [ebp - 0x2c], 1
+mov ecx, ebx
+jne short loc_fffaf8aa ; jne 0xfffaf8aa
+mov ecx, dword [ebx*4 + ref_fffcb99c] ; mov ecx, dword [ebx*4 - 0x34664]
+
+loc_fffaf8aa:
+imul eax, ebx, 6
+mov edx, dword [ebp - 0x30]
+test byte [edx + eax + 1], 1
+jne short loc_fffaf8c2 ; jne 0xfffaf8c2
+mov eax, 1
+shl eax, cl
+or esi, eax
+jmp short loc_fffaf8cb ; jmp 0xfffaf8cb
+
+loc_fffaf8c2:
+mov eax, 0xfffffffe
+rol eax, cl
+and esi, eax
+
+loc_fffaf8cb:
+inc ebx
+
+loc_fffaf8cc:
+call fcn_fffc5d89 ; call 0xfffc5d89
+movzx eax, al
+cmp ebx, eax
+jb short loc_fffaf89b ; jb 0xfffaf89b
+mov ebx, dword [edi + 0xa00e8]
+xor ecx, ecx
+and ebx, 0x3f
+jmp short loc_fffaf91a ; jmp 0xfffaf91a
+
+loc_fffaf8e5:
+cmp byte [ebp - 0x67], 2
+jbe short loc_fffaf8f8 ; jbe 0xfffaf8f8
+mov eax, dword [ebp - 0x30]
+test byte [eax + ecx + 0xbd], 1
+jmp short loc_fffaf903 ; jmp 0xfffaf903
+
+loc_fffaf8f8:
+imul eax, ecx, 6
+mov edx, dword [ebp - 0x30]
+test byte [edx + eax + 1], 1
+
+loc_fffaf903:
+jne short loc_fffaf910 ; jne 0xfffaf910
+mov eax, 1
+shl eax, cl
+or ebx, eax
+jmp short loc_fffaf919 ; jmp 0xfffaf919
+
+loc_fffaf910:
+mov eax, 0xfffffffe
+rol eax, cl
+and ebx, eax
+
+loc_fffaf919:
+inc ecx
+
+loc_fffaf91a:
+mov dword [ebp - 0x70], ecx
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+dec eax
+xor edx, edx
+cmp eax, 1
+mov ecx, dword [ebp - 0x70]
+ja short loc_fffaf934 ; ja 0xfffaf934
+movzx edx, byte [eax + ref_fffcb9dc] ; movzx edx, byte [eax - 0x34624]
+
+loc_fffaf934:
+cmp ecx, edx
+jb short loc_fffaf8e5 ; jb 0xfffaf8e5
+mov dword [edi + 0xa00e4], esi
+mov dword [edi + 0xa00e8], ebx
+
+loc_fffaf944:
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebp - 0x34]
+and eax, 0xfffffffd
+out dx, ax
+
+loc_fffaf94f:
+mov ecx, dword [ebp - 0x30]
+test byte [ecx], 2
+je short loc_fffaf971 ; je 0xfffaf971
+test byte [ecx + 0x55], 1
+je short loc_fffaf971 ; je 0xfffaf971
+mov edx, dword [ebp - 0x4c]
+mov ax, word [edx + 0xe807a]
+or ah, 1
+mov word [edx + 0xe807a], ax
+
+loc_fffaf971:
+cmp dword [ebp - 0x5c], 1
+jne short loc_fffaf993 ; jne 0xfffaf993
+mov ecx, dword [ebp - 0x30]
+test byte [ecx], 4
+je short loc_fffaf993 ; je 0xfffaf993
+test byte [ecx + 0x56], 1
+je short loc_fffaf993 ; je 0xfffaf993
+mov edx, dword [ebp - 0x50]
+mov ax, word [edx + 0x7a]
+or ah, 1
+mov word [edx + 0x7a], ax
+
+loc_fffaf993:
+mov ecx, dword [ebp - 0x30]
+test byte [ecx + 0x57], 3
+je short loc_fffaf9b7 ; je 0xfffaf9b7
+mov ax, word [edi + 0xa0004]
+and eax, 0xfffffff9
+mov word [edi + 0xa0004], ax
+mov dword [edi + 0xa0010], 0
+
+loc_fffaf9b7:
+mov eax, dword [ebp - 0x44]
+mov edx, dword [ebp - 0x48]
+mov dword [eax + 0x3418], edx
+mov ecx, dword [ebp - 0x44]
+mov eax, dword [ecx + 0x3418]
+jmp short loc_fffafa2f ; jmp 0xfffafa2f
+
+loc_fffaf9ce:
+mov dword [ebp - 0x58], 0x80000002
+jmp short loc_fffafa2f ; jmp 0xfffafa2f
+
+loc_fffaf9d7:
+cmp esi, 1
+je loc_fffaeed5 ; je 0xfffaeed5
+xor edx, edx
+jmp near loc_fffaef02 ; jmp 0xfffaef02
+
+loc_fffaf9e7:
+cmp dword [ebp - 0x34], 0
+je loc_fffaf44c ; je 0xfffaf44c
+mov edx, dword [edi + 0xa00dc]
+mov eax, dword [edi + 0xa00d8]
+and eax, 0xffffffc0
+and edx, 0x3f
+or eax, edx
+mov dword [edi + 0xa00d8], eax
+mov edx, dword [edi + 0xa00d4]
+mov eax, dword [edi + 0xa00d0]
+and eax, 0xffff8000
+and edx, 0x7fff
+or eax, edx
+mov dword [edi + 0xa00d0], eax
+
+loc_fffafa2a:
+jmp near loc_fffaf44c ; jmp 0xfffaf44c
+
+loc_fffafa2f:
+mov eax, dword [ebp - 0x58]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffafa3a:
+db 0x00
+db 0x00
+
+fcn_fffafa3c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x28], al
+mov bl, byte [ebp + 0xc]
+imul eax, edx, 0x1347
+mov byte [ebp - 0x30], bl
+mov bl, byte [ebp + 0x14]
+mov dword [ebp - 0x20], edx
+mov byte [ebp - 0x2c], bl
+lea esi, [edi + eax + 0x297c]
+xor eax, eax
+cmp dword [edi + 0x1749], 2
+sete al
+test cl, cl
+mov dword [ebp - 0x24], eax
+je short loc_fffafaad ; je 0xfffafaad
+cmp dword [ebp + 0x10], 0x7f
+mov eax, 0x7f
+cmovle eax, dword [ebp + 0x10]
+mov dword [ebp + 0x10], 0
+test eax, eax
+cmovs eax, dword [ebp + 0x10]
+cmp cl, 4
+mov dword [ebp + 0x10], eax
+ja loc_fffafed2 ; ja 0xfffafed2
+movzx ecx, cl
+jmp dword [ecx*4 + ref_fffcba38] ; ujmp: jmp dword [ecx*4 - 0x345c8]
+
+loc_fffafaad: ; not directly referenced
+xor ebx, ebx
+cmp dword [ebp - 0x24], 0
+mov dword [ebp - 0x24], 0
+je loc_fffafba0 ; je 0xfffafba0
+imul eax, dword [ebp - 0x20], 0x2fa
+add eax, 0xd0
+mov dword [ebp - 0x40], eax
+
+loc_fffafacf: ; not directly referenced
+imul ecx, ebx, 7
+movzx eax, byte [ebp - 0x30]
+mov dword [ebp - 0x34], ecx
+bt eax, ebx
+movzx eax, byte [esi + ebx + 0x2fd]
+jae loc_fffafb89 ; jae 0xfffafb89
+add eax, dword [ebp + 0x10]
+mov ecx, 0x80
+cdq
+mov dword [ebp - 0x1c], eax
+idiv ecx
+mov dword [ebp - 0x28], edx
+mov dl, byte [ebp - 0x28]
+test dl, dl
+lea eax, [edx - 0x80]
+cmovs edx, eax
+cmp byte [ebp - 0x2c], 0
+je short loc_fffafb13 ; je 0xfffafb13
+mov byte [esi + ebx + 0x2fd], dl
+
+loc_fffafb13: ; not directly referenced
+mov cl, byte [ebp - 0x34]
+lea eax, [edi + ebx + 0xfd8]
+movsx edx, dl
+mov dword [ebp - 0x28], 0
+shl edx, cl
+add dword [ebp - 0x24], edx
+movzx ecx, byte [ebp - 0x2c]
+mov edx, dword [ebp - 0x40]
+mov dword [ebp - 0x3c], ecx
+movzx eax, byte [eax + edx + 0x302]
+mov dword [ebp - 0x34], eax
+imul eax, dword [ebp - 0x20], 0x1347
+add eax, edi
+mov dword [ebp - 0x38], eax
+
+loc_fffafb4d: ; not directly referenced
+mov edx, dword [ebp - 0x38]
+mov cl, byte [ebp - 0x28]
+mov eax, 1
+shl eax, cl
+test byte [edx + 0x3acb], al
+je short loc_fffafb7e ; je 0xfffafb7e
+push edx
+push dword [ebp - 0x3c]
+movsx eax, byte [ebp + 0x10]
+mov ecx, dword [ebp - 0x28]
+push eax
+push dword [ebp - 0x34]
+mov edx, dword [ebp - 0x20]
+mov eax, edi
+call fcn_fffc452b ; call 0xfffc452b
+add esp, 0x10
+
+loc_fffafb7e: ; not directly referenced
+inc dword [ebp - 0x28]
+cmp dword [ebp - 0x28], 4
+jne short loc_fffafb4d ; jne 0xfffafb4d
+jmp short loc_fffafb91 ; jmp 0xfffafb91
+
+loc_fffafb89: ; not directly referenced
+mov cl, byte [ebp - 0x34]
+shl eax, cl
+add dword [ebp - 0x24], eax
+
+loc_fffafb91: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffafacf ; jne 0xfffafacf
+jmp near loc_fffafc25 ; jmp 0xfffafc25
+
+loc_fffafba0: ; not directly referenced
+movzx eax, byte [ebp - 0x28]
+movzx edx, byte [ebp - 0x2c]
+mov dword [ebp - 0x28], eax
+mov dword [ebp - 0x30], edx
+
+loc_fffafbae: ; not directly referenced
+imul ecx, ebx, 7
+mov eax, dword [ebp - 0x28]
+bt eax, ebx
+mov dword [ebp - 0x38], ecx
+movzx eax, byte [esi + ebx + 0x2fd]
+jae short loc_fffafc17 ; jae 0xfffafc17
+add eax, dword [ebp + 0x10]
+mov ecx, 0x80
+cdq
+mov dword [ebp - 0x1c], eax
+idiv ecx
+mov dword [ebp - 0x34], edx
+mov dl, byte [ebp - 0x34]
+test dl, dl
+lea eax, [edx - 0x80]
+cmovs edx, eax
+cmp byte [ebp - 0x2c], 0
+je short loc_fffafbed ; je 0xfffafbed
+mov byte [esi + ebx + 0x2fd], dl
+
+loc_fffafbed: ; not directly referenced
+push eax
+push dword [ebp - 0x30]
+movsx eax, byte [ebp + 0x10]
+mov cl, byte [ebp - 0x38]
+push eax
+movsx edx, dl
+mov eax, edi
+push 0x1ff
+shl edx, cl
+mov ecx, ebx
+add dword [ebp - 0x24], edx
+mov edx, dword [ebp - 0x20]
+call fcn_fffc452b ; call 0xfffc452b
+add esp, 0x10
+jmp short loc_fffafc1f ; jmp 0xfffafc1f
+
+loc_fffafc17: ; not directly referenced
+mov cl, byte [ebp - 0x38]
+shl eax, cl
+add dword [ebp - 0x24], eax
+
+loc_fffafc1f: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffafbae ; jne 0xfffafbae
+
+loc_fffafc25: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+mov eax, dword [edi + 0x103f]
+shl edx, 8
+mov ebx, dword [ebp - 0x24]
+lea eax, [edx + eax + 0x180c]
+mov dword [eax], ebx
+jmp near loc_fffafed2 ; jmp 0xfffafed2
+
+loc_fffafc42: ; not directly referenced
+cmp dword [ebp + 0x10], 0x7f
+mov eax, 0x7f
+cmovle eax, dword [ebp + 0x10]
+mov ebx, dword [edi + 0x103f]
+mov edx, eax
+and edx, 0x7f
+mov ecx, edx
+shl ecx, 7
+or ecx, edx
+mov edx, dword [ebp - 0x20]
+shl edx, 8
+cmp byte [ebp - 0x2c], 0
+lea edx, [edx + ebx + 0x1408]
+mov dword [edx], ecx
+je loc_fffafed2 ; je 0xfffafed2
+mov dword [esi + 0x19d], eax
+mov dword [esi + 0x1a1], eax
+jmp near loc_fffafed2 ; jmp 0xfffafed2
+
+loc_fffafc8b: ; not directly referenced
+cmp dword [ebp + 0x10], 0x7f
+mov ecx, 0x7f
+mov edx, dword [ebp + 0x10]
+cmovg edx, ecx
+cmp dword [ebp - 0x24], 0
+je short loc_fffafcd7 ; je 0xfffafcd7
+test byte [ebp - 0x30], 1
+mov cl, dl
+jne short loc_fffafcae ; jne 0xfffafcae
+mov cl, byte [esi + 0x195]
+
+loc_fffafcae: ; not directly referenced
+and ecx, 0x7f
+and ecx, 0x7f
+test byte [ebp - 0x30], 2
+je short loc_fffafcbc ; je 0xfffafcbc
+jmp short loc_fffafcc2 ; jmp 0xfffafcc2
+
+loc_fffafcbc: ; not directly referenced
+mov dl, byte [esi + 0x199]
+
+loc_fffafcc2: ; not directly referenced
+and edx, 0x7f
+mov eax, edx
+and eax, 0x7f
+shl eax, 7
+or eax, ecx
+cmp byte [ebp - 0x2c], 0
+jne short loc_fffafd22 ; jne 0xfffafd22
+jmp short loc_fffafd38 ; jmp 0xfffafd38
+
+loc_fffafcd7: ; not directly referenced
+mov ebx, edx
+and ebx, 0x7f
+mov eax, ebx
+shl eax, 7
+or eax, ebx
+cmp edx, 0x7f
+cmovg edx, ecx
+mov ebx, edx
+and ebx, 0x7f
+mov ecx, ebx
+shl ecx, 7
+or ecx, ebx
+mov ebx, dword [ebp - 0x20]
+shl ebx, 8
+mov dword [ebp - 0x24], ecx
+mov ecx, dword [edi + 0x103f]
+cmp byte [ebp - 0x2c], 0
+lea ecx, [ebx + ecx + 0x1208]
+mov ebx, dword [ebp - 0x24]
+mov dword [ecx], ebx
+je short loc_fffafd38 ; je 0xfffafd38
+mov dword [esi + 0x18d], edx
+mov dword [esi + 0x191], edx
+
+loc_fffafd22: ; not directly referenced
+mov edx, eax
+and edx, 0x7f
+mov dword [esi + 0x195], edx
+mov edx, eax
+shr edx, 7
+mov dword [esi + 0x199], edx
+
+loc_fffafd38: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+mov ecx, dword [edi + 0x103f]
+shl edx, 8
+lea edx, [edx + ecx + 0x1a08]
+jmp near loc_fffafed0 ; jmp 0xfffafed0
+
+loc_fffafd50: ; not directly referenced
+cmp dword [ebp + 0x10], 0x7f
+mov eax, 0x7f
+cmovle eax, dword [ebp + 0x10]
+mov ebx, dword [edi + 0x103f]
+mov edx, eax
+and edx, 0x7f
+mov ecx, edx
+shl ecx, 7
+or ecx, edx
+mov edx, dword [ebp - 0x20]
+shl edx, 8
+cmp byte [ebp - 0x2c], 0
+lea edx, [edx + ebx + 0x1208]
+mov dword [edx], ecx
+je loc_fffafed2 ; je 0xfffafed2
+mov dword [esi + 0x18d], eax
+mov dword [esi + 0x191], eax
+jmp near loc_fffafed2 ; jmp 0xfffafed2
+
+loc_fffafd99: ; not directly referenced
+movzx edx, byte [ebp - 0x28]
+mov eax, 0x7f
+cmp dword [ebp + 0x10], 0x7f
+mov ebx, esi
+cmovle eax, dword [ebp + 0x10]
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x30], edx
+
+loc_fffafdbd: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+mov ecx, dword [ebp - 0x34]
+bt edx, ecx
+jae short loc_fffafde6 ; jae 0xfffafde6
+imul ecx, ecx, 7
+mov edx, eax
+shl edx, cl
+add dword [ebp - 0x1c], edx
+cmp byte [ebp - 0x2c], 0
+je short loc_fffafdf6 ; je 0xfffafdf6
+mov byte [ebx + 0x301], al
+mov byte [ebx + 0x305], al
+jmp short loc_fffafdf6 ; jmp 0xfffafdf6
+
+loc_fffafde6: ; not directly referenced
+imul ecx, dword [ebp - 0x34], 7
+movzx edx, byte [ebx + 0x301]
+shl edx, cl
+add dword [ebp - 0x1c], edx
+
+loc_fffafdf6: ; not directly referenced
+inc dword [ebp - 0x34]
+inc ebx
+cmp dword [ebp - 0x34], 4
+jne short loc_fffafdbd ; jne 0xfffafdbd
+cmp dword [ebp - 0x24], 0
+mov eax, dword [ebp - 0x1c]
+je short loc_fffafe26 ; je 0xfffafe26
+cmp byte [edi + 0x16bb], 0
+je short loc_fffafe26 ; je 0xfffafe26
+movzx edx, byte [esi + 0x301]
+and eax, 0xffe03fff
+and edx, 0x7f
+shl edx, 0xe
+or eax, edx
+
+loc_fffafe26: ; not directly referenced
+mov ebx, dword [ebp - 0x20]
+mov edx, dword [edi + 0x103f]
+shl ebx, 8
+cmp dword [ebp - 0x24], 0
+mov dword [ebp - 0x2c], ebx
+lea edx, [ebx + edx + 0x1c18]
+mov dword [edx], eax
+je short loc_fffafebb ; je 0xfffafebb
+mov ecx, dword [ebp - 0x20]
+xor edx, edx
+shl ecx, 2
+mov dword [ebp - 0x24], 0
+movzx ebx, byte [edi + 0x16bc]
+sar ebx, cl
+and ebx, 0xf
+jmp short loc_fffafe8f ; jmp 0xfffafe8f
+
+loc_fffafe61: ; not directly referenced
+mov cl, byte [ebp - 0x1c]
+mov eax, ebx
+shr eax, cl
+and eax, 1
+cmp eax, edx
+jne short loc_fffafe80 ; jne 0xfffafe80
+imul ecx, dword [ebp - 0x1c], 7
+movzx eax, byte [esi + edx + 0x305]
+shl eax, cl
+add dword [ebp - 0x24], eax
+
+loc_fffafe80: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 4
+jne short loc_fffafe61 ; jne 0xfffafe61
+inc edx
+cmp edx, 4
+je short loc_fffafe98 ; je 0xfffafe98
+
+loc_fffafe8f: ; not directly referenced
+mov dword [ebp - 0x1c], 0
+jmp short loc_fffafe61 ; jmp 0xfffafe61
+
+loc_fffafe98: ; not directly referenced
+mov ecx, dword [ebp - 0x24]
+mov edx, dword [ebp - 0x24]
+shr ecx, 0xe
+mov eax, dword [ebp - 0x24]
+shr edx, 0x15
+and ecx, 0x7f
+and edx, 0x7f
+and eax, 0xffe03fff
+add edx, ecx
+shr edx, 1
+shl edx, 0xe
+or eax, edx
+
+loc_fffafebb: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x2c]
+and eax, 0xf01fffff
+lea edx, [ebx + edx + 0x1218]
+
+loc_fffafed0: ; not directly referenced
+mov dword [edx], eax
+
+loc_fffafed2: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffafeda: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x1c]
+cmp dl, 1
+mov byte [ebp - 0x19], cl
+mov edi, dword [ebp + 8]
+mov cl, byte [ebp + 0xc]
+je short loc_fffaff19 ; je 0xfffaff19
+jb short loc_fffaff01 ; jb 0xfffaff01
+cmp dl, 2
+jne loc_fffb009a ; jne 0xfffb009a
+jmp short loc_fffaff32 ; jmp 0xfffaff32
+
+loc_fffaff01: ; not directly referenced
+movzx esi, byte [ebx + 0x1760]
+mov al, byte [eax + 0x175f]
+shr al, 6
+and esi, 0x1f
+shl esi, 2
+jmp short loc_fffaff2e ; jmp 0xfffaff2e
+
+loc_fffaff19: ; not directly referenced
+movzx esi, byte [ebx + 0x175f]
+mov al, byte [eax + 0x175e]
+shr al, 7
+and esi, 0x3f
+add esi, esi
+
+loc_fffaff2e: ; not directly referenced
+or eax, esi
+jmp short loc_fffaff3b ; jmp 0xfffaff3b
+
+loc_fffaff32: ; not directly referenced
+mov al, byte [eax + 0x175e]
+and eax, 0x7f
+
+loc_fffaff3b: ; not directly referenced
+mov esi, 0xffffff80
+or esi, eax
+test al, 0xc0
+cmovne eax, esi
+movsx eax, al
+lea esi, [edi + eax]
+mov eax, 0xffffffca
+cmp esi, 0xffffffffffffffca
+cmovge eax, esi
+mov esi, 0x36
+cmp eax, 0x36
+cmovle esi, eax
+cmp byte [ebp - 0x19], 0
+je loc_fffafffd ; je 0xfffafffd
+cmp dl, 1
+je short loc_fffaffb2 ; je 0xfffaffb2
+jb short loc_fffaff7f ; jb 0xfffaff7f
+cmp dl, 2
+jne loc_fffb009a ; jne 0xfffb009a
+jmp short loc_fffaffe5 ; jmp 0xfffaffe5
+
+loc_fffaff7f: ; not directly referenced
+mov eax, esi
+shl eax, 6
+mov edi, eax
+mov al, byte [ebx + 0x175f]
+and eax, 0x3f
+or eax, edi
+mov edi, esi
+shr edi, 2
+mov byte [ebx + 0x175f], al
+mov al, byte [ebx + 0x1760]
+and edi, 0x1f
+and eax, 0xffffffe0
+or eax, edi
+mov byte [ebx + 0x1760], al
+jmp short loc_fffafffd ; jmp 0xfffafffd
+
+loc_fffaffb2: ; not directly referenced
+mov edi, esi
+mov al, byte [ebx + 0x175e]
+and edi, 1
+and eax, 0x7f
+shl edi, 7
+or eax, edi
+mov edi, esi
+shr edi, 1
+mov byte [ebx + 0x175e], al
+mov al, byte [ebx + 0x175f]
+and edi, 0x3f
+and eax, 0xffffffc0
+or eax, edi
+mov byte [ebx + 0x175f], al
+jmp short loc_fffafffd ; jmp 0xfffafffd
+
+loc_fffaffe5: ; not directly referenced
+mov eax, esi
+and eax, 0x7f
+mov edi, eax
+mov al, byte [ebx + 0x175e]
+and eax, 0xffffff80
+or eax, edi
+mov byte [ebx + 0x175e], al
+
+loc_fffafffd: ; not directly referenced
+mov edi, dword [ebx + 0x103f]
+cmp dl, 1
+mov eax, dword [edi + 0xf78]
+je short loc_fffb002f ; je 0xfffb002f
+jb short loc_fffb001b ; jb 0xfffb001b
+cmp dl, 2
+jne loc_fffb009a ; jne 0xfffb009a
+jmp short loc_fffb0043 ; jmp 0xfffb0043
+
+loc_fffb001b: ; not directly referenced
+and esi, 0x7f
+and eax, 0xffe03fff
+shl esi, 0xe
+or eax, esi
+mov esi, 0x40000000
+jmp short loc_fffb0050 ; jmp 0xfffb0050
+
+loc_fffb002f: ; not directly referenced
+and esi, 0x7f
+and eax, 0xffffc07f
+shl esi, 7
+or eax, esi
+mov esi, 0x80000000
+jmp short loc_fffb0050 ; jmp 0xfffb0050
+
+loc_fffb0043: ; not directly referenced
+and esi, 0x7f
+and eax, 0xffffff80
+or eax, esi
+mov esi, 0x20000000
+
+loc_fffb0050: ; not directly referenced
+test cl, cl
+mov dword [edi + 0xf78], eax
+jne short loc_fffb009a ; jne 0xfffb009a
+mov cl, 0x32
+
+loc_fffb005c: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov eax, dword [eax + 0xf78]
+and eax, esi
+cmp eax, esi
+jne short loc_fffb0082 ; jne 0xfffb0082
+
+loc_fffb006e: ; not directly referenced
+lea esp, [esp + 0x1c]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+mov edx, 0x4b
+jmp near fcn_fffb2d3a ; jmp 0xfffb2d3a
+
+loc_fffb0082: ; not directly referenced
+mov edx, 0xf
+mov eax, ebx
+mov byte [ebp - 0x20], cl
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov cl, byte [ebp - 0x20]
+dec cl
+jne short loc_fffb005c ; jne 0xfffb005c
+jmp short loc_fffb006e ; jmp 0xfffb006e
+
+loc_fffb009a: ; not directly referenced
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb00a3: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+mov esi, eax
+push ebx
+movzx ebx, dl
+lea esp, [esp - 0x1c]
+mov eax, dword [ebp + 0xc]
+mov cl, byte [ebp + 0x10]
+cmp eax, 1
+mov dl, byte [ebp + 8]
+mov byte [ebp - 0x19], cl
+je short loc_fffb00cc ; je 0xfffb00cc
+cmp eax, 2
+jne short loc_fffb00e4 ; jne 0xfffb00e4
+jmp short loc_fffb00d8 ; jmp 0xfffb00d8
+
+loc_fffb00cc: ; not directly referenced
+movzx eax, bl
+lea edx, [eax*8 + 0x48d8]
+jmp short loc_fffb0132 ; jmp 0xfffb0132
+
+loc_fffb00d8: ; not directly referenced
+movzx eax, bl
+lea edx, [eax*8 + 0x48f8]
+jmp short loc_fffb0132 ; jmp 0xfffb0132
+
+loc_fffb00e4: ; not directly referenced
+shl ebx, 8
+test edi, edi
+je short loc_fffb00f3 ; je 0xfffb00f3
+add ebx, 0x3074
+jmp short loc_fffb00fe ; jmp 0xfffb00fe
+
+loc_fffb00f3: ; not directly referenced
+movzx eax, byte [ebp - 0x19]
+shl eax, 9
+lea ebx, [ebx + eax + 0x74]
+
+loc_fffb00fe: ; not directly referenced
+add ebx, dword [esi + 0x103f]
+mov esi, dword [ebp + 0x14]
+and esi, 1
+mov ecx, dword [ebp + 0x18]
+shl esi, 0x14
+and ecx, 1
+shl ecx, 0x15
+and edx, 3
+shl edx, 0x16
+mov eax, dword [ebx]
+and eax, 0xffcfffff
+or eax, esi
+or eax, ecx
+and eax, 0xff3fffff
+or eax, edx
+mov dword [ebx], eax
+jmp short loc_fffb015f ; jmp 0xfffb015f
+
+loc_fffb0132: ; not directly referenced
+mov eax, esi
+call fcn_fffb20e4 ; call 0xfffb20e4
+mov eax, dword [esi + 0x103f]
+and edx, 0x7000000
+movzx ecx, bl
+shr edx, 0x16
+lea eax, [eax + ecx*4 + 0x4930]
+mov cl, dl
+mov eax, dword [eax]
+shr eax, cl
+mov dl, al
+and edx, 3
+jmp short loc_fffb00e4 ; jmp 0xfffb00e4
+
+loc_fffb015f: ; not directly referenced
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0168: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov dword [ebp - 0x20], edx
+imul edx, edx, 0x1347
+mov byte [ebp - 0x1a], cl
+mov cl, byte [ebp + 8]
+mov ebx, dword [ebp + 0x10]
+mov byte [ebp - 0x19], cl
+mov cl, byte [ebp + 0xc]
+test cl, cl
+mov word [ebp - 0x1c], bx
+mov edi, ebx
+lea edx, [eax + edx + 0x297c]
+je short loc_fffb01b2 ; je 0xfffb01b2
+movzx ebx, byte [ebp - 0x1a]
+movzx esi, byte [ebp - 0x19]
+lea ebx, [ebx + ebx*8]
+lea ebx, [esi + ebx + 0x130]
+mov di, word [edx + ebx*2 + 0xd]
+
+loc_fffb01b2: ; not directly referenced
+and di, 0x1ff
+mov bl, cl
+and edi, 0x1ff
+cmp cl, 5
+sete byte [ebp - 0x21]
+and ebx, 0xfffffffb
+dec bl
+jne short loc_fffb01d2 ; jne 0xfffb01d2
+mov bl, byte [ebp - 0x1c]
+jmp short loc_fffb01e6 ; jmp 0xfffb01e6
+
+loc_fffb01d2: ; not directly referenced
+movzx ebx, byte [ebp - 0x1a]
+movzx esi, byte [ebp - 0x19]
+lea ebx, [ebx + ebx*8]
+add ebx, edx
+mov bl, byte [esi + ebx + 0x1106]
+
+loc_fffb01e6: ; not directly referenced
+and ebx, 0x3f
+mov esi, ebx
+and esi, 0x3f
+shl esi, 9
+or esi, edi
+cmp cl, 2
+mov dword [ebp - 0x28], esi
+jne short loc_fffb0205 ; jne 0xfffb0205
+mov bl, byte [ebp - 0x1c]
+and ebx, 0x1f
+mov esi, ebx
+jmp short loc_fffb021d ; jmp 0xfffb021d
+
+loc_fffb0205: ; not directly referenced
+movzx esi, byte [ebp - 0x1a]
+movzx edi, byte [ebp - 0x19]
+lea esi, [esi + esi*8]
+add esi, edx
+movzx esi, byte [edi + esi + 0x10e2]
+and esi, 0x1f
+
+loc_fffb021d: ; not directly referenced
+and esi, 0x1f
+shl esi, 0xf
+or esi, dword [ebp - 0x28]
+cmp cl, 3
+sete bl
+or bl, byte [ebp - 0x21]
+je short loc_fffb0236 ; je 0xfffb0236
+mov bl, byte [ebp - 0x1c]
+jmp short loc_fffb024a ; jmp 0xfffb024a
+
+loc_fffb0236: ; not directly referenced
+movzx ebx, byte [ebp - 0x1a]
+movzx edi, byte [ebp - 0x19]
+lea ebx, [ebx + ebx*8]
+add ebx, edx
+mov bl, byte [edi + ebx + 0x112a]
+
+loc_fffb024a: ; not directly referenced
+and ebx, 0x3f
+and ebx, 0x3f
+shl ebx, 0x14
+or ebx, esi
+cmp cl, 4
+jne short loc_fffb025f ; jne 0xfffb025f
+mov dl, byte [ebp - 0x1c]
+jmp short loc_fffb026a ; jmp 0xfffb026a
+
+loc_fffb025f: ; not directly referenced
+movzx ecx, byte [ebp - 0x19]
+mov dl, byte [edx + ecx + 0x10d9]
+
+loc_fffb026a: ; not directly referenced
+and edx, 0x3f
+mov edi, dword [ebp - 0x20]
+shl edx, 0x1a
+sub esp, 0xc
+movzx ecx, byte [ebp - 0x1a]
+or edx, ebx
+movzx ebx, byte [ebp - 0x19]
+shl edi, 6
+mov esi, ebx
+shl esi, 7
+add edi, ecx
+add edi, esi
+mov esi, dword [eax + 0x103f]
+lea esi, [esi + edi*4]
+mov dword [esi], edx
+mov edx, dword [ebp - 0x20]
+push 0
+push 1
+push ebx
+push 0
+push ecx
+xor ecx, ecx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb02b4: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+imul edx, edx, 0x1347
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov bl, byte [ebp + 0xc]
+mov byte [ebp - 0x1c], cl
+cmp bl, 3
+mov cl, byte [ebp + 8]
+lea edx, [eax + edx + 0x297c]
+mov byte [ebp - 0x1d], cl
+jne short loc_fffb02e6 ; jne 0xfffb02e6
+mov edx, dword [ebp + 0x10]
+jmp near loc_fffb0371 ; jmp 0xfffb0371
+
+loc_fffb02e6: ; not directly referenced
+test bl, bl
+jne short loc_fffb02ef ; jne 0xfffb02ef
+mov ecx, dword [ebp + 0x10]
+jmp short loc_fffb0306 ; jmp 0xfffb0306
+
+loc_fffb02ef: ; not directly referenced
+movzx ecx, byte [ebp - 0x1c]
+movzx esi, byte [ebp - 0x1d]
+lea ecx, [ecx + ecx*8]
+lea ecx, [esi + ecx + 0x110]
+mov cx, word [edx + ecx*2 + 5]
+
+loc_fffb0306: ; not directly referenced
+and cx, 0x1ff
+mov esi, ecx
+and esi, 0x1ff
+cmp bl, 1
+mov dword [ebp - 0x24], esi
+jne short loc_fffb0320 ; jne 0xfffb0320
+mov ecx, dword [ebp + 0x10]
+jmp short loc_fffb0337 ; jmp 0xfffb0337
+
+loc_fffb0320: ; not directly referenced
+movzx ecx, byte [ebp - 0x1c]
+movzx esi, byte [ebp - 0x1d]
+lea ecx, [ecx + ecx*8]
+lea ecx, [esi + ecx + 0xe8]
+mov cx, word [edx + ecx*2 + 0xd]
+
+loc_fffb0337: ; not directly referenced
+and cx, 0x1ff
+and ecx, 0x1ff
+shl ecx, 9
+or ecx, dword [ebp - 0x24]
+cmp bl, 2
+jne short loc_fffb0352 ; jne 0xfffb0352
+mov dl, byte [ebp + 0x10]
+jmp short loc_fffb0366 ; jmp 0xfffb0366
+
+loc_fffb0352: ; not directly referenced
+movzx esi, byte [ebp - 0x1c]
+movzx ebx, byte [ebp - 0x1d]
+lea esi, [esi + esi*8]
+add edx, esi
+mov dl, byte [ebx + edx + 0x309]
+
+loc_fffb0366: ; not directly referenced
+and edx, 0x3f
+and edx, 0x3f
+shl edx, 0x14
+or edx, ecx
+
+loc_fffb0371: ; not directly referenced
+mov esi, edi
+sub esp, 0xc
+movzx ecx, byte [ebp - 0x1c]
+shl esi, 8
+movzx ebx, byte [ebp - 0x1d]
+lea esi, [esi + ecx*4 + 0x20]
+mov dword [ebp - 0x24], esi
+mov esi, ebx
+shl esi, 9
+mov dword [ebp - 0x1c], esi
+mov esi, dword [ebp - 0x24]
+add esi, dword [ebp - 0x1c]
+add esi, dword [eax + 0x103f]
+mov dword [esi], edx
+mov edx, edi
+push 1
+push 0
+push ebx
+push 0
+push ecx
+xor ecx, ecx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb03ba: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+lea eax, [ebp - 0x13f]
+push ebx
+lea esp, [esp - 0x17c]
+mov byte [ebp - 0x150], dl
+mov byte [ebp - 0x155], cl
+mov edx, 7
+mov ecx, 1
+mov bl, byte [ebp + 8]
+mov edi, dword [ebp + 0xc]
+call fcn_fffa119f ; call 0xfffa119f
+cmp byte [ebp - 0x155], 0xb
+mov al, byte [ebp - 0x155]
+setne byte [ebp - 0x156]
+dec eax
+cmp al, 1
+seta al
+test byte [ebp - 0x156], al
+jne loc_fffb0b03 ; jne 0xfffb0b03
+cmp byte [ebp - 0x155], 0xb
+jne short loc_fffb045b ; jne 0xfffb045b
+sub esp, 0xc
+sub edi, 3
+mov eax, edi
+push 0
+movzx ecx, al
+mov eax, esi
+movzx edx, byte [ebp - 0x150]
+call fcn_fffc5844 ; call 0xfffc5844
+add esp, 0x10
+dec bl
+mov byte [esi + 0x1768], 0xa
+je short loc_fffb0454 ; je 0xfffb0454
+
+loc_fffb0448: ; not directly referenced
+mov dword [ebp - 0x15c], 0
+jmp short loc_fffb04ad ; jmp 0xfffb04ad
+
+loc_fffb0454: ; not directly referenced
+mov edx, 8
+jmp short loc_fffb0488 ; jmp 0xfffb0488
+
+loc_fffb045b: ; not directly referenced
+sub esp, 0xc
+mov edx, edi
+push 0
+movzx ecx, dl
+mov eax, esi
+movzx edx, byte [ebp - 0x150]
+call fcn_fffc5844 ; call 0xfffc5844
+add esp, 0x10
+dec bl
+jne short loc_fffb0448 ; jne 0xfffb0448
+cmp byte [ebp - 0x155], 1
+jne short loc_fffb0454 ; jne 0xfffb0454
+mov edx, 9
+
+loc_fffb0488: ; not directly referenced
+push 1
+mov ecx, 0x88888888
+mov eax, esi
+push 0
+push 1
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+mov dword [ebp - 0x15c], eax
+add esp, 0x20
+
+loc_fffb04ad: ; not directly referenced
+lea ebx, [esi + 0x2974]
+mov dword [ebp - 0x178], ebx
+movzx ebx, byte [ebp - 0x155]
+mov dword [ebp - 0x150], 0
+mov dword [ebp - 0x174], 0
+mov dword [ebp - 0x17c], ebx
+jmp near loc_fffb0abe ; jmp 0xfffb0abe
+
+loc_fffb04df: ; not directly referenced
+mov ecx, dword [ebp - 0x164]
+mov edx, edi
+mov eax, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0x154], al
+movzx ebx, byte [ebp - 0x154]
+bt ebx, edi
+mov dword [ebp - 0x16c], ebx
+jae loc_fffb0605 ; jae 0xfffb0605
+imul eax, edi, 0x1347
+mov edx, dword [ebp - 0x178]
+mov ecx, dword [ebp - 0x160]
+mov byte [ebp - 0x14c], 0
+lea ebx, [edx + eax + 8]
+add ecx, ebx
+mov dword [ebp - 0x170], ecx
+jmp near loc_fffb05c0 ; jmp 0xfffb05c0
+
+loc_fffb0534: ; not directly referenced
+cmp byte [ebp - 0x155], 1
+jne short loc_fffb0574 ; jne 0xfffb0574
+movzx eax, byte [ebp - 0x14c]
+mov edx, dword [ebp - 0x170]
+add edx, eax
+mov byte [edx + 0x1106], 0x20
+mov byte [edx + 0x112a], 0x20
+push ecx
+mov edx, edi
+mov ecx, dword [ebp - 0x150]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+jmp short loc_fffb05b7 ; jmp 0xfffb05b7
+
+loc_fffb0574: ; not directly referenced
+cmp byte [ebp - 0x155], 2
+jne short loc_fffb05ba ; jne 0xfffb05ba
+movzx eax, byte [ebp - 0x14c]
+mov edx, dword [ebp - 0x160]
+add edx, eax
+mov cx, word [ebx + edx*2 + 0x1dd]
+add ecx, 0x20
+mov word [ebx + edx*2 + 0x225], cx
+mov ecx, dword [ebp - 0x150]
+push edx
+mov edx, edi
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb02b4 ; call 0xfffb02b4
+
+loc_fffb05b7: ; not directly referenced
+add esp, 0x10
+
+loc_fffb05ba: ; not directly referenced
+inc byte [ebp - 0x14c]
+
+loc_fffb05c0: ; not directly referenced
+movzx ecx, byte [esi + 0x1755]
+cmp byte [ebp - 0x14c], cl
+jb short loc_fffb05f6 ; jb 0xfffb05f6
+
+loc_fffb05cf: ; not directly referenced
+lea eax, [ebx + 0xf9]
+xor edx, edx
+call fcn_fffc83ab ; call 0xfffc83ab
+mov edx, edi
+mov eax, dword [esi + 0x103f]
+shl edx, 0xa
+lea eax, [edx + eax + 0x40f0]
+mov dword [eax], 0
+jmp short loc_fffb0605 ; jmp 0xfffb0605
+
+loc_fffb05f6: ; not directly referenced
+cmp byte [ebp - 0x156], 0
+jne loc_fffb0534 ; jne 0xfffb0534
+jmp short loc_fffb05cf ; jmp 0xfffb05cf
+
+loc_fffb0605: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffb04df ; jne 0xfffb04df
+cmp byte [ebp - 0x154], 0
+je loc_fffb0aaf ; je 0xfffb0aaf
+mov edi, 0xffffffe1
+
+loc_fffb0621: ; not directly referenced
+cmp byte [ebp - 0x155], 0xb
+jne short loc_fffb0688 ; jne 0xfffb0688
+xor ebx, ebx
+
+loc_fffb062c: ; not directly referenced
+mov eax, dword [ebp - 0x16c]
+bt eax, ebx
+jb short loc_fffb0671 ; jb 0xfffb0671
+
+loc_fffb0637: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb062c ; jne 0xfffb062c
+jmp short loc_fffb06aa ; jmp 0xfffb06aa
+
+loc_fffb063f: ; not directly referenced
+push 1
+movzx eax, byte [ebp - 0x14c]
+mov ecx, edi
+push 0
+mov edx, 0xb
+push 0
+push eax
+push dword [ebp - 0x150]
+mov eax, esi
+push ebx
+push 0
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+inc byte [ebp - 0x14c]
+add esp, 0x20
+jmp short loc_fffb0678 ; jmp 0xfffb0678
+
+loc_fffb0671: ; not directly referenced
+mov byte [ebp - 0x14c], 0
+
+loc_fffb0678: ; not directly referenced
+mov dl, byte [ebp - 0x14c]
+cmp dl, byte [esi + 0x1755]
+jb short loc_fffb063f ; jb 0xfffb063f
+jmp short loc_fffb0637 ; jmp 0xfffb0637
+
+loc_fffb0688: ; not directly referenced
+push 1
+mov ecx, edi
+mov edx, dword [ebp - 0x17c]
+push 0
+mov eax, esi
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffb06aa: ; not directly referenced
+push eax
+lea ebx, [ebp - 0x13f]
+mov edx, dword [ebp - 0x16c]
+push 0
+movzx ecx, byte [esi + 0x1768]
+mov eax, esi
+push 1
+push ebx
+lea ebx, [ebp - 0xf0]
+call fcn_fffb21f3 ; call 0xfffb21f3
+lea eax, [ebp - 0x60]
+lea edx, [ebp - 0xa8]
+mov dword [ebp - 0x14c], eax
+mov dword [ebp - 0x15c], edx
+lea eax, [edi - 1]
+mov dword [ebp - 0x184], ebx
+lea edx, [ebp - 0x138]
+add esp, 0x10
+mov dword [ebp - 0x154], 0
+mov dword [ebp - 0x180], eax
+
+loc_fffb0707: ; not directly referenced
+mov ebx, dword [ebp - 0x16c]
+mov eax, dword [ebp - 0x154]
+bt ebx, eax
+jb short loc_fffb0744 ; jb 0xfffb0744
+
+loc_fffb0718: ; not directly referenced
+inc dword [ebp - 0x154]
+add dword [ebp - 0x14c], 0x24
+add dword [ebp - 0x15c], 0x24
+add dword [ebp - 0x184], 0x24
+add edx, 0x24
+cmp dword [ebp - 0x154], 2
+jne short loc_fffb0707 ; jne 0xfffb0707
+jmp near loc_fffb0867 ; jmp 0xfffb0867
+
+loc_fffb0744: ; not directly referenced
+mov ebx, dword [ebp - 0x154]
+mov ecx, dword [esi + 0x103f]
+shl ebx, 0xa
+mov al, byte [esi + 0x1755]
+mov byte [ebp - 0x164], al
+lea ecx, [ebx + ecx + 0x40ec]
+mov ebx, dword [ecx]
+xor ecx, ecx
+and ebx, 0xffff
+mov dword [ebp - 0x170], ebx
+jmp near loc_fffb0856 ; jmp 0xfffb0856
+
+loc_fffb077b: ; not directly referenced
+mov ebx, dword [ebp - 0x170]
+sar ebx, cl
+and ebx, 1
+xor ebx, 1
+cmp edi, 0xffffffffffffffe1
+jne short loc_fffb07f5 ; jne 0xfffb07f5
+test ebx, ebx
+je short loc_fffb07c5 ; je 0xfffb07c5
+mov ebx, dword [ebp - 0x14c]
+mov eax, dword [ebp - 0x15c]
+mov dword [edx + ecx*4], 0xffffffe1
+mov dword [ebx + ecx*4], 0xffffffe1
+mov ebx, dword [ebp - 0x184]
+mov dword [eax + ecx*4], 0xffffffe1
+mov dword [ebx + ecx*4], 0xffffffe1
+jmp near loc_fffb0855 ; jmp 0xfffb0855
+
+loc_fffb07c5: ; not directly referenced
+mov eax, dword [ebp - 0x14c]
+mov ebx, dword [ebp - 0x15c]
+mov dword [edx + ecx*4], 0xffffffdf
+mov dword [eax + ecx*4], 0xffffffdf
+mov eax, dword [ebp - 0x184]
+mov dword [ebx + ecx*4], 0xffffffdf
+mov dword [eax + ecx*4], 0xffffffdf
+jmp short loc_fffb0855 ; jmp 0xfffb0855
+
+loc_fffb07f5: ; not directly referenced
+test ebx, ebx
+je short loc_fffb0855 ; je 0xfffb0855
+mov ebx, dword [ebp - 0x184]
+mov eax, dword [ebp - 0x180]
+cmp dword [ebx + ecx*4], eax
+je short loc_fffb080d ; je 0xfffb080d
+mov dword [edx + ecx*4], edi
+
+loc_fffb080d: ; not directly referenced
+mov ebx, dword [ebp - 0x184]
+mov eax, dword [edx + ecx*4]
+mov dword [ebp - 0x160], eax
+mov dword [ebx + ecx*4], edi
+mov ebx, edi
+sub ebx, eax
+mov dword [ebp - 0x168], ebx
+mov ebx, dword [ebp - 0x14c]
+mov eax, dword [ebx + ecx*4]
+mov ebx, dword [ebp - 0x15c]
+sub eax, dword [ebx + ecx*4]
+cmp dword [ebp - 0x168], eax
+jle short loc_fffb0855 ; jle 0xfffb0855
+mov eax, dword [ebp - 0x160]
+mov dword [ebx + ecx*4], eax
+mov ebx, dword [ebp - 0x14c]
+mov dword [ebx + ecx*4], edi
+
+loc_fffb0855: ; not directly referenced
+inc ecx
+
+loc_fffb0856: ; not directly referenced
+cmp byte [ebp - 0x164], cl
+ja loc_fffb077b ; ja 0xfffb077b
+jmp near loc_fffb0718 ; jmp 0xfffb0718
+
+loc_fffb0867: ; not directly referenced
+inc edi
+cmp edi, 0x20
+jne loc_fffb0621 ; jne 0xfffb0621
+push 2
+xor ecx, ecx
+mov edx, dword [ebp - 0x17c]
+push 0
+mov eax, esi
+xor di, di
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+imul ebx, dword [ebp - 0x150], 9
+mov dword [ebp - 0x15c], eax
+mov dword [ebp - 0x160], ebx
+add esp, 0x20
+imul ebx, dword [ebp - 0x150], 0x12
+mov dword [ebp - 0x164], ebx
+
+loc_fffb08b6: ; not directly referenced
+mov ebx, dword [ebp - 0x16c]
+bt ebx, edi
+jae loc_fffb0aa5 ; jae 0xfffb0aa5
+imul eax, edi, 0x1347
+mov ebx, dword [ebp - 0x178]
+mov byte [ebp - 0x154], 0
+lea eax, [ebx + eax + 8]
+mov dword [ebp - 0x14c], eax
+add eax, dword [ebp - 0x160]
+mov dword [ebp - 0x170], eax
+jmp near loc_fffb0a5a ; jmp 0xfffb0a5a
+
+loc_fffb08f3: ; not directly referenced
+movzx eax, byte [ebp - 0x154]
+lea edx, [edi + edi*8]
+add edx, eax
+mov ecx, dword [ebp + edx*4 - 0x60]
+mov edx, dword [ebp + edx*4 - 0xa8]
+mov dword [ebp - 0x180], ecx
+sub ecx, edx
+cmp ecx, 7
+jle short loc_fffb0923 ; jle 0xfffb0923
+sar ecx, 1
+add ecx, edx
+mov dword [ebp - 0x174], ecx
+jmp short loc_fffb092d ; jmp 0xfffb092d
+
+loc_fffb0923: ; not directly referenced
+mov dword [ebp - 0x15c], 9
+
+loc_fffb092d: ; not directly referenced
+imul ebx, edx, 0xfffffffffffffff6
+imul ecx, edx, 0xa
+test edx, edx
+cmovs ecx, ebx
+imul edx, dword [ebp - 0x180], 0xa
+imul ebx, dword [ebp - 0x180], 0xfffffffffffffff6
+cmp dword [ebp - 0x180], 0
+cmovs edx, ebx
+cmp byte [ebp - 0x155], 1
+jne short loc_fffb0993 ; jne 0xfffb0993
+lea ebx, [edi + edi*8]
+add ebx, dword [ebp - 0x164]
+lea ebx, [eax + ebx + 0x5e]
+mov dword [esi + ebx*8 + 0x16c8], edx
+mov edx, dword [ebp - 0x170]
+add edx, eax
+mov dword [esi + ebx*8 + 0x16c4], ecx
+mov cl, byte [ebp - 0x174]
+add byte [edx + 0x1106], cl
+add byte [edx + 0x112a], cl
+jmp near loc_fffb0a39 ; jmp 0xfffb0a39
+
+loc_fffb0993: ; not directly referenced
+cmp byte [ebp - 0x155], 2
+jne short loc_fffb09f2 ; jne 0xfffb09f2
+lea ebx, [edi + edi*8]
+add ebx, dword [ebp - 0x164]
+lea ebx, [eax + ebx + 0xee]
+mov dword [esi + ebx*8 + 0x16c4], ecx
+mov dword [esi + ebx*8 + 0x16c8], edx
+mov ebx, dword [ebp - 0x160]
+mov ecx, dword [ebp - 0x174]
+lea edx, [eax + ebx + 0x110]
+mov ebx, dword [ebp - 0x14c]
+add word [ebx + edx*2 + 5], cx
+mov ecx, dword [ebp - 0x150]
+push ebx
+mov edx, edi
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb02b4 ; call 0xfffb02b4
+jmp short loc_fffb0a51 ; jmp 0xfffb0a51
+
+loc_fffb09f2: ; not directly referenced
+cmp byte [ebp - 0x155], 0xb
+jne short loc_fffb0a54 ; jne 0xfffb0a54
+lea ebx, [edi + edi*8]
+add ebx, dword [ebp - 0x164]
+lea ebx, [eax + ebx + 0x136]
+mov dword [esi + ebx*8 + 0x16c4], ecx
+mov dword [esi + ebx*8 + 0x16c8], edx
+mov ebx, dword [ebp - 0x160]
+mov ecx, dword [ebp - 0x174]
+add ecx, ecx
+lea edx, [eax + ebx + 0x130]
+mov ebx, dword [ebp - 0x14c]
+add word [ebx + edx*2 + 0xd], cx
+
+loc_fffb0a39: ; not directly referenced
+push ecx
+mov edx, edi
+mov ecx, dword [ebp - 0x150]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffb0168 ; call 0xfffb0168
+
+loc_fffb0a51: ; not directly referenced
+add esp, 0x10
+
+loc_fffb0a54: ; not directly referenced
+inc byte [ebp - 0x154]
+
+loc_fffb0a5a: ; not directly referenced
+mov bl, byte [ebp - 0x154]
+cmp bl, byte [esi + 0x1755]
+jb loc_fffb08f3 ; jb 0xfffb08f3
+cmp byte [ebp - 0x155], 0xb
+jne short loc_fffb0aa5 ; jne 0xfffb0aa5
+mov edx, edi
+mov eax, dword [esi + 0x103f]
+shl edx, 0xa
+mov ebx, dword [ebp - 0x14c]
+lea ecx, [edx + eax + 0x4028]
+movzx edx, byte [ebx + 0x10d5]
+mov eax, dword [ecx]
+and edx, 0x3f
+and eax, 0xffc0ffff
+shl edx, 0x10
+or eax, edx
+mov dword [ecx], eax
+
+loc_fffb0aa5: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffb08b6 ; jne 0xfffb08b6
+
+loc_fffb0aaf: ; not directly referenced
+inc dword [ebp - 0x150]
+cmp dword [ebp - 0x150], 4
+je short loc_fffb0af1 ; je 0xfffb0af1
+
+loc_fffb0abe: ; not directly referenced
+imul ebx, dword [ebp - 0x150], 9
+mov cl, byte [ebp - 0x150]
+mov eax, 1
+xor edi, edi
+shl eax, cl
+mov byte [ebp - 0x154], 0
+and eax, 0xff
+mov dword [ebp - 0x160], ebx
+mov dword [ebp - 0x164], eax
+jmp near loc_fffb04df ; jmp 0xfffb04df
+
+loc_fffb0af1: ; not directly referenced
+cmp byte [ebp - 0x155], 0xb
+jne short loc_fffb0b0d ; jne 0xfffb0b0d
+mov eax, esi
+call fcn_fffb8e01 ; call 0xfffb8e01
+jmp short loc_fffb0b0d ; jmp 0xfffb0b0d
+
+loc_fffb0b03: ; not directly referenced
+mov dword [ebp - 0x15c], 2
+
+loc_fffb0b0d: ; not directly referenced
+mov eax, dword [ebp - 0x15c]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0b1b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+cmp cl, 0x20
+sete bl
+cmp cl, 0x10
+mov dword [ebp - 0x14], eax
+sete al
+or bl, al
+mov esi, dword [ebp + 8]
+jne short loc_fffb0b4f ; jne 0xfffb0b4f
+cmp cl, 0x21
+sete bl
+cmp cl, 0x11
+sete al
+or bl, al
+je loc_fffb0be2 ; je 0xfffb0be2
+
+loc_fffb0b4f: ; not directly referenced
+xor eax, eax
+cmp cl, 0x21
+ja short loc_fffb0b60 ; ja 0xfffb0b60
+movzx ecx, cl
+movzx eax, byte [ecx + ref_fffcc308] ; movzx eax, byte [ecx - 0x33cf8]
+
+loc_fffb0b60: ; not directly referenced
+imul eax, eax, 0x240
+and esi, 0xff
+imul esi, esi, 0x12
+lea ebx, [edx + eax]
+xor edi, edi
+mov dword [ebp - 0x1c], esi
+
+loc_fffb0b77: ; not directly referenced
+imul eax, edi, 0x1347
+mov edx, dword [ebp - 0x14]
+cmp dword [edx + eax + 0x297c], 2
+je short loc_fffb0bc5 ; je 0xfffb0bc5
+
+loc_fffb0b8a: ; not directly referenced
+inc edi
+cmp edi, 2
+je short loc_fffb0be2 ; je 0xfffb0be2
+jmp short loc_fffb0b77 ; jmp 0xfffb0b77
+
+loc_fffb0b92: ; not directly referenced
+movzx ecx, byte [ebp - 0xd]
+add ecx, dword [ebp - 0x18]
+xor edx, edx
+inc byte [ebp - 0xd]
+imul eax, dword [ebx + ecx*8], 0xf
+lea esi, [ebx + ecx*8]
+mov dword [ebp - 0x28], esi
+mov esi, 0xa
+mov dword [ebp - 0x20], eax
+div esi
+xor edx, edx
+mov dword [ebx + ecx*8], eax
+mov ecx, dword [ebp - 0x28]
+imul eax, dword [ecx + 4], 0xf
+div esi
+mov dword [ecx + 4], eax
+jmp short loc_fffb0bd2 ; jmp 0xfffb0bd2
+
+loc_fffb0bc5: ; not directly referenced
+lea eax, [edi + edi*8]
+add eax, dword [ebp - 0x1c]
+mov byte [ebp - 0xd], 0
+mov dword [ebp - 0x18], eax
+
+loc_fffb0bd2: ; not directly referenced
+mov eax, dword [ebp - 0x14]
+mov cl, byte [ebp - 0xd]
+cmp cl, byte [eax + 0x1755]
+jb short loc_fffb0b92 ; jb 0xfffb0b92
+jmp short loc_fffb0b8a ; jmp 0xfffb0b8a
+
+loc_fffb0be2: ; not directly referenced
+lea esp, [esp + 0x1c]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0bed: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x30]
+cmp cl, 0xb
+mov bl, byte [ebp + 0xc]
+mov dword [ebp - 0x20], eax
+movzx eax, byte [ebp + 8]
+mov byte [ebp - 0x13], bl
+je short loc_fffb0c3a ; je 0xfffb0c3a
+ja short loc_fffb0c1e ; ja 0xfffb0c1e
+cmp cl, 2
+jbe short loc_fffb0c3a ; jbe 0xfffb0c3a
+lea ebx, [ecx - 4]
+cmp bl, 1
+ja loc_fffb0d58 ; ja 0xfffb0d58
+jmp short loc_fffb0c3a ; jmp 0xfffb0c3a
+
+loc_fffb0c1e: ; not directly referenced
+cmp cl, 0x10
+jb loc_fffb0d58 ; jb 0xfffb0d58
+cmp cl, 0x11
+jbe short loc_fffb0c40 ; jbe 0xfffb0c40
+lea ebx, [ecx - 0x20]
+cmp bl, 1
+ja loc_fffb0d58 ; ja 0xfffb0d58
+jmp short loc_fffb0c40 ; jmp 0xfffb0c40
+
+loc_fffb0c3a: ; not directly referenced
+mov byte [ebp - 0x12], 0xa
+jmp short loc_fffb0c44 ; jmp 0xfffb0c44
+
+loc_fffb0c40: ; not directly referenced
+mov byte [ebp - 0x12], 7
+
+loc_fffb0c44: ; not directly referenced
+xor ebx, ebx
+cmp cl, 0x21
+ja short loc_fffb0c54 ; ja 0xfffb0c54
+movzx ecx, cl
+mov bl, byte [ecx + ref_fffcc308] ; mov bl, byte [ecx - 0x33cf8]
+
+loc_fffb0c54: ; not directly referenced
+movzx edi, bl
+mov dword [ebp - 0x10], 0
+imul edi, edi, 0x240
+imul eax, eax, 0x12
+add edi, edx
+mov edx, dword [ebp - 0x20]
+mov dword [ebp - 0x38], eax
+mov dword [ebp - 0x18], edx
+
+loc_fffb0c72: ; not directly referenced
+mov ebx, dword [ebp - 0x18]
+cmp dword [ebx + 0x297c], 2
+je short loc_fffb0c95 ; je 0xfffb0c95
+
+loc_fffb0c7e: ; not directly referenced
+inc dword [ebp - 0x10]
+add dword [ebp - 0x18], 0x1347
+cmp dword [ebp - 0x10], 2
+jne short loc_fffb0c72 ; jne 0xfffb0c72
+xor eax, eax
+jmp near loc_fffb0d5d ; jmp 0xfffb0d5d
+
+loc_fffb0c95: ; not directly referenced
+imul ebx, dword [ebp - 0x10], 9
+mov eax, dword [ebp - 0x38]
+add eax, ebx
+mov dword [ebp - 0x1c], ebx
+mov dword [ebp - 0x34], ebx
+mov byte [ebp - 0x11], 0
+movzx ebx, byte [ebp - 0x12]
+mov dword [ebp - 0x24], eax
+mov dword [ebp - 0x28], ebx
+jmp short loc_fffb0d26 ; jmp 0xfffb0d26
+
+loc_fffb0cb4: ; not directly referenced
+mov eax, dword [ebp - 0x18]
+mov edx, 1
+shl edx, cl
+and dl, byte [eax + 0x3acb]
+test byte [ebp - 0x13], dl
+je short loc_fffb0cfc ; je 0xfffb0cfc
+imul eax, ecx, 0x12
+imul edx, ecx, 0x90
+add eax, dword [ebp - 0x34]
+add eax, esi
+lea eax, [edi + eax*8]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebp - 0x30]
+mov edx, dword [eax + edx]
+mov eax, dword [ebp - 0x3c]
+cmp dword [edi + eax*8], edx
+jbe short loc_fffb0cee ; jbe 0xfffb0cee
+mov dword [edi + eax*8], edx
+
+loc_fffb0cee: ; not directly referenced
+mov edx, dword [ebp - 0x2c]
+mov eax, dword [edx + 4]
+cmp dword [ebx + 4], eax
+jbe short loc_fffb0cfc ; jbe 0xfffb0cfc
+mov dword [ebx + 4], eax
+
+loc_fffb0cfc: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb0cb4 ; jne 0xfffb0cb4
+add esi, dword [ebp - 0x24]
+mov eax, dword [ebp - 0x28]
+mov cl, 0xa
+xor edx, edx
+inc byte [ebp - 0x11]
+imul eax, dword [edi + esi*8]
+div ecx
+xor edx, edx
+mov dword [edi + esi*8], eax
+mov eax, dword [ebp - 0x28]
+imul eax, dword [ebx + 4]
+div ecx
+mov dword [ebx + 4], eax
+
+loc_fffb0d26: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov bl, byte [ebp - 0x11]
+cmp bl, byte [eax + 0x1755]
+jae loc_fffb0c7e ; jae 0xfffb0c7e
+movzx esi, bl
+mov eax, dword [ebp - 0x24]
+mov edx, dword [ebp - 0x1c]
+add eax, esi
+add edx, esi
+xor ecx, ecx
+mov dword [ebp - 0x3c], eax
+lea ebx, [edi + eax*8]
+lea edx, [edi + edx*8]
+mov dword [ebp - 0x30], edx
+jmp near loc_fffb0cb4 ; jmp 0xfffb0cb4
+
+loc_fffb0d58: ; not directly referenced
+mov eax, 2
+
+loc_fffb0d5d: ; not directly referenced
+lea esp, [esp + 0x30]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0d66: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0xc58]
+mov esi, ref_fffcba4c ; mov esi, 0xfffcba4c
+push ebx
+lea esp, [esp - 0xcfc]
+mov byte [ebp - 0xc88], cl
+mov cl, byte [ebp + 0x1c]
+mov bl, byte [ebp + 8]
+mov byte [ebp - 0xcaa], cl
+mov ecx, 7
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov dword [ebp - 0xc7c], eax
+mov al, byte [ebp + 0x14]
+mov byte [ebp - 0xca9], bl
+mov byte [ebp - 0xcd4], al
+mov esi, ref_fffcba68 ; mov esi, 0xfffcba68
+lea edi, [ebp - 0xc3c]
+mov cl, 7
+mov al, byte [ebp - 0xca9]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+dec eax
+mov bl, byte [ebp + 0xc]
+mov dword [ebp - 0xcdc], edx
+cmp al, 1
+mov dl, byte [ebp + 0x18]
+mov byte [ebp - 0xcd3], bl
+mov esi, ref_fffcba84 ; mov esi, 0xfffcba84
+lea edi, [ebp - 0xc20]
+mov cl, 7
+mov bl, byte [ebp + 0x10]
+mov byte [ebp - 0xca8], dl
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+ja loc_fffb1cc4 ; ja 0xfffb1cc4
+mov edx, 0x10
+lea eax, [ebp - 0xc68]
+call fcn_fffa119f ; call 0xfffa119f
+xor eax, eax
+
+loc_fffb0e06: ; not directly referenced
+mov byte [ebp + eax - 0xc71], al
+inc eax
+cmp eax, 9
+jne short loc_fffb0e06 ; jne 0xfffb0e06
+movzx eax, byte [ebp - 0xca9]
+sub esp, 0xc
+mov cl, byte [ebp - 0xca8]
+dec ecx
+push 0
+movzx esi, byte [eax + ref_fffcc308] ; movzx esi, byte [eax - 0x33cf8]
+movzx eax, byte [ebp - 0xc88]
+mov edx, eax
+mov dword [ebp - 0xce8], eax
+movzx ecx, cl
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc5844 ; call 0xfffc5844
+mov eax, dword [ebp - 0xc7c]
+add esp, 0x10
+mov dl, 0
+cmp byte [ebp - 0xca9], 1
+cmove edx, ebx
+mov byte [ebp - 0xcac], dl
+inc edx
+cmp byte [ebp - 0xcaa], 0
+mov byte [eax + 0x1768], 9
+mov byte [ebp - 0xcd2], dl
+jne short loc_fffb0e90 ; jne 0xfffb0e90
+xor ecx, ecx
+mov edx, 0x1c
+lea eax, [ebp - 0xc04]
+call fcn_fffa119f ; call 0xfffa119f
+jmp short loc_fffb0ea6 ; jmp 0xfffb0ea6
+
+loc_fffb0e90: ; not directly referenced
+mov ecx, 0x1c
+lea edx, [ebp - 0xc20]
+lea eax, [ebp - 0xc04]
+call fcn_fffa115e ; call 0xfffa115e
+
+loc_fffb0ea6: ; not directly referenced
+mov dword [ebp - 0xcd0], 0
+mov dword [ebp - 0xccc], 0
+xor eax, eax
+mov cl, 6
+
+loc_fffb0ebe: ; not directly referenced
+movzx edx, al
+mov ebx, dword [ebp + edx*4 - 0xc58]
+add dword [ebp - 0xccc], ebx
+mov ebx, dword [ebp + edx*4 - 0xc3c]
+add dword [ebp - 0xcd0], ebx
+cmp byte [ebp - 0xcaa], 0
+cmove eax, ecx
+inc eax
+cmp al, 7
+jne short loc_fffb0ebe ; jne 0xfffb0ebe
+cmp byte [ebp - 0xca9], 1
+mov dword [ebp - 0xc88], 0
+sete byte [ebp - 0xcd1]
+add byte [ebp - 0xcd1], 8
+cmp byte [ebp - 0xca9], 1
+setne byte [ebp - 0xcab]
+and esi, 0xff
+add byte [ebp - 0xcab], 4
+imul esi, esi, 0x240
+add esi, dword [ebp - 0xcdc]
+movzx ebx, byte [ebp - 0xcab]
+mov dword [ebp - 0xcbc], esi
+movzx esi, byte [ebp - 0xca9]
+mov dword [ebp - 0xcd8], ebx
+mov dword [ebp - 0xcec], esi
+jmp near loc_fffb1c67 ; jmp 0xfffb1c67
+
+loc_fffb0f55: ; not directly referenced
+mov eax, dword [ebp - 0xce8]
+bt eax, ebx
+jae short loc_fffb0fa2 ; jae 0xfffb0fa2
+mov ecx, edi
+mov edx, ebx
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0xca8], al
+movzx eax, byte [ebp - 0xca8]
+bt eax, ebx
+jae short loc_fffb0fa2 ; jae 0xfffb0fa2
+mov eax, dword [ebp - 0xc7c]
+xor edx, edx
+movzx ecx, byte [eax + 0x1755]
+imul eax, ebx, 0x1347
+lea eax, [esi + eax + 0x101]
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb0fa2: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb0f55 ; jne 0xfffb0f55
+cmp byte [ebp - 0xca8], 0
+je loc_fffb1c58 ; je 0xfffb1c58
+cmp byte [ebp - 0xcd4], 1
+jne short loc_fffb0fec ; jne 0xfffb0fec
+push 0
+movzx edx, byte [ebp - 0xcd1]
+mov ecx, 0x88888888
+push 0
+mov eax, dword [ebp - 0xc7c]
+push 1
+push 0
+push dword [ebp - 0xc88]
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffb0fec: ; not directly referenced
+cmp byte [ebp - 0xcaa], 0
+je short loc_fffb106a ; je 0xfffb106a
+sub esp, 0xc
+lea eax, [ebp - 0xc68]
+push eax
+lea ebx, [ebp - 0xbe8]
+lea eax, [ebp - 0xba0]
+push ebx
+movzx edx, byte [ebp - 0xca8]
+mov ecx, dword [ebp - 0xc88]
+push eax
+lea eax, [ebp - 0xc71]
+push eax
+push dword [ebp - 0xcd8]
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc3116 ; call 0xfffc3116
+add esp, 0x20
+test eax, eax
+je loc_fffb10de ; je 0xfffb10de
+mov eax, dword [ebp - 0xc7c]
+mov edx, 0x18
+movzx ecx, byte [eax + 0x1755]
+mov eax, ebx
+call fcn_fffc83ab ; call 0xfffc83ab
+mov eax, dword [ebp - 0xc7c]
+mov edx, 0x18
+movzx ecx, byte [eax + 0x1755]
+jmp short loc_fffb10d3 ; jmp 0xfffb10d3
+
+loc_fffb106a: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+mov edx, 1
+movzx ecx, byte [eax + 0x1755]
+lea eax, [ebp - 0xba0]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov eax, dword [ebp - 0xc7c]
+mov edx, 1
+movzx ecx, byte [eax + 0x1755]
+lea eax, [ebp - 0xbe8]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov eax, dword [ebp - 0xc7c]
+mov edx, 1
+movzx ecx, byte [eax + 0x1755]
+lea eax, [ebp - 0xb7c]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov eax, dword [ebp - 0xc7c]
+mov edx, 1
+movzx ecx, byte [eax + 0x1755]
+
+loc_fffb10d3: ; not directly referenced
+lea eax, [ebp - 0xbc4]
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb10de: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0xcec]
+mov edx, dword [ebp - 0xcdc]
+push eax
+mov eax, dword [ebp - 0xc7c]
+push edi
+push dword [ebp - 0xc88]
+call fcn_fffb0bed ; call 0xfffb0bed
+imul esi, dword [ebp - 0xc88], 0x12
+add esp, 0x10
+movzx ebx, byte [ebp - 0xca8]
+mov dword [ebp - 0xc90], 0
+mov dword [ebp - 0xc98], ebx
+mov dword [ebp - 0xcb4], esi
+sar ebx, 1
+mov dword [ebp - 0xcc0], ebx
+mov bl, byte [ebp - 0xca8]
+and ebx, 2
+mov byte [ebp - 0xcc8], bl
+jmp near loc_fffb1650 ; jmp 0xfffb1650
+
+loc_fffb1141: ; not directly referenced
+cmp byte [ebp - 0xcac], 0
+je short loc_fffb11a4 ; je 0xfffb11a4
+test byte [ebp - 0xca8], 1
+je short loc_fffb1177 ; je 0xfffb1177
+mov ebx, dword [ebp - 0xc7c]
+mov cl, byte [ebp - 0xc90]
+mov eax, 0x55
+shl eax, cl
+and eax, 0xff
+mov edx, dword [ebx + 0x103f]
+mov byte [edx + 0x409a], al
+
+loc_fffb1177: ; not directly referenced
+cmp byte [ebp - 0xcc8], 0
+je short loc_fffb11a4 ; je 0xfffb11a4
+mov ebx, dword [ebp - 0xc7c]
+mov cl, byte [ebp - 0xc90]
+mov eax, 0x55
+shl eax, cl
+and eax, 0xff
+mov edx, dword [ebx + 0x103f]
+mov byte [edx + 0x449a], al
+
+loc_fffb11a4: ; not directly referenced
+xor ebx, ebx
+jmp near loc_fffb1455 ; jmp 0xfffb1455
+
+loc_fffb11ab: ; not directly referenced
+mov esi, dword [ebp - 0xc98]
+bt esi, edi
+jb short loc_fffb11c9 ; jb 0xfffb11c9
+
+loc_fffb11b6: ; not directly referenced
+inc edi
+add dword [ebp - 0xc80], 0x24
+cmp edi, 2
+je loc_fffb125d ; je 0xfffb125d
+jmp short loc_fffb11ab ; jmp 0xfffb11ab
+
+loc_fffb11c9: ; not directly referenced
+lea ecx, [edi + 1]
+mov esi, dword [ebp - 0xc98]
+mov byte [ebp - 0xc84], 1
+sar esi, cl
+cmp byte [ebp - 0xcab], 4
+mov dword [ebp - 0xc8c], esi
+jne short loc_fffb11fc ; jne 0xfffb11fc
+mov eax, dword [ebp - 0xc7c]
+mov al, byte [eax + 0x1755]
+mov byte [ebp - 0xc84], al
+
+loc_fffb11fc: ; not directly referenced
+xor esi, esi
+jmp short loc_fffb124e ; jmp 0xfffb124e
+
+loc_fffb1200: ; not directly referenced
+mov edx, dword [ebp - 0xc80]
+mov ecx, dword [ebp - 0xc94]
+mov eax, dword [edx + esi*4]
+imul eax, dword [ebp + ecx*4 - 0xc04]
+mov ecx, 0x18
+cdq
+idiv ecx
+push 0
+movzx edx, byte [ebp - 0xc8c]
+push edx
+mov edx, dword [ebp - 0xcd8]
+push 0
+push esi
+push dword [ebp - 0xc88]
+inc esi
+push edi
+push 0
+push 0
+mov ecx, eax
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffb124e: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0xc84], al
+ja short loc_fffb1200 ; ja 0xfffb1200
+jmp near loc_fffb11b6 ; jmp 0xfffb11b6
+
+loc_fffb125d: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0xc98]
+mov edx, dword [ebp - 0xcdc]
+push eax
+lea eax, [ebp - 0xc68]
+push eax
+lea eax, [ebp - 0xc71]
+push 0x1f
+push eax
+push dword [ebp - 0xcec]
+push dword [ebp - 0xc88]
+push dword [ebp - 0xc88]
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc69bc ; call 0xfffc69bc
+movzx ecx, bl
+add esp, 0x20
+imul esi, ecx, 0x12
+mov dword [ebp - 0xc80], 0
+mov dword [ebp - 0xc84], ecx
+mov dword [ebp - 0xce4], esi
+
+loc_fffb12b7: ; not directly referenced
+mov esi, dword [ebp - 0xc98]
+mov ecx, dword [ebp - 0xc80]
+bt esi, ecx
+jb loc_fffb140a ; jb 0xfffb140a
+
+loc_fffb12cc: ; not directly referenced
+inc dword [ebp - 0xc80]
+cmp dword [ebp - 0xc80], 2
+je loc_fffb1443 ; je 0xfffb1443
+jmp short loc_fffb12b7 ; jmp 0xfffb12b7
+
+loc_fffb12e1: ; not directly referenced
+mov edx, dword [ebp - 0xcb4]
+mov esi, dword [ebp - 0xcbc]
+movzx ecx, byte [ebp - 0xc8c]
+add edx, edi
+add edx, ecx
+lea esi, [esi + edx*8]
+mov dword [ebp - 0xc94], esi
+mov eax, dword [esi + 4]
+mov esi, dword [ebp - 0xcbc]
+mov edx, dword [esi + edx*8]
+mov esi, eax
+sub esi, edx
+test bl, bl
+mov dword [ebp - 0xcb0], edx
+mov dword [ebp - 0xcc4], esi
+jne short loc_fffb1353 ; jne 0xfffb1353
+add eax, edx
+lea esi, [edi + ecx]
+xor edx, edx
+mov dword [ebp - 0xd00], esi
+mov esi, 0xa
+mov dword [ebp - 0xcf0], eax
+div esi
+mov esi, dword [ebp - 0xd00]
+mov dword [ebp + esi*4 - 0xb10], 0
+mov dword [ebp + esi*4 - 0xb58], eax
+
+loc_fffb1353: ; not directly referenced
+mov esi, dword [ebp - 0xc84]
+lea eax, [edi + ecx]
+mov edx, dword [ebp + eax*4 - 0xb58]
+imul edx, dword [ebp + esi*4 - 0xc3c]
+mov dword [ebp - 0xcf0], edx
+mov edx, dword [ebp + eax*4 - 0xba0]
+imul edx, dword [ebp + esi*4 - 0xc58]
+add edx, dword [ebp - 0xcf0]
+imul edx, dword [ebp - 0xcc4]
+add dword [ebp + eax*4 - 0xb10], edx
+mov edx, dword [ebp - 0xce0]
+mov esi, dword [ebp - 0xcb0]
+add edx, ecx
+mov dword [ebp + edx*8 - 0x888], esi
+mov esi, dword [ebp - 0xc94]
+mov esi, dword [esi + 4]
+mov dword [ebp + edx*8 - 0x884], esi
+mov esi, dword [ebp - 0xc84]
+cmp dword [ebp + esi*4 - 0xc04], 0
+jns short loc_fffb1402 ; jns 0xfffb1402
+cmp bl, 6
+je short loc_fffb1402 ; je 0xfffb1402
+cmp dword [ebp + esi*4 - 0xc00], 0
+jle short loc_fffb1402 ; jle 0xfffb1402
+mov edx, dword [ebp - 0xcb4]
+mov esi, dword [ebp + eax*8 - 0x888]
+add edx, edi
+add ecx, edx
+mov edx, dword [ebp - 0xcbc]
+mov dword [edx + ecx*8], esi
+mov ecx, dword [ebp - 0xc94]
+mov eax, dword [ebp + eax*8 - 0x884]
+mov dword [ecx + 4], eax
+
+loc_fffb1402: ; not directly referenced
+inc byte [ebp - 0xc8c]
+jmp short loc_fffb1426 ; jmp 0xfffb1426
+
+loc_fffb140a: ; not directly referenced
+imul edi, dword [ebp - 0xc80], 9
+mov esi, dword [ebp - 0xce4]
+add esi, edi
+mov byte [ebp - 0xc8c], 0
+mov dword [ebp - 0xce0], esi
+
+loc_fffb1426: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+mov cl, byte [ebp - 0xc8c]
+cmp cl, byte [eax + 0x1755]
+jb loc_fffb12e1 ; jb 0xfffb12e1
+jmp near loc_fffb12cc ; jmp 0xfffb12cc
+
+loc_fffb1443: ; not directly referenced
+cmp byte [ebp - 0xcaa], 0
+mov al, 7
+cmove ebx, eax
+inc ebx
+cmp bl, 6
+ja short loc_fffb1471 ; ja 0xfffb1471
+
+loc_fffb1455: ; not directly referenced
+lea esi, [ebp - 0xbe8]
+mov dword [ebp - 0xc80], esi
+movzx esi, bl
+xor edi, edi
+mov dword [ebp - 0xc94], esi
+jmp near loc_fffb11ab ; jmp 0xfffb11ab
+
+loc_fffb1471: ; not directly referenced
+imul ebx, dword [ebp - 0xc88], 9
+xor esi, esi
+mov dword [ebp - 0xc94], ebx
+
+loc_fffb1480: ; not directly referenced
+mov ebx, dword [ebp - 0xc98]
+bt ebx, esi
+jae loc_fffb1640 ; jae 0xfffb1640
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0xc7c]
+mov byte [ebp - 0xc80], 0
+lea eax, [edx + eax + 0x297c]
+mov dword [ebp - 0xc84], eax
+add eax, dword [ebp - 0xc94]
+mov dword [ebp - 0xc8c], eax
+jmp near loc_fffb1615 ; jmp 0xfffb1615
+
+loc_fffb14c0: ; not directly referenced
+movzx ebx, byte [ebp - 0xc80]
+lea ecx, [esi + esi*8]
+add ecx, ebx
+mov edi, dword [ebp - 0xcd0]
+mov eax, dword [ebp - 0xccc]
+imul edi, dword [ebp + ecx*4 - 0xb58]
+imul eax, dword [ebp + ecx*4 - 0xba0]
+add edi, eax
+je loc_fffb1ccb ; je 0xfffb1ccb
+mov edx, dword [ebp + ecx*4 - 0xb10]
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, edi
+imul edi, edi, 0x14
+imul eax, eax, 0xa
+add eax, edx
+cdq
+idiv edi
+cmp byte [ebp - 0xca9], 1
+mov edi, eax
+mov dword [ebp + ecx*4 - 0xb10], eax
+jne short loc_fffb157d ; jne 0xfffb157d
+cmp byte [ebp - 0xcb8], 0
+jne short loc_fffb1538 ; jne 0xfffb1538
+mov ecx, dword [ebp - 0xc8c]
+add byte [ebx + ecx + 0x1106], al
+
+loc_fffb1538: ; not directly referenced
+cmp byte [ebp - 0xcb8], 1
+sete dl
+cmp byte [ebp - 0xcac], 0
+sete al
+or dl, al
+je short loc_fffb15b4 ; je 0xfffb15b4
+mov edx, dword [ebp - 0xc8c]
+mov eax, edi
+mov ecx, dword [ebp - 0xc88]
+add byte [ebx + edx + 0x112a], al
+mov edx, esi
+push eax
+mov eax, dword [ebp - 0xc7c]
+push 0
+push 0xff
+push ebx
+call fcn_fffb0168 ; call 0xfffb0168
+jmp short loc_fffb15b1 ; jmp 0xfffb15b1
+
+loc_fffb157d: ; not directly referenced
+mov ecx, dword [ebp - 0xc94]
+mov edx, dword [ebp - 0xc84]
+lea eax, [ebx + ecx + 0x110]
+mov ecx, dword [ebp - 0xc88]
+add word [edx + eax*2 + 5], di
+mov edx, esi
+push eax
+mov eax, dword [ebp - 0xc7c]
+push 0
+push 0xff
+push ebx
+call fcn_fffb02b4 ; call 0xfffb02b4
+
+loc_fffb15b1: ; not directly referenced
+add esp, 0x10
+
+loc_fffb15b4: ; not directly referenced
+imul edi, edi, 0xa
+xor ecx, ecx
+lea edx, [esi + esi*8]
+
+loc_fffb15bc: ; not directly referenced
+movzx eax, cl
+imul eax, eax, 0x12
+add eax, edx
+add eax, ebx
+add dword [ebp + eax*8 - 0x888], edi
+sub dword [ebp + eax*8 - 0x884], edi
+cmp byte [ebp - 0xcaa], 0
+mov al, 7
+cmove ecx, eax
+inc ecx
+cmp cl, 6
+jbe short loc_fffb15bc ; jbe 0xfffb15bc
+lea ecx, [esi + esi*8]
+inc byte [ebp - 0xc80]
+lea eax, [ecx + ebx]
+add ecx, dword [ebp - 0xcb4]
+add ebx, ecx
+mov ecx, dword [ebp - 0xcbc]
+mov edx, dword [ebp + eax*8 - 0x888]
+mov dword [ecx + ebx*8], edx
+mov eax, dword [ebp + eax*8 - 0x884]
+mov dword [ecx + ebx*8 + 4], eax
+
+loc_fffb1615: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+movzx ecx, byte [eax + 0x1755]
+cmp byte [ebp - 0xc80], cl
+jb loc_fffb14c0 ; jb 0xfffb14c0
+mov eax, dword [ebp - 0xc84]
+xor edx, edx
+add eax, 0xf9
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb1640: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffb1480 ; jne 0xfffb1480
+inc dword [ebp - 0xc90]
+
+loc_fffb1650: ; not directly referenced
+mov dl, byte [ebp - 0xc90]
+mov bl, byte [ebp - 0xcd2]
+cmp dl, bl
+mov byte [ebp - 0xcb8], dl
+jb loc_fffb1141 ; jb 0xfffb1141
+cmp byte [ebp - 0xcd3], 0
+je loc_fffb1c58 ; je 0xfffb1c58
+cmp byte [ebp - 0xcaa], 0
+je short loc_fffb16f9 ; je 0xfffb16f9
+sub esp, 0xc
+lea eax, [ebp - 0xc68]
+push eax
+lea ebx, [ebp - 0xbe8]
+lea eax, [ebp - 0xba0]
+push ebx
+mov ecx, dword [ebp - 0xc88]
+mov edx, dword [ebp - 0xc98]
+push eax
+lea eax, [ebp - 0xc71]
+push eax
+push dword [ebp - 0xcd8]
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc3116 ; call 0xfffc3116
+add esp, 0x20
+test eax, eax
+je short loc_fffb16f9 ; je 0xfffb16f9
+mov eax, dword [ebp - 0xc7c]
+mov edx, 0x18
+movzx ecx, byte [eax + 0x1755]
+mov eax, ebx
+call fcn_fffc83ab ; call 0xfffc83ab
+mov eax, dword [ebp - 0xc7c]
+mov edx, 0x18
+movzx ecx, byte [eax + 0x1755]
+lea eax, [ebp - 0xbc4]
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb16f9: ; not directly referenced
+mov bl, byte [ebp - 0xca8]
+and ebx, 1
+mov dword [ebp - 0xca8], ebx
+je short loc_fffb1720 ; je 0xfffb1720
+mov esi, dword [ebp - 0xc7c]
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x4098], 0xffff3001
+
+loc_fffb1720: ; not directly referenced
+mov ebx, dword [ebp - 0xcc0]
+and ebx, 1
+mov dword [ebp - 0xcc0], ebx
+je short loc_fffb1747 ; je 0xfffb1747
+mov esi, dword [ebp - 0xc7c]
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x4498], 0xffff3001
+
+loc_fffb1747: ; not directly referenced
+movzx ebx, byte [ebp - 0xcd1]
+xor edi, edi
+mov dword [ebp - 0xcb8], ebx
+jmp near loc_fffb19e3 ; jmp 0xfffb19e3
+
+loc_fffb175b: ; not directly referenced
+mov esi, dword [ebp - 0xc98]
+bt esi, ebx
+jb short loc_fffb1795 ; jb 0xfffb1795
+
+loc_fffb1766: ; not directly referenced
+imul eax, ebx, 0x240
+lea esi, [ebp - 0x498]
+mov ecx, 0x90
+add eax, esi
+mov edx, 8
+inc ebx
+call fcn_fffc83ab ; call 0xfffc83ab
+add dword [ebp - 0xc90], 0x24
+cmp ebx, 2
+jne short loc_fffb175b ; jne 0xfffb175b
+jmp near loc_fffb1829 ; jmp 0xfffb1829
+
+loc_fffb1795: ; not directly referenced
+lea ecx, [ebx + 1]
+mov esi, dword [ebp - 0xc98]
+mov byte [ebp - 0xc80], 1
+sar esi, cl
+cmp byte [ebp - 0xcab], 4
+mov dword [ebp - 0xc84], esi
+jne short loc_fffb17c8 ; jne 0xfffb17c8
+mov eax, dword [ebp - 0xc7c]
+mov al, byte [eax + 0x1755]
+mov byte [ebp - 0xc80], al
+
+loc_fffb17c8: ; not directly referenced
+xor esi, esi
+jmp short loc_fffb181a ; jmp 0xfffb181a
+
+loc_fffb17cc: ; not directly referenced
+mov edx, dword [ebp - 0xc90]
+mov ecx, dword [ebp - 0xc8c]
+mov eax, dword [edx + esi*4]
+imul eax, dword [ebp + ecx*4 - 0xc04]
+mov ecx, 0x18
+cdq
+idiv ecx
+push 0
+movzx edx, byte [ebp - 0xc84]
+push edx
+mov edx, dword [ebp - 0xcd8]
+push 0
+push esi
+push dword [ebp - 0xc88]
+inc esi
+push ebx
+push 0
+push 0
+mov ecx, eax
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffb181a: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0xc80], al
+ja short loc_fffb17cc ; ja 0xfffb17cc
+jmp near loc_fffb1766 ; jmp 0xfffb1766
+
+loc_fffb1829: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+mov edx, edi
+movzx edx, dl
+mov ecx, dword [ebp - 0xc88]
+mov dword [ebp - 0xc84], edx
+mov byte [eax + 0x1769], 1
+imul eax, edx, 0x90
+mov edx, dword [ebp - 0xc98]
+push ebx
+push dword [ebp - 0xcb8]
+lea ebx, [ebp - 0xba0]
+lea eax, [ebp + eax - 0x888]
+push eax
+mov eax, dword [ebp - 0xc7c]
+push esi
+call fcn_fffc23ac ; call 0xfffc23ac
+lea ecx, [ebp - 0xac8]
+lea eax, [ebp - 0xb58]
+mov dword [ebp - 0xc94], ecx
+mov dword [ebp - 0xc8c], ebx
+mov dword [ebp - 0xc80], eax
+add esp, 0x10
+mov dword [ebp - 0xc90], 0
+
+loc_fffb189f: ; not directly referenced
+mov ebx, dword [ebp - 0xc98]
+mov esi, dword [ebp - 0xc90]
+bt ebx, esi
+jb short loc_fffb18dc ; jb 0xfffb18dc
+
+loc_fffb18b0: ; not directly referenced
+inc dword [ebp - 0xc90]
+add dword [ebp - 0xc94], 0x120
+add dword [ebp - 0xc8c], 0x24
+add dword [ebp - 0xc80], 0x24
+cmp dword [ebp - 0xc90], 2
+jne short loc_fffb189f ; jne 0xfffb189f
+jmp near loc_fffb19d0 ; jmp 0xfffb19d0
+
+loc_fffb18dc: ; not directly referenced
+imul edx, dword [ebp - 0xc90], 9
+mov eax, dword [ebp - 0xc7c]
+mov dword [ebp - 0xcb0], edx
+mov ebx, dword [ebp - 0xcb0]
+mov ecx, dword [ebp - 0xc94]
+xor edx, edx
+mov dword [ebp - 0xce4], ebx
+mov al, byte [eax + 0x1755]
+mov byte [ebp - 0xcb4], al
+jmp near loc_fffb19bf ; jmp 0xfffb19bf
+
+loc_fffb1914: ; not directly referenced
+mov esi, dword [ebp - 0xc80]
+mov ebx, dword [esi + edx*4]
+mov esi, dword [ebp - 0xc84]
+imul ebx, dword [ebp + esi*4 - 0xc3c]
+mov esi, dword [ebp - 0xc8c]
+mov eax, dword [esi + edx*4]
+mov esi, dword [ebp - 0xc84]
+imul eax, dword [ebp + esi*4 - 0xc58]
+mov esi, dword [ebp - 0xce4]
+add eax, ebx
+mov ebx, dword [ebp - 0xcb0]
+add ebx, edx
+add esi, edx
+shl ebx, 6
+mov dword [ebp - 0xcc4], eax
+shl esi, 3
+lea eax, [ebp - 0x498]
+add eax, ebx
+mov dword [ebp - 0xce0], esi
+mov dword [ebp - 0xcf0], eax
+xor eax, eax
+
+loc_fffb1976: ; not directly referenced
+mov esi, dword [ebp - 0xce0]
+add esi, eax
+mov ebx, dword [ebp + esi*8 - 0x494]
+mov esi, dword [ebp - 0xcf0]
+mov esi, dword [esi + eax*8]
+lea ebx, [ebx + esi - 0x10]
+mov dword [ebp - 0xcc8], ebx
+mov ebx, edi
+test bl, bl
+jne short loc_fffb19a5 ; jne 0xfffb19a5
+mov dword [ecx + eax*4], 0
+
+loc_fffb19a5: ; not directly referenced
+mov esi, dword [ebp - 0xcc8]
+imul esi, dword [ebp - 0xcc4]
+add dword [ecx + eax*4], esi
+inc eax
+cmp eax, 8
+jne short loc_fffb1976 ; jne 0xfffb1976
+inc edx
+add ecx, 0x20
+
+loc_fffb19bf: ; not directly referenced
+cmp byte [ebp - 0xcb4], dl
+ja loc_fffb1914 ; ja 0xfffb1914
+jmp near loc_fffb18b0 ; jmp 0xfffb18b0
+
+loc_fffb19d0: ; not directly referenced
+cmp byte [ebp - 0xcaa], 0
+mov al, 7
+cmove edi, eax
+inc edi
+mov eax, edi
+cmp al, 6
+ja short loc_fffb1a01 ; ja 0xfffb1a01
+
+loc_fffb19e3: ; not directly referenced
+mov eax, edi
+lea ebx, [ebp - 0xbe8]
+movzx eax, al
+mov dword [ebp - 0xc90], ebx
+mov dword [ebp - 0xc8c], eax
+xor ebx, ebx
+jmp near loc_fffb175b ; jmp 0xfffb175b
+
+loc_fffb1a01: ; not directly referenced
+imul ebx, dword [ebp - 0xc88], 0xd8
+mov edx, dword [ebp - 0xc7c]
+add edx, 0x2974
+xor edi, edi
+mov dword [ebp - 0xcc4], edx
+mov dword [ebp - 0xcc8], ebx
+
+loc_fffb1a25: ; not directly referenced
+mov esi, dword [ebp - 0xc98]
+bt esi, edi
+jae loc_fffb1bd2 ; jae 0xfffb1bd2
+imul eax, edi, 0x1347
+mov ebx, dword [ebp - 0xcc4]
+mov esi, dword [ebp - 0xc7c]
+mov edx, edi
+shl edx, 0xa
+mov byte [ebp - 0xc90], 0
+lea eax, [ebx + eax + 8]
+mov dword [ebp - 0xc94], eax
+mov eax, dword [esi + 0x103f]
+lea ebx, [edi + edi*8]
+mov dword [ebp - 0xcb4], ebx
+lea eax, [edx + eax + 0x4098]
+mov dword [eax], 0xffff0001
+jmp near loc_fffb1ba7 ; jmp 0xfffb1ba7
+
+loc_fffb1a7d: ; not directly referenced
+movzx esi, byte [ebp - 0xc90]
+mov eax, dword [ebp - 0xcb4]
+add eax, esi
+mov ecx, dword [ebp - 0xcd0]
+mov edx, dword [ebp - 0xccc]
+mov dword [ebp - 0xc8c], esi
+mov dword [ebp - 0xc84], 0
+imul edx, dword [ebp + eax*4 - 0xba0]
+imul ecx, dword [ebp + eax*4 - 0xb58]
+add ecx, edx
+mov edx, 1
+cmovne edx, ecx
+xor ecx, ecx
+shl eax, 5
+mov dword [ebp - 0xc80], edx
+add edx, edx
+mov dword [ebp - 0xcb0], edx
+mov edx, dword [ebp - 0xc94]
+lea ebx, [ebp + eax - 0xac8]
+imul eax, esi, 0x18
+mov esi, dword [ebp - 0xcc8]
+lea eax, [eax + esi + 0x330]
+lea esi, [edx + eax + 0xe]
+
+loc_fffb1af6: ; not directly referenced
+mov edx, dword [ebx]
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, dword [ebp - 0xc80]
+add eax, edx
+cdq
+idiv dword [ebp - 0xcb0]
+cmp byte [ebp - 0xca9], 1
+jne short loc_fffb1b21 ; jne 0xfffb1b21
+movzx edx, byte [esi]
+jmp short loc_fffb1b28 ; jmp 0xfffb1b28
+
+loc_fffb1b21: ; not directly referenced
+movzx edx, byte [esi + 0x360]
+
+loc_fffb1b28: ; not directly referenced
+add eax, edx
+cmp eax, 0xf
+jle short loc_fffb1b37 ; jle 0xfffb1b37
+mov dword [ebx], 0xf
+jmp short loc_fffb1b43 ; jmp 0xfffb1b43
+
+loc_fffb1b37: ; not directly referenced
+test eax, eax
+mov edx, 0
+cmovs eax, edx
+mov dword [ebx], eax
+
+loc_fffb1b43: ; not directly referenced
+cmp byte [ebp - 0xca9], 1
+mov eax, dword [ebx]
+jne short loc_fffb1b52 ; jne 0xfffb1b52
+mov byte [esi], al
+jmp short loc_fffb1b58 ; jmp 0xfffb1b58
+
+loc_fffb1b52: ; not directly referenced
+mov byte [esi + 0x360], al
+
+loc_fffb1b58: ; not directly referenced
+mov eax, dword [ebx]
+add esi, 3
+shl eax, cl
+add ecx, 4
+or dword [ebp - 0xc84], eax
+add ebx, 4
+cmp ecx, 0x20
+jne short loc_fffb1af6 ; jne 0xfffb1af6
+push 0
+mov ecx, dword [ebp - 0xc84]
+mov edx, dword [ebp - 0xcb8]
+push 0
+mov eax, dword [ebp - 0xc7c]
+push 0
+push dword [ebp - 0xc8c]
+push dword [ebp - 0xc88]
+push edi
+push 0
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+inc byte [ebp - 0xc90]
+add esp, 0x20
+
+loc_fffb1ba7: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+movzx ecx, byte [eax + 0x1755]
+cmp byte [ebp - 0xc90], cl
+jb loc_fffb1a7d ; jb 0xfffb1a7d
+mov eax, dword [ebp - 0xc94]
+xor edx, edx
+add eax, 0xf9
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb1bd2: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffb1a25 ; jne 0xfffb1a25
+cmp dword [ebp - 0xca8], 0
+je short loc_fffb1bfb ; je 0xfffb1bfb
+mov edx, dword [ebp - 0xc7c]
+mov eax, dword [edx + 0x103f]
+mov dword [eax + 0x4098], 0xffff3001
+
+loc_fffb1bfb: ; not directly referenced
+cmp dword [ebp - 0xcc0], 0
+je short loc_fffb1c1a ; je 0xfffb1c1a
+mov ecx, dword [ebp - 0xc7c]
+mov eax, dword [ecx + 0x103f]
+mov dword [eax + 0x4498], 0xffff3001
+
+loc_fffb1c1a: ; not directly referenced
+cmp dword [ebp - 0xca8], 0
+je short loc_fffb1c39 ; je 0xfffb1c39
+mov ebx, dword [ebp - 0xc7c]
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4098], 0xffff0001
+
+loc_fffb1c39: ; not directly referenced
+cmp dword [ebp - 0xcc0], 0
+je short loc_fffb1c58 ; je 0xfffb1c58
+mov esi, dword [ebp - 0xc7c]
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x4498], 0xffff0001
+
+loc_fffb1c58: ; not directly referenced
+inc dword [ebp - 0xc88]
+cmp dword [ebp - 0xc88], 4
+je short loc_fffb1c94 ; je 0xfffb1c94
+
+loc_fffb1c67: ; not directly referenced
+mov cl, byte [ebp - 0xc88]
+mov edi, 1
+mov esi, dword [ebp - 0xc7c]
+xor ebx, ebx
+shl edi, cl
+mov byte [ebp - 0xca8], 0
+and edi, 0xff
+add esi, 0x2974
+jmp near loc_fffb0f55 ; jmp 0xfffb0f55
+
+loc_fffb1c94: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+xor ecx, ecx
+movzx edx, byte [ebp - 0xcab]
+mov byte [eax + 0x1741], 0
+push 2
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+jmp short loc_fffb1cd0 ; jmp 0xfffb1cd0
+
+loc_fffb1cc4: ; not directly referenced
+mov eax, 2
+jmp short loc_fffb1cd0 ; jmp 0xfffb1cd0
+
+loc_fffb1ccb: ; not directly referenced
+mov eax, 1
+
+loc_fffb1cd0: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb1cd8: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+cmp dword [eax + 0x1005], 0x306c0
+mov ebx, eax
+mov al, byte [edx + 2]
+jne short loc_fffb1d03 ; jne 0xfffb1d03
+cmp dword [ebx + 0x1001], 1
+jne short loc_fffb1d03 ; jne 0xfffb1d03
+shl ecx, 4
+and eax, 0xf
+or eax, ecx
+mov byte [edx + 2], al
+jmp short loc_fffb1d21 ; jmp 0xfffb1d21
+
+loc_fffb1d03: ; not directly referenced
+mov bl, cl
+and eax, 0x3f
+shl ebx, 6
+shr cl, 2
+or eax, ebx
+mov byte [edx + 2], al
+mov al, byte [edx + 3]
+and ecx, 3
+and eax, 0xfffffffc
+or eax, ecx
+mov byte [edx + 3], al
+
+loc_fffb1d21: ; not directly referenced
+pop ebx
+pop ebp
+ret
+
+fcn_fffb1d24: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x54]
+mov dword [ebp - 0x50], edx
+movzx ebx, byte [ebp + 8]
+mov edx, dword [ebp + 0xc]
+mov dword [ebp - 0x54], ecx
+mov word [ebp - 0x5e], dx
+mov byte [ebp - 0x30], 0xaa
+mov byte [ebp - 0x2f], 0xc0
+mov byte [ebp - 0x2e], 0xcc
+mov byte [ebp - 0x2d], 0xf0
+mov dword [ebp - 0x58], 0
+mov word [ebp - 0x60], bx
+jmp near loc_fffb1ea0 ; jmp 0xfffb1ea0
+
+loc_fffb1d5f: ; not directly referenced
+xor ecx, ecx
+
+loc_fffb1d61: ; not directly referenced
+mov esi, 1
+mov edx, dword [ebp - 0x54]
+shl esi, cl
+and edx, esi
+setne byte [ebp - 0x4c]
+and esi, dword [ebp - 0x50]
+mov dword [ebp - 0x5c], edx
+setne bl
+test byte [ebp - 0x4c], bl
+mov dl, 1
+jne short loc_fffb1d98 ; jne 0xfffb1d98
+test esi, esi
+sete bl
+xor edx, edx
+test byte [ebp - 0x4c], bl
+jne short loc_fffb1d98 ; jne 0xfffb1d98
+or esi, dword [ebp - 0x5c]
+cmp esi, 1
+sbb edx, edx
+add edx, 3
+
+loc_fffb1d98: ; not directly referenced
+movzx edx, dl
+mov dl, byte [ebp + edx - 0x30]
+mov byte [ebp + ecx - 0x2c], dl
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffb1d61 ; jne 0xfffb1d61
+mov dword [ebp - 0x5c], 0
+add di, word [ebp - 0x5e]
+
+loc_fffb1db4: ; not directly referenced
+mov cl, byte [ebp - 0x5c]
+mov ebx, 1
+xor edx, edx
+shl ebx, cl
+xor ecx, ecx
+mov byte [ebp - 0x4c], bl
+
+loc_fffb1dc5: ; not directly referenced
+mov bl, byte [ebp - 0x4c]
+test byte [ebp + ecx - 0x2c], bl
+je short loc_fffb1dd7 ; je 0xfffb1dd7
+mov esi, 1
+shl esi, cl
+or edx, esi
+
+loc_fffb1dd7: ; not directly referenced
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffb1dc5 ; jne 0xfffb1dc5
+mov esi, dword [ebp - 0x5c]
+add esi, 0x10000
+cmp dword [eax + 0x297c], 2
+jne short loc_fffb1e38 ; jne 0xfffb1e38
+mov ecx, dword [eax + 0x103f]
+cmp di, 0xfff
+mov dword [ecx + 0x42dc], edx
+mov ecx, dword [eax + 0x103f]
+mov dword [ecx + 0x42e0], edx
+mov ecx, dword [eax + 0x103f]
+mov dword [ecx + 0x42d4], esi
+mov ecx, 0xfff
+mov ebx, dword [eax + 0x103f]
+cmovbe ecx, edi
+and ecx, 0xfff
+or ecx, 0x8000000
+mov dword [ebx + 0x42d0], ecx
+
+loc_fffb1e38: ; not directly referenced
+cmp dword [eax + 0x3cc3], 2
+jne short loc_fffb1e8a ; jne 0xfffb1e8a
+mov ecx, dword [eax + 0x103f]
+cmp di, 0xfff
+mov dword [ecx + 0x46dc], edx
+mov ecx, dword [eax + 0x103f]
+mov dword [ecx + 0x46e0], edx
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x46d4], esi
+mov edx, 0xfff
+mov ecx, dword [eax + 0x103f]
+cmovbe edx, edi
+and edx, 0xfff
+or edx, 0x8000000
+mov dword [ecx + 0x46d0], edx
+
+loc_fffb1e8a: ; not directly referenced
+inc dword [ebp - 0x5c]
+cmp dword [ebp - 0x5c], 8
+jne loc_fffb1db4 ; jne 0xfffb1db4
+rol dword [ebp - 0x54], 1
+inc dword [ebp - 0x58]
+rol dword [ebp - 0x50], 1
+
+loc_fffb1ea0: ; not directly referenced
+mov edi, dword [ebp - 0x58]
+cmp di, word [ebp - 0x60]
+jb loc_fffb1d5f ; jb 0xfffb1d5f
+cmp dword [eax + 0x297c], 2
+jne short loc_fffb1ec6 ; jne 0xfffb1ec6
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x42d4], 0
+
+loc_fffb1ec6: ; not directly referenced
+cmp dword [eax + 0x3cc3], 2
+jne short loc_fffb1edf ; jne 0xfffb1edf
+mov eax, dword [eax + 0x103f]
+mov dword [eax + 0x46d4], 0
+
+loc_fffb1edf: ; not directly referenced
+lea esp, [esp + 0x54]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb1ee8: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x1c]
+mov dword [ebp - 0x24], edx
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x28], ecx
+movzx edx, byte [ebp + 8]
+mov word [ebp - 0x12], ax
+mov dword [ebp - 0x10], 0
+mov dword [ebp - 0x18], edx
+jmp near loc_fffb2010 ; jmp 0xfffb2010
+
+loc_fffb1f14: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+add eax, ecx
+cdq
+idiv dword [ebp - 0x18]
+movzx eax, dl
+mov edx, dword [ebp - 0x28]
+movzx eax, byte [edx + eax]
+mov edx, dword [ebp - 0x24]
+movzx eax, byte [edx + eax]
+test dword [ebp - 0x1c], eax
+je short loc_fffb1f3c ; je 0xfffb1f3c
+mov eax, 1
+shl eax, cl
+or edi, eax
+
+loc_fffb1f3c: ; not directly referenced
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffb1f14 ; jne 0xfffb1f14
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb1f5a ; jne 0xfffb1f5a
+mov eax, dword [ebx + 0x103f]
+lea eax, [esi + eax - 0x400]
+mov dword [eax], edi
+
+loc_fffb1f5a: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb1f6d ; jne 0xfffb1f6d
+mov eax, dword [ebx + 0x103f]
+add eax, esi
+mov dword [eax], edi
+
+loc_fffb1f6d: ; not directly referenced
+add esi, 4
+cmp esi, 0x46e4
+je short loc_fffb1f88 ; je 0xfffb1f88
+
+loc_fffb1f78: ; not directly referenced
+lea ecx, [esi*8 - 0x236e0]
+xor edi, edi
+mov dword [ebp - 0x20], ecx
+xor ecx, ecx
+jmp short loc_fffb1f14 ; jmp 0xfffb1f14
+
+loc_fffb1f88: ; not directly referenced
+mov edx, dword [ebp - 0x10]
+add edx, 0x10000
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb1fcc ; jne 0xfffb1fcc
+mov eax, dword [ebx + 0x103f]
+cmp word [ebp - 0x12], 0xfff
+mov dword [eax + 0x42d4], edx
+mov ecx, dword [ebx + 0x103f]
+mov eax, 0xfff
+cmovbe ax, word [ebp - 0x12]
+and eax, 0xfff
+or eax, 0x8000000
+mov dword [ecx + 0x42d0], eax
+
+loc_fffb1fcc: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb2007 ; jne 0xfffb2007
+mov eax, dword [ebx + 0x103f]
+cmp word [ebp - 0x12], 0xfff
+mov dword [eax + 0x46d4], edx
+mov edx, dword [ebx + 0x103f]
+mov eax, 0xfff
+cmovbe ax, word [ebp - 0x12]
+and eax, 0xfff
+or eax, 0x8000000
+mov dword [edx + 0x46d0], eax
+
+loc_fffb2007: ; not directly referenced
+inc dword [ebp - 0x10]
+cmp dword [ebp - 0x10], 8
+je short loc_fffb2027 ; je 0xfffb2027
+
+loc_fffb2010: ; not directly referenced
+mov cl, byte [ebp - 0x10]
+mov eax, 1
+mov esi, 0x46dc
+shl eax, cl
+mov dword [ebp - 0x1c], eax
+jmp near loc_fffb1f78 ; jmp 0xfffb1f78
+
+loc_fffb2027: ; not directly referenced
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb2040 ; jne 0xfffb2040
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x42d4], 0
+
+loc_fffb2040: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb2059 ; jne 0xfffb2059
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x46d4], 0
+
+loc_fffb2059: ; not directly referenced
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb2062: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x10]
+mov dword [ebp - 0x1c], edx
+lea edx, [eax + 0x297c]
+mov dword [ebp - 0x10], edx
+
+loc_fffb207a: ; not directly referenced
+mov ecx, dword [ebp - 0x10]
+cmp dword [ecx], 2
+je short loc_fffb2099 ; je 0xfffb2099
+
+loc_fffb2082: ; not directly referenced
+add ebx, 0x400
+add dword [ebp - 0x10], 0x1347
+cmp ebx, 0x800
+jne short loc_fffb207a ; jne 0xfffb207a
+jmp short loc_fffb20db ; jmp 0xfffb20db
+
+loc_fffb2099: ; not directly referenced
+lea esi, [ebx + 0x4060]
+mov dword [ebp - 0x14], esi
+mov esi, dword [ebp - 0x1c]
+lea ecx, [ebx + 0x4054]
+sub esi, ebx
+
+loc_fffb20ad: ; not directly referenced
+mov edi, dword [eax + 0x103f]
+mov edx, dword [esi + ecx - 0x4054]
+add edi, ecx
+mov dword [edi], edx
+mov edi, dword [eax + 0x103f]
+mov edx, dword [esi + ecx - 0x4054]
+lea edi, [ecx + edi - 0xc]
+add ecx, 4
+cmp ecx, dword [ebp - 0x14]
+mov dword [edi], edx
+jne short loc_fffb20ad ; jne 0xfffb20ad
+jmp short loc_fffb2082 ; jmp 0xfffb2082
+
+loc_fffb20db: ; not directly referenced
+lea esp, [esp + 0x10]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb20e4: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 0x10]
+mov eax, dword [eax + 0x103f]
+movq qword [ebp - 8], mm0
+movq mm0, qword [edx + eax]
+movq qword [ebp - 0x10], mm0
+movq mm0, qword [ebp - 8]
+emms
+mov eax, dword [ebp - 0x10]
+mov edx, dword [ebp - 0xc]
+leave
+ret
+
+fcn_fffb210b: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+lea esp, [esp - 0x10]
+mov ebx, dword [ebp + 8]
+mov esi, dword [ebp + 0xc]
+mov ecx, dword [eax + 0x103f]
+mov dword [ebp - 0x18], ebx
+mov dword [ebp - 0x14], esi
+movq qword [ebp - 0x10], mm0
+movq mm0, qword [ebp - 0x18]
+movq qword [edx + ecx], mm0
+movq mm0, qword [ebp - 0x10]
+emms
+lea esp, [esp + 0x10]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffb2140: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push ebx
+mov ebx, 0xa9e
+jmp short loc_fffb215a ; jmp 0xfffb215a
+
+loc_fffb214d: ; not directly referenced
+imul eax, eax, 0x3e8
+xor edx, edx
+div ebx
+add ecx, 0x64
+
+loc_fffb215a: ; not directly referenced
+cmp eax, 0x10f
+ja short loc_fffb214d ; ja 0xfffb214d
+imul edx, eax, 0xfffffffffffffff0
+mov ebx, 0x2710
+add edx, 0x2d3a
+imul edx, eax
+lea eax, [edx - 0xeefac]
+xor edx, edx
+div ebx
+pop ebx
+pop ebp
+add eax, ecx
+ret
+
+fcn_fffb2181: ; not directly referenced
+push ebp
+mov ecx, 0x11
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x19]
+mov esi, ref_fffcbaa0 ; mov esi, 0xfffcbaa0
+lea esp, [esp - 0x20]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea ecx, [eax + eax]
+jmp short loc_fffb21ab ; jmp 0xfffb21ab
+
+loc_fffb21a0: ; not directly referenced
+mov ecx, eax
+add edx, 0xa
+shr ecx, 2
+shr eax, 3
+
+loc_fffb21ab: ; not directly referenced
+cmp eax, 8
+ja short loc_fffb21a0 ; ja 0xfffb21a0
+movzx eax, byte [ebp + ecx - 0x19]
+lea esp, [esp + 0x20]
+pop esi
+add eax, edx
+pop edi
+pop ebp
+ret
+
+fcn_fffb21bf: ; not directly referenced
+cmp eax, 0xffffffffffffffff
+je short loc_fffb21e7 ; je 0xfffb21e7
+push ebp
+xor ecx, ecx
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, 1
+
+loc_fffb21d3: ; not directly referenced
+mov edi, ebx
+lea esi, [ecx + 1]
+shl edi, cl
+test edi, eax
+cmovne edx, esi
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffb21d3 ; jne 0xfffb21d3
+jmp short loc_fffb21ec ; jmp 0xfffb21ec
+
+loc_fffb21e7: ; not directly referenced
+xor edx, edx
+mov al, dl
+ret
+
+loc_fffb21ec: ; not directly referenced
+pop ebx
+mov al, dl
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb21f3: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x6c]
+mov al, byte [ebp + 0xc]
+mov byte [ebp - 0x4a], dl
+mov byte [ebp - 0x49], cl
+mov byte [ebp - 0x5c], al
+mov ecx, 1
+mov edx, 8
+lea eax, [ebp - 0x38]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x30]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 9
+mov edx, 8
+lea eax, [ebp - 0x28]
+call fcn_fffa119f ; call 0xfffa119f
+xor edx, edx
+mov ecx, 2
+lea eax, [ebp - 0x20]
+call fcn_fffc83ab ; call 0xfffc83ab
+cmp byte [ebp - 0x49], 1
+jne short loc_fffb2278 ; jne 0xfffb2278
+mov byte [ebp - 0x35], 0xa
+mov byte [ebp - 0x36], 0x13
+mov byte [ebp - 0x37], 0x19
+mov byte [ebp - 0x38], 0x19
+mov byte [ebp - 0x2d], 0xa
+mov byte [ebp - 0x2e], 0xa
+mov byte [ebp - 0x25], 0x3f
+mov byte [ebp - 0x26], 0x3f
+jmp near loc_fffb2301 ; jmp 0xfffb2301
+
+loc_fffb2278: ; not directly referenced
+cmp byte [ebp - 0x49], 2
+je short loc_fffb22fb ; je 0xfffb22fb
+cmp byte [ebp - 0x49], 5
+jne short loc_fffb2286 ; jne 0xfffb2286
+jmp short loc_fffb22f5 ; jmp 0xfffb22f5
+
+loc_fffb2286: ; not directly referenced
+cmp byte [ebp - 0x49], 6
+je short loc_fffb2301 ; je 0xfffb2301
+cmp byte [ebp - 0x49], 9
+jne short loc_fffb22b8 ; jne 0xfffb22b8
+movzx eax, byte [ebp - 0x4a]
+test byte [ebp - 0x4a], 1
+je short loc_fffb22a5 ; je 0xfffb22a5
+mov edx, dword [ebx + 0x2b25]
+mov dword [ebp - 0x20], edx
+
+loc_fffb22a5: ; not directly referenced
+test al, 2
+mov byte [ebp - 0x4b], 2
+je short loc_fffb2305 ; je 0xfffb2305
+mov eax, dword [ebx + 0x3e6c]
+mov dword [ebp - 0x1c], eax
+jmp short loc_fffb2305 ; jmp 0xfffb2305
+
+loc_fffb22b8: ; not directly referenced
+cmp byte [ebp - 0x49], 0xa
+mov byte [ebp - 0x4b], 1
+jne short loc_fffb2305 ; jne 0xfffb2305
+movzx edx, byte [ebp - 0x4a]
+test byte [ebp - 0x4a], 1
+je short loc_fffb22de ; je 0xfffb22de
+mov eax, dword [ebx + 0x2b25]
+mov dword [ebp - 0x20], eax
+shr eax, 0xf
+and eax, 0xf
+mov byte [ebp - 0x3a], al
+
+loc_fffb22de: ; not directly referenced
+and dl, 2
+je short loc_fffb22f5 ; je 0xfffb22f5
+mov eax, dword [ebx + 0x3e6c]
+mov dword [ebp - 0x1c], eax
+shr eax, 0xf
+and eax, 0xf
+mov byte [ebp - 0x39], al
+
+loc_fffb22f5: ; not directly referenced
+mov byte [ebp - 0x4b], 8
+jmp short loc_fffb2305 ; jmp 0xfffb2305
+
+loc_fffb22fb: ; not directly referenced
+mov byte [ebp - 0x4b], 7
+jmp short loc_fffb2305 ; jmp 0xfffb2305
+
+loc_fffb2301: ; not directly referenced
+mov byte [ebp - 0x4b], 4
+
+loc_fffb2305: ; not directly referenced
+movzx edx, byte [ebp - 0x4a]
+xor edi, edi
+movzx ecx, byte [ebp - 0x4b]
+mov byte [ebp - 0x5a], 0
+mov dword [ebp - 0x60], edx
+mov dword [ebp - 0x68], ecx
+
+loc_fffb2319: ; not directly referenced
+mov dl, byte [ebp + edi - 0x38]
+mov eax, edi
+mov byte [ebp - 0x50], al
+mov byte [ebp - 0x70], dl
+movzx eax, dl
+dec eax
+call fcn_fffb21bf ; call 0xfffb21bf
+mov dl, byte [ebp - 0x70]
+cmp dl, 0x1f
+jbe short loc_fffb2368 ; jbe 0xfffb2368
+mov byte [ebp + edi - 0x38], al
+
+loc_fffb233a: ; not directly referenced
+mov al, byte [ebp - 0x50]
+mov dword [ebp - 0x58], 0x4004
+shl eax, 4
+add eax, dword [ebp - 0x50]
+cmp byte [ebp - 0x50], 4
+mov byte [ebp - 0x5b], al
+sbb eax, eax
+mov dword [ebp - 0x54], 0x4910
+and eax, 0x1f
+xor esi, esi
+mov byte [ebp - 0x59], al
+or byte [ebp - 0x59], 0x80
+jmp short loc_fffb2371 ; jmp 0xfffb2371
+
+loc_fffb2368: ; not directly referenced
+add edx, 0x20
+mov byte [ebp + edi - 0x38], dl
+jmp short loc_fffb233a ; jmp 0xfffb233a
+
+loc_fffb2371: ; not directly referenced
+mov edx, dword [ebp - 0x60]
+bt edx, esi
+jae loc_fffb2578 ; jae 0xfffb2578
+mov edx, dword [ebx + 0x103f]
+mov ecx, dword [ebp - 0x58]
+lea eax, [edx + ecx + 0x94]
+mov eax, dword [eax]
+shr eax, 0xc
+and eax, 1
+cmp byte [ebp - 0x49], 1
+mov byte [ebp - 0x5a], al
+jne loc_fffb2456 ; jne 0xfffb2456
+movzx ecx, byte [ebp + edi - 0x28]
+movzx eax, byte [ebp + edi - 0x30]
+and ecx, 0x3f
+shl ecx, 0x10
+and eax, 0x3f
+shl eax, 8
+mov dword [ebp - 0x74], ecx
+mov cl, byte [ebp + edi - 0x38]
+or eax, dword [ebp - 0x74]
+and ecx, 0x1f
+mov dword [ebp - 0x64], ecx
+mov cl, byte [ebp + edi - 0x38]
+shr cl, 5
+or eax, dword [ebp - 0x64]
+and ecx, 1
+shl ecx, 5
+or eax, ecx
+mov ecx, dword [ebp - 0x58]
+lea edx, [edx + ecx + 0x1fc]
+mov dword [edx], eax
+mov eax, dword [ebx + 0x1005]
+cmp eax, 0x306c0
+jne short loc_fffb23fe ; jne 0xfffb23fe
+cmp dword [ebx + 0x1001], 2
+jbe short loc_fffb2419 ; jbe 0xfffb2419
+jmp short loc_fffb2436 ; jmp 0xfffb2436
+
+loc_fffb23fe: ; not directly referenced
+cmp eax, 0x40660
+jne short loc_fffb2410 ; jne 0xfffb2410
+
+loc_fffb2405: ; not directly referenced
+cmp dword [ebx + 0x1001], 0
+je short loc_fffb2419 ; je 0xfffb2419
+jmp short loc_fffb2436 ; jmp 0xfffb2436
+
+loc_fffb2410: ; not directly referenced
+cmp eax, 0x40650
+je short loc_fffb2405 ; je 0xfffb2405
+jmp short loc_fffb2436 ; jmp 0xfffb2436
+
+loc_fffb2419: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp - 0x54]
+mov al, byte [eax + edi]
+mov dl, al
+mov eax, dword [ebx + 0x103f]
+inc edx
+lea eax, [ecx + eax - 0x66]
+mov byte [eax], dl
+jmp near loc_fffb2578 ; jmp 0xfffb2578
+
+loc_fffb2436: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, dword [ebx + 0x103f]
+movzx ecx, byte [eax + edi]
+mov eax, 1
+lea edx, [edx + esi*4 + 0x4980]
+shl eax, cl
+jmp near loc_fffb2519 ; jmp 0xfffb2519
+
+loc_fffb2456: ; not directly referenced
+cmp byte [ebp - 0x49], 2
+jne short loc_fffb2474 ; jne 0xfffb2474
+sub esp, 0xc
+mov ecx, dword [ebp - 0x68]
+push edi
+mov edx, esi
+mov eax, ebx
+call fcn_fffc4283 ; call 0xfffc4283
+add esp, 0x10
+jmp near loc_fffb2578 ; jmp 0xfffb2578
+
+loc_fffb2474: ; not directly referenced
+mov al, byte [ebp - 0x49]
+sub eax, 5
+cmp al, 1
+ja short loc_fffb24f0 ; ja 0xfffb24f0
+mov ecx, dword [ebp - 0x54]
+cmp byte [ebp - 0x49], 5
+lea eax, [edx + ecx - 0x65]
+mov dl, byte [ebp - 0x5b]
+mov byte [eax], dl
+jne short loc_fffb24ab ; jne 0xfffb24ab
+cmp byte [ebp - 0x50], 7
+mov eax, 1
+setne cl
+cmp byte [ebp - 0x50], 0
+setne dl
+test cl, dl
+jne short loc_fffb24b8 ; jne 0xfffb24b8
+
+loc_fffb24a7: ; not directly referenced
+xor eax, eax
+jmp short loc_fffb24b8 ; jmp 0xfffb24b8
+
+loc_fffb24ab: ; not directly referenced
+test edi, 0xfd
+je short loc_fffb24a7 ; je 0xfffb24a7
+mov eax, 1
+
+loc_fffb24b8: ; not directly referenced
+lea ecx, [eax - 0x80]
+mov edx, dword [ebx + 0x103f]
+mov byte [ebp - 0x4c], cl
+mov ecx, dword [ebp - 0x54]
+sub eax, 0xffffffffffffff80
+shl eax, 0xc
+lea edx, [ecx + edx + 7]
+mov cl, byte [ebp - 0x4c]
+mov byte [edx], cl
+mov ecx, dword [ebp - 0x54]
+add ecx, dword [ebx + 0x103f]
+mov edx, dword [ecx]
+and edx, 0xfff00fff
+or eax, edx
+mov dword [ecx], eax
+jmp near loc_fffb2578 ; jmp 0xfffb2578
+
+loc_fffb24f0: ; not directly referenced
+cmp byte [ebp - 0x49], 9
+jne short loc_fffb251d ; jne 0xfffb251d
+cmp byte [ebp - 0x50], 1
+mov al, byte [ebp + esi*4 - 0x1f]
+sbb ecx, ecx
+and eax, 0xffffff8f
+add ecx, 5
+and ecx, 7
+shl ecx, 4
+or eax, ecx
+mov byte [ebp + esi*4 - 0x1f], al
+mov eax, dword [ebp + esi*4 - 0x20]
+add edx, dword [ebp - 0x58]
+
+loc_fffb2519: ; not directly referenced
+mov dword [edx], eax
+jmp short loc_fffb2578 ; jmp 0xfffb2578
+
+loc_fffb251d: ; not directly referenced
+cmp byte [ebp - 0x49], 0xa
+jne short loc_fffb2578 ; jne 0xfffb2578
+mov eax, edi
+and eax, 3
+mov cl, al
+mov byte [ebp - 0x4c], al
+add ecx, 4
+mov al, byte [ebp + esi*4 - 0x1f]
+and ecx, 7
+and eax, 0xffffff8f
+shl ecx, 4
+or eax, ecx
+mov byte [ebp + esi*4 - 0x1f], al
+mov al, byte [ebp - 0x4c]
+add al, byte [ebp + esi - 0x3a]
+mov ecx, eax
+mov eax, dword [ebp + esi*4 - 0x20]
+and ecx, 0xf
+and eax, 0xfff87fff
+shl ecx, 0xf
+or eax, ecx
+mov dword [ebp + esi*4 - 0x20], eax
+add edx, dword [ebp - 0x58]
+mov cl, byte [ebp - 0x59]
+mov dword [edx], eax
+mov edx, dword [ebp - 0x54]
+mov eax, dword [ebx + 0x103f]
+lea eax, [edx + eax + 7]
+mov byte [eax], cl
+
+loc_fffb2578: ; not directly referenced
+inc esi
+add dword [ebp - 0x54], 8
+add dword [ebp - 0x58], 0x400
+cmp esi, 2
+jne loc_fffb2371 ; jne 0xfffb2371
+mov eax, ebx
+call fcn_fffb8e01 ; call 0xfffb8e01
+cmp byte [ebp - 0x50], 0
+mov eax, 1
+sete cl
+cmp byte [ebp - 0x5c], 0
+setne dl
+test cl, dl
+mov edx, 5
+cmovne eax, edx
+mov edx, dword [ebx + 0x103f]
+mov dword [edx + 0x4800], eax
+mov esi, dword [ebx + 0x103f]
+lea eax, [esi + 0x4804]
+mov dword [ebp - 0x50], eax
+
+loc_fffb25cc: ; not directly referenced
+mov edx, dword [ebp - 0x50]
+mov eax, dword [edx]
+mov ecx, eax
+mov edx, eax
+shr ecx, 0x10
+shr edx, 0x10
+and ecx, 2
+and edx, 1
+or edx, ecx
+and dl, byte [ebp - 0x4a]
+cmp dl, byte [ebp - 0x4a]
+jne short loc_fffb25cc ; jne 0xfffb25cc
+mov ecx, eax
+mov dl, al
+and ecx, 2
+and edx, 1
+or edx, ecx
+test byte [ebp - 0x4a], dl
+je short loc_fffb2604 ; je 0xfffb2604
+cmp byte [ebp - 0x5a], 0
+je short loc_fffb2604 ; je 0xfffb2604
+jmp short loc_fffb2645 ; jmp 0xfffb2645
+
+loc_fffb2604: ; not directly referenced
+inc edi
+mov ecx, edi
+cmp byte [ebp - 0x4b], cl
+ja loc_fffb2319 ; ja 0xfffb2319
+mov dl, byte [ebp - 0x49]
+sub edx, 9
+cmp dl, 1
+ja short loc_fffb2645 ; ja 0xfffb2645
+test byte [ebp - 0x60], 1
+je short loc_fffb262d ; je 0xfffb262d
+mov edx, dword [ebx + 0x2b25]
+mov dword [esi + 0x4004], edx
+
+loc_fffb262d: ; not directly referenced
+test byte [ebp - 0x60], 2
+je short loc_fffb2645 ; je 0xfffb2645
+mov edx, dword [ebx + 0x103f]
+mov ecx, dword [ebx + 0x3e6c]
+mov dword [edx + 0x4404], ecx
+
+loc_fffb2645: ; not directly referenced
+and al, byte [ebp - 0x4a]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb2650: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+lea esp, [esp - 0xdc]
+mov esi, dword [ebp + 8]
+mov byte [ebp - 0x5e], dl
+mov bl, byte [ebp + 0x14]
+mov dl, byte [ebp + 0xc]
+mov byte [ebp - 0xd8], bl
+movzx eax, si
+mov byte [ebp - 0x49], dl
+mov bl, byte [ebp + 0x1c]
+mov dl, byte [ebp + 0x20]
+dec eax
+mov byte [ebp - 0x4a], cl
+mov byte [ebp - 0xb8], bl
+mov byte [ebp - 0x50], dl
+mov dword [ebp - 0x45], 0
+mov dword [ebp - 0x41], 0
+mov dword [ebp - 0x3d], 0
+mov ebx, dword [ebp + 0x24]
+call fcn_fffb21bf ; call 0xfffb21bf
+mov cl, byte [ebp - 0x49]
+mov byte [ebp - 0x5d], al
+inc ecx
+sub ecx, eax
+test cl, cl
+mov byte [ebp - 0x49], cl
+setle cl
+cmp byte [ebp - 0x4a], 4
+sete al
+or cl, al
+jne short loc_fffb26d4 ; jne 0xfffb26d4
+mov dl, byte [ebp - 0x49]
+cmp byte [ebp - 0x4a], 5
+mov al, 1
+cmove edx, eax
+mov byte [ebp - 0x49], dl
+jmp short loc_fffb26d8 ; jmp 0xfffb26d8
+
+loc_fffb26d4: ; not directly referenced
+mov byte [ebp - 0x49], 1
+
+loc_fffb26d8: ; not directly referenced
+movsx ecx, byte [ebp - 0x49]
+mov dword [ebp - 0x64], 1
+dec ecx
+lea edx, [esi + esi]
+shl dword [ebp - 0x64], cl
+cmp si, 0x7f
+mov cl, byte [ebp - 0x5d]
+lea eax, [esi - 0x80]
+cmovbe ecx, eax
+cmp dx, 0x7f
+mov byte [ebp - 0x88], cl
+lea ecx, [edx - 0x80]
+mov byte [ebp - 0x98], cl
+jbe short loc_fffb271d ; jbe 0xfffb271d
+movzx edx, dx
+lea eax, [edx - 1]
+call fcn_fffb21bf ; call 0xfffb21bf
+mov byte [ebp - 0x98], al
+
+loc_fffb271d: ; not directly referenced
+mov eax, dword [ebp + 0x18]
+mov si, word [eax]
+movzx eax, si
+dec eax
+call fcn_fffb21bf ; call 0xfffb21bf
+cmp si, 0x1f
+jbe short loc_fffb273d ; jbe 0xfffb273d
+mov edx, dword [ebp + 0x18]
+movzx eax, al
+mov word [edx], ax
+jmp short loc_fffb2746 ; jmp 0xfffb2746
+
+loc_fffb273d: ; not directly referenced
+mov ecx, dword [ebp + 0x18]
+add esi, 0x20
+mov word [ecx], si
+
+loc_fffb2746: ; not directly referenced
+cmp byte [ebp - 0x50], 0
+je short loc_fffb2765 ; je 0xfffb2765
+mov eax, dword [edi + 0x103f]
+mov eax, dword [eax + 0x4cb0]
+and ax, 0xfff
+add eax, 0x10
+cmp bx, ax
+cmovb ebx, eax
+
+loc_fffb2765: ; not directly referenced
+cmp bx, 0xff
+mov word [ebp - 0x78], 0xff
+cmova bx, word [ebp - 0x78]
+mov al, byte [ebp - 0x98]
+mov word [ebp - 0x78], bx
+mov bl, byte [ebp - 0x88]
+shr bl, 7
+mov dword [ebp - 0x50], 0x4960
+mov byte [ebp - 0xa8], bl
+mov bl, byte [ebp - 0xb8]
+shr al, 7
+and ebx, 1
+mov byte [ebp - 0xc8], al
+mov esi, 0x4040
+mov dword [ebp - 0x58], 0
+mov dword [ebp - 0xdc], ebx
+
+loc_fffb27b9: ; not directly referenced
+movzx edx, byte [ebp - 0x5e]
+mov ebx, dword [ebp - 0x58]
+bt edx, ebx
+mov dword [ebp - 0x68], edx
+mov eax, dword [edi + 0x103f]
+jb short loc_fffb27e3 ; jb 0xfffb27e3
+mov ebx, dword [ebp - 0x50]
+lea eax, [eax + ebx*2 - 0x4a18]
+mov dword [eax], 0
+jmp near loc_fffb2c38 ; jmp 0xfffb2c38
+
+loc_fffb27e3: ; not directly referenced
+lea eax, [esi + eax + 0x158]
+mov dl, byte [ebp - 0xdc]
+cmp byte [ebp - 0xb8], 0
+mov byte [eax], dl
+je short loc_fffb2812 ; je 0xfffb2812
+sub esp, 0xc
+mov ecx, 7
+push 8
+mov edx, dword [ebp - 0x58]
+mov eax, edi
+call fcn_fffc4283 ; call 0xfffc4283
+add esp, 0x10
+
+loc_fffb2812: ; not directly referenced
+cmp byte [ebp - 0x4a], 5
+ja short loc_fffb282a ; ja 0xfffb282a
+movzx eax, byte [ebp - 0x4a]
+mov bl, byte [eax + ref_fffcbab4] ; mov bl, byte [eax - 0x3454c]
+mov cl, byte [eax + ref_fffcbabc] ; mov cl, byte [eax - 0x34544]
+jmp short loc_fffb282e ; jmp 0xfffb282e
+
+loc_fffb282a: ; not directly referenced
+xor ecx, ecx
+xor ebx, ebx
+
+loc_fffb282e: ; not directly referenced
+and ebx, 7
+and ecx, 7
+shl ebx, 0x18
+xor edx, edx
+shl ecx, 0x1c
+or ecx, ebx
+mov ebx, ecx
+xor ecx, ecx
+and bh, 0xcf
+or bh, 0x18
+cmp byte [edi + 0x1741], 0
+setne cl
+shl ecx, 7
+or ecx, ebx
+mov ebx, ecx
+or ebx, 0x20
+cmp byte [ebp - 0x4a], 6
+cmove ecx, ebx
+mov eax, ecx
+mov ecx, edx
+and ecx, 0xfffffc00
+mov edx, ecx
+mov ecx, dword [edi + 0x1005]
+or edx, 2
+cmp ecx, 0x306c0
+jne short loc_fffb288b ; jne 0xfffb288b
+cmp dword [edi + 0x1001], 2
+jbe short loc_fffb28a8 ; jbe 0xfffb28a8
+jmp short loc_fffb28c8 ; jmp 0xfffb28c8
+
+loc_fffb288b: ; not directly referenced
+cmp ecx, 0x40660
+jne short loc_fffb289e ; jne 0xfffb289e
+
+loc_fffb2893: ; not directly referenced
+cmp dword [edi + 0x1001], 0
+je short loc_fffb28a8 ; je 0xfffb28a8
+jmp short loc_fffb28c8 ; jmp 0xfffb28c8
+
+loc_fffb289e: ; not directly referenced
+cmp ecx, 0x40650
+je short loc_fffb2893 ; je 0xfffb2893
+jmp short loc_fffb28c8 ; jmp 0xfffb28c8
+
+loc_fffb28a8: ; not directly referenced
+cmp byte [ebp - 0x49], 0x1f
+mov bl, byte [ebp - 0x49]
+mov cl, 0x1f
+cmovle ecx, ebx
+mov ebx, eax
+and ecx, 0x1f
+and ebx, 0xffe0ffff
+shl ecx, 0x10
+mov eax, ebx
+or eax, ecx
+jmp short loc_fffb28da ; jmp 0xfffb28da
+
+loc_fffb28c8: ; not directly referenced
+mov ecx, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x50]
+lea ecx, [ebx + ecx + 0x20]
+mov ebx, dword [ebp - 0x64]
+mov dword [ecx], ebx
+
+loc_fffb28da: ; not directly referenced
+push ecx
+mov ebx, dword [ebp - 0x50]
+push ecx
+push edx
+lea ecx, [ebx + ebx - 0x4a18]
+mov edx, ecx
+push eax
+mov eax, edi
+call fcn_fffb210b ; call 0xfffb210b
+mov eax, dword [edi + 0x103f]
+add esp, 0x10
+lea eax, [ebx + eax - 0xa8]
+mov bl, byte [ebp - 0x88]
+mov byte [eax], 4
+mov al, byte [ebp - 0xa8]
+and eax, 1
+and ebx, 0x7f
+shl eax, 7
+or ebx, eax
+cmp dword [edi + 0x1005], 0x306c0
+mov eax, dword [ebp - 0x78]
+jne short loc_fffb2943 ; jne 0xfffb2943
+cmp dword [edi + 0x1001], 1
+jne short loc_fffb2943 ; jne 0xfffb2943
+and eax, 0x3ff
+or ebx, 0x4000000
+shl eax, 8
+jmp short loc_fffb2951 ; jmp 0xfffb2951
+
+loc_fffb2943: ; not directly referenced
+and eax, 0x3fff
+or ebx, 0x8000000
+shl eax, 8
+
+loc_fffb2951: ; not directly referenced
+or ebx, eax
+mov dl, byte [ebp - 0x98]
+mov eax, ebx
+and edx, 0x7f
+and eax, 0xc3fff00
+mov dword [ebp - 0x54], eax
+mov al, byte [ebp - 0xc8]
+and eax, 1
+or dword [ebp - 0x54], edx
+shl eax, 7
+or dword [ebp - 0x54], eax
+cmp byte [ebp - 0x4a], 4
+lea edx, [ebp - 0x38]
+je short loc_fffb2993 ; je 0xfffb2993
+cmp byte [ebp - 0x4a], 5
+je short loc_fffb29fc ; je 0xfffb29fc
+cmp byte [ebp - 0x4a], 3
+jne loc_fffb2a4a ; jne 0xfffb2a4a
+jmp short loc_fffb29e4 ; jmp 0xfffb29e4
+
+loc_fffb2993: ; not directly referenced
+mov ecx, 1
+mov eax, edi
+mov dword [ebp - 0x38], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov dword [ebp - 0x5c], 1
+
+loc_fffb29a9: ; not directly referenced
+mov edx, dword [ebp - 0x5c]
+mov ecx, dword [ebp - 0x54]
+mov eax, edi
+mov dword [ebp + edx*4 - 0x38], ecx
+lea edx, [ebp + edx*4 - 0x38]
+mov ecx, 2
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+inc dword [ebp - 0x5c]
+cmp dword [ebp - 0x5c], 7
+jne short loc_fffb29a9 ; jne 0xfffb29a9
+xor ecx, ecx
+lea edx, [ebp - 0x1c]
+mov eax, edi
+mov dword [ebp - 0x1c], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov byte [ebp - 0x39], 0xff
+jmp near loc_fffb2a6c ; jmp 0xfffb2a6c
+
+loc_fffb29e4: ; not directly referenced
+mov ebx, dword [ebp - 0x54]
+mov ecx, 3
+mov eax, edi
+mov dword [ebp - 0x38], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov byte [ebp - 0x39], 1
+jmp short loc_fffb2a6c ; jmp 0xfffb2a6c
+
+loc_fffb29fc: ; not directly referenced
+mov ecx, 1
+mov eax, edi
+mov dword [ebp - 0x38], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov eax, dword [ebp - 0x54]
+mov ecx, 2
+mov dword [ebp - 0x34], eax
+lea edx, [ebp - 0x34]
+mov eax, edi
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+xor ecx, ecx
+lea edx, [ebp - 0x30]
+mov eax, edi
+mov dword [ebp - 0x30], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov ebx, dword [ebp - 0x54]
+mov ecx, 3
+lea edx, [ebp - 0x2c]
+mov eax, edi
+mov dword [ebp - 0x2c], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov byte [ebp - 0x39], 0xf
+jmp short loc_fffb2a6c ; jmp 0xfffb2a6c
+
+loc_fffb2a4a: ; not directly referenced
+mov ecx, 1
+mov eax, edi
+mov dword [ebp - 0x38], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+xor ecx, ecx
+lea edx, [ebp - 0x34]
+mov eax, edi
+mov dword [ebp - 0x34], ebx
+call fcn_fffb1cd8 ; call 0xfffb1cd8
+mov byte [ebp - 0x39], 3
+
+loc_fffb2a6c: ; not directly referenced
+imul eax, dword [ebp - 0x58], 0x28
+lea ecx, [ebp - 0x39]
+mov dword [ebp - 0x5c], 0
+sub ecx, eax
+lea edx, [eax + 0x4808]
+
+loc_fffb2a82: ; not directly referenced
+movzx ebx, byte [ebp - 0x39]
+mov eax, dword [ebp - 0x5c]
+bt ebx, eax
+jb loc_fffb2b39 ; jb 0xfffb2b39
+
+loc_fffb2a92: ; not directly referenced
+push edx
+lea eax, [ebp - 0x3d]
+mov ecx, dword [ebp + 0x10]
+push eax
+lea eax, [ebp - 0x41]
+mov edx, dword [ebp - 0x58]
+push eax
+lea eax, [ebp - 0x45]
+push eax
+mov eax, dword [ebp + 0x10]
+add eax, 0x24
+push eax
+mov eax, dword [ebp + 0x10]
+add eax, 0x14
+push eax
+mov eax, dword [ebp + 0x10]
+add eax, 0x10
+push eax
+mov eax, dword [ebp + 0x10]
+add eax, 8
+push eax
+mov eax, edi
+call fcn_fffc3d24 ; call 0xfffc3d24
+mov ebx, dword [ebp + 0x18]
+add esp, 0x20
+movzx eax, byte [ebx + 6]
+movzx edx, byte [ebx + 2]
+and eax, 0x3f
+mov bx, word [ebx]
+and edx, 0x3f
+shl edx, 8
+mov ecx, ebx
+shl eax, 0x10
+and ecx, 0x1f
+shr bx, 5
+or eax, edx
+and ebx, 1
+or eax, ecx
+shl ebx, 5
+mov edx, dword [edi + 0x103f]
+or eax, ebx
+mov ebx, dword [ebp + 0x18]
+lea edx, [esi + edx + 0x1c0]
+mov dword [edx], eax
+mov dl, byte [ebx + 0xa]
+cmp dl, 2
+sete al
+cmp dl, 4
+sete dl
+or eax, edx
+mov dl, byte [ebp - 0x4a]
+cmp al, 1
+sbb eax, eax
+sub edx, 4
+and eax, 2
+movzx eax, al
+or eax, 0x8090
+cmp dl, 1
+ja short loc_fffb2b75 ; ja 0xfffb2b75
+jmp short loc_fffb2b5f ; jmp 0xfffb2b5f
+
+loc_fffb2b39: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+mov ebx, dword [ecx + edx - 0x4807]
+add eax, edx
+inc dword [ebp - 0x5c]
+add edx, 4
+cmp dword [ebp - 0x5c], 8
+mov dword [eax], ebx
+jne loc_fffb2a82 ; jne 0xfffb2a82
+jmp near loc_fffb2a92 ; jmp 0xfffb2a92
+
+loc_fffb2b5f: ; not directly referenced
+mov dl, byte [ebp - 0x5d]
+and eax, 0xf8c0ffff
+inc edx
+and edx, 7
+shl edx, 0x18
+or eax, edx
+or eax, 0x10000
+
+loc_fffb2b75: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+add edx, esi
+mov dword [edx], eax
+mov eax, dword [edi + 0x103f]
+lea eax, [esi + eax + 0x44]
+mov dword [eax], 0
+mov edx, dword [edi + 0x103f]
+mov al, byte [ebp - 0xd8]
+and eax, 3
+shl eax, 0xc
+or eax, 0xffff0001
+lea edx, [esi + edx + 0x58]
+mov dword [edx], eax
+lea edx, [esi + 0x98]
+push eax
+push eax
+mov eax, edi
+push 0
+push 0
+call fcn_fffb210b ; call 0xfffb210b
+mov eax, dword [edi + 0x103f]
+add esp, 0x10
+lea eax, [esi + eax + 0x5c]
+mov byte [eax], 0
+cmp byte [edi + 0x1741], 0
+je short loc_fffb2c38 ; je 0xfffb2c38
+mov eax, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x50]
+lea eax, [ebx + eax - 8]
+mov byte [eax], 0xfc
+movzx ecx, word [edi + 0x1766]
+test cx, cx
+je short loc_fffb2c08 ; je 0xfffb2c08
+mov eax, 0x9c40
+cdq
+idiv ecx
+mov ebx, eax
+mov eax, 0x30d40
+cdq
+idiv ecx
+jmp short loc_fffb2c12 ; jmp 0xfffb2c12
+
+loc_fffb2c08: ; not directly referenced
+mov eax, 0xff
+mov ebx, 0xff
+
+loc_fffb2c12: ; not directly referenced
+shl eax, 0x18
+mov ecx, ebx
+shl ecx, 8
+movzx ebx, bl
+and ecx, 0xff00
+shl ebx, 0x10
+or ebx, ecx
+or ebx, eax
+mov eax, dword [ebp - 0x50]
+add eax, dword [edi + 0x103f]
+or ebx, 2
+mov dword [eax], ebx
+
+loc_fffb2c38: ; not directly referenced
+inc dword [ebp - 0x58]
+add esi, 0x400
+add dword [ebp - 0x50], 4
+cmp dword [ebp - 0x58], 2
+jne loc_fffb27b9 ; jne 0xfffb27b9
+mov edx, dword [ebp - 0x68]
+mov eax, edi
+mov ecx, 2
+call fcn_fffb958c ; call 0xfffb958c
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb2c66: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov esi, ecx
+push ebx
+lea esp, [esp - 0xc]
+mov dl, byte [ebp + 8]
+mov byte [ebp - 0xf], dl
+mov dl, cl
+mov bl, byte [ebp + 0xc]
+inc dl
+mov byte [ebp - 0x10], bl
+mov bl, byte [ebp + 0x10]
+je short loc_fffb2c91 ; je 0xfffb2c91
+lea edx, [esi + 1]
+mov byte [ebp - 0xe], dl
+jmp short loc_fffb2c97 ; jmp 0xfffb2c97
+
+loc_fffb2c91: ; not directly referenced
+mov byte [ebp - 0xe], 4
+xor ecx, ecx
+
+loc_fffb2c97: ; not directly referenced
+and edi, 0xff
+mov byte [ebp - 0xd], cl
+imul edx, edi, 0x1347
+lea esi, [eax + edx + 0x297c]
+add edx, eax
+mov dword [ebp - 0x14], esi
+mov dword [ebp - 0x18], edx
+jmp short loc_fffb2d27 ; jmp 0xfffb2d27
+
+loc_fffb2cb7: ; not directly referenced
+mov esi, dword [ebp - 0x18]
+mov cl, byte [ebp - 0xd]
+movzx edx, byte [ebp - 0xd]
+mov eax, 1
+shl eax, cl
+test byte [esi + 0x3acb], al
+je short loc_fffb2d24 ; je 0xfffb2d24
+movzx ecx, byte [ebp - 0xf]
+lea eax, [edx + edx*8]
+add eax, dword [ebp - 0x14]
+add eax, ecx
+cmp byte [ebp - 0x10], 0
+mov dl, byte [eax + 0x1106]
+mov al, byte [eax + 0x112a]
+jne short loc_fffb2cfa ; jne 0xfffb2cfa
+cmp al, dl
+cmova eax, edx
+cmp bl, al
+cmova ebx, eax
+jmp short loc_fffb2d24 ; jmp 0xfffb2d24
+
+loc_fffb2cfa: ; not directly referenced
+movzx edi, dl
+mov ecx, 0x3f
+movzx esi, bl
+sub ecx, edi
+cmp esi, ecx
+jle short loc_fffb2d0f ; jle 0xfffb2d0f
+mov bl, 0x3f
+sub ebx, edx
+
+loc_fffb2d0f: ; not directly referenced
+movzx esi, al
+mov edx, 0x3f
+movzx ecx, bl
+sub edx, esi
+cmp ecx, edx
+jle short loc_fffb2d24 ; jle 0xfffb2d24
+mov bl, 0x3f
+sub ebx, eax
+
+loc_fffb2d24: ; not directly referenced
+inc byte [ebp - 0xd]
+
+loc_fffb2d27: ; not directly referenced
+mov al, byte [ebp - 0xe]
+cmp byte [ebp - 0xd], al
+jb short loc_fffb2cb7 ; jb 0xfffb2cb7
+lea esp, [esp + 0xc]
+mov al, bl
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb2d3a: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+lea esp, [esp - 0x10]
+mov eax, dword [eax + 0x104b]
+mov ecx, dword [eax + 0xf0]
+lea ebx, [eax + 0xf0]
+add edx, ecx
+mov dword [ebp - 8], edx
+
+loc_fffb2d59: ; not directly referenced
+mov eax, dword [ebx]
+mov edx, dword [ebp - 8]
+cmp edx, ecx
+jbe short loc_fffb2d64 ; jbe 0xfffb2d64
+jmp short loc_fffb2d68 ; jmp 0xfffb2d68
+
+loc_fffb2d64: ; not directly referenced
+cmp eax, ecx
+jae short loc_fffb2d59 ; jae 0xfffb2d59
+
+loc_fffb2d68: ; not directly referenced
+mov edx, dword [ebp - 8]
+cmp eax, edx
+jb short loc_fffb2d59 ; jb 0xfffb2d59
+lea esp, [esp + 0x10]
+pop ebx
+pop ebp
+ret
+
+fcn_fffb2d76: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+lea esp, [esp - 0x10]
+cmp edx, 0x4a
+ja short loc_fffb2d8a ; ja 0xfffb2d8a
+inc edx
+xor ecx, ecx
+shr edx, 1
+jmp short loc_fffb2da1 ; jmp 0xfffb2da1
+
+loc_fffb2d8a: ; not directly referenced
+call fcn_fffb2d3a ; call 0xfffb2d3a
+jmp short loc_fffb2da5 ; jmp 0xfffb2da5
+
+loc_fffb2d91: ; not directly referenced
+mov ebx, dword [eax + 0x103f]
+inc ecx
+mov ebx, dword [ebx + 0x4ce0]
+mov dword [ebp - 8], ebx
+
+loc_fffb2da1: ; not directly referenced
+cmp ecx, edx
+jne short loc_fffb2d91 ; jne 0xfffb2d91
+
+loc_fffb2da5: ; not directly referenced
+lea esp, [esp + 0x10]
+pop ebx
+pop ebp
+ret
+
+loc_fffb2dac:
+dd 0x103f908b
+dd 0x89550000
+dd 0x6082c7e5
+dd 0x00000050
+dd 0xba000002
+dd 0x0000000f
+dd 0xfface95d
+db 0xff
+db 0xff
+
+fcn_fffb2dca: ; not directly referenced
+mov edx, dword [eax + 0x103f]
+push ebp
+mov ebp, esp
+mov dword [edx + 0x5060], 0x10200
+mov edx, 0xf
+pop ebp
+jmp near fcn_fffb2d76 ; jmp 0xfffb2d76
+
+fcn_fffb2de8: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+mov esi, dword [eax + 0x176c]
+xor eax, eax
+
+loc_fffb2df8: ; not directly referenced
+cmp dl, byte [esi + eax]
+lea edi, [esi + eax]
+jne short loc_fffb2e0a ; jne 0xfffb2e0a
+movzx eax, cl
+mov ax, word [edi + eax*2 + 1]
+jmp short loc_fffb2e14 ; jmp 0xfffb2e14
+
+loc_fffb2e0a: ; not directly referenced
+add eax, 7
+cmp eax, 0x3f
+jne short loc_fffb2df8 ; jne 0xfffb2df8
+xor al, al
+
+loc_fffb2e14: ; not directly referenced
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffb2e61 ; jne 0xfffb2e61
+cmp dword [ebx + 0x1749], 1
+jne short loc_fffb2e61 ; jne 0xfffb2e61
+cmp cl, 2
+setne cl
+cmp dl, 5
+sete dl
+test cl, dl
+je short loc_fffb2e61 ; je 0xfffb2e61
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb2e4b ; jne 0xfffb2e4b
+cmp byte [ebx + 0x3bb1], 5
+je short loc_fffb2e5d ; je 0xfffb2e5d
+
+loc_fffb2e4b: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb2e61 ; jne 0xfffb2e61
+cmp byte [ebx + 0x4ef8], 5
+jne short loc_fffb2e61 ; jne 0xfffb2e61
+
+loc_fffb2e5d: ; not directly referenced
+add ax, 0xc8
+
+loc_fffb2e61: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb2e66: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 0x10
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea ebx, [ebp - 0x28]
+mov eax, ebx
+lea esp, [esp - 0x3c]
+mov edi, dword [ebp + 8]
+add edi, 0x1774
+mov dword [ebp - 0x40], edi
+xor edi, edi
+call fcn_fffa119f ; call 0xfffa119f
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+push 0
+mov ecx, 0x11
+mov edx, 3
+call fcn_fffc5844 ; call 0xfffc5844
+mov eax, dword [ebp + 8]
+add esp, 0x10
+add eax, 0x2974
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x3c], eax
+
+loc_fffb2ebb: ; not directly referenced
+mov ecx, edi
+mov eax, 1
+xor esi, esi
+mov byte [ebp - 0x29], 0
+shl eax, cl
+and eax, 0xff
+mov dword [ebp - 0x38], eax
+
+loc_fffb2ed2: ; not directly referenced
+mov ecx, dword [ebp - 0x38]
+mov edx, esi
+mov eax, dword [ebp + 8]
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0x29], al
+movzx eax, byte [ebp - 0x29]
+bt eax, esi
+mov dword [ebp - 0x30], eax
+jae short loc_fffb2f0f ; jae 0xfffb2f0f
+imul eax, esi, 0x1347
+mov edx, dword [ebp + 8]
+movzx ecx, byte [edx + 0x1755]
+mov edx, dword [ebp - 0x3c]
+lea eax, [edx + eax + 0x101]
+xor edx, edx
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb2f0f: ; not directly referenced
+cmp byte [ebp - 0x29], 0
+je short loc_fffb2f76 ; je 0xfffb2f76
+mov ebx, 1
+
+loc_fffb2f1a: ; not directly referenced
+cmp ebx, 3
+je short loc_fffb2f70 ; je 0xfffb2f70
+cmp ebx, 1
+jne short loc_fffb2f30 ; jne 0xfffb2f30
+mov ecx, dword [ebp + 8]
+mov byte [ecx + 0x1768], 9
+jmp short loc_fffb2f3f ; jmp 0xfffb2f3f
+
+loc_fffb2f30: ; not directly referenced
+cmp ebx, 4
+jne short loc_fffb2f3f ; jne 0xfffb2f3f
+mov eax, dword [ebp + 8]
+mov byte [eax + 0x1768], 0
+
+loc_fffb2f3f: ; not directly referenced
+lea eax, [ebx - 4]
+lea edx, [ebp - 0x28]
+cmp eax, 2
+mov ecx, dword [ebp - 0x30]
+sbb eax, eax
+sub esp, 0xc
+and eax, 0x17
+push edx
+add eax, 0x1f
+mov edx, dword [ebp - 0x40]
+movzx eax, al
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push ebx
+push edi
+call fcn_fffc0a00 ; call 0xfffc0a00
+mov dword [ebp - 0x34], eax
+add esp, 0x20
+
+loc_fffb2f70: ; not directly referenced
+inc ebx
+cmp ebx, 6
+jne short loc_fffb2f1a ; jne 0xfffb2f1a
+
+loc_fffb2f76: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffb2ed2 ; jne 0xfffb2ed2
+inc edi
+cmp edi, 4
+jne loc_fffb2ebb ; jne 0xfffb2ebb
+xor si, si
+mov dword [ebp - 0x38], 0
+mov byte [ebp - 0x29], 0
+jmp near loc_fffb30fd ; jmp 0xfffb30fd
+
+loc_fffb2f9d: ; not directly referenced
+movzx eax, byte [ebp - 0x30]
+mov cl, byte [ebp - 0x29]
+imul ebx, eax, 0x1347
+movzx edi, byte [ebp - 0x29]
+mov dword [ebp - 0x3c], edi
+mov edi, 1
+shl edi, cl
+mov ecx, dword [ebp + 8]
+mov edx, edi
+test byte [ecx + ebx + 0x3acb], dl
+je loc_fffb30e7 ; je 0xfffb30e7
+imul edi, eax, 0x48
+imul edx, dword [ebp - 0x3c], 0x90
+mov ebx, 1
+add edx, edi
+mov dword [ebp - 0x48], edx
+
+loc_fffb2fde: ; not directly referenced
+cmp ebx, 3
+je loc_fffb30d3 ; je 0xfffb30d3
+mov ecx, 2
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov edi, 0xa
+call fcn_fffb2de8 ; call 0xfffb2de8
+xor edx, edx
+div di
+mov edi, dword [ebp - 0x48]
+xor edx, edx
+mov word [ebp - 0x3c], ax
+movzx eax, bl
+movzx ecx, byte [eax + ref_fffcc308] ; movzx ecx, byte [eax - 0x33cf8]
+imul ecx, ecx, 0x240
+add ecx, dword [ebp - 0x40]
+mov edi, dword [ecx + edi]
+mov eax, edi
+mov word [ebp - 0x2c], di
+mov edi, 0xa
+div di
+mov edx, dword [ebp - 0x3c]
+cmp ax, dx
+ja short loc_fffb3072 ; ja 0xfffb3072
+cmp ebx, 4
+sete dl
+cmp ebx, 1
+sete al
+or dl, al
+jne short loc_fffb3064 ; jne 0xfffb3064
+cmp ebx, 5
+mov edi, 1
+sete dl
+cmp ebx, 2
+sete al
+mov dword [ebp - 0x34], 0x1b
+or dl, al
+cmovne esi, edi
+jmp short loc_fffb3072 ; jmp 0xfffb3072
+
+loc_fffb3064: ; not directly referenced
+mov dword [ebp - 0x38], 1
+mov dword [ebp - 0x34], 0x1b
+
+loc_fffb3072: ; not directly referenced
+mov edi, dword [ebp - 0x48]
+xor edx, edx
+mov eax, dword [ecx + edi + 4]
+mov ecx, 0xa
+div cx
+cmp ax, word [ebp - 0x3c]
+ja short loc_fffb30c8 ; ja 0xfffb30c8
+cmp ebx, 4
+sete dl
+cmp ebx, 1
+sete al
+or dl, al
+jne short loc_fffb30b8 ; jne 0xfffb30b8
+cmp ebx, 5
+mov edi, 1
+sete dl
+cmp ebx, 2
+sete al
+mov dword [ebp - 0x34], 0x1b
+or dl, al
+cmovne esi, edi
+jmp short loc_fffb30c8 ; jmp 0xfffb30c8
+
+loc_fffb30b8: ; not directly referenced
+mov dword [ebp - 0x38], 1
+mov dword [ebp - 0x34], 0x1b
+jmp short loc_fffb30ce ; jmp 0xfffb30ce
+
+loc_fffb30c8: ; not directly referenced
+cmp dword [ebp - 0x38], 1
+jne short loc_fffb30d3 ; jne 0xfffb30d3
+
+loc_fffb30ce: ; not directly referenced
+cmp esi, 1
+je short loc_fffb30df ; je 0xfffb30df
+
+loc_fffb30d3: ; not directly referenced
+inc ebx
+cmp ebx, 6
+jne loc_fffb2fde ; jne 0xfffb2fde
+jmp short loc_fffb30e7 ; jmp 0xfffb30e7
+
+loc_fffb30df: ; not directly referenced
+mov byte [ebp - 0x29], 4
+mov byte [ebp - 0x30], 2
+
+loc_fffb30e7: ; not directly referenced
+inc byte [ebp - 0x30]
+cmp byte [ebp - 0x30], 1
+jbe loc_fffb2f9d ; jbe 0xfffb2f9d
+inc byte [ebp - 0x29]
+cmp byte [ebp - 0x29], 3
+ja short loc_fffb3106 ; ja 0xfffb3106
+
+loc_fffb30fd: ; not directly referenced
+mov byte [ebp - 0x30], 0
+jmp near loc_fffb2f9d ; jmp 0xfffb2f9d
+
+loc_fffb3106: ; not directly referenced
+cmp dword [ebp - 0x34], 0x1b
+jne loc_fffb31a3 ; jne 0xfffb31a3
+mov eax, 1
+
+loc_fffb3115: ; not directly referenced
+cmp dword [ebp - 0x38], 0
+jne short loc_fffb3133 ; jne 0xfffb3133
+cmp eax, 4
+sete cl
+cmp eax, 1
+sete dl
+or cl, dl
+je short loc_fffb3133 ; je 0xfffb3133
+
+loc_fffb312b: ; not directly referenced
+inc eax
+cmp eax, 6
+jne short loc_fffb3115 ; jne 0xfffb3115
+jmp short loc_fffb31a3 ; jmp 0xfffb31a3
+
+loc_fffb3133: ; not directly referenced
+test esi, esi
+jne short loc_fffb3147 ; jne 0xfffb3147
+cmp eax, 5
+sete cl
+cmp eax, 2
+sete dl
+or cl, dl
+jne short loc_fffb312b ; jne 0xfffb312b
+
+loc_fffb3147: ; not directly referenced
+cmp eax, 3
+je short loc_fffb312b ; je 0xfffb312b
+xor edx, edx
+mov byte [ebp - 0x29], al
+
+loc_fffb3151: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov dword [ebp - 0x30], 0
+mov edi, dword [ecx + 0x176c]
+mov ebx, edi
+
+loc_fffb3163: ; not directly referenced
+mov cl, byte [ebp - 0x29]
+cmp cl, byte [ebx]
+jne short loc_fffb3171 ; jne 0xfffb3171
+movzx ebx, word [ebx + edx*2 + 1]
+jmp short loc_fffb317f ; jmp 0xfffb317f
+
+loc_fffb3171: ; not directly referenced
+inc dword [ebp - 0x30]
+add ebx, 7
+cmp dword [ebp - 0x30], 9
+jne short loc_fffb3163 ; jne 0xfffb3163
+xor ebx, ebx
+
+loc_fffb317f: ; not directly referenced
+imul ecx, dword [ebp - 0x30], 7
+add ebx, 0x28
+add ecx, edi
+cmp ebx, 0xffff
+mov edi, 0xffff
+cmovg ebx, edi
+mov word [ecx + edx*2 + 1], bx
+inc edx
+cmp edx, 2
+jne short loc_fffb3151 ; jne 0xfffb3151
+jmp short loc_fffb312b ; jmp 0xfffb312b
+
+loc_fffb31a3: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb31ae: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x30]
+mov dword [ebp - 0x10], edx
+mov edx, dword [eax + 0x1021]
+mov dword [ebp - 0x34], ecx
+movzx ebx, word [ebp + 0xc]
+movzx ecx, word [ebp + 0x14]
+mov dword [ebp - 0x18], ebx
+movzx esi, word [ebp + 0x10]
+mov dword [ebp - 0x30], ecx
+mov dword [ebp - 0x2c], esi
+mov ecx, dword [eax + edx*4 + 0x172c]
+add esi, 0xf
+mov eax, ebx
+imul eax, esi
+add ebx, esi
+cdq
+mov dword [ebp - 0x14], esi
+idiv ebx
+xor edx, edx
+mov esi, 0x2710
+mov edi, eax
+mov eax, ecx
+shr ax, 1
+and ecx, 0xffff
+movzx eax, ax
+mov dword [ebp - 0x20], ecx
+mov dword [ebp - 0x28], eax
+movzx eax, byte [ebp + 8]
+add eax, 0xf
+mov ebx, eax
+mov dword [ebp - 0x1c], eax
+add ebx, edi
+mov eax, dword [ebp - 0x28]
+div ebx
+mov ebx, 0x3e8
+xor edx, edx
+mov dword [ebp - 0x24], eax
+imul eax, dword [ebp - 0x1c]
+sub ecx, eax
+mov dword [ebp - 0x3c], eax
+lea eax, [ecx + ecx]
+sub eax, dword [ebp - 0x20]
+imul eax, eax
+div ebx
+xor edx, edx
+imul eax, eax, 0xd2f0
+div esi
+mov si, 0x64
+xor edx, edx
+div esi
+xor edx, edx
+mov si, 0x3e8
+mov ebx, eax
+imul eax, edi, 0x3e8
+add edi, 0x1e
+div edi
+xor edx, edx
+mov edi, dword [ebp - 0x18]
+imul ebx, eax
+mov eax, ebx
+mov ebx, dword [ebp - 0x20]
+div esi
+mov esi, dword [ebp - 0x3c]
+imul esi, esi
+mov dword [ebp - 0x38], eax
+mov eax, ecx
+imul eax, ecx
+add eax, esi
+add edi, edi
+imul edi, edi, 0x64
+xor edx, edx
+div edi
+mov edx, dword [ebp - 0x10]
+mov edi, 0x64
+mov dword [ebp - 0x3c], eax
+mov dword [edx], eax
+mov eax, ecx
+xor edx, edx
+sub eax, dword [ebp - 0x28]
+div dword [ebp - 0x14]
+imul edx, eax, 0xf
+imul eax, eax
+sub ecx, edx
+mov edx, dword [ebp - 0x2c]
+sub ebx, ecx
+add edx, edx
+imul edx, edx, 0x64
+imul eax, eax, 0xf
+imul ebx, ebx
+imul ecx, ecx
+mov dword [ebp - 0x18], edx
+xor edx, edx
+div edi
+xor edx, edx
+mov esi, eax
+mov eax, dword [ebp - 0x24]
+imul eax, eax
+imul eax, dword [ebp - 0x1c]
+div edi
+xor edx, edx
+mov edi, dword [ebp - 0x30]
+add edi, 0xf
+add esi, eax
+lea eax, [ebx + ecx]
+div dword [ebp - 0x18]
+mov edx, dword [ebp - 0x10]
+mov ebx, dword [ebp - 0x14]
+add ebx, edi
+add eax, esi
+mov esi, dword [ebp - 0x34]
+mov dword [ebp - 0x2c], eax
+mov dword [edx + 4], eax
+mov eax, dword [ebp - 0x14]
+imul eax, edi
+cdq
+idiv ebx
+xor edx, edx
+lea ebx, [eax + esi]
+mov ecx, eax
+mov eax, dword [ebp - 0x28]
+div ebx
+mov ebx, dword [ebp - 0x20]
+mov edx, eax
+imul edx, esi
+imul eax, eax
+sub ebx, edx
+imul eax, esi
+xor edx, edx
+mov esi, 0x64
+mov dword [ebp - 0x1c], ebx
+div esi
+xor edx, edx
+mov si, 0x2710
+mov dword [ebp - 0x34], eax
+mov eax, ebx
+add eax, eax
+sub eax, dword [ebp - 0x20]
+imul eax, eax
+mov ebx, 0x3e8
+div ebx
+xor edx, edx
+imul eax, eax, 0xd2f0
+div esi
+mov si, 0x64
+xor edx, edx
+div esi
+xor edx, edx
+mov esi, dword [ebp - 0x30]
+add esi, esi
+mov ebx, eax
+imul eax, ecx, 0x3e8
+add ecx, 0x1e
+div ecx
+mov ecx, 0x3e8
+xor edx, edx
+imul ebx, eax
+mov eax, ebx
+div ecx
+mov edx, dword [ebp - 0x10]
+mov ecx, dword [ebp - 0x1c]
+sub ecx, dword [ebp - 0x28]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x34]
+mov dword [edx + 8], eax
+mov eax, ecx
+xor edx, edx
+div edi
+mov edi, dword [ebp - 0x1c]
+mov ebx, eax
+imul eax, eax, 0xf
+sub edi, eax
+mov eax, dword [ebp - 0x20]
+sub eax, edi
+imul eax, eax
+imul edi, edi
+add eax, edi
+imul esi, esi, 0x64
+imul ebx, ebx
+xor edx, edx
+div esi
+xor edx, edx
+mov edi, eax
+imul eax, ebx, 0xf
+mov ebx, 0x64
+div ebx
+mov edx, dword [ebp - 0x10]
+lea ebx, [edi + eax]
+mov eax, ecx
+mov dword [edx + 0x10], ebx
+xor edx, edx
+div dword [ebp - 0x14]
+mov edi, dword [ebp - 0x1c]
+xor edx, edx
+mov ecx, eax
+imul eax, eax, 0xf
+imul ecx, ecx
+sub edi, eax
+mov eax, dword [ebp - 0x20]
+sub eax, edi
+imul eax, eax
+imul edi, edi
+add eax, edi
+div dword [ebp - 0x18]
+xor edx, edx
+mov edi, eax
+imul eax, ecx, 0xf
+mov ecx, 0x64
+div ecx
+mov edx, dword [ebp - 0x10]
+lea esi, [edi + eax]
+mov dword [edx + 0xc], esi
+mov eax, dword [ebp - 0x38]
+add esi, ebx
+mov dword [edx + 0x14], eax
+mov ebx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x24]
+mov edi, 0x64
+add ebx, eax
+mov dword [edx + 0x18], eax
+mov edx, dword [ebp - 0x38]
+add edx, dword [ebp - 0x2c]
+mov dword [ebp - 0x18], edx
+mov eax, dword [ebp - 0x18]
+add eax, dword [ebp - 0x3c]
+lea edx, [ebx + esi]
+imul edx, edx, 0x28
+imul eax, eax, 0x3c
+add eax, edx
+xor edx, edx
+div cx
+mov edx, dword [ebp - 0x10]
+mov word [edx + 0x24], ax
+imul edx, dword [ebp - 0x24], 0x28
+imul eax, dword [ebp - 0x38], 0x3c
+add eax, edx
+xor edx, edx
+div edi
+mov edx, dword [ebp - 0x10]
+imul ebx, ebx, 0x28
+imul esi, esi, 0x28
+imul di, word [ebp - 0x18], 0x3c
+mov dword [edx + 0x1c], eax
+imul dx, word [ebp - 0x3c], 0x3c
+lea eax, [ebx + edx]
+xor edx, edx
+div cx
+mov edx, dword [ebp - 0x10]
+mov word [edx + 0x20], ax
+lea eax, [esi + edi]
+xor edx, edx
+div cx
+mov edx, dword [ebp - 0x10]
+mov word [edx + 0x22], ax
+lea esp, [esp + 0x30]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb348c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov dword [ebp - 0x10], eax
+add eax, 0x16be
+mov byte [ebp - 0x12], dl
+mov dword [ebp - 0x30], eax
+mov eax, dword [ebp - 0x10]
+add eax, 0x2974
+mov dword [ebp - 0x18], 0
+movzx edx, dl
+mov dword [ebp - 0x38], eax
+mov dword [ebp - 0x2c], edx
+
+loc_fffb34bc: ; not directly referenced
+imul ecx, dword [ebp - 0x18], 0x1347
+mov eax, dword [ebp - 0x30]
+mov dword [ebp - 0x1c], ecx
+cmp dword [eax + ecx + 0x12be], 2
+je short loc_fffb34e2 ; je 0xfffb34e2
+
+loc_fffb34d3: ; not directly referenced
+inc dword [ebp - 0x18]
+cmp dword [ebp - 0x18], 2
+je loc_fffb3651 ; je 0xfffb3651
+jmp short loc_fffb34bc ; jmp 0xfffb34bc
+
+loc_fffb34e2: ; not directly referenced
+mov ecx, dword [ebp - 0x38]
+mov edx, dword [ebp - 0x1c]
+mov byte [ebp - 0x11], 0
+lea edx, [ecx + edx + 8]
+mov ecx, dword [ebp - 0x18]
+shl ecx, 8
+mov dword [ebp - 0x24], edx
+mov dword [ebp - 0x34], ecx
+jmp near loc_fffb361a ; jmp 0xfffb361a
+
+loc_fffb3501: ; not directly referenced
+mov edi, 1
+shl edi, cl
+mov eax, edi
+test byte [ebp - 0x20], al
+je short loc_fffb3526 ; je 0xfffb3526
+imul edi, ecx, 0x12
+mov di, word [esi + edi + 0x26d]
+cmp dx, di
+cmovb edx, edi
+cmp bx, di
+cmova ebx, edi
+
+loc_fffb3526: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb3501 ; jne 0xfffb3501
+shr dx, 6
+mov eax, dword [ebp - 0x10]
+movzx ecx, word [eax + 0x1766]
+lea esi, [edx + 1]
+mov eax, 0x13880
+xor edx, edx
+div ecx
+movzx ecx, bx
+mov edx, 0x80
+cmp eax, 0x7f
+cmova edx, eax
+sub ecx, edx
+shr ecx, 6
+sub cl, byte [ebp - 0x12]
+cmp cl, 0xfc
+jl short loc_fffb356f ; jl 0xfffb356f
+cmp cl, 6
+mov al, 6
+mov bl, al
+cmovle ebx, ecx
+mov cl, bl
+jmp short loc_fffb3573 ; jmp 0xfffb3573
+
+loc_fffb356f: ; not directly referenced
+mov bl, 0xfc
+mov cl, 0xfc
+
+loc_fffb3573: ; not directly referenced
+movzx esi, si
+movsx eax, bl
+mov edx, esi
+sub edx, eax
+mov eax, edx
+mov edx, dword [ebp - 0x2c]
+lea edi, [eax + edx - 1]
+movsx eax, cl
+sub esi, eax
+cmp edi, 7
+mov eax, 7
+cmovg edi, eax
+mov dword [ebp - 0x20], edi
+lea esi, [esi + edx - 1]
+mov edx, dword [ebp - 0x24]
+cmp esi, 7
+cmovg esi, eax
+movzx eax, byte [ebp - 0x11]
+mov dword [ebp - 0x28], eax
+lea edi, [edx + eax*4 + 0x140]
+mov dl, cl
+shl edx, 5
+shr cl, 3
+mov byte [ebp - 0x13], dl
+mov dl, byte [edi + 6]
+and ecx, 1
+and edx, 0x1f
+or dl, byte [ebp - 0x13]
+mov byte [edi + 6], dl
+xor edx, edx
+test esi, esi
+cmovs esi, edx
+shl ebx, 4
+and esi, 7
+add esi, esi
+or esi, ecx
+or esi, ebx
+mov ecx, esi
+mov byte [edi + 7], cl
+mov cl, byte [edi + 8]
+cmp dword [ebp - 0x20], 0
+cmovns edx, dword [ebp - 0x20]
+and edx, 7
+and ecx, 0xfffffff8
+or ecx, edx
+mov byte [edi + 8], cl
+mov eax, dword [ebp - 0x28]
+mov ecx, dword [ebp - 0x34]
+mov edx, dword [edi + 5]
+shl eax, 9
+inc byte [ebp - 0x11]
+lea eax, [ecx + eax + 0x60]
+mov ecx, dword [ebp - 0x10]
+add eax, dword [ecx + 0x103f]
+mov dword [eax], edx
+
+loc_fffb361a: ; not directly referenced
+mov edx, dword [ebp - 0x10]
+mov al, byte [ebp - 0x11]
+cmp al, byte [edx + 0x1755]
+jae loc_fffb34d3 ; jae 0xfffb34d3
+mov eax, dword [ebp - 0x1c]
+mov ecx, dword [ebp - 0x24]
+mov ebx, 0x200
+mov al, byte [edx + eax + 0x3acb]
+movzx edx, byte [ebp - 0x11]
+mov byte [ebp - 0x20], al
+lea esi, [ecx + edx*2]
+xor ecx, ecx
+xor edx, edx
+jmp near loc_fffb3501 ; jmp 0xfffb3501
+
+loc_fffb3651: ; not directly referenced
+lea esp, [esp + 0x2c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb365a: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+lea esp, [esp - 0x2c]
+mov edi, dword [ebp + 8]
+mov byte [ebp - 0x1c], 4
+mov byte [ebp - 0x1b], 1
+mov byte [ebp - 0x1a], 5
+mov byte [ebp - 0x19], 2
+mov byte [ebp - 0x22], 4
+mov byte [ebp - 0x21], 1
+mov byte [ebp - 0x20], 5
+mov byte [ebp - 0x1f], 2
+mov byte [ebp - 0x1e], 0xf9
+mov byte [ebp - 0x1d], 7
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x2c], 0
+add edi, 0x2974
+
+loc_fffb36a7: ; not directly referenced
+imul edx, eax, 0x1347
+lea edx, [edi + edx + 8]
+mov cl, byte [edx + 0x114f]
+test cl, cl
+je short loc_fffb3714 ; je 0xfffb3714
+cmp dword [ebp - 0x2c], 0
+mov ebx, 1
+jne short loc_fffb36d2 ; jne 0xfffb36d2
+xor ebx, ebx
+cmp dword [edx + 0xf5], 2
+sete bl
+
+loc_fffb36d2: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+mov dword [ebp - 0x2c], ebx
+mov dword [ebp - 0x34], 1
+jne short loc_fffb36ff ; jne 0xfffb36ff
+mov esi, 0xc
+and esi, ecx
+mov ebx, esi
+cmp bl, 0xc
+je short loc_fffb36ff ; je 0xfffb36ff
+and ecx, 3
+cmp cl, 3
+sete cl
+movzx ecx, cl
+mov dword [ebp - 0x34], ecx
+
+loc_fffb36ff: ; not directly referenced
+mov esi, dword [edx + 0x1ad]
+mov ebx, dword [ebp - 0x34]
+and esi, 0x3c0
+mov dword [ebp - 0x30], ebx
+shr esi, 6
+
+loc_fffb3714: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffb36a7 ; jne 0xfffb36a7
+mov edx, 1
+mov eax, dword [ebp + 8]
+call fcn_fffb348c ; call 0xfffb348c
+push ecx
+lea edi, [ebp - 0x1e]
+mov ebx, dword [ebp + 8]
+push ecx
+add ebx, 0x1774
+lea ecx, [ebp - 0x22]
+push 1
+mov edx, 0xa
+mov eax, dword [ebp + 8]
+push 0xf
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push 3
+push 0
+push 2
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x28
+lea ecx, [ebp - 0x22]
+push 1
+mov edx, 0xb
+mov eax, dword [ebp + 8]
+push 0xf
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push 0
+push 0xfffffffffffffffe
+push 2
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x30
+cmp dword [ebp - 0x2c], 0
+je short loc_fffb3800 ; je 0xfffb3800
+push edx
+lea ecx, [ebp - 0x22]
+mov eax, dword [ebp + 8]
+push edx
+mov edx, 1
+push 0
+push 0xf
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push 7
+push 6
+push 2
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x28
+lea ecx, [ebp - 0x20]
+push 0
+mov edx, 3
+mov eax, dword [ebp + 8]
+push 0xf
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push 8
+push 7
+push 2
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x28
+lea eax, [esi + 1]
+push 0
+movsx eax, al
+lea ecx, [ebp - 0x1c]
+push 0xf
+mov edx, 7
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push eax
+lea eax, [esi - 1]
+movsx eax, al
+push eax
+mov eax, dword [ebp + 8]
+push 4
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x30
+
+loc_fffb3800: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+je short loc_fffb3881 ; je 0xfffb3881
+push eax
+lea edi, [ebp - 0x1e]
+lea ecx, [ebp - 0x22]
+push eax
+xor edx, edx
+mov eax, dword [ebp + 8]
+push 0
+push 0xf
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push 7
+push 6
+push 2
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x28
+lea ecx, [ebp - 0x20]
+push 0
+mov edx, 2
+mov eax, dword [ebp + 8]
+push 0xf
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push 8
+push 7
+push 2
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x28
+lea eax, [esi + 1]
+push 0
+movsx eax, al
+lea ecx, [ebp - 0x1c]
+push 0xf
+mov edx, 6
+push 0
+push 2
+push edi
+push ebx
+push 0xc
+push eax
+lea eax, [esi - 1]
+movsx esi, al
+mov eax, dword [ebp + 8]
+push esi
+push 4
+call fcn_fffc4850 ; call 0xfffc4850
+add esp, 0x30
+
+loc_fffb3881: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb3889: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+mov cl, dl
+push esi
+mov esi, eax
+push ebx
+lea esp, [esp - 0x3c]
+cmp dl, 9
+mov al, byte [ebp + 8]
+mov ebx, dword [esi + 0x1756]
+mov byte [ebp - 0x19], al
+mov eax, dword [esi + 0x175a]
+ja loc_fffb39d5 ; ja 0xfffb39d5
+movzx edx, dl
+jmp dword [edx*4 + ref_fffcbac4] ; ujmp: jmp dword [edx*4 - 0x3453c]
+
+loc_fffb38be: ; not directly referenced
+and edi, 0x1f
+and ebx, 0xfff07bff
+shl edi, 0xf
+jmp short loc_fffb38d5 ; jmp 0xfffb38d5
+
+loc_fffb38cc: ; not directly referenced
+and edi, 0xf
+and bh, 0x87
+shl edi, 0xb
+
+loc_fffb38d5: ; not directly referenced
+or ebx, edi
+jmp near loc_fffb39d5 ; jmp 0xfffb39d5
+
+loc_fffb38dc: ; not directly referenced
+and edi, 0xf
+and ebx, 0xff0fffff
+shl edi, 0x14
+jmp short loc_fffb38d5 ; jmp 0xfffb38d5
+
+loc_fffb38ea: ; not directly referenced
+and edi, 0xf
+and ebx, 0xf0ffffff
+shl edi, 0x18
+jmp short loc_fffb38d5 ; jmp 0xfffb38d5
+
+loc_fffb38f8: ; not directly referenced
+shl edi, 0x1c
+and ebx, 0xfffffff
+jmp short loc_fffb38d5 ; jmp 0xfffb38d5
+
+loc_fffb3903: ; not directly referenced
+mov edx, edi
+and eax, 0xffffffe0
+and edx, 0xf
+and edi, 0x10
+jmp short loc_fffb3954 ; jmp 0xfffb3954
+
+loc_fffb3910: ; not directly referenced
+mov edx, edi
+and eax, 0xfffffc1f
+shl edi, 5
+and edx, 0xf
+shl edx, 5
+and edi, 0x200
+jmp short loc_fffb3954 ; jmp 0xfffb3954
+
+loc_fffb3928: ; not directly referenced
+mov edx, edi
+and ah, 0x83
+shl edi, 0xa
+and edx, 0xf
+shl edx, 0xa
+and edi, 0x4000
+jmp short loc_fffb3954 ; jmp 0xfffb3954
+
+loc_fffb393e: ; not directly referenced
+mov edx, edi
+and eax, 0xfff07fff
+shl edi, 0xf
+and edx, 0xf
+shl edx, 0xf
+and edi, 0x80000
+
+loc_fffb3954: ; not directly referenced
+or eax, edx
+or eax, edi
+jmp short loc_fffb39d5 ; jmp 0xfffb39d5
+
+loc_fffb395a: ; not directly referenced
+mov edx, edi
+and ebx, 0xfffffff7
+and edx, 1
+mov byte [ebp - 0x38], dl
+and edx, 1
+mov edi, edx
+shl edi, 0x1a
+lea edx, [edx*8]
+or ebx, edx
+mov edx, dword [esi + 0x2abd]
+and edx, 0xfbffffff
+or edx, edi
+mov edi, dword [esi + 0x103f]
+cmp byte [ebp - 0x19], 0
+mov dword [edi + 0x3074], edx
+je short loc_fffb399c ; je 0xfffb399c
+mov dword [esi + 0x2abd], edx
+
+loc_fffb399c: ; not directly referenced
+mov edx, dword [esi + 0x3e04]
+mov dword [ebp - 0x40], edx
+mov dl, byte [ebp - 0x38]
+and edx, 1
+and dword [ebp - 0x40], 0xfbffffff
+mov edi, edx
+shl edi, 0x1a
+or dword [ebp - 0x40], edi
+mov edi, dword [esi + 0x103f]
+mov edx, dword [ebp - 0x40]
+cmp byte [ebp - 0x19], 0
+mov dword [edi + 0x3174], edx
+je short loc_fffb39d5 ; je 0xfffb39d5
+mov dword [esi + 0x3e04], edx
+
+loc_fffb39d5: ; not directly referenced
+mov edx, dword [esi + 0x103f]
+cmp byte [ebp - 0x19], 0
+mov dword [edx + 0x3a14], ebx
+mov edx, dword [esi + 0x103f]
+mov dword [edx + 0x3a18], eax
+je short loc_fffb39ff ; je 0xfffb39ff
+mov dword [esi + 0x1756], ebx
+mov dword [esi + 0x175a], eax
+
+loc_fffb39ff: ; not directly referenced
+mov eax, dword [esi + 0x103f]
+mov edx, 0x78
+mov dword [eax + 0x5f08], 0x115
+mov eax, esi
+mov byte [ebp - 0x3c], cl
+call fcn_fffb2d3a ; call 0xfffb2d3a
+mov cl, byte [ebp - 0x3c]
+test cl, cl
+jne loc_fffb3ae7 ; jne 0xfffb3ae7
+mov edi, dword [esi + 0x103f]
+mov edx, dword [edi + 0x3a04]
+and edx, 0x3f
+lea eax, [edx + 0x30]
+and eax, 0x3f
+cmp al, 0x20
+jbe loc_fffb3b02 ; jbe 0xfffb3b02
+movzx eax, dl
+mov edx, ebx
+or edx, 8
+and ebx, 0xfffffff7
+cmp eax, 0xf
+mov al, byte [esi + 0x2ac0]
+cmovle ebx, edx
+and eax, 0xfffffffb
+mov edx, ebx
+shr edx, 3
+and edx, 1
+lea ecx, [edx*4]
+or eax, ecx
+mov byte [esi + 0x2ac0], al
+mov eax, dword [esi + 0x2abd]
+mov dword [edi + 0x3074], eax
+mov al, byte [esi + 0x3e07]
+and eax, 0xfffffffb
+and edx, 1
+shl edx, 3
+or eax, ecx
+mov byte [esi + 0x3e07], al
+mov eax, dword [esi + 0x103f]
+mov ecx, dword [esi + 0x3e04]
+mov dword [eax + 0x3174], ecx
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x3a14], ebx
+mov eax, dword [esi + 0x1756]
+and eax, 0xfffffff7
+or eax, edx
+mov edx, 0x78
+mov dword [esi + 0x1756], eax
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x5f08], 0x115
+mov eax, esi
+call fcn_fffb2d3a ; call 0xfffb2d3a
+jmp short loc_fffb3b02 ; jmp 0xfffb3b02
+
+loc_fffb3ae7: ; not directly referenced
+xor eax, eax
+cmp cl, 9
+ja loc_fffb3b93 ; ja 0xfffb3b93
+movzx edx, cl
+mov eax, dword [esi + 0x103f]
+jmp dword [edx*4 + ref_fffcbaec] ; ujmp: jmp dword [edx*4 - 0x34514]
+
+loc_fffb3b02: ; not directly referenced
+mov ecx, dword [esi + 0x103f]
+and ebx, 0xfffffc0f
+mov edx, dword [ecx + 0x3a04]
+mov al, dl
+shr edx, 9
+and eax, 0x3f
+sub edx, eax
+and edx, 0x3f
+shl edx, 4
+or ebx, edx
+or bh, 4
+cmp byte [ebp - 0x19], 0
+mov dword [ecx + 0x3a14], ebx
+je short loc_fffb3b3b ; je 0xfffb3b3b
+mov dword [esi + 0x1756], ebx
+
+loc_fffb3b3b: ; not directly referenced
+movzx eax, al
+jmp short loc_fffb3b93 ; jmp 0xfffb3b93
+
+loc_fffb3b40: ; not directly referenced
+dec cl
+mov eax, dword [eax + 0x3a00]
+jne short loc_fffb3b4c ; jne 0xfffb3b4c
+jmp short loc_fffb3b90 ; jmp 0xfffb3b90
+
+loc_fffb3b4c: ; not directly referenced
+shr eax, 0x1a
+and eax, 0x1f
+jmp short loc_fffb3b93 ; jmp 0xfffb3b93
+
+loc_fffb3b54: ; not directly referenced
+mov edx, dword [eax + 0x3a08]
+mov eax, edx
+and eax, 0x3f
+cmp cl, 2
+jmp short loc_fffb3b72 ; jmp 0xfffb3b72
+
+loc_fffb3b64: ; not directly referenced
+mov edx, dword [eax + 0x3a0c]
+mov eax, edx
+and eax, 0x3f
+cmp cl, 3
+
+loc_fffb3b72: ; not directly referenced
+jne short loc_fffb3b93 ; jne 0xfffb3b93
+mov eax, edx
+shr eax, 0xc
+jmp short loc_fffb3b90 ; jmp 0xfffb3b90
+
+loc_fffb3b7b: ; not directly referenced
+mov edx, dword [eax + 0x3a10]
+mov eax, edx
+and eax, 0x1f
+cmp cl, 4
+jne short loc_fffb3b93 ; jne 0xfffb3b93
+mov eax, edx
+shr eax, 0xb
+
+loc_fffb3b90: ; not directly referenced
+and eax, 0x3f
+
+loc_fffb3b93: ; not directly referenced
+lea esp, [esp + 0x3c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb3b9c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x28]
+mov bl, byte [ebp + 0x18]
+mov byte [ebp - 0xe], bl
+mov byte [ebp - 0x20], cl
+imul ebx, edx, 0x1347
+mov cl, byte [ebp + 0x10]
+mov esi, dword [ebp + 8]
+mov byte [ebp - 0xd], cl
+mov ecx, esi
+mov edi, dword [ebp + 0xc]
+cmp cl, 0xe
+lea ebx, [eax + ebx + 0x297c]
+ja loc_fffb3f61 ; ja 0xfffb3f61
+and esi, 0xff
+jmp dword [esi*4 + ref_fffcbb14] ; ujmp: jmp dword [esi*4 - 0x344ec]
+
+loc_fffb3be0: ; not directly referenced
+mov ecx, dword [ebx + 0x1a9]
+and edi, 0xf
+shl edi, 0xf
+and ecx, 0xfff87fff
+jmp near loc_fffb3f0d ; jmp 0xfffb3f0d
+
+loc_fffb3bf7: ; not directly referenced
+mov ecx, dword [ebx + 0x1a9]
+and edi, 0xf
+shl edi, 0x13
+and ecx, 0xff87ffff
+jmp near loc_fffb3f0d ; jmp 0xfffb3f0d
+
+loc_fffb3c0e: ; not directly referenced
+mov ecx, dword [ebx + 0x1ad]
+and edi, 0xf
+shl edi, 0x11
+and ecx, 0xffe1ffff
+jmp short loc_fffb3c87 ; jmp 0xfffb3c87
+
+loc_fffb3c22: ; not directly referenced
+mov ecx, dword [ebx + 0x1ad]
+and edi, 0xf
+shl edi, 0x15
+and ecx, 0xfe1fffff
+jmp short loc_fffb3c87 ; jmp 0xfffb3c87
+
+loc_fffb3c36: ; not directly referenced
+mov ecx, dword [ebx + 0x1b1]
+and edi, 0x1f
+shl edi, 0x13
+and ecx, 0xff07ffff
+jmp near loc_fffb3f41 ; jmp 0xfffb3f41
+
+loc_fffb3c4d: ; not directly referenced
+mov ecx, dword [ebx + 0x1b1]
+and edi, 0x1f
+shl edi, 0x18
+and ecx, 0xe0ffffff
+jmp near loc_fffb3f41 ; jmp 0xfffb3f41
+
+loc_fffb3c64: ; not directly referenced
+mov ecx, dword [ebx + 0x1ad]
+and edi, 0xf
+shl edi, 6
+and ecx, 0xfffffc3f
+jmp short loc_fffb3c87 ; jmp 0xfffb3c87
+
+loc_fffb3c78: ; not directly referenced
+mov ecx, dword [ebx + 0x1ad]
+and edi, 0xf
+shl edi, 0xa
+and ch, 0xc3
+
+loc_fffb3c87: ; not directly referenced
+shl edx, 0xa
+mov eax, dword [eax + 0x103f]
+or ecx, edi
+lea eax, [edx + eax + 0x4008]
+mov dword [eax], ecx
+cmp byte [ebp - 0xd], 0
+je loc_fffb3f61 ; je 0xfffb3f61
+mov dword [ebx + 0x1ad], ecx
+jmp near loc_fffb3f61 ; jmp 0xfffb3f61
+
+loc_fffb3cb0: ; not directly referenced
+sub edi, 6
+mov ecx, dword [ebx + 0x1b5]
+and edi, 3
+and ecx, 0xfff9ffff
+shl edi, 0x11
+jmp short loc_fffb3cf3 ; jmp 0xfffb3cf3
+
+loc_fffb3cc7: ; not directly referenced
+sub edi, 6
+cmp dword [eax + 0x1749], 2
+mov ecx, dword [ebx + 0x1b5]
+jne short loc_fffb3ce7 ; jne 0xfffb3ce7
+and edi, 7
+and ecx, 0xffc7ffff
+shl edi, 0x13
+jmp short loc_fffb3cf3 ; jmp 0xfffb3cf3
+
+loc_fffb3ce7: ; not directly referenced
+and edi, 3
+and ecx, 0xffe7ffff
+shl edi, 0x13
+
+loc_fffb3cf3: ; not directly referenced
+shl edx, 0xa
+mov eax, dword [eax + 0x103f]
+or ecx, edi
+lea eax, [edx + eax + 0x4014]
+mov dword [eax], ecx
+cmp byte [ebp - 0xd], 0
+je loc_fffb3f61 ; je 0xfffb3f61
+mov dword [ebx + 0x1b5], ecx
+jmp near loc_fffb3f61 ; jmp 0xfffb3f61
+
+loc_fffb3d1c: ; not directly referenced
+movzx ecx, byte [ebp - 0x20]
+mov dword [ebp - 0x24], ecx
+add ecx, 0x50
+mov dword [ebp - 0x28], ecx
+mov ecx, dword [ebx + ecx*4 + 5]
+mov esi, ecx
+mov dword [ebp - 0x20], ecx
+shr esi, 0xd
+and esi, 0xf
+mov ecx, esi
+or ecx, 0xfffffff0
+test esi, 8
+cmovne esi, ecx
+add esi, edi
+mov edi, 6
+mov ecx, esi
+cmp cl, 6
+cmovle edi, esi
+mov esi, 0xfffffffc
+mov ecx, edi
+cmp cl, 0xfc
+mov ecx, dword [ebp - 0x20]
+cmovge esi, edi
+and ecx, 0xff0e1fff
+and esi, 0xf
+mov edi, esi
+shl edi, 0xd
+shl esi, 0x14
+jmp short loc_fffb3dc0 ; jmp 0xfffb3dc0
+
+loc_fffb3d78: ; not directly referenced
+movzx ecx, byte [ebp - 0x20]
+mov dword [ebp - 0x24], ecx
+add ecx, 0x50
+mov dword [ebp - 0x28], ecx
+mov ecx, dword [ebx + ecx*4 + 5]
+mov esi, ecx
+mov dword [ebp - 0x20], ecx
+shr esi, 0x11
+and esi, 7
+add esi, edi
+mov edi, 7
+mov ecx, esi
+cmp cl, 7
+cmovle edi, esi
+xor esi, esi
+mov ecx, edi
+test cl, cl
+mov ecx, dword [ebp - 0x20]
+cmovns esi, edi
+and ecx, 0xf8f1ffff
+and esi, 7
+mov edi, esi
+shl edi, 0x11
+shl esi, 0x18
+
+loc_fffb3dc0: ; not directly referenced
+shl edx, 8
+or ecx, edi
+or ecx, esi
+mov esi, dword [ebp - 0x24]
+shl esi, 9
+lea edx, [edx + esi + 0x60]
+add edx, dword [eax + 0x103f]
+mov dword [edx], ecx
+cmp byte [ebp - 0xd], 0
+je loc_fffb3f61 ; je 0xfffb3f61
+mov eax, dword [ebp - 0x28]
+mov dword [ebx + eax*4 + 5], ecx
+jmp near loc_fffb3f61 ; jmp 0xfffb3f61
+
+loc_fffb3def: ; not directly referenced
+shl edx, 0xa
+mov esi, ebx
+mov ebx, edi
+mov dword [ebp - 0x24], 0
+and ebx, 0x3f
+mov dword [ebp - 0x28], ebx
+lea ecx, [edx + 0x4028]
+add edx, 0x4024
+mov dword [ebp - 0x34], ecx
+mov dword [ebp - 0x2c], edx
+
+loc_fffb3e15: ; not directly referenced
+movzx ecx, byte [ebp - 0xe]
+mov ebx, dword [ebp - 0x24]
+bt ecx, ebx
+mov dl, byte [ebp - 0x24]
+jae loc_fffb3eee ; jae 0xfffb3eee
+mov ecx, edi
+add cl, byte [esi + 0x10cd]
+sub cl, byte [esi + 0x10d1]
+mov byte [ebp - 0x20], cl
+js loc_fffb3eee ; js 0xfffb3eee
+mov ecx, dword [ebp - 0x34]
+add ecx, dword [eax + 0x103f]
+mov dword [ebp - 0x30], ecx
+mov ebx, dword [ecx]
+mov ecx, dword [eax + 0x103f]
+add ecx, dword [ebp - 0x2c]
+cmp dl, 2
+mov ecx, dword [ecx]
+je short loc_fffb3e8f ; je 0xfffb3e8f
+cmp dl, 3
+je short loc_fffb3eab ; je 0xfffb3eab
+dec dl
+mov dl, byte [ebp - 0x20]
+je short loc_fffb3e79 ; je 0xfffb3e79
+and edx, 0xf
+and ebx, 0xfffffff0
+and ecx, 0xffffffc0
+or ebx, edx
+or ecx, dword [ebp - 0x28]
+jmp short loc_fffb3ec7 ; jmp 0xfffb3ec7
+
+loc_fffb3e79: ; not directly referenced
+and edx, 0xf
+and bl, 0xf
+shl edx, 4
+and ch, 0xc0
+or ebx, edx
+mov edx, dword [ebp - 0x28]
+shl edx, 8
+jmp short loc_fffb3ec5 ; jmp 0xfffb3ec5
+
+loc_fffb3e8f: ; not directly referenced
+mov dl, byte [ebp - 0x20]
+and bh, 0xf0
+and edx, 0xf
+and ecx, 0xffc0ffff
+shl edx, 8
+or ebx, edx
+mov edx, dword [ebp - 0x28]
+shl edx, 0x10
+jmp short loc_fffb3ec5 ; jmp 0xfffb3ec5
+
+loc_fffb3eab: ; not directly referenced
+mov dl, byte [ebp - 0x20]
+and bh, 0xf
+and edx, 0xf
+and ecx, 0xc0ffffff
+shl edx, 0xc
+or ebx, edx
+mov edx, dword [ebp - 0x28]
+shl edx, 0x18
+
+loc_fffb3ec5: ; not directly referenced
+or ecx, edx
+
+loc_fffb3ec7: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+mov dword [edx], ebx
+mov edx, dword [ebp - 0x2c]
+add edx, dword [eax + 0x103f]
+cmp byte [ebp - 0xd], 0
+mov dword [edx], ecx
+je short loc_fffb3eee ; je 0xfffb3eee
+mov ecx, edi
+mov bl, byte [ebp - 0x20]
+mov byte [esi + 0x10d1], cl
+mov byte [esi + 0x10cd], bl
+
+loc_fffb3eee: ; not directly referenced
+inc dword [ebp - 0x24]
+inc esi
+cmp dword [ebp - 0x24], 4
+jne loc_fffb3e15 ; jne 0xfffb3e15
+jmp short loc_fffb3f61 ; jmp 0xfffb3f61
+
+loc_fffb3efe: ; not directly referenced
+mov ecx, dword [ebx + 0x1a9]
+and edi, 7
+shl edi, 0xc
+and ch, 0x8f
+
+loc_fffb3f0d: ; not directly referenced
+shl edx, 0xa
+mov eax, dword [eax + 0x103f]
+or ecx, edi
+lea eax, [edx + eax + 0x4004]
+mov dword [eax], ecx
+cmp byte [ebp - 0xd], 0
+je short loc_fffb3f61 ; je 0xfffb3f61
+mov dword [ebx + 0x1a9], ecx
+jmp short loc_fffb3f61 ; jmp 0xfffb3f61
+
+loc_fffb3f2f: ; not directly referenced
+mov ecx, dword [ebx + 0x1b1]
+and edi, 0x1f
+shl edi, 0xe
+and ecx, 0xfff83fff
+
+loc_fffb3f41: ; not directly referenced
+shl edx, 0xa
+mov eax, dword [eax + 0x103f]
+or ecx, edi
+lea eax, [edx + eax + 0x400c]
+mov dword [eax], ecx
+cmp byte [ebp - 0xd], 0
+je short loc_fffb3f61 ; je 0xfffb3f61
+mov dword [ebx + 0x1b1], ecx
+
+loc_fffb3f61: ; not directly referenced
+lea esp, [esp + 0x28]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffb3f6a:
+db 0x00
+db 0x00
+
+fcn_fffb3f6c: ; not directly referenced
+push ebp
+mov edx, 0x12
+mov ebp, esp
+push edi
+push esi
+lea eax, [ebp - 0x192]
+push ebx
+lea esp, [esp - 0x1fc]
+mov edi, dword [ebp + 8]
+lea ebx, [edi + 0x16be]
+mov dword [ebp - 0x1ec], ebx
+xor ebx, ebx
+cmp dword [edi + 0x1749], 2
+sete bl
+xor ecx, ecx
+mov dword [ebp - 0x1f8], ebx
+lea esi, [edi + 0x2974]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0xf8
+mov edx, 0x12
+lea eax, [ebp - 0x1a4]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0xff
+mov edx, 0x12
+lea eax, [ebp - 0x16e]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x12
+lea eax, [ebp - 0x180]
+call fcn_fffa119f ; call 0xfffa119f
+mov dword [ebp - 0x1c4], 0x64
+xor eax, eax
+mov dword [ebp - 0x1c0], esi
+
+loc_fffb4000: ; not directly referenced
+imul edx, eax, 0x1347
+mov ebx, dword [ebp - 0x1ec]
+cmp dword [ebx + edx + 0x12be], 2
+je short loc_fffb4032 ; je 0xfffb4032
+
+loc_fffb4016: ; not directly referenced
+inc eax
+add dword [ebp - 0x1c4], 0x100
+cmp eax, 2
+jne short loc_fffb4000 ; jne 0xfffb4000
+mov dword [ebp - 0x1bc], 0xfffffff8
+jmp short loc_fffb4075 ; jmp 0xfffb4075
+
+loc_fffb4032: ; not directly referenced
+mov esi, dword [ebp - 0x1c0]
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x1bc], edx
+xor edx, edx
+jmp short loc_fffb406b ; jmp 0xfffb406b
+
+loc_fffb4046: ; not directly referenced
+movzx ebx, dl
+mov ecx, dword [ebp - 0x1bc]
+inc edx
+mov esi, dword [ecx + ebx*4 + 0x169]
+shl ebx, 9
+add ebx, dword [ebp - 0x1c4]
+add ebx, dword [edi + 0x103f]
+or esi, 0x60
+mov dword [ebx], esi
+
+loc_fffb406b: ; not directly referenced
+cmp dl, byte [edi + 0x1755]
+jb short loc_fffb4046 ; jb 0xfffb4046
+jmp short loc_fffb4016 ; jmp 0xfffb4016
+
+loc_fffb4075: ; not directly referenced
+push 0
+mov bl, byte [ebp - 0x1bc]
+mov ecx, dword [ebp - 0x1bc]
+push 0
+mov edx, 4
+mov eax, edi
+push 0
+mov byte [ebp - 0x1e0], bl
+lea esi, [ebp - 0x1b6]
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+mov eax, dword [edi + 0x103f]
+mov dword [ebp - 0x1d8], esi
+add esp, 0x20
+lea esi, [ebp - 0x16e]
+mov dword [ebp - 0x1c0], 0
+mov dword [eax + 0x364c], 0xffffffff
+
+loc_fffb40d2: ; not directly referenced
+imul eax, dword [ebp - 0x1c0], 0x1347
+mov ebx, dword [ebp - 0x1ec]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffb41bb ; jne 0xfffb41bb
+mov ecx, dword [ebp - 0x1c0]
+mov ebx, dword [edi + eax + 0x2abd]
+shl ecx, 8
+and ebx, 0xfe0ffff7
+or ebx, 0x1100008
+mov edx, 0xf
+lea eax, [ecx + 0x3074]
+mov dword [ebp - 0x1dc], eax
+add eax, dword [edi + 0x103f]
+mov dword [eax], ebx
+mov eax, edi
+mov dword [ebp - 0x200], ecx
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov ecx, dword [ebp - 0x200]
+mov dl, byte [edi + 0x1755]
+add ecx, 0x54
+mov byte [ebp - 0x1e4], dl
+mov dword [ebp - 0x1c4], ecx
+xor eax, eax
+jmp short loc_fffb41a0 ; jmp 0xfffb41a0
+
+loc_fffb4151: ; not directly referenced
+add edx, dword [ebp - 0x1c4]
+mov byte [ebp - 0x1f0], 0
+mov edx, dword [edx]
+movzx edx, dl
+mov word [ebp - 0x1c8], dx
+jmp short loc_fffb4177 ; jmp 0xfffb4177
+
+loc_fffb416c: ; not directly referenced
+lea ecx, [edx - 1]
+inc byte [ebp - 0x1f0]
+and edx, ecx
+
+loc_fffb4177: ; not directly referenced
+test edx, edx
+jne short loc_fffb416c ; jne 0xfffb416c
+mov edx, dword [ebp - 0x1d8]
+mov cl, byte [ebp - 0x1f0]
+neg ecx
+add dword [ebp - 0x1c4], 0x200
+mov byte [edx + eax], cl
+mov cl, byte [ebp - 0x1c8]
+and byte [esi + eax], cl
+inc eax
+
+loc_fffb41a0: ; not directly referenced
+cmp byte [ebp - 0x1e4], al
+mov edx, dword [edi + 0x103f]
+ja short loc_fffb4151 ; ja 0xfffb4151
+add edx, dword [ebp - 0x1dc]
+mov eax, ebx
+and eax, 0xfffffff7
+mov dword [edx], eax
+
+loc_fffb41bb: ; not directly referenced
+inc dword [ebp - 0x1c0]
+add dword [ebp - 0x1d8], 9
+add esi, 9
+cmp dword [ebp - 0x1c0], 2
+jne loc_fffb40d2 ; jne 0xfffb40d2
+mov eax, dword [edi + 0x103f]
+lea ebx, [edi + 0x2974]
+mov dword [ebp - 0x1c0], 0
+mov dword [ebp - 0x1f4], ebx
+mov dword [eax + 0x364c], 0x11111111
+
+loc_fffb41fe: ; not directly referenced
+imul eax, dword [ebp - 0x1c0], 0x1347
+mov esi, dword [ebp - 0x1ec]
+cmp dword [esi + eax + 0x12be], 2
+jne loc_fffb435c ; jne 0xfffb435c
+mov ecx, dword [ebp - 0x1f4]
+mov ebx, dword [ebp - 0x1c0]
+shl ebx, 8
+mov edx, 0xf
+lea eax, [ecx + eax + 8]
+mov dword [ebp - 0x1c4], eax
+mov esi, dword [eax + 0x141]
+mov eax, dword [edi + 0x103f]
+lea ecx, [ebx + 0x3074]
+add eax, ecx
+and esi, 0xfe0ffff7
+mov dword [ebp - 0x1c8], ecx
+or esi, 0x1100008
+add ebx, 0x54
+mov dword [eax], esi
+mov eax, edi
+call fcn_fffb2d76 ; call 0xfffb2d76
+imul eax, dword [ebp - 0x1c0], 9
+mov dword [ebp - 0x1e8], ebx
+lea ebx, [ebp - 0x18]
+add ebx, eax
+mov byte [ebp - 0x1d8], 0
+mov dword [ebp - 0x1dc], ebx
+jmp near loc_fffb4337 ; jmp 0xfffb4337
+
+loc_fffb4290: ; not directly referenced
+movzx eax, byte [ebp - 0x1d8]
+mov ecx, eax
+shl ecx, 9
+add ecx, dword [ebp - 0x1e8]
+add edx, ecx
+xor ecx, ecx
+mov ebx, dword [edx]
+mov edx, dword [ebp - 0x1dc]
+movzx ebx, bl
+mov dl, byte [eax + edx - 0x19e]
+mov word [ebp - 0x1fc], bx
+mov byte [ebp - 0x1e4], dl
+movzx edx, bx
+jmp short loc_fffb42d0 ; jmp 0xfffb42d0
+
+loc_fffb42ca: ; not directly referenced
+lea ebx, [edx - 1]
+inc ecx
+and edx, ebx
+
+loc_fffb42d0: ; not directly referenced
+test edx, edx
+jne short loc_fffb42ca ; jne 0xfffb42ca
+mov edx, dword [ebp - 0x1dc]
+add ecx, dword [ebp - 0x1e4]
+add edx, eax
+mov bl, byte [ebp - 0x1fc]
+or byte [edx - 0x168], bl
+cmp cl, byte [edx - 0x18c]
+mov byte [edx - 0x19e], cl
+jle short loc_fffb4323 ; jle 0xfffb4323
+mov byte [edx - 0x18c], cl
+mov ecx, dword [ebp - 0x1c4]
+mov bl, byte [ebp - 0x1e0]
+mov byte [edx - 0x17a], bl
+mov dl, byte [ebp - 0x1bc]
+mov byte [ecx + eax + 0x10d9], dl
+jmp short loc_fffb4331 ; jmp 0xfffb4331
+
+loc_fffb4323: ; not directly referenced
+jne short loc_fffb4331 ; jne 0xfffb4331
+mov bl, byte [ebp - 0x1e0]
+mov byte [edx - 0x17a], bl
+
+loc_fffb4331: ; not directly referenced
+inc byte [ebp - 0x1d8]
+
+loc_fffb4337: ; not directly referenced
+mov al, byte [ebp - 0x1d8]
+cmp al, byte [edi + 0x1755]
+mov edx, dword [edi + 0x103f]
+jb loc_fffb4290 ; jb 0xfffb4290
+add edx, dword [ebp - 0x1c8]
+mov eax, esi
+and eax, 0xfffffff7
+mov dword [edx], eax
+
+loc_fffb435c: ; not directly referenced
+inc dword [ebp - 0x1c0]
+cmp dword [ebp - 0x1c0], 2
+jne loc_fffb41fe ; jne 0xfffb41fe
+inc dword [ebp - 0x1bc]
+cmp dword [ebp - 0x1bc], 9
+jne loc_fffb4075 ; jne 0xfffb4075
+push 0
+xor ecx, ecx
+mov edx, 4
+push 0
+mov eax, edi
+lea ebx, [edi + 0x2974]
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+mov dword [ebp - 0x1bc], 0
+mov dword [ebp - 0x1dc], ebx
+
+loc_fffb43b9: ; not directly referenced
+imul esi, dword [ebp - 0x1bc], 0x1347
+mov ebx, dword [ebp - 0x1ec]
+mov dword [ebp - 0x1d8], esi
+cmp dword [ebx + esi + 0x12be], 2
+je short loc_fffb43ee ; je 0xfffb43ee
+
+loc_fffb43d9: ; not directly referenced
+inc dword [ebp - 0x1bc]
+cmp dword [ebp - 0x1bc], 2
+je loc_fffb44c2 ; je 0xfffb44c2
+jmp short loc_fffb43b9 ; jmp 0xfffb43b9
+
+loc_fffb43ee: ; not directly referenced
+imul eax, dword [ebp - 0x1bc], 9
+mov ebx, dword [ebp - 0x1dc]
+mov esi, dword [ebp - 0x1d8]
+mov byte [ebp - 0x1c0], 0
+lea esi, [ebx + esi + 8]
+lea ebx, [ebp - 0x18]
+add ebx, eax
+mov dword [ebp - 0x1c4], esi
+mov dword [ebp - 0x1c8], ebx
+jmp near loc_fffb44ab ; jmp 0xfffb44ab
+
+loc_fffb4422: ; not directly referenced
+movzx esi, byte [ebp - 0x1c0]
+mov eax, dword [ebp - 0x1c4]
+mov edx, dword [ebp - 0x1c8]
+mov bl, byte [eax + esi + 0x10d9]
+mov al, byte [esi + edx - 0x17a]
+mov dl, 2
+sub eax, ebx
+cbw
+idiv dl
+lea ecx, [ebx + eax]
+test cl, cl
+lea ebx, [ecx + 1]
+lea eax, [ecx - 1]
+cmovns eax, ebx
+mov ebx, dword [ebp - 0x1c4]
+cbw
+idiv dl
+mov byte [ebx + esi + 0x10d9], al
+xor ebx, ebx
+
+loc_fffb446c: ; not directly referenced
+mov edx, dword [ebp - 0x1d8]
+mov cl, bl
+mov eax, 1
+shl eax, cl
+test byte [edi + edx + 0x3acb], al
+je short loc_fffb449f ; je 0xfffb449f
+push eax
+mov ecx, ebx
+mov edx, dword [ebp - 0x1bc]
+push 0
+mov eax, edi
+push 0xff
+push esi
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffb449f: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffb446c ; jne 0xfffb446c
+inc byte [ebp - 0x1c0]
+
+loc_fffb44ab: ; not directly referenced
+mov bl, byte [ebp - 0x1c0]
+cmp bl, byte [edi + 0x1755]
+jb loc_fffb4422 ; jb 0xfffb4422
+jmp near loc_fffb43d9 ; jmp 0xfffb43d9
+
+loc_fffb44c2: ; not directly referenced
+xor ecx, ecx
+mov edx, 0xa2
+lea eax, [ebp - 0x15c]
+lea esi, [edi + 0x2974]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0xa2
+lea eax, [ebp - 0xba]
+call fcn_fffa119f ; call 0xfffa119f
+cmp dword [ebp - 0x1f8], 1
+mov dword [ebp - 0x1c0], 1
+sbb ebx, ebx
+mov dword [ebp - 0x1fc], esi
+add ebx, 9
+mov byte [ebp - 0x1d8], bl
+jmp near loc_fffb4700 ; jmp 0xfffb4700
+
+loc_fffb4513: ; not directly referenced
+mov edx, dword [ebp - 0x1c0]
+shl edx, cl
+add ecx, 4
+add eax, edx
+cmp ecx, 0x20
+jne short loc_fffb4513 ; jne 0xfffb4513
+mov edx, dword [edi + 0x103f]
+mov esi, dword [ebp - 0x1c0]
+and esi, 0xf
+lea ecx, [ebp - 0xba]
+shl esi, 9
+lea ebx, [ebp - 0x15c]
+mov dword [ebp - 0x1c8], ecx
+mov dword [ebp - 0x1c4], ebx
+mov dword [edx + 0x364c], eax
+mov dword [ebp - 0x1bc], 0
+mov dword [ebp - 0x1e0], esi
+
+loc_fffb4565: ; not directly referenced
+imul eax, dword [ebp - 0x1bc], 0x1347
+mov ebx, dword [ebp - 0x1ec]
+cmp dword [ebx + eax + 0x12be], 2
+jne loc_fffb46d0 ; jne 0xfffb46d0
+mov esi, dword [ebp - 0x1fc]
+cmp dword [ebp - 0x1f8], 0
+lea ebx, [esi + eax + 8]
+jne short loc_fffb45f3 ; jne 0xfffb45f3
+
+loc_fffb4596: ; not directly referenced
+mov esi, dword [ebx + 0x141]
+mov ebx, dword [ebp - 0x1bc]
+shl ebx, 8
+mov eax, dword [edi + 0x103f]
+and esi, 0xfe0ffff7
+mov edx, 0xf
+or esi, 0x1100008
+lea ecx, [ebx + 0x3074]
+add eax, ecx
+mov dword [ebp - 0x1e8], ecx
+add ebx, 0x54
+mov dword [eax], esi
+mov eax, edi
+call fcn_fffb2d76 ; call 0xfffb2d76
+movzx eax, byte [edi + 0x1755]
+mov dword [ebp - 0x1dc], ebx
+xor edx, edx
+lea eax, [eax + eax*8]
+mov dword [ebp - 0x1f0], eax
+jmp near loc_fffb46b1 ; jmp 0xfffb46b1
+
+loc_fffb45f3: ; not directly referenced
+mov esi, dword [ebp - 0x1bc]
+xor edx, edx
+shl esi, 8
+add esi, 0x64
+jmp short loc_fffb462c ; jmp 0xfffb462c
+
+loc_fffb4603: ; not directly referenced
+movzx ecx, dl
+inc edx
+mov eax, dword [ebx + ecx*4 + 0x169]
+shl ecx, 9
+and ah, 0xe1
+add ecx, esi
+add ecx, dword [edi + 0x103f]
+or eax, dword [ebp - 0x1e0]
+or eax, 0x60
+and eax, 0xfffffe7f
+mov dword [ecx], eax
+
+loc_fffb462c: ; not directly referenced
+cmp dl, byte [edi + 0x1755]
+jb short loc_fffb4603 ; jb 0xfffb4603
+jmp near loc_fffb4596 ; jmp 0xfffb4596
+
+loc_fffb4639: ; not directly referenced
+add eax, dword [ebp - 0x1dc]
+mov ebx, dword [ebp - 0x1c4]
+mov ecx, dword [ebp - 0x1c8]
+add ebx, edx
+add ecx, edx
+mov dword [ebp - 0x208], ebx
+mov dword [ebp - 0x1f4], ecx
+mov eax, dword [eax]
+and eax, 0x1ff
+mov dword [ebp - 0x204], eax
+xor eax, eax
+
+loc_fffb466a: ; not directly referenced
+mov ebx, dword [ebp - 0x204]
+bt ebx, eax
+jae short loc_fffb4686 ; jae 0xfffb4686
+mov ecx, dword [ebp - 0x1f4]
+mov bl, byte [ebp - 0x1e4]
+mov byte [ecx + eax], bl
+jmp short loc_fffb469b ; jmp 0xfffb469b
+
+loc_fffb4686: ; not directly referenced
+mov ebx, dword [ebp - 0x208]
+cmp byte [ebx + eax], 0
+jne short loc_fffb469b ; jne 0xfffb469b
+mov cl, byte [ebp - 0x1e4]
+mov byte [ebx + eax], cl
+
+loc_fffb469b: ; not directly referenced
+inc eax
+cmp byte [ebp - 0x1d8], al
+ja short loc_fffb466a ; ja 0xfffb466a
+add edx, 9
+add dword [ebp - 0x1dc], 0x200
+
+loc_fffb46b1: ; not directly referenced
+cmp edx, dword [ebp - 0x1f0]
+mov eax, dword [edi + 0x103f]
+jne loc_fffb4639 ; jne 0xfffb4639
+add eax, dword [ebp - 0x1e8]
+mov edx, esi
+and edx, 0xfffffff7
+mov dword [eax], edx
+
+loc_fffb46d0: ; not directly referenced
+inc dword [ebp - 0x1bc]
+add dword [ebp - 0x1c8], 0x51
+add dword [ebp - 0x1c4], 0x51
+cmp dword [ebp - 0x1bc], 2
+jne loc_fffb4565 ; jne 0xfffb4565
+inc dword [ebp - 0x1c0]
+cmp dword [ebp - 0x1c0], 0x10
+je short loc_fffb4715 ; je 0xfffb4715
+
+loc_fffb4700: ; not directly referenced
+mov bl, byte [ebp - 0x1c0]
+xor ecx, ecx
+mov byte [ebp - 0x1e4], bl
+xor eax, eax
+jmp near loc_fffb4513 ; jmp 0xfffb4513
+
+loc_fffb4715: ; not directly referenced
+lea ebx, [edi + 0x2974]
+xor esi, esi
+mov dword [ebp - 0x1f4], ebx
+
+loc_fffb4723: ; not directly referenced
+imul eax, esi, 0x1347
+mov ebx, dword [ebp - 0x1ec]
+cmp dword [ebx + eax + 0x12be], 2
+je short loc_fffb475f ; je 0xfffb475f
+
+loc_fffb4739: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffb4723 ; jne 0xfffb4723
+lea esi, [edi + 0x2974]
+mov eax, 0x3074
+mov dword [ebp - 0x1bc], 0
+mov dword [ebp - 0x1c4], esi
+jmp near loc_fffb48eb ; jmp 0xfffb48eb
+
+loc_fffb475f: ; not directly referenced
+mov ebx, dword [ebp - 0x1f4]
+mov byte [ebp - 0x1bc], 0
+lea eax, [ebx + eax + 8]
+mov dword [ebp - 0x1c0], eax
+imul ebx, esi, 0x51
+mov eax, esi
+shl eax, 8
+mov dword [ebp - 0x1f0], ebx
+add eax, 0x4c
+mov dword [ebp - 0x1e8], eax
+jmp near loc_fffb488b ; jmp 0xfffb488b
+
+loc_fffb4792: ; not directly referenced
+mov eax, dword [ebp - 0x1dc]
+mov ecx, dword [ebp - 0x1e0]
+movsx edx, byte [eax + ebx]
+mov cl, byte [ecx + ebx]
+test dl, dl
+mov byte [ebp - 0x208], cl
+mov al, 0xf
+je short loc_fffb47d0 ; je 0xfffb47d0
+movsx eax, cl
+mov ecx, 2
+add eax, edx
+cdq
+mov dword [ebp - 0x1fc], eax
+idiv ecx
+mov dword [ebp - 0x204], eax
+mov al, byte [ebp - 0x204]
+
+loc_fffb47d0: ; not directly referenced
+cmp byte [ebp - 0x208], 0
+mov dl, 0
+cmove eax, edx
+cmp dword [ebp - 0x1f8], 0
+je short loc_fffb4819 ; je 0xfffb4819
+cmp bl, 8
+jne short loc_fffb4819 ; jne 0xfffb4819
+cmp al, 6
+mov dl, 0xf
+jg short loc_fffb47f6 ; jg 0xfffb47f6
+lea edx, [eax + 8]
+and edx, 0xf
+
+loc_fffb47f6: ; not directly referenced
+mov ecx, dword [ebp - 0x1c8]
+mov ebx, dword [ebp - 0x1c0]
+add ecx, 0x58
+and edx, 0xf
+add edx, edx
+mov al, byte [ebx + ecx*4 + 0xa]
+and eax, 0xffffffe1
+or eax, edx
+mov byte [ebx + ecx*4 + 0xa], al
+jmp short loc_fffb484a ; jmp 0xfffb484a
+
+loc_fffb4819: ; not directly referenced
+lea ecx, [ebx*4]
+mov edx, eax
+and edx, 0xf
+shl edx, cl
+mov ecx, dword [ebp - 0x1e4]
+add dword [ebp - 0x1c4], edx
+lea edx, [ebx + ebx*2]
+inc ebx
+cmp byte [ebp - 0x1d8], bl
+mov byte [ecx + edx + 0x9fe], al
+ja loc_fffb4792 ; ja 0xfffb4792
+
+loc_fffb484a: ; not directly referenced
+mov eax, dword [ebp - 0x1c8]
+sub esp, 0xc
+shl eax, 9
+add eax, dword [ebp - 0x1e8]
+add eax, dword [edi + 0x103f]
+mov ebx, dword [ebp - 0x1c4]
+mov ecx, 1
+mov edx, esi
+mov dword [eax], ebx
+mov eax, edi
+push 0
+push 1
+push 0
+push 0
+push 0
+call fcn_fffb00a3 ; call 0xfffb00a3
+inc byte [ebp - 0x1bc]
+add esp, 0x20
+
+loc_fffb488b: ; not directly referenced
+mov bl, byte [ebp - 0x1bc]
+cmp bl, byte [edi + 0x1755]
+jae loc_fffb4739 ; jae 0xfffb4739
+movzx eax, bl
+lea ebx, [ebp - 0x15c]
+lea edx, [eax + eax*8]
+add edx, dword [ebp - 0x1f0]
+add ebx, edx
+mov dword [ebp - 0x1c4], 0
+mov dword [ebp - 0x1dc], ebx
+lea ebx, [ebp - 0xba]
+add ebx, edx
+mov dword [ebp - 0x1c8], eax
+imul edx, eax, 0x18
+add edx, dword [ebp - 0x1c0]
+mov dword [ebp - 0x1e0], ebx
+mov dword [ebp - 0x1e4], edx
+xor ebx, ebx
+jmp near loc_fffb4792 ; jmp 0xfffb4792
+
+loc_fffb48eb: ; not directly referenced
+imul edx, dword [ebp - 0x1bc], 0x1347
+mov esi, dword [ebp - 0x1ec]
+cmp dword [esi + edx + 0x12be], 2
+jne short loc_fffb4967 ; jne 0xfffb4967
+mov ecx, dword [ebp - 0x1c4]
+lea esi, [eax - 0x3010]
+mov dword [ebp - 0x1d8], esi
+lea ebx, [ecx + edx + 8]
+xor edx, edx
+jmp short loc_fffb4949 ; jmp 0xfffb4949
+
+loc_fffb491f: ; not directly referenced
+movzx esi, dl
+inc edx
+mov ecx, dword [ebx + esi*4 + 0x169]
+shl esi, 9
+mov dword [ebp - 0x1c0], ecx
+add esi, dword [ebp - 0x1d8]
+mov ecx, dword [ebp - 0x1c8]
+add ecx, esi
+mov esi, dword [ebp - 0x1c0]
+mov dword [ecx], esi
+
+loc_fffb4949: ; not directly referenced
+mov ecx, dword [edi + 0x103f]
+cmp dl, byte [edi + 0x1755]
+mov dword [ebp - 0x1c8], ecx
+jb short loc_fffb491f ; jb 0xfffb491f
+add ecx, eax
+mov edx, dword [ebx + 0x141]
+mov dword [ecx], edx
+
+loc_fffb4967: ; not directly referenced
+inc dword [ebp - 0x1bc]
+add eax, 0x100
+cmp dword [ebp - 0x1bc], 2
+jne loc_fffb48eb ; jne 0xfffb48eb
+mov eax, edi
+call fcn_fffb8e01 ; call 0xfffb8e01
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb498e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x30]
+mov esi, ref_fffcbb50 ; mov esi, 0xfffcbb50
+push ebx
+lea esp, [esp - 0x6c]
+mov byte [ebp - 0x5e], cl
+mov cl, byte [ebp + 0x14]
+mov dword [ebp - 0x4c], eax
+mov byte [ebp - 0x6c], dl
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x5d], cl
+mov ecx, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+movzx esi, byte [ebp - 0x6c]
+mov byte [ebp - 0x68], al
+imul eax, esi, 0x1347
+mov dl, byte [ebp + 0xc]
+mov byte [ebp - 0x50], dl
+mov edx, dword [ebp - 0x4c]
+mov cl, 0xc
+mov ebx, dword [ebp + 0x10]
+mov word [ebp - 0x3c], 0
+mov word [ebp - 0x3a], 2
+mov word [ebp - 0x38], 1
+mov word [ebp - 0x40], 0
+lea eax, [edx + eax + 0x297c]
+lea edx, [ebp - 0x30]
+mov dword [ebp - 0x5c], eax
+lea eax, [ebp - 0x24]
+mov word [ebp - 0x3e], 2
+mov byte [ebp - 0x46], 1
+mov byte [ebp - 0x45], 2
+mov byte [ebp - 0x44], 3
+mov byte [ebp - 0x43], 0
+mov byte [ebp - 0x42], 2
+mov byte [ebp - 0x41], 3
+mov dword [ebp - 0x54], esi
+call fcn_fffa115e ; call 0xfffa115e
+mov ecx, 6
+lea edx, [ebp - 0x3c]
+lea eax, [ebp - 0x36]
+call fcn_fffa115e ; call 0xfffa115e
+mov eax, dword [ebp - 0x4c]
+xor edx, edx
+cmp dword [eax + 0x1749], 2
+sete dl
+cmp byte [ebp - 0x50], 3
+sete cl
+cmp byte [ebp - 0x50], 1
+setbe al
+mov dword [ebp - 0x70], edx
+or al, cl
+jne loc_fffb500a ; jne 0xfffb500a
+mov al, byte [ebp - 0x50]
+and eax, 0xfffffff7
+cmp al, 2
+je loc_fffb500a ; je 0xfffb500a
+jmp near loc_fffb4b23 ; jmp 0xfffb4b23
+
+loc_fffb4a6d: ; not directly referenced
+cmp bx, ax
+cmovl ebx, eax
+jmp short loc_fffb4a77 ; jmp 0xfffb4a77
+
+loc_fffb4a75: ; not directly referenced
+mov ebx, edx
+
+loc_fffb4a77: ; not directly referenced
+movzx edx, byte [ebp - 0x68]
+mov esi, dword [ebp - 0x5c]
+cmp byte [ebp - 0x50], 0
+mov eax, dword [esi + edx*4 + 0x11d]
+jne short loc_fffb4aa0 ; jne 0xfffb4aa0
+mov ecx, ebx
+and eax, 0xfffff000
+and ecx, 0x3f
+mov esi, ecx
+or eax, ecx
+shl esi, 6
+or eax, esi
+jmp short loc_fffb4ae1 ; jmp 0xfffb4ae1
+
+loc_fffb4aa0: ; not directly referenced
+cmp byte [ebp - 0x50], 1
+jne short loc_fffb4abc ; jne 0xfffb4abc
+mov ecx, ebx
+and eax, 0xffc00fff
+and ecx, 0x1f
+mov esi, ecx
+shl esi, 0xc
+shl ecx, 0x11
+or eax, esi
+jmp short loc_fffb4adf ; jmp 0xfffb4adf
+
+loc_fffb4abc: ; not directly referenced
+test cl, cl
+je short loc_fffb4acf ; je 0xfffb4acf
+mov ecx, ebx
+and eax, 0xf83fffff
+and ecx, 0x1f
+shl ecx, 0x16
+jmp short loc_fffb4adf ; jmp 0xfffb4adf
+
+loc_fffb4acf: ; not directly referenced
+cmp byte [ebp - 0x50], 2
+jne short loc_fffb4ae1 ; jne 0xfffb4ae1
+mov ecx, ebx
+and eax, 0x7ffffff
+shl ecx, 0x1b
+
+loc_fffb4adf: ; not directly referenced
+or eax, ecx
+
+loc_fffb4ae1: ; not directly referenced
+mov esi, edx
+mov ecx, dword [ebp - 0x54]
+shl esi, 9
+shl ecx, 8
+lea ecx, [esi + ecx + 0x5c]
+mov esi, dword [ebp - 0x4c]
+add ecx, dword [esi + 0x103f]
+cmp byte [ebp - 0x5d], 0
+mov dword [ecx], eax
+je short loc_fffb4b0b ; je 0xfffb4b0b
+mov esi, dword [ebp - 0x5c]
+mov dword [esi + edx*4 + 0x11d], eax
+
+loc_fffb4b0b: ; not directly referenced
+mov edx, dword [ebp - 0x4c]
+mov eax, dword [edx + 0x1762]
+mov edx, dword [edx + 0x103f]
+or eax, 0x20
+mov dword [edx + 0x2008], eax
+
+loc_fffb4b23: ; not directly referenced
+cmp byte [ebp - 0x50], 0xa
+mov al, byte [ebp - 0x50]
+sete byte [ebp - 0x64]
+sub eax, 4
+cmp al, 1
+setbe al
+or al, byte [ebp - 0x64]
+je loc_fffb4c83 ; je 0xfffb4c83
+movzx esi, byte [ebp - 0x68]
+mov eax, dword [ebp - 0x5c]
+movzx edx, byte [ebp - 0x5e]
+xor edi, edi
+mov dword [ebp - 0x78], edx
+lea eax, [eax + esi + 0x309]
+mov dword [ebp - 0x58], eax
+imul eax, dword [ebp - 0x54], 0x1347
+add eax, dword [ebp - 0x4c]
+mov dword [ebp - 0x74], eax
+
+loc_fffb4b66: ; not directly referenced
+mov edx, dword [ebp - 0x74]
+mov ecx, edi
+mov eax, 1
+shl eax, cl
+test byte [edx + 0x3acb], al
+je loc_fffb4c75 ; je 0xfffb4c75
+mov ecx, dword [ebp - 0x78]
+bt ecx, edi
+jae loc_fffb4c75 ; jae 0xfffb4c75
+cmp byte [ebp - 0x50], 4
+jne short loc_fffb4bde ; jne 0xfffb4bde
+cmp bx, 0xb
+jg short loc_fffb4ba3 ; jg 0xfffb4ba3
+test bx, bx
+mov eax, 0
+cmovs ebx, eax
+jmp short loc_fffb4ba8 ; jmp 0xfffb4ba8
+
+loc_fffb4ba3: ; not directly referenced
+mov ebx, 0xb
+
+loc_fffb4ba8: ; not directly referenced
+mov eax, ebx
+mov ecx, edi
+push edx
+or eax, 0x30
+mov edx, dword [ebp - 0x54]
+mov word [ebp - 0x60], ax
+cwde
+push eax
+mov eax, dword [ebp - 0x4c]
+push 2
+push esi
+call fcn_fffb02b4 ; call 0xfffb02b4
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je loc_fffb4c75 ; je 0xfffb4c75
+mov ecx, dword [ebp - 0x58]
+mov dl, byte [ebp - 0x60]
+mov byte [ecx], dl
+jmp near loc_fffb4c75 ; jmp 0xfffb4c75
+
+loc_fffb4bde: ; not directly referenced
+cmp byte [ebp - 0x50], 5
+jne short loc_fffb4c3e ; jne 0xfffb4c3e
+cmp bx, 0x13
+jg short loc_fffb4bf7 ; jg 0xfffb4bf7
+test bx, bx
+mov eax, 0
+cmovs ebx, eax
+jmp short loc_fffb4bfc ; jmp 0xfffb4bfc
+
+loc_fffb4bf7: ; not directly referenced
+mov ebx, 0x13
+
+loc_fffb4bfc: ; not directly referenced
+mov edx, ebx
+mov ecx, 5
+sar dx, 0xf
+mov eax, ebx
+idiv cx
+mov ecx, edi
+lea edx, [edx + eax*8]
+mov byte [ebp - 0x60], dl
+push eax
+movzx eax, dl
+mov edx, dword [ebp - 0x54]
+push eax
+mov eax, dword [ebp - 0x4c]
+push 2
+push esi
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je short loc_fffb4c75 ; je 0xfffb4c75
+mov edx, dword [ebp - 0x58]
+mov al, byte [ebp - 0x60]
+mov byte [edx + 0xdd9], al
+jmp short loc_fffb4c75 ; jmp 0xfffb4c75
+
+loc_fffb4c3e: ; not directly referenced
+cmp byte [ebp - 0x64], 0
+je short loc_fffb4c75 ; je 0xfffb4c75
+push ecx
+mov edx, dword [ebp - 0x54]
+mov ecx, edi
+push 0
+mov eax, dword [ebp - 0x4c]
+push 0xff
+push esi
+call fcn_fffb02b4 ; call 0xfffb02b4
+add esp, 0xc
+mov ecx, edi
+push 0
+mov edx, dword [ebp - 0x54]
+mov eax, dword [ebp - 0x4c]
+push 0xff
+push esi
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffb4c75: ; not directly referenced
+inc edi
+add dword [ebp - 0x58], 9
+cmp edi, 4
+jne loc_fffb4b66 ; jne 0xfffb4b66
+
+loc_fffb4c83: ; not directly referenced
+cmp byte [ebp - 0x50], 6
+mov al, byte [ebp - 0x64]
+sete cl
+or al, cl
+je short loc_fffb4cf2 ; je 0xfffb4cf2
+cmp bx, 7
+jg short loc_fffb4ca4 ; jg 0xfffb4ca4
+test bx, bx
+mov eax, 0
+cmovs ebx, eax
+jmp short loc_fffb4ca9 ; jmp 0xfffb4ca9
+
+loc_fffb4ca4: ; not directly referenced
+mov ebx, 7
+
+loc_fffb4ca9: ; not directly referenced
+movzx edx, byte [ebp - 0x68]
+mov esi, dword [ebp - 0x5c]
+test cl, cl
+mov eax, dword [esi + edx*4 + 0x145]
+je short loc_fffb4cc8 ; je 0xfffb4cc8
+mov ecx, ebx
+and ah, 0xe3
+and ecx, 7
+shl ecx, 0xa
+or eax, ecx
+
+loc_fffb4cc8: ; not directly referenced
+mov esi, edx
+mov ecx, dword [ebp - 0x54]
+shl esi, 9
+shl ecx, 8
+lea ecx, [esi + ecx + 0x60]
+mov esi, dword [ebp - 0x4c]
+add ecx, dword [esi + 0x103f]
+cmp byte [ebp - 0x5d], 0
+mov dword [ecx], eax
+je short loc_fffb4cf2 ; je 0xfffb4cf2
+mov esi, dword [ebp - 0x5c]
+mov dword [esi + edx*4 + 0x145], eax
+
+loc_fffb4cf2: ; not directly referenced
+cmp byte [ebp - 0x50], 9
+je short loc_fffb4d0b ; je 0xfffb4d0b
+
+loc_fffb4cf8: ; not directly referenced
+mov al, byte [ebp - 0x50]
+sub eax, 7
+cmp al, 1
+ja loc_fffb5030 ; ja 0xfffb5030
+jmp near loc_fffb4e58 ; jmp 0xfffb4e58
+
+loc_fffb4d0b: ; not directly referenced
+cmp dword [ebp - 0x70], 0
+je loc_fffb4dbf ; je 0xfffb4dbf
+movzx edx, bl
+mov eax, 2
+cmp dl, 2
+cmovbe eax, edx
+xor edi, edi
+imul edx, dword [ebp - 0x54], 0x1347
+add edx, dword [ebp - 0x4c]
+mov dword [ebp - 0x64], edx
+mov dword [ebp - 0x68], eax
+
+loc_fffb4d35: ; not directly referenced
+mov esi, dword [ebp - 0x64]
+mov ecx, edi
+mov eax, 1
+mov edx, edi
+shl eax, cl
+test byte [esi + 0x3acb], al
+je short loc_fffb4db0 ; je 0xfffb4db0
+test byte [ebp - 0x5e], al
+je short loc_fffb4db0 ; je 0xfffb4db0
+shr dl, 1
+mov eax, edi
+and eax, 1
+mov esi, dword [ebp - 0x5c]
+movzx edx, dl
+mov ecx, edi
+imul edx, edx, 0xfb
+imul eax, eax, 0xa
+lea eax, [eax + edx + 0x1230]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x58], eax
+mov edx, dword [ebp - 0x58]
+mov eax, dword [ebp - 0x68]
+movzx esi, byte [ebp + eax - 0x46]
+mov ax, word [edx + 6]
+push 0
+movzx edx, byte [ebp - 0x6c]
+and eax, 0xfffffff0
+push 0
+or esi, eax
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x4c]
+push 3
+call fcn_fffb8fda ; call 0xfffb8fda
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je short loc_fffb4db0 ; je 0xfffb4db0
+mov ecx, dword [ebp - 0x58]
+mov word [ecx + 6], si
+
+loc_fffb4db0: ; not directly referenced
+inc edi
+cmp edi, 4
+jne loc_fffb4d35 ; jne 0xfffb4d35
+jmp near loc_fffb4cf8 ; jmp 0xfffb4cf8
+
+loc_fffb4dbf: ; not directly referenced
+xor eax, eax
+test bl, bl
+setne al
+xor edi, edi
+mov ax, word [ebp + eax*2 - 0x40]
+mov word [ebp - 0x64], ax
+imul eax, dword [ebp - 0x54], 0x1347
+add eax, dword [ebp - 0x4c]
+mov dword [ebp - 0x68], eax
+
+loc_fffb4dde: ; not directly referenced
+mov esi, dword [ebp - 0x68]
+mov ecx, edi
+mov eax, 1
+mov edx, edi
+shl eax, cl
+test byte [esi + 0x3acb], al
+je short loc_fffb4e4d ; je 0xfffb4e4d
+test byte [ebp - 0x5e], al
+je short loc_fffb4e4d ; je 0xfffb4e4d
+shr dl, 1
+mov ecx, edi
+and ecx, 1
+mov esi, dword [ebp - 0x5c]
+movzx edx, dl
+imul ecx, ecx, 0xa
+imul edx, edx, 0xfb
+lea edx, [ecx + edx + 0x1230]
+movzx ecx, al
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x58], edx
+mov si, word [edx + 2]
+push edx
+and esi, 0xffffffdd
+or esi, dword [ebp - 0x64]
+push edx
+movzx eax, si
+mov edx, dword [ebp - 0x54]
+push eax
+mov eax, dword [ebp - 0x4c]
+push 1
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je short loc_fffb4e4d ; je 0xfffb4e4d
+mov eax, dword [ebp - 0x58]
+mov word [eax + 2], si
+
+loc_fffb4e4d: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffb4dde ; jne 0xfffb4dde
+jmp near loc_fffb4cf8 ; jmp 0xfffb4cf8
+
+loc_fffb4e58: ; not directly referenced
+cmp dword [ebp - 0x70], 0
+je loc_fffb4efd ; je 0xfffb4efd
+movzx edx, bl
+mov eax, 2
+cmp dl, 2
+cmovbe eax, edx
+xor ebx, ebx
+imul edx, dword [ebp - 0x54], 0x1347
+add edx, dword [ebp - 0x4c]
+mov dword [ebp - 0x50], edx
+mov dword [ebp - 0x54], eax
+
+loc_fffb4e82: ; not directly referenced
+mov esi, dword [ebp - 0x50]
+mov cl, bl
+mov eax, 1
+mov dl, bl
+shl eax, cl
+test byte [esi + 0x3acb], al
+je short loc_fffb4ef2 ; je 0xfffb4ef2
+test byte [ebp - 0x5e], al
+je short loc_fffb4ef2 ; je 0xfffb4ef2
+shr dl, 1
+mov eax, ebx
+and eax, 1
+mov esi, dword [ebp - 0x5c]
+movzx edx, dl
+mov ecx, ebx
+imul eax, eax, 0xa
+imul edx, edx, 0xfb
+add edx, eax
+lea edi, [esi + edx + 0x1230]
+mov edx, dword [ebp - 0x54]
+movzx esi, byte [ebp + edx - 0x43]
+movzx edx, byte [ebp - 0x6c]
+mov ax, word [edi + 0x10]
+push 0
+and eax, 0xfffffffc
+push 0
+or esi, eax
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x4c]
+push 0xb
+call fcn_fffb8fda ; call 0xfffb8fda
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je short loc_fffb4ef2 ; je 0xfffb4ef2
+mov word [edi + 0x10], si
+
+loc_fffb4ef2: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffb4e82 ; jne 0xfffb4e82
+jmp near loc_fffb5030 ; jmp 0xfffb5030
+
+loc_fffb4efd: ; not directly referenced
+mov edx, ebx
+mov al, 2
+sar dx, 4
+cmp byte [ebp - 0x50], 7
+mov dword [ebp - 0x58], 0
+cmovne edx, ebx
+cmp dl, 2
+cmovbe eax, edx
+and ebx, 0xf
+movzx eax, al
+mov word [ebp - 0x68], bx
+mov dword [ebp - 0x64], eax
+imul eax, dword [ebp - 0x54], 0x1347
+add eax, dword [ebp - 0x4c]
+mov dword [ebp - 0x6c], eax
+
+loc_fffb4f33: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+mov dl, byte [ebp - 0x58]
+mov cl, dl
+mov eax, 1
+shl eax, cl
+test byte [esi + 0x3acb], al
+je loc_fffb4ffb ; je 0xfffb4ffb
+test byte [ebp - 0x5e], al
+je loc_fffb4ffb ; je 0xfffb4ffb
+mov ecx, dword [ebp - 0x58]
+mov esi, dword [ebp - 0x5c]
+shr dl, 1
+and ecx, 1
+movzx edx, dl
+movzx ebx, al
+imul ecx, ecx, 0xa
+imul edx, edx, 0xfb
+lea edx, [ecx + edx + 0x1230]
+lea edi, [esi + edx + 8]
+mov edx, dword [ebp - 0x64]
+mov si, word [ebp + edx*2 - 0x36]
+mov dx, word [edi + 4]
+push ecx
+shl esi, 9
+and dh, 0xf9
+push ecx
+or esi, edx
+mov ecx, ebx
+movzx eax, si
+mov edx, dword [ebp - 0x54]
+push eax
+mov eax, dword [ebp - 0x4c]
+push 2
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je short loc_fffb4fb2 ; je 0xfffb4fb2
+mov word [edi + 4], si
+
+loc_fffb4fb2: ; not directly referenced
+cmp byte [ebp - 0x50], 8
+je short loc_fffb4ffb ; je 0xfffb4ffb
+movzx edx, byte [ebp - 0x68]
+mov eax, 5
+cmp dl, 5
+mov ecx, ebx
+cmovbe eax, edx
+mov si, word [ebp + eax*2 - 0x24]
+mov ax, word [edi + 2]
+push edx
+shl esi, 2
+and ax, 0xfdbb
+push edx
+or esi, eax
+mov edx, dword [ebp - 0x54]
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x4c]
+push 1
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+cmp byte [ebp - 0x5d], 0
+je short loc_fffb4ffb ; je 0xfffb4ffb
+mov word [edi + 2], si
+
+loc_fffb4ffb: ; not directly referenced
+inc dword [ebp - 0x58]
+cmp dword [ebp - 0x58], 4
+jne loc_fffb4f33 ; jne 0xfffb4f33
+jmp short loc_fffb5030 ; jmp 0xfffb5030
+
+loc_fffb500a: ; not directly referenced
+cmp byte [ebp - 0x50], 1
+sbb edx, edx
+and edx, 0x10
+add edx, 0xf
+cmp byte [ebp - 0x50], 1
+sbb eax, eax
+and eax, 0xfffffff0
+sub eax, 0x10
+cmp bx, dx
+jg loc_fffb4a75 ; jg 0xfffb4a75
+jmp near loc_fffb4a6d ; jmp 0xfffb4a6d
+
+loc_fffb5030: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb5038:
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, edx
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x1c]
+mov eax, dword [eax + 0x103f]
+test edx, edx
+mov dword [ebp - 0x24], ecx
+mov edi, dword [eax + 0x5e00]
+mov eax, dword [eax + 0x5e04]
+mov dword [ebp - 0x20], edi
+mov dword [ebp - 0x1c], eax
+je short loc_fffb50cb ; je 0xfffb50cb
+mov edx, edi
+mov eax, dword [ebx + 0xff9]
+shr edx, 4
+mov edi, 0x186a0
+and edx, 0xf
+test eax, eax
+mov byte [ebp - 0x25], dl
+mov edx, 0x5f5e100
+cmove eax, edx
+xor edx, edx
+div edi
+mov ecx, 0x3b9aca00
+cmp byte [ebp - 0x25], 1
+mov edx, 0x4f790d55
+cmovne ecx, edx
+mov edx, dword [ebp - 0x1c]
+and edx, 0xf
+mul edx
+mov edi, edx
+imul edi, ecx
+mul ecx
+xor ecx, ecx
+add edx, edi
+mov edi, edx
+or edi, eax
+je short loc_fffb50c9 ; je 0xfffb50c9
+push edx
+push eax
+push 0x8ac72304
+push 0x89e80000
+call fcn_fffc91d0 ; call 0xfffc91d0
+mov ecx, eax
+add esp, 0x10
+
+loc_fffb50c9:
+mov dword [esi], ecx
+
+loc_fffb50cb:
+cmp dword [ebp - 0x24], 0
+je short loc_fffb50dc ; je 0xfffb50dc
+mov edx, dword [ebp - 0x24]
+mov al, byte [ebp - 0x1c]
+and eax, 0xf
+mov byte [edx], al
+
+loc_fffb50dc:
+cmp dword [ebp + 8], 0
+je short loc_fffb50f0 ; je 0xfffb50f0
+mov edi, dword [ebp + 8]
+mov eax, dword [ebp - 0x20]
+shr eax, 4
+and eax, 0xf
+mov dword [edi], eax
+
+loc_fffb50f0:
+mov ecx, dword [ebp - 0x20]
+mov edx, dword [ebx + 0xff9]
+shr ecx, 4
+mov eax, 0x5f5e100
+and ecx, 0xf
+test edx, edx
+push 0x5af3
+cmovne eax, edx
+dec cl
+mov edx, 0xbebc200
+mov ecx, 0xfe502ab
+cmovne edx, ecx
+mov ecx, dword [ebp - 0x1c]
+and ecx, 0xf
+imul eax, ecx
+mul edx
+add eax, 0x883d2000
+push 0x107a4000
+adc edx, 0x2d79
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffb514a:
+db 0x00
+db 0x00
+
+fcn_fffb514c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea eax, [ebp - 0x2d]
+lea edx, [ebp - 0x2a]
+push ebx
+lea esp, [esp - 0x6c]
+mov byte [ebp - 0x2d], 0
+mov esi, dword [ebp + 8]
+mov byte [ebp - 0x2c], 1
+mov byte [ebp - 0x2b], 2
+mov dword [ebp - 0x5c], eax
+mov dword [ebp - 0x3c], edx
+
+loc_fffb5171: ; not directly referenced
+mov ecx, dword [ebp - 0x5c]
+lea eax, [esi + 0x16be]
+mov edx, dword [esi + 0x175a]
+mov dword [ebp - 0x60], eax
+mov eax, dword [esi + 0x1756]
+mov cl, byte [ecx]
+cmp cl, 1
+mov byte [ebp - 0x41], cl
+je short loc_fffb51d7 ; je 0xfffb51d7
+jb short loc_fffb51a0 ; jb 0xfffb51a0
+cmp cl, 2
+jne loc_fffb523e ; jne 0xfffb523e
+jmp short loc_fffb520a ; jmp 0xfffb520a
+
+loc_fffb51a0: ; not directly referenced
+mov edx, dword [esi + 0x103f]
+mov byte [ebp - 0x4e], 0
+shr eax, 0xb
+mov byte [ebp - 0x4f], 0xf8
+and eax, 0xf
+mov byte [ebp - 0x50], 7
+mov byte [ebp - 0x4d], 1
+mov edx, dword [edx + 0x3a00]
+and edx, 0x3f
+mov byte [ebp - 0x42], dl
+mov dl, al
+or edx, 0xfffffff0
+test al, 8
+cmovne eax, edx
+mov byte [ebp - 0x4c], al
+jmp short loc_fffb5256 ; jmp 0xfffb5256
+
+loc_fffb51d7: ; not directly referenced
+mov edx, dword [esi + 0x103f]
+mov byte [ebp - 0x4e], 0
+shr eax, 0xf
+mov byte [ebp - 0x4f], 0xf0
+and eax, 0x1f
+mov byte [ebp - 0x50], 0xf
+mov edx, dword [edx + 0x3a04]
+and edx, 0x3f
+mov byte [ebp - 0x42], dl
+mov dl, al
+or edx, 0xffffffe0
+test al, 0x10
+cmovne eax, edx
+mov byte [ebp - 0x4c], al
+jmp short loc_fffb5252 ; jmp 0xfffb5252
+
+loc_fffb520a: ; not directly referenced
+mov eax, dword [esi + 0x103f]
+mov byte [ebp - 0x4f], 4
+mov byte [ebp - 0x50], 0xf
+mov byte [ebp - 0x4d], 5
+mov eax, dword [eax + 0x3a00]
+shr eax, 0x1a
+and eax, 0x1f
+mov byte [ebp - 0x42], al
+mov eax, edx
+shr eax, 4
+and edx, 0xf
+and eax, 1
+mov byte [ebp - 0x4c], dl
+mov byte [ebp - 0x4e], al
+jmp short loc_fffb5256 ; jmp 0xfffb5256
+
+loc_fffb523e: ; not directly referenced
+mov byte [ebp - 0x4e], 0
+mov byte [ebp - 0x4f], 0
+mov byte [ebp - 0x50], 0
+mov byte [ebp - 0x42], 0
+mov byte [ebp - 0x4c], 0
+
+loc_fffb5252: ; not directly referenced
+mov byte [ebp - 0x4d], 0
+
+loc_fffb5256: ; not directly referenced
+lea edx, [ebp - 0x2a]
+mov dword [ebp - 0x40], 0
+mov dword [ebp - 0x54], edx
+xor eax, eax
+xor ebx, ebx
+mov word [ebp - 0x44], 0
+mov byte [ebp - 0x58], 0
+
+loc_fffb5271: ; not directly referenced
+imul edx, dword [ebp - 0x40], 0x1347
+mov ecx, dword [ebp - 0x60]
+cmp dword [ecx + edx + 0x12be], 2
+jne loc_fffb5345 ; jne 0xfffb5345
+lea edx, [esi + edx + 0x297c]
+mov dword [ebp - 0x6c], edx
+mov dl, byte [esi + 0x1755]
+xor edi, edi
+mov byte [ebp - 0x66], dl
+jmp near loc_fffb5337 ; jmp 0xfffb5337
+
+loc_fffb52a3: ; not directly referenced
+mov ecx, dword [ebp - 0x6c]
+cmp byte [ebp - 0x41], 0
+mov edx, dword [ecx + edi*4 + 0x11d]
+jne short loc_fffb52bc ; jne 0xfffb52bc
+mov bl, dl
+mov al, 6
+and ebx, 0x3f
+jmp short loc_fffb52d9 ; jmp 0xfffb52d9
+
+loc_fffb52bc: ; not directly referenced
+cmp byte [ebp - 0x41], 1
+jne short loc_fffb52cc ; jne 0xfffb52cc
+shr edx, 0xc
+mov bl, dl
+and ebx, 0x1f
+jmp short loc_fffb52d7 ; jmp 0xfffb52d7
+
+loc_fffb52cc: ; not directly referenced
+cmp byte [ebp - 0x41], 2
+jne short loc_fffb52d9 ; jne 0xfffb52d9
+mov ebx, edx
+shr ebx, 0x1b
+
+loc_fffb52d7: ; not directly referenced
+mov al, 5
+
+loc_fffb52d9: ; not directly referenced
+movzx edx, al
+mov ecx, 8
+sub ecx, edx
+mov dword [ebp - 0x64], edx
+mov edx, 1
+shl edx, cl
+mov cl, al
+dec edx
+shl edx, cl
+mov ecx, dword [ebp - 0x64]
+dec ecx
+mov dword [ebp - 0x48], edx
+mov byte [ebp - 0x65], dl
+movzx edx, bl
+sar edx, cl
+test edx, edx
+je short loc_fffb530c ; je 0xfffb530c
+mov cl, byte [ebp - 0x65]
+or ecx, ebx
+jmp short loc_fffb5313 ; jmp 0xfffb5313
+
+loc_fffb530c: ; not directly referenced
+mov cl, byte [ebp - 0x48]
+not ecx
+and ecx, ebx
+
+loc_fffb5313: ; not directly referenced
+movsx cx, cl
+add word [ebp - 0x44], cx
+test edx, edx
+je short loc_fffb5326 ; je 0xfffb5326
+mov dl, byte [ebp - 0x65]
+or edx, ebx
+jmp short loc_fffb532d ; jmp 0xfffb532d
+
+loc_fffb5326: ; not directly referenced
+mov dl, byte [ebp - 0x48]
+not edx
+and edx, ebx
+
+loc_fffb532d: ; not directly referenced
+mov ecx, dword [ebp - 0x54]
+add dl, byte [ebp - 0x42]
+mov byte [ecx + edi], dl
+inc edi
+
+loc_fffb5337: ; not directly referenced
+mov edx, edi
+cmp byte [ebp - 0x66], dl
+ja loc_fffb52a3 ; ja 0xfffb52a3
+inc byte [ebp - 0x58]
+
+loc_fffb5345: ; not directly referenced
+inc dword [ebp - 0x40]
+add dword [ebp - 0x54], 9
+cmp dword [ebp - 0x40], 2
+jne loc_fffb5271 ; jne 0xfffb5271
+movsx eax, word [ebp - 0x44]
+mov edi, dword [ebp - 0x44]
+sar di, 0xf
+mov dword [ebp - 0x48], eax
+movzx ebx, byte [ebp - 0x58]
+or edi, 1
+movzx ecx, byte [esi + 0x1755]
+mov edx, edi
+movsx eax, dl
+imul eax, ebx
+imul eax, ecx
+imul ecx, ebx
+cdq
+idiv dword [ebp - 0x40]
+add eax, dword [ebp - 0x48]
+cdq
+idiv ecx
+test ax, ax
+je loc_fffb551c ; je 0xfffb551c
+movsx eax, al
+cdq
+mov ecx, edx
+xor ecx, eax
+sub ecx, edx
+mov edx, edi
+neg edx
+cmp byte [ebp - 0x41], 2
+mov byte [ebp - 0x54], cl
+mov cl, byte [ebp - 0x4c]
+cmove edi, edx
+mov dl, byte [ebp - 0x4c]
+add ecx, edi
+mov byte [ebp - 0x48], dl
+mov byte [ebp - 0x40], cl
+mov cl, byte [ebp - 0x54]
+mov byte [ebp - 0x44], cl
+mov cl, byte [ebp - 0x42]
+movzx edx, cl
+add edx, eax
+mov dword [ebp - 0x58], edx
+
+loc_fffb53ca: ; not directly referenced
+mov al, byte [ebp - 0x40]
+cmp cl, 2
+mov byte [ebp - 0x42], al
+mov bl, 1
+jbe short loc_fffb53f3 ; jbe 0xfffb53f3
+movzx eax, cl
+cmp eax, 0x3c
+jg short loc_fffb53f3 ; jg 0xfffb53f3
+mov dl, byte [ebp - 0x50]
+cmp byte [ebp - 0x40], dl
+setg bl
+mov al, byte [ebp - 0x40]
+cmp byte [ebp - 0x4f], al
+setg al
+or ebx, eax
+
+loc_fffb53f3: ; not directly referenced
+cmp byte [ebp - 0x41], 2
+jne short loc_fffb5413 ; jne 0xfffb5413
+cmp byte [ebp - 0x40], 0x10
+mov al, 0
+mov dl, byte [ebp - 0x4e]
+cmovge edx, eax
+mov al, dl
+mov byte [ebp - 0x4e], dl
+shl eax, 4
+add eax, dword [ebp - 0x40]
+mov byte [ebp - 0x42], al
+
+loc_fffb5413: ; not directly referenced
+test bl, bl
+jne short loc_fffb5468 ; jne 0xfffb5468
+sub esp, 0xc
+mov eax, esi
+push 0
+movsx ecx, byte [ebp - 0x42]
+movzx edx, byte [ebp - 0x4d]
+call fcn_fffb3889 ; call 0xfffb3889
+mov cl, al
+mov edx, dword [ebp - 0x58]
+and eax, 0xff
+add esp, 0x10
+sub edx, eax
+mov eax, edx
+sar eax, 0x1f
+xor edx, eax
+sub edx, eax
+cmp dl, byte [ebp - 0x54]
+mov dword [ebp - 0x64], edx
+mov al, dl
+jae short loc_fffb5468 ; jae 0xfffb5468
+cmp dl, byte [ebp - 0x44]
+jae short loc_fffb546a ; jae 0xfffb546a
+mov dl, byte [ebp - 0x42]
+test al, al
+mov byte [ebp - 0x48], dl
+mov dl, byte [ebp - 0x64]
+cmove edx, ebx
+sete bl
+mov byte [ebp - 0x44], dl
+jmp short loc_fffb546a ; jmp 0xfffb546a
+
+loc_fffb5468: ; not directly referenced
+mov bl, 1
+
+loc_fffb546a: ; not directly referenced
+mov eax, edi
+add byte [ebp - 0x40], al
+test bl, bl
+je loc_fffb53ca ; je 0xfffb53ca
+mov dl, byte [ebp - 0x4c]
+cmp byte [ebp - 0x48], dl
+je loc_fffb5505 ; je 0xfffb5505
+sub esp, 0xc
+mov eax, esi
+push 1
+movzx ecx, byte [ebp - 0x48]
+xor ebx, ebx
+movzx edx, byte [ebp - 0x4d]
+call fcn_fffb3889 ; call 0xfffb3889
+movzx eax, al
+movzx ecx, byte [ebp - 0x41]
+add esp, 0x10
+mov word [ebp - 0x40], ax
+mov dword [ebp - 0x4c], ecx
+
+loc_fffb54aa: ; not directly referenced
+imul eax, ebx, 0x1347
+mov edx, dword [ebp - 0x60]
+cmp dword [edx + eax + 0x12be], 2
+je short loc_fffb54ec ; je 0xfffb54ec
+
+loc_fffb54bd: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb54aa ; jne 0xfffb54aa
+jmp short loc_fffb551c ; jmp 0xfffb551c
+
+loc_fffb54c5: ; not directly referenced
+movzx edx, byte [ebp - 0x41]
+xor ecx, ecx
+push 1
+movzx eax, byte [edx + edi - 0x12]
+sub eax, dword [ebp - 0x40]
+cwde
+push eax
+push dword [ebp - 0x4c]
+mov eax, esi
+push edx
+mov edx, ebx
+call fcn_fffb498e ; call 0xfffb498e
+inc byte [ebp - 0x41]
+add esp, 0x10
+jmp short loc_fffb54f8 ; jmp 0xfffb54f8
+
+loc_fffb54ec: ; not directly referenced
+lea edi, [ebx + ebx*8]
+lea ecx, [ebp - 0x18]
+mov byte [ebp - 0x41], 0
+add edi, ecx
+
+loc_fffb54f8: ; not directly referenced
+mov al, byte [ebp - 0x41]
+cmp al, byte [esi + 0x1755]
+jb short loc_fffb54c5 ; jb 0xfffb54c5
+jmp short loc_fffb54bd ; jmp 0xfffb54bd
+
+loc_fffb5505: ; not directly referenced
+sub esp, 0xc
+mov eax, esi
+push 1
+movzx ecx, byte [ebp - 0x48]
+movzx edx, byte [ebp - 0x4d]
+call fcn_fffb3889 ; call 0xfffb3889
+add esp, 0x10
+
+loc_fffb551c: ; not directly referenced
+inc dword [ebp - 0x5c]
+mov edx, dword [ebp - 0x3c]
+cmp dword [ebp - 0x5c], edx
+jne loc_fffb5171 ; jne 0xfffb5171
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb5535: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x60]
+mov esi, ref_fffcbb5c ; mov esi, 0xfffcbb5c
+push ebx
+lea ebx, [ebp - 0x60]
+lea esp, [esp - 0x7c]
+mov byte [ebp - 0x6e], 4
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0x6d], 1
+add eax, 0x16be
+mov byte [ebp - 0x6c], 5
+mov byte [ebp - 0x6b], 2
+mov byte [ebp - 0x70], 5
+mov byte [ebp - 0x6f], 2
+mov byte [ebp - 0x6a], 1
+mov byte [ebp - 0x69], 2
+mov byte [ebp - 0x68], 1
+mov byte [ebp - 0x67], 2
+mov byte [ebp - 0x66], 0
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 0
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+mov dword [ebp - 0x84], eax
+mov dword [ebp - 0x7c], 0
+
+loc_fffb55a6: ; not directly referenced
+imul edx, dword [ebp - 0x7c], 0x1347
+mov ecx, dword [ebp - 0x84]
+cmp dword [ecx + edx + 0x12be], 2
+jne loc_fffb5678 ; jne 0xfffb5678
+mov cl, byte [ebp - 0x7c]
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp + 8]
+cmp dword [ecx + edx + 0x2a71], 2
+jne short loc_fffb564d ; jne 0xfffb564d
+push ecx
+and eax, 0xff
+lea edx, [ebp - 0x56]
+push 0
+mov dword [ebp - 0x80], eax
+lea eax, [ebp - 0x6a]
+push 0
+mov ecx, dword [ebp - 0x80]
+lea edi, [ebp - 0x65]
+push 0xf
+lea esi, [ebp - 0x70]
+push 4
+push 1
+push ebx
+push eax
+lea eax, [ebp - 0x6e]
+push 4
+push eax
+mov eax, dword [ebp + 8]
+push 7
+push 0xf
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x2c
+mov ecx, dword [ebp - 0x80]
+push 0
+lea edx, [ebp - 0x56]
+mov eax, dword [ebp + 8]
+push 0
+push 0xf
+push 2
+push 1
+push ebx
+push edi
+push 2
+push esi
+push 8
+push 3
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x2c
+mov ecx, dword [ebp - 0x80]
+push 0
+push 0
+push 0xf
+push 2
+push 1
+push ebx
+push edi
+push 2
+push esi
+push 8
+push 0xc
+jmp short loc_fffb566a ; jmp 0xfffb566a
+
+loc_fffb564d: ; not directly referenced
+push edx
+movzx ecx, al
+lea eax, [ebp - 0x65]
+push 0
+push 0
+push 0xf
+push 2
+push 0
+push ebx
+push eax
+lea eax, [ebp - 0x70]
+push 2
+push eax
+push 7
+push 0xf
+
+loc_fffb566a: ; not directly referenced
+lea edx, [ebp - 0x56]
+mov eax, dword [ebp + 8]
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x30
+
+loc_fffb5678: ; not directly referenced
+inc dword [ebp - 0x7c]
+cmp dword [ebp - 0x7c], 2
+jne loc_fffb55a6 ; jne 0xfffb55a6
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb568f: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x60]
+mov esi, ref_fffcbb68 ; mov esi, 0xfffcbb68
+push ebx
+lea esp, [esp - 0x5c]
+mov byte [ebp - 0x67], 4
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0x66], 1
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+cmp dword [eax + 0x1005], 0x40650
+jne loc_fffb5759 ; jne 0xfffb5759
+mov cl, 1
+mov edx, 4
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov edx, dword [ebp - 0x60]
+mov ecx, 1
+cmp ax, dx
+mov esi, 4
+mov bl, 1
+lea edi, [ebp - 0x60]
+cmovae edx, eax
+mov eax, dword [ebp + 8]
+mov word [ebp - 0x60], dx
+mov edx, 1
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov dx, word [ebp - 0x5e]
+cmp ax, dx
+cmovae edx, eax
+mov word [ebp - 0x5e], dx
+
+loc_fffb571a: ; not directly referenced
+mov eax, dword [ebp + 8]
+test byte [eax + 0x176a], bl
+je short loc_fffb5754 ; je 0xfffb5754
+push eax
+lea eax, [ebp - 0x65]
+mov ecx, 3
+push 0
+lea edx, [ebp - 0x56]
+push 0
+push 0xf
+push 7
+push 0
+push edi
+push eax
+lea eax, [ebp - 0x67]
+push 2
+push eax
+movzx eax, bl
+push 5
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x30
+
+loc_fffb5754: ; not directly referenced
+add ebx, ebx
+dec esi
+jne short loc_fffb571a ; jne 0xfffb571a
+
+loc_fffb5759: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb5763: ; not directly referenced
+push ebp
+mov ecx, 1
+mov edx, 4
+mov ebp, esp
+push ebx
+lea esp, [esp - 0x54]
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x57], 4
+mov eax, ebx
+mov byte [ebp - 0x56], 1
+mov byte [ebp - 0x55], 1
+mov byte [ebp - 0x54], 2
+mov byte [ebp - 0x53], 1
+mov byte [ebp - 0x52], 0
+mov byte [ebp - 0x51], 0
+mov word [ebp - 0x50], 0
+mov word [ebp - 0x4e], 0
+mov word [ebp - 0x4c], 0
+mov word [ebp - 0x4a], 0
+mov word [ebp - 0x48], 0
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp - 0x50], ax
+mov ecx, 1
+mov edx, 1
+mov eax, ebx
+call fcn_fffb2de8 ; call 0xfffb2de8
+cmp dword [ebx + 0x1749], 2
+mov word [ebp - 0x4e], ax
+jne short loc_fffb580a ; jne 0xfffb580a
+push eax
+lea eax, [ebp - 0x50]
+mov ecx, 3
+push 0
+lea edx, [ebp - 0x46]
+push 0
+push 0xf
+push 2
+push 0
+push eax
+lea eax, [ebp - 0x55]
+push eax
+lea eax, [ebp - 0x57]
+push 2
+push eax
+mov eax, ebx
+push 9
+push 0xf
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x30
+
+loc_fffb580a: ; not directly referenced
+xor eax, eax
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb5811: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x60]
+mov esi, ref_fffcbb74 ; mov esi, 0xfffcbb74
+push ebx
+lea esp, [esp - 0x5c]
+mov ebx, dword [ebp + 8]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+cmp dword [ebx + 0x1005], 0x40650
+mov byte [ebp - 0x67], 5
+mov byte [ebp - 0x66], 2
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 0
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+jne short loc_fffb58be ; jne 0xfffb58be
+mov cl, 1
+mov edx, 5
+mov eax, ebx
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov edx, dword [ebp - 0x60]
+mov ecx, 1
+cmp ax, dx
+cmovae edx, eax
+mov eax, ebx
+mov word [ebp - 0x60], dx
+mov edx, 2
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov dx, word [ebp - 0x5e]
+mov ecx, 3
+cmp ax, dx
+cmovae edx, eax
+push eax
+lea eax, [ebp - 0x60]
+mov word [ebp - 0x5e], dx
+push 0
+lea edx, [ebp - 0x56]
+push 0
+push 0xf
+push 8
+push 0xfffffffffffffff1
+push eax
+lea eax, [ebp - 0x65]
+push eax
+lea eax, [ebp - 0x67]
+push 2
+push eax
+mov eax, ebx
+push 2
+push 0xf
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x30
+
+loc_fffb58be: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb58c8: ; not directly referenced
+push ebp
+mov ecx, 1
+mov edx, 5
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x60]
+xor esi, esi
+push ebx
+lea esp, [esp - 0x5c]
+mov ebx, dword [ebp + 8]
+mov eax, ebx
+mov byte [ebp - 0x67], 5
+mov byte [ebp - 0x66], 2
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+mov word [ebp - 0x60], 0
+mov word [ebp - 0x5e], 0
+mov word [ebp - 0x5c], 0
+mov word [ebp - 0x5a], 0
+mov word [ebp - 0x58], 0
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp - 0x60], ax
+mov ecx, 1
+mov edx, 2
+mov eax, ebx
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp - 0x5e], ax
+
+loc_fffb593e: ; not directly referenced
+mov ecx, esi
+mov eax, 1
+shl eax, cl
+test byte [ebx + 0x176a], al
+je short loc_fffb597f ; je 0xfffb597f
+push edx
+lea edx, [ebp - 0x65]
+and eax, 0xff
+push 2
+mov ecx, 3
+push 0
+push 0xf
+push 0xb
+push 0
+push edi
+push edx
+lea edx, [ebp - 0x67]
+push 2
+push edx
+lea edx, [ebp - 0x56]
+push 4
+push eax
+mov eax, ebx
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x30
+
+loc_fffb597f: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffb593e ; jne 0xfffb593e
+push eax
+lea edx, [ebx + 0x1774]
+mov ecx, 3
+push eax
+mov eax, ebx
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffb0d66 ; call 0xfffb0d66
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb59af: ; not directly referenced
+push ebp
+mov ecx, 1
+mov edx, 4
+mov ebp, esp
+push ebx
+lea esp, [esp - 0x54]
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x57], 4
+mov eax, ebx
+mov byte [ebp - 0x56], 1
+mov byte [ebp - 0x55], 1
+mov byte [ebp - 0x54], 2
+mov byte [ebp - 0x53], 1
+mov byte [ebp - 0x52], 0
+mov byte [ebp - 0x51], 0
+mov word [ebp - 0x50], 0
+mov word [ebp - 0x4e], 0
+mov word [ebp - 0x4c], 0
+mov word [ebp - 0x4a], 0
+mov word [ebp - 0x48], 0
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp - 0x50], ax
+mov ecx, 1
+mov edx, 1
+mov eax, ebx
+call fcn_fffb2de8 ; call 0xfffb2de8
+push ecx
+mov word [ebp - 0x4e], ax
+lea eax, [ebp - 0x50]
+push 0
+lea edx, [ebp - 0x46]
+mov ecx, 3
+push 0
+push 0xf
+push 7
+push 0
+push eax
+lea eax, [ebp - 0x55]
+push eax
+lea eax, [ebp - 0x57]
+push 2
+push eax
+mov eax, ebx
+push 6
+push 0xf
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x28
+lea edx, [ebx + 0x1774]
+push 0
+mov eax, ebx
+mov ecx, 3
+push 0xf
+push 0
+push 0
+push 0
+push 1
+call fcn_fffb0d66 ; call 0xfffb0d66
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb5a70: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x7c]
+mov edi, dword [ebp + 8]
+mov byte [ebp - 0x6f], 4
+mov byte [ebp - 0x6e], 1
+mov byte [ebp - 0x6a], 1
+mov byte [ebp - 0x69], 2
+mov byte [ebp - 0x68], 1
+mov byte [ebp - 0x67], 0
+mov eax, dword [edi + 0x103f]
+mov byte [ebp - 0x66], 0
+mov byte [ebp - 0x6d], 4
+mov byte [ebp - 0x6c], 1
+mov byte [ebp - 0x6b], 0xb
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 2
+mov byte [ebp - 0x62], 1
+mov byte [ebp - 0x61], 0
+mov word [ebp - 0x60], 0
+mov word [ebp - 0x5e], 0
+mov word [ebp - 0x5c], 0
+mov word [ebp - 0x5a], 0
+mov word [ebp - 0x58], 0
+mov eax, dword [eax + 0x3a04]
+and eax, 0x3f
+cmp dword [edi + 0x1005], 0x40650
+mov byte [ebp - 0x7e], al
+mov eax, dword [edi + 0x1749]
+jne short loc_fffb5b19 ; jne 0xfffb5b19
+cmp eax, 2
+je short loc_fffb5b42 ; je 0xfffb5b42
+mov byte [ebp - 0x84], 9
+mov byte [ebp - 0x83], 0x50
+mov word [ebp - 0x82], 0xe6
+jmp short loc_fffb5b30 ; jmp 0xfffb5b30
+
+loc_fffb5b19: ; not directly referenced
+mov byte [ebp - 0x84], 9
+mov byte [ebp - 0x83], 0x50
+mov word [ebp - 0x82], 0xb4
+
+loc_fffb5b30: ; not directly referenced
+lea eax, [ebp - 0x6a]
+mov byte [ebp - 0x7f], 2
+mov dword [ebp - 0x88], eax
+lea edx, [ebp - 0x6f]
+jmp short loc_fffb5b69 ; jmp 0xfffb5b69
+
+loc_fffb5b42: ; not directly referenced
+lea eax, [ebp - 0x65]
+mov byte [ebp - 0x84], 0xa
+mov byte [ebp - 0x83], 0x1e
+mov word [ebp - 0x82], 0xe6
+mov dword [ebp - 0x88], eax
+mov byte [ebp - 0x7f], 3
+lea edx, [ebp - 0x6d]
+
+loc_fffb5b69: ; not directly referenced
+mov dword [ebp - 0x7c], edx
+xor ebx, ebx
+
+loc_fffb5b6e: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+mov ecx, 1
+movzx edx, byte [eax + ebx]
+mov eax, edi
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp + ebx*2 - 0x60], ax
+inc ebx
+cmp byte [ebp - 0x7f], bl
+ja short loc_fffb5b6e ; ja 0xfffb5b6e
+mov edx, dword [edi + 0x1756]
+mov esi, 0x64
+mov ecx, edx
+shr edx, 0xf
+shr ecx, 3
+mov al, dl
+and eax, 0x1f
+and ecx, 1
+and dl, 0x10
+lea ebx, [eax - 0x20]
+cmove ebx, eax
+cmp dword [edi + 0x1005], 0x40650
+mov al, 0x32
+cmovne esi, eax
+xor ecx, 1
+mov edx, esi
+and si, 0xff
+movzx eax, dl
+imul eax, eax, 0x60
+movsx edx, bl
+lea ebx, [edx + 0x30]
+cdq
+idiv ebx
+movzx edx, byte [ebp - 0x7e]
+mov ebx, eax
+movzx eax, cl
+sub ebx, esi
+shl eax, 4
+add eax, edx
+xor edx, edx
+imul ebx, eax
+movzx eax, byte [ebp - 0x7e]
+mov word [ebp - 0x7e], ax
+mov eax, ebx
+div word [ebp - 0x82]
+movzx esi, cl
+shl esi, 4
+mov ecx, eax
+movzx eax, bx
+sub ecx, esi
+movzx ebx, byte [ebp - 0x83]
+cdq
+idiv ebx
+sub cx, word [ebp - 0x7e]
+mov dl, 0xf0
+sub eax, esi
+sub al, byte [ebp - 0x7e]
+movsx esi, al
+cmp cx, 0xfffffffffffffff1
+cmovge edx, ecx
+movsx ecx, dl
+lea ebx, [ecx + 0x17]
+cmp esi, ebx
+jle short loc_fffb5c3f ; jle 0xfffb5c3f
+add edx, 0x17
+mov al, 0xf
+cmp dl, 0xf
+cmovle eax, edx
+
+loc_fffb5c3f: ; not directly referenced
+push ebx
+movzx edx, byte [ebp - 0x84]
+push 0
+movsx eax, al
+push edx
+lea edx, [ebp - 0x56]
+push 0x11
+push eax
+lea eax, [ebp - 0x60]
+push ecx
+mov ecx, 3
+push eax
+push dword [ebp - 0x88]
+movzx eax, byte [ebp - 0x7f]
+push eax
+push dword [ebp - 0x7c]
+mov eax, edi
+push 1
+push 0xf
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x28
+lea edx, [edi + 0x1774]
+push 0
+mov eax, edi
+mov ecx, 3
+push 0x11
+push 0
+push 0
+push 0
+push 1
+call fcn_fffb0d66 ; call 0xfffb0d66
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb5c9f: ; not directly referenced
+push ebp
+mov ecx, 0xf
+mov edx, 3
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov dword [ebp + 8], 1
+pop ebp
+jmp near fcn_fffbf82d ; jmp 0xfffbf82d
+
+fcn_fffb5cbc: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov edx, 0x462
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0xbd5c]
+mov esi, ref_fffcbb80 ; mov esi, 0xfffcbb80
+push ebx
+lea esp, [esp - 0xbddc]
+mov byte [ebp - 0xbd86], 6
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0xbd81], 0
+mov byte [ebp - 0xbd80], 4
+mov byte [ebp - 0xbd7d], 6
+mov byte [ebp - 0xbd7c], 0
+mov byte [ebp - 0xbd7b], 4
+mov byte [ebp - 0xbd6e], 1
+mov byte [ebp - 0xbd6d], 1
+movzx eax, byte [eax + 0x1755]
+mov byte [ebp - 0xbd6c], 1
+mov dword [ebp - 0xbdc8], eax
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0xbd6b], 1
+mov byte [ebp - 0xbd6a], 1
+mov byte [ebp - 0xbd69], 1
+mov byte [ebp - 0xbd68], 1
+mov byte [ebp - 0xbd67], 1
+mov byte [ebp - 0xbd66], 0
+cmp dword [eax + 0x1005], 0x40650
+mov esi, dword [eax + 0x1749]
+lea eax, [ebp - 0xbbf4]
+sete bl
+mov dword [ebp - 0xbdd8], esi
+mov byte [ebp - 0xbd65], 0
+mov byte [ebp - 0xbd7f], 6
+mov byte [ebp - 0xbd7e], 5
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0xb77a
+lea eax, [ebp - 0xb792]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x15e
+lea eax, [ebp - 0xbd52]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0xbd85]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0xbd64]
+call fcn_fffa119f ; call 0xfffa119f
+mov edi, dword [ebp + 8]
+mov dl, bl
+xor edx, 1
+mov al, byte [edi + 0x176b]
+mov cl, al
+mov esi, eax
+and ecx, 3
+mov byte [ebp - 0xbdc9], cl
+mov cl, byte [edi + 0x176a]
+and ecx, 0xf
+and esi, 1
+mov byte [ebp - 0xbd98], cl
+mov dword [ebp - 0xbddc], esi
+movzx ecx, byte [ebp - 0xbdc9]
+mov dword [ebp - 0xbd90], ecx
+je short loc_fffb5e83 ; je 0xfffb5e83
+cmp dword [edi + 0x2a71], 2
+sete al
+setne cl
+movzx ecx, cl
+mov dword [ebp - 0xbdb8], ecx
+mov ecx, dword [ebp + 8]
+lea edi, [eax + eax + 1]
+sete al
+movzx eax, al
+mov dword [ebp - 0xbda0], eax
+mov al, byte [ebp - 0xbd98]
+and al, byte [ecx + 0x3acb]
+cmp dword [ecx + 0x1749], 2
+mov byte [ebp - 0xbd85], al
+je short loc_fffb5e73 ; je 0xfffb5e73
+mov byte [ebp - 0xbd7a], 2
+mov byte [ebp - 0xbd79], 2
+jmp short loc_fffb5e99 ; jmp 0xfffb5e99
+
+loc_fffb5e73: ; not directly referenced
+mov byte [ebp - 0xbd7a], 0
+mov byte [ebp - 0xbd79], 0
+jmp short loc_fffb5e99 ; jmp 0xfffb5e99
+
+loc_fffb5e83: ; not directly referenced
+xor edi, edi
+mov dword [ebp - 0xbdb8], 0
+mov dword [ebp - 0xbda0], 0
+
+loc_fffb5e99: ; not directly referenced
+mov esi, dword [ebp - 0xbd90]
+sar esi, 1
+mov dword [ebp - 0xbdd0], esi
+je short loc_fffb5f13 ; je 0xfffb5f13
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3db8], 2
+jne short loc_fffb5ef5 ; jne 0xfffb5ef5
+jmp short loc_fffb5f04 ; jmp 0xfffb5f04
+
+loc_fffb5eb7: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov al, byte [ebp - 0xbd98]
+and al, byte [ecx + 0x4e12]
+cmp dword [ecx + 0x1749], 2
+mov byte [ebp - 0xbd84], al
+je short loc_fffb5ee5 ; je 0xfffb5ee5
+mov byte [ebp - 0xbd78], 2
+mov byte [ebp - 0xbd77], 2
+jmp short loc_fffb5f13 ; jmp 0xfffb5f13
+
+loc_fffb5ee5: ; not directly referenced
+mov byte [ebp - 0xbd78], 0
+mov byte [ebp - 0xbd77], 0
+jmp short loc_fffb5f13 ; jmp 0xfffb5f13
+
+loc_fffb5ef5: ; not directly referenced
+or edi, 0x10
+mov dword [ebp - 0xbdb8], 1
+jmp short loc_fffb5eb7 ; jmp 0xfffb5eb7
+
+loc_fffb5f04: ; not directly referenced
+or edi, 0x30
+mov dword [ebp - 0xbda0], 1
+jmp short loc_fffb5eb7 ; jmp 0xfffb5eb7
+
+loc_fffb5f13: ; not directly referenced
+cmp dword [ebp - 0xbda0], 0
+jne short loc_fffb5f47 ; jne 0xfffb5f47
+test bl, bl
+je short loc_fffb5f67 ; je 0xfffb5f67
+mov eax, dword [ebp + 8]
+lea esi, [ebp - 0xbd69]
+mov dword [ebp - 0xbd9c], esi
+test byte [eax + 0x16b5], 0x20
+je short loc_fffb5f73 ; je 0xfffb5f73
+mov byte [ebp - 0xbdac], 2
+lea esi, [ebp - 0xbd7f]
+jmp short loc_fffb5f80 ; jmp 0xfffb5f80
+
+loc_fffb5f47: ; not directly referenced
+lea esi, [ebp - 0xbd6e]
+mov byte [ebp - 0xbdac], 3
+mov dword [ebp - 0xbd9c], esi
+mov eax, 2
+lea esi, [ebp - 0xbd7d]
+jmp short loc_fffb5f85 ; jmp 0xfffb5f85
+
+loc_fffb5f67: ; not directly referenced
+lea esi, [ebp - 0xbd69]
+mov dword [ebp - 0xbd9c], esi
+
+loc_fffb5f73: ; not directly referenced
+mov byte [ebp - 0xbdac], 1
+lea esi, [ebp - 0xbd86]
+
+loc_fffb5f80: ; not directly referenced
+mov eax, 1
+
+loc_fffb5f85: ; not directly referenced
+movzx edx, dl
+mov dword [ebp - 0xbda8], 0xfffffff0
+mov byte [ebp - 0xbd94], 0
+mov dword [ebp - 0xbdc0], edx
+mov dword [ebp - 0xbde8], eax
+
+loc_fffb5fa5: ; not directly referenced
+mov eax, dword [ebp - 0xbdc0]
+mov edx, dword [ebp - 0xbde8]
+add edx, eax
+mov dword [ebp - 0xbda4], eax
+mov dword [ebp - 0xbdd4], edx
+jmp near loc_fffb612a ; jmp 0xfffb612a
+
+loc_fffb5fc4: ; not directly referenced
+movsx eax, byte [ebp - 0xbd8c]
+cmp eax, dword [ebp - 0xbdd4]
+je loc_fffb610c ; je 0xfffb610c
+cmp eax, dword [ebp - 0xbdc0]
+jl loc_fffb610c ; jl 0xfffb610c
+cmp byte [ebp - 0xbd8c], 1
+mov dword [ebp - 0xbdc4], 0
+sete dl
+cmp byte [ebp - 0xbda4], 1
+sete al
+or dl, al
+je short loc_fffb6011 ; je 0xfffb6011
+mov ecx, dword [ebp - 0xbda0]
+mov dword [ebp - 0xbdc4], ecx
+
+loc_fffb6011: ; not directly referenced
+xor ebx, ebx
+
+loc_fffb6013: ; not directly referenced
+mov ecx, dword [ebp - 0xbd90]
+bt ecx, ebx
+jb short loc_fffb6026 ; jb 0xfffb6026
+
+loc_fffb601e: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb6013 ; jne 0xfffb6013
+jmp short loc_fffb60a4 ; jmp 0xfffb60a4
+
+loc_fffb6026: ; not directly referenced
+mov al, byte [ebp - 0xbdb4]
+mov dl, byte [ebp - 0xbd8c]
+mov byte [ebp + ebx*2 - 0xbd76], al
+mov byte [ebp + ebx*2 - 0xbd75], dl
+mov byte [ebp - 0xbdb0], 0
+jmp short loc_fffb6088 ; jmp 0xfffb6088
+
+loc_fffb6049: ; not directly referenced
+push 1
+xor ecx, ecx
+mov edx, ebx
+push 0
+mov eax, dword [ebp + 8]
+push 0
+push dword [ebp - 0xbdbc]
+call fcn_fffb498e ; call 0xfffb498e
+push 1
+movzx ecx, byte [ebp + ebx - 0xbd85]
+mov edx, ebx
+push 0xc
+mov eax, dword [ebp + 8]
+push 4
+push dword [ebp - 0xbdbc]
+call fcn_fffb498e ; call 0xfffb498e
+inc byte [ebp - 0xbdb0]
+add esp, 0x20
+
+loc_fffb6088: ; not directly referenced
+movzx ecx, byte [ebp - 0xbdb0]
+mov eax, dword [ebp - 0xbdc8]
+cmp ecx, eax
+mov dword [ebp - 0xbdbc], ecx
+jb short loc_fffb6049 ; jb 0xfffb6049
+jmp near loc_fffb601e ; jmp 0xfffb601e
+
+loc_fffb60a4: ; not directly referenced
+cmp byte [ebp - 0xbd94], 0x22
+ja short loc_fffb610c ; ja 0xfffb610c
+movzx eax, byte [ebp - 0xbd94]
+imul eax, eax, 0x53e
+push ecx
+push ecx
+mov ecx, dword [ebp - 0xbd90]
+lea edx, [ebp + eax - 0xb792]
+lea eax, [ebp - 0xbd52]
+push eax
+lea eax, [ebp - 0xbd7a]
+push 0
+push dword [ebp - 0xbdc4]
+push dword [ebp - 0xbde0]
+push esi
+push dword [ebp - 0xbda8]
+push eax
+lea eax, [ebp - 0xbd76]
+push eax
+mov eax, dword [ebp + 8]
+push 0
+push dword [ebp - 0xbde4]
+call fcn_fffbf005 ; call 0xfffbf005
+inc byte [ebp - 0xbd94]
+add esp, 0x30
+
+loc_fffb610c: ; not directly referenced
+inc byte [ebp - 0xbd8c]
+mov dl, byte [ebp - 0xbdca]
+cmp byte [ebp - 0xbd8c], dl
+jne loc_fffb5fc4 ; jne 0xfffb5fc4
+inc dword [ebp - 0xbda4]
+
+loc_fffb612a: ; not directly referenced
+mov ecx, dword [ebp - 0xbdd4]
+cmp dword [ebp - 0xbda4], ecx
+jge short loc_fffb6179 ; jge 0xfffb6179
+movzx ecx, byte [ebp - 0xbdac]
+mov al, byte [ebp - 0xbda4]
+mov byte [ebp - 0xbdb4], al
+dec eax
+mov dl, byte [ebp - 0xbdb4]
+mov byte [ebp - 0xbd8c], al
+add edx, 2
+mov dword [ebp - 0xbde0], ecx
+movzx eax, byte [ebp - 0xbd98]
+mov byte [ebp - 0xbdca], dl
+mov dword [ebp - 0xbde4], eax
+jmp near loc_fffb5fc4 ; jmp 0xfffb5fc4
+
+loc_fffb6179: ; not directly referenced
+add dword [ebp - 0xbda8], 0x10
+cmp dword [ebp - 0xbda8], 0x10
+jne loc_fffb5fa5 ; jne 0xfffb5fa5
+mov edx, edi
+xor ebx, ebx
+movzx edi, dl
+movzx esi, byte [ebp - 0xbd94]
+mov dword [ebp - 0xbda4], edi
+mov dword [ebp - 0xbda8], esi
+
+loc_fffb61a7: ; not directly referenced
+mov ecx, dword [ebp - 0xbd90]
+mov byte [ebp + ebx - 0xbd83], 0
+bt ecx, ebx
+jae loc_fffb6325 ; jae 0xfffb6325
+mov al, byte [ebp - 0xb273]
+mov byte [ebp - 0xbdb0], 0
+mov byte [ebp - 0xbd8c], al
+jmp short loc_fffb61f7 ; jmp 0xfffb61f7
+
+loc_fffb61d3: ; not directly referenced
+imul edx, eax, 0x46
+mov ecx, dword [ebp - 0xbd98]
+mov di, word [esi + eax*4 + 0x52a]
+inc eax
+mov word [ecx + edx], di
+
+loc_fffb61e9: ; not directly referenced
+cmp byte [ebp - 0xbd8c], al
+ja short loc_fffb61d3 ; ja 0xfffb61d3
+inc byte [ebp - 0xbdb0]
+
+loc_fffb61f7: ; not directly referenced
+mov al, byte [ebp - 0xbd94]
+cmp byte [ebp - 0xbdb0], al
+je short loc_fffb622c ; je 0xfffb622c
+movzx eax, byte [ebp - 0xbdb0]
+imul ecx, eax, 0x29f
+lea eax, [ebp + eax*2 - 0xbd52]
+add ecx, ebx
+mov dword [ebp - 0xbd98], eax
+xor eax, eax
+lea esi, [ebp + ecx*2 - 0xb792]
+jmp short loc_fffb61e9 ; jmp 0xfffb61e9
+
+loc_fffb622c: ; not directly referenced
+push 0
+movzx eax, byte [ebp - 0xb273]
+lea ecx, [ebx*4]
+push eax
+push dword [ebp - 0xbd9c]
+lea eax, [ebp - 0xb272]
+mov esi, dword [ebp - 0xbda4]
+push eax
+push dword [ebp - 0xbda8]
+sar esi, cl
+lea edi, [ebp - 0xb792]
+push 0x23
+mov ecx, esi
+lea esi, [ebp - 0xbd52]
+push esi
+mov edx, ebx
+mov eax, dword [ebp + 8]
+push edi
+call fcn_fffc0642 ; call 0xfffc0642
+add esp, 0x1c
+lea eax, [ebp - 0xbd5c]
+push 0
+mov ecx, esi
+lea edx, [ebp - 0xbbf4]
+push eax
+movsx eax, byte [ebp - 0xbd94]
+push 1
+push 1
+push dword [ebp - 0xbd9c]
+push eax
+mov eax, dword [ebp + 8]
+push 0x23
+call fcn_fffbfa8e ; call 0xfffbfa8e
+movsx di, byte [ebp - 0xbbf2]
+add edi, dword [ebp - 0xbbf4]
+add esp, 0x18
+movsx edi, di
+mov cl, bl
+imul esi, edi, 0x53e
+imul edi, edi, 0x29f
+mov edx, 1
+push 0
+add edi, ebx
+lea eax, [ebp - 0xb792]
+shl edx, cl
+add eax, esi
+push 0
+and edx, 0xff
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffc03b8 ; call 0xfffc03b8
+mov al, byte [ebp + edi*2 - 0xb792]
+add esp, 0x10
+mov byte [ebp + ebx*2 - 0xbd72], al
+mov al, byte [ebp + edi*2 - 0xb791]
+mov byte [ebp + ebx*2 - 0xbd71], al
+lea eax, [ebp + esi - 0xb792]
+mov dl, byte [eax + 8]
+mov eax, dword [eax + 9]
+mov byte [ebp + ebx - 0xbd83], dl
+mov dword [ebp + ebx*4 - 0xbd64], eax
+
+loc_fffb6325: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffb61a7 ; jne 0xfffb61a7
+cmp dword [ebp - 0xbddc], 0
+je loc_fffb67cc ; je 0xfffb67cc
+cmp dword [ebp - 0xbdd0], 0
+mov al, byte [ebp - 0xbd83]
+mov esi, 1
+je short loc_fffb6357 ; je 0xfffb6357
+
+loc_fffb6350: ; not directly referenced
+inc esi
+add al, byte [ebp - 0xbd82]
+
+loc_fffb6357: ; not directly referenced
+movsx eax, al
+mov edx, esi
+movzx ecx, dl
+cdq
+idiv ecx
+mov byte [ebp - 0xbd8c], al
+jmp short loc_fffb6373 ; jmp 0xfffb6373
+
+loc_fffb636a: ; not directly referenced
+xor esi, esi
+mov byte [ebp - 0xbd8c], 0
+
+loc_fffb6373: ; not directly referenced
+sub esp, 0xc
+xor edx, edx
+push 1
+movzx ecx, byte [ebp - 0xbd8c]
+mov eax, dword [ebp + 8]
+call fcn_fffb3889 ; call 0xfffb3889
+mov ecx, esi
+add esp, 0x10
+xor ebx, ebx
+cmp cl, 2
+mov dword [ebp - 0xbd94], eax
+je short loc_fffb63f1 ; je 0xfffb63f1
+
+loc_fffb639b: ; not directly referenced
+push edi
+mov esi, dword [ebp + 8]
+mov ecx, dword [ebp - 0xbd90]
+push 0
+add esi, 0x1774
+mov eax, dword [ebp + 8]
+push 0
+mov edx, esi
+mov dword [ebp - 0xbd98], esi
+push 0
+call fcn_fffc32d9 ; call 0xfffc32d9
+pop eax
+pop edx
+mov ecx, dword [ebp - 0xbd90]
+mov edx, esi
+push 0
+mov eax, dword [ebp + 8]
+push 0xf
+push 0
+push 0
+push 0
+push 1
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+cmp dword [ebp - 0xbdd8], 2
+jne loc_fffb64ae ; jne 0xfffb64ae
+jmp short loc_fffb6467 ; jmp 0xfffb6467
+
+loc_fffb63f1: ; not directly referenced
+mov ecx, dword [ebp - 0xbd90]
+bt ecx, ebx
+jb short loc_fffb6404 ; jb 0xfffb6404
+
+loc_fffb63fc: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb63f1 ; jne 0xfffb63f1
+jmp short loc_fffb639b ; jmp 0xfffb639b
+
+loc_fffb6404: ; not directly referenced
+mov eax, dword [ebp - 0xbd94]
+xor esi, esi
+sub dword [ebp + ebx*4 - 0xbd64], eax
+imul edi, ebx, 0x1347
+jmp short loc_fffb6458 ; jmp 0xfffb6458
+
+loc_fffb641b: ; not directly referenced
+mov ecx, esi
+inc esi
+movzx edx, cl
+mov ecx, dword [ebp + 8]
+lea eax, [edi + edx*4 + 0x110]
+push 1
+mov eax, dword [ecx + eax + 0x2989]
+mov ecx, 0xf
+shr eax, 0xc
+and eax, 0x1f
+add eax, dword [ebp + ebx*4 - 0xbd64]
+cwde
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push edx
+mov edx, ebx
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+
+loc_fffb6458: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov eax, esi
+cmp al, byte [edx + 0x1755]
+jb short loc_fffb641b ; jb 0xfffb641b
+jmp short loc_fffb63fc ; jmp 0xfffb63fc
+
+loc_fffb6467: ; not directly referenced
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+xor ecx, ecx
+movzx edx, byte [eax + 0x176b]
+push 0
+call fcn_fffbf82d ; call 0xfffbf82d
+pop ecx
+push dword [ebp + 8]
+call fcn_fffbb819 ; call 0xfffbb819
+mov eax, dword [ebp + 8]
+mov edx, dword [ebp - 0xbd98]
+pop ebx
+pop esi
+movzx ecx, byte [eax + 0x176b]
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffb0d66 ; call 0xfffb0d66
+jmp near loc_fffb67e2 ; jmp 0xfffb67e2
+
+loc_fffb64ae: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov al, 1
+mov dl, byte [ecx + 0x16bd]
+test dl, dl
+cmovne edx, eax
+cmp dword [ebp - 0xbda0], 0
+mov edi, edx
+je short loc_fffb64d3 ; je 0xfffb64d3
+cmp dword [ebp - 0xbdb8], 0
+cmove edi, eax
+
+loc_fffb64d3: ; not directly referenced
+lea esi, [ebp - 0xbd7a]
+mov dword [ebp - 0xbd94], esi
+movsx esi, byte [ebp - 0xbd8c]
+mov dword [ebp - 0xbd90], 0
+mov dword [ebp - 0xbdb4], esi
+
+loc_fffb64f6: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov ecx, dword [ebp - 0xbd90]
+add ecx, ecx
+mov dword [ebp - 0xbd8c], 3
+shl dword [ebp - 0xbd8c], cl
+mov al, byte [ebp - 0xbd8c]
+test byte [edx + 0x176a], al
+jne short loc_fffb653b ; jne 0xfffb653b
+
+loc_fffb651f: ; not directly referenced
+inc dword [ebp - 0xbd90]
+inc dword [ebp - 0xbd94]
+cmp dword [ebp - 0xbd90], 2
+jne short loc_fffb64f6 ; jne 0xfffb64f6
+xor ebx, ebx
+jmp near loc_fffb6782 ; jmp 0xfffb6782
+
+loc_fffb653b: ; not directly referenced
+test byte [ebp - 0xbd85], al
+mov esi, 2
+setne dl
+mov cl, byte [ebp - 0xbdc9]
+or esi, edx
+test byte [ebp - 0xbd84], al
+cmove esi, edx
+xor ebx, ebx
+and esi, ecx
+mov eax, esi
+movzx eax, al
+mov dword [ebp - 0xbda0], eax
+
+loc_fffb6569: ; not directly referenced
+mov al, bl
+mov byte [ebp - 0xbd9c], bl
+add eax, edi
+cmp al, 2
+jbe short loc_fffb65ab ; jbe 0xfffb65ab
+mov cl, byte [ebp - 0xbd90]
+mov eax, 1
+xor ebx, ebx
+shl eax, cl
+and eax, 0xff
+mov dword [ebp - 0xbda0], eax
+mov eax, esi
+movzx esi, al
+mov dword [ebp - 0xbdac], esi
+movzx esi, byte [ebp - 0xbd9c]
+mov dword [ebp - 0xbdb0], esi
+jmp short loc_fffb6619 ; jmp 0xfffb6619
+
+loc_fffb65ab: ; not directly referenced
+mov edx, dword [ebp - 0xbd94]
+lea ecx, [ebp - 0xb792]
+mov byte [edx], al
+mov byte [edx + 2], al
+push edx
+push edx
+imul edx, ebx, 0x53e
+add edx, ecx
+lea ecx, [ebp - 0xbd52]
+push ecx
+test al, al
+mov ecx, dword [ebp - 0xbda0]
+sete al
+and eax, dword [ebp - 0xbdb8]
+push eax
+lea eax, [ebp - 0xbd81]
+inc ebx
+push 0
+push 2
+push eax
+push dword [ebp - 0xbdb4]
+lea eax, [ebp - 0xbd7a]
+push eax
+lea eax, [ebp - 0xbd72]
+push eax
+movzx eax, byte [ebp - 0xbd8c]
+push 1
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffbf005 ; call 0xfffbf005
+add esp, 0x30
+jmp near loc_fffb6569 ; jmp 0xfffb6569
+
+loc_fffb6619: ; not directly referenced
+mov esi, dword [ebp - 0xbdac]
+bt esi, ebx
+jae loc_fffb6773 ; jae 0xfffb6773
+mov al, byte [ebp - 0xb273]
+mov byte [ebp - 0xbda8], 0
+mov byte [ebp - 0xbd8c], al
+jmp short loc_fffb6667 ; jmp 0xfffb6667
+
+loc_fffb663d: ; not directly referenced
+imul edx, eax, 0x46
+mov ecx, dword [ebp - 0xbdc0]
+mov esi, dword [ebp - 0xbdbc]
+mov cx, word [ecx + eax*4 + 0x52a]
+inc eax
+mov word [esi + edx], cx
+
+loc_fffb6659: ; not directly referenced
+cmp byte [ebp - 0xbd8c], al
+ja short loc_fffb663d ; ja 0xfffb663d
+inc byte [ebp - 0xbda8]
+
+loc_fffb6667: ; not directly referenced
+mov al, byte [ebp - 0xbd9c]
+cmp byte [ebp - 0xbda8], al
+je short loc_fffb66a2 ; je 0xfffb66a2
+movzx eax, byte [ebp - 0xbda8]
+imul ecx, eax, 0x29f
+lea eax, [ebp + eax*2 - 0xbd52]
+add ecx, ebx
+mov dword [ebp - 0xbdbc], eax
+xor eax, eax
+lea ecx, [ebp + ecx*2 - 0xb792]
+mov dword [ebp - 0xbdc0], ecx
+jmp short loc_fffb6659 ; jmp 0xfffb6659
+
+loc_fffb66a2: ; not directly referenced
+push 0
+movzx eax, byte [ebp - 0xb273]
+lea esi, [ebp - 0xbd69]
+push eax
+lea eax, [ebp - 0xb272]
+lea edx, [ebp - 0xbd52]
+push esi
+lea ecx, [ebp - 0xb792]
+push eax
+push dword [ebp - 0xbdb0]
+mov eax, dword [ebp + 8]
+push 0x23
+push edx
+mov edx, ebx
+push ecx
+mov ecx, dword [ebp - 0xbda0]
+call fcn_fffc0642 ; call 0xfffc0642
+add esp, 0x1c
+lea eax, [ebp - 0xbd5c]
+push 0
+lea ecx, [ebp - 0xbd52]
+lea edx, [ebp - 0xbbf4]
+push eax
+movsx eax, byte [ebp - 0xbd9c]
+push 1
+push 1
+push esi
+push eax
+mov eax, dword [ebp + 8]
+push 0x23
+call fcn_fffbfa8e ; call 0xfffbfa8e
+movsx si, byte [ebp - 0xbbf2]
+add esi, dword [ebp - 0xbbf4]
+add esp, 0x18
+movsx esi, si
+mov cl, bl
+imul eax, esi, 0x53e
+imul esi, esi, 0x29f
+lea edx, [ebp - 0xb792]
+push 0
+add eax, edx
+add esi, ebx
+mov edx, 1
+shl edx, cl
+mov ecx, eax
+push 1
+mov eax, dword [ebp + 8]
+and edx, 0xff
+call fcn_fffc03b8 ; call 0xfffc03b8
+mov ecx, dword [ebp - 0xbd90]
+lea eax, [ebp + esi*2 - 0x18]
+mov esi, dword [ebp - 0xbd94]
+add esp, 0x10
+mov al, byte [ecx + eax - 0xb776]
+mov byte [esi + ebx*2], al
+
+loc_fffb6773: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffb6619 ; jne 0xfffb6619
+jmp near loc_fffb651f ; jmp 0xfffb651f
+
+loc_fffb6782: ; not directly referenced
+mov edi, dword [ebp + 8]
+movzx eax, byte [edi + 0x176b]
+bt eax, ebx
+jb short loc_fffb67bb ; jb 0xfffb67bb
+
+loc_fffb6791: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb6782 ; jne 0xfffb6782
+jmp near loc_fffb6467 ; jmp 0xfffb6467
+
+loc_fffb679c: ; not directly referenced
+push 1
+movzx ecx, byte [ebp + ebx - 0xbd85]
+mov edx, ebx
+push 0xc
+inc esi
+push 4
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+jmp short loc_fffb67bd ; jmp 0xfffb67bd
+
+loc_fffb67bb: ; not directly referenced
+xor esi, esi
+
+loc_fffb67bd: ; not directly referenced
+mov edx, esi
+movzx eax, dl
+cmp eax, dword [ebp - 0xbdc8]
+jb short loc_fffb679c ; jb 0xfffb679c
+jmp short loc_fffb6791 ; jmp 0xfffb6791
+
+loc_fffb67cc: ; not directly referenced
+cmp dword [ebp - 0xbdd0], 0
+je loc_fffb636a ; je 0xfffb636a
+xor eax, eax
+xor esi, esi
+jmp near loc_fffb6350 ; jmp 0xfffb6350
+
+loc_fffb67e2: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb67ea: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+mov eax, edx
+imul eax, eax, 0x1347
+mov dl, cl
+push ebx
+lea esp, [esp - 0x2c]
+mov cl, byte [ebp + 8]
+mov bl, byte [ebp + 0x14]
+mov byte [ebp - 0x26], cl
+lea eax, [esi + eax + 0x297c]
+mov dword [ebp - 0x24], eax
+mov eax, dword [esi + 0x1021]
+mov cl, byte [ebp + 0xc]
+mov byte [ebp - 0x25], bl
+mov ebx, dword [esi + 0x1749]
+mov dword [ebp - 0x34], ebx
+xor ebx, ebx
+cmp cl, 2
+mov edi, dword [ebp + 0x10]
+mov eax, dword [esi + eax*4 + 0x172c]
+mov byte [ebp - 0x14], 0x21
+mov byte [ebp - 0x13], 0x42
+mov byte [ebp - 0x12], 0x58
+mov byte [ebp - 0x11], 0x64
+mov byte [ebp - 0x10], 0x85
+mov byte [ebp - 0xf], 0xa6
+mov byte [ebp - 0xe], 0xc8
+mov byte [ebp - 0xd], 0xe9
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x2c], eax
+ja loc_fffb6936 ; ja 0xfffb6936
+mov eax, dword [ebp - 0x24]
+cmp cl, 1
+movzx ebx, byte [ebp - 0x26]
+mov ebx, dword [eax + ebx*4 + 0x11d]
+mov eax, dword [esi + 0x103f]
+jne short loc_fffb688e ; jne 0xfffb688e
+mov eax, dword [eax + 0x3a04]
+mov dword [ebp - 0x30], eax
+jmp near loc_fffb693f ; jmp 0xfffb693f
+
+loc_fffb688e: ; not directly referenced
+mov eax, dword [eax + 0x3a00]
+test cl, cl
+mov dword [ebp - 0x38], eax
+jne loc_fffb6936 ; jne 0xfffb6936
+mov eax, dword [esi + 0x1756]
+shr eax, 0xb
+mov dl, al
+and edx, 0xf
+test al, 8
+lea ecx, [edx - 0x10]
+cmove ecx, edx
+cmp dword [ebp + 0x18], 0
+je short loc_fffb68d4 ; je 0xfffb68d4
+mov al, bl
+mov dl, byte [ebp - 0x38]
+and eax, 0x3f
+and edx, 0x3f
+and bl, 0x20
+mov byte [ebp - 0x25], dl
+lea edx, [eax - 0x40]
+cmovne eax, edx
+mov edi, eax
+
+loc_fffb68d4: ; not directly referenced
+cmp dword [esi + 0x1005], 0x40650
+mov eax, 0x4b
+mov edx, 0x78
+cmove eax, edx
+cmp cl, 0xe0
+je short loc_fffb6905 ; je 0xfffb6905
+movsx ecx, cl
+mov ebx, 0x20
+sub ebx, ecx
+add ecx, 0x20
+imul eax, ebx
+cdq
+idiv ecx
+jmp short loc_fffb6907 ; jmp 0xfffb6907
+
+loc_fffb6905: ; not directly referenced
+xor eax, eax
+
+loc_fffb6907: ; not directly referenced
+mov ecx, 3
+xor edx, edx
+div cx
+movsx esi, byte [ebp - 0x25]
+mov ecx, edi
+lea edx, [esi + esi*2]
+add edx, 0x30
+imul eax, edx
+movsx edx, cl
+movzx eax, ax
+add esi, edx
+cdq
+lea esi, [esi + esi*2]
+add esi, 0x30
+idiv esi
+jmp near loc_fffb6b9c ; jmp 0xfffb6b9c
+
+loc_fffb6936: ; not directly referenced
+cmp cl, 1
+jne loc_fffb69d7 ; jne 0xfffb69d7
+
+loc_fffb693f: ; not directly referenced
+mov eax, dword [esi + 0x1756]
+mov ecx, eax
+shr eax, 0xf
+shr ecx, 3
+mov dword [ebp - 0x24], eax
+mov al, byte [ebp - 0x24]
+and ecx, 1
+and eax, 0x1f
+test byte [ebp - 0x24], 0x10
+lea edx, [eax - 0x20]
+cmove edx, eax
+cmp dword [ebp + 0x18], 0
+je short loc_fffb6987 ; je 0xfffb6987
+mov edi, ebx
+mov al, byte [ebp - 0x30]
+shr edi, 0xc
+and eax, 0x3f
+mov byte [ebp - 0x25], al
+mov eax, edi
+and eax, 0x1f
+and edi, 0x10
+lea ebx, [eax - 0x20]
+cmovne eax, ebx
+mov edi, eax
+
+loc_fffb6987: ; not directly referenced
+cmp dword [esi + 0x1005], 0x40650
+mov eax, 0x32
+movsx edx, dl
+mov ebx, 0x64
+movsx esi, byte [ebp - 0x25]
+cmovne ebx, eax
+movzx eax, bl
+add edx, 0x30
+imul eax, eax, 0x60
+mov dword [ebp - 0x20], edx
+cdq
+xor ecx, 1
+idiv dword [ebp - 0x20]
+movzx ecx, cl
+shl ecx, 4
+lea edx, [ecx + esi]
+sub eax, ebx
+mov ebx, edi
+imul eax, edx
+movsx edx, bl
+movzx eax, ax
+add esi, edx
+add ecx, esi
+jmp near loc_fffb6abd ; jmp 0xfffb6abd
+
+loc_fffb69d7: ; not directly referenced
+cmp cl, 2
+jne short loc_fffb69fe ; jne 0xfffb69fe
+cmp dword [ebp + 0x18], 0
+je short loc_fffb69f1 ; je 0xfffb69f1
+mov edi, ebx
+shr edi, 0x1b
+mov eax, edi
+test al, 0x10
+lea esi, [eax - 0x20]
+cmovne edi, esi
+
+loc_fffb69f1: ; not directly referenced
+mov edx, edi
+movsx eax, dl
+add eax, 0x32
+jmp near loc_fffb6b9c ; jmp 0xfffb6b9c
+
+loc_fffb69fe: ; not directly referenced
+cmp cl, 4
+jne short loc_fffb6a0d ; jne 0xfffb6a0d
+mov ecx, edi
+movsx eax, cl
+jmp near loc_fffb6b9c ; jmp 0xfffb6b9c
+
+loc_fffb6a0d: ; not directly referenced
+cmp cl, 5
+jne short loc_fffb6a26 ; jne 0xfffb6a26
+mov eax, edi
+cbw
+idiv cl
+movsx eax, al
+lea eax, [eax + eax*4]
+add eax, 0x64
+jmp near loc_fffb6b9c ; jmp 0xfffb6b9c
+
+loc_fffb6a26: ; not directly referenced
+xor eax, eax
+cmp cl, 9
+jne loc_fffb6ac5 ; jne 0xfffb6ac5
+xor ecx, ecx
+cmp dword [ebp - 0x34], 2
+sete cl
+cmp dword [ebp + 0x18], 0
+je short loc_fffb6a8c ; je 0xfffb6a8c
+cmp dl, 3
+ja loc_fffb6b9c ; ja 0xfffb6b9c
+mov eax, edx
+shr dl, 1
+and eax, 1
+movzx edx, dl
+imul eax, eax, 0xa
+imul edx, edx, 0xfb
+add edx, eax
+test ecx, ecx
+je short loc_fffb6a75 ; je 0xfffb6a75
+mov ebx, dword [ebp - 0x24]
+mov si, word [ebx + edx + 0x123e]
+lea edi, [esi - 1]
+and edi, 0xf
+jmp short loc_fffb6a90 ; jmp 0xfffb6a90
+
+loc_fffb6a75: ; not directly referenced
+mov ecx, dword [ebp - 0x24]
+mov si, word [ecx + edx + 0x123a]
+shr si, 1
+mov ebx, esi
+and ebx, 1
+mov edi, ebx
+jmp short loc_fffb6ab0 ; jmp 0xfffb6ab0
+
+loc_fffb6a8c: ; not directly referenced
+test ecx, ecx
+je short loc_fffb6aa6 ; je 0xfffb6aa6
+
+loc_fffb6a90: ; not directly referenced
+mov edx, edi
+mov al, 6
+cmp dl, 6
+mov ecx, 7
+cmovle eax, edi
+movsx eax, al
+sub ecx, eax
+jmp short loc_fffb6ab8 ; jmp 0xfffb6ab8
+
+loc_fffb6aa6: ; not directly referenced
+mov ecx, edi
+mov al, 0xfb
+cmp cl, 0xfa
+cmovle edi, eax
+
+loc_fffb6ab0: ; not directly referenced
+mov ebx, edi
+movsx ecx, bl
+add ecx, 6
+
+loc_fffb6ab8: ; not directly referenced
+mov eax, 0xf0
+
+loc_fffb6abd: ; not directly referenced
+cdq
+idiv ecx
+jmp near loc_fffb6b9c ; jmp 0xfffb6b9c
+
+loc_fffb6ac5: ; not directly referenced
+cmp cl, 6
+jne loc_fffb6b9c ; jne 0xfffb6b9c
+mov eax, dword [esi + 0x103f]
+cmp dword [ebp - 0x2c], 0x546
+seta bl
+movzx ebx, bl
+mov ecx, dword [eax + 0x3918]
+mov al, byte [esi + 0x16d6]
+and ecx, 3
+cmp dword [esi + 0x16d2], 1
+movzx ecx, cl
+sbb edx, edx
+and edx, 0xfffffffe
+add edx, 6
+sub eax, edx
+mov dl, 4
+cmp al, 4
+cmovle edx, eax
+xor eax, eax
+test dl, dl
+cmovns eax, edx
+cmp dword [esi + 0x1005], 0x40650
+jne short loc_fffb6b37 ; jne 0xfffb6b37
+cmp al, 2
+mov dl, 2
+lea ebx, [ebx + ebx*2]
+cmovle edx, eax
+movsx edx, dl
+add edx, ebx
+movzx ebx, byte [ecx + edx*4 + ref_fffc9f3c] ; movzx ebx, byte [ecx + edx*4 - 0x360c4]
+jmp short loc_fffb6b47 ; jmp 0xfffb6b47
+
+loc_fffb6b37: ; not directly referenced
+movsx eax, al
+lea ebx, [ebx + ebx*4]
+add eax, ebx
+movzx ebx, byte [ecx + eax*4 + ref_fffc9f14] ; movzx ebx, byte [ecx + eax*4 - 0x360ec]
+
+loc_fffb6b47: ; not directly referenced
+imul eax, dword [ebp - 0x2c], 0x4b0
+mov ecx, 0x3e8
+xor edx, edx
+div ecx
+xor edx, edx
+add eax, 0x520
+div ecx
+cmp dword [ebp + 0x18], 0
+mov ecx, eax
+je short loc_fffb6b81 ; je 0xfffb6b81
+movzx eax, byte [ebp - 0x26]
+mov edx, dword [ebp - 0x24]
+movzx edi, byte [edx + eax*4 + 0x146]
+mov eax, edi
+shr al, 2
+mov edi, eax
+and edi, 7
+
+loc_fffb6b81: ; not directly referenced
+mov edx, edi
+movsx esi, dl
+xor edx, edx
+movzx eax, byte [ebp + esi - 0x14]
+imul eax, ecx
+movzx ecx, byte [ebp + ebx - 0x14]
+div ecx
+and eax, 0xffff
+
+loc_fffb6b9c: ; not directly referenced
+lea esp, [esp + 0x2c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb6ba5: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+lea eax, [eax + 0x16be]
+push esi
+push ebx
+lea esp, [esp - 0x6c]
+mov byte [ebp - 0x1e], 0
+mov byte [ebp - 0x1d], 0x3c
+mov byte [ebp - 0x1c], 0x78
+mov byte [ebp - 0x1b], 0x28
+mov byte [ebp - 0x1a], 0x14
+mov byte [ebp - 0x19], 0x1e
+mov byte [ebp - 0x29], 0
+mov byte [ebp - 0x28], 0x3c
+mov byte [ebp - 0x27], 0x78
+mov byte [ebp - 0x26], 0
+mov byte [ebp - 0x25], 0x22
+mov byte [ebp - 0x24], 0x28
+mov byte [ebp - 0x23], 0x30
+mov byte [ebp - 0x22], 0
+mov byte [ebp - 0x21], 0
+mov byte [ebp - 0x20], 0x78
+mov byte [ebp - 0x1f], 0xf0
+mov dword [ebp - 0x5c], edx
+mov dword [ebp - 0x4c], 0
+mov dword [ebp - 0x58], 0
+mov dword [ebp - 0x40], 0
+mov byte [ebp - 0x47], 0
+mov dword [ebp - 0x70], eax
+jmp near loc_fffb6e4c ; jmp 0xfffb6e4c
+
+loc_fffb6c1f: ; not directly referenced
+mov ecx, dword [ebp - 0x64]
+mov dl, byte [ebp - 0x44]
+mov eax, 1
+mov ecx, dword [ecx + 0xf5]
+mov dword [ebp - 0x6c], ecx
+mov cl, dl
+shl eax, cl
+mov ecx, dword [ebp - 0x68]
+test byte [edi + ecx + 0x3acb], al
+je loc_fffb6e2c ; je 0xfffb6e2c
+cmp dword [edi + 0x1749], 2
+jne short loc_fffb6c88 ; jne 0xfffb6c88
+cmp dl, 1
+ja loc_fffb6ee7 ; ja 0xfffb6ee7
+imul eax, dword [ebp - 0x44], 0xa
+add eax, dword [ebp - 0x64]
+mov word [ebp - 0x3c], 0x3fff
+mov dx, word [eax + 0x123e]
+mov ax, word [eax + 0x1240]
+and edx, 3
+and eax, 3
+movzx esi, byte [ebp + eax - 0x22]
+mov dl, byte [ebp + edx - 0x26]
+mov byte [ebp - 0x48], dl
+jmp short loc_fffb6d00 ; jmp 0xfffb6d00
+
+loc_fffb6c88: ; not directly referenced
+shr dl, 1
+mov eax, dword [ebp - 0x44]
+movzx edx, dl
+and eax, 1
+imul edx, edx, 0xfb
+imul eax, eax, 0xa
+add eax, edx
+add eax, dword [ebp - 0x64]
+mov cx, word [eax + 0x123a]
+mov si, word [eax + 0x123c]
+shr si, 9
+mov eax, ecx
+shr ax, 1
+and esi, 3
+and eax, 1
+add eax, 6
+mov dword [ebp - 0x3c], eax
+mov eax, 0xf0
+cdq
+idiv dword [ebp - 0x3c]
+mov edx, ecx
+shr dx, 6
+and edx, 1
+add edx, edx
+movzx esi, byte [ebp + esi - 0x29]
+mov byte [ebp - 0x48], al
+mov eax, ecx
+shr ax, 9
+shr cx, 2
+and eax, 1
+shl eax, 2
+and ecx, 1
+or eax, edx
+or eax, ecx
+movzx eax, byte [ebp + eax - 0x1e]
+mov word [ebp - 0x3c], ax
+
+loc_fffb6d00: ; not directly referenced
+cmp dword [ebp - 0x50], 0
+je short loc_fffb6d6c ; je 0xfffb6d6c
+jmp near loc_fffb6da4 ; jmp 0xfffb6da4
+
+loc_fffb6d0b: ; not directly referenced
+push 1
+movzx eax, byte [ebp - 0x50]
+xor ecx, ecx
+push 0
+mov dword [ebp - 0x60], eax
+mov edx, dword [ebp - 0x4c]
+push 0
+push 0
+push eax
+mov eax, edi
+call fcn_fffb67ea ; call 0xfffb67ea
+push 1
+add word [ebp - 0x54], ax
+xor ecx, ecx
+push 0
+mov edx, dword [ebp - 0x4c]
+mov eax, edi
+push 0
+push 1
+push dword [ebp - 0x60]
+call fcn_fffb67ea ; call 0xfffb67ea
+add esp, 0x28
+add word [ebp - 0x52], ax
+push 1
+xor ecx, ecx
+mov edx, dword [ebp - 0x4c]
+push 0
+mov eax, edi
+push 0
+push 6
+push dword [ebp - 0x60]
+call fcn_fffb67ea ; call 0xfffb67ea
+inc byte [ebp - 0x50]
+add word [ebp - 0x46], ax
+add esp, 0x14
+jmp short loc_fffb6d70 ; jmp 0xfffb6d70
+
+loc_fffb6d6c: ; not directly referenced
+mov byte [ebp - 0x50], 0
+
+loc_fffb6d70: ; not directly referenced
+movzx ecx, byte [edi + 0x1755]
+cmp byte [ebp - 0x50], cl
+jb short loc_fffb6d0b ; jb 0xfffb6d0b
+movzx eax, word [ebp - 0x54]
+mov dword [ebp - 0x50], 1
+cdq
+idiv ecx
+mov word [ebp - 0x54], ax
+movzx eax, word [ebp - 0x52]
+cdq
+idiv ecx
+mov word [ebp - 0x52], ax
+movzx eax, word [ebp - 0x46]
+cdq
+idiv ecx
+mov word [ebp - 0x46], ax
+
+loc_fffb6da4: ; not directly referenced
+cmp dword [ebp - 0x6c], 1
+jne short loc_fffb6dba ; jne 0xfffb6dba
+test si, si
+cmove si, word [ebp - 0x3c]
+mov word [ebp - 0x3c], 0x3fff
+jmp short loc_fffb6dcd ; jmp 0xfffb6dcd
+
+loc_fffb6dba: ; not directly referenced
+cmp word [ebp - 0x3c], 0
+mov eax, 0x3fff
+cmovne ax, word [ebp - 0x3c]
+mov word [ebp - 0x3c], ax
+
+loc_fffb6dcd: ; not directly referenced
+movzx eax, word [ebp - 0x3c]
+test si, si
+movzx ecx, word [ebp - 0x54]
+cmove si, word [ebp - 0x3c]
+movzx esi, si
+push esi
+imul edx, dword [ebp - 0x44], 0x26
+add edx, dword [ebp - 0x5c]
+push eax
+movzx eax, word [ebp - 0x52]
+push eax
+movzx eax, byte [ebp - 0x48]
+push eax
+mov eax, edi
+call fcn_fffb31ae ; call 0xfffb31ae
+mov dx, word [ebp - 0x46]
+mov eax, dword [ebx + 4]
+add word [ebx + 0x20], dx
+add word [ebx + 0x24], dx
+mov ecx, dword [ebx + 0x14]
+mov edx, dword [ebx]
+add dword [ebp - 0x40], ecx
+inc byte [ebp - 0x47]
+add dword [ebp - 0x40], eax
+add esp, 0x10
+mov eax, dword [ebx + 0x10]
+add dword [ebp - 0x40], edx
+add eax, dword [ebx + 8]
+add eax, dword [ebx + 0x18]
+add eax, dword [ebx + 0xc]
+add dword [ebp - 0x58], eax
+
+loc_fffb6e2c: ; not directly referenced
+inc dword [ebp - 0x44]
+add ebx, 0x26
+cmp dword [ebp - 0x44], 4
+jne loc_fffb6c1f ; jne 0xfffb6c1f
+inc dword [ebp - 0x4c]
+add dword [ebp - 0x5c], 0x98
+cmp dword [ebp - 0x4c], 2
+je short loc_fffb6e8b ; je 0xfffb6e8b
+
+loc_fffb6e4c: ; not directly referenced
+imul ecx, dword [ebp - 0x4c], 0x1347
+mov eax, dword [ebp - 0x70]
+mov dword [ebp - 0x68], ecx
+mov ebx, dword [ebp - 0x5c]
+mov dword [ebp - 0x44], 0
+mov word [ebp - 0x46], 0
+mov word [ebp - 0x54], 0
+mov word [ebp - 0x52], 0
+mov dword [ebp - 0x50], 0
+lea eax, [eax + ecx + 0x12be]
+mov dword [ebp - 0x64], eax
+jmp near loc_fffb6c1f ; jmp 0xfffb6c1f
+
+loc_fffb6e8b: ; not directly referenced
+cmp byte [ebp - 0x47], 0
+mov al, 1
+movzx ebx, word [ebp - 0x46]
+mov dl, byte [ebp - 0x47]
+cmove edx, eax
+mov eax, dword [ebp - 0x40]
+movzx ecx, dl
+xor edx, edx
+div ecx
+xor edx, edx
+add ebx, eax
+mov eax, dword [ebp - 0x58]
+div ecx
+cmp dword [edi + 0x500a], 0
+jne short loc_fffb6ed0 ; jne 0xfffb6ed0
+mov word [edi + 0x500e], bx
+mov word [edi + 0x5010], ax
+mov word [edi + 0x5012], 0
+jmp short loc_fffb6ee7 ; jmp 0xfffb6ee7
+
+loc_fffb6ed0: ; not directly referenced
+mov word [edi + 0x5014], bx
+mov word [edi + 0x5016], ax
+mov word [edi + 0x5018], 0
+
+loc_fffb6ee7: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffb6eef:
+db 0x00
+
+fcn_fffb6ef0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+mov esi, eax
+mov eax, ref_fffcbc04 ; mov eax, 0xfffcbc04
+push ebx
+xor ebx, ebx
+
+loc_fffb6f01: ; not directly referenced
+cmp edx, dword [eax]
+ja short loc_fffb6f27 ; ja 0xfffb6f27
+cmp edx, dword [eax + 9]
+jbe short loc_fffb6f27 ; jbe 0xfffb6f27
+lea eax, [ebx + ebx*8]
+mov eax, dword [eax + ref_fffcbc08] ; mov eax, dword [eax - 0x343f8]
+
+loc_fffb6f13: ; not directly referenced
+mov ecx, esi
+mov edx, 1
+shl edx, cl
+lea ecx, [ebx + ebx*8]
+add ecx, ref_fffcbc04 ; add ecx, 0xfffcbc04
+jmp short loc_fffb6f43 ; jmp 0xfffb6f43
+
+loc_fffb6f27: ; not directly referenced
+inc ebx
+add eax, 9
+cmp ebx, 0x10
+jne short loc_fffb6f01 ; jne 0xfffb6f01
+xor eax, eax
+jmp short loc_fffb6f13 ; jmp 0xfffb6f13
+
+loc_fffb6f34: ; not directly referenced
+movzx esi, byte [ecx + 8]
+sub ecx, 9
+test esi, edx
+jne short loc_fffb6f47 ; jne 0xfffb6f47
+dec ebx
+mov eax, dword [ecx + 4]
+
+loc_fffb6f43: ; not directly referenced
+test ebx, ebx
+jne short loc_fffb6f34 ; jne 0xfffb6f34
+
+loc_fffb6f47: ; not directly referenced
+test edi, edi
+je short loc_fffb6f4d ; je 0xfffb6f4d
+mov dword [edi], ebx
+
+loc_fffb6f4d: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb6f52: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+xor esi, esi
+push ebx
+lea esp, [esp - 0x84]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x54], 0
+mov dword [ebp - 0x4c], 0
+mov dword [ebp - 0x60], 0
+mov dword [ebp - 0x5c], 0
+mov dword [ebp - 0x68], 0
+mov byte [ebp - 0x61], 0
+lea eax, [ebx + 0x10b7]
+lea edx, [ebx + 0x2974]
+mov dword [ebp - 0x8c], eax
+mov dword [ebp - 0x70], edx
+
+loc_fffb6fa2: ; not directly referenced
+lea eax, [esi - 2]
+cmp eax, 1
+ja short loc_fffb6fc0 ; ja 0xfffb6fc0
+cmp byte [ebx + 0x1746], 0
+je loc_fffb73ac ; je 0xfffb73ac
+mov dword [ebp - 0x50], 0
+jmp short loc_fffb6fdb ; jmp 0xfffb6fdb
+
+loc_fffb6fc0: ; not directly referenced
+cmp esi, 1
+mov dword [ebp - 0x50], 0
+jne short loc_fffb6fdb ; jne 0xfffb6fdb
+xor edx, edx
+cmp dword [ebx + 0x1021], 1
+sete dl
+mov dword [ebp - 0x50], edx
+
+loc_fffb6fdb: ; not directly referenced
+imul edx, esi, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp - 0x7c], edx
+mov dword [ebp + esi*4 - 0x2c], 0xffffffff
+lea edx, [esi*8 + 0xb0]
+mov dword [ebp + esi*4 - 0x1c], 0
+mov dword [ebp - 0x40], 0
+mov dword [ebp - 0x84], edx
+mov dword [ebp - 0x88], eax
+
+loc_fffb700e: ; not directly referenced
+imul eax, dword [ebp - 0x40], 0x2fa
+mov edx, dword [ebp - 0x8c]
+mov dword [ebp - 0x44], 0
+lea eax, [edx + eax + 5]
+mov dword [ebp - 0x78], eax
+imul eax, dword [ebp - 0x40], 0x1347
+mov edx, dword [ebp - 0x70]
+lea eax, [edx + eax + 8]
+mov edx, dword [ebp - 0x88]
+mov dword [ebp - 0x58], eax
+add eax, dword [ebp - 0x84]
+mov dword [ebp - 0x48], eax
+add edx, 0xb0
+mov eax, dword [ebp - 0x58]
+add eax, dword [ebp - 0x7c]
+mov dword [ebp - 0x74], eax
+mov dword [ebp - 0x80], edx
+
+loc_fffb705b: ; not directly referenced
+imul ecx, dword [ebp - 0x44], 0xfb
+mov edx, dword [ebp - 0x58]
+lea eax, [edx + ecx + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+mov dword [ebp - 0x90], edx
+jne loc_fffb71a8 ; jne 0xfffb71a8
+imul eax, dword [ebp - 0x44], 0x14f
+mov edi, dword [ebp - 0x78]
+mov edx, dword [ebp - 0x74]
+cmp esi, 1
+lea eax, [edi + eax + 8]
+mov edi, dword [edx + ecx + 0x1155]
+lea edx, [edi - 1]
+mov dword [ebp - 0x6c], edx
+mov edx, dword [ebp - 0x48]
+mov edx, dword [edx]
+mov dword [ebp - 0x5c], edx
+mov edx, dword [ebp - 0x48]
+mov edx, dword [edx + 4]
+mov dword [ebp - 0x60], edx
+je loc_fffb7142 ; je 0xfffb7142
+jb loc_fffb7162 ; jb 0xfffb7162
+cmp esi, 3
+ja loc_fffb7162 ; ja 0xfffb7162
+mov edx, dword [ebp - 0x90]
+cmp esi, 2
+mov dl, byte [edx + 0xe5]
+mov byte [ebp - 0x62], dl
+jne short loc_fffb70e6 ; jne 0xfffb70e6
+and dl, 1
+jne short loc_fffb70f2 ; jne 0xfffb70f2
+xor ecx, ecx
+jmp near loc_fffb71a4 ; jmp 0xfffb71a4
+
+loc_fffb70e6: ; not directly referenced
+xor ecx, ecx
+test byte [ebp - 0x62], 2
+je loc_fffb71a4 ; je 0xfffb71a4
+
+loc_fffb70f2: ; not directly referenced
+mov edx, dword [ebp - 0x80]
+mov dword [ebp - 0x4c], 0
+lea eax, [eax + edx + 0x2d]
+movzx edx, byte [eax + 2]
+mov dword [ebp - 0x54], edx
+mov edx, dword [ebp - 0x90]
+cmp byte [edx + 0xe6], 0x13
+jne short loc_fffb711d ; jne 0xfffb711d
+movsx edx, byte [eax + 0x1b]
+mov dword [ebp - 0x4c], edx
+
+loc_fffb711d: ; not directly referenced
+mov cx, word [eax + 3]
+xor eax, eax
+and ecx, 0x7fff
+test edi, edi
+je short loc_fffb7197 ; je 0xfffb7197
+mov edx, dword [ebp - 0x60]
+mov eax, dword [ebp - 0x5c]
+imul edx, dword [ebp - 0x4c]
+imul eax, dword [ebp - 0x54]
+add eax, dword [ebp - 0x6c]
+add eax, edx
+jmp short loc_fffb7193 ; jmp 0xfffb7193
+
+loc_fffb7142: ; not directly referenced
+movzx edx, word [eax + 0x12a]
+test dx, dx
+je short loc_fffb7162 ; je 0xfffb7162
+mov eax, dword [ebp - 0x18]
+mov byte [ebp - 0x61], 1
+cmp edx, eax
+cmovb edx, eax
+or ecx, 0xffffffff
+mov dword [ebp - 0x18], edx
+jmp short loc_fffb71a4 ; jmp 0xfffb71a4
+
+loc_fffb7162: ; not directly referenced
+movzx edx, byte [eax + 0x34]
+mov cx, word [eax + 0x32]
+mov dword [ebp - 0x54], edx
+and ecx, 0x7fff
+movsx edx, byte [eax + 0x47]
+xor eax, eax
+test edi, edi
+mov dword [ebp - 0x4c], edx
+je short loc_fffb7197 ; je 0xfffb7197
+mov edx, dword [ebp - 0x5c]
+mov eax, dword [ebp - 0x60]
+imul edx, dword [ebp - 0x54]
+imul eax, dword [ebp - 0x4c]
+add eax, edx
+add eax, dword [ebp - 0x6c]
+
+loc_fffb7193: ; not directly referenced
+xor edx, edx
+div edi
+
+loc_fffb7197: ; not directly referenced
+mov edx, dword [ebp + esi*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + esi*4 - 0x1c], eax
+
+loc_fffb71a4: ; not directly referenced
+and dword [ebp + esi*4 - 0x2c], ecx
+
+loc_fffb71a8: ; not directly referenced
+inc dword [ebp - 0x44]
+add dword [ebp - 0x48], 0x20
+cmp dword [ebp - 0x44], 2
+jne loc_fffb705b ; jne 0xfffb705b
+inc dword [ebp - 0x40]
+cmp dword [ebp - 0x40], 2
+jne loc_fffb700e ; jne 0xfffb700e
+cmp esi, 1
+seta byte [ebp - 0x40]
+test edi, edi
+sete al
+test byte [ebp - 0x40], al
+jne loc_fffb73aa ; jne 0xfffb73aa
+mov eax, dword [ebx + 0x16d2]
+lea ecx, [ebp - 0x38]
+mov edx, edi
+mov byte [ebp + esi - 0x30], 0
+call fcn_fffb6ef0 ; call 0xfffb6ef0
+cmp byte [ebp - 0x40], 0
+je short loc_fffb7234 ; je 0xfffb7234
+cmp dword [ebx + 0x16d2], 0
+jne short loc_fffb7234 ; jne 0xfffb7234
+cmp byte [ebx + 0x1747], 0
+je short loc_fffb7234 ; je 0xfffb7234
+lea ecx, [ebp - 0x34]
+mov edx, edi
+mov eax, 1
+call fcn_fffb6ef0 ; call 0xfffb6ef0
+mov eax, dword [ebp - 0x34]
+cmp eax, dword [ebp - 0x38]
+jle short loc_fffb7234 ; jle 0xfffb7234
+cmp dword [ebx + 0x1021], esi
+mov dword [ebp - 0x38], eax
+jne short loc_fffb7234 ; jne 0xfffb7234
+mov dword [ebx + 0x16d2], 1
+
+loc_fffb7234: ; not directly referenced
+mov edx, dword [ebp - 0x60]
+mov eax, dword [ebp - 0x5c]
+imul edx, dword [ebp - 0x4c]
+imul eax, dword [ebp - 0x54]
+add eax, edx
+imul edx, esi, 0x2a
+mov dword [ebp - 0x58], eax
+mov dword [ebp - 0x48], edx
+jmp near loc_fffb7309 ; jmp 0xfffb7309
+
+loc_fffb7252: ; not directly referenced
+cmp byte [ebp - 0x50], 0
+jne short loc_fffb7279 ; jne 0xfffb7279
+mov ecx, dword [ebp + esi*4 - 0x2c]
+lea edx, [eax - 4]
+bt ecx, edx
+jae loc_fffb7304 ; jae 0xfffb7304
+mov edx, edi
+imul edx, eax
+cmp edx, 0x1312d00
+ja loc_fffb7304 ; ja 0xfffb7304
+
+loc_fffb7279: ; not directly referenced
+cmp esi, dword [ebx + 0x1021]
+mov byte [ebp + esi - 0x30], 1
+jne short loc_fffb7293 ; jne 0xfffb7293
+mov dword [ebx + 0x16ce], edi
+mov dword [ebp - 0x68], 1
+
+loc_fffb7293: ; not directly referenced
+mov dword [ebp - 0x40], 0
+
+loc_fffb729a: ; not directly referenced
+imul ecx, dword [ebp - 0x40], 0x1347
+mov edx, dword [ebp - 0x70]
+lea ecx, [edx + ecx + 8]
+cmp dword [ecx + 0x1151], 2
+jne short loc_fffb72d9 ; jne 0xfffb72d9
+mov edx, dword [ebp - 0x48]
+add edx, ecx
+mov dword [ebp - 0x6c], edx
+add edx, 0x1151
+mov dword [ebp - 0x44], edx
+mov word [edx + 0xa], ax
+mov edx, dword [ebp - 0x6c]
+mov word [edx + 0xe], ax
+mov edx, dword [ebp - 0x44]
+mov dword [edx + 4], edi
+mov edx, dword [ebp - 0x6c]
+mov dword [edx + 8], edi
+
+loc_fffb72d9: ; not directly referenced
+cmp dword [ecx + 0x124c], 2
+jne short loc_fffb72f9 ; jne 0xfffb72f9
+add ecx, dword [ebp - 0x48]
+mov word [ecx + 0x1256], ax
+mov word [ecx + 0xe], ax
+mov dword [ecx + 0x1250], edi
+mov dword [ecx + 8], edi
+
+loc_fffb72f9: ; not directly referenced
+inc dword [ebp - 0x40]
+cmp dword [ebp - 0x40], 2
+jne short loc_fffb729a ; jne 0xfffb729a
+jmp short loc_fffb731d ; jmp 0xfffb731d
+
+loc_fffb7304: ; not directly referenced
+inc eax
+mov dword [ebp + esi*4 - 0x1c], eax
+
+loc_fffb7309: ; not directly referenced
+cmp byte [ebp + esi - 0x30], 0
+jne short loc_fffb731d ; jne 0xfffb731d
+mov eax, dword [ebp + esi*4 - 0x1c]
+cmp eax, 0x12
+jbe loc_fffb7252 ; jbe 0xfffb7252
+
+loc_fffb731d: ; not directly referenced
+cmp byte [ebp + esi - 0x30], 0
+jne loc_fffb73ac ; jne 0xfffb73ac
+cmp byte [ebp - 0x50], 0
+je short loc_fffb733d ; je 0xfffb733d
+cmp byte [ebx + 0xff4], 0
+jne short loc_fffb73ac ; jne 0xfffb73ac
+cmp byte [ebp - 0x61], 1
+je short loc_fffb73ac ; je 0xfffb73ac
+
+loc_fffb733d: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+jmp short loc_fffb73a3 ; jmp 0xfffb73a3
+
+loc_fffb7342: ; not directly referenced
+lea edx, [eax + eax*8]
+mov dl, byte [edx + ref_fffcbc0c] ; mov dl, byte [edx - 0x343f4]
+cmp dl, 3
+jne short loc_fffb7374 ; jne 0xfffb7374
+
+loc_fffb7350: ; not directly referenced
+mov dword [ebp - 0x38], eax
+lea eax, [eax + eax*8]
+mov edi, dword [eax + ref_fffcbc04] ; mov edi, dword [eax - 0x343fc]
+lea ecx, [ebp - 0x38]
+mov eax, dword [ebx + 0x16d2]
+mov edx, edi
+call fcn_fffb6ef0 ; call 0xfffb6ef0
+xor eax, eax
+test edi, edi
+je short loc_fffb739d ; je 0xfffb739d
+jmp short loc_fffb7392 ; jmp 0xfffb7392
+
+loc_fffb7374: ; not directly referenced
+cmp dl, 1
+jne short loc_fffb7382 ; jne 0xfffb7382
+cmp dword [ebx + 0x16d2], 0
+jmp short loc_fffb738e ; jmp 0xfffb738e
+
+loc_fffb7382: ; not directly referenced
+cmp dl, 2
+jne short loc_fffb73a3 ; jne 0xfffb73a3
+cmp dword [ebx + 0x16d2], 1
+
+loc_fffb738e: ; not directly referenced
+jne short loc_fffb73a3 ; jne 0xfffb73a3
+jmp short loc_fffb7350 ; jmp 0xfffb7350
+
+loc_fffb7392: ; not directly referenced
+mov edx, dword [ebp - 0x58]
+lea eax, [edi + edx - 1]
+xor edx, edx
+div edi
+
+loc_fffb739d: ; not directly referenced
+mov dword [ebp + esi*4 - 0x1c], eax
+jmp short loc_fffb73bb ; jmp 0xfffb73bb
+
+loc_fffb73a3: ; not directly referenced
+dec eax
+test eax, eax
+jg short loc_fffb7342 ; jg 0xfffb7342
+jmp short loc_fffb73b8 ; jmp 0xfffb73b8
+
+loc_fffb73aa: ; not directly referenced
+xor edi, edi
+
+loc_fffb73ac: ; not directly referenced
+inc esi
+cmp esi, 4
+jne loc_fffb6fa2 ; jne 0xfffb6fa2
+jmp short loc_fffb73c7 ; jmp 0xfffb73c7
+
+loc_fffb73b8: ; not directly referenced
+mov dword [ebp - 0x38], eax
+
+loc_fffb73bb: ; not directly referenced
+cmp dword [ebp - 0x38], 0
+jg loc_fffb7309 ; jg 0xfffb7309
+jmp short loc_fffb73ac ; jmp 0xfffb73ac
+
+loc_fffb73c7: ; not directly referenced
+mov edx, dword [ebx + 0x16ce]
+mov eax, dword [ebx + 0x16d2]
+xor ecx, ecx
+call fcn_fffb6ef0 ; call 0xfffb6ef0
+mov dword [ebx + 0x16c6], eax
+mov eax, dword [ebp - 0x68]
+lea esp, [esp + 0x84]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb73ef: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+lea esp, [esp - 0x4c]
+mov ebx, dword [ebp + 8]
+lea edi, [ebx + 0x10b7]
+mov dword [ebp - 0x48], edi
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x4c], edi
+
+loc_fffb7410: ; not directly referenced
+lea eax, [esi - 2]
+cmp eax, 1
+ja short loc_fffb742c ; ja 0xfffb742c
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffb742c ; jne 0xfffb742c
+
+loc_fffb7421: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffb7410 ; jne 0xfffb7410
+jmp near loc_fffb75c1 ; jmp 0xfffb75c1
+
+loc_fffb742c: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + esi*4 - 0x28], 0
+add eax, 0xb0
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x44], eax
+
+loc_fffb7446: ; not directly referenced
+imul eax, dword [ebp - 0x30], 0x2fa
+mov edi, dword [ebp - 0x48]
+mov dword [ebp - 0x2c], 0
+lea eax, [edi + eax + 5]
+mov dword [ebp - 0x40], eax
+imul eax, dword [ebp - 0x30], 0x1347
+mov edi, dword [ebp - 0x4c]
+lea eax, [edi + eax + 8]
+mov dword [ebp - 0x34], eax
+
+loc_fffb746f: ; not directly referenced
+imul eax, dword [ebp - 0x2c], 0xfb
+mov edi, dword [ebp - 0x34]
+lea eax, [edi + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea ecx, [eax + 1]
+jne loc_fffb75a2 ; jne 0xfffb75a2
+imul eax, dword [ebp - 0x2c], 0x14f
+mov edi, dword [ebp - 0x40]
+cmp esi, 1
+lea edx, [edi + eax + 8]
+mov edi, dword [ebp - 0x2c]
+lea eax, [esi + edi*4 + 0x16]
+mov edi, dword [ebp - 0x34]
+lea eax, [edi + eax*8]
+mov edi, dword [eax]
+mov eax, dword [eax + 4]
+mov dword [ebp - 0x38], edi
+mov dword [ebp - 0x3c], eax
+je short loc_fffb750a ; je 0xfffb750a
+jb loc_fffb7578 ; jb 0xfffb7578
+cmp esi, 3
+ja loc_fffb7578 ; ja 0xfffb7578
+movzx edi, byte [ecx + 0xe5]
+cmp esi, 2
+jne short loc_fffb74df ; jne 0xfffb74df
+and edi, 1
+jne short loc_fffb74ea ; jne 0xfffb74ea
+xor eax, eax
+jmp near loc_fffb7595 ; jmp 0xfffb7595
+
+loc_fffb74df: ; not directly referenced
+xor eax, eax
+and edi, 2
+je loc_fffb7595 ; je 0xfffb7595
+
+loc_fffb74ea: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+lea edi, [edx + eax + 0x2d]
+xor edx, edx
+movzx eax, byte [edi + 1]
+cmp byte [ecx + 0xe6], 0x13
+jne short loc_fffb7504 ; jne 0xfffb7504
+movsx edx, byte [edi + 0x1a]
+
+loc_fffb7504: ; not directly referenced
+imul eax, dword [ebp - 0x38]
+jmp short loc_fffb7584 ; jmp 0xfffb7584
+
+loc_fffb750a: ; not directly referenced
+movzx ecx, byte [ebx + 0xff4]
+test cl, cl
+je short loc_fffb7578 ; je 0xfffb7578
+mov eax, dword [ebx + 0xff9]
+mov edx, 0x5f5e100
+test eax, eax
+mov edi, 0x186a0
+cmove eax, edx
+xor edx, edx
+div edi
+cmp dword [ebx + 0x16d2], 1
+mov edx, 0x4f790d55
+mov edi, 0x3b9aca00
+cmovne edi, edx
+mul ecx
+mov ecx, edx
+imul ecx, edi
+mul edi
+add edx, ecx
+xor ecx, ecx
+mov edi, edx
+or edi, eax
+je short loc_fffb756b ; je 0xfffb756b
+push edx
+push eax
+push 0x8ac72304
+push 0x89e80000
+call fcn_fffc91d0 ; call 0xfffc91d0
+mov ecx, eax
+add esp, 0x10
+
+loc_fffb756b: ; not directly referenced
+mov eax, dword [ebx + 0x16ca]
+cmp ecx, eax
+cmovae eax, ecx
+jmp short loc_fffb7595 ; jmp 0xfffb7595
+
+loc_fffb7578: ; not directly referenced
+movzx eax, byte [edx + 0x30]
+imul eax, dword [ebp - 0x38]
+movsx edx, byte [edx + 0x46]
+
+loc_fffb7584: ; not directly referenced
+imul edx, dword [ebp - 0x3c]
+mov ecx, dword [ebx + 0x16ca]
+add eax, edx
+cmp eax, ecx
+cmovb eax, ecx
+
+loc_fffb7595: ; not directly referenced
+mov edx, dword [ebp + esi*4 - 0x28]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + esi*4 - 0x28], eax
+
+loc_fffb75a2: ; not directly referenced
+inc dword [ebp - 0x2c]
+cmp dword [ebp - 0x2c], 2
+jne loc_fffb746f ; jne 0xfffb746f
+inc dword [ebp - 0x30]
+cmp dword [ebp - 0x30], 2
+je loc_fffb7421 ; je 0xfffb7421
+jmp near loc_fffb7446 ; jmp 0xfffb7446
+
+loc_fffb75c1: ; not directly referenced
+lea esi, [ebx + 0x3ad1]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffb75d2: ; not directly referenced
+cmp edx, 1
+ja short loc_fffb75e0 ; ja 0xfffb75e0
+cmp byte [ebx + 0x1746], 0
+je short loc_fffb760d ; je 0xfffb760d
+
+loc_fffb75e0: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x20]
+sub ecx, edi
+mov dword [esi], eax
+mov dword [ecx + ebx + 0x2980], eax
+mov dword [ecx + ebx + 0x3bc8], eax
+mov dword [ecx + ebx + 0x4e14], eax
+mov dword [ecx + ebx + 0x3cc7], eax
+mov dword [ecx + ebx + 0x4f0f], eax
+
+loc_fffb760d: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffb75d2 ; jne 0xfffb75d2
+mov eax, dword [ebx + 0x1021]
+mov eax, dword [ebp + eax*4 - 0x28]
+mov dword [ebx + 0x16ce], eax
+lea esp, [ebp - 0xc]
+pop ebx
+mov eax, 1
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7633: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+lea esp, [esp - 0x5c]
+mov edi, dword [ebp + 8]
+lea ebx, [edi + 0x10b7]
+mov dword [ebp - 0x4c], ebx
+lea ebx, [edi + 0x2974]
+mov dword [ebp - 0x50], ebx
+
+loc_fffb7654: ; not directly referenced
+lea eax, [esi - 2]
+cmp eax, 1
+ja short loc_fffb7670 ; ja 0xfffb7670
+cmp byte [edi + 0x1746], 0
+jne short loc_fffb7670 ; jne 0xfffb7670
+
+loc_fffb7665: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffb7654 ; jne 0xfffb7654
+jmp near loc_fffb77fe ; jmp 0xfffb77fe
+
+loc_fffb7670: ; not directly referenced
+imul ebx, esi, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + esi*4 - 0x28], 0
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x44], ebx
+mov dword [ebp - 0x48], eax
+
+loc_fffb768b: ; not directly referenced
+imul eax, dword [ebp - 0x34], 0x2fa
+mov ebx, dword [ebp - 0x4c]
+mov dword [ebp - 0x30], 0
+lea eax, [ebx + eax + 5]
+mov dword [ebp - 0x40], eax
+imul eax, dword [ebp - 0x34], 0x1347
+mov ebx, dword [ebp - 0x50]
+lea eax, [ebx + eax + 8]
+mov dword [ebp - 0x38], eax
+
+loc_fffb76b4: ; not directly referenced
+imul eax, dword [ebp - 0x30], 0xfb
+mov ebx, dword [ebp - 0x38]
+lea eax, [ebx + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+jne loc_fffb77df ; jne 0xfffb77df
+imul eax, dword [ebp - 0x30], 0x14f
+mov ebx, dword [ebp - 0x40]
+cmp esi, 1
+lea ecx, [ebx + eax + 8]
+mov ebx, dword [ebp - 0x44]
+mov ebx, dword [edx + ebx + 4]
+mov dword [ebp - 0x2c], ebx
+mov ebx, dword [ebp - 0x30]
+lea eax, [esi + ebx*4 + 0x16]
+mov ebx, dword [ebp - 0x38]
+mov eax, dword [ebx + eax*8]
+mov dword [ebp - 0x3c], eax
+je loc_fffb7787 ; je 0xfffb7787
+jb loc_fffb7793 ; jb 0xfffb7793
+cmp esi, 3
+ja loc_fffb7793 ; ja 0xfffb7793
+cmp esi, 2
+mov dl, byte [edx + 0xe5]
+jne short loc_fffb7729 ; jne 0xfffb7729
+and dl, 1
+jne short loc_fffb7734 ; jne 0xfffb7734
+xor eax, eax
+jmp near loc_fffb77c5 ; jmp 0xfffb77c5
+
+loc_fffb7729: ; not directly referenced
+xor eax, eax
+and dl, 2
+je loc_fffb77c5 ; je 0xfffb77c5
+
+loc_fffb7734: ; not directly referenced
+mov ebx, dword [ebp - 0x48]
+xor eax, eax
+cmp dword [ebp - 0x2c], 0
+movzx edx, word [ecx + ebx + 0xe9]
+je short loc_fffb77c5 ; je 0xfffb77c5
+imul edx, edx, 0x3e8
+mov eax, dword [ebp - 0x3c]
+mov dword [ebp - 0x54], edx
+cdq
+mov ecx, dword [ebp - 0x54]
+mov eax, dword [ebp - 0x54]
+imul ecx, edx
+mul dword [ebp - 0x3c]
+xor ebx, ebx
+add edx, ecx
+mov ecx, dword [ebp - 0x2c]
+mov dword [ebp - 0x60], eax
+mov dword [ebp - 0x5c], edx
+dec ecx
+add ecx, dword [ebp - 0x60]
+adc ebx, dword [ebp - 0x5c]
+xor edx, edx
+push edx
+mov eax, dword [ebp - 0x2c]
+push eax
+push ebx
+push ecx
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+jmp short loc_fffb77c5 ; jmp 0xfffb77c5
+
+loc_fffb7787: ; not directly referenced
+movzx eax, word [ecx + 0x136]
+test ax, ax
+jne short loc_fffb77c5 ; jne 0xfffb77c5
+
+loc_fffb7793: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x2c], 0
+je short loc_fffb77c5 ; je 0xfffb77c5
+cmp dword [edx + 0xc5], 2
+mov eax, 0x3b8260
+mov ecx, 0x7704c0
+mov ebx, 0x3e8
+cmove ecx, eax
+mov eax, dword [ebp - 0x2c]
+xor edx, edx
+div ebx
+xor edx, edx
+mov ebx, eax
+lea eax, [ecx + eax - 1]
+div ebx
+
+loc_fffb77c5: ; not directly referenced
+cmp eax, 0xffff
+mov edx, 0xffff
+cmovbe edx, eax
+mov eax, dword [ebp + esi*4 - 0x28]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + esi*4 - 0x28], edx
+
+loc_fffb77df: ; not directly referenced
+inc dword [ebp - 0x30]
+cmp dword [ebp - 0x30], 2
+jne loc_fffb76b4 ; jne 0xfffb76b4
+inc dword [ebp - 0x34]
+cmp dword [ebp - 0x34], 2
+je loc_fffb7665 ; je 0xfffb7665
+jmp near loc_fffb768b ; jmp 0xfffb768b
+
+loc_fffb77fe: ; not directly referenced
+lea ebx, [edi + 0x3ae3]
+mov edx, 0xfffffffe
+lea esi, [edi + 0x3acd]
+
+loc_fffb780f: ; not directly referenced
+cmp edx, 1
+ja short loc_fffb781d ; ja 0xfffb781d
+cmp byte [edi + 0x1746], 0
+je short loc_fffb7850 ; je 0xfffb7850
+
+loc_fffb781d: ; not directly referenced
+mov ecx, ebx
+mov eax, dword [ebp + edx*4 - 0x20]
+sub ecx, esi
+mov word [ebx], ax
+mov word [ecx + edi + 0x2980], ax
+mov word [ecx + edi + 0x3bc8], ax
+mov word [ecx + edi + 0x4e14], ax
+mov word [ecx + edi + 0x3cc7], ax
+mov word [ecx + edi + 0x4f0f], ax
+
+loc_fffb7850: ; not directly referenced
+inc edx
+add ebx, 0x2a
+cmp edx, 2
+jne short loc_fffb780f ; jne 0xfffb780f
+lea esp, [ebp - 0xc]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7866: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+lea esp, [esp - 0x34]
+mov edx, dword [ebp + 8]
+mov eax, dword [edx + 0x1005]
+lea ecx, [edx + 0x10b7]
+lea ebx, [edx + 0x2974]
+mov dword [ebp - 0x28], eax
+mov dword [ebp - 0x3c], ecx
+mov dword [ebp - 0x40], ebx
+
+loc_fffb7890: ; not directly referenced
+lea eax, [esi - 2]
+mov ecx, 0x4b0
+cmp eax, 1
+ja short loc_fffb78b8 ; ja 0xfffb78b8
+cmp byte [edx + 0x1746], 0
+jne short loc_fffb78b6 ; jne 0xfffb78b6
+
+loc_fffb78a6: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffb7890 ; jne 0xfffb7890
+mov eax, 0xfffffffe
+jmp near loc_fffb7a86 ; jmp 0xfffb7a86
+
+loc_fffb78b6: ; not directly referenced
+xor ecx, ecx
+
+loc_fffb78b8: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + esi*4 - 0x1c], ecx
+add eax, 0xb0
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x38], eax
+
+loc_fffb78ce: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0x2fa
+mov ecx, dword [ebp - 0x3c]
+mov ebx, dword [ebp - 0x40]
+mov dword [ebp - 0x20], 0
+lea eax, [ecx + eax + 5]
+mov dword [ebp - 0x2c], eax
+imul eax, dword [ebp - 0x24], 0x1347
+lea eax, [ebx + eax + 8]
+mov dword [ebp - 0x30], eax
+
+loc_fffb78f7: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0xfb
+mov ebx, dword [ebp - 0x30]
+lea ecx, [ebx + eax + 0x1150]
+cmp dword [ecx + 1], 2
+lea eax, [ecx + 1]
+jne loc_fffb7a67 ; jne 0xfffb7a67
+imul ecx, dword [ebp - 0x20], 0x14f
+mov ebx, dword [ebp - 0x2c]
+cmp esi, 1
+lea ecx, [ebx + ecx + 8]
+je short loc_fffb79a0 ; je 0xfffb79a0
+jb loc_fffb79ae ; jb 0xfffb79ae
+cmp esi, 3
+ja short loc_fffb79ae ; ja 0xfffb79ae
+cmp esi, 2
+mov bl, byte [eax + 0xe5]
+jne short loc_fffb794a ; jne 0xfffb794a
+and bl, 1
+jne short loc_fffb7955 ; jne 0xfffb7955
+xor eax, eax
+jmp near loc_fffb7a5a ; jmp 0xfffb7a5a
+
+loc_fffb794a: ; not directly referenced
+xor eax, eax
+and bl, 2
+je loc_fffb7a5a ; je 0xfffb7a5a
+
+loc_fffb7955: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+mov cl, byte [ecx + eax + 0x2d]
+mov eax, 0x3e7
+mov ebx, ecx
+and ebx, 0x1f
+imul ebx, ebx, 0x32
+cmp ebx, 0x3e7
+cmovbe eax, ebx
+mov ebx, 0x4b0
+shr cl, 5
+and ecx, 3
+imul ecx, ecx, 0x3e8
+add eax, ecx
+cmp eax, 0x4b0
+cmovae ebx, eax
+mov eax, 0x672
+cmp ebx, 0x672
+cmovbe eax, ebx
+jmp near loc_fffb7a5a ; jmp 0xfffb7a5a
+
+loc_fffb79a0: ; not directly referenced
+mov eax, dword [edx + 0x101d]
+test eax, eax
+jne loc_fffb7a5a ; jne 0xfffb7a5a
+
+loc_fffb79ae: ; not directly referenced
+mov al, byte [ecx + 0x2a]
+mov bl, al
+mov cl, al
+shr bl, 1
+and ecx, 1
+and ebx, 1
+mov byte [ebp - 0x31], cl
+mov byte [ebp - 0x34], bl
+mov bl, al
+shr bl, 2
+and ebx, 1
+cmp dword [ebp - 0x28], 0x40650
+je short loc_fffb79f7 ; je 0xfffb79f7
+cmp dword [ebp - 0x28], 0x40660
+mov eax, 0x5dc
+sete byte [ebp - 0x32]
+cmp dword [ebp - 0x28], 0x306c0
+mov cl, byte [ebp - 0x32]
+sete byte [ebp - 0x33]
+or cl, byte [ebp - 0x33]
+je short loc_fffb7a47 ; je 0xfffb7a47
+
+loc_fffb79f7: ; not directly referenced
+mov al, bl
+and edi, 0xfffffff9
+and eax, 1
+lea ebx, [eax + eax]
+mov al, byte [ebp - 0x34]
+and eax, 1
+or edi, ebx
+shl eax, 2
+or edi, eax
+mov al, byte [ebp - 0x31]
+xor eax, 1
+and edi, 0xfffffff7
+shl eax, 3
+or edi, eax
+mov eax, edi
+and eax, 4
+cmp al, 1
+sbb eax, eax
+and eax, 0x96
+add eax, 0x546
+cmp dword [ebp - 0x28], 0x40650
+jne short loc_fffb7a47 ; jne 0xfffb7a47
+test edi, 2
+mov ecx, 0x4b0
+cmovne eax, ecx
+
+loc_fffb7a47: ; not directly referenced
+test esi, esi
+jne short loc_fffb7a5a ; jne 0xfffb7a5a
+cmp dword [edx + 0xffd], 1
+mov ecx, 0x5dc
+cmove eax, ecx
+
+loc_fffb7a5a: ; not directly referenced
+mov ecx, dword [ebp + esi*4 - 0x1c]
+cmp eax, ecx
+cmovb eax, ecx
+mov dword [ebp + esi*4 - 0x1c], eax
+
+loc_fffb7a67: ; not directly referenced
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+jne loc_fffb78f7 ; jne 0xfffb78f7
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+je loc_fffb78a6 ; je 0xfffb78a6
+jmp near loc_fffb78ce ; jmp 0xfffb78ce
+
+loc_fffb7a86: ; not directly referenced
+cmp eax, 1
+ja short loc_fffb7a94 ; ja 0xfffb7a94
+cmp byte [edx + 0x1746], 0
+je short loc_fffb7abb ; je 0xfffb7abb
+
+loc_fffb7a94: ; not directly referenced
+mov ecx, dword [ebp + eax*4 - 0x14]
+mov dword [edx + eax*4 + 0x1734], ecx
+mov dword [edx + eax*4 + 0x3b81], ecx
+mov dword [edx + eax*4 + 0x3c7c], ecx
+mov dword [edx + eax*4 + 0x4ec8], ecx
+mov dword [edx + eax*4 + 0x4fc3], ecx
+
+loc_fffb7abb: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffb7a86 ; jne 0xfffb7a86
+lea esp, [esp + 0x34]
+mov al, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7acc: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x38]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+mov dword [ebp - 0x3c], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x40], esi
+
+loc_fffb7aed: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffb7b09 ; ja 0xfffb7b09
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffb7b09 ; jne 0xfffb7b09
+
+loc_fffb7afe: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb7aed ; jne 0xfffb7aed
+jmp near loc_fffb7c2b ; jmp 0xfffb7c2b
+
+loc_fffb7b09: ; not directly referenced
+xor edx, edx
+cmp ecx, 1
+setbe dl
+mov dword [ebp - 0x20], 0
+imul esi, ecx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], edx
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x38], eax
+
+loc_fffb7b28: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov esi, dword [ebp - 0x3c]
+xor edi, edi
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x2c], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov esi, dword [ebp - 0x40]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffb7b4c: ; not directly referenced
+imul eax, edi, 0xfb
+mov esi, dword [ebp - 0x28]
+lea eax, [esi + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+jne loc_fffb7c0f ; jne 0xfffb7c0f
+imul eax, edi, 0x14f
+mov esi, dword [ebp - 0x2c]
+cmp ecx, 1
+lea eax, [esi + eax + 8]
+mov esi, dword [ebp - 0x34]
+mov dword [ebp - 0x44], eax
+lea eax, [ecx + edi*4 + 0x16]
+mov esi, dword [edx + esi + 4]
+mov dword [ebp - 0x24], esi
+mov esi, dword [ebp - 0x28]
+mov esi, dword [esi + eax*8]
+mov dword [ebp - 0x30], esi
+je short loc_fffb7be8 ; je 0xfffb7be8
+jb short loc_fffb7bfd ; jb 0xfffb7bfd
+cmp ecx, 3
+ja short loc_fffb7bfd ; ja 0xfffb7bfd
+cmp ecx, 2
+mov dl, byte [edx + 0xe5]
+jne short loc_fffb7bb0 ; jne 0xfffb7bb0
+and dl, 1
+jne short loc_fffb7bb7 ; jne 0xfffb7bb7
+xor esi, esi
+jmp short loc_fffb7c02 ; jmp 0xfffb7c02
+
+loc_fffb7bb0: ; not directly referenced
+xor esi, esi
+and dl, 2
+je short loc_fffb7c02 ; je 0xfffb7c02
+
+loc_fffb7bb7: ; not directly referenced
+mov esi, dword [ebp - 0x38]
+mov edx, dword [ebp - 0x44]
+movzx eax, byte [edx + esi + 0xf4]
+xor esi, esi
+cmp dword [ebp - 0x24], 0
+je short loc_fffb7c02 ; je 0xfffb7c02
+imul eax, dword [ebp - 0x30]
+mov esi, dword [ebp - 0x24]
+xor edx, edx
+lea eax, [esi + eax - 1]
+div esi
+mov esi, 2
+test eax, eax
+cmovne esi, eax
+jmp short loc_fffb7c02 ; jmp 0xfffb7c02
+
+loc_fffb7be8: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+mov ax, word [edx + 0x128]
+movzx esi, ax
+test ax, ax
+cmove esi, ecx
+jmp short loc_fffb7c02 ; jmp 0xfffb7c02
+
+loc_fffb7bfd: ; not directly referenced
+mov esi, 1
+
+loc_fffb7c02: ; not directly referenced
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp esi, eax
+cmovb esi, eax
+mov dword [ebp + ecx*4 - 0x1c], esi
+
+loc_fffb7c0f: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffb7b4c ; jne 0xfffb7b4c
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+je loc_fffb7afe ; je 0xfffb7afe
+jmp near loc_fffb7b28 ; jmp 0xfffb7b28
+
+loc_fffb7c2b: ; not directly referenced
+lea esi, [ebx + 0x3ad5]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffb7c3c: ; not directly referenced
+cmp edx, 1
+ja short loc_fffb7c4a ; ja 0xfffb7c4a
+cmp byte [ebx + 0x1746], 0
+je short loc_fffb7c7d ; je 0xfffb7c7d
+
+loc_fffb7c4a: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffb7c7d: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffb7c3c ; jne 0xfffb7c3c
+lea esp, [esp + 0x38]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7c94: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+mov dword [ebp - 0x3c], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x40], esi
+
+loc_fffb7cb5: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffb7cd1 ; ja 0xfffb7cd1
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffb7cd1 ; jne 0xfffb7cd1
+
+loc_fffb7cc6: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb7cb5 ; jne 0xfffb7cb5
+jmp near loc_fffb7df3 ; jmp 0xfffb7df3
+
+loc_fffb7cd1: ; not directly referenced
+imul esi, ecx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x38], eax
+
+loc_fffb7cec: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov esi, dword [ebp - 0x3c]
+xor edi, edi
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov esi, dword [ebp - 0x40]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffb7d10: ; not directly referenced
+imul eax, edi, 0xfb
+mov esi, dword [ebp - 0x28]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea eax, [edx + 1]
+mov dword [ebp - 0x48], eax
+jne loc_fffb7dd7 ; jne 0xfffb7dd7
+imul edx, edi, 0x14f
+mov esi, dword [ebp - 0x30]
+cmp ecx, 1
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x44], edx
+mov edx, dword [ebp - 0x34]
+mov esi, dword [eax + edx + 4]
+mov edx, dword [ebp - 0x28]
+lea eax, [ecx + edi*4 + 0x16]
+mov edx, dword [edx + eax*8]
+mov dword [ebp - 0x24], edx
+je short loc_fffb7d97 ; je 0xfffb7d97
+jb short loc_fffb7da6 ; jb 0xfffb7da6
+cmp ecx, 3
+ja short loc_fffb7da6 ; ja 0xfffb7da6
+mov eax, dword [ebp - 0x48]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffb7d77 ; jne 0xfffb7d77
+and dl, 1
+jne short loc_fffb7d7e ; jne 0xfffb7d7e
+xor eax, eax
+jmp short loc_fffb7dbf ; jmp 0xfffb7dbf
+
+loc_fffb7d77: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffb7dbf ; je 0xfffb7dbf
+
+loc_fffb7d7e: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edx, dword [ebp - 0x38]
+movzx edx, byte [eax + edx + 0xf1]
+xor eax, eax
+test esi, esi
+mov dword [ebp - 0x44], edx
+je short loc_fffb7dbf ; je 0xfffb7dbf
+jmp short loc_fffb7db3 ; jmp 0xfffb7db3
+
+loc_fffb7d97: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+movzx eax, word [edx + 0x14c]
+test ax, ax
+jne short loc_fffb7dbf ; jne 0xfffb7dbf
+
+loc_fffb7da6: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffb7dbf ; je 0xfffb7dbf
+mov eax, dword [ebp - 0x44]
+movzx edx, byte [eax + 0x3e]
+
+loc_fffb7db3: ; not directly referenced
+imul edx, dword [ebp - 0x24]
+lea eax, [esi + edx - 1]
+xor edx, edx
+div esi
+
+loc_fffb7dbf: ; not directly referenced
+cmp eax, 0xa
+mov edx, 0xa
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffb7dd7: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffb7d10 ; jne 0xfffb7d10
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+je loc_fffb7cc6 ; je 0xfffb7cc6
+jmp near loc_fffb7cec ; jmp 0xfffb7cec
+
+loc_fffb7df3: ; not directly referenced
+lea esi, [ebx + 0x3af9]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffb7e04: ; not directly referenced
+cmp edx, 1
+ja short loc_fffb7e12 ; ja 0xfffb7e12
+cmp byte [ebx + 0x1746], 0
+je short loc_fffb7e45 ; je 0xfffb7e45
+
+loc_fffb7e12: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffb7e45: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffb7e04 ; jne 0xfffb7e04
+lea esp, [esp + 0x3c]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7e5c: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+mov dword [ebp - 0x3c], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x40], esi
+
+loc_fffb7e7d: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffb7e99 ; ja 0xfffb7e99
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffb7e99 ; jne 0xfffb7e99
+
+loc_fffb7e8e: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb7e7d ; jne 0xfffb7e7d
+jmp near loc_fffb7fd7 ; jmp 0xfffb7fd7
+
+loc_fffb7e99: ; not directly referenced
+imul esi, ecx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x38], eax
+
+loc_fffb7eb4: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov esi, dword [ebp - 0x3c]
+xor edi, edi
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov esi, dword [ebp - 0x40]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffb7ed8: ; not directly referenced
+imul eax, edi, 0xfb
+mov esi, dword [ebp - 0x28]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea eax, [edx + 1]
+mov dword [ebp - 0x48], eax
+jne loc_fffb7fbb ; jne 0xfffb7fbb
+imul edx, edi, 0x14f
+mov esi, dword [ebp - 0x30]
+cmp ecx, 1
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x44], edx
+mov edx, dword [ebp - 0x34]
+mov esi, dword [eax + edx + 4]
+mov edx, dword [ebp - 0x28]
+lea eax, [ecx + edi*4 + 0x16]
+mov edx, dword [edx + eax*8]
+mov dword [ebp - 0x24], edx
+je short loc_fffb7f67 ; je 0xfffb7f67
+jb short loc_fffb7f76 ; jb 0xfffb7f76
+cmp ecx, 3
+ja short loc_fffb7f76 ; ja 0xfffb7f76
+mov eax, dword [ebp - 0x48]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffb7f3f ; jne 0xfffb7f3f
+and dl, 1
+jne short loc_fffb7f46 ; jne 0xfffb7f46
+xor eax, eax
+jmp short loc_fffb7f8f ; jmp 0xfffb7f8f
+
+loc_fffb7f3f: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffb7f8f ; je 0xfffb7f8f
+
+loc_fffb7f46: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edx, dword [ebp - 0x38]
+movzx edx, byte [eax + edx + 0xe5]
+xor eax, eax
+test esi, esi
+mov dword [ebp - 0x44], edx
+je short loc_fffb7f8f ; je 0xfffb7f8f
+imul edx, dword [ebp - 0x24]
+lea eax, [esi + edx - 1]
+jmp short loc_fffb7f8b ; jmp 0xfffb7f8b
+
+loc_fffb7f67: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+movzx eax, word [edx + 0x14a]
+test ax, ax
+jne short loc_fffb7f8f ; jne 0xfffb7f8f
+
+loc_fffb7f76: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffb7f8f ; je 0xfffb7f8f
+mov edx, dword [ebp - 0x44]
+movzx eax, byte [edx + 0x35]
+imul eax, dword [ebp - 0x24]
+lea eax, [esi + eax - 1]
+
+loc_fffb7f8b: ; not directly referenced
+xor edx, edx
+div esi
+
+loc_fffb7f8f: ; not directly referenced
+mov edx, eax
+and edx, 0xfffffffd
+cmp edx, 9
+je short loc_fffb7f9e ; je 0xfffb7f9e
+cmp edx, 0xd
+jne short loc_fffb7fa3 ; jne 0xfffb7fa3
+
+loc_fffb7f9e: ; not directly referenced
+lea edx, [eax + 1]
+jmp short loc_fffb7fae ; jmp 0xfffb7fae
+
+loc_fffb7fa3: ; not directly referenced
+cmp eax, 0x10
+mov edx, 0x10
+cmovbe edx, eax
+
+loc_fffb7fae: ; not directly referenced
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffb7fbb: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffb7ed8 ; jne 0xfffb7ed8
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+je loc_fffb7e8e ; je 0xfffb7e8e
+jmp near loc_fffb7eb4 ; jmp 0xfffb7eb4
+
+loc_fffb7fd7: ; not directly referenced
+lea esi, [ebx + 0x3af7]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffb7fe8: ; not directly referenced
+cmp edx, 1
+ja short loc_fffb7ff6 ; ja 0xfffb7ff6
+cmp byte [ebx + 0x1746], 0
+je short loc_fffb8029 ; je 0xfffb8029
+
+loc_fffb7ff6: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffb8029: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffb7fe8 ; jne 0xfffb7fe8
+lea esp, [esp + 0x3c]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8040: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 0x10
+mov ebp, esp
+push edi
+push esi
+lea eax, [ebp - 0x158]
+push ebx
+lea esp, [esp - 0x19c]
+mov ebx, dword [ebp + 8]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x15e]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x130
+lea eax, [ebp - 0x148]
+lea esi, [ebx + 0x16be]
+call fcn_fffa119f ; call 0xfffa119f
+xor eax, eax
+cmp dword [ebx + 0x1749], 2
+sete al
+mov dword [ebp - 0x170], 0
+cmp eax, 1
+mov dword [ebp - 0x188], eax
+mov dword [ebp - 0x184], 0
+mov dword [ebp - 0x180], esi
+sbb eax, eax
+and eax, 7
+add eax, 0xa
+movzx eax, al
+mov dword [ebp - 0x198], eax
+
+loc_fffb80cc: ; not directly referenced
+mov dword [ebp - 0x178], 1
+mov cl, byte [ebp - 0x170]
+xor esi, esi
+mov byte [ebp - 0x174], 0
+shl dword [ebp - 0x178], cl
+movzx edi, byte [ebp - 0x178]
+
+loc_fffb80f2: ; not directly referenced
+mov ecx, edi
+mov edx, esi
+mov eax, ebx
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0x174], al
+movzx ecx, byte [ebp - 0x174]
+bt ecx, esi
+mov dword [ebp - 0x16c], ecx
+jae short loc_fffb8136 ; jae 0xfffb8136
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0x180]
+movzx ecx, byte [ebx + 0x1755]
+lea eax, [edx + eax + 0x13b7]
+xor edx, edx
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffb8136: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffb80f2 ; jne 0xfffb80f2
+cmp byte [ebp - 0x174], 0
+je loc_fffb857d ; je 0xfffb857d
+sub esp, 0xc
+mov ecx, 0x11
+push 0
+mov edx, dword [ebp - 0x16c]
+mov eax, ebx
+call fcn_fffc5844 ; call 0xfffc5844
+xor si, si
+lea ecx, [ebx + 0x1774]
+add esp, 0x10
+mov dword [ebp - 0x174], ecx
+
+loc_fffb8172: ; not directly referenced
+mov eax, esi
+cmp al, 3
+je short loc_fffb81ca ; je 0xfffb81ca
+cmp al, 1
+jne short loc_fffb8185 ; jne 0xfffb8185
+mov byte [ebx + 0x1768], 9
+jmp short loc_fffb8190 ; jmp 0xfffb8190
+
+loc_fffb8185: ; not directly referenced
+cmp al, 4
+jne short loc_fffb8190 ; jne 0xfffb8190
+mov byte [ebx + 0x1768], 0
+
+loc_fffb8190: ; not directly referenced
+sub eax, 4
+lea edx, [ebp - 0x158]
+cmp al, 2
+mov ecx, dword [ebp - 0x16c]
+sbb eax, eax
+sub esp, 0xc
+and eax, 0x17
+push edx
+add eax, 0x1f
+mov edx, dword [ebp - 0x174]
+movzx eax, al
+push eax
+mov eax, ebx
+push 1
+push esi
+push dword [ebp - 0x170]
+call fcn_fffc0a00 ; call 0xfffc0a00
+add esp, 0x20
+
+loc_fffb81ca: ; not directly referenced
+inc esi
+cmp esi, 7
+jne short loc_fffb8172 ; jne 0xfffb8172
+sub esp, 0xc
+mov ecx, dword [ebp - 0x198]
+push 0
+mov edx, dword [ebp - 0x16c]
+mov eax, ebx
+call fcn_fffc1345 ; call 0xfffc1345
+add esp, 0x10
+cmp dword [ebp - 0x188], 0
+je loc_fffb82d7 ; je 0xfffb82d7
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x15c]
+lea esi, [ebp - 0x15a]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+mov eax, esi
+call fcn_fffa119f ; call 0xfffa119f
+lea ecx, [ebp - 0x15c]
+xor edx, edx
+push ecx
+mov eax, ebx
+mov ecx, dword [ebp - 0x16c]
+push 1
+push 0x20
+push edi
+call fcn_fffc177e ; call 0xfffc177e
+push esi
+mov eax, ebx
+mov ecx, dword [ebp - 0x16c]
+push 0xffffffffffffffff
+xor edx, edx
+push 0xffffffffffffffe0
+push edi
+call fcn_fffc177e ; call 0xfffc177e
+add esp, 0x20
+xor eax, eax
+
+loc_fffb8253: ; not directly referenced
+mov ecx, dword [ebp - 0x16c]
+bt ecx, eax
+jb short loc_fffb8266 ; jb 0xfffb8266
+
+loc_fffb825e: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffb8253 ; jne 0xfffb8253
+jmp short loc_fffb82a6 ; jmp 0xfffb82a6
+
+loc_fffb8266: ; not directly referenced
+imul edx, eax, 0x48
+mov esi, dword [ebp - 0x180]
+lea ecx, [esi + edx + 0xe36]
+xor edx, edx
+
+loc_fffb8278: ; not directly referenced
+bt edi, edx
+jae short loc_fffb8298 ; jae 0xfffb8298
+movzx esi, byte [ebp + eax - 0x15a]
+imul esi, esi, 0xa
+mov dword [ecx], esi
+movzx esi, byte [ebp + eax - 0x15c]
+imul esi, esi, 0xa
+mov dword [ecx + 4], esi
+
+loc_fffb8298: ; not directly referenced
+inc edx
+add ecx, 0x90
+cmp edx, 4
+jne short loc_fffb8278 ; jne 0xfffb8278
+jmp short loc_fffb825e ; jmp 0xfffb825e
+
+loc_fffb82a6: ; not directly referenced
+mov esi, dword [ebp - 0x178]
+mov eax, esi
+test byte [ebx + 0x3acb], al
+je short loc_fffb82cb ; je 0xfffb82cb
+push 0
+xor ecx, ecx
+xor edx, edx
+push 0
+mov eax, ebx
+push 3
+push edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffb82cb: ; not directly referenced
+mov edx, esi
+test byte [ebx + 0x4e12], dl
+je short loc_fffb8316 ; je 0xfffb8316
+jmp short loc_fffb82fe ; jmp 0xfffb82fe
+
+loc_fffb82d7: ; not directly referenced
+push eax
+lea eax, [ebp - 0x15e]
+mov ecx, dword [ebp - 0x16c]
+push 1
+xor edx, edx
+push 1
+push eax
+mov eax, ebx
+push 0x40
+push 0xffffffffffffffc0
+push 3
+push edi
+call fcn_fffc13c0 ; call 0xfffc13c0
+add esp, 0x20
+jmp short loc_fffb82a6 ; jmp 0xfffb82a6
+
+loc_fffb82fe: ; not directly referenced
+push 0
+xor ecx, ecx
+mov edx, 1
+push 0
+mov eax, ebx
+push 3
+push edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffb8316: ; not directly referenced
+sub esp, 0xc
+lea esi, [ebx + 0x2974]
+push ebx
+call fcn_fffbd7da ; call 0xfffbd7da
+lea eax, [ebp - 0x158]
+mov dword [esp], eax
+push 0x36
+mov ecx, dword [ebp - 0x16c]
+lea edx, [ebx + 0x1774]
+push 0
+mov eax, ebx
+push 0xd
+push dword [ebp - 0x170]
+call fcn_fffc0a00 ; call 0xfffc0a00
+add esp, 0x14
+push ebx
+call fcn_fffbd7da ; call 0xfffbd7da
+mov dword [ebp - 0x184], eax
+lea edx, [ebp - 0x148]
+mov eax, ebx
+call fcn_fffb6ba5 ; call 0xfffb6ba5
+imul eax, dword [ebp - 0x170], 0x90
+mov edi, dword [ebp - 0x180]
+mov dword [ebp - 0x18c], esi
+add esp, 0x10
+mov dword [ebp - 0x174], 0
+lea ecx, [edi + eax + 0xe36]
+mov eax, dword [ebp - 0x170]
+lea eax, [eax*4 + 0x320]
+mov dword [ebp - 0x194], eax
+
+loc_fffb83a6: ; not directly referenced
+imul eax, dword [ebp - 0x174], 0x1347
+mov dl, byte [ebp - 0x178]
+test byte [ebx + eax + 0x3acb], dl
+jne short loc_fffb83d6 ; jne 0xfffb83d6
+
+loc_fffb83bf: ; not directly referenced
+inc dword [ebp - 0x174]
+add ecx, 0x48
+cmp dword [ebp - 0x174], 2
+jne short loc_fffb83a6 ; jne 0xfffb83a6
+jmp near loc_fffb857d ; jmp 0xfffb857d
+
+loc_fffb83d6: ; not directly referenced
+mov esi, dword [ebp - 0x18c]
+mov edi, dword [ebp - 0x194]
+xor edx, edx
+lea eax, [esi + eax + 8]
+add edi, eax
+mov dword [ebp - 0x16c], edi
+add edi, 0xd
+mov dword [ebp - 0x1a4], eax
+mov dword [ebp - 0x1a0], edi
+mov eax, dword [ecx]
+mov edi, 0xa
+div edi
+mov esi, dword [ebp - 0x16c]
+xor edx, edx
+mov byte [ebp - 0x16c], 0
+mov byte [esi + 0xd], al
+mov eax, dword [ecx + 4]
+div edi
+mov esi, dword [ebp - 0x1a0]
+xor edx, edx
+mov byte [esi + 1], al
+mov eax, dword [ecx + 0x240]
+div edi
+xor edx, edx
+mov byte [esi + 3], al
+mov eax, dword [ecx + 0x244]
+div edi
+xor edx, edx
+mov byte [esi + 2], al
+mov eax, dword [ebp - 0x1a4]
+mov esi, dword [ebp - 0x170]
+lea esi, [eax + esi*2 + 0x10b0]
+mov eax, dword [ecx - 0x480]
+div edi
+xor edx, edx
+mov byte [esi + 0xd], al
+mov eax, dword [ecx - 0x47c]
+div edi
+xor edx, edx
+mov byte [esi + 0xe], al
+mov eax, dword [ebp - 0x1a4]
+mov esi, dword [ebp - 0x170]
+lea esi, [eax + esi*2 + 0x10c0]
+mov eax, dword [ecx - 0x240]
+div edi
+xor edx, edx
+mov byte [esi + 5], al
+mov eax, dword [ecx - 0x23c]
+div edi
+mov byte [esi + 6], al
+imul esi, dword [ebp - 0x170], 0xd8
+mov dword [ebp - 0x190], esi
+jmp near loc_fffb8544 ; jmp 0xfffb8544
+
+loc_fffb84b1: ; not directly referenced
+mov eax, dword [ecx - 0xb40]
+mov edi, 0xa
+xor edx, edx
+div edi
+xor edx, edx
+mov byte [esi], al
+mov eax, dword [ecx - 0xb3c]
+div edi
+xor edx, edx
+mov byte [esi + 2], al
+mov eax, dword [ecx - 0x6c0]
+div edi
+xor edx, edx
+mov byte [esi + 0x360], al
+mov eax, dword [ecx - 0x6bc]
+div edi
+xor edx, edx
+mov byte [esi + 0x362], al
+mov eax, dword [ecx - 0xd80]
+div edi
+xor edx, edx
+mov byte [esi + 0x6c2], al
+mov eax, dword [ecx - 0xd7c]
+div edi
+xor edx, edx
+mov byte [esi + 0x6c0], al
+mov eax, dword [ecx - 0x900]
+div edi
+xor edx, edx
+mov byte [esi + 0xa22], al
+mov eax, dword [ecx - 0x8fc]
+div edi
+mov byte [esi + 0xa20], al
+add esi, 3
+dec byte [ebp - 0x179]
+jne loc_fffb84b1 ; jne 0xfffb84b1
+inc byte [ebp - 0x16c]
+
+loc_fffb8544: ; not directly referenced
+movzx eax, byte [ebp - 0x16c]
+cmp al, byte [ebx + 0x1755]
+jae loc_fffb83bf ; jae 0xfffb83bf
+imul eax, eax, 0x18
+mov esi, dword [ebp - 0x190]
+mov edi, dword [ebp - 0x1a4]
+mov byte [ebp - 0x179], 8
+lea eax, [eax + esi + 0x330]
+lea esi, [edi + eax + 0xd]
+jmp near loc_fffb84b1 ; jmp 0xfffb84b1
+
+loc_fffb857d: ; not directly referenced
+inc dword [ebp - 0x170]
+cmp dword [ebp - 0x170], 4
+jne loc_fffb80cc ; jne 0xfffb80cc
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb85a6 ; jne 0xfffb85a6
+mov eax, dword [ebx + 0x103f]
+mov byte [eax + 0x4198], 0
+
+loc_fffb85a6: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb85bc ; jne 0xfffb85bc
+mov eax, dword [ebx + 0x103f]
+mov byte [eax + 0x4598], 0
+
+loc_fffb85bc: ; not directly referenced
+mov eax, dword [ebp - 0x184]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb85ca: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+push ecx
+mov eax, ebx
+push ecx
+movzx ecx, byte [ebx + 0x176b]
+lea esi, [ebx + 0x1774]
+push 0
+mov edx, esi
+push 0xf
+push 1
+push 0
+push 1
+push 2
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+test eax, eax
+jne short loc_fffb861e ; jne 0xfffb861e
+push edx
+mov eax, ebx
+push edx
+movzx ecx, byte [ebx + 0x176b]
+mov edx, esi
+push 1
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+
+loc_fffb861e: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffb8625: ; not directly referenced
+push ebp
+mov ecx, 2
+mov ebp, esp
+lea esp, [esp - 0x10]
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x176b]
+push 0xa
+push 1
+call fcn_fffb03ba ; call 0xfffb03ba
+leave
+ret
+
+fcn_fffb8646: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+push esi
+xor esi, esi
+jmp short loc_fffb8677 ; jmp 0xfffb8677
+
+loc_fffb8653: ; not directly referenced
+movzx edi, byte [eax + esi]
+mov byte [ebp - 0xd], 8
+shl edi, 8
+xor ebx, edi
+
+loc_fffb8660: ; not directly referenced
+test bh, 0x80
+je short loc_fffb866f ; je 0xfffb866f
+add ebx, ebx
+xor ebx, 0x1021
+jmp short loc_fffb8671 ; jmp 0xfffb8671
+
+loc_fffb866f: ; not directly referenced
+add ebx, ebx
+
+loc_fffb8671: ; not directly referenced
+dec byte [ebp - 0xd]
+jne short loc_fffb8660 ; jne 0xfffb8660
+inc esi
+
+loc_fffb8677: ; not directly referenced
+cmp esi, edx
+jne short loc_fffb8653 ; jne 0xfffb8653
+mov word [ecx], bx
+mov eax, 1
+pop ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8689: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x60]
+push ebx
+lea esp, [esp - 0x9c]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x74], 0
+mov dword [ebp - 0x80], 0
+mov dword [ebp - 0x78], 0
+mov dword [ebp - 0x7c], 0x16
+mov dword [ebp - 0x6c], edi
+lea eax, [ebx + 0x10b7]
+lea edx, [ebx + 0x2974]
+mov dword [ebp - 0x8c], eax
+mov dword [ebp - 0x90], edx
+
+loc_fffb86d3: ; not directly referenced
+imul edx, dword [ebp - 0x74], 0x2fa
+mov eax, dword [ebp - 0x8c]
+mov ecx, dword [ebp - 0x90]
+mov dword [ebp - 0x70], 0
+mov dword [ebp - 0x88], edx
+lea eax, [eax + edx + 5]
+mov dword [ebp - 0x94], eax
+imul eax, dword [ebp - 0x74], 0x1347
+mov dword [ebp - 0x9c], eax
+lea ecx, [ecx + eax + 8]
+mov dword [ebp - 0x98], ecx
+
+loc_fffb8714: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0x14f
+mov edi, dword [ebp - 0x94]
+cmp dword [edi + eax + 8], 1
+ja loc_fffb8880 ; ja 0xfffb8880
+mov edx, dword [ebp - 0x88]
+mov esi, ref_fffcbb8c ; mov esi, 0xfffcbb8c
+mov ecx, 0xc
+mov edi, dword [ebp - 0x6c]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea eax, [eax + edx + 0x10c0]
+mov ecx, dword [ebp - 0x9c]
+lea esi, [ebx + eax + 0x28]
+imul eax, dword [ebp - 0x70], 0xfb
+lea eax, [eax + ecx + 0x3ab0]
+lea edi, [ebx + eax]
+xor eax, eax
+lea edx, [edi + 0x1d]
+mov dword [edi + 0x1d], 3
+mov dword [ebp - 0x84], edx
+
+loc_fffb8775: ; not directly referenced
+mov dl, byte [esi + eax]
+inc eax
+test dl, dl
+jne short loc_fffb87ae ; jne 0xfffb87ae
+cmp eax, 0x100
+jne short loc_fffb8775 ; jne 0xfffb8775
+jmp near loc_fffb8880 ; jmp 0xfffb8880
+
+loc_fffb8789: ; not directly referenced
+push eax
+push dword [ebp - 0x84]
+movzx eax, dl
+mov byte [ebp - 0xa0], dl
+push esi
+push ebx
+call dword [ebp + eax*4 - 0x60] ; ucall
+mov dl, byte [ebp - 0xa0]
+and eax, 1
+inc edx
+add esp, 0x10
+jmp short loc_fffb87b5 ; jmp 0xfffb87b5
+
+loc_fffb87ae: ; not directly referenced
+xor edx, edx
+mov eax, 1
+
+loc_fffb87b5: ; not directly referenced
+cmp dl, 0xb
+setbe cl
+test cl, al
+jne short loc_fffb8789 ; jne 0xfffb8789
+test eax, eax
+jne short loc_fffb87cf ; jne 0xfffb87cf
+mov dword [edi + 0x1d], 1
+jmp near loc_fffb8880 ; jmp 0xfffb8880
+
+loc_fffb87cf: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0x14f
+mov ecx, dword [ebp - 0x88]
+mov dword [edi + 0x1d], 2
+mov edx, 0xb
+lea esi, [eax + ecx + 0x10a0]
+add esi, ebx
+mov ecx, dword [ebp - 0x84]
+add ecx, 0xdb
+lea eax, [esi + 0xbd]
+call fcn_fffb8646 ; call 0xfffb8646
+cmp dword [esi + 0x24], 1
+jne short loc_fffb8815 ; jne 0xfffb8815
+mov dword [edi + 0x1d], 1
+
+loc_fffb8815: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0xfb
+mov edi, dword [ebp - 0x98]
+mov edx, dword [ebx + 0x1749]
+test edx, edx
+lea eax, [edi + eax + 0x1151]
+jne short loc_fffb8841 ; jne 0xfffb8841
+mov edx, dword [eax + 0xc5]
+mov dword [ebx + 0x1749], edx
+jmp short loc_fffb8853 ; jmp 0xfffb8853
+
+loc_fffb8841: ; not directly referenced
+cmp edx, dword [eax + 0xc5]
+mov edx, 0x19
+cmove edx, dword [ebp - 0x7c]
+mov dword [ebp - 0x7c], edx
+
+loc_fffb8853: ; not directly referenced
+cmp dword [ebp - 0x78], 0
+jne short loc_fffb8864 ; jne 0xfffb8864
+mov eax, dword [eax + 0xc9]
+mov dword [ebp - 0x78], eax
+jmp short loc_fffb8873 ; jmp 0xfffb8873
+
+loc_fffb8864: ; not directly referenced
+mov edx, dword [ebp - 0x78]
+cmp edx, dword [eax + 0xc9]
+jne loc_fffb89db ; jne 0xfffb89db
+
+loc_fffb8873: ; not directly referenced
+cmp dword [ebp - 0x7c], 0x19
+je loc_fffb89ed ; je 0xfffb89ed
+inc dword [ebp - 0x80]
+
+loc_fffb8880: ; not directly referenced
+inc dword [ebp - 0x70]
+cmp dword [ebp - 0x70], 2
+jne loc_fffb8714 ; jne 0xfffb8714
+inc dword [ebp - 0x74]
+cmp dword [ebp - 0x74], 2
+jne loc_fffb86d3 ; jne 0xfffb86d3
+cmp dword [ebp - 0x80], 0
+je loc_fffb89ed ; je 0xfffb89ed
+lea edi, [ebp - 0x60]
+mov esi, ref_fffcbbbc ; mov esi, 0xfffcbbbc
+mov ecx, 0x12
+mov eax, 1
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+jmp short loc_fffb88d8 ; jmp 0xfffb88d8
+
+loc_fffb88ba: ; not directly referenced
+sub esp, 0xc
+mov byte [ebp - 0xa0], cl
+movzx eax, cl
+push ebx
+call dword [ebp + eax*4 - 0x60] ; ucall
+mov cl, byte [ebp - 0xa0]
+and eax, 1
+inc ecx
+add esp, 0x10
+
+loc_fffb88d8: ; not directly referenced
+cmp cl, 0x11
+setbe dl
+test dl, al
+jne short loc_fffb88ba ; jne 0xfffb88ba
+test eax, eax
+je loc_fffb89ed ; je 0xfffb89ed
+lea edi, [ebx + 0x2974]
+mov byte [ebx + 0x1740], 1
+mov dword [ebp - 0x70], 0
+mov dword [ebp - 0x74], edi
+
+loc_fffb8901: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0x1347
+mov edx, dword [ebp - 0x74]
+lea eax, [edx + eax + 8]
+xor edx, edx
+mov byte [eax + 0xf0], 1
+
+loc_fffb8918: ; not directly referenced
+imul ecx, edx, 0xfb
+lea ecx, [eax + ecx + 0x1150]
+mov edi, dword [ecx + 1]
+lea esi, [ecx + 1]
+dec edi
+cmp edi, 1
+ja short loc_fffb8937 ; ja 0xfffb8937
+inc dword [eax + 0xf5]
+
+loc_fffb8937: ; not directly referenced
+cmp dword [ecx + 1], 2
+jne short loc_fffb8989 ; jne 0xfffb8989
+mov cl, byte [esi + 0xdd]
+mov byte [ebp - 0x78], 0
+lea edi, [ecx - 1]
+mov ecx, edi
+cmp cl, 1
+ja short loc_fffb8960 ; ja 0xfffb8960
+and edi, 0xff
+mov cl, byte [edi + ref_fffcbc9d] ; mov cl, byte [edi - 0x34363]
+mov byte [ebp - 0x78], cl
+
+loc_fffb8960: ; not directly referenced
+movzx edi, byte [ebp - 0x78]
+lea ecx, [edx + edx]
+shl edi, cl
+mov ecx, edi
+or byte [eax + 0x114f], cl
+mov cl, byte [esi + 0xbc]
+and byte [eax + 0xf0], cl
+mov cl, byte [esi + 0xbc]
+and byte [ebx + 0x1740], cl
+
+loc_fffb8989: ; not directly referenced
+inc edx
+cmp edx, 2
+jne short loc_fffb8918 ; jne 0xfffb8918
+cmp dword [eax + 0xf5], 0
+je short loc_fffb89b9 ; je 0xfffb89b9
+cmp byte [eax + 0x114f], 0
+je short loc_fffb89b9 ; je 0xfffb89b9
+imul eax, dword [ebp - 0x70], 0x1347
+mov edi, dword [ebp - 0x74]
+inc byte [ebx + 0x297b]
+mov dword [edi + eax + 8], 2
+
+loc_fffb89b9: ; not directly referenced
+inc dword [ebp - 0x70]
+cmp dword [ebp - 0x70], 2
+jne loc_fffb8901 ; jne 0xfffb8901
+jmp short loc_fffb89e4 ; jmp 0xfffb89e4
+
+loc_fffb89c8: ; not directly referenced
+mov dword [ebx + 0x2974], 2
+mov dword [ebp - 0x7c], 0
+jmp short loc_fffb89ed ; jmp 0xfffb89ed
+
+loc_fffb89db: ; not directly referenced
+mov dword [ebp - 0x7c], 0x19
+jmp short loc_fffb89ed ; jmp 0xfffb89ed
+
+loc_fffb89e4: ; not directly referenced
+cmp byte [ebx + 0x297b], 0
+jne short loc_fffb89c8 ; jne 0xfffb89c8
+
+loc_fffb89ed: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb89f8: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x60]
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x28], eax
+mov dword [ebp - 0x20], 0x4024
+mov dword [ebp - 0x24], 0
+imul ebx, dword [eax + 0x1021], 0x2a
+lea edx, [eax + 0x16be]
+sub ebx, eax
+mov dword [ebp - 0x40], edx
+mov dword [ebp - 0x3c], ebx
+mov dword [ebp - 0x68], edx
+
+loc_fffb8a2e: ; not directly referenced
+imul edx, dword [ebp - 0x24], 0x1347
+mov esi, dword [ebp - 0x40]
+cmp dword [esi + edx + 0x12be], 2
+jne loc_fffb8be5 ; jne 0xfffb8be5
+mov ecx, dword [ebp - 0x3c]
+add ecx, dword [ebp - 0x28]
+mov edi, dword [ebp - 0x68]
+mov byte [ebp - 0x10], 0
+mov byte [ebp - 0xf], 2
+mov byte [ebp - 0xe], 3
+mov byte [ebp - 0xd], 2
+cmp word [eax + ecx + 0x2988], 2
+sete cl
+lea edx, [edi + edx + 0x12be]
+movzx ecx, cl
+mov dword [ebp - 0x6c], edx
+lea esi, [ecx + ecx]
+mov ebx, esi
+imul ecx, dword [eax + 0x1021], 0x2a
+add ecx, dword [ebp - 0x6c]
+mov edx, dword [eax + 0x103f]
+mov byte [ebp - 0x38], bl
+mov ebx, dword [ebp - 0x20]
+movzx esi, word [ecx + 0xc]
+lea edi, [ebx + edx - 0x20]
+mov edx, dword [edi]
+movzx esi, byte [ebp + esi - 0x11]
+and edx, 0x3fffffff
+shl esi, 0x1e
+or edx, esi
+mov esi, dword [ebp - 0x6c]
+mov dword [edi], edx
+mov dword [esi + 0x1a9], edx
+mov edx, dword [eax + 0x103f]
+cmp dword [eax + 0x1749], 2
+lea esi, [ebx + edx - 0x18]
+mov dx, word [ecx + 0xc]
+mov edi, dword [esi]
+mov ecx, dword [eax + 0x16c6]
+jne short loc_fffb8ae4 ; jne 0xfffb8ae4
+cmp ecx, 0x536
+sbb edx, edx
+add edx, 6
+jmp short loc_fffb8b11 ; jmp 0xfffb8b11
+
+loc_fffb8ae4: ; not directly referenced
+cmp ecx, 0x640
+ja short loc_fffb8af4 ; ja 0xfffb8af4
+movzx edx, dl
+add edx, 4
+jmp short loc_fffb8b11 ; jmp 0xfffb8b11
+
+loc_fffb8af4: ; not directly referenced
+cmp ecx, 0x74b
+ja short loc_fffb8b06 ; ja 0xfffb8b06
+cmp dl, 3
+sbb edx, edx
+add edx, 7
+jmp short loc_fffb8b11 ; jmp 0xfffb8b11
+
+loc_fffb8b06: ; not directly referenced
+cmp ecx, 0x856
+sbb edx, edx
+add edx, 8
+
+loc_fffb8b11: ; not directly referenced
+cmp edx, 0xf
+mov ecx, 0xf
+mov bl, byte [ebp - 0x38]
+mov byte [ebp - 0x60], 0
+cmovbe ecx, edx
+mov edx, dword [ebp - 0x6c]
+and ecx, 0xf
+and edi, 0xfffffc3f
+shl ecx, 6
+sub ebx, 4
+or edi, ecx
+mov byte [ebp - 0x61], bl
+mov dword [esi], edi
+mov byte [ebp - 0x38], 0
+mov dword [edx + 0x1b1], edi
+xor esi, esi
+mov byte [ebp - 0x50], 0
+xor ecx, ecx
+
+loc_fffb8b4e: ; not directly referenced
+mov edi, dword [ebp - 0x28]
+mov ebx, 1
+shl ebx, cl
+mov byte [ebp - 0x62], cl
+test byte [edi + 0x3acb], bl
+je short loc_fffb8bb3 ; je 0xfffb8bb3
+mov ebx, dword [ebp - 0x6c]
+mov dl, byte [ebp - 0x61]
+cmp cl, 2
+mov bl, byte [ebx + ecx + 0x10d1]
+lea edi, [edx + ebx]
+mov ebx, dword [ebp - 0x6c]
+mov edx, edi
+mov byte [ebx + ecx + 0x10d1], dl
+je short loc_fffb8ba1 ; je 0xfffb8ba1
+cmp cl, 3
+je short loc_fffb8bab ; je 0xfffb8bab
+cmp cl, 1
+je short loc_fffb8b97 ; je 0xfffb8b97
+mov esi, 0x3f
+and esi, edi
+jmp short loc_fffb8bb3 ; jmp 0xfffb8bb3
+
+loc_fffb8b97: ; not directly referenced
+mov edx, edi
+and edx, 0x3f
+mov byte [ebp - 0x60], dl
+jmp short loc_fffb8bb3 ; jmp 0xfffb8bb3
+
+loc_fffb8ba1: ; not directly referenced
+mov ebx, edi
+and ebx, 0x3f
+mov byte [ebp - 0x38], bl
+jmp short loc_fffb8bb3 ; jmp 0xfffb8bb3
+
+loc_fffb8bab: ; not directly referenced
+mov edx, edi
+and edx, 0x3f
+mov byte [ebp - 0x50], dl
+
+loc_fffb8bb3: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb8b4e ; jne 0xfffb8b4e
+mov dl, byte [ebp - 0x60]
+mov cl, byte [ebp - 0x38]
+and edx, 0x3f
+and esi, 0x3f
+shl edx, 8
+and ecx, 0x3f
+shl ecx, 0x10
+or esi, edx
+mov dl, byte [ebp - 0x50]
+or esi, ecx
+shl edx, 0x18
+or esi, edx
+mov edx, dword [ebp - 0x20]
+add edx, dword [eax + 0x103f]
+mov dword [edx], esi
+
+loc_fffb8be5: ; not directly referenced
+inc dword [ebp - 0x24]
+add dword [ebp - 0x20], 0x400
+add dword [ebp - 0x28], 0x1347
+cmp dword [ebp - 0x24], 2
+jne loc_fffb8a2e ; jne 0xfffb8a2e
+lea esp, [esp + 0x60]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8c0b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb8c52 ; jne 0xfffb8c52
+cmp byte [ebx + 0x1740], 1
+jne short loc_fffb8c52 ; jne 0xfffb8c52
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x5004]
+and eax, 0xfcffffff
+or eax, 0x1000000
+mov dword [edx + 0x5004], eax
+mov edx, 0x3c
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+
+loc_fffb8c52: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb8c8c ; jne 0xfffb8c8c
+cmp byte [ebx + 0x1740], 1
+jne short loc_fffb8c8c ; jne 0xfffb8c8c
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x5008]
+and eax, 0xfcffffff
+or eax, 0x1000000
+mov dword [edx + 0x5008], eax
+mov edx, 0x3c
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+
+loc_fffb8c8c: ; not directly referenced
+lea edi, [ebp - 0x3c]
+mov esi, ref_fffcbca0 ; mov esi, 0xfffcbca0
+mov ecx, 9
+mov eax, ebx
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x48]
+mov esi, ref_fffcbcc4 ; mov esi, 0xfffcbcc4
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+push edx
+mov ecx, 0x1010101
+lea edi, [ebp - 0x3c]
+push edx
+xor edx, edx
+mov esi, 8
+push 0
+push 8
+call fcn_fffb1d24 ; call 0xfffb1d24
+add esp, 0x10
+
+loc_fffb8cc6: ; not directly referenced
+push eax
+mov ecx, 0x41041041
+push eax
+mov eax, ebx
+push esi
+add esi, 6
+push 6
+mov edx, dword [edi]
+add edi, 4
+call fcn_fffb1d24 ; call 0xfffb1d24
+add esp, 0x10
+cmp esi, 0x3e
+jne short loc_fffb8cc6 ; jne 0xfffb8cc6
+lea edx, [ebp - 0x48]
+mov eax, ebx
+call fcn_fffb2062 ; call 0xfffb2062
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffb8d0a ; jne 0xfffb8d0a
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4078], 0xa010102
+
+loc_fffb8d0a: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffb8d23 ; jne 0xfffb8d23
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4478], 0xa010102
+
+loc_fffb8d23: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8d2d: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edx, [ebp - 0x148]
+push ebx
+lea esp, [esp - 0x13c]
+mov ebx, dword [ebp + 8]
+mov eax, ebx
+call fcn_fffb6ba5 ; call 0xfffb6ba5
+cmp dword [ebx + 0x500a], 0
+je loc_fffb8de9 ; je 0xfffb8de9
+mov dx, word [ebx + 0x500e]
+xor ecx, ecx
+movzx eax, word [ebx + 0x5014]
+cmp dx, ax
+jbe short loc_fffb8d7e ; jbe 0xfffb8d7e
+movzx ecx, dx
+mov edx, ecx
+sub edx, eax
+mov eax, edx
+xor edx, edx
+shl eax, 8
+div ecx
+mov cl, al
+
+loc_fffb8d7e: ; not directly referenced
+mov dx, word [ebx + 0x5010]
+xor esi, esi
+movzx eax, word [ebx + 0x5016]
+cmp dx, ax
+jbe short loc_fffb8da5 ; jbe 0xfffb8da5
+movzx esi, dx
+mov edx, esi
+sub edx, eax
+mov eax, edx
+xor edx, edx
+shl eax, 8
+div esi
+mov esi, eax
+
+loc_fffb8da5: ; not directly referenced
+movzx edi, word [ebx + 0x5012]
+xor eax, eax
+movzx edx, word [ebx + 0x5018]
+cmp di, dx
+jbe short loc_fffb8dc5 ; jbe 0xfffb8dc5
+mov eax, edi
+sub eax, edx
+xor edx, edx
+shl eax, 8
+div edi
+
+loc_fffb8dc5: ; not directly referenced
+movzx eax, al
+xor edx, edx
+shl eax, 0x10
+mov dl, cl
+mov ecx, esi
+mov dh, cl
+and edx, 0xff00ffff
+or edx, eax
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x59b8], edx
+jmp short loc_fffb8df3 ; jmp 0xfffb8df3
+
+loc_fffb8de9: ; not directly referenced
+mov dword [ebx + 0x500a], 1
+
+loc_fffb8df3: ; not directly referenced
+lea esp, [esp + 0x13c]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8e01: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, eax
+call fcn_fffc6986 ; call 0xfffc6986
+lea esi, [eax + 0x2710]
+mov eax, dword [ebx + 0x103f]
+mov edx, dword [eax + 0x5030]
+or edx, 0x800000
+mov dword [eax + 0x5030], edx
+
+loc_fffb8e2b: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov eax, dword [eax + 0x5030]
+shr eax, 0x10
+test al, al
+jns short loc_fffb8e4e ; jns 0xfffb8e4e
+call fcn_fffc6986 ; call 0xfffc6986
+cmp esi, eax
+ja short loc_fffb8e2b ; ja 0xfffb8e2b
+mov eax, 0x11
+jmp short loc_fffb8e50 ; jmp 0xfffb8e50
+
+loc_fffb8e4e: ; not directly referenced
+xor eax, eax
+
+loc_fffb8e50: ; not directly referenced
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffb8e54: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, ecx
+push ebx
+lea esp, [esp - 0x3c]
+mov dword [ebp - 0x2c], edx
+call fcn_fffc6986 ; call 0xfffc6986
+add eax, 0x2710
+xor ecx, ecx
+mov dword [ebp - 0x34], eax
+mov edx, 4
+mov eax, dword [ebp + 0xc]
+call fcn_fffa119f ; call 0xfffa119f
+mov eax, dword [ebp - 0x2c]
+shl eax, 0xa
+mov ebx, eax
+mov dword [ebp - 0x30], eax
+add ebx, 0x4214
+
+loc_fffb8e92: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+add edx, ebx
+mov eax, dword [edx]
+mov ecx, eax
+shr ecx, 0x18
+test cl, cl
+jns loc_fffb8f72 ; jns 0xfffb8f72
+call fcn_fffc6986 ; call 0xfffc6986
+cmp dword [ebp - 0x34], eax
+ja short loc_fffb8e92 ; ja 0xfffb8e92
+
+loc_fffb8eb3: ; not directly referenced
+mov eax, 0x11
+jmp near loc_fffb8fd1 ; jmp 0xfffb8fd1
+
+loc_fffb8ebd: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+lea eax, [ebx + edx]
+mov eax, dword [eax]
+shr eax, 0x18
+test al, al
+jns loc_fffb8f99 ; jns 0xfffb8f99
+call fcn_fffc6986 ; call 0xfffc6986
+cmp esi, eax
+ja short loc_fffb8ebd ; ja 0xfffb8ebd
+jmp short loc_fffb8eb3 ; jmp 0xfffb8eb3
+
+loc_fffb8ede: ; not directly referenced
+mov edx, dword [ebp - 0x3c]
+cmp byte [edi + edx + 0x3bae], 0x20
+je short loc_fffb8efc ; je 0xfffb8efc
+
+loc_fffb8eeb: ; not directly referenced
+movzx ecx, byte [edi + 0x1755]
+lea ebx, [eax + eax]
+mov dword [ebp - 0x2c], ecx
+xor edx, edx
+jmp short loc_fffb8f1c ; jmp 0xfffb8f1c
+
+loc_fffb8efc: ; not directly referenced
+test al, 1
+je short loc_fffb8eeb ; je 0xfffb8eeb
+mov ecx, dword [ebp + 0xc]
+mov dl, byte [ecx + eax - 1]
+mov byte [ecx + eax], dl
+jmp short loc_fffb8f64 ; jmp 0xfffb8f64
+
+loc_fffb8f0c: ; not directly referenced
+mov ecx, dword [ebp - 0x34]
+movzx esi, byte [ecx + edx + 0x2a6]
+cmp ebx, esi
+je short loc_fffb8f23 ; je 0xfffb8f23
+inc edx
+
+loc_fffb8f1c: ; not directly referenced
+cmp edx, dword [ebp - 0x2c]
+jb short loc_fffb8f0c ; jb 0xfffb8f0c
+jmp short loc_fffb8f26 ; jmp 0xfffb8f26
+
+loc_fffb8f23: ; not directly referenced
+mov dword [ebp - 0x30], edx
+
+loc_fffb8f26: ; not directly referenced
+mov edx, eax
+mov ecx, dword [ebp - 0x34]
+shl edx, 4
+mov dword [ebp - 0x38], edx
+movzx edx, byte [ebp + eax - 0x1c]
+mov dword [ebp - 0x2c], edx
+mov edx, dword [ebp - 0x30]
+lea esi, [ecx + edx*8]
+xor edx, edx
+
+loc_fffb8f41: ; not directly referenced
+mov cl, dl
+mov ebx, dword [ebp - 0x2c]
+sar ebx, cl
+movzx ecx, byte [esi + edx + 0x2ae]
+sub ecx, dword [ebp - 0x38]
+and ebx, 1
+inc edx
+shl ebx, cl
+mov ecx, dword [ebp + 0xc]
+or byte [ecx + eax], bl
+cmp edx, 8
+jne short loc_fffb8f41 ; jne 0xfffb8f41
+
+loc_fffb8f64: ; not directly referenced
+inc eax
+cmp eax, 4
+jne loc_fffb8ede ; jne 0xfffb8ede
+xor al, al
+jmp short loc_fffb8fd1 ; jmp 0xfffb8fd1
+
+loc_fffb8f72: ; not directly referenced
+mov al, byte [ebp + 8]
+and esi, 3
+shl esi, 0x10
+and eax, 0xfff000ff
+or eax, esi
+or eax, 0x80000000
+mov dword [edx], eax
+call fcn_fffc6986 ; call 0xfffc6986
+lea esi, [eax + 0x2710]
+jmp near loc_fffb8ebd ; jmp 0xfffb8ebd
+
+loc_fffb8f99: ; not directly referenced
+imul eax, dword [ebp - 0x2c], 0x2fa
+mov ecx, dword [ebp - 0x30]
+mov dword [ebp - 0x30], 0
+lea eax, [edi + eax + 0x10bc]
+mov dword [ebp - 0x34], eax
+lea eax, [ecx + edx + 0x4218]
+imul edx, dword [ebp - 0x2c], 0x1347
+mov eax, dword [eax]
+mov dword [ebp - 0x1c], eax
+mov dword [ebp - 0x3c], edx
+xor eax, eax
+jmp near loc_fffb8ede ; jmp 0xfffb8ede
+
+loc_fffb8fd1: ; not directly referenced
+lea esp, [esp + 0x3c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8fda: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, edx
+push ebx
+shl esi, 0xa
+lea esp, [esp - 0x1c]
+mov dword [ebp - 0x24], ecx
+call fcn_fffc6986 ; call 0xfffc6986
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+lea eax, [esi + 0x4214]
+mov dword [ebp - 0x20], eax
+
+loc_fffb9004: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+mov eax, dword [ebp - 0x20]
+add eax, edx
+mov eax, dword [eax]
+mov ecx, eax
+shr ecx, 0x18
+test cl, cl
+jns loc_fffb90ad ; jns 0xfffb90ad
+call fcn_fffc6986 ; call 0xfffc6986
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffb9004 ; ja 0xfffb9004
+
+loc_fffb9028: ; not directly referenced
+mov eax, 0x11
+jmp near loc_fffb90c6 ; jmp 0xfffb90c6
+
+loc_fffb9032: ; not directly referenced
+add edx, esi
+mov ebx, dword [edx]
+or ebx, 0x80000000
+mov dword [edx], ebx
+
+loc_fffb903e: ; not directly referenced
+mov al, byte [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+mov ah, byte [ebp + 0xc]
+mov edx, dword [ebp - 0x24]
+or eax, 0x40000
+and ecx, 1
+shl ecx, 0x13
+and eax, 0xfff4ffff
+and edx, 3
+or eax, ecx
+shl edx, 0x10
+or eax, edx
+mov edx, dword [ebp - 0x20]
+add edx, dword [edi + 0x103f]
+or eax, 0x80000000
+mov dword [edx], eax
+call fcn_fffc6986 ; call 0xfffc6986
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+
+loc_fffb9081: ; not directly referenced
+mov edx, dword [edi + 0x103f]
+mov eax, dword [ebp - 0x20]
+add eax, edx
+mov eax, dword [eax]
+shr eax, 0x18
+test al, al
+jns short loc_fffb90be ; jns 0xfffb90be
+call fcn_fffc6986 ; call 0xfffc6986
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffb9081 ; ja 0xfffb9081
+jmp short loc_fffb9028 ; jmp 0xfffb9028
+
+loc_fffb90a1: ; not directly referenced
+add edx, esi
+and ebx, 0x7fffffff
+mov dword [edx], ebx
+jmp short loc_fffb90c4 ; jmp 0xfffb90c4
+
+loc_fffb90ad: ; not directly referenced
+add esi, 0x4010
+cmp dword [ebp + 0x14], 0
+je short loc_fffb903e ; je 0xfffb903e
+jmp near loc_fffb9032 ; jmp 0xfffb9032
+
+loc_fffb90be: ; not directly referenced
+cmp dword [ebp + 0x14], 0
+jne short loc_fffb90a1 ; jne 0xfffb90a1
+
+loc_fffb90c4: ; not directly referenced
+xor eax, eax
+
+loc_fffb90c6: ; not directly referenced
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb90cf: ; not directly referenced
+imul edx, edx, 0x1347
+push ebp
+mov ebp, esp
+push esi
+mov esi, ecx
+push ebx
+lea ebx, [eax + edx + 0x297c]
+mov edx, dword [ebx + 0xf5]
+cmp edx, 1
+je short loc_fffb9147 ; je 0xfffb9147
+cmp edx, 2
+jne loc_fffb928b ; jne 0xfffb928b
+mov cl, byte [ebx + 0x122e]
+cmp cl, 1
+jne short loc_fffb911f ; jne 0xfffb911f
+mov dl, byte [ebx + 0x1329]
+cmp dl, 1
+je loc_fffb928f ; je 0xfffb928f
+cmp dl, 2
+je loc_fffb9296 ; je 0xfffb9296
+jmp near loc_fffb928b ; jmp 0xfffb928b
+
+loc_fffb911f: ; not directly referenced
+xor edx, edx
+cmp cl, 2
+jne loc_fffb92ca ; jne 0xfffb92ca
+mov cl, byte [ebx + 0x1329]
+cmp cl, 1
+je loc_fffb929d ; je 0xfffb929d
+cmp cl, 2
+jne loc_fffb92ca ; jne 0xfffb92ca
+jmp near loc_fffb92a4 ; jmp 0xfffb92a4
+
+loc_fffb9147: ; not directly referenced
+mov dl, byte [ebx + 0x122e]
+cmp dl, 1
+je loc_fffb92ab ; je 0xfffb92ab
+mov cl, byte [ebx + 0x1329]
+cmp cl, 1
+je loc_fffb92ab ; je 0xfffb92ab
+cmp dl, 2
+je loc_fffb92af ; je 0xfffb92af
+cmp cl, 2
+je loc_fffb92af ; je 0xfffb92af
+jmp near loc_fffb928b ; jmp 0xfffb928b
+
+loc_fffb917c: ; not directly referenced
+mov eax, dword [eax + 0x1005]
+cmp eax, 0x40660
+sete cl
+cmp eax, 0x306c0
+sete al
+xor edx, edx
+or cl, al
+je loc_fffb92ca ; je 0xfffb92ca
+and esi, 0xff
+imul esi, esi, 6
+add ebx, esi
+lea edx, [ebx + ebx + ref_fffcbd0c] ; lea edx, [ebx + ebx - 0x342f4]
+jmp near loc_fffb92ca ; jmp 0xfffb92ca
+
+loc_fffb91b3: ; not directly referenced
+mov eax, dword [eax + 0x1005]
+xor edx, edx
+cmp eax, 0x40650
+jne short loc_fffb91da ; jne 0xfffb91da
+cmp ebx, 1
+ja loc_fffb92ca ; ja 0xfffb92ca
+mov ecx, esi
+movzx edx, cl
+lea edx, [ebx + edx*2]
+lea edx, [edx + edx + ref_fffcbd24] ; lea edx, [edx + edx - 0x342dc]
+
+loc_fffb91da: ; not directly referenced
+cmp eax, 0x40660
+sete cl
+cmp eax, 0x306c0
+sete al
+or cl, al
+je loc_fffb92ca ; je 0xfffb92ca
+and esi, 0xff
+imul esi, esi, 6
+add ebx, esi
+lea edx, [ebx + ebx + ref_fffcbd2c] ; lea edx, [ebx + ebx - 0x342d4]
+jmp near loc_fffb92ca ; jmp 0xfffb92ca
+
+loc_fffb9209: ; not directly referenced
+mov eax, dword [eax + 0x1005]
+cmp eax, 0x40660
+sete cl
+cmp eax, 0x306c0
+sete al
+xor edx, edx
+or cl, al
+je loc_fffb92ca ; je 0xfffb92ca
+and esi, 0xff
+imul esi, esi, 6
+add ebx, esi
+lea edx, [ebx + ebx + ref_fffcbd44] ; lea edx, [ebx + ebx - 0x342bc]
+jmp near loc_fffb92ca ; jmp 0xfffb92ca
+
+loc_fffb9240: ; not directly referenced
+mov eax, dword [eax + 0x1005]
+xor edx, edx
+cmp eax, 0x40650
+jne short loc_fffb9263 ; jne 0xfffb9263
+cmp ebx, 1
+ja short loc_fffb92ca ; ja 0xfffb92ca
+mov ecx, esi
+movzx edx, cl
+lea edx, [ebx + edx*2]
+lea edx, [edx + edx + ref_fffcbcec] ; lea edx, [edx + edx - 0x34314]
+
+loc_fffb9263: ; not directly referenced
+cmp eax, 0x40660
+sete cl
+cmp eax, 0x306c0
+sete al
+or cl, al
+je short loc_fffb92ca ; je 0xfffb92ca
+and esi, 0xff
+imul esi, esi, 6
+add ebx, esi
+lea edx, [ebx + ebx + ref_fffcbcf4] ; lea edx, [ebx + ebx - 0x3430c]
+jmp short loc_fffb92ca ; jmp 0xfffb92ca
+
+loc_fffb928b: ; not directly referenced
+xor edx, edx
+jmp short loc_fffb92ca ; jmp 0xfffb92ca
+
+loc_fffb928f: ; not directly referenced
+mov ebx, 2
+jmp short loc_fffb92b4 ; jmp 0xfffb92b4
+
+loc_fffb9296: ; not directly referenced
+mov ebx, 3
+jmp short loc_fffb92b4 ; jmp 0xfffb92b4
+
+loc_fffb929d: ; not directly referenced
+mov ebx, 4
+jmp short loc_fffb92b4 ; jmp 0xfffb92b4
+
+loc_fffb92a4: ; not directly referenced
+mov ebx, 5
+jmp short loc_fffb92b4 ; jmp 0xfffb92b4
+
+loc_fffb92ab: ; not directly referenced
+xor ebx, ebx
+jmp short loc_fffb92b4 ; jmp 0xfffb92b4
+
+loc_fffb92af: ; not directly referenced
+mov ebx, 1
+
+loc_fffb92b4: ; not directly referenced
+cmp dword [eax + 0xffd], 6
+ja short loc_fffb928b ; ja 0xfffb928b
+mov edx, dword [eax + 0xffd]
+jmp dword [edx*4 + ref_fffcbcd0] ; ujmp: jmp dword [edx*4 - 0x34330]
+
+loc_fffb92ca: ; not directly referenced
+pop ebx
+mov eax, edx
+pop esi
+pop ebp
+ret
+
+fcn_fffb92d0: ; not directly referenced
+push ebp
+test cl, cl
+mov ebp, esp
+push esi
+push ebx
+je short loc_fffb92f7 ; je 0xfffb92f7
+cmp cl, 0x3c
+je short loc_fffb92fb ; je 0xfffb92fb
+cmp cl, 0x78
+je short loc_fffb9303 ; je 0xfffb9303
+cmp cl, 0x28
+je short loc_fffb9309 ; je 0xfffb9309
+cmp cl, 0x14
+mov bl, 1
+je short loc_fffb930f ; je 0xfffb930f
+cmp cl, 0x1e
+setne cl
+jmp short loc_fffb92ff ; jmp 0xfffb92ff
+
+loc_fffb92f7: ; not directly referenced
+xor ebx, ebx
+jmp short loc_fffb930f ; jmp 0xfffb930f
+
+loc_fffb92fb: ; not directly referenced
+xor ebx, ebx
+xor ecx, ecx
+
+loc_fffb92ff: ; not directly referenced
+mov dl, 1
+jmp short loc_fffb9313 ; jmp 0xfffb9313
+
+loc_fffb9303: ; not directly referenced
+xor ebx, ebx
+mov cl, 1
+jmp short loc_fffb9311 ; jmp 0xfffb9311
+
+loc_fffb9309: ; not directly referenced
+xor ebx, ebx
+mov cl, 1
+jmp short loc_fffb92ff ; jmp 0xfffb92ff
+
+loc_fffb930f: ; not directly referenced
+xor ecx, ecx
+
+loc_fffb9311: ; not directly referenced
+xor edx, edx
+
+loc_fffb9313: ; not directly referenced
+and edx, 1
+and ecx, 1
+shl ecx, 6
+and ebx, 1
+shl ebx, 9
+lea esi, [edx*4]
+mov edx, dword [ebp + 8]
+and edx, 0xffffffbb
+or edx, esi
+or edx, ecx
+and dh, 0xfd
+or edx, ebx
+mov word [eax], dx
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffb933f: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, 4
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x5c]
+mov byte [ebp - 0x1e], dl
+mov byte [ebp - 0x20], cl
+mov dl, byte [ebp + 0x14]
+movzx ecx, byte [ebp - 0x1e]
+mov byte [ebp - 0x1f], dl
+imul edx, ecx, 0x1347
+mov dword [ebp - 0x24], ecx
+mov ecx, dword [ebx + 0x103f]
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x58], al
+mov edi, dword [ebp + 0xc]
+mov dword [ebp - 0x1c], 0
+mov byte [ebp - 0x1d], 0
+lea eax, [ebx + edx + 0x297c]
+mov byte [ecx + 0x4c31], 0
+cmp byte [eax + 0x120f], 1
+sete byte [ebp - 0x38]
+mov cl, byte [ebp - 0x38]
+or ecx, 2
+cmp byte [eax + 0x130a], 1
+mov al, byte [ebp - 0x38]
+cmove eax, ecx
+mov ecx, dword [ebp - 0x24]
+shl ecx, 0xa
+mov byte [ebp - 0x38], al
+mov eax, dword [ebx + 0x103f]
+mov dword [ebp - 0x28], ecx
+and esi, edi
+add edx, ebx
+mov dword [ebp - 0x40], edx
+lea eax, [ecx + eax + 0x41bc]
+mov ecx, edi
+mov byte [eax], 0
+mov eax, edi
+and eax, 2
+and ecx, 1
+shr al, 1
+add ecx, ecx
+or eax, esi
+or eax, ecx
+mov ecx, eax
+mov eax, edi
+shl ecx, 0x18
+movzx edi, al
+mov dword [ebp - 0x3c], ecx
+mov dword [ebp - 0x44], edi
+
+loc_fffb93f4: ; not directly referenced
+mov edx, dword [ebp - 0x40]
+mov edi, dword [ebp - 0x1c]
+mov ecx, edi
+mov esi, 1
+shl esi, cl
+mov al, byte [edx + 0x3acb]
+and eax, esi
+test byte [ebp - 0x20], al
+je loc_fffb94b6 ; je 0xfffb94b6
+mov ecx, dword [ebp - 0x44]
+xor edx, edx
+and ecx, 7
+mov eax, ecx
+mov ecx, edi
+shr cl, 1
+mov edi, dword [ebp + 0x10]
+movzx ecx, cl
+shl eax, 0x18
+test byte [ebp - 0x1c], 1
+mov di, word [edi + ecx*2]
+mov word [ebp - 0x68], di
+mov ax, di
+je short loc_fffb946f ; je 0xfffb946f
+lea edi, [ecx + 1]
+mov cl, byte [ebp - 0x38]
+test edi, ecx
+je short loc_fffb946f ; je 0xfffb946f
+and ax, 0x150
+mov edx, dword [ebp - 0x68]
+mov ecx, dword [ebp - 0x68]
+and dx, 0xfe07
+shr ax, 1
+and ecx, 0xa8
+mov edi, dword [ebp - 0x3c]
+or eax, edx
+add ecx, ecx
+xor edx, edx
+or eax, ecx
+movzx ecx, ax
+lea eax, [edi + ecx]
+
+loc_fffb946f: ; not directly referenced
+mov cl, byte [ebp - 0x58]
+mov dword [ebp - 0x48], edx
+and ecx, 7
+or dword [ebp - 0x48], 0xf000000
+mov edx, dword [ebp - 0x48]
+mov edi, ecx
+mov ecx, edx
+not esi
+shl edi, 8
+and ch, 0xf8
+or ecx, edi
+and esi, 0xf
+and ecx, 0xfffffff0
+mov edx, ecx
+push ecx
+or edx, esi
+push ecx
+mov ecx, dword [ebp - 0x28]
+push edx
+add ecx, 0x41c0
+push eax
+mov edx, ecx
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+inc byte [ebp - 0x1d]
+add esp, 0x10
+
+loc_fffb94b6: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 4
+jne loc_fffb93f4 ; jne 0xfffb93f4
+cmp byte [ebp - 0x1d], 0
+jne short loc_fffb94d3 ; jne 0xfffb94d3
+
+loc_fffb94c9: ; not directly referenced
+mov eax, 1
+jmp near loc_fffb9584 ; jmp 0xfffb9584
+
+loc_fffb94d3: ; not directly referenced
+mov dl, byte [ebp - 0x1f]
+mov al, 3
+and edx, 7
+cmp byte [ebp - 0x1f], 0
+mov edi, dword [ebp - 0x28]
+cmovne eax, edx
+mov dl, byte [ebp - 0x1d]
+dec edx
+and eax, 7
+and edx, 7
+shl edx, 0x10
+or eax, edx
+mov edx, dword [ebx + 0x103f]
+lea edx, [edi + edx + 0x419c]
+mov edi, dword [ebp - 0x24]
+mov dword [edx], eax
+mov esi, dword [ebx + 0x103f]
+lea ecx, [edi*8 + 0x48a8]
+add esi, ecx
+mov edx, dword [esi]
+mov eax, edx
+and ah, 0xc7
+or ah, 0x20
+mov dword [esi], eax
+lea eax, [edi*4 + 0x48b8]
+mov dword [ebp - 0x1c], eax
+add eax, dword [ebx + 0x103f]
+mov byte [eax], 5
+mov esi, dword [ebx + 0x103f]
+lea edi, [esi + 0x4804]
+
+loc_fffb9540: ; not directly referenced
+cmp byte [ebp - 0x1e], 0
+mov eax, dword [edi]
+jne short loc_fffb9551 ; jne 0xfffb9551
+test al, 1
+je short loc_fffb955a ; je 0xfffb955a
+jmp near loc_fffb94c9 ; jmp 0xfffb94c9
+
+loc_fffb9551: ; not directly referenced
+test al, 2
+je short loc_fffb9565 ; je 0xfffb9565
+jmp near loc_fffb94c9 ; jmp 0xfffb94c9
+
+loc_fffb955a: ; not directly referenced
+shr eax, 0x10
+and eax, 1
+xor eax, 1
+jmp short loc_fffb9570 ; jmp 0xfffb9570
+
+loc_fffb9565: ; not directly referenced
+shr eax, 0x10
+shr al, 1
+xor eax, 1
+and eax, 1
+
+loc_fffb9570: ; not directly referenced
+test al, al
+jne short loc_fffb9540 ; jne 0xfffb9540
+add esi, dword [ebp - 0x1c]
+xor eax, eax
+mov byte [esi], 4
+add ecx, dword [ebx + 0x103f]
+mov dword [ecx], edx
+
+loc_fffb9584: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb958c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+lea eax, [eax + 0x16be]
+push ebx
+lea esp, [esp - 0x3c]
+mov dword [ebp - 0x30], ecx
+mov ecx, dword [esi + 0x1749]
+cmp dword [ebp - 0x30], 1
+mov dword [ebp - 0x44], eax
+mov dword [ebp - 0x48], ecx
+je short loc_fffb95de ; je 0xfffb95de
+jb short loc_fffb95c7 ; jb 0xfffb95c7
+cmp dword [ebp - 0x30], 2
+je short loc_fffb95ce ; je 0xfffb95ce
+cmp dword [ebp - 0x30], 3
+jne loc_fffb96c2 ; jne 0xfffb96c2
+jmp short loc_fffb95d5 ; jmp 0xfffb95d5
+
+loc_fffb95c7: ; not directly referenced
+mov edi, 0xff
+jmp short loc_fffb95e3 ; jmp 0xfffb95e3
+
+loc_fffb95ce: ; not directly referenced
+mov edi, 0x56
+jmp short loc_fffb95da ; jmp 0xfffb95da
+
+loc_fffb95d5: ; not directly referenced
+mov edi, 0xc3
+
+loc_fffb95da: ; not directly referenced
+xor eax, eax
+jmp short loc_fffb95e8 ; jmp 0xfffb95e8
+
+loc_fffb95de: ; not directly referenced
+mov edi, 0xab
+
+loc_fffb95e3: ; not directly referenced
+mov eax, 0x400
+
+loc_fffb95e8: ; not directly referenced
+movzx edx, dl
+mov word [ebp - 0x1c], ax
+mov word [ebp - 0x1a], ax
+xor ebx, ebx
+mov byte [ebp - 0x35], 1
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x40], edx
+
+loc_fffb9603: ; not directly referenced
+imul eax, ebx, 0x1347
+mov edx, dword [ebp - 0x44]
+mov dword [ebp - 0x3c], eax
+cmp dword [edx + eax + 0x12be], 2
+jne loc_fffb96a4 ; jne 0xfffb96a4
+mov ecx, dword [ebp - 0x40]
+bt ecx, ebx
+jae short loc_fffb96a4 ; jae 0xfffb96a4
+lea eax, [ebx + 1]
+bt ecx, eax
+jb short loc_fffb963c ; jb 0xfffb963c
+mov dl, byte [ebp - 0x35]
+cmp dword [ebp - 0x30], 2
+mov al, 7
+cmove edx, eax
+mov byte [ebp - 0x35], dl
+
+loc_fffb963c: ; not directly referenced
+cmp dword [ebp - 0x48], 2
+jne short loc_fffb9683 ; jne 0xfffb9683
+mov dword [ebp - 0x2c], 0
+
+loc_fffb9649: ; not directly referenced
+mov edx, dword [ebp - 0x3c]
+mov cl, byte [ebp - 0x2c]
+mov eax, 1
+shl eax, cl
+test byte [esi + edx + 0x3acb], al
+je short loc_fffb9678 ; je 0xfffb9678
+push 0
+mov ecx, dword [ebp - 0x2c]
+mov edx, ebx
+push 0
+mov eax, esi
+push edi
+push 0xa
+call fcn_fffb8fda ; call 0xfffb8fda
+mov dword [ebp - 0x34], eax
+add esp, 0x10
+
+loc_fffb9678: ; not directly referenced
+inc dword [ebp - 0x2c]
+cmp dword [ebp - 0x2c], 4
+jne short loc_fffb9649 ; jne 0xfffb9649
+jmp short loc_fffb96a4 ; jmp 0xfffb96a4
+
+loc_fffb9683: ; not directly referenced
+movzx eax, byte [ebp - 0x35]
+lea ecx, [ebp - 0x1c]
+push eax
+mov edx, ebx
+mov eax, esi
+push ecx
+mov ecx, 0xf
+push 0
+push 6
+call fcn_fffb933f ; call 0xfffb933f
+mov dword [ebp - 0x34], eax
+add esp, 0x10
+
+loc_fffb96a4: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffb9603 ; jne 0xfffb9603
+cmp dword [ebp - 0x30], 1
+ja short loc_fffb96c9 ; ja 0xfffb96c9
+mov edx, 0xf
+mov eax, esi
+call fcn_fffb2d76 ; call 0xfffb2d76
+jmp short loc_fffb96c9 ; jmp 0xfffb96c9
+
+loc_fffb96c2: ; not directly referenced
+mov dword [ebp - 0x34], 2
+
+loc_fffb96c9: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb96d4: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+lea esp, [esp - 0x10]
+cmp cl, 3
+mov ebx, dword [ebp + 0xc]
+mov esi, dword [ebp + 8]
+ja short loc_fffb96f4 ; ja 0xfffb96f4
+mov word [ebp - 0xc], bx
+mov word [ebp - 0xa], 0
+jmp short loc_fffb96fe ; jmp 0xfffb96fe
+
+loc_fffb96f4: ; not directly referenced
+mov word [ebp - 0xc], 0
+mov word [ebp - 0xa], bx
+
+loc_fffb96fe: ; not directly referenced
+push 0
+lea ebx, [ebp - 0xc]
+and esi, 0xff
+push ebx
+movzx ecx, cl
+push esi
+movzx edx, dl
+push 0
+call fcn_fffb933f ; call 0xfffb933f
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+loc_fffb971f:
+db 0x00
+
+fcn_fffb9720:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x48]
+mov edx, dword [ebp + 8]
+mov eax, dword [edx]
+lea edx, [ebp - 0x28]
+push edx
+push 0
+push 0
+push ref_fffcca3c ; push 0xfffcca3c
+push dword [ebp + 8]
+call dword [eax + 0x20] ; ucall
+mov ebx, dword [ebp - 0x28]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+movzx edx, byte [ebx + 1]
+shl edx, 0x14
+lea eax, [edx + eax + 0xf80f0]
+mov ecx, dword [eax]
+mov eax, dword [ebx + 2]
+and ecx, 0x3fff
+or eax, 1
+or eax, ecx
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+lea edx, [edx + ecx + 0xf80f0]
+mov dword [edx], eax
+mov eax, dword [ebp - 0x28]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+movzx ecx, word [eax + 6]
+movzx eax, byte [eax + 1]
+shl eax, 0x14
+lea eax, [edx + eax + 0xf8040]
+mov dword [eax], ecx
+mov eax, dword [ebp - 0x28]
+add esp, 0x20
+mov edx, dword [0xf0000060]
+cmp word [eax + 6], 0
+movzx eax, byte [eax + 1]
+je short loc_fffb97d3 ; je 0xfffb97d3
+shl eax, 0x14
+and edx, 0xfc000000
+lea edx, [eax + edx + 0xf8044]
+mov dl, byte [edx]
+or edx, 0xffffff80
+jmp short loc_fffb97e8 ; jmp 0xfffb97e8
+
+loc_fffb97d3:
+shl eax, 0x14
+and edx, 0xfc000000
+lea edx, [eax + edx + 0xf8044]
+mov dl, byte [edx]
+and edx, 0x7f
+
+loc_fffb97e8:
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+lea eax, [eax + ecx + 0xf8044]
+mov byte [eax], dl
+mov eax, dword [ebp - 0x28]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+movzx eax, byte [eax + 1]
+shl eax, 0x14
+lea edx, [eax + edx + 0xf80a6]
+mov dl, byte [edx]
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+or edx, 2
+lea eax, [eax + ecx + 0xf80a6]
+mov byte [eax], dl
+mov eax, dword [ebp - 0x28]
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+movzx ecx, word [eax + 8]
+movzx eax, byte [eax + 1]
+shl eax, 0x14
+lea eax, [edx + eax + 0xf8048]
+mov dword [eax], ecx
+mov eax, dword [ebp - 0x28]
+mov edx, dword [0xf0000060]
+cmp word [eax + 8], 0
+movzx eax, byte [eax + 1]
+je short loc_fffb9882 ; je 0xfffb9882
+shl eax, 0x14
+and edx, 0xfc000000
+lea edx, [eax + edx + 0xf804c]
+mov dl, byte [edx]
+or edx, 0x10
+jmp short loc_fffb9897 ; jmp 0xfffb9897
+
+loc_fffb9882:
+shl eax, 0x14
+and edx, 0xfc000000
+lea edx, [eax + edx + 0xf804c]
+mov dl, byte [edx]
+and edx, 0xffffffef
+
+loc_fffb9897:
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+lea eax, [eax + ecx + 0xf804c]
+mov byte [eax], dl
+mov ecx, dword [ebp - 0x28]
+mov ebx, dword [0xf0000060]
+mov eax, dword [ecx + 0x26]
+movzx ecx, byte [ecx + 1]
+mov dl, byte [eax]
+and edx, 2
+cmp dl, 1
+sbb eax, eax
+and eax, 0xffffffe0
+dec eax
+cmp dl, 1
+sbb edx, edx
+and ebx, 0xfc000000
+shl ecx, 0x14
+not edx
+and edx, 0x22
+lea ebx, [ecx + ebx + 0xf80dc]
+mov bl, byte [ebx]
+and eax, ebx
+or eax, edx
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+lea edx, [ecx + edx + 0xf80dc]
+mov byte [edx], al
+mov ebx, dword [ebp - 0x28]
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov dword [ebp - 0x38], eax
+mov ebx, dword [ebx + 2]
+mov dword [ebp - 0x2c], ebx
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov dword [ebp - 0x34], edx
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+mov dword [ebp - 0x40], ecx
+mov ax, word [eax + 0xf8002]
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+and eax, 0xff
+cmp eax, 6
+mov dword [ebp - 0x30], eax
+ja short loc_fffb9964 ; ja 0xfffb9964
+movzx ecx, byte [eax + ref_fffcbd5c] ; movzx ecx, byte [eax - 0x342a4]
+mov ebx, dword [eax*4 + ref_fffcbd64] ; mov ebx, dword [eax*4 - 0x3429c]
+mov dword [ebp - 0x3c], ecx
+jmp short loc_fffb996d ; jmp 0xfffb996d
+
+loc_fffb9964:
+xor ebx, ebx
+mov dword [ebp - 0x3c], 0
+
+loc_fffb996d:
+lea eax, [ebp - 0x20]
+call fcn_fffbf908 ; call 0xfffbf908
+cmp dword [ebp - 0x20], 0x11
+je loc_fffb9a24 ; je 0xfffb9a24
+mov esi, dword [ebp + 8]
+lea edx, [ebp - 0x24]
+mov eax, dword [esi]
+push edx
+push 0x11d
+push 4
+push esi
+call dword [eax + 0x34] ; ucall
+mov edx, eax
+mov eax, dword [ebp - 0x24]
+mov esi, ref_fffcbd80 ; mov esi, 0xfffcbd80
+mov ecx, 4
+lea edi, [eax + 8]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov ecx, dword [ebp - 0x3c]
+mov byte [eax + 0x1c], 0
+mov dword [eax + 0x18], ecx
+mov eax, dword [0xf00b004c]
+mov dword [0xf00b004c], 0x70000001
+mov esi, 0x186a0
+add esp, 0x10
+
+loc_fffb99c8:
+mov eax, 1
+mov dword [ebp - 0x48], edx
+call fcn_fffc5e98 ; call 0xfffc5e98
+dec esi
+mov eax, dword [0xf00b0040]
+mov edx, dword [ebp - 0x48]
+je short loc_fffb9a24 ; je 0xfffb9a24
+shr eax, 0x18
+and eax, 0xfffffff0
+cmp al, 0x70
+jne short loc_fffb99c8 ; jne 0xfffb99c8
+test edx, edx
+jne short loc_fffb9a24 ; jne 0xfffb9a24
+mov eax, dword [0xf00b0068]
+mov edx, dword [0xf00b004c]
+mov dword [0xf00b004c], 0x70000000
+test ebx, ebx
+je short loc_fffb9a24 ; je 0xfffb9a24
+cmp eax, dword [ebx]
+je short loc_fffb9a24 ; je 0xfffb9a24
+mov eax, dword [ebp - 0x24]
+mov ecx, dword [ebp - 0x3c]
+mov edx, ebx
+mov byte [eax + 0x1c], 1
+add eax, 0x1d
+call fcn_fffa115e ; call 0xfffa115e
+jmp near loc_fffb9cc6 ; jmp 0xfffb9cc6
+
+loc_fffb9a24:
+mov eax, dword [ebp - 0x2c]
+mov dword [eax + 0x2088], 0x109000
+mov edx, dword [ebp - 0x2c]
+mov eax, dword [edx + 0x20ac]
+or eax, 0x40000000
+mov dword [edx + 0x20ac], eax
+cmp dword [ebp - 0x38], 1
+jne short loc_fffb9a72 ; jne 0xfffb9a72
+mov byte [edx + 0x2340], 0x1b
+mov eax, dword [edx + 0x2340]
+and eax, 0xff00ffff
+or eax, 0x3a0000
+mov dword [edx + 0x2340], eax
+mov dword [edx + 0x2324], 0x854c74
+
+loc_fffb9a72:
+mov ecx, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x34]
+cmp dword [ebp - 0x38], 1
+mov cl, byte [ecx + 0xe0410]
+mov edx, dword [edx + 0xe00fc]
+mov byte [ebp - 0x3c], cl
+mov dword [ebp - 0x34], edx
+je short loc_fffb9a9c ; je 0xfffb9a9c
+
+loc_fffb9a90:
+cmp dword [ebp - 0x30], 6
+jbe short loc_fffb9ad8 ; jbe 0xfffb9ad8
+xor ebx, ebx
+xor edi, edi
+jmp short loc_fffb9ae9 ; jmp 0xfffb9ae9
+
+loc_fffb9a9c:
+xor ebx, ebx
+mov eax, ref_fffcca58 ; mov eax, 0xfffcca58
+cmp dword [ebp - 0x30], 0
+cmove ebx, eax
+cmp dword [ebp - 0x30], 1
+sbb esi, esi
+xor edi, edi
+and esi, 4
+jmp short loc_fffb9ad1 ; jmp 0xfffb9ad1
+
+loc_fffb9ab7:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x2c]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+inc edi
+add ebx, 0xc
+add esp, 0x10
+
+loc_fffb9ad1:
+cmp di, si
+jne short loc_fffb9ab7 ; jne 0xfffb9ab7
+jmp short loc_fffb9a90 ; jmp 0xfffb9a90
+
+loc_fffb9ad8:
+mov ecx, dword [ebp - 0x30]
+movzx edi, byte [ecx + ref_fffcbd90] ; movzx edi, byte [ecx - 0x34270]
+mov ebx, dword [ecx*4 + ref_fffcbd98] ; mov ebx, dword [ecx*4 - 0x34268]
+
+loc_fffb9ae9:
+xor esi, esi
+jmp short loc_fffb9b07 ; jmp 0xfffb9b07
+
+loc_fffb9aed:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x2c]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+inc esi
+add ebx, 0xc
+add esp, 0x10
+
+loc_fffb9b07:
+cmp si, di
+jne short loc_fffb9aed ; jne 0xfffb9aed
+cmp dword [ebp - 0x30], 6
+ja short loc_fffb9b25 ; ja 0xfffb9b25
+mov esi, dword [ebp - 0x30]
+movzx edi, byte [esi + ref_fffcbdb4] ; movzx edi, byte [esi - 0x3424c]
+mov esi, dword [esi*4 + ref_fffcbdbc] ; mov esi, dword [esi*4 - 0x34244]
+jmp short loc_fffb9b29 ; jmp 0xfffb9b29
+
+loc_fffb9b25:
+xor esi, esi
+xor edi, edi
+
+loc_fffb9b29:
+imul edi, edi, 0xc
+mov dl, byte [ebp - 0x3c]
+and edx, 3
+mov bl, byte [ebp - 0x3c]
+add edi, esi
+mov byte [ebp - 0x41], dl
+and ebx, 0xc
+jmp short loc_fffb9b9d ; jmp 0xfffb9b9d
+
+loc_fffb9b3f:
+cmp dword [ebp - 0x38], 2
+jne short loc_fffb9b5e ; jne 0xfffb9b5e
+mov eax, dword [esi]
+and eax, 0xfe00
+cmp eax, 0x2400
+jne short loc_fffb9b55 ; jne 0xfffb9b55
+jmp short loc_fffb9b7e ; jmp 0xfffb9b7e
+
+loc_fffb9b55:
+cmp eax, 0x2600
+jne short loc_fffb9b84 ; jne 0xfffb9b84
+jmp short loc_fffb9b72 ; jmp 0xfffb9b72
+
+loc_fffb9b5e:
+cmp dword [ebp - 0x38], 1
+jne short loc_fffb9b84 ; jne 0xfffb9b84
+mov eax, dword [esi]
+and eax, 0xfe00
+cmp eax, 0x2c00
+jne short loc_fffb9b77 ; jne 0xfffb9b77
+
+loc_fffb9b72:
+cmp bl, 8
+jmp short loc_fffb9b82 ; jmp 0xfffb9b82
+
+loc_fffb9b77:
+cmp eax, 0x2e00
+jne short loc_fffb9b84 ; jne 0xfffb9b84
+
+loc_fffb9b7e:
+cmp byte [ebp - 0x41], 2
+
+loc_fffb9b82:
+jne short loc_fffb9b9a ; jne 0xfffb9b9a
+
+loc_fffb9b84:
+sub esp, 0xc
+mov ecx, dword [esi + 4]
+push dword [esi + 8]
+mov eax, dword [ebp - 0x2c]
+mov edx, dword [esi]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffb9b9a:
+add esi, 0xc
+
+loc_fffb9b9d:
+cmp esi, edi
+jne short loc_fffb9b3f ; jne 0xfffb9b3f
+cmp dword [ebp - 0x30], 6
+ja loc_fffb9c2b ; ja 0xfffb9c2b
+mov ecx, dword [ebp - 0x30]
+mov eax, dword [ecx*4 + ref_fffcbdd8] ; mov eax, dword [ecx*4 - 0x34228]
+test eax, eax
+je short loc_fffb9c2b ; je 0xfffb9c2b
+test dword [ebp - 0x34], 0x80000
+je short loc_fffb9c2b ; je 0xfffb9c2b
+mov edx, dword [ebp - 0x34]
+and edx, 0x70000
+shr edx, 0x10
+cmp dword [ebp - 0x38], 2
+mov cl, dl
+jne short loc_fffb9bdd ; jne 0xfffb9bdd
+cmp dl, 5
+ja short loc_fffb9c2b ; ja 0xfffb9c2b
+jmp short loc_fffb9c10 ; jmp 0xfffb9c10
+
+loc_fffb9bdd:
+cmp dword [ebp - 0x38], 1
+jne short loc_fffb9c2b ; jne 0xfffb9c2b
+test dl, dl
+jne short loc_fffb9bf3 ; jne 0xfffb9bf3
+mov dl, byte [ebp - 0x3c]
+and edx, 3
+dec dl
+jne short loc_fffb9c2b ; jne 0xfffb9c2b
+jmp short loc_fffb9c15 ; jmp 0xfffb9c15
+
+loc_fffb9bf3:
+dec cl
+jne short loc_fffb9c10 ; jne 0xfffb9c10
+mov dl, byte [ebp - 0x3c]
+and edx, 0xc
+cmp dl, 4
+jne short loc_fffb9c2b ; jne 0xfffb9c2b
+sub esp, 0xc
+mov ecx, dword [eax + 0x10]
+mov edx, dword [eax + 0xc]
+push dword [eax + 0x14]
+jmp short loc_fffb9c20 ; jmp 0xfffb9c20
+
+loc_fffb9c10:
+imul edx, edx, 0xc
+add eax, edx
+
+loc_fffb9c15:
+sub esp, 0xc
+mov ecx, dword [eax + 4]
+push dword [eax + 8]
+mov edx, dword [eax]
+
+loc_fffb9c20:
+mov eax, dword [ebp - 0x2c]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffb9c2b:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+cmp eax, 2
+je short loc_fffb9c90 ; je 0xfffb9c90
+
+loc_fffb9c35:
+mov esi, dword [ebp - 0x40]
+mov eax, dword [esi + 0xa00b0]
+and al, 0x7f
+or eax, 0x10000
+mov dword [esi + 0xa00b0], eax
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+cmp eax, 2
+jne short loc_fffb9cc6 ; jne 0xfffb9cc6
+jmp short loc_fffb9c9d ; jmp 0xfffb9c9d
+
+loc_fffb9c57:
+movzx edx, bl
+mov eax, dword [0xf0000060]
+shl edx, 0xc
+and eax, 0xfc000000
+add eax, edx
+mov edx, dword [eax + 0xe0110]
+or edx, 0x31c1
+mov dword [eax + 0xe0110], edx
+mov edx, dword [eax + 0xe0104]
+or edx, 0x17d010
+mov dword [eax + 0xe0104], edx
+inc ebx
+jmp short loc_fffb9c92 ; jmp 0xfffb9c92
+
+loc_fffb9c90:
+xor ebx, ebx
+
+loc_fffb9c92:
+call fcn_fffc5da5 ; call 0xfffc5da5
+cmp bl, al
+jb short loc_fffb9c57 ; jb 0xfffb9c57
+jmp short loc_fffb9c35 ; jmp 0xfffb9c35
+
+loc_fffb9c9d:
+mov eax, dword [ebp - 0x2c]
+mov word [eax + 0x260c], 0x10
+sub esp, 0xc
+mov ecx, 0xffffceff
+push 0x3100
+mov edx, 0xec000106
+mov eax, dword [ebp - 0x2c]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffb9cc6:
+mov ebx, dword [ebp - 0x28]
+mov eax, dword [ebx + 2]
+mov cl, byte [eax + 0x3414]
+mov dx, word [eax + 0x3804]
+and dh, 0x40
+jne short loc_fffb9ce2 ; jne 0xfffb9ce2
+
+loc_fffb9cde:
+xor edx, edx
+jmp short loc_fffb9d10 ; jmp 0xfffb9d10
+
+loc_fffb9ce2:
+mov edx, dword [eax + 0x38b0]
+and edx, 0xffff8003
+mov dword [eax + 0x38b0], edx
+mov edx, dword [eax + 0x38b4]
+cmp edx, 0xff0a55a
+jne short loc_fffb9cde ; jne 0xfffb9cde
+mov eax, dword [eax + 0x3860]
+cmp eax, 0x7fff
+setne dl
+
+loc_fffb9d10:
+and cl, 0x20
+mov eax, dword [ebx + 0xa]
+je short loc_fffb9d22 ; je 0xfffb9d22
+test byte [eax], 1
+jne short loc_fffb9d2b ; jne 0xfffb9d2b
+jmp near loc_fffb9e3f ; jmp 0xfffb9e3f
+
+loc_fffb9d22:
+test byte [eax], 1
+jne loc_fffb9e3f ; jne 0xfffb9e3f
+
+loc_fffb9d2b:
+mov ecx, dword [ebp + 8]
+sub esp, 0xc
+mov eax, dword [ecx]
+lea ecx, [ebp - 0x20]
+push ecx
+mov byte [ebp - 0x48], dl
+push 0
+push 0
+push ref_fffcca88 ; push 0xfffcca88
+push dword [ebp + 8]
+call dword [eax + 0x20] ; ucall
+mov eax, dword [ebx + 2]
+add esp, 0x20
+mov dl, byte [ebp - 0x48]
+mov cl, byte [eax + 0x3420]
+test cl, cl
+jns short loc_fffb9d6b ; jns 0xfffb9d6b
+push ebx
+mov eax, dword [ebp - 0x20]
+push ebx
+push 4
+push eax
+call dword [eax] ; ucall
+jmp near loc_fffb9e3c ; jmp 0xfffb9e3c
+
+loc_fffb9d6b:
+mov ecx, dword [ebx + 0xa]
+test byte [ecx], 1
+mov cl, 0
+je short loc_fffb9d90 ; je 0xfffb9d90
+dec dl
+jne loc_fffb9e07 ; jne 0xfffb9e07
+mov dl, byte [eax + 0x3414]
+and edx, 0xffffffdf
+mov byte [eax + 0x3414], dl
+mov cl, 1
+jmp short loc_fffb9e07 ; jmp 0xfffb9e07
+
+loc_fffb9d90:
+dec dl
+jne short loc_fffb9df5 ; jne 0xfffb9df5
+mov eax, dword [0xf0000060]
+mov ecx, dword [ebx + 0x26]
+movzx edx, byte [ebx + 1]
+and eax, 0xfc000000
+shl edx, 0x14
+add eax, edx
+mov ecx, dword [ecx + 1]
+mov edx, dword [eax + 0xc8010]
+mov dword [eax + 0xc8010], ecx
+mov si, word [eax + 0xc8004]
+mov cx, word [eax + 0xc8004]
+or ecx, 2
+mov word [eax + 0xc8004], cx
+mov ecx, dword [eax + 0xc8010]
+and ecx, 0xffff8000
+mov cx, word [ecx + 0x5b54]
+mov word [eax + 0xc8004], si
+shr cx, 0xf
+mov dword [eax + 0xc8010], edx
+
+loc_fffb9df5:
+mov edx, dword [ebx + 2]
+mov al, byte [edx + 0x3414]
+or eax, 0x20
+mov byte [edx + 0x3414], al
+
+loc_fffb9e07:
+mov eax, dword [ebx + 2]
+test cl, cl
+mov dl, byte [eax + 0x3414]
+je short loc_fffb9e3f ; je 0xfffb9e3f
+mov edx, dword [eax + 0x3428]
+mov eax, 3
+and dl, 2
+jne short loc_fffb9e33 ; jne 0xfffb9e33
+mov eax, dword [ebx + 0x26]
+mov al, byte [eax]
+and eax, 1
+cmp al, 1
+sbb eax, eax
+add eax, 5
+
+loc_fffb9e33:
+push ecx
+mov edx, dword [ebp - 0x20]
+push ecx
+push eax
+push edx
+call dword [edx] ; ucall
+
+loc_fffb9e3c:
+add esp, 0x10
+
+loc_fffb9e3f:
+mov ebx, dword [ebp - 0x28]
+mov byte [ebp - 0x1c], 0x1d
+mov byte [ebp - 0x1b], 0
+mov byte [ebp - 0x1a], 0x1a
+mov byte [ebp - 0x19], 0
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+movzx edx, byte [ebx + 1]
+mov dword [ebp - 0x38], eax
+shl edx, 0x14
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+mov dword [ebp - 0x2c], esi
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+cmp dword [ebp - 0x38], 1
+mov dword [ebp - 0x30], 0
+lea edi, [edx + eax]
+jne short loc_fffb9e9c ; jne 0xfffb9e9c
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+add eax, 0xfd000
+mov dword [ebp - 0x30], eax
+
+loc_fffb9e9c:
+mov esi, dword [ebp - 0x2c]
+mov edx, dword [0xf0000060]
+mov ecx, dword [ebx + 0x12]
+mov dword [ebp - 0x3c], edx
+mov dword [ebp - 0x40], ecx
+mov eax, dword [esi + 0xf80ac]
+and eax, 0xffefffff
+mov dword [esi + 0xf80ac], eax
+xor esi, esi
+mov byte [ebp - 0x34], 0
+jmp short loc_fffb9f28 ; jmp 0xfffb9f28
+
+loc_fffb9ec7:
+movzx edx, byte [ebx + 1]
+mov eax, dword [0xf0000060]
+shl edx, 0x14
+and eax, 0xfc000000
+movzx ecx, byte [ebp - 0x34]
+add eax, edx
+mov edx, ecx
+shl edx, 0xc
+add eax, edx
+mov dx, word [eax + 0xe0000]
+inc dx
+je short loc_fffb9f25 ; je 0xfffb9f25
+mov edx, dword [ebx + 0x1e]
+cmp dword [edx + ecx*4], 1
+mov dx, word [eax + 0xe0070]
+setne cl
+and edx, 0xf
+movzx ecx, cl
+inc ecx
+cmp dx, cx
+je short loc_fffb9f25 ; je 0xfffb9f25
+mov si, word [eax + 0xe0070]
+and esi, 0xfffffff0
+or esi, ecx
+mov word [eax + 0xe0070], si
+mov esi, 1
+
+loc_fffb9f25:
+inc byte [ebp - 0x34]
+
+loc_fffb9f28:
+call fcn_fffc5da5 ; call 0xfffc5da5
+cmp byte [ebp - 0x34], al
+jb short loc_fffb9ec7 ; jb 0xfffb9ec7
+mov eax, esi
+test al, al
+je short loc_fffb9f42 ; je 0xfffb9f42
+mov eax, 0x186a0
+call fcn_fffc5e98 ; call 0xfffc5e98
+
+loc_fffb9f42:
+xor edx, edx
+jmp short loc_fffb9f95 ; jmp 0xfffb9f95
+
+loc_fffb9f46:
+movzx ecx, byte [ebx + 1]
+mov eax, dword [0xf0000060]
+shl ecx, 0x14
+and eax, 0xfc000000
+add eax, ecx
+movzx ecx, dl
+shl ecx, 0xc
+add eax, ecx
+mov cx, word [eax + 0xe0000]
+inc cx
+je short loc_fffb9f94 ; je 0xfffb9f94
+mov ecx, dword [eax + 0xe0338]
+and ecx, 0xfbffffff
+mov dword [eax + 0xe0338], ecx
+test dl, dl
+jne short loc_fffb9f94 ; jne 0xfffb9f94
+mov cl, byte [eax + 0xe00f4]
+and ecx, 0x1f
+or ecx, 0xffffff80
+mov byte [eax + 0xe00f4], cl
+
+loc_fffb9f94:
+inc edx
+
+loc_fffb9f95:
+mov byte [ebp - 0x48], dl
+call fcn_fffc5da5 ; call 0xfffc5da5
+mov dl, byte [ebp - 0x48]
+cmp dl, al
+jb short loc_fffb9f46 ; jb 0xfffb9f46
+mov byte [ebp - 0x34], 0
+jmp short loc_fffb9ff7 ; jmp 0xfffb9ff7
+
+loc_fffb9faa:
+movzx edx, byte [ebp - 0x34]
+mov eax, dword [0xf0000060]
+movzx ecx, byte [ebx + 1]
+and eax, 0xfc000000
+shl ecx, 0x14
+movzx esi, byte [ebp + edx*2 - 0x1c]
+shl esi, 0xf
+add ecx, esi
+movzx esi, byte [ebp + edx*2 - 0x1b]
+shl esi, 0xc
+add ecx, esi
+lea eax, [ecx + eax + 0x88]
+mov eax, dword [eax]
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+and eax, 0xfffffffb
+lea ecx, [ecx + esi + 0x88]
+mov dword [ecx], eax
+inc byte [ebp - 0x34]
+
+loc_fffb9ff7:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+dec eax
+cmp eax, 1
+ja short loc_fffba00d ; ja 0xfffba00d
+mov dl, byte [ebp - 0x34]
+cmp dl, byte [eax + ref_fffcb998] ; cmp dl, byte [eax - 0x34668]
+jb short loc_fffb9faa ; jb 0xfffb9faa
+
+loc_fffba00d:
+mov ecx, dword [ebp - 0x40]
+cmp byte [ecx], 1
+jne short loc_fffba04c ; jne 0xfffba04c
+mov esi, dword [ebp - 0x40]
+mov ecx, dword [ebx + 2]
+mov eax, dword [esi + 1]
+mov edx, dword [ecx + 0x3404]
+shr eax, 0xc
+and edx, 0xfffffffc
+and eax, 3
+or al, 0x80
+or eax, edx
+mov dword [ecx + 0x3404], eax
+mov eax, dword [ebx + 2]
+mov edx, dword [esi + 1]
+mov eax, dword [eax + 0x3404]
+mov eax, dword [edx + 0x10]
+or eax, 1
+mov dword [edx + 0x10], eax
+
+loc_fffba04c:
+mov eax, dword [ebx + 2]
+cmp dword [ebx + 0x16], 0
+mov edx, dword [eax + 0x3410]
+jne short loc_fffba060 ; jne 0xfffba060
+and edx, 0xfffffffb
+jmp short loc_fffba063 ; jmp 0xfffba063
+
+loc_fffba060:
+or edx, 4
+
+loc_fffba063:
+mov dword [eax + 0x3410], edx
+mov eax, dword [ebx + 2]
+cmp dword [ebp - 0x38], 1
+mov edx, dword [eax + 0x3410]
+mov edx, dword [ebx + 0x1a]
+jne loc_fffba13a ; jne 0xfffba13a
+cmp dword [edx], 0
+jne loc_fffba11d ; jne 0xfffba11d
+mov eax, dword [edi + 0xfa034]
+xor al, al
+or eax, 0x70
+mov dword [edi + 0xfa034], eax
+mov eax, dword [edi + 0xfa070]
+xor ah, ah
+mov dword [edi + 0xfa070], eax
+mov al, byte [edi + 0xfa090]
+and eax, 0x1f
+mov byte [edi + 0xfa090], al
+mov eax, dword [ebp - 0x3c]
+and eax, 0xfc000000
+mov dl, byte [eax + 0xe0410]
+and edx, 0x30
+cmp dl, 0x30
+jne short loc_fffba0e2 ; jne 0xfffba0e2
+mov edx, dword [ebx + 2]
+mov eax, dword [edx + 0x3418]
+or eax, 0x2000000
+mov dword [edx + 0x3418], eax
+jmp short loc_fffba12f ; jmp 0xfffba12f
+
+loc_fffba0e2:
+mov dl, byte [eax + 0xe0410]
+and dl, 0x10
+jne short loc_fffba0ff ; jne 0xfffba0ff
+mov ecx, dword [ebp - 0x30]
+mov dl, byte [ecx + 0x92]
+or edx, 1
+mov byte [ecx + 0x92], dl
+
+loc_fffba0ff:
+mov al, byte [eax + 0xe0410]
+test al, 0x20
+jne short loc_fffba16a ; jne 0xfffba16a
+mov esi, dword [ebp - 0x30]
+mov al, byte [esi + 0x92]
+or eax, 2
+mov byte [esi + 0x92], al
+jmp short loc_fffba16a ; jmp 0xfffba16a
+
+loc_fffba11d:
+mov edx, dword [eax + 0x3418]
+or edx, 0x2000000
+mov dword [eax + 0x3418], edx
+
+loc_fffba12f:
+mov eax, dword [ebx + 2]
+mov eax, dword [eax + 0x3418]
+jmp short loc_fffba16a ; jmp 0xfffba16a
+
+loc_fffba13a:
+cmp dword [ebp - 0x38], 2
+jne short loc_fffba16a ; jne 0xfffba16a
+cmp dword [edx], 3
+jne short loc_fffba16a ; jne 0xfffba16a
+mov al, byte [edi + 0xfa090]
+and eax, 0x3f
+mov byte [edi + 0xfa090], al
+mov byte [edi + 0xfa0a0], 0
+mov eax, dword [edi + 0xfa0a4]
+or ah, 0x80
+mov dword [edi + 0xfa0a4], eax
+
+loc_fffba16a:
+mov eax, dword [ebx + 0x1a]
+cmp dword [eax], 2
+jne short loc_fffba18e ; jne 0xfffba18e
+mov edx, dword [ebp - 0x2c]
+mov ax, word [edx + 0xf8002]
+mov al, byte [edi + 0xfa090]
+and eax, 0x3f
+or eax, 0xffffff80
+mov byte [edi + 0xfa090], al
+
+loc_fffba18e:
+cmp dword [ebp - 0x38], 2
+jne short loc_fffba1df ; jne 0xfffba1df
+sub esp, 0xc
+mov ebx, dword [ebx + 2]
+push 0x3700
+mov ecx, 0xfffff7ff
+mov edx, 0xed00015c
+mov eax, ebx
+call fcn_fffc90fb ; call 0xfffc90fb
+or ecx, 0xffffffff
+mov edx, 0xed000118
+mov eax, ebx
+mov dword [esp], 0xc00000
+call fcn_fffc90fb ; call 0xfffc90fb
+or ecx, 0xffffffff
+mov edx, 0xed000120
+mov eax, ebx
+mov dword [esp], 0x240000
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffba1df:
+mov edx, dword [ebp - 0x28]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+movzx ecx, byte [edx + 1]
+shl ecx, 0x14
+add eax, ecx
+mov ecx, dword [0xf0000060]
+mov ecx, dword [edx + 0xe]
+mov esi, dword [ecx]
+mov ecx, dword [edx + 0x26]
+mov ecx, dword [ecx + 1]
+mov dword [eax + 0xfe040], ecx
+mov dword [eax + 0xfe044], 0
+mov ebx, dword [eax + 0xfe040]
+or ebx, 1
+mov dword [eax + 0xfe040], ebx
+mov word [ecx + 0x10], 0x154
+mov byte [ecx + 6], 0xff
+mov byte [ecx + 0x80], 0xff
+mov byte [ecx + 0x84], 0
+mov byte [ecx + 0x82], 0
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+mov ebx, dword [ebx + 0xf80f0]
+and ebx, 0xfffffffe
+mov ebx, dword [ebx + 0x38b0]
+mov edi, dword [0xf0000060]
+and edi, 0xfc000000
+and ebx, 0xffff8003
+or ebx, 0x403c
+mov edi, dword [edi + 0xf80f0]
+and edi, 0xfffffffe
+mov dword [edi + 0x38b0], ebx
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+mov ebx, dword [ebx + 0xf80f0]
+and ebx, 0xfffffffe
+mov ebx, dword [ebx + 0x38b4]
+and bh, 0x40
+je short loc_fffba2aa ; je 0xfffba2aa
+mov byte [ecx + 0xa], 1
+
+loc_fffba2aa:
+mov ecx, dword [eax + 0xfe040]
+and ecx, 0xfffffffe
+mov dword [eax + 0xfe040], ecx
+mov dword [eax + 0xfe040], 0
+test byte [esi], 1
+je short loc_fffba341 ; je 0xfffba341
+mov bl, byte [esi + 1]
+mov cl, byte [esi + 2]
+mov eax, ebx
+shl eax, 0x1e
+and eax, 0x40000000
+mov edi, eax
+or edi, 0x80000000
+test cl, 1
+cmovne eax, edi
+mov edi, eax
+or edi, 0x4000
+and bl, 2
+cmovne eax, edi
+mov ebx, eax
+or bh, 0x80
+and cl, 2
+cmovne eax, ebx
+mov ebx, dword [edx + 2]
+mov ecx, dword [ebx + 0x33d4]
+and ecx, 0xfff0fff
+or eax, ecx
+mov dword [ebx + 0x33d4], eax
+mov al, byte [esi + 1]
+shl eax, 8
+and eax, 0x400
+mov ecx, eax
+or ch, 8
+test byte [esi + 2], 4
+cmovne eax, ecx
+mov ecx, dword [edx + 2]
+mov edx, dword [ecx + 0x33c8]
+and dh, 0xf0
+or eax, edx
+mov dword [ecx + 0x33c8], eax
+
+loc_fffba341:
+mov eax, dword [ebp - 0x28]
+mov esi, dword [eax + 0x22]
+mov ebx, dword [eax + 2]
+mov al, byte [ebx + 0x31fe]
+cmp byte [esi + 1], al
+je short loc_fffba37c ; je 0xfffba37c
+mov ax, word [ebx + 0x31fe]
+and ah, 0xfe
+mov word [ebx + 0x31fe], ax
+movzx edx, byte [esi + 1]
+mov ax, word [ebx + 0x31fe]
+xor al, al
+or eax, edx
+mov word [ebx + 0x31fe], ax
+
+loc_fffba37c:
+mov ax, word [ebx + 0x31fe]
+or ah, 1
+mov word [ebx + 0x31fe], ax
+mov ax, word [ebx + 0x31fe]
+movzx edx, byte [ebx + 0x31fe]
+shl edx, 0xc
+mov ecx, edx
+or ecx, 0xfec00000
+mov byte [ecx], 0
+movzx eax, byte [esi]
+or edx, 0xfec00010
+mov byte [ebp - 0x30], al
+mov edi, dword [edx]
+shr edi, 0x18
+cmp eax, edi
+je short loc_fffba3cf ; je 0xfffba3cf
+cmp byte [ebp - 0x30], 0xf
+ja short loc_fffba3cf ; ja 0xfffba3cf
+mov byte [ecx], 0
+movzx eax, byte [esi]
+shl eax, 0x18
+mov dword [edx], eax
+
+loc_fffba3cf:
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+cmp eax, 2
+jne short loc_fffba3f0 ; jne 0xfffba3f0
+test byte [esi + 2], 1
+jne short loc_fffba3f0 ; jne 0xfffba3f0
+mov ax, word [ebx + 0x31fe]
+or ah, 8
+mov word [ebx + 0x31fe], ax
+
+loc_fffba3f0:
+mov edx, dword [ebp + 8]
+push eax
+push eax
+mov eax, dword [edx]
+push ref_fffcca4c ; push 0xfffcca4c
+push edx
+call dword [eax + 0x18] ; ucall
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffba408: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2cc]
+mov ebx, dword [ebp + 8]
+cmp dword [ebx + 0x1749], 2
+mov al, byte [ebx + 0x176a]
+sete cl
+mov byte [ebp - 0x2c0], al
+cmp ecx, 1
+mov dl, byte [ebx + 0x1742]
+mov byte [ebp - 0x2c4], dl
+mov dword [ebp - 0x290], ecx
+sbb eax, eax
+mov ecx, 0xf4240
+and eax, 0xfffffc00
+lea esi, [ebx + 0x16be]
+movzx edx, word [ebx + 0x1766]
+add eax, 0x800
+imul eax, edx
+xor edx, edx
+add eax, 0x7a120
+mov dword [ebp - 0x2b8], esi
+div ecx
+lea esi, [ebx + 0x2974]
+mov byte [ebx + 0x1742], 0
+xor edi, edi
+mov dword [ebp - 0x280], esi
+mov dword [ebp - 0x278], eax
+
+loc_fffba490: ; not directly referenced
+imul eax, edi, 0x1347
+mov esi, dword [ebp - 0x2b8]
+cmp dword [esi + eax + 0x12be], 2
+je short loc_fffba4b2 ; je 0xfffba4b2
+
+loc_fffba4a6: ; not directly referenced
+inc edi
+cmp edi, 2
+je loc_fffba53a ; je 0xfffba53a
+jmp short loc_fffba490 ; jmp 0xfffba490
+
+loc_fffba4b2: ; not directly referenced
+mov edx, dword [ebp - 0x280]
+mov esi, dword [ebx + 0x103f]
+lea ecx, [edx + eax + 8]
+mov edx, edi
+shl edx, 8
+mov eax, dword [ecx + 0x141]
+and eax, 0xff0fffff
+or eax, 0x200000
+lea esi, [edx + esi + 0x3074]
+add edx, 0x64
+mov dword [ebp - 0x284], edx
+mov dword [esi], eax
+xor edx, edx
+jmp short loc_fffba52d ; jmp 0xfffba52d
+
+loc_fffba4ed: ; not directly referenced
+movzx esi, dl
+mov eax, dword [ecx + esi*4 + 0x169]
+mov dword [ebp - 0x288], esi
+or eax, 0x20
+and eax, 0xffffffbf
+mov esi, eax
+or esi, 0x40000
+cmp dword [ebp - 0x290], 0
+cmovne eax, esi
+mov esi, dword [ebp - 0x288]
+shl esi, 9
+add esi, dword [ebp - 0x284]
+add esi, dword [ebx + 0x103f]
+inc edx
+mov dword [esi], eax
+
+loc_fffba52d: ; not directly referenced
+cmp dl, byte [ebx + 0x1755]
+jb short loc_fffba4ed ; jb 0xfffba4ed
+jmp near loc_fffba4a6 ; jmp 0xfffba4a6
+
+loc_fffba53a: ; not directly referenced
+imul edi, dword [ebp - 0x278], 0xf
+mov dword [ebp - 0x284], 0
+mov dword [ebp - 0x2bc], edi
+
+loc_fffba551: ; not directly referenced
+mov dl, byte [ebp - 0x284]
+mov eax, 1
+mov cl, dl
+mov esi, eax
+shl esi, cl
+mov dword [ebp - 0x298], esi
+mov cl, byte [ebp - 0x298]
+mov byte [ebp - 0x27c], cl
+mov cl, byte [ebp - 0x2c0]
+test byte [ebp - 0x27c], cl
+jne short loc_fffba5b1 ; jne 0xfffba5b1
+
+loc_fffba582: ; not directly referenced
+inc dword [ebp - 0x284]
+cmp dword [ebp - 0x284], 4
+jne short loc_fffba551 ; jne 0xfffba551
+lea esi, [ebx + 0x2974]
+mov eax, 0x3074
+mov dword [ebp - 0x27c], 0
+mov dword [ebp - 0x280], esi
+jmp near loc_fffbad60 ; jmp 0xfffbad60
+
+loc_fffba5b1: ; not directly referenced
+shr dl, 1
+mov ecx, dword [ebp - 0x284]
+movzx esi, dl
+add ecx, 2
+and ecx, 2
+mov byte [ebp - 0x2ac], dl
+imul edi, esi, 0xfb
+mov dword [ebp - 0x278], 0
+shl eax, cl
+mov dword [ebp - 0x288], esi
+mov ecx, eax
+mov al, byte [ebp - 0x298]
+or eax, ecx
+mov dword [ebp - 0x294], edi
+mov byte [ebp - 0x28c], al
+
+loc_fffba5f6: ; not directly referenced
+mov al, byte [ebp - 0x298]
+mov byte [ebp - 0x2a8], al
+mov dl, byte [ebp - 0x2a8]
+imul eax, dword [ebp - 0x278], 0x1347
+test byte [ebx + eax + 0x3acb], dl
+je loc_fffba787 ; je 0xfffba787
+cmp dword [ebp - 0x290], 0
+lea edi, [ebx + eax + 0x297c]
+je short loc_fffba66d ; je 0xfffba66d
+mov eax, dword [ebp - 0x284]
+mov ecx, dword [ebp - 0x284]
+and eax, 1
+mov edx, dword [ebp - 0x278]
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x294]
+push 0
+push 0
+mov ax, word [edi + eax + 0x123c]
+or al, 0x80
+movzx eax, ax
+push eax
+mov eax, ebx
+push 2
+call fcn_fffb8fda ; call 0xfffb8fda
+jmp near loc_fffba720 ; jmp 0xfffba720
+
+loc_fffba66d: ; not directly referenced
+mov eax, dword [ebp - 0x284]
+mov ecx, dword [ebp - 0x288]
+and eax, 1
+mov edx, dword [ebp - 0x278]
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x294]
+mov si, word [edi + eax + 0x123a]
+mov eax, ebx
+call fcn_fffb90cf ; call 0xfffb90cf
+or si, 0x80
+test eax, eax
+mov dword [ebp - 0x280], eax
+je loc_fffbb7e5 ; je 0xfffbb7e5
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffba6d7 ; jne 0xfffba6d7
+sub esp, 0xc
+mov edx, ebx
+movzx ecx, byte [eax]
+lea eax, [ebp - 0x26a]
+push esi
+call fcn_fffb92d0 ; call 0xfffb92d0
+mov si, word [ebp - 0x26a]
+add esp, 0x10
+
+loc_fffba6d7: ; not directly referenced
+cmp dword [edi + 0xf5], 2
+jne short loc_fffba704 ; jne 0xfffba704
+mov eax, dword [ebp - 0x280]
+sub esp, 0xc
+mov edx, ebx
+movzx ecx, byte [eax]
+lea eax, [ebp - 0x26a]
+push esi
+call fcn_fffb92d0 ; call 0xfffb92d0
+mov si, word [ebp - 0x26a]
+add esp, 0x10
+
+loc_fffba704: ; not directly referenced
+push eax
+movzx ecx, byte [ebp - 0x298]
+mov edx, dword [ebp - 0x278]
+push eax
+movzx eax, si
+push eax
+mov eax, ebx
+push 1
+call fcn_fffb96d4 ; call 0xfffb96d4
+
+loc_fffba720: ; not directly referenced
+mov cl, byte [ebp - 0x28c]
+add esp, 0x10
+mov dl, byte [ebp - 0x27c]
+cmp dword [edi + 0xf5], 2
+cmove edx, ecx
+mov eax, dword [ebp - 0x290]
+neg eax
+mov esi, edx
+mov edx, dword [ebx + 0x1005]
+and eax, 0x10001
+cmp edx, 0x40660
+sete cl
+cmp edx, 0x306c0
+sete dl
+or cl, dl
+je short loc_fffba76f ; je 0xfffba76f
+mov eax, esi
+and eax, 0xf
+shl eax, 0x10
+or eax, 0xf
+
+loc_fffba76f: ; not directly referenced
+mov ecx, dword [ebp - 0x278]
+mov edx, dword [ebx + 0x103f]
+shl ecx, 0xa
+lea edx, [ecx + edx + 0x4194]
+mov dword [edx], eax
+
+loc_fffba787: ; not directly referenced
+inc dword [ebp - 0x278]
+cmp dword [ebp - 0x278], 2
+jne loc_fffba5f6 ; jne 0xfffba5f6
+mov edi, dword [ebp - 0x284]
+mov esi, 0xc0
+and edi, 3
+shl edi, 0x16
+mov dword [ebp - 0x29c], edi
+jmp near loc_fffbab18 ; jmp 0xfffbab18
+
+loc_fffba7b6: ; not directly referenced
+imul eax, dword [ebp - 0x280], 0x1347
+mov dl, byte [ebp - 0x2a8]
+test byte [ebx + eax + 0x3acb], dl
+jne short loc_fffba7e3 ; jne 0xfffba7e3
+
+loc_fffba7cf: ; not directly referenced
+inc dword [ebp - 0x280]
+cmp dword [ebp - 0x280], 2
+jne short loc_fffba7b6 ; jne 0xfffba7b6
+jmp near loc_fffba86f ; jmp 0xfffba86f
+
+loc_fffba7e3: ; not directly referenced
+mov eax, dword [ebx + eax + 0x2abd]
+mov edi, dword [ebp - 0x29c]
+and eax, 0xff0fff7d
+mov byte [ebp - 0x27c], 0
+or eax, 0x200082
+or eax, edi
+mov dword [ebp - 0x278], eax
+mov eax, dword [ebp - 0x280]
+shl eax, 8
+add eax, 0x74
+mov dword [ebp - 0x288], eax
+jmp short loc_fffba85c ; jmp 0xfffba85c
+
+loc_fffba81d: ; not directly referenced
+push eax
+movzx edi, byte [ebp - 0x27c]
+mov eax, ebx
+push esi
+mov ecx, dword [ebp - 0x284]
+mov edx, dword [ebp - 0x280]
+push 1
+push edi
+shl edi, 9
+call fcn_fffb02b4 ; call 0xfffb02b4
+add edi, dword [ebp - 0x288]
+add edi, dword [ebx + 0x103f]
+mov eax, dword [ebp - 0x278]
+inc byte [ebp - 0x27c]
+add esp, 0x10
+mov dword [edi], eax
+
+loc_fffba85c: ; not directly referenced
+mov dl, byte [ebp - 0x27c]
+cmp dl, byte [ebx + 0x1755]
+jb short loc_fffba81d ; jb 0xfffba81d
+jmp near loc_fffba7cf ; jmp 0xfffba7cf
+
+loc_fffba86f: ; not directly referenced
+cmp si, 0xc0
+mov word [ebp - 0x2a4], si
+jne short loc_fffba88a ; jne 0xfffba88a
+mov edx, dword [ebp - 0x2bc]
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+
+loc_fffba88a: ; not directly referenced
+mov eax, ebx
+lea edi, [ebp - 0x1c8]
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov edx, dword [ebp - 0x2bc]
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+lea ecx, [ebp - 0x180]
+lea eax, [ebp - 0x138]
+mov dword [ebp - 0x270], ecx
+mov dword [ebp - 0x288], edi
+mov dword [ebp - 0x278], eax
+lea edx, [ebp - 0x60]
+lea ecx, [ebp - 0xa8]
+lea eax, [esi - 2]
+mov dword [ebp - 0x28c], ebx
+lea edi, [ebp - 0xf0]
+mov dword [ebp - 0x280], edx
+mov dword [ebp - 0x27c], ecx
+mov dword [ebp - 0x294], 0x54
+mov dword [ebp - 0x2b4], eax
+
+loc_fffba8f6: ; not directly referenced
+mov ecx, dword [ebp - 0x28c]
+mov dl, byte [ebp - 0x2a8]
+test byte [ecx + 0x3acb], dl
+je short loc_fffba929 ; je 0xfffba929
+mov al, byte [ebx + 0x1755]
+mov edx, dword [ebp - 0x294]
+mov byte [ebp - 0x2cc], al
+mov dword [ebp - 0x2a0], edx
+xor eax, eax
+jmp near loc_fffbaafc ; jmp 0xfffbaafc
+
+loc_fffba929: ; not directly referenced
+add dword [ebp - 0x28c], 0x1347
+add dword [ebp - 0x294], 0x100
+add dword [ebp - 0x270], 0x24
+add dword [ebp - 0x288], 0x24
+add edi, 0x24
+add dword [ebp - 0x278], 0x24
+add dword [ebp - 0x280], 0x24
+add dword [ebp - 0x27c], 0x24
+cmp dword [ebp - 0x294], 0x254
+jne short loc_fffba8f6 ; jne 0xfffba8f6
+jmp near loc_fffbab0d ; jmp 0xfffbab0d
+
+loc_fffba974: ; not directly referenced
+mov edx, dword [ebp - 0x2a0]
+add edx, dword [ebx + 0x103f]
+mov edx, dword [edx]
+and edx, 0x1ff
+cmp edx, 0xf
+setg dl
+cmp word [ebp - 0x2a4], 0xc0
+movzx edx, dl
+jne loc_fffbaa3e ; jne 0xfffbaa3e
+test edx, edx
+je short loc_fffba9f1 ; je 0xfffba9f1
+mov ecx, dword [ebp - 0x270]
+mov edx, dword [ebp - 0x288]
+mov dword [edi + eax*4], 0xc0
+mov dword [ecx + eax*4], 0xc0
+mov ecx, dword [ebp - 0x278]
+mov dword [edx + eax*4], 0xc0
+mov edx, dword [ebp - 0x280]
+mov dword [ecx + eax*4], 0xc0
+mov ecx, dword [ebp - 0x27c]
+mov dword [edx + eax*4], 0xc0
+mov dword [ecx + eax*4], 0xc0
+jmp near loc_fffbaaf1 ; jmp 0xfffbaaf1
+
+loc_fffba9f1: ; not directly referenced
+mov edx, dword [ebp - 0x270]
+mov ecx, dword [ebp - 0x288]
+mov dword [edi + eax*4], 0xfffffffe
+mov dword [edx + eax*4], 0xfffffffe
+mov edx, dword [ebp - 0x278]
+mov dword [ecx + eax*4], 0xfffffffe
+mov ecx, dword [ebp - 0x280]
+mov dword [edx + eax*4], 0xfffffffe
+mov edx, dword [ebp - 0x27c]
+mov dword [ecx + eax*4], 0xfffffffe
+mov dword [edx + eax*4], 0xfffffffe
+jmp near loc_fffbaaf1 ; jmp 0xfffbaaf1
+
+loc_fffbaa3e: ; not directly referenced
+test edx, edx
+je loc_fffbaaf1 ; je 0xfffbaaf1
+mov ecx, dword [ebp - 0x270]
+mov edx, dword [ebp - 0x2b4]
+cmp dword [ecx + eax*4], edx
+jne short loc_fffbaa5a ; jne 0xfffbaa5a
+mov dword [ecx + eax*4], esi
+
+loc_fffbaa5a: ; not directly referenced
+mov ecx, dword [ebp - 0x2b4]
+cmp dword [edi + eax*4], ecx
+mov dword [edi + eax*4], esi
+jne short loc_fffbaa6a ; jne 0xfffbaa6a
+jmp short loc_fffbaa73 ; jmp 0xfffbaa73
+
+loc_fffbaa6a: ; not directly referenced
+mov edx, dword [ebp - 0x278]
+mov dword [edx + eax*4], esi
+
+loc_fffbaa73: ; not directly referenced
+cmp esi, 0x13e
+jne short loc_fffbaa9f ; jne 0xfffbaa9f
+mov ecx, dword [ebp - 0x288]
+cmp dword [ecx + eax*4], 0xc0
+jne short loc_fffbaa9f ; jne 0xfffbaa9f
+mov edx, dword [ebp - 0x270]
+mov edx, dword [edx + eax*4]
+mov dword [ebp - 0x2d4], edx
+sub edx, 0xffffffffffffff80
+mov dword [edi + eax*4], edx
+
+loc_fffbaa9f: ; not directly referenced
+mov edx, dword [ebp - 0x278]
+mov ecx, dword [edi + eax*4]
+mov dword [ebp - 0x2b0], ecx
+mov edx, dword [edx + eax*4]
+sub ecx, edx
+mov dword [ebp - 0x2c8], edx
+mov edx, dword [ebp - 0x280]
+mov dword [ebp - 0x2d0], ecx
+mov ecx, dword [edx + eax*4]
+mov edx, dword [ebp - 0x27c]
+sub ecx, dword [edx + eax*4]
+cmp dword [ebp - 0x2d0], ecx
+jle short loc_fffbaaf1 ; jle 0xfffbaaf1
+mov ecx, dword [ebp - 0x2c8]
+mov dword [edx + eax*4], ecx
+mov edx, dword [ebp - 0x280]
+mov ecx, dword [ebp - 0x2b0]
+mov dword [edx + eax*4], ecx
+
+loc_fffbaaf1: ; not directly referenced
+inc eax
+add dword [ebp - 0x2a0], 0x200
+
+loc_fffbaafc: ; not directly referenced
+cmp byte [ebp - 0x2cc], al
+ja loc_fffba974 ; ja 0xfffba974
+jmp near loc_fffba929 ; jmp 0xfffba929
+
+loc_fffbab0d: ; not directly referenced
+add esi, 2
+cmp esi, 0x140
+je short loc_fffbab27 ; je 0xfffbab27
+
+loc_fffbab18: ; not directly referenced
+mov dword [ebp - 0x280], 0
+jmp near loc_fffba7b6 ; jmp 0xfffba7b6
+
+loc_fffbab27: ; not directly referenced
+movzx eax, byte [ebp - 0x2ac]
+mov dword [ebp - 0x278], 0
+imul eax, eax, 0xfb
+mov dword [ebp - 0x288], eax
+
+loc_fffbab44: ; not directly referenced
+imul eax, dword [ebp - 0x278], 0x1347
+mov dl, byte [ebp - 0x2a8]
+test byte [ebx + eax + 0x3acb], dl
+jne short loc_fffbab72 ; jne 0xfffbab72
+
+loc_fffbab5d: ; not directly referenced
+inc dword [ebp - 0x278]
+cmp dword [ebp - 0x278], 2
+je loc_fffba582 ; je 0xfffba582
+jmp short loc_fffbab44 ; jmp 0xfffbab44
+
+loc_fffbab72: ; not directly referenced
+mov ecx, dword [ebp - 0x288]
+lea eax, [ebx + eax + 0x297c]
+mov edx, dword [ebp - 0x278]
+mov dword [ebp - 0x27c], eax
+shl edx, 0xa
+cmp dword [ebp - 0x290], 0
+mov cl, byte [eax + ecx + 0x1232]
+mov eax, dword [ebx + 0x103f]
+mov byte [ebp - 0x294], cl
+lea eax, [edx + eax + 0x4194]
+mov dword [eax], 0
+je short loc_fffbac14 ; je 0xfffbac14
+mov eax, dword [ebp - 0x284]
+mov esi, dword [ebp - 0x27c]
+and eax, 1
+mov ecx, dword [ebp - 0x284]
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x288]
+push 0
+mov edx, dword [ebp - 0x278]
+push 0
+movzx eax, word [esi + eax + 0x123c]
+push eax
+mov eax, ebx
+push 2
+call fcn_fffb8fda ; call 0xfffb8fda
+
+loc_fffbabf1: ; not directly referenced
+imul esi, dword [ebp - 0x284], 9
+imul edi, dword [ebp - 0x278], 9
+add esp, 0x10
+mov byte [ebp - 0x280], 0
+mov dword [ebp - 0x2a0], esi
+jmp near loc_fffbad49 ; jmp 0xfffbad49
+
+loc_fffbac14: ; not directly referenced
+mov eax, dword [ebp - 0x284]
+movzx ecx, byte [ebp - 0x298]
+and eax, 1
+mov edx, dword [ebp - 0x278]
+push edi
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x288]
+push edi
+mov edi, dword [ebp - 0x27c]
+movzx eax, word [edi + eax + 0x123a]
+push eax
+mov eax, ebx
+push 1
+call fcn_fffb96d4 ; call 0xfffb96d4
+jmp short loc_fffbabf1 ; jmp 0xfffbabf1
+
+loc_fffbac4f: ; not directly referenced
+movzx eax, byte [ebp - 0x280]
+lea edx, [edi + eax]
+mov ecx, dword [ebp + edx*4 - 0xa8]
+mov esi, dword [ebp + edx*4 - 0x60]
+sub esi, ecx
+mov dword [ebp - 0x29c], ecx
+sub esi, 0x21
+cmp esi, 0x3e
+ja loc_fffbb7ec ; ja 0xfffbb7ec
+cmp byte [ebp - 0x294], 0x10
+jne short loc_fffbace2 ; jne 0xfffbace2
+test byte [ebp - 0x280], 1
+je short loc_fffbace2 ; je 0xfffbace2
+mov cl, byte [ebp - 0x280]
+lea esi, [ecx - 1]
+and esi, 0xff
+lea ecx, [edi + esi]
+mov ecx, dword [ebp + ecx*4 - 0xa8]
+add ecx, 0x40
+cmp dword [ebp - 0x29c], ecx
+jle short loc_fffbacbe ; jle 0xfffbacbe
+mov ecx, dword [ebp - 0x29c]
+add ecx, 0xffffffffffffff80
+mov dword [ebp + edx*4 - 0xa8], ecx
+
+loc_fffbacbe: ; not directly referenced
+add esi, edi
+lea edx, [edi + eax]
+mov ecx, dword [ebp + edx*4 - 0xa8]
+mov esi, dword [ebp + esi*4 - 0xa8]
+sub esi, 0x40
+cmp ecx, esi
+jge short loc_fffbace2 ; jge 0xfffbace2
+sub ecx, 0xffffffffffffff80
+mov dword [ebp + edx*4 - 0xa8], ecx
+
+loc_fffbace2: ; not directly referenced
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffbacf9 ; jne 0xfffbacf9
+lea edx, [edi + eax]
+add dword [ebp + edx*4 - 0xa8], 0x40
+
+loc_fffbacf9: ; not directly referenced
+lea edx, [edi + eax]
+mov esi, dword [ebp - 0x27c]
+mov ecx, dword [ebp + edx*4 - 0xa8]
+mov edx, dword [ebp - 0x2a0]
+add edx, eax
+mov word [esi + edx*2 + 0x1dd], cx
+add ecx, 0x20
+mov word [esi + edx*2 + 0x225], cx
+mov ecx, dword [ebp - 0x284]
+push esi
+mov edx, dword [ebp - 0x278]
+push 0
+push 0xff
+push eax
+mov eax, ebx
+call fcn_fffb02b4 ; call 0xfffb02b4
+inc byte [ebp - 0x280]
+add esp, 0x10
+
+loc_fffbad49: ; not directly referenced
+mov al, byte [ebp - 0x280]
+cmp al, byte [ebx + 0x1755]
+jb loc_fffbac4f ; jb 0xfffbac4f
+jmp near loc_fffbab5d ; jmp 0xfffbab5d
+
+loc_fffbad60: ; not directly referenced
+imul edx, dword [ebp - 0x27c], 0x1347
+mov esi, dword [ebp - 0x2b8]
+cmp dword [esi + edx + 0x12be], 2
+je short loc_fffbad90 ; je 0xfffbad90
+
+loc_fffbad7a: ; not directly referenced
+inc dword [ebp - 0x27c]
+add eax, 0x100
+cmp dword [ebp - 0x27c], 2
+je short loc_fffbadee ; je 0xfffbadee
+jmp short loc_fffbad60 ; jmp 0xfffbad60
+
+loc_fffbad90: ; not directly referenced
+mov ecx, dword [ebp - 0x280]
+lea esi, [eax - 0x3010]
+mov dword [ebp - 0x278], esi
+lea edi, [ecx + edx + 8]
+mov edx, dword [ebx + 0x103f]
+add edx, eax
+mov ecx, dword [edi + 0x141]
+mov dword [edx], ecx
+xor edx, edx
+jmp short loc_fffbade4 ; jmp 0xfffbade4
+
+loc_fffbadba: ; not directly referenced
+movzx esi, dl
+inc edx
+mov ecx, dword [edi + esi*4 + 0x169]
+mov dword [ebp - 0x284], ecx
+mov ecx, esi
+shl ecx, 9
+add ecx, dword [ebp - 0x278]
+add ecx, dword [ebx + 0x103f]
+mov esi, dword [ebp - 0x284]
+mov dword [ecx], esi
+
+loc_fffbade4: ; not directly referenced
+cmp dl, byte [ebx + 0x1755]
+jb short loc_fffbadba ; jb 0xfffbadba
+jmp short loc_fffbad7a ; jmp 0xfffbad7a
+
+loc_fffbadee: ; not directly referenced
+cmp dword [ebp - 0x290], 0
+je loc_fffbaf58 ; je 0xfffbaf58
+
+loc_fffbadfb: ; not directly referenced
+mov al, byte [ebp - 0x2c4]
+lea edi, [ebp - 0x1f4]
+mov byte [ebx + 0x1742], al
+mov ecx, 0xb
+xor eax, eax
+mov esi, ref_fffcbdf4 ; mov esi, 0xfffcbdf4
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0x25a]
+mov cl, 7
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea edi, [ebp - 0x253]
+mov esi, ref_fffcbdfc ; mov esi, 0xfffcbdfc
+mov cl, 7
+lea edx, [ebp - 0x243]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea edi, [ebp - 0x220]
+mov esi, ref_fffcbe04 ; mov esi, 0xfffcbe04
+mov cl, 3
+mov word [ebp - 0x1e6], 0x3ff
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x214]
+mov esi, ref_fffcbe10 ; mov esi, 0xfffcbe10
+mov cl, 3
+mov word [ebp - 0x1ca], 1
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea esi, [ebp - 0x233]
+mov cl, 8
+mov eax, esi
+mov byte [ebp - 0x25f], 0
+mov byte [ebp - 0x25e], 1
+mov byte [ebp - 0x25d], 0xff
+mov byte [ebp - 0x25c], 2
+mov byte [ebp - 0x25b], 3
+mov byte [ebp - 0x243], 0
+mov byte [ebp - 0x242], 0
+mov byte [ebp - 0x241], 1
+mov byte [ebp - 0x240], 1
+mov byte [ebp - 0x23f], 1
+mov byte [ebp - 0x23e], 1
+mov byte [ebp - 0x23d], 0
+mov byte [ebp - 0x23c], 0
+mov byte [ebp - 0x23b], 0
+mov byte [ebp - 0x23a], 0xff
+mov byte [ebp - 0x239], 0xff
+mov byte [ebp - 0x238], 0
+mov byte [ebp - 0x237], 0xc3
+mov byte [ebp - 0x236], 0x3c
+mov byte [ebp - 0x235], 0x3c
+mov byte [ebp - 0x234], 0xc3
+mov word [ebp - 0x22b], 1
+mov dword [ebp - 0x229], 0
+mov dword [ebp - 0x225], 3
+mov byte [ebp - 0x221], 0
+call fcn_fffa115e ; call 0xfffa115e
+xor ecx, ecx
+mov edx, 8
+lea eax, [ebp - 0x24c]
+call fcn_fffa119f ; call 0xfffa119f
+xor edx, edx
+cmp dword [ebx + 0x1749], 2
+sete dl
+xor edi, edi
+mov dword [ebp - 0x2bc], edx
+jmp short loc_fffbaf6c ; jmp 0xfffbaf6c
+
+loc_fffbaf58: ; not directly referenced
+mov eax, ebx
+call fcn_fffc43c7 ; call 0xfffc43c7
+test eax, eax
+je loc_fffbadfb ; je 0xfffbadfb
+jmp near loc_fffbb811 ; jmp 0xfffbb811
+
+loc_fffbaf6c: ; not directly referenced
+push ecx
+lea edx, [ebp + edi*2 - 0x23b]
+mov eax, ebx
+push ecx
+mov ecx, esi
+push edi
+inc edi
+push 8
+call fcn_fffb1ee8 ; call 0xfffb1ee8
+add esp, 0x10
+cmp edi, 4
+jne short loc_fffbaf6c ; jne 0xfffbaf6c
+lea edx, [ebp - 0x220]
+mov eax, ebx
+call fcn_fffb2062 ; call 0xfffb2062
+mov cl, byte [ebx + 0x176a]
+mov eax, 1
+movzx edx, byte [ebx + 0x176b]
+mov byte [ebp - 0x2c8], cl
+movzx ecx, byte [ebx + 0x1755]
+push 0
+shl eax, cl
+xor ecx, ecx
+push 0
+dec eax
+push 0
+mov word [ebp - 0x2b8], ax
+lea eax, [ebp - 0x22b]
+push eax
+lea eax, [ebp - 0x1f4]
+push 0
+push eax
+mov eax, ebx
+push 4
+push 2
+call fcn_fffb2650 ; call 0xfffb2650
+add esp, 0x20
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffbafff ; jne 0xfffbafff
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4040], 0x8049
+
+loc_fffbafff: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffbb018 ; jne 0xfffbb018
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4440], 0x8049
+
+loc_fffbb018: ; not directly referenced
+lea esi, [ebp - 0x25a]
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x284], 0
+mov dword [ebp - 0x274], esi
+mov dword [ebp - 0x2b0], edi
+
+loc_fffbb03a: ; not directly referenced
+mov esi, dword [ebp - 0x284]
+mov dword [ebp - 0x278], 1
+mov ecx, esi
+xor edx, edx
+shl dword [ebp - 0x278], cl
+movzx edi, byte [ebp - 0x278]
+mov ecx, edi
+mov eax, ebx
+mov dword [ebp - 0x288], edi
+call fcn_fffc41bb ; call 0xfffc41bb
+mov byte [ebp - 0x2b4], al
+mov ecx, edi
+mov edx, 1
+mov eax, ebx
+mov byte [ebp - 0x266], 0
+mov word [ebp - 0x264], 0
+call fcn_fffc41bb ; call 0xfffc41bb
+mov byte [ebp - 0x2c0], al
+mov al, byte [ebp - 0x278]
+test byte [ebp - 0x2c8], al
+mov byte [ebp - 0x265], 0
+mov word [ebp - 0x262], 0
+je short loc_fffbb116 ; je 0xfffbb116
+mov edx, esi
+mov ecx, dword [ebp - 0x284]
+shr dl, 1
+add ecx, ecx
+movzx eax, dl
+mov dword [ebp - 0x290], 3
+imul eax, eax, 0xfb
+mov dword [ebp - 0x2a0], ecx
+shl dword [ebp - 0x290], cl
+mov dword [ebp - 0x2a8], 2
+mov cl, byte [ebp - 0x2a0]
+lea esi, [ebp - 0x25f]
+mov byte [ebp - 0x29c], dl
+not dword [ebp - 0x290]
+shl dword [ebp - 0x2a8], cl
+mov dword [ebp - 0x280], esi
+mov dword [ebp - 0x2ac], eax
+jmp near loc_fffbb4bc ; jmp 0xfffbb4bc
+
+loc_fffbb116: ; not directly referenced
+inc dword [ebp - 0x284]
+cmp dword [ebp - 0x284], 4
+jne loc_fffbb03a ; jne 0xfffbb03a
+jmp near loc_fffbb7a8 ; jmp 0xfffbb7a8
+
+loc_fffbb12e: ; not directly referenced
+imul eax, esi, 0x1347
+mov dl, byte [ebp - 0x278]
+test byte [ebx + eax + 0x3acb], dl
+je loc_fffbb287 ; je 0xfffbb287
+mov edi, dword [ebp - 0x2b0]
+lea eax, [edi + eax + 8]
+mov edi, dword [ebp - 0x280]
+mov dword [ebp - 0x294], eax
+movsx eax, byte [edi]
+cmp al, 2
+jle short loc_fffbb183 ; jle 0xfffbb183
+mov edx, dword [ebp - 0x290]
+and edx, dword [ebp + esi*4 - 0x24c]
+or edx, dword [ebp - 0x2a8]
+sub eax, 2
+mov dword [ebp + esi*4 - 0x24c], edx
+jmp short loc_fffbb194 ; jmp 0xfffbb194
+
+loc_fffbb183: ; not directly referenced
+test al, al
+jns short loc_fffbb1a0 ; jns 0xfffbb1a0
+mov edi, dword [ebp - 0x290]
+and dword [ebp + esi*4 - 0x24c], edi
+
+loc_fffbb194: ; not directly referenced
+shl eax, 7
+mov word [ebp - 0x27c], ax
+jmp short loc_fffbb1c7 ; jmp 0xfffbb1c7
+
+loc_fffbb1a0: ; not directly referenced
+mov cl, byte [ebp - 0x2a0]
+mov edx, dword [ebp - 0x290]
+and edx, dword [ebp + esi*4 - 0x24c]
+mov word [ebp - 0x27c], 0
+shl eax, cl
+or edx, eax
+mov dword [ebp + esi*4 - 0x24c], edx
+
+loc_fffbb1c7: ; not directly referenced
+mov edi, dword [ebp - 0x294]
+add edi, dword [ebp - 0x28c]
+mov byte [ebp - 0x298], 0
+mov dword [ebp - 0x2a4], edi
+jmp short loc_fffbb25a ; jmp 0xfffbb25a
+
+loc_fffbb1e2: ; not directly referenced
+movzx ecx, byte [ebp - 0x298]
+mov edi, dword [ebp - 0x28c]
+mov edx, dword [ebp - 0x294]
+lea eax, [ecx + edi + 0xe8]
+movzx edi, word [edx + eax*2 + 0xd]
+movsx eax, word [ebp - 0x27c]
+add edi, eax
+lea eax, [edi + 0x20]
+and edi, 0x1ff
+shl edi, 9
+and eax, 0x1ff
+mov dword [ebp - 0x2c4], edi
+mov edi, dword [ebp - 0x2a4]
+or eax, dword [ebp - 0x2c4]
+movzx edx, byte [ecx + edi + 0x309]
+and edx, 0x3f
+shl edx, 0x14
+or eax, edx
+push edx
+mov edx, esi
+push eax
+mov eax, ebx
+push 3
+push ecx
+mov ecx, dword [ebp - 0x284]
+call fcn_fffb02b4 ; call 0xfffb02b4
+inc byte [ebp - 0x298]
+add esp, 0x10
+
+loc_fffbb25a: ; not directly referenced
+mov al, byte [ebp - 0x298]
+cmp al, byte [ebx + 0x1755]
+jb loc_fffbb1e2 ; jb 0xfffbb1e2
+mov ecx, esi
+mov eax, dword [ebx + 0x103f]
+shl ecx, 0xa
+mov edx, dword [ebp + esi*4 - 0x24c]
+lea eax, [ecx + eax + 0x40d0]
+mov dword [eax], edx
+
+loc_fffbb287: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffbb12e ; jne 0xfffbb12e
+mov dl, byte [ebp - 0x278]
+cmp dword [ebp - 0x2bc], 0
+mov byte [ebp - 0x28c], dl
+jne loc_fffbb34a ; jne 0xfffbb34a
+mov eax, ebx
+call fcn_fffb8e01 ; call 0xfffb8e01
+mov cl, byte [ebp - 0x28c]
+test byte [ebx + 0x3acb], cl
+je short loc_fffbb2f6 ; je 0xfffbb2f6
+push eax
+mov ecx, dword [ebp - 0x288]
+xor edx, edx
+push eax
+mov eax, dword [ebp - 0x284]
+and eax, 1
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x2ac]
+mov ax, word [ebx + eax + 0x3bb4]
+or ah, 1
+movzx eax, ax
+push eax
+mov eax, ebx
+push 0
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+
+loc_fffbb2f6: ; not directly referenced
+mov al, byte [ebp - 0x28c]
+test byte [ebx + 0x4e12], al
+je short loc_fffbb33e ; je 0xfffbb33e
+push eax
+mov ecx, dword [ebp - 0x288]
+mov edx, 1
+push eax
+mov eax, dword [ebp - 0x284]
+and eax, 1
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x2ac]
+mov ax, word [ebx + eax + 0x4efb]
+or ah, 1
+movzx eax, ax
+push eax
+mov eax, ebx
+push 0
+call fcn_fffb96d4 ; call 0xfffb96d4
+add esp, 0x10
+
+loc_fffbb33e: ; not directly referenced
+mov edx, 0xf
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+
+loc_fffbb34a: ; not directly referenced
+mov al, byte [ebp - 0x2c0]
+or eax, dword [ebp - 0x2b4]
+movzx eax, al
+lea edi, [ebp - 0x24c]
+lea esi, [ebp - 0x253]
+mov dword [ebp - 0x270], edi
+mov dword [ebp - 0x2c4], eax
+
+loc_fffbb371: ; not directly referenced
+movsx ecx, byte [esi]
+mov edx, 2
+push 0
+mov eax, ebx
+lea edi, [ebp - 0x206]
+push 0
+push 0
+push 0
+push dword [ebp - 0x284]
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x1c
+lea eax, [ebp - 0x25a]
+push 0
+xor ecx, ecx
+mov edx, dword [ebp - 0x2c4]
+push 1
+push eax
+mov eax, ebx
+call fcn_fffb21f3 ; call 0xfffb21f3
+mov dword [ebp - 0x294], edi
+add esp, 0x10
+mov dword [ebp - 0x2d0], edi
+xor eax, eax
+mov dword [ebp - 0x298], 1
+
+loc_fffbb3d2: ; not directly referenced
+imul edx, eax, 0x1347
+mov cl, byte [ebp - 0x28c]
+test byte [ebx + edx + 0x3acb], cl
+je loc_fffbb481 ; je 0xfffbb481
+mov ecx, eax
+mov edx, dword [ebx + 0x103f]
+shl ecx, 0xa
+mov edi, dword [ebp - 0x2b8]
+lea edx, [ecx + edx + 0x40ec]
+xor ecx, ecx
+mov edx, dword [edx]
+and edi, edx
+mov dx, word [ebp + eax*2 - 0x264]
+or edi, edx
+mov dl, byte [ebx + 0x1755]
+mov word [ebp - 0x2cc], di
+mov byte [ebp - 0x2a4], dl
+jmp short loc_fffbb459 ; jmp 0xfffbb459
+
+loc_fffbb428: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test word [ebp - 0x2cc], dx
+jne short loc_fffbb458 ; jne 0xfffbb458
+or word [ebp + eax*2 - 0x264], dx
+mov edx, dword [ebp - 0x280]
+mov edi, dword [ebp - 0x2d0]
+mov dl, byte [edx]
+add byte [ebp + eax - 0x266], dl
+mov byte [edi + ecx], dl
+
+loc_fffbb458: ; not directly referenced
+inc ecx
+
+loc_fffbb459: ; not directly referenced
+cmp byte [ebp - 0x2a4], cl
+ja short loc_fffbb428 ; ja 0xfffbb428
+mov edi, dword [ebp - 0x2b8]
+mov edx, 0
+cmp word [ebp + eax*2 - 0x264], di
+cmove edx, dword [ebp - 0x298]
+mov dword [ebp - 0x298], edx
+
+loc_fffbb481: ; not directly referenced
+inc eax
+add dword [ebp - 0x2d0], 9
+cmp eax, 2
+jne loc_fffbb3d2 ; jne 0xfffbb3d2
+cmp dword [ebp - 0x298], 1
+je short loc_fffbb4da ; je 0xfffbb4da
+inc esi
+cmp esi, dword [ebp - 0x270]
+jne loc_fffbb371 ; jne 0xfffbb371
+inc dword [ebp - 0x280]
+mov esi, dword [ebp - 0x274]
+cmp dword [ebp - 0x280], esi
+je short loc_fffbb4d0 ; je 0xfffbb4d0
+
+loc_fffbb4bc: ; not directly referenced
+imul edi, dword [ebp - 0x284], 9
+xor esi, esi
+mov dword [ebp - 0x28c], edi
+jmp near loc_fffbb12e ; jmp 0xfffbb12e
+
+loc_fffbb4d0: ; not directly referenced
+mov dword [ebp - 0x298], 0
+
+loc_fffbb4da: ; not directly referenced
+movzx eax, byte [ebp - 0x29c]
+xor edi, edi
+imul eax, eax, 0xfb
+mov dword [ebp - 0x2cc], eax
+
+loc_fffbb4ef: ; not directly referenced
+imul eax, edi, 0x1347
+mov dl, byte [ebp - 0x28c]
+test byte [ebx + eax + 0x3acb], dl
+je loc_fffbb792 ; je 0xfffbb792
+mov ecx, dword [ebp - 0x2b0]
+cmp dword [ebp - 0x298], 0
+lea esi, [ecx + eax + 8]
+je loc_fffbb7ec ; je 0xfffbb7ec
+mov al, byte [ebx + 0x1755]
+mov byte [ebp - 0x27c], 0
+movsx edx, byte [ebp + edi - 0x266]
+mov byte [ebp - 0x29c], al
+shr al, 1
+movzx eax, al
+movsx ecx, byte [ebp - 0x29c]
+add eax, edx
+cdq
+idiv ecx
+mov byte [ebp - 0x278], al
+imul eax, dword [ebp - 0x284], 0x12
+lea eax, [esi + eax + 0x1d0]
+mov dword [ebp - 0x2c4], eax
+
+loc_fffbb565: ; not directly referenced
+cmp byte [ebp - 0x278], 2
+jle short loc_fffbb59e ; jle 0xfffbb59e
+mov eax, dword [ebp - 0x290]
+and eax, dword [ebp + edi*4 - 0x24c]
+or eax, dword [ebp - 0x2a8]
+mov dword [ebp + edi*4 - 0x24c], eax
+movsx eax, byte [ebp - 0x278]
+sub eax, 2
+shl eax, 7
+mov word [ebp - 0x280], ax
+jmp short loc_fffbb5f0 ; jmp 0xfffbb5f0
+
+loc_fffbb59e: ; not directly referenced
+cmp byte [ebp - 0x278], 0
+mov edx, dword [ebp - 0x290]
+jns short loc_fffbb5c8 ; jns 0xfffbb5c8
+movsx cx, byte [ebp - 0x278]
+shl ecx, 7
+and dword [ebp + edi*4 - 0x24c], edx
+mov word [ebp - 0x280], cx
+jmp short loc_fffbb5f0 ; jmp 0xfffbb5f0
+
+loc_fffbb5c8: ; not directly referenced
+mov cl, byte [ebp - 0x2a0]
+and edx, dword [ebp + edi*4 - 0x24c]
+movsx eax, byte [ebp - 0x278]
+mov word [ebp - 0x280], 0
+shl eax, cl
+or eax, edx
+mov dword [ebp + edi*4 - 0x24c], eax
+
+loc_fffbb5f0: ; not directly referenced
+mov eax, dword [ebp - 0x2c4]
+mov dword [ebp - 0x2d0], 0
+movsx edx, word [ebp - 0x280]
+add eax, 0xd
+movsx ecx, byte [ebp - 0x278]
+mov dword [ebp - 0x270], eax
+mov dword [ebp - 0x2b4], edx
+mov dword [ebp - 0x2c0], ecx
+jmp short loc_fffbb692 ; jmp 0xfffbb692
+
+loc_fffbb625: ; not directly referenced
+mov edx, dword [ebp - 0x294]
+mov eax, dword [ebp - 0x2d0]
+movsx ecx, byte [edx + eax]
+sub ecx, dword [ebp - 0x2c0]
+shl ecx, 7
+mov edx, dword [ebp - 0x2b4]
+add edx, ecx
+mov ecx, dword [ebp - 0x270]
+movzx eax, word [ecx + 0x48]
+add eax, edx
+cmp eax, 0x1bf
+jle short loc_fffbb66a ; jle 0xfffbb66a
+inc byte [ebp - 0x27c]
+inc byte [ebp - 0x278]
+jmp near loc_fffbb802 ; jmp 0xfffbb802
+
+loc_fffbb66a: ; not directly referenced
+movzx ecx, word [ecx]
+inc dword [ebp - 0x2d0]
+add ecx, edx
+add dword [ebp - 0x270], 2
+cmp ecx, 0x5f
+jg short loc_fffbb692 ; jg 0xfffbb692
+inc byte [ebp - 0x27c]
+dec byte [ebp - 0x278]
+jmp near loc_fffbb802 ; jmp 0xfffbb802
+
+loc_fffbb692: ; not directly referenced
+mov dl, byte [ebp - 0x2d0]
+cmp byte [ebp - 0x29c], dl
+ja short loc_fffbb625 ; ja 0xfffbb625
+jmp near loc_fffbb7f3 ; jmp 0xfffbb7f3
+
+loc_fffbb6a5: ; not directly referenced
+lea eax, [edi + edi*8]
+lea ecx, [ebp - 0x18]
+add ecx, eax
+mov byte [ebp - 0x27c], 0
+mov dword [ebp - 0x29c], ecx
+jmp short loc_fffbb71d ; jmp 0xfffbb71d
+
+loc_fffbb6bc: ; not directly referenced
+movzx ecx, byte [ebp - 0x27c]
+mov edx, dword [ebp - 0x29c]
+movsx eax, byte [ecx + edx - 0x1ee]
+movsx edx, byte [ebp - 0x278]
+sub eax, edx
+imul edx, dword [ebp - 0x284], 9
+shl eax, 7
+add edx, ecx
+add eax, dword [ebp - 0x280]
+add word [esi + edx*2 + 0x225], ax
+add word [esi + edx*2 + 0x1dd], ax
+push eax
+mov edx, edi
+mov eax, ebx
+push 0
+push 0xff
+push ecx
+mov ecx, dword [ebp - 0x284]
+call fcn_fffb02b4 ; call 0xfffb02b4
+inc byte [ebp - 0x27c]
+add esp, 0x10
+
+loc_fffbb71d: ; not directly referenced
+mov cl, byte [ebp - 0x27c]
+cmp cl, byte [ebx + 0x1755]
+jb short loc_fffbb6bc ; jb 0xfffbb6bc
+mov ecx, edi
+mov eax, dword [ebx + 0x103f]
+shl ecx, 0xa
+mov edx, dword [ebp + edi*4 - 0x24c]
+cmp dword [ebp - 0x2bc], 0
+lea eax, [ecx + eax + 0x40d0]
+mov dword [eax], edx
+jne short loc_fffbb792 ; jne 0xfffbb792
+mov eax, dword [ebp - 0x284]
+mov ecx, dword [ebp - 0x288]
+and eax, 1
+imul eax, eax, 0xa
+add eax, dword [ebp - 0x2cc]
+push edx
+push edx
+mov ax, word [esi + eax + 0x1238]
+mov edx, edi
+or ah, 1
+movzx eax, ax
+push eax
+mov eax, ebx
+push 0
+call fcn_fffb96d4 ; call 0xfffb96d4
+mov edx, 0xf
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+add esp, 0x10
+
+loc_fffbb792: ; not directly referenced
+inc edi
+add dword [ebp - 0x294], 9
+cmp edi, 2
+je loc_fffbb116 ; je 0xfffbb116
+jmp near loc_fffbb4ef ; jmp 0xfffbb4ef
+
+loc_fffbb7a8: ; not directly referenced
+push eax
+mov ecx, 0x1010101
+xor edx, edx
+push eax
+mov eax, ebx
+push 0
+push 8
+call fcn_fffb1d24 ; call 0xfffb1d24
+lea edx, [ebp - 0x214]
+mov eax, ebx
+call fcn_fffb2062 ; call 0xfffb2062
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x3670], 0
+mov eax, ebx
+call fcn_fffb8e01 ; call 0xfffb8e01
+add esp, 0x10
+jmp short loc_fffbb811 ; jmp 0xfffbb811
+
+loc_fffbb7e5: ; not directly referenced
+mov eax, 1
+jmp short loc_fffbb811 ; jmp 0xfffbb811
+
+loc_fffbb7ec: ; not directly referenced
+mov eax, 8
+jmp short loc_fffbb811 ; jmp 0xfffbb811
+
+loc_fffbb7f3: ; not directly referenced
+cmp byte [ebp - 0x27c], 3
+jbe loc_fffbb6a5 ; jbe 0xfffbb6a5
+jmp short loc_fffbb7e5 ; jmp 0xfffbb7e5
+
+loc_fffbb802: ; not directly referenced
+cmp byte [ebp - 0x27c], 3
+jbe loc_fffbb565 ; jbe 0xfffbb565
+jmp short loc_fffbb7e5 ; jmp 0xfffbb7e5
+
+loc_fffbb811: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbb819: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 0x10
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x5c]
+mov esi, dword [ebp + 8]
+lea eax, [esi + 0x16be]
+mov dword [ebp - 0x54], eax
+lea eax, [ebp - 0x28]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 1
+mov edx, 3
+lea eax, [ebp - 0x3b]
+call fcn_fffa119f ; call 0xfffa119f
+sub esp, 0xc
+mov ecx, 0x11
+movzx edx, byte [esi + 0x176b]
+mov eax, esi
+push 0
+mov byte [ebp - 0x3e], 0xfc
+mov byte [ebp - 0x3d], 0
+mov byte [ebp - 0x3c], 4
+call fcn_fffc5844 ; call 0xfffc5844
+mov dl, byte [ebp - 0x3a]
+mov cl, byte [ebp - 0x3b]
+add edx, ecx
+mov al, byte [ebp - 0x39]
+add edx, eax
+add esp, 0x10
+mov byte [ebp - 0x4c], dl
+mov edx, dword [ebp - 0x54]
+mov dword [ebp - 0x58], edx
+
+loc_fffbb891: ; not directly referenced
+imul eax, ebx, 0x1347
+mov ecx, dword [ebp - 0x54]
+cmp dword [ecx + eax + 0x12be], 2
+jne short loc_fffbb8d9 ; jne 0xfffbb8d9
+mov edx, dword [ebp - 0x58]
+lea eax, [edx + eax + 0x12b0]
+mov edx, ebx
+movzx ecx, byte [eax + 0x115d]
+mov dword [ebp - 0x50], eax
+mov eax, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+or edi, eax
+mov eax, dword [ebp - 0x50]
+movzx ecx, byte [esi + 0x1755]
+add eax, 0x107
+xor edx, edx
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffbb8d9: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbb891 ; jne 0xfffbb891
+lea ecx, [esi + 0x1774]
+mov eax, esi
+mov dword [ebp - 0x58], ecx
+mov ecx, 2
+mov edx, dword [ebp - 0x58]
+lea ebx, [esi + 0x1e34]
+call fcn_fffbf934 ; call 0xfffbf934
+mov eax, edi
+xor ecx, ecx
+movzx edi, al
+mov dword [ebp - 0x54], edi
+mov edi, 0x14
+
+loc_fffbb90c: ; not directly referenced
+mov edx, dword [ebp - 0x54]
+mov dword [ebp + ecx*4 - 0x38], 0
+bt edx, ecx
+jae short loc_fffbb93a ; jae 0xfffbb93a
+xor edx, edx
+mov eax, dword [ebx + 4]
+add eax, dword [ebx]
+div edi
+test eax, eax
+je short loc_fffbb932 ; je 0xfffbb932
+cmp eax, 0xc
+mov dword [ebp + ecx*4 - 0x38], eax
+jbe short loc_fffbb93a ; jbe 0xfffbb93a
+
+loc_fffbb932: ; not directly referenced
+mov dword [ebp + ecx*4 - 0x38], 0xc
+
+loc_fffbb93a: ; not directly referenced
+inc ecx
+add ebx, 0x48
+cmp ecx, 2
+jne short loc_fffbb90c ; jne 0xfffbb90c
+mov cl, 5
+mov edx, dword [ebp - 0x58]
+mov eax, esi
+xor edi, edi
+call fcn_fffbf934 ; call 0xfffbf934
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x2c], 0
+jmp near loc_fffbba25 ; jmp 0xfffbba25
+
+loc_fffbb964: ; not directly referenced
+mov ecx, dword [ebp - 0x54]
+bt ecx, ebx
+jb short loc_fffbb974 ; jb 0xfffbb974
+
+loc_fffbb96c: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbb964 ; jne 0xfffbb964
+jmp short loc_fffbb9c3 ; jmp 0xfffbb9c3
+
+loc_fffbb974: ; not directly referenced
+movsx eax, byte [ebp + edi - 0x3e]
+mov ecx, 0xc
+imul eax, dword [ebp + ebx*4 - 0x38]
+mov byte [ebp - 0x50], 0
+cdq
+idiv ecx
+mov dword [ebp - 0x5c], eax
+jmp short loc_fffbb9b6 ; jmp 0xfffbb9b6
+
+loc_fffbb98f: ; not directly referenced
+push 1
+movzx eax, byte [ebp - 0x50]
+mov ecx, dword [ebp - 0x5c]
+push 0
+mov edx, 2
+push 1
+push eax
+mov eax, esi
+push 0
+push ebx
+push 0
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+inc byte [ebp - 0x50]
+add esp, 0x20
+
+loc_fffbb9b6: ; not directly referenced
+mov al, byte [ebp - 0x50]
+cmp al, byte [esi + 0x1755]
+jb short loc_fffbb98f ; jb 0xfffbb98f
+jmp short loc_fffbb96c ; jmp 0xfffbb96c
+
+loc_fffbb9c3: ; not directly referenced
+sub esp, 0xc
+lea edx, [ebp - 0x28]
+push edx
+mov ecx, dword [ebp - 0x54]
+mov edx, dword [ebp - 0x58]
+push 0x36
+mov eax, esi
+push 1
+push 5
+push 0
+call fcn_fffc0a00 ; call 0xfffc0a00
+mov ecx, edi
+lea edx, [esi + 0x1bf8]
+add esp, 0x20
+xor eax, eax
+mov byte [ebp - 0x50], cl
+
+loc_fffbb9ef: ; not directly referenced
+mov ecx, dword [ebp - 0x54]
+bt ecx, eax
+jae short loc_fffbba16 ; jae 0xfffbba16
+mov ebx, dword [edx]
+sub ebx, dword [edx - 4]
+cmp byte [ebp - 0x50], 0
+jne short loc_fffbba0a ; jne 0xfffbba0a
+mov dword [ebp + eax*4 - 0x30], 0
+
+loc_fffbba0a: ; not directly referenced
+movzx ecx, byte [ebp + edi - 0x3b]
+imul ecx, ebx
+add dword [ebp + eax*4 - 0x30], ecx
+
+loc_fffbba16: ; not directly referenced
+inc eax
+add edx, 0x48
+cmp eax, 2
+jne short loc_fffbb9ef ; jne 0xfffbb9ef
+inc edi
+cmp edi, 3
+je short loc_fffbba2c ; je 0xfffbba2c
+
+loc_fffbba25: ; not directly referenced
+xor ebx, ebx
+jmp near loc_fffbb964 ; jmp 0xfffbb964
+
+loc_fffbba2c: ; not directly referenced
+movsx eax, byte [ebp - 0x4c]
+lea ecx, [esi + 0x1bf4]
+imul edx, eax, 0xa
+imul eax, eax, 0x14
+mov dword [ebp - 0x58], edx
+mov dword [ebp - 0x50], eax
+mov dword [ebp - 0x4c], ecx
+lea eax, [esi + 0x16be]
+xor ebx, ebx
+mov dword [ebp - 0x60], eax
+
+loc_fffbba50: ; not directly referenced
+mov edx, dword [ebp - 0x54]
+bt edx, ebx
+jae short loc_fffbbad1 ; jae 0xfffbbad1
+imul eax, ebx, 0x1347
+mov ecx, dword [ebp - 0x60]
+push 2
+lea eax, [ecx + eax + 0x12b0]
+mov dword [ebp - 0x5c], eax
+mov eax, dword [ebp + ebx*4 - 0x30]
+lea ecx, [ebx + 1]
+cdq
+or edx, 1
+movsx edi, dl
+imul edi, dword [ebp - 0x58]
+add eax, edi
+cdq
+idiv dword [ebp - 0x50]
+mov edx, 5
+mov edi, eax
+mov dword [ebp + ebx*4 - 0x30], eax
+mov eax, dword [ebp - 0x54]
+sar eax, cl
+mov ecx, edi
+push eax
+mov eax, esi
+push 1
+push 7
+push 0
+push ebx
+push 0
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+mov edx, dword [ebp - 0x4c]
+add esp, 0x20
+imul eax, edi, 0xa
+imul edi, edi, 0xfffffffffffffff6
+add dword [edx], eax
+mov eax, dword [ebp - 0x5c]
+add dword [edx + 4], edi
+add eax, 0x107
+xor edx, edx
+movzx ecx, byte [esi + 0x1755]
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffbbad1: ; not directly referenced
+inc ebx
+add dword [ebp - 0x4c], 0x48
+cmp ebx, 2
+jne loc_fffbba50 ; jne 0xfffbba50
+push 2
+mov eax, esi
+xor ecx, ecx
+push 0
+mov edx, 2
+push 1
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+mov byte [esi + 0x1741], 0
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbbb0c: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+mov dword [ebp - 0x3c], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x40], esi
+
+loc_fffbbb2d: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbbb49 ; ja 0xfffbbb49
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbbb49 ; jne 0xfffbbb49
+
+loc_fffbbb3e: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbbb2d ; jne 0xfffbbb2d
+jmp near loc_fffbbc6b ; jmp 0xfffbbc6b
+
+loc_fffbbb49: ; not directly referenced
+imul esi, ecx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x38], eax
+
+loc_fffbbb64: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov esi, dword [ebp - 0x3c]
+xor edi, edi
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov esi, dword [ebp - 0x40]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffbbb88: ; not directly referenced
+imul eax, edi, 0xfb
+mov esi, dword [ebp - 0x28]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea eax, [edx + 1]
+mov dword [ebp - 0x48], eax
+jne loc_fffbbc4f ; jne 0xfffbbc4f
+imul edx, edi, 0x14f
+mov esi, dword [ebp - 0x30]
+cmp ecx, 1
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x44], edx
+mov edx, dword [ebp - 0x34]
+mov esi, dword [eax + edx + 4]
+mov edx, dword [ebp - 0x28]
+lea eax, [ecx + edi*4 + 0x16]
+mov edx, dword [edx + eax*8]
+mov dword [ebp - 0x24], edx
+je short loc_fffbbc0f ; je 0xfffbbc0f
+jb short loc_fffbbc1e ; jb 0xfffbbc1e
+cmp ecx, 3
+ja short loc_fffbbc1e ; ja 0xfffbbc1e
+mov eax, dword [ebp - 0x48]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbbbef ; jne 0xfffbbbef
+and dl, 1
+jne short loc_fffbbbf6 ; jne 0xfffbbbf6
+xor eax, eax
+jmp short loc_fffbbc37 ; jmp 0xfffbbc37
+
+loc_fffbbbef: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffbbc37 ; je 0xfffbbc37
+
+loc_fffbbbf6: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edx, dword [ebp - 0x38]
+movzx edx, byte [eax + edx + 0xed]
+xor eax, eax
+test esi, esi
+mov dword [ebp - 0x44], edx
+je short loc_fffbbc37 ; je 0xfffbbc37
+jmp short loc_fffbbc2b ; jmp 0xfffbbc2b
+
+loc_fffbbc0f: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+movzx eax, word [edx + 0x148]
+test ax, ax
+jne short loc_fffbbc37 ; jne 0xfffbbc37
+
+loc_fffbbc1e: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffbbc37 ; je 0xfffbbc37
+mov eax, dword [ebp - 0x44]
+movzx edx, byte [eax + 0x3f]
+
+loc_fffbbc2b: ; not directly referenced
+imul edx, dword [ebp - 0x24]
+lea eax, [esi + edx - 1]
+xor edx, edx
+div esi
+
+loc_fffbbc37: ; not directly referenced
+cmp eax, 0xf
+mov edx, 0xf
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbbc4f: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffbbb88 ; jne 0xfffbbb88
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+je loc_fffbbb3e ; je 0xfffbbb3e
+jmp near loc_fffbbb64 ; jmp 0xfffbbb64
+
+loc_fffbbc6b: ; not directly referenced
+lea esi, [ebx + 0x3af5]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbbc7c: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbbc8a ; ja 0xfffbbc8a
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbbcbd ; je 0xfffbbcbd
+
+loc_fffbbc8a: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbbcbd: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbbc7c ; jne 0xfffbbc7c
+lea esp, [esp + 0x3c]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbbcd4: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+mov dword [ebp - 0x3c], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x40], esi
+
+loc_fffbbcf5: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbbd11 ; ja 0xfffbbd11
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbbd11 ; jne 0xfffbbd11
+
+loc_fffbbd06: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbbcf5 ; jne 0xfffbbcf5
+jmp near loc_fffbbe33 ; jmp 0xfffbbe33
+
+loc_fffbbd11: ; not directly referenced
+imul esi, ecx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x38], eax
+
+loc_fffbbd2c: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov esi, dword [ebp - 0x3c]
+xor edi, edi
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov esi, dword [ebp - 0x40]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffbbd50: ; not directly referenced
+imul eax, edi, 0xfb
+mov esi, dword [ebp - 0x28]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea eax, [edx + 1]
+mov dword [ebp - 0x48], eax
+jne loc_fffbbe17 ; jne 0xfffbbe17
+imul edx, edi, 0x14f
+mov esi, dword [ebp - 0x30]
+cmp ecx, 1
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x44], edx
+mov edx, dword [ebp - 0x34]
+mov esi, dword [eax + edx + 4]
+mov edx, dword [ebp - 0x28]
+lea eax, [ecx + edi*4 + 0x16]
+mov edx, dword [edx + eax*8]
+mov dword [ebp - 0x24], edx
+je short loc_fffbbdd7 ; je 0xfffbbdd7
+jb short loc_fffbbde6 ; jb 0xfffbbde6
+cmp ecx, 3
+ja short loc_fffbbde6 ; ja 0xfffbbde6
+mov eax, dword [ebp - 0x48]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbbdb7 ; jne 0xfffbbdb7
+and dl, 1
+jne short loc_fffbbdbe ; jne 0xfffbbdbe
+xor eax, eax
+jmp short loc_fffbbdff ; jmp 0xfffbbdff
+
+loc_fffbbdb7: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffbbdff ; je 0xfffbbdff
+
+loc_fffbbdbe: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edx, dword [ebp - 0x38]
+movzx edx, byte [eax + edx + 0xee]
+xor eax, eax
+test esi, esi
+mov dword [ebp - 0x44], edx
+je short loc_fffbbdff ; je 0xfffbbdff
+jmp short loc_fffbbdf3 ; jmp 0xfffbbdf3
+
+loc_fffbbdd7: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+movzx eax, word [edx + 0x142]
+test ax, ax
+jne short loc_fffbbdff ; jne 0xfffbbdff
+
+loc_fffbbde6: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffbbdff ; je 0xfffbbdff
+mov eax, dword [ebp - 0x44]
+movzx edx, byte [eax + 0x37]
+
+loc_fffbbdf3: ; not directly referenced
+imul edx, dword [ebp - 0x24]
+lea eax, [esi + edx - 1]
+xor edx, edx
+div esi
+
+loc_fffbbdff: ; not directly referenced
+cmp dword [ebp + ecx*4 - 0x1c], 4
+mov edx, 4
+cmovae edx, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovae eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffbbe17: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffbbd50 ; jne 0xfffbbd50
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+je loc_fffbbd06 ; je 0xfffbbd06
+jmp near loc_fffbbd2c ; jmp 0xfffbbd2c
+
+loc_fffbbe33: ; not directly referenced
+lea esi, [ebx + 0x3aef]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbbe44: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbbe52 ; ja 0xfffbbe52
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbbe85 ; je 0xfffbbe85
+
+loc_fffbbe52: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbbe85: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbbe44 ; jne 0xfffbbe44
+lea esp, [esp + 0x3c]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbbe9c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x40]
+mov ecx, dword [ebp + 8]
+lea eax, [ecx + 0x10b7]
+lea edx, [ecx + 0x2974]
+mov dword [ebp - 0x44], eax
+mov dword [ebp - 0x48], edx
+
+loc_fffbbebf: ; not directly referenced
+lea eax, [ebx - 2]
+cmp eax, 1
+ja short loc_fffbbed4 ; ja 0xfffbbed4
+cmp byte [ecx + 0x1746], 0
+je loc_fffbbffc ; je 0xfffbbffc
+
+loc_fffbbed4: ; not directly referenced
+imul eax, ebx, 0x2a
+mov dword [ebp + ebx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x34], eax
+
+loc_fffbbee9: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov edx, dword [ebp - 0x44]
+xor edi, edi
+lea eax, [edx + eax + 5]
+mov dword [ebp - 0x38], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov edx, dword [ebp - 0x48]
+lea eax, [edx + eax + 8]
+mov dword [ebp - 0x30], eax
+
+loc_fffbbf0d: ; not directly referenced
+imul eax, edi, 0xfb
+mov edx, dword [ebp - 0x30]
+lea eax, [edx + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+mov dword [ebp - 0x28], edx
+jne loc_fffbbfe5 ; jne 0xfffbbfe5
+cmp dword [eax + 0xc6], 2
+jne loc_fffbbfe5 ; jne 0xfffbbfe5
+imul edx, edi, 0x14f
+mov eax, dword [ebp - 0x38]
+lea edx, [eax + edx + 8]
+mov eax, dword [ebp - 0x28]
+mov dword [ebp - 0x4c], edx
+mov edx, dword [ebp - 0x34]
+mov edx, dword [eax + edx + 4]
+lea eax, [ebx + edi*4 + 0x16]
+mov dword [ebp - 0x24], edx
+dec edx
+mov dword [ebp - 0x40], edx
+mov edx, dword [ebp - 0x30]
+cmp ebx, 1
+lea eax, [edx + eax*8]
+mov edx, dword [eax]
+mov eax, dword [eax + 4]
+mov dword [ebp - 0x3c], edx
+mov dword [ebp - 0x2c], eax
+jne short loc_fffbbf86 ; jne 0xfffbbf86
+mov edx, dword [ebp - 0x4c]
+movzx eax, word [edx + 0x140]
+test ax, ax
+je short loc_fffbbf86 ; je 0xfffbbf86
+jmp short loc_fffbbfad ; jmp 0xfffbbfad
+
+loc_fffbbf86: ; not directly referenced
+cmp dword [ebp - 0x24], 0
+je short loc_fffbbfdc ; je 0xfffbbfdc
+mov edx, dword [ebp - 0x4c]
+movsx eax, byte [edx + 0x4c]
+imul eax, dword [ebp - 0x2c]
+mov dword [ebp - 0x2c], eax
+movzx eax, byte [edx + 0x4b]
+xor edx, edx
+imul eax, dword [ebp - 0x3c]
+add eax, dword [ebp - 0x2c]
+add eax, dword [ebp - 0x40]
+div dword [ebp - 0x24]
+
+loc_fffbbfad: ; not directly referenced
+mov dword [ebp - 0x24], eax
+cmp dword [ebp - 0x24], 3
+jbe short loc_fffbbfdc ; jbe 0xfffbbfdc
+mov edx, dword [ebp - 0x28]
+mov eax, dword [ebp - 0x34]
+movzx eax, word [edx + eax + 0x1e]
+mov edx, dword [ebp - 0x24]
+sub edx, eax
+cmp edx, 3
+ja short loc_fffbbfdc ; ja 0xfffbbfdc
+mov edx, dword [ebp + ebx*4 - 0x1c]
+mov eax, dword [ebp - 0x24]
+cmp dword [ebp - 0x24], edx
+cmovb eax, edx
+mov dword [ebp + ebx*4 - 0x1c], eax
+
+loc_fffbbfdc: ; not directly referenced
+mov edx, esi
+mov al, 1
+test dl, dl
+cmove esi, eax
+
+loc_fffbbfe5: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffbbf0d ; jne 0xfffbbf0d
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+jne loc_fffbbee9 ; jne 0xfffbbee9
+
+loc_fffbbffc: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffbbebf ; jne 0xfffbbebf
+mov edx, esi
+test dl, dl
+je short loc_fffbc067 ; je 0xfffbc067
+lea esi, [ecx + 0x3aed]
+mov edx, 0xfffffffe
+lea edi, [ecx + 0x3acd]
+
+loc_fffbc01d: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbc02b ; ja 0xfffbc02b
+cmp byte [ecx + 0x1746], 0
+je short loc_fffbc05e ; je 0xfffbc05e
+
+loc_fffbc02b: ; not directly referenced
+mov ebx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ebx, edi
+mov word [esi], ax
+mov word [ebx + ecx + 0x2980], ax
+mov word [ebx + ecx + 0x3bc8], ax
+mov word [ebx + ecx + 0x4e14], ax
+mov word [ebx + ecx + 0x3cc7], ax
+mov word [ebx + ecx + 0x4f0f], ax
+
+loc_fffbc05e: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbc01d ; jne 0xfffbc01d
+
+loc_fffbc067: ; not directly referenced
+lea esp, [esp + 0x40]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbc075: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x44]
+mov ebx, dword [ebp + 8]
+lea edi, [ebx + 0x10b7]
+mov dword [ebp - 0x44], edi
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x48], edi
+
+loc_fffbc096: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbc0b2 ; ja 0xfffbc0b2
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbc0b2 ; jne 0xfffbc0b2
+
+loc_fffbc0a7: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbc096 ; jne 0xfffbc096
+jmp near loc_fffbc20e ; jmp 0xfffbc20e
+
+loc_fffbc0b2: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+add eax, 0xb0
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x40], eax
+
+loc_fffbc0cc: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0x2fa
+mov edi, dword [ebp - 0x44]
+mov dword [ebp - 0x20], 0
+lea eax, [edi + eax + 5]
+mov dword [ebp - 0x3c], eax
+imul eax, dword [ebp - 0x24], 0x1347
+mov edi, dword [ebp - 0x48]
+lea eax, [edi + eax + 8]
+mov dword [ebp - 0x2c], eax
+
+loc_fffbc0f5: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0xfb
+mov edi, dword [ebp - 0x2c]
+lea eax, [edi + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+mov dword [ebp - 0x50], edx
+jne loc_fffbc1ef ; jne 0xfffbc1ef
+imul eax, dword [ebp - 0x20], 0x14f
+mov edi, dword [ebp - 0x3c]
+lea esi, [edi + eax + 8]
+imul eax, ecx, 0x2a
+cmp ecx, 1
+mov edi, dword [edx + eax + 4]
+mov edx, dword [ebp - 0x20]
+lea eax, [edi - 1]
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x2c]
+lea edx, [ecx + edx*4 + 0x16]
+lea eax, [eax + edx*8]
+mov edx, dword [eax]
+mov eax, dword [eax + 4]
+mov dword [ebp - 0x30], edx
+mov dword [ebp - 0x34], eax
+je short loc_fffbc1ac ; je 0xfffbc1ac
+jb short loc_fffbc1b8 ; jb 0xfffbc1b8
+cmp ecx, 3
+ja short loc_fffbc1b8 ; ja 0xfffbc1b8
+mov eax, dword [ebp - 0x50]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbc16c ; jne 0xfffbc16c
+and dl, 1
+jne short loc_fffbc173 ; jne 0xfffbc173
+xor eax, eax
+jmp short loc_fffbc1d7 ; jmp 0xfffbc1d7
+
+loc_fffbc16c: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffbc1d7 ; je 0xfffbc1d7
+
+loc_fffbc173: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+lea edx, [esi + eax + 0x2d]
+xor esi, esi
+movzx eax, byte [edx + 6]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp - 0x50]
+cmp byte [eax + 0xe6], 0x13
+jne short loc_fffbc193 ; jne 0xfffbc193
+movsx esi, byte [edx + 0x1c]
+
+loc_fffbc193: ; not directly referenced
+xor eax, eax
+test edi, edi
+je short loc_fffbc1d7 ; je 0xfffbc1d7
+imul esi, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x30]
+imul edx, dword [ebp - 0x28]
+add edx, dword [ebp - 0x38]
+lea eax, [edx + esi]
+jmp short loc_fffbc1d3 ; jmp 0xfffbc1d3
+
+loc_fffbc1ac: ; not directly referenced
+movzx eax, word [esi + 0x13e]
+test ax, ax
+jne short loc_fffbc1d7 ; jne 0xfffbc1d7
+
+loc_fffbc1b8: ; not directly referenced
+xor eax, eax
+test edi, edi
+je short loc_fffbc1d7 ; je 0xfffbc1d7
+movsx eax, byte [esi + 0x49]
+imul eax, dword [ebp - 0x34]
+movzx edx, byte [esi + 0x38]
+imul edx, dword [ebp - 0x30]
+add edx, dword [ebp - 0x38]
+add eax, edx
+
+loc_fffbc1d3: ; not directly referenced
+xor edx, edx
+div edi
+
+loc_fffbc1d7: ; not directly referenced
+cmp eax, 0xf
+mov edx, 0xf
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbc1ef: ; not directly referenced
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+jne loc_fffbc0f5 ; jne 0xfffbc0f5
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+je loc_fffbc0a7 ; je 0xfffbc0a7
+jmp near loc_fffbc0cc ; jmp 0xfffbc0cc
+
+loc_fffbc20e: ; not directly referenced
+lea esi, [ebx + 0x3aeb]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbc21f: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbc22d ; ja 0xfffbc22d
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbc260 ; je 0xfffbc260
+
+loc_fffbc22d: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbc260: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbc21f ; jne 0xfffbc21f
+lea esp, [esp + 0x44]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbc277: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+mov dword [ebp - 0x3c], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x40], esi
+
+loc_fffbc298: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbc2b4 ; ja 0xfffbc2b4
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbc2b4 ; jne 0xfffbc2b4
+
+loc_fffbc2a9: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbc298 ; jne 0xfffbc298
+jmp near loc_fffbc3d8 ; jmp 0xfffbc3d8
+
+loc_fffbc2b4: ; not directly referenced
+imul esi, ecx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x38], eax
+
+loc_fffbc2cf: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0x2fa
+mov esi, dword [ebp - 0x3c]
+xor edi, edi
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x20], 0x1347
+mov esi, dword [ebp - 0x40]
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffbc2f3: ; not directly referenced
+imul eax, edi, 0xfb
+mov esi, dword [ebp - 0x28]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea eax, [edx + 1]
+mov dword [ebp - 0x48], eax
+jne loc_fffbc3bc ; jne 0xfffbc3bc
+imul edx, edi, 0x14f
+mov esi, dword [ebp - 0x30]
+cmp ecx, 1
+lea edx, [esi + edx + 8]
+mov dword [ebp - 0x44], edx
+mov edx, dword [ebp - 0x34]
+mov esi, dword [eax + edx + 4]
+mov edx, dword [ebp - 0x28]
+lea eax, [ecx + edi*4 + 0x16]
+mov edx, dword [edx + eax*8]
+mov dword [ebp - 0x24], edx
+je short loc_fffbc37a ; je 0xfffbc37a
+jb short loc_fffbc389 ; jb 0xfffbc389
+cmp ecx, 3
+ja short loc_fffbc389 ; ja 0xfffbc389
+mov eax, dword [ebp - 0x48]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbc35a ; jne 0xfffbc35a
+and dl, 1
+jne short loc_fffbc361 ; jne 0xfffbc361
+xor eax, eax
+jmp short loc_fffbc3a2 ; jmp 0xfffbc3a2
+
+loc_fffbc35a: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffbc3a2 ; je 0xfffbc3a2
+
+loc_fffbc361: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edx, dword [ebp - 0x38]
+movzx edx, word [eax + edx + 0xeb]
+xor eax, eax
+test esi, esi
+mov dword [ebp - 0x44], edx
+je short loc_fffbc3a2 ; je 0xfffbc3a2
+jmp short loc_fffbc396 ; jmp 0xfffbc396
+
+loc_fffbc37a: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+movzx eax, word [edx + 0x138]
+test ax, ax
+jne short loc_fffbc3a2 ; jne 0xfffbc3a2
+
+loc_fffbc389: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffbc3a2 ; je 0xfffbc3a2
+mov eax, dword [ebp - 0x44]
+movzx edx, word [eax + 0x3c]
+
+loc_fffbc396: ; not directly referenced
+imul edx, dword [ebp - 0x24]
+lea eax, [esi + edx - 1]
+xor edx, edx
+div esi
+
+loc_fffbc3a2: ; not directly referenced
+cmp eax, 0x1ff
+mov edx, 0x1ff
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbc3bc: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffbc2f3 ; jne 0xfffbc2f3
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+je loc_fffbc2a9 ; je 0xfffbc2a9
+jmp near loc_fffbc2cf ; jmp 0xfffbc2cf
+
+loc_fffbc3d8: ; not directly referenced
+lea esi, [ebx + 0x3ae5]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbc3e9: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbc3f7 ; ja 0xfffbc3f7
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbc42a ; je 0xfffbc42a
+
+loc_fffbc3f7: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbc42a: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbc3e9 ; jne 0xfffbc3e9
+lea esp, [esp + 0x3c]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbc441: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x44]
+mov ebx, dword [ebp + 8]
+lea edi, [ebx + 0x10b7]
+mov dword [ebp - 0x44], edi
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x48], edi
+
+loc_fffbc462: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbc47e ; ja 0xfffbc47e
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbc47e ; jne 0xfffbc47e
+
+loc_fffbc473: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbc462 ; jne 0xfffbc462
+jmp near loc_fffbc5da ; jmp 0xfffbc5da
+
+loc_fffbc47e: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+add eax, 0xb0
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x40], eax
+
+loc_fffbc498: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0x2fa
+mov edi, dword [ebp - 0x44]
+mov dword [ebp - 0x20], 0
+lea eax, [edi + eax + 5]
+mov dword [ebp - 0x3c], eax
+imul eax, dword [ebp - 0x24], 0x1347
+mov edi, dword [ebp - 0x48]
+lea eax, [edi + eax + 8]
+mov dword [ebp - 0x2c], eax
+
+loc_fffbc4c1: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0xfb
+mov edi, dword [ebp - 0x2c]
+lea eax, [edi + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+mov dword [ebp - 0x50], edx
+jne loc_fffbc5bb ; jne 0xfffbc5bb
+imul eax, dword [ebp - 0x20], 0x14f
+mov edi, dword [ebp - 0x3c]
+lea esi, [edi + eax + 8]
+imul eax, ecx, 0x2a
+cmp ecx, 1
+mov edi, dword [edx + eax + 4]
+mov edx, dword [ebp - 0x20]
+lea eax, [edi - 1]
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x2c]
+lea edx, [ecx + edx*4 + 0x16]
+lea eax, [eax + edx*8]
+mov edx, dword [eax]
+mov eax, dword [eax + 4]
+mov dword [ebp - 0x30], edx
+mov dword [ebp - 0x34], eax
+je short loc_fffbc578 ; je 0xfffbc578
+jb short loc_fffbc584 ; jb 0xfffbc584
+cmp ecx, 3
+ja short loc_fffbc584 ; ja 0xfffbc584
+mov eax, dword [ebp - 0x50]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbc538 ; jne 0xfffbc538
+and dl, 1
+jne short loc_fffbc53f ; jne 0xfffbc53f
+xor eax, eax
+jmp short loc_fffbc5a3 ; jmp 0xfffbc5a3
+
+loc_fffbc538: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffbc5a3 ; je 0xfffbc5a3
+
+loc_fffbc53f: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+lea edx, [esi + eax + 0x2d]
+xor esi, esi
+movzx eax, byte [edx + 7]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp - 0x50]
+cmp byte [eax + 0xe6], 0x13
+jne short loc_fffbc55f ; jne 0xfffbc55f
+movsx esi, byte [edx + 0x1d]
+
+loc_fffbc55f: ; not directly referenced
+xor eax, eax
+test edi, edi
+je short loc_fffbc5a3 ; je 0xfffbc5a3
+imul esi, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x30]
+imul edx, dword [ebp - 0x28]
+add edx, dword [ebp - 0x38]
+lea eax, [edx + esi]
+jmp short loc_fffbc59f ; jmp 0xfffbc59f
+
+loc_fffbc578: ; not directly referenced
+movzx eax, word [esi + 0x134]
+test ax, ax
+jne short loc_fffbc5a3 ; jne 0xfffbc5a3
+
+loc_fffbc584: ; not directly referenced
+xor eax, eax
+test edi, edi
+je short loc_fffbc5a3 ; je 0xfffbc5a3
+movsx eax, byte [esi + 0x48]
+imul eax, dword [ebp - 0x34]
+movzx edx, byte [esi + 0x36]
+imul edx, dword [ebp - 0x30]
+add edx, dword [ebp - 0x38]
+add eax, edx
+
+loc_fffbc59f: ; not directly referenced
+xor edx, edx
+div edi
+
+loc_fffbc5a3: ; not directly referenced
+cmp eax, 0x14
+mov edx, 0x14
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbc5bb: ; not directly referenced
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+jne loc_fffbc4c1 ; jne 0xfffbc4c1
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+je loc_fffbc473 ; je 0xfffbc473
+jmp near loc_fffbc498 ; jmp 0xfffbc498
+
+loc_fffbc5da: ; not directly referenced
+lea esi, [ebx + 0x3ae1]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbc5eb: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbc5f9 ; ja 0xfffbc5f9
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbc62c ; je 0xfffbc62c
+
+loc_fffbc5f9: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbc62c: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbc5eb ; jne 0xfffbc5eb
+lea esp, [esp + 0x44]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbc643: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x40]
+mov edi, dword [ebp + 8]
+lea eax, [edi + 0x10b7]
+lea edx, [edi + 0x2974]
+mov dword [ebp - 0x48], eax
+mov dword [ebp - 0x4c], edx
+
+loc_fffbc664: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbc680 ; ja 0xfffbc680
+cmp byte [edi + 0x1746], 0
+jne short loc_fffbc680 ; jne 0xfffbc680
+
+loc_fffbc675: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbc664 ; jne 0xfffbc664
+jmp near loc_fffbc800 ; jmp 0xfffbc800
+
+loc_fffbc680: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+add eax, 0xb0
+mov dword [ebp - 0x28], 0
+mov dword [ebp - 0x44], eax
+
+loc_fffbc69a: ; not directly referenced
+imul eax, dword [ebp - 0x28], 0x2fa
+mov edx, dword [ebp - 0x48]
+mov dword [ebp - 0x24], 0
+lea eax, [edx + eax + 5]
+mov dword [ebp - 0x40], eax
+imul eax, dword [ebp - 0x28], 0x1347
+mov edx, dword [ebp - 0x4c]
+lea eax, [edx + eax + 8]
+mov dword [ebp - 0x30], eax
+
+loc_fffbc6c3: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0xfb
+mov edx, dword [ebp - 0x30]
+lea eax, [edx + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+mov dword [ebp - 0x2c], edx
+jne loc_fffbc7e1 ; jne 0xfffbc7e1
+imul eax, dword [ebp - 0x24], 0x14f
+mov edx, dword [ebp - 0x40]
+lea esi, [edx + eax + 8]
+mov edx, dword [ebp - 0x2c]
+imul eax, ecx, 0x2a
+mov eax, dword [edx + eax + 4]
+mov edx, dword [ebp - 0x24]
+mov dword [ebp - 0x20], eax
+dec eax
+mov dword [ebp - 0x3c], eax
+cmp ecx, 1
+lea eax, [ecx + edx*4 + 0x16]
+mov edx, dword [ebp - 0x30]
+lea eax, [edx + eax*8]
+mov edx, dword [eax]
+mov eax, dword [eax + 4]
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x38], eax
+je short loc_fffbc78b ; je 0xfffbc78b
+jb short loc_fffbc797 ; jb 0xfffbc797
+cmp ecx, 3
+ja short loc_fffbc797 ; ja 0xfffbc797
+mov eax, dword [ebp - 0x2c]
+cmp ecx, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbc741 ; jne 0xfffbc741
+and dl, 1
+jne short loc_fffbc748 ; jne 0xfffbc748
+xor eax, eax
+jmp near loc_fffbc7c7 ; jmp 0xfffbc7c7
+
+loc_fffbc741: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffbc7c7 ; je 0xfffbc7c7
+
+loc_fffbc748: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+lea esi, [esi + edx + 0x2d]
+xor edx, edx
+movzx eax, byte [esi + 0xb]
+mov bl, byte [esi + 9]
+shr bl, 4
+movzx ebx, bl
+shl ebx, 8
+or ebx, eax
+mov eax, dword [ebp - 0x2c]
+cmp byte [eax + 0xe6], 0x13
+jne short loc_fffbc773 ; jne 0xfffbc773
+movsx edx, byte [esi + 0x1e]
+
+loc_fffbc773: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffbc7c7 ; je 0xfffbc7c7
+imul edx, dword [ebp - 0x38]
+imul ebx, dword [ebp - 0x34]
+add ebx, dword [ebp - 0x3c]
+lea eax, [ebx + edx]
+jmp short loc_fffbc7c2 ; jmp 0xfffbc7c2
+
+loc_fffbc78b: ; not directly referenced
+movzx eax, word [esi + 0x132]
+test ax, ax
+jne short loc_fffbc7c7 ; jne 0xfffbc7c7
+
+loc_fffbc797: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffbc7c7 ; je 0xfffbc7c7
+movzx edx, byte [esi + 0x3b]
+mov bl, byte [esi + 0x39]
+shr bl, 4
+movzx ebx, bl
+shl ebx, 8
+movsx eax, byte [esi + 0x4a]
+or ebx, edx
+imul ebx, dword [ebp - 0x34]
+imul eax, dword [ebp - 0x38]
+add eax, dword [ebp - 0x3c]
+add eax, ebx
+
+loc_fffbc7c2: ; not directly referenced
+xor edx, edx
+div dword [ebp - 0x20]
+
+loc_fffbc7c7: ; not directly referenced
+cmp eax, 0xfff
+mov edx, 0xfff
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbc7e1: ; not directly referenced
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+jne loc_fffbc6c3 ; jne 0xfffbc6c3
+inc dword [ebp - 0x28]
+cmp dword [ebp - 0x28], 2
+je loc_fffbc675 ; je 0xfffbc675
+jmp near loc_fffbc69a ; jmp 0xfffbc69a
+
+loc_fffbc800: ; not directly referenced
+lea ebx, [edi + 0x3adf]
+mov edx, 0xfffffffe
+lea esi, [edi + 0x3acd]
+
+loc_fffbc811: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbc81f ; ja 0xfffbc81f
+cmp byte [edi + 0x1746], 0
+je short loc_fffbc852 ; je 0xfffbc852
+
+loc_fffbc81f: ; not directly referenced
+mov ecx, ebx
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, esi
+mov word [ebx], ax
+mov word [ecx + edi + 0x2980], ax
+mov word [ecx + edi + 0x3bc8], ax
+mov word [ecx + edi + 0x4e14], ax
+mov word [ecx + edi + 0x3cc7], ax
+mov word [ecx + edi + 0x4f0f], ax
+
+loc_fffbc852: ; not directly referenced
+inc edx
+add ebx, 0x2a
+cmp edx, 2
+jne short loc_fffbc811 ; jne 0xfffbc811
+lea esp, [esp + 0x40]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbc869: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x38]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x38], esi
+mov dword [ebp - 0x3c], edi
+
+loc_fffbc88a: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbc8a6 ; ja 0xfffbc8a6
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbc8a6 ; jne 0xfffbc8a6
+
+loc_fffbc89b: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbc88a ; jne 0xfffbc88a
+jmp near loc_fffbc9e4 ; jmp 0xfffbc9e4
+
+loc_fffbc8a6: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+add eax, 0xb0
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x34], eax
+
+loc_fffbc8c0: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0x2fa
+mov esi, dword [ebp - 0x38]
+mov edi, dword [ebp - 0x3c]
+mov dword [ebp - 0x44], 0
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x24], 0x1347
+lea eax, [edi + eax + 8]
+mov dword [ebp - 0x2c], eax
+
+loc_fffbc8e9: ; not directly referenced
+imul eax, dword [ebp - 0x44], 0xfb
+mov esi, dword [ebp - 0x2c]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea edi, [edx + 1]
+mov dword [ebp - 0x40], edi
+jne loc_fffbc9c5 ; jne 0xfffbc9c5
+imul edx, dword [ebp - 0x44], 0x14f
+mov esi, dword [ebp - 0x30]
+mov eax, dword [ebp - 0x2c]
+lea edx, [esi + edx + 8]
+imul esi, ecx, 0x2a
+cmp ecx, 1
+mov esi, dword [edi + esi + 4]
+mov edi, dword [ebp - 0x44]
+lea edi, [ecx + edi*4 + 0x16]
+mov eax, dword [eax + edi*8]
+mov dword [ebp - 0x28], eax
+je short loc_fffbc980 ; je 0xfffbc980
+jb short loc_fffbc98c ; jb 0xfffbc98c
+cmp ecx, 3
+ja short loc_fffbc98c ; ja 0xfffbc98c
+mov eax, dword [ebp - 0x40]
+cmp ecx, 2
+movzx edi, byte [eax + 0xe5]
+jne short loc_fffbc953 ; jne 0xfffbc953
+and edi, 1
+jne short loc_fffbc95a ; jne 0xfffbc95a
+xor eax, eax
+jmp short loc_fffbc9ad ; jmp 0xfffbc9ad
+
+loc_fffbc953: ; not directly referenced
+xor eax, eax
+and edi, 2
+je short loc_fffbc9ad ; je 0xfffbc9ad
+
+loc_fffbc95a: ; not directly referenced
+mov edi, dword [ebp - 0x34]
+lea eax, [edx + edi + 0x2d]
+mov dl, byte [eax + 9]
+movzx eax, byte [eax + 0xa]
+and edx, 0xf
+shl edx, 8
+or edx, eax
+xor eax, eax
+test esi, esi
+je short loc_fffbc9ad ; je 0xfffbc9ad
+imul edx, dword [ebp - 0x28]
+lea eax, [esi + edx - 1]
+jmp short loc_fffbc9a9 ; jmp 0xfffbc9a9
+
+loc_fffbc980: ; not directly referenced
+movzx eax, word [edx + 0x130]
+test ax, ax
+jne short loc_fffbc9ad ; jne 0xfffbc9ad
+
+loc_fffbc98c: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffbc9ad ; je 0xfffbc9ad
+mov al, byte [edx + 0x39]
+movzx edx, byte [edx + 0x3a]
+and eax, 0xf
+shl eax, 8
+or eax, edx
+imul eax, dword [ebp - 0x28]
+lea eax, [esi + eax - 1]
+
+loc_fffbc9a9: ; not directly referenced
+xor edx, edx
+div esi
+
+loc_fffbc9ad: ; not directly referenced
+cmp eax, 0x28
+mov edx, 0x28
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbc9c5: ; not directly referenced
+inc dword [ebp - 0x44]
+cmp dword [ebp - 0x44], 2
+jne loc_fffbc8e9 ; jne 0xfffbc8e9
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+je loc_fffbc89b ; je 0xfffbc89b
+jmp near loc_fffbc8c0 ; jmp 0xfffbc8c0
+
+loc_fffbc9e4: ; not directly referenced
+lea esi, [ebx + 0x3add]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbc9f5: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbca03 ; ja 0xfffbca03
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbca36 ; je 0xfffbca36
+
+loc_fffbca03: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbca36: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbc9f5 ; jne 0xfffbc9f5
+lea esp, [esp + 0x38]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbca4d: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x38]
+mov ebx, dword [ebp + 8]
+lea esi, [ebx + 0x10b7]
+lea edi, [ebx + 0x2974]
+mov dword [ebp - 0x38], esi
+mov dword [ebp - 0x3c], edi
+
+loc_fffbca6e: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffbca8a ; ja 0xfffbca8a
+cmp byte [ebx + 0x1746], 0
+jne short loc_fffbca8a ; jne 0xfffbca8a
+
+loc_fffbca7f: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbca6e ; jne 0xfffbca6e
+jmp near loc_fffbcbc8 ; jmp 0xfffbcbc8
+
+loc_fffbca8a: ; not directly referenced
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+add eax, 0xb0
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x34], eax
+
+loc_fffbcaa4: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0x2fa
+mov esi, dword [ebp - 0x38]
+mov edi, dword [ebp - 0x3c]
+mov dword [ebp - 0x44], 0
+lea eax, [esi + eax + 5]
+mov dword [ebp - 0x30], eax
+imul eax, dword [ebp - 0x24], 0x1347
+lea eax, [edi + eax + 8]
+mov dword [ebp - 0x2c], eax
+
+loc_fffbcacd: ; not directly referenced
+imul eax, dword [ebp - 0x44], 0xfb
+mov esi, dword [ebp - 0x2c]
+lea edx, [esi + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea edi, [edx + 1]
+mov dword [ebp - 0x40], edi
+jne loc_fffbcba9 ; jne 0xfffbcba9
+imul edx, dword [ebp - 0x44], 0x14f
+mov esi, dword [ebp - 0x30]
+mov eax, dword [ebp - 0x2c]
+lea edx, [esi + edx + 8]
+imul esi, ecx, 0x2a
+cmp ecx, 1
+mov esi, dword [edi + esi + 4]
+mov edi, dword [ebp - 0x44]
+lea edi, [ecx + edi*4 + 0x16]
+mov eax, dword [eax + edi*8]
+mov dword [ebp - 0x28], eax
+je short loc_fffbcb64 ; je 0xfffbcb64
+jb short loc_fffbcb70 ; jb 0xfffbcb70
+cmp ecx, 3
+ja short loc_fffbcb70 ; ja 0xfffbcb70
+mov eax, dword [ebp - 0x40]
+cmp ecx, 2
+movzx edi, byte [eax + 0xe5]
+jne short loc_fffbcb37 ; jne 0xfffbcb37
+and edi, 1
+jne short loc_fffbcb3e ; jne 0xfffbcb3e
+xor eax, eax
+jmp short loc_fffbcb91 ; jmp 0xfffbcb91
+
+loc_fffbcb37: ; not directly referenced
+xor eax, eax
+and edi, 2
+je short loc_fffbcb91 ; je 0xfffbcb91
+
+loc_fffbcb3e: ; not directly referenced
+mov edi, dword [ebp - 0x34]
+lea eax, [edx + edi + 0x2d]
+mov dl, byte [eax + 0x12]
+movzx eax, byte [eax + 0x13]
+and edx, 0xf
+shl edx, 8
+or edx, eax
+xor eax, eax
+test esi, esi
+je short loc_fffbcb91 ; je 0xfffbcb91
+imul edx, dword [ebp - 0x28]
+lea eax, [esi + edx - 1]
+jmp short loc_fffbcb8d ; jmp 0xfffbcb8d
+
+loc_fffbcb64: ; not directly referenced
+movzx eax, word [edx + 0x12e]
+test ax, ax
+jne short loc_fffbcb91 ; jne 0xfffbcb91
+
+loc_fffbcb70: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffbcb91 ; je 0xfffbcb91
+mov al, byte [edx + 0x40]
+movzx edx, byte [edx + 0x41]
+and eax, 0xf
+shl eax, 8
+or eax, edx
+imul eax, dword [ebp - 0x28]
+lea eax, [esi + eax - 1]
+
+loc_fffbcb8d: ; not directly referenced
+xor edx, edx
+div esi
+
+loc_fffbcb91: ; not directly referenced
+cmp eax, 0x36
+mov edx, 0x36
+cmovbe edx, eax
+mov eax, dword [ebp + ecx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ecx*4 - 0x1c], edx
+
+loc_fffbcba9: ; not directly referenced
+inc dword [ebp - 0x44]
+cmp dword [ebp - 0x44], 2
+jne loc_fffbcacd ; jne 0xfffbcacd
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+je loc_fffbca7f ; je 0xfffbca7f
+jmp near loc_fffbcaa4 ; jmp 0xfffbcaa4
+
+loc_fffbcbc8: ; not directly referenced
+lea esi, [ebx + 0x3adb]
+mov edx, 0xfffffffe
+lea edi, [ebx + 0x3acd]
+
+loc_fffbcbd9: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbcbe7 ; ja 0xfffbcbe7
+cmp byte [ebx + 0x1746], 0
+je short loc_fffbcc1a ; je 0xfffbcc1a
+
+loc_fffbcbe7: ; not directly referenced
+mov ecx, esi
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [esi], ax
+mov word [ecx + ebx + 0x2980], ax
+mov word [ecx + ebx + 0x3bc8], ax
+mov word [ecx + ebx + 0x4e14], ax
+mov word [ecx + ebx + 0x3cc7], ax
+mov word [ecx + ebx + 0x4f0f], ax
+
+loc_fffbcc1a: ; not directly referenced
+inc edx
+add esi, 0x2a
+cmp edx, 2
+jne short loc_fffbcbd9 ; jne 0xfffbcbd9
+lea esp, [esp + 0x38]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbcc31: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x38]
+mov esi, dword [ebp + 8]
+lea ecx, [esi + 0x10b7]
+lea edi, [esi + 0x2974]
+mov dword [ebp - 0x38], ecx
+mov dword [ebp - 0x3c], edi
+
+loc_fffbcc52: ; not directly referenced
+lea eax, [ebx - 2]
+cmp eax, 1
+ja short loc_fffbcc6e ; ja 0xfffbcc6e
+cmp byte [esi + 0x1746], 0
+jne short loc_fffbcc6e ; jne 0xfffbcc6e
+
+loc_fffbcc63: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffbcc52 ; jne 0xfffbcc52
+jmp near loc_fffbcdf7 ; jmp 0xfffbcdf7
+
+loc_fffbcc6e: ; not directly referenced
+imul ecx, ebx, 0x2a
+imul eax, eax, 0x23
+mov dword [ebp + ebx*4 - 0x1c], 0
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x30], ecx
+mov dword [ebp - 0x34], eax
+
+loc_fffbcc89: ; not directly referenced
+imul eax, dword [ebp - 0x24], 0x2fa
+mov edi, dword [ebp - 0x38]
+mov ecx, dword [ebp - 0x3c]
+mov dword [ebp - 0x20], 0
+lea eax, [edi + eax + 5]
+mov dword [ebp - 0x2c], eax
+imul eax, dword [ebp - 0x24], 0x1347
+lea eax, [ecx + eax + 8]
+mov dword [ebp - 0x28], eax
+
+loc_fffbccb2: ; not directly referenced
+imul eax, dword [ebp - 0x20], 0xfb
+mov edi, dword [ebp - 0x28]
+lea eax, [edi + eax + 0x1150]
+cmp dword [eax + 1], 2
+lea edx, [eax + 1]
+jne loc_fffbcdd8 ; jne 0xfffbcdd8
+imul eax, dword [ebp - 0x20], 0x14f
+mov ecx, dword [ebp - 0x2c]
+mov edi, dword [ebp - 0x30]
+cmp ebx, 1
+lea eax, [ecx + eax + 8]
+mov ecx, dword [edx + edi + 4]
+mov edi, dword [ebp - 0x20]
+mov dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x28]
+lea edi, [ebx + edi*4 + 0x16]
+mov eax, dword [eax + edi*8]
+mov dword [ebp - 0x40], eax
+je short loc_fffbcd42 ; je 0xfffbcd42
+jb short loc_fffbcd51 ; jb 0xfffbcd51
+cmp ebx, 3
+ja short loc_fffbcd51 ; ja 0xfffbcd51
+cmp ebx, 2
+mov dl, byte [edx + 0xe5]
+jne short loc_fffbcd1b ; jne 0xfffbcd1b
+and dl, 1
+
+loc_fffbcd12: ; not directly referenced
+jne short loc_fffbcd20 ; jne 0xfffbcd20
+
+loc_fffbcd14: ; not directly referenced
+xor eax, eax
+jmp near loc_fffbcdc0 ; jmp 0xfffbcdc0
+
+loc_fffbcd1b: ; not directly referenced
+and dl, 2
+jmp short loc_fffbcd12 ; jmp 0xfffbcd12
+
+loc_fffbcd20: ; not directly referenced
+mov edx, dword [ebp - 0x44]
+mov edi, dword [ebp - 0x34]
+test ecx, ecx
+movzx eax, byte [edx + edi + 0xe2]
+je short loc_fffbcd14 ; je 0xfffbcd14
+mov edi, dword [ebp - 0x40]
+xor edx, edx
+imul edi, eax
+lea eax, [ecx + edi - 1]
+div ecx
+jmp short loc_fffbcdc0 ; jmp 0xfffbcdc0
+
+loc_fffbcd42: ; not directly referenced
+mov edi, dword [ebp - 0x44]
+movzx eax, word [edi + 0x12c]
+test ax, ax
+jne short loc_fffbcdc0 ; jne 0xfffbcdc0
+
+loc_fffbcd51: ; not directly referenced
+cmp dword [edx + 0xc5], 2
+jne short loc_fffbcd7d ; jne 0xfffbcd7d
+cmp ecx, 0x16e360
+mov eax, 7
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x1c9c38
+mov al, 5
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x2625a0
+mov al, 4
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+jmp short loc_fffbcd14 ; jmp 0xfffbcd14
+
+loc_fffbcd7d: ; not directly referenced
+cmp ecx, 0xe4e1c
+mov eax, 0xa
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x105944
+mov al, 9
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x1312d0
+mov al, 8
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x16e360
+mov al, 7
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x1c9c38
+mov al, 6
+jbe short loc_fffbcdc0 ; jbe 0xfffbcdc0
+cmp ecx, 0x2625a0
+ja loc_fffbcd14 ; ja 0xfffbcd14
+mov al, 5
+
+loc_fffbcdc0: ; not directly referenced
+cmp eax, 0xc
+mov edx, 0xc
+cmovbe edx, eax
+mov eax, dword [ebp + ebx*4 - 0x1c]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + ebx*4 - 0x1c], edx
+
+loc_fffbcdd8: ; not directly referenced
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+jne loc_fffbccb2 ; jne 0xfffbccb2
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+je loc_fffbcc63 ; je 0xfffbcc63
+jmp near loc_fffbcc89 ; jmp 0xfffbcc89
+
+loc_fffbcdf7: ; not directly referenced
+lea ebx, [esi + 0x3ad9]
+mov edx, 0xfffffffe
+lea edi, [esi + 0x3acd]
+
+loc_fffbce08: ; not directly referenced
+cmp edx, 1
+ja short loc_fffbce16 ; ja 0xfffbce16
+cmp byte [esi + 0x1746], 0
+je short loc_fffbce49 ; je 0xfffbce49
+
+loc_fffbce16: ; not directly referenced
+mov ecx, ebx
+mov eax, dword [ebp + edx*4 - 0x14]
+sub ecx, edi
+mov word [ebx], ax
+mov word [ecx + esi + 0x2980], ax
+mov word [ecx + esi + 0x3bc8], ax
+mov word [ecx + esi + 0x4e14], ax
+mov word [ecx + esi + 0x3cc7], ax
+mov word [ecx + esi + 0x4f0f], ax
+
+loc_fffbce49: ; not directly referenced
+inc edx
+add ebx, 0x2a
+cmp edx, 2
+jne short loc_fffbce08 ; jne 0xfffbce08
+lea esp, [esp + 0x38]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbce60: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+push ebx
+lea esp, [esp - 0x20]
+mov ecx, dword [ebp + 8]
+mov ebx, dword [ebp + 8]
+add ecx, 0x10b7
+add ebx, 0x2974
+mov dword [ebp - 0x28], ecx
+mov dword [ebp - 0x2c], ebx
+
+loc_fffbce84: ; not directly referenced
+lea eax, [edi - 2]
+cmp eax, 1
+ja short loc_fffbcea3 ; ja 0xfffbcea3
+mov ecx, dword [ebp + 8]
+cmp byte [ecx + 0x1746], 0
+jne short loc_fffbcea3 ; jne 0xfffbcea3
+
+loc_fffbce98: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffbce84 ; jne 0xfffbce84
+jmp near loc_fffbd00f ; jmp 0xfffbd00f
+
+loc_fffbcea3: ; not directly referenced
+lea eax, [eax + eax + 0xb0]
+mov dword [ebp - 0x14], 0
+mov dword [ebp - 0x24], eax
+
+loc_fffbceb4: ; not directly referenced
+imul eax, dword [ebp - 0x14], 0x2fa
+mov ebx, dword [ebp - 0x28]
+mov ecx, dword [ebp - 0x2c]
+mov dword [ebp - 0x10], 0
+lea eax, [ebx + eax + 5]
+mov dword [ebp - 0x20], eax
+imul eax, dword [ebp - 0x14], 0x1347
+lea eax, [ecx + eax + 8]
+mov dword [ebp - 0x1c], eax
+
+loc_fffbcedd: ; not directly referenced
+imul eax, dword [ebp - 0x10], 0xfb
+mov ebx, dword [ebp - 0x1c]
+lea edx, [ebx + eax + 0x1150]
+cmp dword [edx + 1], 2
+lea eax, [edx + 1]
+jne loc_fffbcff0 ; jne 0xfffbcff0
+imul edx, dword [ebp - 0x10], 0x14f
+mov ecx, dword [ebp - 0x20]
+mov ebx, dword [ebp - 0x10]
+lea esi, [ecx + edx + 8]
+lea edx, [edi + ebx*4 + 0x16]
+mov ebx, dword [ebp - 0x1c]
+lea ecx, [ebx + edx*8]
+lea edx, [edi - 2]
+cmp edx, 1
+ja loc_fffbcfa8 ; ja 0xfffbcfa8
+cmp edi, 2
+mov dl, byte [eax + 0xe5]
+jne short loc_fffbcf32 ; jne 0xfffbcf32
+and dl, 1
+jmp short loc_fffbcf35 ; jmp 0xfffbcf35
+
+loc_fffbcf32: ; not directly referenced
+and dl, 2
+
+loc_fffbcf35: ; not directly referenced
+je short loc_fffbcf99 ; je 0xfffbcf99
+mov dl, byte [esi + 0xdc]
+mov bl, dl
+and edx, 0xf
+shr bl, 4
+mov byte [ebp - 0x17], dl
+mov edx, dword [ebp - 0x24]
+mov byte [ebp - 0x15], bl
+cmp byte [eax + 0xe6], 0x12
+mov eax, 0
+lea ebx, [esi + edx + 0x24]
+mov dl, byte [ebx + 4]
+movzx ebx, byte [ebx + 5]
+mov byte [ebp - 0x16], dl
+je short loc_fffbcf81 ; je 0xfffbcf81
+cmp byte [ebp - 0x17], 0
+je short loc_fffbcf81 ; je 0xfffbcf81
+movzx eax, byte [ebp - 0x15]
+imul eax, eax, 0x3e8
+movzx esi, byte [ebp - 0x17]
+cdq
+idiv esi
+
+loc_fffbcf81: ; not directly referenced
+mov dword [ecx + 4], eax
+xor eax, eax
+test bl, bl
+je short loc_fffbcfee ; je 0xfffbcfee
+movzx eax, byte [ebp - 0x16]
+imul eax, eax, 0xf4240
+cdq
+idiv ebx
+jmp short loc_fffbcfee ; jmp 0xfffbcfee
+
+loc_fffbcf99: ; not directly referenced
+mov dword [ecx + 4], 0
+mov dword [ecx], 0
+jmp short loc_fffbcff0 ; jmp 0xfffbcff0
+
+loc_fffbcfa8: ; not directly referenced
+mov bl, byte [esi + 0x2d]
+mov al, byte [esi + 0x2e]
+mov dl, bl
+mov byte [ebp - 0x15], al
+shr dl, 4
+xor eax, eax
+movzx esi, byte [esi + 0x2f]
+and bl, 0xf
+je short loc_fffbcfd0 ; je 0xfffbcfd0
+movzx edx, dl
+imul eax, edx, 0x3e8
+movzx ebx, bl
+cdq
+idiv ebx
+
+loc_fffbcfd0: ; not directly referenced
+mov edx, esi
+mov dword [ecx + 4], eax
+xor eax, eax
+test dl, dl
+je short loc_fffbcfee ; je 0xfffbcfee
+movzx eax, byte [ebp - 0x15]
+and esi, 0xff
+imul eax, eax, 0xf4240
+cdq
+idiv esi
+
+loc_fffbcfee: ; not directly referenced
+mov dword [ecx], eax
+
+loc_fffbcff0: ; not directly referenced
+inc dword [ebp - 0x10]
+cmp dword [ebp - 0x10], 2
+jne loc_fffbcedd ; jne 0xfffbcedd
+inc dword [ebp - 0x14]
+cmp dword [ebp - 0x14], 2
+jne loc_fffbceb4 ; jne 0xfffbceb4
+jmp near loc_fffbce98 ; jmp 0xfffbce98
+
+loc_fffbd00f: ; not directly referenced
+lea esp, [esp + 0x20]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbd01d: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov al, byte [eax + 0x3e]
+mov dl, al
+and eax, 0x1f
+shr dl, 7
+movzx edx, dl
+shl edx, 5
+or eax, edx
+mov edx, dword [ebp + 0x10]
+mov byte [edx + 0xe4], al
+mov eax, 1
+pop ebp
+ret
+
+fcn_fffbd046: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov edx, dword [ebp + 0xc]
+mov eax, dword [ebp + 0x10]
+xor ebx, ebx
+mov esi, dword [ebp + 8]
+mov cl, byte [edx + 0x1f]
+shr cl, 7
+mov byte [eax + 0xc1], cl
+mov cl, byte [edx + 0x1f]
+shr cl, 3
+and ecx, 1
+mov byte [eax + 0xc2], cl
+test byte [edx + 0x1f], 4
+je short loc_fffbd083 ; je 0xfffbd083
+xor ebx, ebx
+cmp byte [esi + 0x1031], 0
+setne bl
+
+loc_fffbd083: ; not directly referenced
+mov byte [eax + 0xc0], bl
+mov cl, byte [edx + 0x1f]
+shr cl, 1
+and ecx, 1
+mov byte [eax + 0xc4], cl
+mov dl, byte [edx + 0x1f]
+and edx, 1
+xor ecx, ecx
+test ebx, ebx
+mov byte [eax + 0xc3], dl
+jne short loc_fffbd0b9 ; jne 0xfffbd0b9
+test dl, dl
+je short loc_fffbd0b9 ; je 0xfffbd0b9
+xor ecx, ecx
+cmp byte [esi + 0x1032], 0
+setne cl
+
+loc_fffbd0b9: ; not directly referenced
+mov byte [eax + 0xbf], cl
+mov eax, 1
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffbd0c8: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov al, byte [eax + 0x3f]
+and eax, 1
+mov byte [edx + 0xbe], al
+mov eax, 1
+pop ebp
+ret
+
+fcn_fffbd0e4: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov al, byte [eax + 8]
+shr al, 3
+and eax, 3
+dec al
+mov eax, dword [ebp + 0x10]
+sete byte [eax + 0xbc]
+mov eax, 1
+pop ebp
+ret
+
+fcn_fffbd106: ; not directly referenced
+push ebp
+mov ecx, 8
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x2c]
+mov esi, ref_fffcbe1c ; mov esi, 0xfffcbe1c
+push ebx
+lea esp, [esp - 0x20]
+mov ebx, dword [ebp + 0x10]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+movzx ecx, byte [ebx + 0xe1]
+test cl, cl
+je short loc_fffbd16f ; je 0xfffbd16f
+mov al, byte [ebx + 0xe3]
+cmp al, 7
+ja short loc_fffbd16f ; ja 0xfffbd16f
+movzx edx, al
+movzx eax, byte [ebx + 0xe0]
+imul eax, dword [ebp + edx*4 - 0x2c]
+xor edx, edx
+div ecx
+movzx edx, byte [ebx + 0xdd]
+imul eax, edx
+lea edx, [eax - 0x200]
+cmp edx, 0x3e00
+ja short loc_fffbd16f ; ja 0xfffbd16f
+mov dword [ebx + 0xd1], eax
+mov eax, 1
+jmp short loc_fffbd17b ; jmp 0xfffbd17b
+
+loc_fffbd16f: ; not directly referenced
+mov dword [ebx + 0xd1], 0
+xor eax, eax
+
+loc_fffbd17b: ; not directly referenced
+lea esp, [esp + 0x20]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbd184: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov al, byte [eax + 7]
+shr al, 3
+and eax, 7
+inc eax
+cmp al, 2
+ja short loc_fffbd1a8 ; ja 0xfffbd1a8
+mov byte [edx + 0xdd], al
+mov eax, 1
+jmp short loc_fffbd1b1 ; jmp 0xfffbd1b1
+
+loc_fffbd1a8: ; not directly referenced
+mov byte [edx + 0xdd], 0
+xor eax, eax
+
+loc_fffbd1b1: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffbd1b3: ; not directly referenced
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 0xc]
+mov eax, dword [ebp + 0x10]
+mov dl, byte [ecx + 4]
+and edx, 0xf
+mov byte [eax + 0xe3], dl
+test byte [ecx + 4], 0x70
+jne short loc_fffbd1e3 ; jne 0xfffbd1e3
+mov byte [eax + 0xde], 8
+mov byte [eax + 0xdf], 0
+mov eax, 1
+jmp short loc_fffbd1e5 ; jmp 0xfffbd1e5
+
+loc_fffbd1e3: ; not directly referenced
+xor eax, eax
+
+loc_fffbd1e5: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffbd1e7: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov al, byte [eax + 8]
+and eax, 7
+cmp al, 3
+jne short loc_fffbd208 ; jne 0xfffbd208
+mov byte [edx + 0xe0], 0x40
+mov eax, 1
+jmp short loc_fffbd211 ; jmp 0xfffbd211
+
+loc_fffbd208: ; not directly referenced
+mov byte [edx + 0xe0], 0
+xor eax, eax
+
+loc_fffbd211: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffbd213: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+mov edx, dword [eax + 0x1005]
+mov eax, dword [ebp + 0xc]
+mov al, byte [eax + 5]
+and eax, 7
+cmp al, 2
+je short loc_fffbd261 ; je 0xfffbd261
+cmp al, 3
+je short loc_fffbd279 ; je 0xfffbd279
+dec al
+jne short loc_fffbd28c ; jne 0xfffbd28c
+cmp edx, 0x40650
+je short loc_fffbd256 ; je 0xfffbd256
+cmp edx, 0x40660
+sete bl
+cmp edx, 0x306c0
+sete al
+or bl, al
+je short loc_fffbd28c ; je 0xfffbd28c
+
+loc_fffbd256: ; not directly referenced
+mov word [ecx + 0xd9], 0x400
+jmp short loc_fffbd272 ; jmp 0xfffbd272
+
+loc_fffbd261: ; not directly referenced
+cmp edx, 0x40650
+jne short loc_fffbd28c ; jne 0xfffbd28c
+mov word [ecx + 0xd9], 0x800
+
+loc_fffbd272: ; not directly referenced
+mov eax, 1
+jmp short loc_fffbd297 ; jmp 0xfffbd297
+
+loc_fffbd279: ; not directly referenced
+cmp edx, 0x40650
+jne short loc_fffbd28c ; jne 0xfffbd28c
+mov word [ecx + 0xd9], 0x1000
+jmp short loc_fffbd272 ; jmp 0xfffbd272
+
+loc_fffbd28c: ; not directly referenced
+mov word [ecx + 0xd9], 0
+xor eax, eax
+
+loc_fffbd297: ; not directly referenced
+pop ebx
+pop ebp
+ret
+
+fcn_fffbd29a: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0xc]
+mov eax, dword [ebp + 0x10]
+mov dl, byte [edx + 5]
+shr dl, 3
+and edx, 7
+cmp dl, 4
+ja short loc_fffbd2fc ; ja 0xfffbd2fc
+movzx edx, dl
+jmp dword [edx*4 + ref_fffcbe3c] ; ujmp: jmp dword [edx*4 - 0x341c4]
+
+loc_fffbd2bb: ; not directly referenced
+mov dword [eax + 0xd5], 0x1000
+jmp short loc_fffbd2d1 ; jmp 0xfffbd2d1
+
+loc_fffbd2c7: ; not directly referenced
+mov dword [eax + 0xd5], 0x2000
+
+loc_fffbd2d1: ; not directly referenced
+mov eax, 1
+jmp short loc_fffbd308 ; jmp 0xfffbd308
+
+loc_fffbd2d8: ; not directly referenced
+mov dword [eax + 0xd5], 0x4000
+jmp short loc_fffbd2d1 ; jmp 0xfffbd2d1
+
+loc_fffbd2e4: ; not directly referenced
+mov dword [eax + 0xd5], 0x8000
+jmp short loc_fffbd2d1 ; jmp 0xfffbd2d1
+
+loc_fffbd2f0: ; not directly referenced
+mov dword [eax + 0xd5], 0x10000
+jmp short loc_fffbd2d1 ; jmp 0xfffbd2d1
+
+loc_fffbd2fc: ; not directly referenced
+mov dword [eax + 0xd5], 0
+xor eax, eax
+
+loc_fffbd308: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffbd30a: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov al, byte [eax + 7]
+and eax, 7
+cmp al, 2
+mov byte [edx + 0xe2], al
+je short loc_fffbd334 ; je 0xfffbd334
+cmp al, 3
+je short loc_fffbd342 ; je 0xfffbd342
+dec al
+jne short loc_fffbd34b ; jne 0xfffbd34b
+mov byte [edx + 0xe1], 8
+jmp short loc_fffbd33b ; jmp 0xfffbd33b
+
+loc_fffbd334: ; not directly referenced
+mov byte [edx + 0xe1], 0x10
+
+loc_fffbd33b: ; not directly referenced
+mov eax, 1
+jmp short loc_fffbd354 ; jmp 0xfffbd354
+
+loc_fffbd342: ; not directly referenced
+mov byte [edx + 0xe1], 0x20
+jmp short loc_fffbd33b ; jmp 0xfffbd33b
+
+loc_fffbd34b: ; not directly referenced
+mov byte [edx + 0xe1], 0
+xor eax, eax
+
+loc_fffbd354: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffbd356: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, dword [ebp + 8]
+mov edx, dword [ebp + 0x10]
+push ebx
+mov ebx, dword [ebp + 0xc]
+mov edi, dword [esi + 0x1005]
+mov al, byte [ebx + 6]
+mov cl, byte [ebx + 2]
+shr al, 1
+and eax, 1
+cmp cl, 0xb
+je short loc_fffbd382 ; je 0xfffbd382
+cmp cl, 0xf1
+jne short loc_fffbd3dc ; jne 0xfffbd3dc
+jmp short loc_fffbd3b3 ; jmp 0xfffbd3b3
+
+loc_fffbd382: ; not directly referenced
+mov dword [edx + 0xc5], 1
+mov cl, byte [ebx + 3]
+and ecx, 0xf
+add ebx, 0xb0
+cmp edi, 0x40650
+mov dword [edx + 0xc9], ecx
+jne loc_fffbd48d ; jne 0xfffbd48d
+test al, 1
+je short loc_fffbd3f2 ; je 0xfffbd3f2
+jmp near loc_fffbd48d ; jmp 0xfffbd48d
+
+loc_fffbd3b3: ; not directly referenced
+cmp edi, 0x40650
+jne short loc_fffbd3dc ; jne 0xfffbd3dc
+mov dword [edx + 0xc5], 2
+mov al, byte [ebx + 3]
+and eax, 0xf
+add ebx, 0xb0
+mov dword [edx + 0xc9], eax
+jmp near loc_fffbd48d ; jmp 0xfffbd48d
+
+loc_fffbd3dc: ; not directly referenced
+mov dword [edx + 0xc5], 0
+mov dword [edx + 0xc9], 0
+xor ebx, ebx
+
+loc_fffbd3f2: ; not directly referenced
+xor eax, eax
+
+loc_fffbd3f4: ; not directly referenced
+test eax, eax
+mov byte [edx + 0xe5], 0
+je loc_fffbd4bd ; je 0xfffbd4bd
+cmp word [ebx], 0x4a0c
+jne short loc_fffbd430 ; jne 0xfffbd430
+mov al, byte [ebx + 3]
+and eax, 0xfffffffe
+cmp al, 0x12
+jne short loc_fffbd430 ; jne 0xfffbd430
+mov eax, dword [esi + 0x1021]
+cmp eax, 2
+jne short loc_fffbd425 ; jne 0xfffbd425
+test byte [ebx + 2], 1
+jmp short loc_fffbd42e ; jmp 0xfffbd42e
+
+loc_fffbd425: ; not directly referenced
+cmp eax, 3
+jne short loc_fffbd444 ; jne 0xfffbd444
+test byte [ebx + 2], 2
+
+loc_fffbd42e: ; not directly referenced
+jne short loc_fffbd444 ; jne 0xfffbd444
+
+loc_fffbd430: ; not directly referenced
+mov eax, dword [esi + 0x1021]
+sub eax, 2
+cmp eax, 1
+seta al
+movzx eax, al
+jmp short loc_fffbd450 ; jmp 0xfffbd450
+
+loc_fffbd444: ; not directly referenced
+or byte [esi + 0x1746], 1
+mov eax, 1
+
+loc_fffbd450: ; not directly referenced
+cmp word [ebx], 0x4a0c
+jne short loc_fffbd4bd ; jne 0xfffbd4bd
+movzx edi, byte [ebx + 3]
+mov esi, 0xfffffffe
+and esi, edi
+mov ecx, esi
+cmp cl, 0x12
+jne short loc_fffbd471 ; jne 0xfffbd471
+mov ecx, edi
+mov byte [edx + 0xe6], cl
+
+loc_fffbd471: ; not directly referenced
+test byte [ebx + 2], 1
+je short loc_fffbd47e ; je 0xfffbd47e
+or byte [edx + 0xe5], 1
+
+loc_fffbd47e: ; not directly referenced
+test byte [ebx + 2], 2
+je short loc_fffbd4bd ; je 0xfffbd4bd
+or byte [edx + 0xe5], 2
+jmp short loc_fffbd4bd ; jmp 0xfffbd4bd
+
+loc_fffbd48d: ; not directly referenced
+cmp dword [edx + 0xc9], 8
+ja loc_fffbd3f2 ; ja 0xfffbd3f2
+mov ecx, dword [edx + 0xc9]
+mov edi, 1
+mov eax, 1
+shl edi, cl
+and edi, 0x10c
+jne loc_fffbd3f4 ; jne 0xfffbd3f4
+jmp near loc_fffbd3f2 ; jmp 0xfffbd3f2
+
+loc_fffbd4bd: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbd4c2: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, 0x3074
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x1c]
+mov eax, dword [ebp + 8]
+lea edx, [eax + 0x16be]
+mov dword [ebp - 0x1c], edx
+
+loc_fffbd4df: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+cmp dword [edx + ebx + 0x12be], 2
+je short loc_fffbd502 ; je 0xfffbd502
+
+loc_fffbd4ec: ; not directly referenced
+add ebx, 0x1347
+add esi, 0x100
+cmp ebx, 0x268e
+jne short loc_fffbd4df ; jne 0xfffbd4df
+jmp short loc_fffbd559 ; jmp 0xfffbd559
+
+loc_fffbd502: ; not directly referenced
+mov edx, dword [eax + 0x103f]
+mov dword [ebp - 0x20], 0
+lea edx, [esi + edx - 0x3000]
+mov edx, dword [edx]
+or edx, 0x100000
+
+loc_fffbd51e: ; not directly referenced
+mov cl, byte [ebp - 0x20]
+mov edi, 1
+shl edi, cl
+mov ecx, edi
+test byte [eax + ebx + 0x3acb], cl
+je short loc_fffbd54e ; je 0xfffbd54e
+mov edi, dword [ebp - 0x20]
+and edx, 0xff3fffff
+and edi, 3
+shl edi, 0x16
+or edx, edi
+mov edi, dword [eax + 0x103f]
+add edi, esi
+mov dword [edi], edx
+
+loc_fffbd54e: ; not directly referenced
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 4
+jne short loc_fffbd51e ; jne 0xfffbd51e
+jmp short loc_fffbd4ec ; jmp 0xfffbd4ec
+
+loc_fffbd559: ; not directly referenced
+cmp dword [eax + 0x297c], 2
+jne short loc_fffbd574 ; jne 0xfffbd574
+mov ecx, dword [eax + 0x103f]
+mov dl, byte [eax + 0x3acb]
+mov byte [ecx + 0x4192], dl
+
+loc_fffbd574: ; not directly referenced
+cmp dword [eax + 0x3cc3], 2
+jne short loc_fffbd58f ; jne 0xfffbd58f
+mov ecx, dword [eax + 0x103f]
+mov dl, byte [eax + 0x4e12]
+mov byte [ecx + 0x4592], dl
+
+loc_fffbd58f: ; not directly referenced
+mov ecx, 1
+mov edx, 3
+call fcn_fffb958c ; call 0xfffb958c
+lea esp, [esp + 0x1c]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffbd5a9:
+db 0x00
+db 0x00
+db 0x00
+
+fcn_fffbd5ac: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov edx, 3
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x4c]
+mov ebx, dword [ebp + 8]
+mov eax, ebx
+mov byte [ebp - 0x20], 2
+mov byte [ebp - 0x1f], 0x40
+mov byte [ebp - 0x1e], 1
+mov byte [ebp - 0x1d], 0x43
+mov byte [ebp - 0x1c], 3
+mov byte [ebp - 0x1b], 1
+mov byte [ebp - 0x1a], 0xb
+mov byte [ebp - 0x19], 0
+call fcn_fffb958c ; call 0xfffb958c
+test eax, eax
+mov dword [ebp - 0x38], eax
+jne loc_fffbd794 ; jne 0xfffbd794
+mov eax, dword [ebx + 0x16c6]
+cmp eax, 0x320
+jbe short loc_fffbd623 ; jbe 0xfffbd623
+cmp eax, 0x42b
+jbe short loc_fffbd627 ; jbe 0xfffbd627
+cmp eax, 0x4b0
+jbe short loc_fffbd62b ; jbe 0xfffbd62b
+cmp eax, 0x535
+jbe short loc_fffbd62f ; jbe 0xfffbd62f
+cmp eax, 0x640
+ja loc_fffbd788 ; ja 0xfffbd788
+mov al, 0x1a
+jmp short loc_fffbd631 ; jmp 0xfffbd631
+
+loc_fffbd623: ; not directly referenced
+mov al, 0x14
+jmp short loc_fffbd631 ; jmp 0xfffbd631
+
+loc_fffbd627: ; not directly referenced
+mov al, 0x16
+jmp short loc_fffbd631 ; jmp 0xfffbd631
+
+loc_fffbd62b: ; not directly referenced
+mov al, 0x17
+jmp short loc_fffbd631 ; jmp 0xfffbd631
+
+loc_fffbd62f: ; not directly referenced
+mov al, 0x18
+
+loc_fffbd631: ; not directly referenced
+lea esi, [ebx + 0x2974]
+mov byte [ebp - 0x1f], al
+mov dword [ebp - 0x34], 0
+mov dword [ebp - 0x48], esi
+
+loc_fffbd644: ; not directly referenced
+imul esi, dword [ebp - 0x34], 0x1347
+mov dword [ebp - 0x3c], esi
+cmp dword [ebx + esi + 0x297c], 2
+je short loc_fffbd667 ; je 0xfffbd667
+
+loc_fffbd658: ; not directly referenced
+inc dword [ebp - 0x34]
+cmp dword [ebp - 0x34], 2
+je loc_fffbd778 ; je 0xfffbd778
+jmp short loc_fffbd644 ; jmp 0xfffbd644
+
+loc_fffbd667: ; not directly referenced
+mov eax, dword [ebp - 0x48]
+mov esi, dword [ebp - 0x3c]
+mov dword [ebp - 0x30], 0
+lea edi, [eax + esi + 8]
+
+loc_fffbd678: ; not directly referenced
+mov ecx, dword [ebp - 0x3c]
+mov esi, dword [ebp - 0x30]
+mov eax, 1
+mov dl, byte [ebx + ecx + 0x3acb]
+mov ecx, esi
+shl eax, cl
+test dl, al
+jne short loc_fffbd69d ; jne 0xfffbd69d
+
+loc_fffbd692: ; not directly referenced
+inc dword [ebp - 0x30]
+cmp dword [ebp - 0x30], 4
+jne short loc_fffbd678 ; jne 0xfffbd678
+jmp short loc_fffbd658 ; jmp 0xfffbd658
+
+loc_fffbd69d: ; not directly referenced
+test cl, cl
+jne short loc_fffbd6bd ; jne 0xfffbd6bd
+cmp byte [ebx + 0x16bb], 0
+je short loc_fffbd6bd ; je 0xfffbd6bd
+and edx, 2
+cmp dl, 1
+sbb eax, eax
+and eax, 0xfffffffc
+add eax, 6
+mov byte [ebp - 0x19], al
+jmp short loc_fffbd6c1 ; jmp 0xfffbd6c1
+
+loc_fffbd6bd: ; not directly referenced
+mov byte [ebp - 0x19], 0
+
+loc_fffbd6c1: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+lea esi, [ebp - 0x20]
+and eax, 1
+mov dword [ebp - 0x54], esi
+lea esi, [ebp - 0x18]
+mov dword [ebp - 0x2c], esi
+imul esi, eax, 0xa
+mov dword [ebp - 0x40], eax
+mov dword [ebp - 0x44], esi
+
+loc_fffbd6dc: ; not directly referenced
+mov esi, dword [ebp - 0x54]
+cmp byte [ebx + 0x1742], 0
+movzx eax, byte [esi]
+je short loc_fffbd70f ; je 0xfffbd70f
+cmp eax, 3
+ja short loc_fffbd702 ; ja 0xfffbd702
+imul edx, dword [ebp - 0x40], 5
+lea edx, [eax + edx + 0x918]
+movzx edx, byte [edi + edx*2 + 8]
+jmp short loc_fffbd749 ; jmp 0xfffbd749
+
+loc_fffbd702: ; not directly referenced
+mov esi, dword [ebp - 0x44]
+movzx edx, byte [edi + esi + 0x1240]
+jmp short loc_fffbd749 ; jmp 0xfffbd749
+
+loc_fffbd70f: ; not directly referenced
+mov esi, dword [ebp - 0x54]
+cmp eax, 3
+movzx edx, byte [esi + 1]
+ja short loc_fffbd736 ; ja 0xfffbd736
+imul ecx, dword [ebp - 0x40], 5
+lea ecx, [eax + ecx + 0x918]
+mov dword [ebp - 0x4c], ecx
+mov esi, dword [ebp - 0x4c]
+movzx ecx, dl
+mov word [edi + esi*2 + 8], cx
+jmp short loc_fffbd749 ; jmp 0xfffbd749
+
+loc_fffbd736: ; not directly referenced
+cmp eax, 0xb
+jne short loc_fffbd749 ; jne 0xfffbd749
+mov esi, dword [ebp - 0x44]
+movzx ecx, dl
+mov word [edi + esi + 0x1240], cx
+
+loc_fffbd749: ; not directly referenced
+push 0
+mov ecx, dword [ebp - 0x30]
+push 0
+push edx
+mov edx, dword [ebp - 0x34]
+push eax
+mov eax, ebx
+call fcn_fffb8fda ; call 0xfffb8fda
+add esp, 0x10
+test eax, eax
+jne short loc_fffbd791 ; jne 0xfffbd791
+add dword [ebp - 0x54], 2
+mov esi, dword [ebp - 0x2c]
+cmp dword [ebp - 0x54], esi
+jne loc_fffbd6dc ; jne 0xfffbd6dc
+jmp near loc_fffbd692 ; jmp 0xfffbd692
+
+loc_fffbd778: ; not directly referenced
+mov byte [ebx + 0x1745], 1
+mov byte [ebx + 0x1742], 1
+jmp short loc_fffbd794 ; jmp 0xfffbd794
+
+loc_fffbd788: ; not directly referenced
+mov dword [ebp - 0x38], 0x15
+jmp short loc_fffbd794 ; jmp 0xfffbd794
+
+loc_fffbd791: ; not directly referenced
+mov dword [ebp - 0x38], eax
+
+loc_fffbd794: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbd79f: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+mov esi, eax
+push ebx
+call fcn_fffc6986 ; call 0xfffc6986
+lea ebx, [eax + 0x2710]
+
+loc_fffbd7b1: ; not directly referenced
+mov eax, dword [esi + 0x103f]
+mov eax, dword [eax + 0x5084]
+test eax, 0x10000
+jne short loc_fffbd7d4 ; jne 0xfffbd7d4
+call fcn_fffc6986 ; call 0xfffc6986
+cmp ebx, eax
+ja short loc_fffbd7b1 ; ja 0xfffbd7b1
+mov eax, 0x11
+jmp short loc_fffbd7d6 ; jmp 0xfffbd7d6
+
+loc_fffbd7d4: ; not directly referenced
+xor eax, eax
+
+loc_fffbd7d6: ; not directly referenced
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffbd7da: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x6c]
+mov ebx, dword [ebp + 8]
+mov eax, ebx
+call fcn_fffb8e01 ; call 0xfffb8e01
+test eax, eax
+jne loc_fffbdf5f ; jne 0xfffbdf5f
+mov eax, ebx
+call fcn_fffbd79f ; call 0xfffbd79f
+test eax, eax
+jne loc_fffbdf5f ; jne 0xfffbdf5f
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4d94], 0xf
+cmp dword [ebx + 0x1749], 2
+jne loc_fffbd95f ; jne 0xfffbd95f
+mov eax, dword [ebx + 0x103f]
+lea esi, [ebx + 0x16be]
+mov dword [ebp - 0x40], esi
+mov dword [eax + 0x4d90], 0xf
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x5030]
+or eax, 0x400000
+mov dword [edx + 0x5030], eax
+mov edx, 1
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffbd879 ; jne 0xfffbd879
+mov edx, dword [ebx + 0x103f]
+mov al, byte [ebx + 0x3acc]
+mov byte [edx + 0x4192], al
+
+loc_fffbd879: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffbd894 ; jne 0xfffbd894
+mov edx, dword [ebx + 0x103f]
+mov al, byte [ebx + 0x4e13]
+mov byte [edx + 0x4592], al
+
+loc_fffbd894: ; not directly referenced
+mov edx, 0xbb8
+mov eax, ebx
+call fcn_fffb2d3a ; call 0xfffb2d3a
+xor esi, esi
+
+loc_fffbd8a2: ; not directly referenced
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0x40]
+mov dword [ebp - 0x3c], eax
+cmp dword [edx + eax + 0x12be], 2
+je short loc_fffbd8c0 ; je 0xfffbd8c0
+
+loc_fffbd8b8: ; not directly referenced
+inc esi
+cmp esi, 2
+je short loc_fffbd933 ; je 0xfffbd933
+jmp short loc_fffbd8a2 ; jmp 0xfffbd8a2
+
+loc_fffbd8c0: ; not directly referenced
+xor edi, edi
+
+loc_fffbd8c2: ; not directly referenced
+mov edx, dword [ebp - 0x3c]
+mov ecx, edi
+mov eax, 1
+shl eax, cl
+test byte [ebx + edx + 0x3acb], al
+jne short loc_fffbd8df ; jne 0xfffbd8df
+
+loc_fffbd8d7: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffbd8c2 ; jne 0xfffbd8c2
+jmp short loc_fffbd8b8 ; jmp 0xfffbd8b8
+
+loc_fffbd8df: ; not directly referenced
+cmp byte [ebx + 0x1744], 0
+je short loc_fffbd914 ; je 0xfffbd914
+push 0
+movzx ecx, al
+lea eax, [ebp - 0x2c]
+push eax
+mov edx, esi
+mov eax, ebx
+push 0
+mov dword [ebp - 0x2c], 0x8600
+push 7
+call fcn_fffb933f ; call 0xfffb933f
+mov edx, 0xf
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+add esp, 0x10
+
+loc_fffbd914: ; not directly referenced
+push 1
+mov ecx, edi
+mov edx, esi
+push 1
+mov eax, ebx
+push 0xfc
+push 0x3f
+call fcn_fffb8fda ; call 0xfffb8fda
+add esp, 0x10
+test eax, eax
+je short loc_fffbd8d7 ; je 0xfffbd8d7
+jmp short loc_fffbd941 ; jmp 0xfffbd941
+
+loc_fffbd933: ; not directly referenced
+mov eax, ebx
+mov edx, 0x96
+call fcn_fffb2d3a ; call 0xfffb2d3a
+xor eax, eax
+
+loc_fffbd941: ; not directly referenced
+cmp byte [ebx + 0x1744], 0
+je loc_fffbdf66 ; je 0xfffbdf66
+sub esp, 0xc
+push ebx
+call fcn_fffbd5ac ; call 0xfffbd5ac
+add esp, 0x10
+jmp near loc_fffbdf66 ; jmp 0xfffbdf66
+
+loc_fffbd95f: ; not directly referenced
+mov eax, dword [ebx + 0x103b]
+mov edi, dword [eax + 0xf80f0]
+and edi, 0xfffffffe
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffbd98f ; jne 0xfffbd98f
+mov ecx, dword [edi + 0x333c]
+or ecx, 0x4000000
+mov dword [ebp - 0x3c], ecx
+mov dword [edi + 0x333c], ecx
+
+loc_fffbd98f: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov esi, 0x102
+mov dword [eax + 0x5030], 0x102
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4d90], 0xf
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffbd9d2 ; jne 0xfffbd9d2
+and dword [ebp - 0x3c], 0xfbffffff
+mov ecx, dword [ebp - 0x3c]
+mov dword [edi + 0x333c], ecx
+jmp short loc_fffbd9e7 ; jmp 0xfffbd9e7
+
+loc_fffbd9d2: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+mov esi, dword [eax + 0x5030]
+and esi, 0xfffffffd
+mov dword [eax + 0x5030], esi
+
+loc_fffbd9e7: ; not directly referenced
+mov edx, 0xbb8
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffbda0f ; jne 0xfffbda0f
+mov eax, dword [ebp - 0x3c]
+or eax, 0x4000000
+mov dword [edi + 0x333c], eax
+jmp short loc_fffbda1e ; jmp 0xfffbda1e
+
+loc_fffbda0f: ; not directly referenced
+mov eax, dword [ebx + 0x103f]
+or esi, 2
+mov dword [eax + 0x5030], esi
+
+loc_fffbda1e: ; not directly referenced
+mov edx, 0x1d4c
+mov eax, ebx
+call fcn_fffb2d3a ; call 0xfffb2d3a
+mov eax, dword [ebx + 0x103f]
+or esi, 0x400000
+mov edx, 1
+mov dword [eax + 0x5030], esi
+mov eax, ebx
+call fcn_fffb2d76 ; call 0xfffb2d76
+cmp dword [ebx + 0x297c], 2
+jne short loc_fffbda63 ; jne 0xfffbda63
+mov edx, dword [ebx + 0x103f]
+mov al, byte [ebx + 0x3acb]
+mov byte [edx + 0x4192], al
+
+loc_fffbda63: ; not directly referenced
+cmp dword [ebx + 0x3cc3], 2
+jne short loc_fffbda7e ; jne 0xfffbda7e
+mov edx, dword [ebx + 0x103f]
+mov al, byte [ebx + 0x4e12]
+mov byte [edx + 0x4592], al
+
+loc_fffbda7e: ; not directly referenced
+mov eax, ebx
+mov edx, 1
+call fcn_fffb2d76 ; call 0xfffb2d76
+lea esi, [ebx + 0x16be]
+mov dword [ebp - 0x54], esi
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x6c], esi
+imul esi, dword [ebx + 0x1021], 0x2a
+xor eax, eax
+mov byte [ebp - 0x40], 0
+mov dword [ebp - 0x70], esi
+jmp near loc_fffbdcdb ; jmp 0xfffbdcdb
+
+loc_fffbdab1: ; not directly referenced
+movzx edx, byte [ebp - 0x40]
+mov ecx, dword [ebp - 0x54]
+imul eax, edx, 0x1347
+mov dword [ebp - 0x44], edx
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffbdcd6 ; jne 0xfffbdcd6
+mov esi, dword [ebp - 0x6c]
+mov dword [ebp - 0x60], eax
+mov dword [ebp - 0x3c], 0
+lea edi, [esi + eax + 8]
+mov esi, dword [ebp - 0x70]
+add eax, ebx
+mov dword [ebp - 0x68], eax
+mov si, word [edi + esi + 0x10]
+mov word [ebp - 0x72], si
+mov dl, byte [ebp - 0x72]
+sub edx, 5
+and edx, 7
+shl edx, 3
+mov word [ebp - 0x50], dx
+mov edx, dword [ebp - 0x44]
+shl edx, 0xa
+mov dword [ebp - 0x64], edx
+
+loc_fffbdb0a: ; not directly referenced
+mov esi, dword [ebp - 0x68]
+mov cl, byte [ebp - 0x3c]
+mov eax, 1
+mov byte [ebp - 0x47], cl
+shl eax, cl
+test byte [esi + 0x3acb], al
+je loc_fffbdcaa ; je 0xfffbdcaa
+cmp byte [ebx + 0x1742], 0
+je short loc_fffbdb4d ; je 0xfffbdb4d
+mov al, cl
+shr al, 1
+movzx eax, al
+imul eax, eax, 0xfb
+mov ax, word [edi + eax + 0x123c]
+mov word [ebp - 0x50], ax
+jmp near loc_fffbdc9a ; jmp 0xfffbdc9a
+
+loc_fffbdb4d: ; not directly referenced
+mov al, byte [ebp - 0x47]
+shr al, 1
+movzx esi, al
+mov byte [ebp - 0x46], al
+imul eax, esi, 0xfb
+mov dword [ebp - 0x4c], esi
+cmp byte [edi + eax + 0x1211], 1
+jne short loc_fffbdb7d ; jne 0xfffbdb7d
+cmp byte [ebx + 0x1070], 0
+je short loc_fffbdb93 ; je 0xfffbdb93
+cmp byte [ebx + 0x1748], 1
+je short loc_fffbdb93 ; je 0xfffbdb93
+
+loc_fffbdb7d: ; not directly referenced
+imul eax, dword [ebp - 0x4c], 0xfb
+cmp byte [edi + eax + 0x1210], 1
+sete al
+xor edx, edx
+jmp short loc_fffbdb97 ; jmp 0xfffbdb97
+
+loc_fffbdb93: ; not directly referenced
+xor eax, eax
+mov dl, 1
+
+loc_fffbdb97: ; not directly referenced
+and edx, 1
+mov esi, dword [ebp - 0x50]
+shl edx, 6
+and si, 0xff3f
+and eax, 1
+or esi, edx
+shl eax, 7
+mov ecx, dword [ebp - 0x4c]
+or esi, eax
+mov edx, dword [ebp - 0x44]
+mov eax, ebx
+call fcn_fffb90cf ; call 0xfffb90cf
+test eax, eax
+je loc_fffbdcf9 ; je 0xfffbdcf9
+movzx eax, byte [eax]
+xor edx, edx
+cmp al, 0x78
+ja short loc_fffbdbd7 ; ja 0xfffbdbd7
+mov cl, 0x3c
+div cl
+test ah, 0x3f
+cmove edx, eax
+
+loc_fffbdbd7: ; not directly referenced
+and edx, 3
+and si, 0xf9ff
+shl edx, 9
+mov ecx, dword [ebp - 0x60]
+or esi, edx
+mov edx, dword [ebp - 0x64]
+movzx eax, si
+mov word [ebp - 0x50], si
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebx + 0x103f]
+lea eax, [edx + eax + 0x429c]
+mov dword [ebp - 0x5c], eax
+movzx edx, byte [ebp - 0x46]
+mov eax, dword [eax]
+imul edx, edx, 0xfb
+and eax, 0xfffff8c0
+lea edx, [edx + ecx + 0x3ab0]
+lea edx, [ebx + edx + 0x1d]
+mov dword [ebp - 0x58], edx
+cmp byte [edx + 0xbf], 1
+jne short loc_fffbdc4b ; jne 0xfffbdc4b
+mov cl, byte [ebp - 0x46]
+mov edx, 1
+shl edx, cl
+mov dword [ebp - 0x78], edx
+mov edx, eax
+shr edx, 6
+or edx, dword [ebp - 0x78]
+and edx, 3
+and al, 0x3f
+shl edx, 6
+or eax, edx
+
+loc_fffbdc4b: ; not directly referenced
+mov edx, dword [ebp - 0x58]
+and byte [ebp - 0x2c], 0x3f
+or eax, dword [ebp - 0x2c]
+cmp byte [edx + 0xbe], 1
+jne short loc_fffbdc7e ; jne 0xfffbdc7e
+mov cl, byte [ebp - 0x46]
+mov edx, 1
+shl edx, cl
+mov dword [ebp - 0x58], edx
+mov edx, eax
+shr edx, 0xe
+or edx, dword [ebp - 0x58]
+and edx, 3
+and ah, 0x3f
+shl edx, 0xe
+or eax, edx
+
+loc_fffbdc7e: ; not directly referenced
+mov edx, dword [ebp - 0x5c]
+mov dword [edx], eax
+imul eax, dword [ebp - 0x4c], 0xfb
+add eax, edi
+mov word [eax + 0x123c], si
+mov word [eax + 0x1246], si
+
+loc_fffbdc9a: ; not directly referenced
+mov al, byte [ebp - 0x47]
+mov esi, dword [ebp - 0x50]
+shr al, 1
+movzx eax, al
+mov word [ebp + eax*2 - 0x24], si
+
+loc_fffbdcaa: ; not directly referenced
+add dword [ebp - 0x3c], 2
+cmp dword [ebp - 0x3c], 4
+jne loc_fffbdb0a ; jne 0xfffbdb0a
+push 0
+lea eax, [ebp - 0x24]
+mov ecx, 0xf
+push eax
+mov edx, dword [ebp - 0x44]
+mov eax, ebx
+push 2
+push 0
+call fcn_fffb933f ; call 0xfffb933f
+add esp, 0x10
+jmp short loc_fffbdcd8 ; jmp 0xfffbdcd8
+
+loc_fffbdcd6: ; not directly referenced
+xor eax, eax
+
+loc_fffbdcd8: ; not directly referenced
+inc byte [ebp - 0x40]
+
+loc_fffbdcdb: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x40], 1
+setbe dl
+test cl, dl
+jne loc_fffbdab1 ; jne 0xfffbdab1
+test eax, eax
+jne loc_fffbdf5f ; jne 0xfffbdf5f
+jmp short loc_fffbdd03 ; jmp 0xfffbdd03
+
+loc_fffbdcf9: ; not directly referenced
+mov eax, 1
+jmp near loc_fffbdf5f ; jmp 0xfffbdf5f
+
+loc_fffbdd03: ; not directly referenced
+xor eax, eax
+xor edi, edi
+jmp short loc_fffbdd49 ; jmp 0xfffbdd49
+
+loc_fffbdd09: ; not directly referenced
+mov eax, edi
+mov esi, dword [ebp - 0x54]
+movzx edx, al
+xor eax, eax
+imul ecx, edx, 0x1347
+cmp dword [esi + ecx + 0x12be], 2
+jne short loc_fffbdd48 ; jne 0xfffbdd48
+push 0
+lea eax, [ebp - 0x24]
+mov ecx, 0xf
+push eax
+mov eax, ebx
+mov word [ebp - 0x24], 0
+push 3
+mov word [ebp - 0x22], 0
+push 0
+call fcn_fffb933f ; call 0xfffb933f
+add esp, 0x10
+
+loc_fffbdd48: ; not directly referenced
+inc edi
+
+loc_fffbdd49: ; not directly referenced
+test eax, eax
+mov edx, edi
+sete cl
+cmp dl, 1
+setbe dl
+test cl, dl
+jne short loc_fffbdd09 ; jne 0xfffbdd09
+test eax, eax
+jne loc_fffbdf5f ; jne 0xfffbdf5f
+mov eax, ebx
+call fcn_fffc43c7 ; call 0xfffc43c7
+test eax, eax
+jne loc_fffbdf5f ; jne 0xfffbdf5f
+lea edi, [ebp - 0x24]
+mov esi, ref_fffcbe50 ; mov esi, 0xfffcbe50
+mov ecx, 3
+mov byte [ebp - 0x3c], 0
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea esi, [ebx + 0x2974]
+mov dword [ebp - 0x4c], esi
+imul esi, dword [ebx + 0x1021], 0x2a
+mov edi, 0x100
+mov dword [ebp - 0x50], esi
+jmp near loc_fffbdf1c ; jmp 0xfffbdf1c
+
+loc_fffbdda1: ; not directly referenced
+movzx edx, byte [ebp - 0x3c]
+mov ecx, dword [ebp - 0x54]
+imul eax, edx, 0x1347
+mov dword [ebp - 0x40], edx
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffbdf17 ; jne 0xfffbdf17
+mov edx, dword [ebp - 0x4c]
+lea esi, [edx + eax + 8]
+mov eax, dword [ebp - 0x50]
+add eax, esi
+mov cx, word [eax + 0xe]
+mov word [ebp - 0x44], cx
+movzx ecx, word [eax + 0x2e]
+cmp cx, 4
+jbe loc_fffbdf36 ; jbe 0xfffbdf36
+cmp cx, 0xa
+setne dl
+cmp cx, 8
+seta al
+test dl, al
+je short loc_fffbde08 ; je 0xfffbde08
+mov eax, ecx
+and eax, 0xfffffffd
+cmp ax, 0xc
+je short loc_fffbde08 ; je 0xfffbde08
+cmp cx, 0x10
+jne loc_fffbdf36 ; jne 0xfffbdf36
+
+loc_fffbde08: ; not directly referenced
+cmp word [ebp - 0x44], 0xc
+sbb edx, edx
+mov eax, edx
+and eax, 0xfffffff8
+add eax, 0xc
+mov word [ebp - 0x58], ax
+lea edx, [edx*4 + 4]
+mov al, byte [ebp - 0x44]
+and edx, 4
+sub eax, dword [ebp - 0x58]
+mov word [ebp - 0x46], dx
+mov edx, edi
+mov edi, eax
+movzx eax, byte [ebp + ecx - 0x29]
+and edi, 7
+and edx, 0xffffff8b
+shl edi, 4
+or dx, word [ebp - 0x46]
+or edx, edi
+and eax, 7
+shl eax, 9
+and dh, 0xf1
+or edx, eax
+mov al, byte [ebx + 0x1069]
+cmp al, 6
+mov edi, edx
+setne cl
+cmp al, 1
+seta byte [ebp - 0x44]
+and di, 0xefff
+test byte [ebp - 0x44], cl
+jne short loc_fffbde83 ; jne 0xfffbde83
+cmp al, 1
+mov edi, edx
+setbe al
+and di, 0xefff
+and eax, 1
+shl eax, 0xc
+or edi, eax
+
+loc_fffbde83: ; not directly referenced
+imul eax, dword [ebp - 0x40], 0x1347
+test byte [ebx + eax + 0x3acb], 1
+je short loc_fffbdebe ; je 0xfffbdebe
+cmp byte [ebx + 0x1742], 0
+jne short loc_fffbdeb5 ; jne 0xfffbdeb5
+jmp short loc_fffbdea5 ; jmp 0xfffbdea5
+
+loc_fffbde9f: ; not directly referenced
+mov word [ebp - 0x28], di
+jmp short loc_fffbdebe ; jmp 0xfffbdebe
+
+loc_fffbdea5: ; not directly referenced
+mov word [esi + 0x1238], di
+mov word [esi + 0x1242], di
+jmp short loc_fffbde9f ; jmp 0xfffbde9f
+
+loc_fffbdeb5: ; not directly referenced
+mov di, word [esi + 0x1238]
+jmp short loc_fffbde9f ; jmp 0xfffbde9f
+
+loc_fffbdebe: ; not directly referenced
+imul eax, dword [ebp - 0x40], 0x1347
+test byte [ebx + eax + 0x3acb], 4
+je short loc_fffbdef9 ; je 0xfffbdef9
+cmp byte [ebx + 0x1742], 0
+jne short loc_fffbdef0 ; jne 0xfffbdef0
+jmp short loc_fffbdee0 ; jmp 0xfffbdee0
+
+loc_fffbdeda: ; not directly referenced
+mov word [ebp - 0x26], di
+jmp short loc_fffbdef9 ; jmp 0xfffbdef9
+
+loc_fffbdee0: ; not directly referenced
+mov word [esi + 0x1333], di
+mov word [esi + 0x133d], di
+jmp short loc_fffbdeda ; jmp 0xfffbdeda
+
+loc_fffbdef0: ; not directly referenced
+mov di, word [esi + 0x1333]
+jmp short loc_fffbdeda ; jmp 0xfffbdeda
+
+loc_fffbdef9: ; not directly referenced
+push 0
+lea eax, [ebp - 0x28]
+mov ecx, 0xf
+push eax
+mov edx, dword [ebp - 0x40]
+mov eax, ebx
+push 0
+push 0
+call fcn_fffb933f ; call 0xfffb933f
+add esp, 0x10
+jmp short loc_fffbdf19 ; jmp 0xfffbdf19
+
+loc_fffbdf17: ; not directly referenced
+xor eax, eax
+
+loc_fffbdf19: ; not directly referenced
+inc byte [ebp - 0x3c]
+
+loc_fffbdf1c: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x3c], 1
+setbe dl
+test cl, dl
+jne loc_fffbdda1 ; jne 0xfffbdda1
+test eax, eax
+jne short loc_fffbdf5f ; jne 0xfffbdf5f
+jmp short loc_fffbdf3d ; jmp 0xfffbdf3d
+
+loc_fffbdf36: ; not directly referenced
+mov eax, 0xc
+jmp short loc_fffbdf5f ; jmp 0xfffbdf5f
+
+loc_fffbdf3d: ; not directly referenced
+xor ecx, ecx
+mov edx, 3
+mov eax, ebx
+call fcn_fffb958c ; call 0xfffb958c
+test eax, eax
+jne short loc_fffbdf5f ; jne 0xfffbdf5f
+mov edx, dword [ebx + 0x103f]
+mov dword [edx + 0x4d94], 0
+
+loc_fffbdf5f: ; not directly referenced
+mov byte [ebx + 0x1742], 1
+
+loc_fffbdf66: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffbdf6e:
+db 0x00
+db 0x00
+
+fcn_fffbdf70: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x20]
+mov byte [ebp - 0x1c], dl
+mov dword [ebp - 0xc], 0
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+sub esp, 0xc
+lea edx, [ebp - 0xc]
+mov esi, eax
+mov eax, dword [ebx]
+push edx
+push 0
+push 0
+push ref_fffcd488 ; push 0xfffcd488
+push ebx
+call dword [eax + 0x20] ; ucall
+mov eax, dword [0xf00f80ac]
+and eax, 0xffebffff
+mov dword [0xf00f80ac], eax
+mov edx, 0xcf9
+in al, dx
+mov bl, al
+mov cl, byte [ebp - 0x1c]
+and ebx, 0xfffffff1
+add esp, 0x20
+cmp cl, 6
+jne short loc_fffbdfd2 ; jne 0xfffbdfd2
+mov ecx, dword [0xf00f8048]
+and ecx, 0xfffffffe
+jmp short loc_fffbdffc ; jmp 0xfffbdffc
+
+loc_fffbdfd2: ; not directly referenced
+cmp cl, 2
+je short loc_fffbdfe8 ; je 0xfffbdfe8
+cmp cl, 6
+je short loc_fffbdffa ; je 0xfffbdffa
+mov al, bl
+or eax, 6
+dec cl
+cmove ebx, eax
+jmp short loc_fffbe059 ; jmp 0xfffbe059
+
+loc_fffbdfe8: ; not directly referenced
+sub esp, 0xc
+mov eax, dword [ebp - 0xc]
+push 2
+or ebx, 0xe
+call dword [eax] ; ucall
+add esp, 0x10
+jmp short loc_fffbe059 ; jmp 0xfffbe059
+
+loc_fffbdffa: ; not directly referenced
+xor ecx, ecx
+
+loc_fffbdffc: ; not directly referenced
+cmp esi, 1
+jne short loc_fffbe021 ; jne 0xfffbe021
+mov edx, ecx
+in eax, dx
+or eax, 0x40000000
+out dx, eax
+mov esi, ecx
+lea edx, [esi + 4]
+in eax, dx
+and eax, 0xbfffffff
+out dx, eax
+lea edx, [esi + 0xc]
+in eax, dx
+and eax, 0xbfffffff
+jmp short loc_fffbe03c ; jmp 0xfffbe03c
+
+loc_fffbe021: ; not directly referenced
+cmp esi, 2
+jne short loc_fffbe03d ; jne 0xfffbe03d
+lea edx, [ecx + 0x1f0]
+in eax, dx
+or eax, 1
+out dx, eax
+in eax, dx
+and eax, 0xfffffffb
+out dx, eax
+in eax, dx
+and eax, 0x7fffffff
+
+loc_fffbe03c: ; not directly referenced
+out dx, eax
+
+loc_fffbe03d: ; not directly referenced
+lea edx, [ecx + 0x60]
+in eax, dx
+or eax, 0x40000000
+out dx, eax
+mov eax, dword [0xf00f80ac]
+or eax, 0x100000
+mov dword [0xf00f80ac], eax
+or ebx, 0xe
+
+loc_fffbe059: ; not directly referenced
+mov eax, dword [ebp - 0xc]
+call dword [eax + 0xc] ; ucall
+mov edx, 0xcf9
+mov al, bl
+out dx, al
+lea esp, [ebp - 8]
+xor eax, eax
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffbe070: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edx, [ebp - 0x1c]
+push ebx
+lea esp, [esp - 0x38]
+mov ebx, dword [ebp + 8]
+mov esi, dword [0xf00b0048]
+mov eax, dword [ebx]
+push edx
+push 0
+push 0
+push ref_fffcd4b4 ; push 0xfffcd4b4
+push ebx
+call dword [eax + 0x20] ; ucall
+mov edi, eax
+add esp, 0x20
+xor edx, edx
+jmp short loc_fffbe0bd ; jmp 0xfffbe0bd
+
+loc_fffbe09f: ; not directly referenced
+push ecx
+mov eax, dword [ebp - 0x1c]
+mov dword [ebp - 0x2c], edx
+push 0x3e8
+push eax
+push ebx
+call dword [eax + 4] ; ucall
+mov edx, dword [ebp - 0x2c]
+mov esi, dword [0xf00b0048]
+inc edx
+add esp, 0x10
+
+loc_fffbe0bd: ; not directly referenced
+test esi, 0x100
+jne short loc_fffbe0ff ; jne 0xfffbe0ff
+cmp edx, 0x32
+jne short loc_fffbe09f ; jne 0xfffbe09f
+jmp short loc_fffbe0f7 ; jmp 0xfffbe0f7
+
+loc_fffbe0cc: ; not directly referenced
+mov eax, esi
+test al, al
+jns short loc_fffbe0ee ; jns 0xfffbe0ee
+mov ax, word [0xf00f80a2]
+and al, 0x7f
+mov word [0xf00f80a2], ax
+mov edx, 1
+mov eax, ebx
+call fcn_fffbdf70 ; call 0xfffbdf70
+mov edi, eax
+
+loc_fffbe0ee: ; not directly referenced
+mov eax, esi
+and eax, 0xffffff90
+cmp al, 0x10
+jne short loc_fffbe106 ; jne 0xfffbe106
+
+loc_fffbe0f7: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov byte [eax], 1
+jmp short loc_fffbe106 ; jmp 0xfffbe106
+
+loc_fffbe0ff: ; not directly referenced
+cmp edx, 0x32
+jne short loc_fffbe0cc ; jne 0xfffbe0cc
+jmp short loc_fffbe0f7 ; jmp 0xfffbe0f7
+
+loc_fffbe106: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, edi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbe110: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 8]
+mov ecx, dword [0xf00b0048]
+mov dl, byte [ebp + 0x10]
+mov eax, dword [ebp + 8]
+cmp dl, 2
+je short loc_fffbe138 ; je 0xfffbe138
+cmp dl, 6
+je short loc_fffbe13f ; je 0xfffbe13f
+dec dl
+jne short loc_fffbe149 ; jne 0xfffbe149
+mov edx, 1
+jmp short loc_fffbe144 ; jmp 0xfffbe144
+
+loc_fffbe138: ; not directly referenced
+mov edx, 2
+jmp short loc_fffbe144 ; jmp 0xfffbe144
+
+loc_fffbe13f: ; not directly referenced
+mov edx, 6
+
+loc_fffbe144: ; not directly referenced
+call fcn_fffbdf70 ; call 0xfffbdf70
+
+loc_fffbe149: ; not directly referenced
+xor eax, eax
+leave
+ret
+
+fcn_fffbe14d: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+lea edx, [ebp - 0xc]
+lea esp, [esp - 0x2c]
+mov ebx, dword [ebp + 8]
+mov cl, byte [ebp + 0x14]
+mov eax, dword [ebx]
+mov byte [ebp - 0x1c], cl
+push edx
+push 0
+push 0
+push ref_fffcd4b4 ; push 0xfffcd4b4
+push ebx
+call dword [eax + 0x20] ; ucall
+mov eax, dword [0xf00b0040]
+add esp, 0x20
+mov edx, eax
+mov cl, byte [ebp - 0x1c]
+shr edx, 0x10
+and edx, 0xf
+cmp dl, 2
+je loc_fffbe22f ; je 0xfffbe22f
+movzx edx, ah
+xor eax, eax
+and dl, 0xf0
+jne loc_fffbe231 ; jne 0xfffbe231
+mov edx, dword [0xf0000070]
+mov eax, dword [0xf0000074]
+shl eax, 0x1c
+shr edx, 4
+add edx, eax
+shr edx, 0x10
+mov eax, edx
+or edx, 0x10800000
+or eax, 0x10000000
+test cl, cl
+cmovs eax, edx
+mov edx, ecx
+and edx, 0x7f
+shl edx, 0x18
+or eax, edx
+mov edx, dword [0xf00b004c]
+mov dword [0xf00b004c], eax
+push esi
+mov eax, dword [ebp - 0xc]
+mov esi, 0x1389
+push 0x44c
+push eax
+push ebx
+call dword [eax + 4] ; ucall
+mov eax, dword [0xf00b0040]
+add esp, 0x10
+jmp short loc_fffbe20c ; jmp 0xfffbe20c
+
+loc_fffbe1f6: ; not directly referenced
+push ecx
+mov eax, dword [ebp - 0xc]
+push 0x3e8
+push eax
+push ebx
+call dword [eax + 4] ; ucall
+mov eax, dword [0xf00b0040]
+add esp, 0x10
+
+loc_fffbe20c: ; not directly referenced
+mov edx, eax
+shr edx, 0x18
+and dl, 0xf0
+jne short loc_fffbe219 ; jne 0xfffbe219
+dec esi
+jne short loc_fffbe1f6 ; jne 0xfffbe1f6
+
+loc_fffbe219: ; not directly referenced
+shr eax, 0x19
+push edx
+and eax, 7
+push eax
+push dword [ebp + 0x10]
+push ebx
+call fcn_fffbe110 ; call 0xfffbe110
+add esp, 0x10
+jmp short loc_fffbe231 ; jmp 0xfffbe231
+
+loc_fffbe22f: ; not directly referenced
+xor eax, eax
+
+loc_fffbe231: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffbe238: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x6bcc]
+mov dword [ebp - 0x6b4c], eax
+mov al, byte [ebp + 0x30]
+mov bl, byte [ebp + 8]
+mov byte [ebp - 0x6b76], al
+mov eax, dword [ebp - 0x6b4c]
+mov byte [ebp - 0x6b48], bl
+mov bl, byte [ebp + 0xc]
+mov dword [ebp - 0x6b98], edx
+mov byte [ebp - 0x6b50], bl
+mov bl, byte [ebp + 0x14]
+mov edi, dword [ebp + 0x28]
+mov dl, byte [eax + 0x176b]
+mov byte [ebp - 0x6ba3], bl
+and edx, ecx
+mov bl, byte [ebp + 0x20]
+mov byte [ebp - 0x6b54], bl
+xor ecx, ecx
+mov bl, byte [ebp + 0x24]
+mov esi, edx
+mov dl, byte [eax + 0x176a]
+lea eax, [ebp - 0x4efc]
+and byte [ebp - 0x6b48], dl
+mov edx, 0x4ee4
+mov byte [ebp - 0x6b58], bl
+mov bl, byte [ebp + 0x2c]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0xff
+mov edx, 0x3e
+mov eax, dword [ebp - 0x6b98]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0xf0
+lea eax, [ebp - 0x6aec]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x30
+lea eax, [ebp - 0x6b1c]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x6b37]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x10
+lea eax, [ebp - 0x6b2c]
+call fcn_fffa119f ; call 0xfffa119f
+xor eax, eax
+
+loc_fffbe31a: ; not directly referenced
+mov byte [ebp + eax - 0x6b35], al
+inc eax
+cmp eax, 9
+jne short loc_fffbe31a ; jne 0xfffbe31a
+mov eax, dword [ebp - 0x6b4c]
+cmp bl, 9
+mov byte [eax + 0x1741], 0
+jne short loc_fffbe33c ; jne 0xfffbe33c
+dec edi
+jmp short loc_fffbe345 ; jmp 0xfffbe345
+
+loc_fffbe33c: ; not directly referenced
+cmp bl, 0xa
+lea eax, [edi - 3]
+cmove edi, eax
+
+loc_fffbe345: ; not directly referenced
+sub esp, 0xc
+and esi, 0xff
+mov edx, edi
+mov eax, dword [ebp - 0x6b4c]
+push 0
+movzx ecx, dl
+mov edx, esi
+call fcn_fffc5844 ; call 0xfffc5844
+add esp, 0x10
+test bl, bl
+je short loc_fffbe375 ; je 0xfffbe375
+mov eax, dword [ebp - 0x6b4c]
+mov byte [eax + 0x1768], bl
+
+loc_fffbe375: ; not directly referenced
+mov edx, dword [ebp - 0x6b4c]
+xor ebx, ebx
+add edx, 0x2974
+mov byte [ebp - 0x6b60], 0
+mov dword [ebp - 0x6b5c], edx
+
+loc_fffbe390: ; not directly referenced
+bt esi, ebx
+jae short loc_fffbe3e4 ; jae 0xfffbe3e4
+imul edi, ebx, 0x1347
+add edi, dword [ebp - 0x6b5c]
+mov cl, byte [ebp - 0x6b48]
+mov edx, ebx
+mov eax, dword [ebp - 0x6b4c]
+and cl, byte [edi + 0x1157]
+mov byte [ebp + ebx - 0x6b37], cl
+movzx ecx, cl
+call fcn_fffc41bb ; call 0xfffc41bb
+or byte [ebp - 0x6b60], al
+mov eax, dword [ebp - 0x6b4c]
+xor ecx, ecx
+movzx edx, byte [eax + 0x1755]
+lea eax, [edi + 0x101]
+call fcn_fffa119f ; call 0xfffa119f
+
+loc_fffbe3e4: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbe390 ; jne 0xfffbe390
+cmp byte [ebp - 0x6b60], 0
+je loc_fffbeffd ; je 0xfffbeffd
+movzx ebx, byte [ebp - 0x6b48]
+xor eax, eax
+mov dword [ebp - 0x6ba0], ebx
+
+loc_fffbe406: ; not directly referenced
+mov esi, dword [ebp - 0x6ba0]
+mov byte [ebp - 0x6b88], al
+bt esi, eax
+jb short loc_fffbe424 ; jb 0xfffbe424
+inc eax
+cmp eax, 4
+jne short loc_fffbe406 ; jne 0xfffbe406
+mov byte [ebp - 0x6b88], 0
+
+loc_fffbe424: ; not directly referenced
+mov ebx, dword [ebp - 0x6b4c]
+mov al, 1
+mov bl, byte [ebx + 0x1755]
+mov byte [ebp - 0x6b75], bl
+mov bl, byte [ebp - 0x6b50]
+sub ebx, 7
+cmp bl, 2
+mov byte [ebp - 0x6ba4], bl
+mov bl, byte [ebp - 0x6b75]
+cmovbe ebx, eax
+cmp byte [ebp - 0x6b50], 3
+sete dl
+cmp byte [ebp - 0x6b50], 1
+setbe al
+mov byte [ebp - 0x6b75], bl
+or dl, al
+jne short loc_fffbe494 ; jne 0xfffbe494
+xor ebx, ebx
+cmp byte [ebp - 0x6b50], 2
+sete bl
+mov byte [ebp - 0x6b5c], 0
+test ebx, ebx
+mov dword [ebp - 0x6bac], ebx
+je loc_fffbe54b ; je 0xfffbe54b
+jmp short loc_fffbe49e ; jmp 0xfffbe49e
+
+loc_fffbe494: ; not directly referenced
+mov dword [ebp - 0x6bac], 1
+
+loc_fffbe49e: ; not directly referenced
+mov esi, dword [ebp - 0x6b4c]
+cmp byte [ebp - 0x6b50], 1
+mov eax, dword [esi + 0x103f]
+jne short loc_fffbe4bb ; jne 0xfffbe4bb
+mov eax, dword [eax + 0x3a04]
+jmp short loc_fffbe4ea ; jmp 0xfffbe4ea
+
+loc_fffbe4bb: ; not directly referenced
+mov eax, dword [eax + 0x3a00]
+jb short loc_fffbe4ea ; jb 0xfffbe4ea
+cmp byte [ebp - 0x6b50], 2
+je short loc_fffbe4d7 ; je 0xfffbe4d7
+cmp byte [ebp - 0x6b50], 3
+jne short loc_fffbe4f7 ; jne 0xfffbe4f7
+jmp short loc_fffbe4e7 ; jmp 0xfffbe4e7
+
+loc_fffbe4d7: ; not directly referenced
+shr eax, 0x1a
+and eax, 0x1f
+mov byte [ebp - 0x6b5c], al
+mov al, 0x1f
+jmp short loc_fffbe500 ; jmp 0xfffbe500
+
+loc_fffbe4e7: ; not directly referenced
+shr eax, 0x14
+
+loc_fffbe4ea: ; not directly referenced
+and eax, 0x3f
+mov byte [ebp - 0x6b5c], al
+mov al, 0x3f
+jmp short loc_fffbe500 ; jmp 0xfffbe500
+
+loc_fffbe4f7: ; not directly referenced
+mov al, 0x3f
+mov byte [ebp - 0x6b5c], 0
+
+loc_fffbe500: ; not directly referenced
+mov dl, byte [ebp - 0x6b5c]
+mov bl, byte [ebp - 0x6b54]
+sub edx, 3
+mov cl, dl
+neg ecx
+add dl, byte [ebp - 0x6b54]
+cmovs ebx, ecx
+sub eax, 3
+mov byte [ebp - 0x6b54], bl
+sub eax, dword [ebp - 0x6b5c]
+mov bl, byte [ebp - 0x6b58]
+cmp al, byte [ebp - 0x6b58]
+cmovs ebx, eax
+mov al, byte [ebp - 0x6b54]
+cmp bl, al
+cmovge eax, ebx
+mov byte [ebp - 0x6b58], al
+
+loc_fffbe54b: ; not directly referenced
+movzx esi, byte [ebp - 0x6b88]
+mov ebx, dword [ebp + 0x1c]
+mov dword [ebp - 0x6b8c], ebx
+mov dword [ebp - 0x6b64], esi
+imul ebx, esi, 0x90
+mov esi, dword [ebp + 0x10]
+mov dword [ebp - 0x6bb8], ebx
+mov dword [ebp - 0x6b70], esi
+movzx ebx, byte [ebp - 0x6ba3]
+movsx si, byte [ebp - 0x6b54]
+mov word [ebp - 0x6ba2], bx
+mov word [ebp - 0x6bc2], si
+jmp near loc_fffbe883 ; jmp 0xfffbe883
+
+loc_fffbe598: ; not directly referenced
+mov esi, dword [ebp - 0x6b70]
+mov bl, byte [esi]
+movzx esi, bl
+mov dword [ebp - 0x6b6c], esi
+xor esi, esi
+cmp bl, 0x21
+ja short loc_fffbe5bd ; ja 0xfffbe5bd
+mov eax, dword [ebp - 0x6b6c]
+movzx esi, byte [eax + ref_fffcc308] ; movzx esi, byte [eax - 0x33cf8]
+
+loc_fffbe5bd: ; not directly referenced
+push eax
+mov edx, dword [ebp - 0x6b4c]
+mov ecx, dword [ebp - 0x6b6c]
+push eax
+push dword [ebp - 0x6ba0]
+push dword [ebp - 0x6b64]
+add edx, 0x1774
+mov eax, dword [ebp - 0x6b4c]
+mov dword [ebp - 0x6b9c], edx
+call fcn_fffb0bed ; call 0xfffb0bed
+add esp, 0x10
+cmp bl, 0x10
+sete dl
+cmp bl, 4
+sete al
+mov byte [ebp - 0x6b48], 0x36
+or dl, al
+jne short loc_fffbe636 ; jne 0xfffbe636
+cmp bl, 5
+sete dl
+cmp bl, 0x20
+sete al
+or dl, al
+jne short loc_fffbe636 ; jne 0xfffbe636
+cmp bl, 0x21
+sete al
+cmp bl, 0x11
+sete dl
+or eax, edx
+cmp al, 1
+sbb ebx, ebx
+and ebx, 0xffffffe9
+add ebx, 0x36
+mov byte [ebp - 0x6b48], bl
+
+loc_fffbe636: ; not directly referenced
+mov ebx, dword [ebp - 0x6b8c]
+xor edx, edx
+mov ecx, 0x14
+mov dword [ebp - 0x6b68], 0
+movzx edi, di
+mov ax, word [ebx]
+mov bl, byte [ebp - 0x6b48]
+div cx
+movzx edx, byte [ebp - 0x6b48]
+cmp dx, ax
+cmova ebx, eax
+and esi, 0xff
+imul edi, edi, 0x6c0
+imul esi, esi, 0x240
+mov eax, dword [ebp - 0x6b4c]
+add esi, dword [ebp - 0x6bb8]
+mov byte [ebp - 0x6b48], bl
+lea edi, [ebp + edi - 0x69fc]
+mov dword [ebp - 0x6bc0], edi
+lea esi, [eax + esi + 0x177c]
+mov dword [ebp - 0x6bb4], esi
+jmp near loc_fffbe85e ; jmp 0xfffbe85e
+
+loc_fffbe6ac: ; not directly referenced
+mov dl, byte [ebp - 0x6b68]
+mov si, word [ebp - 0x6bc2]
+add esi, dword [ebp - 0x6b68]
+mov byte [ebp - 0x6b74], dl
+xor ebx, ebx
+mov word [ebp - 0x6b94], si
+
+loc_fffbe6ce: ; not directly referenced
+movzx esi, byte [ebp - 0x6b60]
+bt esi, ebx
+mov dword [ebp - 0x6b90], esi
+jb short loc_fffbe6e8 ; jb 0xfffbe6e8
+
+loc_fffbe6e0: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbe6ce ; jne 0xfffbe6ce
+jmp short loc_fffbe74c ; jmp 0xfffbe74c
+
+loc_fffbe6e8: ; not directly referenced
+xor edi, edi
+cmp byte [ebp - 0x6b50], 7
+jne short loc_fffbe70c ; jne 0xfffbe70c
+imul eax, ebx, 0x1347
+mov edx, dword [ebp - 0x6b4c]
+cmp dword [edx + eax + 0x2a71], 2
+mov al, 0x20
+cmove edi, eax
+
+loc_fffbe70c: ; not directly referenced
+xor esi, esi
+jmp short loc_fffbe740 ; jmp 0xfffbe740
+
+loc_fffbe710: ; not directly referenced
+mov eax, edi
+mov edx, ebx
+push 0
+cbw
+movzx ecx, byte [ebp + ebx - 0x6b37]
+add eax, dword [ebp - 0x6b94]
+cwde
+push eax
+movzx eax, byte [ebp - 0x6b50]
+push eax
+mov eax, dword [ebp - 0x6b4c]
+push esi
+inc esi
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+
+loc_fffbe740: ; not directly referenced
+mov ecx, esi
+cmp byte [ebp - 0x6b75], cl
+ja short loc_fffbe710 ; ja 0xfffbe710
+jmp short loc_fffbe6e0 ; jmp 0xfffbe6e0
+
+loc_fffbe74c: ; not directly referenced
+push edi
+lea eax, [ebp - 0x6b2c]
+mov ecx, dword [ebp - 0x6b90]
+push edi
+mov edx, dword [ebp - 0x6b9c]
+xor edi, edi
+push eax
+movzx eax, byte [ebp - 0x6b48]
+push eax
+lea eax, [ebp - 0x6b35]
+push eax
+push dword [ebp - 0x6b6c]
+push dword [ebp - 0x6b64]
+push dword [ebp - 0x6b64]
+mov eax, dword [ebp - 0x6b4c]
+call fcn_fffc69bc ; call 0xfffc69bc
+movsx eax, byte [ebp - 0x6b74]
+mov ebx, dword [ebp - 0x6bb4]
+imul eax, eax, 0x48
+add eax, dword [ebp - 0x6bc0]
+mov dword [ebp - 0x6bbc], eax
+add esp, 0x20
+mov dword [ebp - 0x6bc8], ebx
+
+loc_fffbe7b4: ; not directly referenced
+mov esi, dword [ebp - 0x6b90]
+bt esi, edi
+jae loc_fffbe847 ; jae 0xfffbe847
+imul edx, edi, 0x24
+imul esi, edi, 0xffffffffffffffdc
+mov eax, dword [ebp - 0x6b4c]
+mov ecx, dword [ebp - 0x6bc8]
+mov ebx, dword [ebp - 0x6bbc]
+sub ecx, 8
+mov dword [ebp - 0x6b94], edx
+add ebx, edx
+mov dword [ebp - 0x6bb0], esi
+mov al, byte [eax + 0x1755]
+mov byte [ebp - 0x6ba8], al
+jmp short loc_fffbe840 ; jmp 0xfffbe840
+
+loc_fffbe7fa: ; not directly referenced
+mov esi, dword [ecx + eax*8]
+cmp dx, si
+mov word [ebx + eax*4], si
+mov word [ebp - 0x6b74], si
+cmova edx, esi
+inc eax
+
+loc_fffbe80f: ; not directly referenced
+cmp byte [ebp - 0x6ba8], al
+ja short loc_fffbe7fa ; ja 0xfffbe7fa
+cmp byte [ebp - 0x6b75], 1
+jne short loc_fffbe832 ; jne 0xfffbe832
+mov eax, dword [ebp - 0x6bb0]
+mov esi, dword [ebp - 0x6b94]
+add eax, ebx
+mov word [eax + esi], dx
+
+loc_fffbe832: ; not directly referenced
+add ecx, 4
+add ebx, 2
+cmp ecx, dword [ebp - 0x6bc8]
+je short loc_fffbe847 ; je 0xfffbe847
+
+loc_fffbe840: ; not directly referenced
+xor eax, eax
+or edx, 0xffffffff
+jmp short loc_fffbe80f ; jmp 0xfffbe80f
+
+loc_fffbe847: ; not directly referenced
+inc edi
+add dword [ebp - 0x6bc8], 0x48
+cmp edi, 2
+jne loc_fffbe7b4 ; jne 0xfffbe7b4
+inc dword [ebp - 0x6b68]
+
+loc_fffbe85e: ; not directly referenced
+mov al, byte [ebp - 0x6b54]
+add eax, dword [ebp - 0x6b68]
+cmp byte [ebp - 0x6b58], al
+jge loc_fffbe6ac ; jge 0xfffbe6ac
+add dword [ebp - 0x6b8c], 2
+inc dword [ebp - 0x6b70]
+
+loc_fffbe883: ; not directly referenced
+mov edi, dword [ebp - 0x6b70]
+sub edi, dword [ebp + 0x10]
+cmp di, word [ebp - 0x6ba2]
+jb loc_fffbe598 ; jb 0xfffbe598
+movzx eax, byte [ebp - 0x6ba3]
+mov bl, byte [ebp - 0x6b58]
+imul eax, eax, 0x30
+sub ebx, dword [ebp - 0x6b54]
+mov byte [ebp - 0x6b94], bl
+inc ebx
+mov byte [ebp - 0x6b68], bl
+mov edx, dword [ebp - 0x6b98]
+movzx ebx, byte [ebp - 0x6b60]
+mov dword [ebp - 0x6b90], edx
+movzx esi, byte [ebp - 0x6b68]
+xor edi, edi
+lea eax, [ebp + eax - 0x6aec]
+mov dword [ebp - 0x6b9c], ebx
+mov dword [ebp - 0x6b8c], eax
+mov dword [ebp - 0x6b74], esi
+
+loc_fffbe8f1: ; not directly referenced
+mov ebx, dword [ebp - 0x6b9c]
+bt ebx, edi
+jae loc_fffbed7f ; jae 0xfffbed7f
+imul eax, edi, 0x1347
+mov esi, dword [ebp - 0x6b4c]
+lea ebx, [edi + edi*8]
+mov dword [ebp - 0x6b48], 0
+mov dword [ebp - 0x6ba8], ebx
+lea eax, [esi + eax + 0x297c]
+mov dword [ebp - 0x6b60], eax
+imul eax, edi, 0x2772
+lea eax, [ebp + eax - 0x4efc]
+mov dword [ebp - 0x6b70], eax
+jmp near loc_fffbed6d ; jmp 0xfffbed6d
+
+loc_fffbe944: ; not directly referenced
+movsx ecx, byte [ebp - 0x6b6c]
+mov eax, dword [ebp + 0x10]
+mov bl, byte [eax + esi]
+lea eax, [ebx - 4]
+cmp al, 1
+setbe dl
+cmp bl, 0x21
+sete al
+or dl, al
+jne short loc_fffbe96c ; jne 0xfffbe96c
+cmp bl, 0x20
+jne loc_fffbea09 ; jne 0xfffbea09
+
+loc_fffbe96c: ; not directly referenced
+mov ebx, dword [ebp + 0x18]
+movzx edx, byte [ebx + esi]
+imul eax, esi, 0x1b0
+imul ebx, ecx, 0x12
+add eax, ebx
+add eax, dword [ebp - 0x6ba8]
+add eax, dword [ebp - 0x6b48]
+mov ebx, edx
+imul bx, word [ebp + eax*4 - 0x69fa]
+imul edx, dword [ebp + eax*4 - 0x69fc]
+lea eax, [edx + ebx]
+add eax, eax
+mov word [ebp - 0x6b78], ax
+mov eax, ebx
+sub eax, edx
+mov word [ebp - 0x6ba0], ax
+mov eax, dword [ebp - 0x6b78]
+sub eax, dword [ebp - 0x6ba0]
+mov word [ebp - 0x6bb4], ax
+mov eax, dword [ebp - 0x6b78]
+add eax, dword [ebp - 0x6ba0]
+cmp bx, dx
+mov edx, dword [ebp - 0x6bb4]
+mov ebx, 2
+cmovbe edx, eax
+mov word [ebp - 0x6bb4], dx
+mov eax, dword [ebp - 0x6bb4]
+imul edx, esi, 0x18
+add ecx, edx
+mov edx, eax
+sar dx, 0xf
+idiv bx
+mov word [ebp + ecx*2 - 0x6aec], ax
+jmp short loc_fffbea49 ; jmp 0xfffbea49
+
+loc_fffbea09: ; not directly referenced
+mov ebx, dword [ebp + 0x18]
+mov eax, dword [ebp - 0x6bb0]
+movzx edx, byte [ebx + esi]
+add eax, ecx
+imul ebx, esi, 0x1b0
+imul ecx, ecx, 0x12
+add ecx, ebx
+add ecx, dword [ebp - 0x6ba8]
+add ecx, dword [ebp - 0x6b48]
+movzx ebx, word [ebp + ecx*4 - 0x69fa]
+add ebx, dword [ebp + ecx*4 - 0x69fc]
+imul ebx, edx
+mov word [ebp + eax*2 - 0x6aec], bx
+
+loc_fffbea49: ; not directly referenced
+inc dword [ebp - 0x6b6c]
+jmp short loc_fffbea6b ; jmp 0xfffbea6b
+
+loc_fffbea51: ; not directly referenced
+movzx esi, word [ebp - 0x6b64]
+mov dword [ebp - 0x6b6c], 0
+imul ecx, esi, 0x18
+mov dword [ebp - 0x6bb0], ecx
+
+loc_fffbea6b: ; not directly referenced
+mov al, byte [ebp - 0x6b54]
+add eax, dword [ebp - 0x6b6c]
+cmp byte [ebp - 0x6b58], al
+jge loc_fffbe944 ; jge 0xfffbe944
+inc word [ebp - 0x6b64]
+jmp short loc_fffbea95 ; jmp 0xfffbea95
+
+loc_fffbea8c: ; not directly referenced
+mov word [ebp - 0x6b64], 0
+
+loc_fffbea95: ; not directly referenced
+mov bx, word [ebp - 0x6ba2]
+cmp word [ebp - 0x6b64], bx
+jb short loc_fffbea51 ; jb 0xfffbea51
+cmp byte [ebp - 0x6ba4], 2
+mov esi, 1
+jbe short loc_fffbeb0c ; jbe 0xfffbeb0c
+cmp byte [ebp - 0x6b50], 6
+je short loc_fffbeb07 ; je 0xfffbeb07
+cmp byte [ebp - 0x6b50], 5
+jne short loc_fffbeaf0 ; jne 0xfffbeaf0
+mov ecx, dword [ebp - 0x6b74]
+xor edx, edx
+lea eax, [ebp - 0x6aec]
+call fcn_fffc9ae0 ; call 0xfffc9ae0
+mov ecx, dword [ebp - 0x6b74]
+mov edx, 1
+lea eax, [ebp - 0x6aec]
+call fcn_fffc9ae0 ; call 0xfffc9ae0
+jmp short loc_fffbeb0c ; jmp 0xfffbeb0c
+
+loc_fffbeaf0: ; not directly referenced
+mov esi, 7
+cmp byte [ebp - 0x6b68], 7
+mov bl, byte [ebp - 0x6b94]
+cmovl esi, ebx
+jmp short loc_fffbeb0c ; jmp 0xfffbeb0c
+
+loc_fffbeb07: ; not directly referenced
+mov esi, 3
+
+loc_fffbeb0c: ; not directly referenced
+movsx eax, byte [ebp - 0x6b5c]
+xor ebx, ebx
+movzx edx, byte [ebp - 0x6b50]
+mov dword [ebp - 0x6b64], eax
+mov dword [ebp - 0x6b6c], edx
+jmp near loc_fffbec57 ; jmp 0xfffbec57
+
+loc_fffbeb2d: ; not directly referenced
+sub esp, 0xc
+mov al, byte [ebp - 0x6b54]
+push 0
+add eax, ebx
+xor ecx, ecx
+push dword [ebp - 0x6b64]
+movsx eax, al
+mov edx, edi
+push eax
+push dword [ebp - 0x6b6c]
+push dword [ebp - 0x6b48]
+mov eax, dword [ebp - 0x6b4c]
+call fcn_fffb67ea ; call 0xfffb67ea
+add esp, 0x20
+cmp byte [ebp - 0x6b50], 0
+sete cl
+cmp byte [ebp - 0x6b50], 9
+sete dl
+mov word [ebp + ebx*2 - 0x6b1c], ax
+or cl, dl
+jne short loc_fffbeb97 ; jne 0xfffbeb97
+cmp byte [ebp - 0x6b50], 1
+je short loc_fffbeb97 ; je 0xfffbeb97
+mov ecx, dword [ebp - 0x6b8c]
+mov word [ecx + ebx*2], ax
+jmp short loc_fffbebac ; jmp 0xfffbebac
+
+loc_fffbeb97: ; not directly referenced
+movzx ecx, ax
+mov eax, 0x232
+cdq
+idiv ecx
+mov edx, dword [ebp - 0x6b8c]
+mov word [edx + ebx*2], ax
+
+loc_fffbebac: ; not directly referenced
+cmp byte [ebp - 0x6b50], 4
+jne loc_fffbec56 ; jne 0xfffbec56
+mov ecx, dword [ebp - 0x6b60]
+cmp dword [ecx + 0xf5], 1
+jne loc_fffbec56 ; jne 0xfffbec56
+movzx edx, byte [ecx + 0x114f]
+xor eax, eax
+
+loc_fffbebd5: ; not directly referenced
+bt edx, eax
+jb short loc_fffbebe2 ; jb 0xfffbebe2
+inc eax
+cmp eax, 4
+jne short loc_fffbebd5 ; jne 0xfffbebd5
+jmp short loc_fffbebe8 ; jmp 0xfffbebe8
+
+loc_fffbebe2: ; not directly referenced
+mov byte [ebp - 0x6b88], al
+
+loc_fffbebe8: ; not directly referenced
+mov eax, dword [ebp - 0x6b4c]
+cmp dword [eax + 0x1749], 2
+jne short loc_fffbec05 ; jne 0xfffbec05
+
+loc_fffbebf7: ; not directly referenced
+mov edx, dword [ebp - 0x6b8c]
+mov word [edx + ebx*2], 1
+jmp short loc_fffbec56 ; jmp 0xfffbec56
+
+loc_fffbec05: ; not directly referenced
+mov al, byte [ebp - 0x6b88]
+mov dl, byte [ebp - 0x6b88]
+shr al, 1
+and edx, 1
+movzx eax, al
+mov ecx, dword [ebp - 0x6b60]
+imul edx, edx, 0xa
+imul eax, eax, 0xfb
+add eax, edx
+mov ax, word [ecx + eax + 0x123a]
+mov ecx, eax
+mov edx, eax
+shr cx, 9
+shr dx, 6
+and ecx, 1
+shl ecx, 2
+and edx, 1
+shr ax, 2
+add edx, edx
+or edx, ecx
+and eax, 1
+or dl, al
+je short loc_fffbebf7 ; je 0xfffbebf7
+
+loc_fffbec56: ; not directly referenced
+inc ebx
+
+loc_fffbec57: ; not directly referenced
+cmp byte [ebp - 0x6b68], bl
+jg loc_fffbeb2d ; jg 0xfffbeb2d
+push 1
+movzx eax, byte [ebp - 0x6ba3]
+lea ebx, [ebp - 0x6aec]
+push eax
+push dword [ebp + 0x18]
+push dword [ebp + 0x10]
+push dword [ebp - 0x6b74]
+movzx ecx, byte [ebp + edi - 0x6b37]
+mov edx, edi
+push 0x18
+mov eax, dword [ebp - 0x6b4c]
+and esi, 0xff
+push ebx
+push 0
+call fcn_fffc0642 ; call 0xfffc0642
+imul edx, dword [ebp - 0x6b48], 0x462
+imul eax, edi, 0x2772
+add esp, 0x1c
+add eax, edx
+mov ecx, ebx
+lea edx, [ebp + eax - 0x4efc]
+movsx eax, byte [ebp - 0x6b76]
+push eax
+push dword [ebp + 0x1c]
+movsx eax, byte [ebp - 0x6b68]
+push 0
+push esi
+push dword [ebp + 0x18]
+push eax
+mov eax, dword [ebp - 0x6b4c]
+push 0x18
+call fcn_fffbfa8e ; call 0xfffbfa8e
+mov esi, dword [ebp - 0x6b70]
+add esp, 0x20
+movsx bx, byte [esi + 2]
+xor edx, edx
+add bx, word [esi]
+cmp byte [ebp - 0x6b50], 7
+jne short loc_fffbed14 ; jne 0xfffbed14
+mov esi, dword [ebp - 0x6b60]
+mov eax, 0x20
+cmp dword [esi + 0xf5], 2
+cmove edx, eax
+
+loc_fffbed14: ; not directly referenced
+movsx ax, byte [ebp - 0x6b54]
+sub eax, edx
+mov edx, edi
+push 1
+movzx ecx, byte [ebp + edi - 0x6b37]
+add ebx, eax
+movsx eax, bx
+push eax
+movzx eax, byte [ebp - 0x6b50]
+push eax
+push dword [ebp - 0x6b48]
+mov eax, dword [ebp - 0x6b4c]
+call fcn_fffb498e ; call 0xfffb498e
+mov esi, dword [ebp - 0x6b48]
+mov eax, dword [ebp - 0x6b90]
+add dword [ebp - 0x6b70], 0x462
+add esp, 0x10
+mov word [eax + esi*2], bx
+inc esi
+mov dword [ebp - 0x6b48], esi
+
+loc_fffbed6d: ; not directly referenced
+mov dl, byte [ebp - 0x6b48]
+cmp byte [ebp - 0x6b75], dl
+ja loc_fffbea8c ; ja 0xfffbea8c
+
+loc_fffbed7f: ; not directly referenced
+inc edi
+add dword [ebp - 0x6b90], 0x12
+cmp edi, 2
+jne loc_fffbe8f1 ; jne 0xfffbe8f1
+cmp dword [ebp - 0x6bac], 0
+je short loc_fffbedb4 ; je 0xfffbedb4
+mov ecx, dword [ebp - 0x6b4c]
+mov edx, dword [ecx + 0x103f]
+mov eax, dword [ecx + 0x1762]
+or eax, 0x20
+mov dword [edx + 0x2008], eax
+
+loc_fffbedb4: ; not directly referenced
+mov esi, dword [ebp - 0x6b4c]
+xor edi, edi
+movsx ebx, byte [ebp - 0x6b54]
+add esi, 0x1774
+mov dword [ebp - 0x6b48], ebx
+mov dword [ebp - 0x6b58], esi
+jmp near loc_fffbeec4 ; jmp 0xfffbeec4
+
+loc_fffbedda: ; not directly referenced
+imul eax, edi, 0x1b0
+mov ecx, dword [ebp - 0x6b98]
+xor edx, edx
+mov dword [ebp - 0x6b54], eax
+
+loc_fffbedee: ; not directly referenced
+mov ebx, dword [ebp - 0x6b9c]
+bt ebx, edx
+jb short loc_fffbee07 ; jb 0xfffbee07
+
+loc_fffbedf9: ; not directly referenced
+inc edx
+add ecx, 0x12
+cmp edx, 2
+jne short loc_fffbedee ; jne 0xfffbedee
+jmp near loc_fffbeea3 ; jmp 0xfffbeea3
+
+loc_fffbee07: ; not directly referenced
+mov esi, dword [ebp + 0x10]
+xor eax, eax
+movzx ebx, byte [esi + edi]
+cmp bl, 0x21
+ja short loc_fffbee1c ; ja 0xfffbee1c
+movzx eax, byte [ebx + ref_fffcc308] ; movzx eax, byte [ebx - 0x33cf8]
+
+loc_fffbee1c: ; not directly referenced
+imul eax, eax, 0x240
+imul esi, edx, 0x48
+lea ebx, [esi + eax]
+xor eax, eax
+add ebx, dword [ebp - 0x6b58]
+jmp short loc_fffbee96 ; jmp 0xfffbee96
+
+loc_fffbee32: ; not directly referenced
+movsx esi, word [ecx + eax*2]
+sub esi, dword [ebp - 0x6b48]
+imul esi, esi, 0x12
+add esi, dword [ebp - 0x6b54]
+mov dword [ebp - 0x6b5c], esi
+lea esi, [edx + edx*8]
+mov dword [ebp - 0x6b50], esi
+mov esi, dword [ebp - 0x6b5c]
+add esi, dword [ebp - 0x6b50]
+add esi, eax
+movzx esi, word [ebp + esi*4 - 0x69fc]
+mov dword [ebx], esi
+movsx esi, word [ecx + eax*2]
+sub esi, dword [ebp - 0x6b48]
+imul esi, esi, 0x12
+add esi, dword [ebp - 0x6b54]
+add esi, dword [ebp - 0x6b50]
+add esi, eax
+inc eax
+movzx esi, word [ebp + esi*4 - 0x69fa]
+mov dword [ebx + 4], esi
+add ebx, 8
+
+loc_fffbee96: ; not directly referenced
+cmp byte [ebp - 0x6b75], al
+ja short loc_fffbee32 ; ja 0xfffbee32
+jmp near loc_fffbedf9 ; jmp 0xfffbedf9
+
+loc_fffbeea3: ; not directly referenced
+mov ebx, dword [ebp + 0x10]
+sub esp, 0xc
+mov edx, dword [ebp - 0x6b58]
+mov eax, dword [ebp - 0x6b4c]
+movzx ecx, byte [ebx + edi]
+inc edi
+push 0
+call fcn_fffb0b1b ; call 0xfffb0b1b
+add esp, 0x10
+
+loc_fffbeec4: ; not directly referenced
+cmp word [ebp - 0x6ba2], di
+ja loc_fffbedda ; ja 0xfffbedda
+mov edx, dword [ebp - 0x6b98]
+mov eax, dword [ebp - 0x6b4c]
+add eax, 0x1774
+xor esi, esi
+mov dword [ebp - 0x6b48], eax
+mov byte [edx + 0x3c], 4
+jmp near loc_fffbefe3 ; jmp 0xfffbefe3
+
+loc_fffbeef3: ; not directly referenced
+mov ebx, dword [ebp + 0x10]
+xor eax, eax
+movzx edx, byte [ebx + esi]
+cmp dl, 0x21
+ja short loc_fffbef08 ; ja 0xfffbef08
+movzx eax, byte [edx + ref_fffcc308] ; movzx eax, byte [edx - 0x33cf8]
+
+loc_fffbef08: ; not directly referenced
+imul eax, eax, 0x240
+mov edx, dword [ebp - 0x6b48]
+add edx, eax
+xor ebx, ebx
+mov dword [ebp - 0x6b50], edx
+mov edx, dword [ebp - 0x6b98]
+mov dword [ebp - 0x6b88], eax
+lea ecx, [edx + esi*2]
+lea edi, [edx + esi*4 + 0x24]
+mov dword [ebp - 0x6b58], ecx
+
+loc_fffbef37: ; not directly referenced
+mov eax, dword [ebp - 0x6b9c]
+bt eax, ebx
+jae loc_fffbefce ; jae 0xfffbefce
+imul edx, ebx, 0x48
+mov byte [ebp - 0x6b68], 0
+add edx, dword [ebp - 0x6b88]
+add edx, dword [ebp - 0x6b48]
+jmp short loc_fffbefb0 ; jmp 0xfffbefb0
+
+loc_fffbef5e: ; not directly referenced
+cmp byte [ebp - 0x6b68], 0
+jne short loc_fffbef7a ; jne 0xfffbef7a
+mov ecx, dword [ebp - 0x6b50]
+mov eax, dword [ebp - 0x6b50]
+mov ecx, dword [ecx]
+add ecx, dword [eax + 4]
+jmp short loc_fffbefa4 ; jmp 0xfffbefa4
+
+loc_fffbef7a: ; not directly referenced
+movzx eax, word [edi]
+mov ecx, dword [edx]
+mov dword [ebp - 0x6b64], ecx
+mov dword [ebp - 0x6b5c], eax
+mov ecx, dword [edx + 4]
+mov eax, dword [ebp - 0x6b64]
+add eax, ecx
+cmp dword [ebp - 0x6b5c], eax
+jbe short loc_fffbefa7 ; jbe 0xfffbefa7
+add ecx, dword [ebp - 0x6b64]
+
+loc_fffbefa4: ; not directly referenced
+mov word [edi], cx
+
+loc_fffbefa7: ; not directly referenced
+inc byte [ebp - 0x6b68]
+add edx, 8
+
+loc_fffbefb0: ; not directly referenced
+mov cl, byte [ebp - 0x6b75]
+cmp byte [ebp - 0x6b68], cl
+jne short loc_fffbef5e ; jne 0xfffbef5e
+mov edx, dword [ebp + 0x10]
+mov ecx, dword [ebp - 0x6b58]
+mov al, byte [edx + esi]
+mov byte [ecx + ebx + 0x34], al
+
+loc_fffbefce: ; not directly referenced
+inc ebx
+add dword [ebp - 0x6b50], 0x48
+add edi, 2
+cmp ebx, 2
+jne loc_fffbef37 ; jne 0xfffbef37
+inc esi
+
+loc_fffbefe3: ; not directly referenced
+cmp word [ebp - 0x6ba2], si
+ja loc_fffbeef3 ; ja 0xfffbeef3
+mov eax, dword [ebp - 0x6b4c]
+mov byte [eax + 0x1741], 0
+
+loc_fffbeffd: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbf005: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x4fa]
+mov esi, ref_fffcbe5c ; mov esi, 0xfffcbe5c
+push ebx
+lea esp, [esp - 0x54c]
+mov byte [ebp - 0x520], cl
+mov cl, byte [ebp + 0x18]
+mov dword [ebp - 0x52c], eax
+mov byte [ebp - 0x538], cl
+mov ecx, 0xa
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov al, byte [ebp + 8]
+mov dword [ebp - 0x524], edx
+mov byte [ebp - 0x530], al
+mov dl, byte [ebp + 0xc]
+mov al, byte [ebp + 0x20]
+mov byte [ebp - 0x534], dl
+mov byte [ebp - 0x53d], al
+mov cl, 0xff
+mov edx, 0x4d8
+lea eax, [ebp - 0x4f0]
+mov ebx, dword [ebp + 0x10]
+mov byte [ebp - 0x507], 4
+mov byte [ebp - 0x506], 1
+mov byte [ebp - 0x505], 5
+mov byte [ebp - 0x504], 2
+mov byte [ebp - 0x50b], 4
+mov byte [ebp - 0x50a], 1
+mov byte [ebp - 0x509], 5
+mov byte [ebp - 0x508], 2
+mov byte [ebp - 0x4ff], 1
+mov byte [ebp - 0x4fe], 2
+mov byte [ebp - 0x4fd], 0
+mov byte [ebp - 0x4fc], 0
+mov byte [ebp - 0x4fb], 0
+mov dword [ebp - 0x503], 0
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0xff
+mov edx, 0x53e
+mov eax, dword [ebp - 0x524]
+call fcn_fffa119f ; call 0xfffa119f
+mov eax, dword [ebp - 0x52c]
+mov dl, byte [ebp - 0x520]
+mov byte [ebp - 0x50d], 0
+and dl, byte [eax + 0x176b]
+mov cl, byte [eax + 0x176a]
+xor eax, eax
+and byte [ebp - 0x530], cl
+movzx ecx, dl
+and dl, 1
+je short loc_fffbf135 ; je 0xfffbf135
+mov esi, dword [ebp - 0x52c]
+mov al, byte [ebp - 0x530]
+and al, byte [esi + 0x3acb]
+test al, al
+mov byte [ebp - 0x50d], al
+setne al
+
+loc_fffbf135: ; not directly referenced
+and cl, 2
+mov byte [ebp - 0x50c], 0
+je short loc_fffbf163 ; je 0xfffbf163
+mov ecx, dword [ebp - 0x52c]
+mov dl, byte [ebp - 0x530]
+and dl, byte [ecx + 0x4e12]
+mov cl, al
+or ecx, 2
+test dl, dl
+mov byte [ebp - 0x50c], dl
+cmovne eax, ecx
+
+loc_fffbf163: ; not directly referenced
+mov esi, dword [ebp - 0x524]
+mov ecx, dword [ebp + 0x14]
+movzx eax, al
+mov dl, byte [ebx]
+mov dword [ebp - 0x528], eax
+mov byte [esi], dl
+mov dl, byte [ecx]
+mov byte [esi + 4], dl
+mov dl, byte [ebx + 1]
+mov byte [esi + 1], dl
+mov dl, byte [ecx + 1]
+mov byte [esi + 5], dl
+mov dl, byte [ebx + 2]
+mov byte [esi + 2], dl
+mov dl, byte [ecx + 2]
+mov byte [esi + 6], dl
+mov dl, byte [ebx + 3]
+mov byte [esi + 3], dl
+mov bl, byte [ebp - 0x538]
+mov dl, byte [ecx + 3]
+mov byte [esi + 8], bl
+mov byte [esi + 7], dl
+mov ecx, esi
+push eax
+mov edx, dword [ebp - 0x528]
+push eax
+movzx eax, byte [ebp - 0x534]
+push 1
+push eax
+mov eax, dword [ebp - 0x52c]
+call fcn_fffc03b8 ; call 0xfffc03b8
+add esp, 0x10
+cmp dword [ebp + 0x24], 0
+je short loc_fffbf21d ; je 0xfffbf21d
+push esi
+mov ebx, dword [ebp - 0x52c]
+mov ecx, dword [ebp - 0x528]
+push 0
+add ebx, 0x1774
+mov eax, dword [ebp - 0x52c]
+push 0
+mov edx, ebx
+push 0
+call fcn_fffc32d9 ; call 0xfffc32d9
+pop edi
+pop eax
+mov ecx, dword [ebp - 0x528]
+mov edx, ebx
+push 0
+mov eax, dword [ebp - 0x52c]
+push 0xf
+push 0
+push 0
+push 0
+push 1
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+
+loc_fffbf21d: ; not directly referenced
+cmp dword [ebp + 0x28], 0
+je short loc_fffbf25f ; je 0xfffbf25f
+sub esp, 0xc
+push dword [ebp - 0x52c]
+call fcn_fffbb819 ; call 0xfffbb819
+pop edx
+pop ecx
+mov edx, dword [ebp - 0x52c]
+mov ecx, dword [ebp - 0x528]
+push 0
+add edx, 0x1774
+mov eax, dword [ebp - 0x52c]
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+
+loc_fffbf25f: ; not directly referenced
+mov edx, dword [ebp - 0x524]
+mov bl, byte [ebp - 0x53d]
+lea esi, [ebp - 0x4f0]
+mov dword [ebp - 0x538], edx
+mov dword [ebp - 0x53c], edx
+mov byte [ebp - 0x520], 0
+lea edi, [ebp - 0x507]
+xor eax, eax
+mov byte [edx + 0x529], bl
+mov ebx, dword [ebp + 0x1c]
+mov dword [ebp - 0x534], ebx
+mov dword [ebp - 0x51c], esi
+movzx ebx, byte [ebp - 0x530]
+mov dword [ebp - 0x530], ebx
+jmp near loc_fffbf721 ; jmp 0xfffbf721
+
+loc_fffbf2b3: ; not directly referenced
+mov ebx, dword [ebp - 0x534]
+mov dl, byte [ebx]
+mov ebx, dword [ebp - 0x53c]
+mov byte [ebx + 0x524], dl
+mov ebx, dword [ebp - 0x534]
+cmp byte [ebx], 6
+ja loc_fffbf67c ; ja 0xfffbf67c
+movzx edx, byte [ebx]
+jmp dword [edx*4 + ref_fffcbe68] ; ujmp: jmp dword [edx*4 - 0x34198]
+
+loc_fffbf2e0: ; not directly referenced
+push eax
+lea eax, [ebp - 0x4fa]
+lea ebx, [ebp - 0x509]
+push 1
+lea esi, [ebp - 0x3f8]
+mov ecx, dword [ebp - 0x528]
+push 0
+mov edx, esi
+push 0xf
+push 0xc
+push 0xfffffffffffffff5
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+mov eax, dword [ebp - 0x52c]
+push 2
+push ebx
+push 0
+push dword [ebp - 0x530]
+call fcn_fffbe238 ; call 0xfffbe238
+mov edi, dword [ebp - 0x524]
+mov ecx, 0x3e
+add edi, 0x13f
+add esp, 0x30
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov byte [ebp - 0x520], 2
+mov edi, ebx
+mov eax, 1
+jmp near loc_fffbf67c ; jmp 0xfffbf67c
+
+loc_fffbf34c: ; not directly referenced
+push eax
+lea eax, [ebp - 0x4fa]
+lea ebx, [ebp - 0x50b]
+push 0
+lea esi, [ebp - 0x110]
+mov ecx, dword [ebp - 0x528]
+push 9
+mov edx, esi
+push 0xf
+push 6
+push 0xfffffffffffffff6
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+mov eax, dword [ebp - 0x52c]
+push 2
+push ebx
+push 1
+push dword [ebp - 0x530]
+call fcn_fffbe238 ; call 0xfffbe238
+mov edi, dword [ebp - 0x524]
+mov ecx, 0x3e
+add edi, 0x427
+add esp, 0x30
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov byte [ebp - 0x520], 2
+mov edi, ebx
+mov eax, 4
+jmp near loc_fffbf67c ; jmp 0xfffbf67c
+
+loc_fffbf3b8: ; not directly referenced
+lea ebx, [ebp - 0x1de]
+mov dword [ebp - 0x520], 0
+
+loc_fffbf3c8: ; not directly referenced
+mov esi, dword [ebp - 0x530]
+mov ecx, dword [ebp - 0x520]
+bt esi, ecx
+jae loc_fffbf4bc ; jae 0xfffbf4bc
+push eax
+lea eax, [ebp - 0x4fa]
+push 2
+imul esi, ecx, 0x3e
+mov cl, byte [ebp - 0x520]
+push 0
+push 0xf
+push 0xb
+lea edx, [ebp + esi - 0x208]
+push 0
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+lea eax, [ebp - 0x509]
+push 2
+push eax
+mov eax, 1
+push 4
+shl eax, cl
+mov ecx, dword [ebp - 0x528]
+and eax, 0xff
+push eax
+mov eax, dword [ebp - 0x52c]
+call fcn_fffbe238 ; call 0xfffbe238
+mov edx, dword [ebp - 0x524]
+mov ecx, 0x3e
+add esp, 0x30
+lea edi, [edx + esi + 0x32f]
+lea esi, [ebx - 0x2a]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+movzx eax, byte [ebp - 0x50d]
+mov ecx, dword [ebp - 0x520]
+bt eax, ecx
+jae short loc_fffbf483 ; jae 0xfffbf483
+mov ax, word [ebx - 6]
+cmp ax, word [ebp - 0x1e4]
+jae short loc_fffbf46f ; jae 0xfffbf46f
+mov word [ebp - 0x1e4], ax
+
+loc_fffbf46f: ; not directly referenced
+mov ax, word [ebx - 2]
+cmp ax, word [ebp - 0x1e0]
+jae short loc_fffbf483 ; jae 0xfffbf483
+mov word [ebp - 0x1e0], ax
+
+loc_fffbf483: ; not directly referenced
+movzx eax, byte [ebp - 0x50c]
+mov ecx, dword [ebp - 0x520]
+bt eax, ecx
+jae short loc_fffbf4bc ; jae 0xfffbf4bc
+mov ax, word [ebx - 4]
+cmp ax, word [ebp - 0x1e2]
+jae short loc_fffbf4a9 ; jae 0xfffbf4a9
+mov word [ebp - 0x1e2], ax
+
+loc_fffbf4a9: ; not directly referenced
+mov ax, word [ebx]
+cmp ax, word [ebp - 0x1de]
+jae short loc_fffbf4bc ; jae 0xfffbf4bc
+mov word [ebp - 0x1de], ax
+
+loc_fffbf4bc: ; not directly referenced
+inc dword [ebp - 0x520]
+add ebx, 0x3e
+cmp dword [ebp - 0x520], 4
+jne loc_fffbf3c8 ; jne 0xfffbf3c8
+mov byte [ebp - 0x520], 2
+lea edi, [ebp - 0x509]
+mov eax, 3
+jmp near loc_fffbf67c ; jmp 0xfffbf67c
+
+loc_fffbf4e9: ; not directly referenced
+lea ebx, [ebp - 0x2d6]
+mov dword [ebp - 0x520], 0
+
+loc_fffbf4f9: ; not directly referenced
+mov esi, dword [ebp - 0x530]
+mov ecx, dword [ebp - 0x520]
+bt esi, ecx
+jae loc_fffbf5ed ; jae 0xfffbf5ed
+push eax
+lea eax, [ebp - 0x4fa]
+push 0
+imul esi, ecx, 0x3e
+mov cl, byte [ebp - 0x520]
+push 9
+push 0xf
+push 0xe
+lea edx, [ebp + esi - 0x300]
+push 0
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+lea eax, [ebp - 0x50b]
+push 2
+push eax
+mov eax, 1
+push 5
+shl eax, cl
+mov ecx, dword [ebp - 0x528]
+and eax, 0xff
+push eax
+mov eax, dword [ebp - 0x52c]
+call fcn_fffbe238 ; call 0xfffbe238
+mov edx, dword [ebp - 0x524]
+mov ecx, 0x3e
+add esp, 0x30
+lea edi, [edx + esi + 0x237]
+lea esi, [ebx - 0x2a]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+movzx eax, byte [ebp - 0x50d]
+mov ecx, dword [ebp - 0x520]
+bt eax, ecx
+jae short loc_fffbf5b4 ; jae 0xfffbf5b4
+mov ax, word [ebx - 6]
+cmp ax, word [ebp - 0x2dc]
+jae short loc_fffbf5a0 ; jae 0xfffbf5a0
+mov word [ebp - 0x2dc], ax
+
+loc_fffbf5a0: ; not directly referenced
+mov ax, word [ebx - 2]
+cmp ax, word [ebp - 0x2d8]
+jae short loc_fffbf5b4 ; jae 0xfffbf5b4
+mov word [ebp - 0x2d8], ax
+
+loc_fffbf5b4: ; not directly referenced
+movzx eax, byte [ebp - 0x50c]
+mov ecx, dword [ebp - 0x520]
+bt eax, ecx
+jae short loc_fffbf5ed ; jae 0xfffbf5ed
+mov ax, word [ebx - 4]
+cmp ax, word [ebp - 0x2da]
+jae short loc_fffbf5da ; jae 0xfffbf5da
+mov word [ebp - 0x2da], ax
+
+loc_fffbf5da: ; not directly referenced
+mov ax, word [ebx]
+cmp ax, word [ebp - 0x2d6]
+jae short loc_fffbf5ed ; jae 0xfffbf5ed
+mov word [ebp - 0x2d6], ax
+
+loc_fffbf5ed: ; not directly referenced
+inc dword [ebp - 0x520]
+add ebx, 0x3e
+cmp dword [ebp - 0x520], 4
+jne loc_fffbf4f9 ; jne 0xfffbf4f9
+mov byte [ebp - 0x520], 2
+lea edi, [ebp - 0x50b]
+mov eax, 2
+jmp short loc_fffbf67c ; jmp 0xfffbf67c
+
+loc_fffbf617: ; not directly referenced
+push eax
+lea eax, [ebp - 0x4fa]
+lea ebx, [ebp - 0x50b]
+push 0
+mov ecx, dword [ebp - 0x528]
+lea edx, [ebp - 0x4f0]
+push 9
+push 0xf
+push 7
+push 0
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+mov eax, dword [ebp - 0x52c]
+push 2
+push ebx
+push 6
+push dword [ebp - 0x530]
+call fcn_fffbe238 ; call 0xfffbe238
+mov edi, dword [ebp - 0x524]
+mov ecx, 0x3e
+add edi, 0x47
+mov esi, dword [ebp - 0x51c]
+add esp, 0x30
+mov byte [ebp - 0x520], 2
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+xor eax, eax
+mov edi, ebx
+
+loc_fffbf67c: ; not directly referenced
+imul ebx, eax, 0x7c
+mov dword [ebp - 0x550], 0
+mov dword [ebp - 0x544], ebx
+
+loc_fffbf68f: ; not directly referenced
+mov esi, dword [ebp - 0x550]
+cmp byte [ebp + esi - 0x50d], 0
+je short loc_fffbf6b8 ; je 0xfffbf6b8
+mov ecx, dword [ebp - 0x544]
+add ecx, esi
+lea ecx, [ebp + ecx*2 - 0x4f0]
+mov dword [ebp - 0x548], ecx
+xor ecx, ecx
+jmp short loc_fffbf70b ; jmp 0xfffbf70b
+
+loc_fffbf6b8: ; not directly referenced
+inc dword [ebp - 0x550]
+cmp dword [ebp - 0x550], 2
+jne short loc_fffbf68f ; jne 0xfffbf68f
+jmp short loc_fffbf715 ; jmp 0xfffbf715
+
+loc_fffbf6c9: ; not directly referenced
+mov bl, byte [edi + ecx]
+xor esi, esi
+cmp bl, 0x21
+ja short loc_fffbf6dd ; ja 0xfffbf6dd
+movzx esi, bl
+movzx esi, byte [esi + ref_fffcc308] ; movzx esi, byte [esi - 0x33cf8]
+
+loc_fffbf6dd: ; not directly referenced
+and esi, 0xff
+mov edx, dword [ebp - 0x550]
+mov byte [ebp + esi - 0x503], bl
+mov ebx, dword [ebp - 0x548]
+lea esi, [edx + esi*2 + 0x18]
+mov edx, dword [ebp - 0x524]
+mov bx, word [ebx + ecx*4 + 0x24]
+inc ecx
+mov word [edx + esi*2 + 3], bx
+
+loc_fffbf70b: ; not directly referenced
+cmp byte [ebp - 0x520], cl
+ja short loc_fffbf6c9 ; ja 0xfffbf6c9
+jmp short loc_fffbf6b8 ; jmp 0xfffbf6b8
+
+loc_fffbf715: ; not directly referenced
+inc dword [ebp - 0x534]
+inc dword [ebp - 0x53c]
+
+loc_fffbf721: ; not directly referenced
+mov dl, byte [ebp - 0x534]
+sub edx, dword [ebp + 0x1c]
+cmp dl, byte [ebp - 0x53d]
+jb loc_fffbf2b3 ; jb 0xfffbf2b3
+mov edx, dword [ebp - 0x524]
+lea ebx, [ebp - 0x503]
+lea esi, [ebp - 0x4ff]
+mov dword [ebp - 0x528], ebx
+mov dword [ebp - 0x51c], esi
+mov byte [ebp - 0x520], 0
+mov byte [edx + 0x51f], 0
+
+loc_fffbf762: ; not directly referenced
+mov esi, dword [ebp - 0x528]
+mov bl, byte [esi]
+test bl, bl
+je loc_fffbf806 ; je 0xfffbf806
+movzx esi, byte [ebp - 0x520]
+mov edx, dword [ebp - 0x524]
+mov byte [edx + esi + 0x520], bl
+inc byte [edx + 0x51f]
+cmp byte [ebp - 0x50d], 0
+je short loc_fffbf7c6 ; je 0xfffbf7c6
+mov ecx, dword [ebp - 0x538]
+mov eax, dword [ebp - 0x52c]
+movzx edx, bl
+mov di, word [ecx + 0x33]
+mov ecx, 1
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov edx, dword [ebp - 0x524]
+cmp di, ax
+cmova edi, eax
+mov word [edx + esi*4 + 0x52a], di
+
+loc_fffbf7c6: ; not directly referenced
+cmp byte [ebp - 0x50c], 0
+je short loc_fffbf800 ; je 0xfffbf800
+mov ecx, dword [ebp - 0x538]
+mov eax, dword [ebp - 0x52c]
+movzx edx, bl
+mov di, word [ecx + 0x35]
+mov ecx, 1
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov edx, dword [ebp - 0x524]
+cmp di, ax
+cmova edi, eax
+mov word [edx + esi*4 + 0x52c], di
+
+loc_fffbf800: ; not directly referenced
+inc byte [ebp - 0x520]
+
+loc_fffbf806: ; not directly referenced
+inc dword [ebp - 0x528]
+add dword [ebp - 0x538], 4
+mov ebx, dword [ebp - 0x51c]
+cmp dword [ebp - 0x528], ebx
+jne loc_fffbf762 ; jne 0xfffbf762
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbf82d: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+mov edx, 5
+push esi
+mov esi, ecx
+mov ecx, 1
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x5c]
+mov byte [ebp - 0x67], 5
+mov byte [ebp - 0x66], 2
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+mov word [ebp - 0x60], 0
+mov word [ebp - 0x5e], 0
+mov word [ebp - 0x5c], 0
+mov word [ebp - 0x5a], 0
+mov word [ebp - 0x58], 0
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp - 0x60], ax
+mov ecx, 1
+mov edx, 2
+mov eax, ebx
+call fcn_fffb2de8 ; call 0xfffb2de8
+mov word [ebp - 0x5e], ax
+lea edx, [ebp - 0x56]
+push eax
+mov eax, edi
+push 1
+movzx ecx, al
+lea eax, [ebp - 0x60]
+push 0
+push 0xf
+push 0xa
+push 0xfffffffffffffff3
+push eax
+lea eax, [ebp - 0x65]
+push eax
+lea eax, [ebp - 0x67]
+push 2
+push eax
+mov eax, ebx
+push 0
+push 0xf
+call fcn_fffbe238 ; call 0xfffbe238
+add esp, 0x30
+xor eax, eax
+cmp dword [ebp + 8], 0
+je short loc_fffbf900 ; je 0xfffbf900
+push eax
+and esi, 0xff
+lea edx, [ebx + 0x1774]
+push eax
+mov ecx, 3
+mov eax, ebx
+push 0
+push esi
+push 0
+push 0
+push 0
+push 2
+call fcn_fffb0d66 ; call 0xfffb0d66
+add esp, 0x20
+jmp short loc_fffbf900 ; jmp 0xfffbf900
+
+loc_fffbf900: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbf908:
+push ebp
+mov ebp, esp
+lea esp, [esp - 0x10]
+mov edx, dword [0xff7d7538]
+mov ecx, dword [edx]
+push eax
+push edx
+call dword [ecx + 0x28] ; ucall
+leave
+ret
+
+fcn_fffbf91e:
+push ebp
+mov ebp, esp
+lea esp, [esp - 0x10]
+mov edx, dword [0xff7d7538]
+mov ecx, dword [edx]
+push eax
+push edx
+call dword [ecx + 0x24] ; ucall
+leave
+ret
+
+fcn_fffbf934: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+cmp cl, 5
+mov dword [ebp - 0x1c], eax
+ja short loc_fffbf958 ; ja 0xfffbf958
+cmp cl, 4
+jae short loc_fffbf973 ; jae 0xfffbf973
+lea eax, [ecx - 1]
+cmp al, 1
+ja loc_fffbfa80 ; ja 0xfffbfa80
+jmp short loc_fffbf973 ; jmp 0xfffbf973
+
+loc_fffbf958: ; not directly referenced
+cmp cl, 0x10
+jb loc_fffbfa80 ; jb 0xfffbfa80
+cmp cl, 0x11
+jbe short loc_fffbf97a ; jbe 0xfffbf97a
+lea eax, [ecx - 0x20]
+cmp al, 1
+ja loc_fffbfa80 ; ja 0xfffbfa80
+jmp short loc_fffbf97a ; jmp 0xfffbf97a
+
+loc_fffbf973: ; not directly referenced
+mov eax, 0xa
+jmp short loc_fffbf97f ; jmp 0xfffbf97f
+
+loc_fffbf97a: ; not directly referenced
+mov eax, 7
+
+loc_fffbf97f: ; not directly referenced
+xor ebx, ebx
+cmp cl, 0x21
+ja short loc_fffbf990 ; ja 0xfffbf990
+movzx ecx, cl
+movzx ebx, byte [ecx + ref_fffcc308] ; movzx ebx, byte [ecx - 0x33cf8]
+
+loc_fffbf990: ; not directly referenced
+imul ebx, ebx, 0x240
+mov edi, dword [ebp - 0x1c]
+add ebx, edx
+mov dword [ebp - 0x10], 0
+mov dword [ebp - 0x14], ebx
+mov esi, ebx
+mov dword [ebp - 0x20], eax
+
+loc_fffbf9aa: ; not directly referenced
+cmp dword [edi + 0x297c], 2
+jne loc_fffbfa66 ; jne 0xfffbfa66
+imul eax, dword [ebp - 0x10], 9
+imul ebx, dword [ebp - 0x10], 0x48
+mov dword [ebp - 0x18], eax
+add ebx, dword [ebp - 0x14]
+mov byte [ebp - 0x35], 0
+mov dword [ebp - 0x30], eax
+jmp short loc_fffbfa21 ; jmp 0xfffbfa21
+
+loc_fffbf9ce: ; not directly referenced
+mov edx, 1
+shl edx, cl
+and dl, byte [edi + 0x3acb]
+and dl, 0xf
+je short loc_fffbfa18 ; je 0xfffbfa18
+imul edx, ecx, 0x12
+mov eax, dword [ebp - 0x14]
+add edx, dword [ebp - 0x30]
+add edx, dword [ebp - 0x2c]
+lea eax, [eax + edx*8]
+mov dword [ebp - 0x24], eax
+imul edx, ecx, 0x90
+mov eax, dword [ebp - 0x28]
+mov eax, dword [eax + edx]
+cmp dword [ebx], eax
+mov dword [ebp - 0x34], eax
+jbe short loc_fffbfa07 ; jbe 0xfffbfa07
+mov dword [ebx], eax
+
+loc_fffbfa07: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+mov edx, dword [edx + 4]
+cmp dword [ebx + 4], edx
+mov dword [ebp - 0x24], edx
+jbe short loc_fffbfa18 ; jbe 0xfffbfa18
+mov dword [ebx + 4], edx
+
+loc_fffbfa18: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbf9ce ; jne 0xfffbf9ce
+inc byte [ebp - 0x35]
+
+loc_fffbfa21: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+mov al, byte [ebp - 0x35]
+cmp al, byte [edx + 0x1755]
+jae short loc_fffbfa47 ; jae 0xfffbfa47
+movzx edx, al
+mov eax, dword [ebp - 0x18]
+add eax, edx
+mov ecx, dword [ebp - 0x14]
+mov dword [ebp - 0x2c], edx
+lea ecx, [ecx + eax*8]
+mov dword [ebp - 0x28], ecx
+xor ecx, ecx
+jmp short loc_fffbf9ce ; jmp 0xfffbf9ce
+
+loc_fffbfa47: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov ecx, 0xa
+imul eax, dword [esi]
+xor edx, edx
+div ecx
+xor edx, edx
+mov dword [esi], eax
+mov eax, dword [ebp - 0x20]
+imul eax, dword [ebx + 4]
+div ecx
+mov dword [ebx + 4], eax
+
+loc_fffbfa66: ; not directly referenced
+inc dword [ebp - 0x10]
+add esi, 0x48
+add edi, 0x1347
+cmp dword [ebp - 0x10], 2
+jne loc_fffbf9aa ; jne 0xfffbf9aa
+xor eax, eax
+jmp short loc_fffbfa85 ; jmp 0xfffbfa85
+
+loc_fffbfa80: ; not directly referenced
+mov eax, 2
+
+loc_fffbfa85: ; not directly referenced
+lea esp, [esp + 0x2c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbfa8e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x39c]
+mov al, byte [ebp + 0xc]
+mov dword [ebp - 0x370], edx
+mov dword [ebp - 0x378], ecx
+mov dl, byte [ebp + 0x14]
+mov cl, byte [ebp + 0x18]
+mov byte [ebp - 0x371], al
+mov al, byte [ebp + 0x20]
+mov byte [ebp - 0x372], dl
+mov byte [ebp - 0x399], cl
+mov byte [ebp - 0x374], al
+mov ecx, 5
+mov edx, 1
+lea eax, [ebp - 0x34c]
+movzx ebx, byte [ebp + 8]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov ecx, 5
+mov edx, 1
+lea eax, [ebp - 0x338]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov ecx, 5
+or edx, 0xffffffff
+lea eax, [ebp - 0x324]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov ecx, 5
+xor edx, edx
+lea eax, [ebp - 0x310]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov ecx, 5
+xor edx, edx
+lea eax, [ebp - 0x2fc]
+call fcn_fffc83ab ; call 0xfffc83ab
+mov ecx, 5
+xor edx, edx
+lea eax, [ebp - 0x2e8]
+call fcn_fffc83ab ; call 0xfffc83ab
+xor ecx, ecx
+mov edx, 0x2bc
+lea eax, [ebp - 0x2d4]
+mov word [ebp - 0x356], 0
+mov word [ebp - 0x354], 0
+mov word [ebp - 0x352], 0
+mov word [ebp - 0x350], 0
+mov word [ebp - 0x34e], 0
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x462
+mov eax, dword [ebp - 0x370]
+call fcn_fffa119f ; call 0xfffa119f
+movsx ecx, byte [ebp - 0x371]
+mov dword [ebp - 0x398], ebx
+mov ebx, dword [ebp - 0x378]
+mov dl, byte [ebp - 0x372]
+shr dl, 1
+mov dword [ebp - 0x38c], ecx
+movzx esi, byte [ebp - 0x372]
+mov byte [ebp - 0x388], dl
+mov dword [ebp - 0x360], esi
+mov edx, dword [ebp - 0x370]
+neg esi
+lea ebx, [ebx + ecx*2]
+mov dword [ebp - 0x35c], edx
+mov dword [ebp - 0x394], ebx
+mov dword [ebp - 0x368], 0
+xor ebx, ebx
+mov byte [ebp - 0x373], 0
+mov dword [ebp - 0x3a0], esi
+
+loc_fffbfbf7: ; not directly referenced
+mov edi, dword [ebp + 0x1c]
+mov esi, dword [ebp + 0x10]
+movzx eax, byte [ebp - 0x372]
+imul ax, word [edi + ebx*2]
+movzx edx, byte [esi + ebx]
+imul ecx, ebx, 0x23
+imul eax, edx
+mov dword [ebp - 0x36c], 0
+movsx edi, byte [ebp - 0x371]
+mov word [ebp + ebx*2 - 0x356], ax
+mov dword [ebp - 0x390], edi
+mov dword [ebp - 0x3a8], ecx
+jmp near loc_fffbfd91 ; jmp 0xfffbfd91
+
+loc_fffbfc3d: ; not directly referenced
+mov esi, dword [ebp + 0x10]
+cmp byte [esi + ebx], 0
+jne short loc_fffbfc69 ; jne 0xfffbfc69
+mov edx, dword [ebp - 0x3a8]
+mov dword [ebp + ebx*4 - 0x324], 1
+add edx, eax
+mov dword [ebp + edx*4 - 0x2d4], 1
+jmp near loc_fffbfd67 ; jmp 0xfffbfd67
+
+loc_fffbfc69: ; not directly referenced
+cmp byte [ebp - 0x380], 1
+mov dl, byte [ebp - 0x380]
+adc byte [ebp - 0x373], 0
+sub edx, dword [ebp - 0x388]
+mov esi, edx
+mov edx, dword [ebp - 0x3a8]
+add edx, eax
+jmp short loc_fffbfce5 ; jmp 0xfffbfce5
+
+loc_fffbfc8f: ; not directly referenced
+mov ecx, esi
+test cl, cl
+jns short loc_fffbfc9d ; jns 0xfffbfc9d
+mov edi, dword [ebp - 0x368]
+jmp short loc_fffbfcd3 ; jmp 0xfffbfcd3
+
+loc_fffbfc9d: ; not directly referenced
+mov ecx, esi
+cmp cl, byte [ebp - 0x371]
+jl short loc_fffbfcba ; jl 0xfffbfcba
+mov edi, dword [ebp - 0x368]
+mov ecx, dword [ebp - 0x394]
+movzx edi, word [ecx + edi*2 - 2]
+jmp short loc_fffbfcdd ; jmp 0xfffbfcdd
+
+loc_fffbfcba: ; not directly referenced
+mov ecx, esi
+movsx edi, cl
+cmp eax, edi
+jne short loc_fffbfccd ; jne 0xfffbfccd
+mov edi, dword [ebp - 0x368]
+add edi, eax
+jmp short loc_fffbfcd3 ; jmp 0xfffbfcd3
+
+loc_fffbfccd: ; not directly referenced
+add edi, dword [ebp - 0x368]
+
+loc_fffbfcd3: ; not directly referenced
+mov ecx, dword [ebp - 0x378]
+movzx edi, word [ecx + edi*2]
+
+loc_fffbfcdd: ; not directly referenced
+add dword [ebp + edx*4 - 0x2d4], edi
+inc esi
+
+loc_fffbfce5: ; not directly referenced
+mov cl, byte [ebp - 0x388]
+sub ecx, dword [ebp - 0x380]
+mov edi, ecx
+add edi, esi
+mov ecx, edi
+cmp cl, byte [ebp - 0x372]
+jb short loc_fffbfc8f ; jb 0xfffbfc8f
+mov edx, dword [ebp - 0x3a8]
+add edx, eax
+mov edx, dword [ebp + edx*4 - 0x2d4]
+cmp dword [ebp + ebx*4 - 0x34c], edx
+jae short loc_fffbfd1e ; jae 0xfffbfd1e
+mov dword [ebp + ebx*4 - 0x34c], edx
+
+loc_fffbfd1e: ; not directly referenced
+cmp dword [ebp + ebx*4 - 0x324], edx
+jbe short loc_fffbfd3d ; jbe 0xfffbfd3d
+mov esi, dword [ebp - 0x3a8]
+add esi, eax
+mov esi, dword [ebp + esi*4 - 0x2d4]
+mov dword [ebp + ebx*4 - 0x324], esi
+
+loc_fffbfd3d: ; not directly referenced
+movzx esi, byte [ebp - 0x36c]
+mov ecx, dword [ebp - 0x378]
+add esi, dword [ebp - 0x368]
+movzx esi, word [ecx + esi*2]
+imul esi, dword [ebp - 0x3a0]
+add edx, esi
+imul edx, edx
+add dword [ebp + ebx*4 - 0x2fc], edx
+
+loc_fffbfd67: ; not directly referenced
+mov esi, dword [ebp - 0x3a8]
+xor edx, edx
+add esi, eax
+inc dword [ebp - 0x36c]
+mov eax, dword [ebp + esi*4 - 0x2d4]
+div dword [ebp - 0x360]
+mov edx, dword [ebp - 0x370]
+mov dword [edx + esi*4 + 0x1a6], eax
+
+loc_fffbfd91: ; not directly referenced
+mov cl, byte [ebp - 0x36c]
+movzx eax, byte [ebp - 0x36c]
+cmp eax, dword [ebp - 0x390]
+mov byte [ebp - 0x380], cl
+jl loc_fffbfc3d ; jl 0xfffbfc3d
+mov ecx, dword [ebp + 0x10]
+mov cl, byte [ecx + ebx]
+test cl, cl
+mov byte [ebp - 0x380], cl
+je loc_fffbff36 ; je 0xfffbff36
+mov edx, dword [ebp + ebx*4 - 0x34c]
+mov ecx, dword [ebp + ebx*4 - 0x324]
+mov eax, edx
+sub eax, ecx
+add ecx, edx
+imul eax, eax, 0x4e20
+xor edx, edx
+div ecx
+xor edx, edx
+mov dword [ebp - 0x36c], eax
+mov dword [ebp + ebx*4 - 0x310], eax
+mov eax, dword [ebp + ebx*4 - 0x2fc]
+div dword [ebp - 0x38c]
+test eax, eax
+jne short loc_fffbfe0f ; jne 0xfffbfe0f
+mov dword [ebp + ebx*4 - 0x2fc], 0
+jmp short loc_fffbfe7e ; jmp 0xfffbfe7e
+
+loc_fffbfe0f: ; not directly referenced
+imul eax, eax, 0x64
+xor esi, esi
+call fcn_fffb2140 ; call 0xfffb2140
+mov ecx, eax
+mov eax, 1
+shr ecx, 1
+jmp short loc_fffbfe48 ; jmp 0xfffbfe48
+
+loc_fffbfe24: ; not directly referenced
+imul eax, eax, 0xa9e
+xor edx, edx
+mov edi, 0xa
+sub ecx, 0x64
+div edi
+test esi, esi
+je short loc_fffbfe43 ; je 0xfffbfe43
+mov esi, 0x64
+xor edx, edx
+div esi
+
+loc_fffbfe43: ; not directly referenced
+mov esi, 1
+
+loc_fffbfe48: ; not directly referenced
+cmp ecx, 0x64
+ja short loc_fffbfe24 ; ja 0xfffbfe24
+lea edx, [ecx*8 + 0x384]
+imul edx, ecx
+mov ecx, 0x3e8
+add edx, 0x18a88
+imul edx, eax
+mov eax, edx
+xor edx, edx
+div ecx
+test esi, esi
+je short loc_fffbfe77 ; je 0xfffbfe77
+mov cx, 0x64
+xor edx, edx
+div ecx
+
+loc_fffbfe77: ; not directly referenced
+mov dword [ebp + ebx*4 - 0x2fc], eax
+
+loc_fffbfe7e: ; not directly referenced
+imul eax, dword [ebp + ebx*4 - 0x2fc], 0xc8
+mov ecx, dword [ebp + ebx*4 - 0x34c]
+mov edi, dword [ebp + ebx*4 - 0x324]
+xor edx, edx
+lea esi, [edi + ecx]
+div esi
+mov esi, eax
+mov dword [ebp + ebx*4 - 0x2fc], eax
+imul eax, dword [ebp - 0x36c], 0x3e8
+test esi, esi
+jne short loc_fffbfeb7 ; jne 0xfffbfeb7
+jmp short loc_fffbfebb ; jmp 0xfffbfebb
+
+loc_fffbfeb7: ; not directly referenced
+xor edx, edx
+div esi
+
+loc_fffbfebb: ; not directly referenced
+mov dword [ebp + ebx*4 - 0x2e8], eax
+mov edx, dword [ebp - 0x370]
+mov al, byte [ebp - 0x380]
+mov dword [ebp + ebx*4 - 0x338], ecx
+mov byte [edx + ebx + 3], al
+mov eax, dword [ebp - 0x35c]
+mov edx, dword [ebp - 0x36c]
+mov dword [eax + 0x1c], esi
+mov esi, dword [ebp - 0x35c]
+mov dword [eax + 8], edx
+mov eax, dword [ebp + ebx*4 - 0x2e8]
+xor edx, edx
+mov dword [esi + 0x30], eax
+mov eax, ecx
+div dword [ebp - 0x360]
+xor edx, edx
+sub ecx, edi
+mov dword [esi + 0x44], eax
+mov eax, edi
+div dword [ebp - 0x360]
+mov edi, dword [ebp + 0x10]
+mov dword [esi + 0x58], eax
+movzx eax, cx
+movzx esi, byte [edi + ebx]
+cdq
+idiv dword [ebp - 0x360]
+cdq
+idiv esi
+mov edx, dword [ebp - 0x370]
+mov word [edx + ebx*2 + 0x6c], ax
+
+loc_fffbff36: ; not directly referenced
+inc ebx
+add dword [ebp - 0x35c], 4
+mov ecx, dword [ebp - 0x398]
+add dword [ebp - 0x368], ecx
+cmp ebx, 5
+jne loc_fffbfbf7 ; jne 0xfffbfbf7
+xor eax, eax
+jmp short loc_fffbff8d ; jmp 0xfffbff8d
+
+loc_fffbff57: ; not directly referenced
+lea esi, [ebp + ecx*4 - 0x338]
+lea ecx, [ebp + ecx*4 - 0x334]
+mov ebx, dword [esi]
+mov edi, dword [ecx]
+cmp ebx, edi
+jae short loc_fffbff71 ; jae 0xfffbff71
+mov dword [esi], edi
+mov dword [ecx], ebx
+
+loc_fffbff71: ; not directly referenced
+inc edx
+jmp short loc_fffbff81 ; jmp 0xfffbff81
+
+loc_fffbff74: ; not directly referenced
+not ecx
+xor edx, edx
+add ecx, 5
+mov dword [ebp - 0x35c], ecx
+
+loc_fffbff81: ; not directly referenced
+movzx ecx, dl
+cmp ecx, dword [ebp - 0x35c]
+jl short loc_fffbff57 ; jl 0xfffbff57
+inc eax
+
+loc_fffbff8d: ; not directly referenced
+movzx ecx, al
+cmp al, 4
+jne short loc_fffbff74 ; jne 0xfffbff74
+mov esi, dword [ebp - 0x328]
+xor edi, edi
+xor ebx, ebx
+
+loc_fffbff9e: ; not directly referenced
+cmp edi, 4
+je short loc_fffbffac ; je 0xfffbffac
+mov eax, dword [ebp + edi*4 - 0x338]
+jmp short loc_fffbffae ; jmp 0xfffbffae
+
+loc_fffbffac: ; not directly referenced
+mov eax, esi
+
+loc_fffbffae: ; not directly referenced
+call fcn_fffb21bf ; call 0xfffb21bf
+inc edi
+add ebx, eax
+cmp edi, 5
+jne short loc_fffbff9e ; jne 0xfffbff9e
+add ebx, 0xb
+cmp bl, 0x40
+ja short loc_fffbffdc ; ja 0xfffbffdc
+
+loc_fffbffc3: ; not directly referenced
+cmp byte [ebp - 0x399], 0
+mov byte [ebp - 0x372], 0
+je loc_fffc0075 ; je 0xfffc0075
+jmp near loc_fffc0099 ; jmp 0xfffc0099
+
+loc_fffbffdc: ; not directly referenced
+movzx ecx, byte [ebp - 0x373]
+movzx ebx, bl
+lea eax, [ecx + ebx - 0x41]
+cdq
+idiv ecx
+mov edx, 1
+xor ebx, ebx
+and eax, 0xff
+mov ecx, eax
+mov dword [ebp - 0x35c], eax
+dec ecx
+shl edx, cl
+movzx eax, dl
+
+loc_fffc0007: ; not directly referenced
+mov edx, dword [ebp + ebx*4 - 0x34c]
+mov cl, byte [ebp - 0x35c]
+add edx, eax
+imul esi, ebx, 0x23
+shr edx, cl
+mov dword [ebp - 0x368], esi
+mov dword [ebp + ebx*4 - 0x34c], edx
+movzx edx, word [ebp + ebx*2 - 0x356]
+add edx, eax
+sar edx, cl
+mov word [ebp + ebx*2 - 0x356], dx
+xor edx, edx
+jmp short loc_fffc005f ; jmp 0xfffc005f
+
+loc_fffc0040: ; not directly referenced
+add edi, dword [ebp - 0x368]
+mov cl, byte [ebp - 0x35c]
+inc edx
+mov esi, dword [ebp + edi*4 - 0x2d4]
+add esi, eax
+shr esi, cl
+mov dword [ebp + edi*4 - 0x2d4], esi
+
+loc_fffc005f: ; not directly referenced
+movzx edi, dl
+cmp edi, dword [ebp - 0x390]
+jl short loc_fffc0040 ; jl 0xfffc0040
+inc ebx
+cmp ebx, 5
+jne short loc_fffc0007 ; jne 0xfffc0007
+jmp near loc_fffbffc3 ; jmp 0xfffbffc3
+
+loc_fffc0075: ; not directly referenced
+mov ebx, dword [ebp - 0x360]
+cmp dword [ebp - 0x390], ebx
+jle short loc_fffc0099 ; jle 0xfffc0099
+cmp byte [ebp - 0x388], 0
+je short loc_fffc0099 ; je 0xfffc0099
+dec byte [ebp - 0x371]
+mov byte [ebp - 0x372], 1
+
+loc_fffc0099: ; not directly referenced
+mov cl, byte [ebp - 0x372]
+mov byte [ebp - 0x360], 0
+mov byte [ebp - 0x35c], cl
+mov dword [ebp - 0x368], 0xffffffff
+mov dword [ebp - 0x364], 0xffffffff
+xor esi, esi
+xor edi, edi
+jmp near loc_fffc0223 ; jmp 0xfffc0223
+
+loc_fffc00c9: ; not directly referenced
+mov bl, byte [ebp - 0x398]
+mov ecx, dword [ebp - 0x398]
+mov byte [ebp - 0x390], bl
+mov ebx, dword [ebp + 0x10]
+cmp byte [ebx + ecx], 0
+je loc_fffc0186 ; je 0xfffc0186
+imul eax, ecx, 0x8c
+mov ecx, dword [ebp - 0x38c]
+mov dword [ebp - 0x3a0], 0
+mov eax, dword [ecx + eax]
+cmp dword [ebp - 0x36c], eax
+mov dword [ebp - 0x378], eax
+cmovbe eax, dword [ebp - 0x36c]
+mov dword [ebp - 0x36c], eax
+xor edx, edx
+mov eax, 1
+
+loc_fffc0121: ; not directly referenced
+mov ecx, dword [ebp + 0x10]
+mov ebx, dword [ebp - 0x3a0]
+cmp byte [ecx + ebx], 0
+je short loc_fffc015a ; je 0xfffc015a
+cmp byte [ebp - 0x390], bl
+je short loc_fffc015a ; je 0xfffc015a
+mov ecx, dword [ebp + ebx*4 - 0x34c]
+xor ebx, ebx
+mov dword [ebp - 0x380], ecx
+mov dword [ebp - 0x37c], ebx
+mov ebx, dword [ebp - 0x380]
+imul ebx, edx
+mul ecx
+add edx, ebx
+
+loc_fffc015a: ; not directly referenced
+inc dword [ebp - 0x3a0]
+cmp dword [ebp - 0x3a0], 5
+jne short loc_fffc0121 ; jne 0xfffc0121
+mov ebx, dword [ebp - 0x378]
+imul ebx, edx
+mul dword [ebp - 0x378]
+add edx, ebx
+add dword [ebp - 0x388], eax
+adc dword [ebp - 0x384], edx
+
+loc_fffc0186: ; not directly referenced
+inc dword [ebp - 0x398]
+cmp dword [ebp - 0x398], 5
+jne loc_fffc00c9 ; jne 0xfffc00c9
+mov eax, 1
+xor edx, edx
+xor ecx, ecx
+jmp short loc_fffc01b6 ; jmp 0xfffc01b6
+
+loc_fffc01a4: ; not directly referenced
+mov ebx, dword [ebp - 0x36c]
+inc ecx
+imul ebx, edx
+mul dword [ebp - 0x36c]
+add edx, ebx
+
+loc_fffc01b6: ; not directly referenced
+cmp cl, byte [ebp - 0x373]
+jne short loc_fffc01a4 ; jne 0xfffc01a4
+add eax, dword [ebp - 0x388]
+adc edx, dword [ebp - 0x384]
+cmp dword [ebp - 0x364], edx
+jb short loc_fffc01e8 ; jb 0xfffc01e8
+ja short loc_fffc01dc ; ja 0xfffc01dc
+cmp dword [ebp - 0x368], eax
+jbe short loc_fffc01e8 ; jbe 0xfffc01e8
+
+loc_fffc01dc: ; not directly referenced
+mov dword [ebp - 0x368], eax
+mov dword [ebp - 0x364], edx
+
+loc_fffc01e8: ; not directly referenced
+cmp edx, edi
+ja short loc_fffc01f2 ; ja 0xfffc01f2
+jb short loc_fffc0202 ; jb 0xfffc0202
+cmp eax, esi
+jbe short loc_fffc0202 ; jbe 0xfffc0202
+
+loc_fffc01f2: ; not directly referenced
+mov cl, byte [ebp - 0x35c]
+mov esi, eax
+mov byte [ebp - 0x360], cl
+mov edi, edx
+
+loc_fffc0202: ; not directly referenced
+movzx ecx, byte [ebp - 0x35c]
+mov ebx, dword [ebp - 0x370]
+inc byte [ebp - 0x35c]
+mov dword [ebx + ecx*8 + 0x8e], eax
+mov dword [ebx + ecx*8 + 0x92], edx
+
+loc_fffc0223: ; not directly referenced
+mov cl, byte [ebp - 0x371]
+cmp byte [ebp - 0x35c], cl
+jae short loc_fffc0272 ; jae 0xfffc0272
+movzx eax, byte [ebp - 0x35c]
+mov dword [ebp - 0x398], 0
+mov dword [ebp - 0x388], 0
+mov dword [ebp - 0x384], 0
+mov dword [ebp - 0x36c], 0xffffffff
+lea eax, [ebp + eax*4 - 0x2d4]
+mov dword [ebp - 0x38c], eax
+jmp near loc_fffc00c9 ; jmp 0xfffc00c9
+
+loc_fffc0272: ; not directly referenced
+mov edx, dword [ebp - 0x370]
+mov ebx, dword [ebp - 0x364]
+movzx eax, byte [ebp - 0x360]
+mov word [edx], ax
+mov eax, esi
+mov edx, edi
+sub eax, dword [ebp - 0x368]
+sbb edx, dword [ebp - 0x364]
+imul ecx, edx, 0x7d0
+mov edx, 0x7d0
+mul edx
+add edx, ecx
+mov ecx, dword [ebp - 0x368]
+add ecx, esi
+adc ebx, edi
+add ecx, 1
+adc ebx, 0
+push ebx
+push ecx
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+mov ecx, dword [ebp - 0x370]
+add esp, 0x10
+mov ebx, dword [ebp - 0x368]
+cmp byte [ebp - 0x374], 0
+mov dword [ecx + 0x7e], esi
+mov esi, dword [ebp - 0x364]
+mov dword [ecx + 0x76], eax
+mov dword [ecx + 0x7a], edx
+mov dword [ecx + 0x82], edi
+mov dword [ecx + 0x86], ebx
+mov dword [ecx + 0x8a], esi
+je loc_fffc03b0 ; je 0xfffc03b0
+movsx eax, byte [ebp - 0x374]
+movzx ebx, byte [ebp - 0x360]
+jge short loc_fffc0322 ; jge 0xfffc0322
+add ebx, eax
+mov esi, 1
+movzx edx, byte [ebp - 0x372]
+cmp ebx, edx
+cmovl ebx, edx
+jmp short loc_fffc0349 ; jmp 0xfffc0349
+
+loc_fffc0322: ; not directly referenced
+movzx edx, byte [ebp - 0x371]
+add eax, ebx
+cmp eax, edx
+jl short loc_fffc0338 ; jl 0xfffc0338
+mov bl, byte [ebp - 0x371]
+dec ebx
+jmp short loc_fffc0344 ; jmp 0xfffc0344
+
+loc_fffc0338: ; not directly referenced
+mov bl, byte [ebp - 0x360]
+add ebx, dword [ebp - 0x374]
+
+loc_fffc0344: ; not directly referenced
+mov esi, 0xffffffff
+
+loc_fffc0349: ; not directly referenced
+movzx edx, byte [ebp - 0x360]
+mov edi, dword [ebp - 0x370]
+add edx, 0x10
+mov eax, 0x5a
+imul ecx, dword [edi + edx*8 + 0x12], 0x5a
+mul dword [edi + edx*8 + 0xe]
+push 0
+add edx, ecx
+push 0x64
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+jmp short loc_fffc03a6 ; jmp 0xfffc03a6
+
+loc_fffc0379: ; not directly referenced
+movzx ecx, bl
+mov edi, dword [ebp - 0x370]
+add ecx, 0x10
+cmp dword [edi + ecx*8 + 0x12], edx
+jb short loc_fffc03a4 ; jb 0xfffc03a4
+ja short loc_fffc0393 ; ja 0xfffc0393
+cmp dword [edi + ecx*8 + 0xe], eax
+jbe short loc_fffc03a4 ; jbe 0xfffc03a4
+
+loc_fffc0393: ; not directly referenced
+mov edx, dword [ebp - 0x370]
+sub ebx, dword [ebp - 0x360]
+mov byte [edx + 2], bl
+jmp short loc_fffc03b0 ; jmp 0xfffc03b0
+
+loc_fffc03a4: ; not directly referenced
+add ebx, esi
+
+loc_fffc03a6: ; not directly referenced
+cmp bl, byte [ebp - 0x360]
+jne short loc_fffc0379 ; jne 0xfffc0379
+jmp short loc_fffc0393 ; jmp 0xfffc0393
+
+loc_fffc03b0: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc03b8: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+mov esi, eax
+lea eax, [eax + 0x16be]
+push ebx
+lea esp, [esp - 0x4c]
+mov byte [ebp - 0x29], dl
+mov dl, byte [ecx + 0x529]
+mov dword [ebp - 0x4c], eax
+xor ecx, ecx
+mov byte [ebp - 0x2a], dl
+lea eax, [ebp - 0x1d]
+mov edx, 5
+call fcn_fffa119f ; call 0xfffa119f
+cmp dword [ebp + 0xc], 0
+mov al, 0
+mov cl, byte [ebp - 0x2a]
+cmovne ecx, eax
+xor eax, eax
+mov byte [ebp - 0x2a], cl
+jmp short loc_fffc0419 ; jmp 0xfffc0419
+
+loc_fffc03fd: ; not directly referenced
+movzx ecx, byte [edi + eax + 0x524]
+xor edx, edx
+cmp cl, 5
+ja short loc_fffc0413 ; ja 0xfffc0413
+movzx edx, byte [ecx + ref_fffcbe84] ; movzx edx, byte [ecx - 0x3417c]
+
+loc_fffc0413: ; not directly referenced
+mov byte [ebp + edx - 0x1d], 1
+inc eax
+
+loc_fffc0419: ; not directly referenced
+cmp byte [ebp - 0x2a], al
+ja short loc_fffc03fd ; ja 0xfffc03fd
+cmp dword [ebp + 8], 0
+jne short loc_fffc043c ; jne 0xfffc043c
+sub esp, 0xc
+xor edx, edx
+push 1
+movzx ecx, byte [edi + 8]
+mov eax, esi
+call fcn_fffb3889 ; call 0xfffb3889
+mov dword [edi + 9], eax
+add esp, 0x10
+
+loc_fffc043c: ; not directly referenced
+movzx eax, byte [ebp - 0x29]
+mov ebx, edi
+mov dword [ebp - 0x3c], esi
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x50], eax
+
+loc_fffc044f: ; not directly referenced
+imul eax, dword [ebp - 0x30], 0x1347
+mov edx, dword [ebp - 0x4c]
+cmp dword [edx + eax + 0x12be], 2
+je short loc_fffc047c ; je 0xfffc047c
+
+loc_fffc0463: ; not directly referenced
+inc dword [ebp - 0x30]
+add ebx, 2
+add dword [ebp - 0x3c], 0x1347
+cmp dword [ebp - 0x30], 2
+je loc_fffc063a ; je 0xfffc063a
+jmp short loc_fffc044f ; jmp 0xfffc044f
+
+loc_fffc047c: ; not directly referenced
+mov ecx, dword [ebp - 0x50]
+mov eax, dword [ebp - 0x30]
+bt ecx, eax
+jae short loc_fffc0463 ; jae 0xfffc0463
+mov edx, dword [ebp - 0x3c]
+mov byte [ebp - 0x29], 1
+cmp dword [edx + 0x2a71], 1
+jne short loc_fffc04a6 ; jne 0xfffc04a6
+mov al, byte [ebx + 4]
+mov byte [ebp - 0x29], 0
+mov byte [ebx], al
+mov al, byte [ebx + 5]
+mov byte [ebx + 1], al
+
+loc_fffc04a6: ; not directly referenced
+cmp dword [esi + 0x1005], 0x40650
+jne short loc_fffc04c1 ; jne 0xfffc04c1
+mov byte [ebx], 0
+mov byte [ebx + 1], 0
+mov byte [ebx + 5], 0
+mov byte [ebp - 0x29], 1
+
+loc_fffc04c1: ; not directly referenced
+mov dl, byte [ebx + 4]
+mov al, byte [ebp - 0x29]
+mul dl
+push 1
+movzx edx, byte [ebx]
+shl eax, 4
+mov ecx, 3
+add eax, edx
+mov edx, dword [ebp - 0x30]
+cwde
+push eax
+mov eax, esi
+push 7
+push 0
+call fcn_fffb498e ; call 0xfffb498e
+mov dl, byte [ebx + 5]
+mov al, byte [ebp - 0x29]
+mul dl
+push 1
+movzx edx, byte [ebx + 1]
+shl eax, 4
+mov ecx, 0xc
+add eax, edx
+mov edx, dword [ebp - 0x30]
+cwde
+push eax
+mov eax, esi
+push 7
+push 0
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x20
+cmp byte [ebp - 0x2a], 0
+jne loc_fffc061b ; jne 0xfffc061b
+jmp near loc_fffc0463 ; jmp 0xfffc0463
+
+loc_fffc0522: ; not directly referenced
+cmp byte [ebp - 0x1d], 0
+je short loc_fffc0550 ; je 0xfffc0550
+movzx eax, byte [ebp - 0x29]
+mov ecx, dword [ebp - 0x48]
+push 1
+lea edx, [eax + ecx + 0x20]
+mov ecx, 0xf
+movsx edx, word [edi + edx*2 + 7]
+push edx
+mov edx, dword [ebp - 0x30]
+push 6
+push eax
+mov eax, esi
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+
+loc_fffc0550: ; not directly referenced
+cmp byte [ebp - 0x1c], 0
+je short loc_fffc0581 ; je 0xfffc0581
+movzx eax, byte [ebp - 0x29]
+mov ecx, dword [ebp - 0x48]
+push 1
+lea edx, [eax + ecx + 0x9c]
+mov ecx, 0xf
+movsx edx, word [edi + edx*2 + 7]
+push edx
+mov edx, dword [ebp - 0x30]
+push 0
+push eax
+mov eax, esi
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+
+loc_fffc0581: ; not directly referenced
+movzx eax, byte [ebp - 0x29]
+mov edx, dword [ebp - 0x48]
+mov dword [ebp - 0x44], eax
+mov dword [ebp - 0x38], 0
+lea eax, [eax + edx + 0x194]
+lea eax, [edi + eax*2 + 7]
+mov dword [ebp - 0x40], eax
+
+loc_fffc05a0: ; not directly referenced
+mov edx, dword [ebp - 0x3c]
+mov dword [ebp - 0x34], 1
+mov cl, byte [ebp - 0x38]
+shl dword [ebp - 0x34], cl
+mov al, byte [ebp - 0x34]
+test byte [edx + 0x3acb], al
+je short loc_fffc0609 ; je 0xfffc0609
+cmp byte [ebp - 0x1b], 0
+je short loc_fffc05e4 ; je 0xfffc05e4
+mov edx, dword [ebp - 0x40]
+movzx ecx, byte [ebp - 0x34]
+push 1
+movsx eax, word [edx - 0xf8]
+mov edx, dword [ebp - 0x30]
+push eax
+mov eax, esi
+push 5
+push dword [ebp - 0x44]
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+
+loc_fffc05e4: ; not directly referenced
+cmp byte [ebp - 0x1a], 0
+je short loc_fffc0609 ; je 0xfffc0609
+mov edx, dword [ebp - 0x40]
+movzx ecx, byte [ebp - 0x34]
+push 1
+movsx eax, word [edx]
+mov edx, dword [ebp - 0x30]
+push eax
+mov eax, esi
+push 4
+push dword [ebp - 0x44]
+call fcn_fffb498e ; call 0xfffb498e
+add esp, 0x10
+
+loc_fffc0609: ; not directly referenced
+inc dword [ebp - 0x38]
+add dword [ebp - 0x40], 0x3e
+cmp dword [ebp - 0x38], 4
+jne short loc_fffc05a0 ; jne 0xfffc05a0
+inc byte [ebp - 0x29]
+jmp short loc_fffc0626 ; jmp 0xfffc0626
+
+loc_fffc061b: ; not directly referenced
+imul ecx, dword [ebp - 0x30], 9
+mov byte [ebp - 0x29], 0
+mov dword [ebp - 0x48], ecx
+
+loc_fffc0626: ; not directly referenced
+mov al, byte [ebp - 0x29]
+cmp al, byte [esi + 0x1755]
+jb loc_fffc0522 ; jb 0xfffc0522
+jmp near loc_fffc0463 ; jmp 0xfffc0463
+
+loc_fffc063a: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc0642: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+movzx ebx, cl
+lea esp, [esp - 0x8c]
+mov dword [ebp - 0x68], eax
+mov al, byte [ebp + 0x14]
+mov dword [ebp - 0x80], edx
+mov byte [ebp - 0x76], al
+mov cl, byte [ebp + 0x20]
+imul eax, edx, 0x1347
+mov edx, dword [ebp - 0x68]
+mov esi, dword [ebp + 0x10]
+mov byte [ebp - 0x77], cl
+xor ecx, ecx
+mov eax, dword [edx + eax + 0x2a71]
+mov edx, 0x26
+mov dword [ebp - 0x88], eax
+lea eax, [ebp - 0x3e]
+call fcn_fffa119f ; call 0xfffa119f
+movzx ecx, byte [ebp - 0x77]
+mov edx, esi
+movzx eax, dl
+mov edx, ecx
+imul edx, eax
+mov dword [ebp - 0x84], ecx
+mov ecx, dword [ebp + 0xc]
+add eax, eax
+mov word [ebp - 0x4e], 0
+mov word [ebp - 0x4c], 0
+mov word [ebp - 0x4a], 0
+mov word [ebp - 0x48], 0
+mov word [ebp - 0x46], 0xffff
+mov word [ebp - 0x44], 0xffff
+lea edx, [ecx + edx*2]
+mov ecx, dword [ebp - 0x80]
+mov dword [ebp - 0x7c], edx
+mov dword [ebp - 0x74], edx
+add ecx, ecx
+mov edx, dword [ebp + 8]
+mov word [ebp - 0x42], 0xffff
+mov word [ebp - 0x40], 0xffff
+mov dword [ebp - 0x64], edx
+mov dword [ebp - 0x8c], eax
+mov word [ebp - 0x5c], 0
+mov byte [ebp - 0x75], 0
+mov word [ebp - 0x6e], 0xffff
+mov word [ebp - 0x70], 0
+mov dword [ebp - 0x94], ecx
+mov dword [ebp - 0x98], ebx
+jmp near loc_fffc08c8 ; jmp 0xfffc08c8
+
+loc_fffc0716: ; not directly referenced
+mov dx, word [ebx + ecx]
+cmp word [ebp + eax*2 - 0x4e], dx
+jae short loc_fffc0726 ; jae 0xfffc0726
+mov word [ebp + eax*2 - 0x4e], dx
+
+loc_fffc0726: ; not directly referenced
+cmp word [ebp + eax*2 - 0x46], dx
+jbe short loc_fffc0732 ; jbe 0xfffc0732
+mov word [ebp + eax*2 - 0x46], dx
+
+loc_fffc0732: ; not directly referenced
+inc eax
+add ecx, dword [ebp - 0x8c]
+
+loc_fffc0739: ; not directly referenced
+cmp byte [ebp - 0x77], al
+ja short loc_fffc0716 ; ja 0xfffc0716
+cmp dword [ebp + 0x24], 0
+jne loc_fffc0889 ; jne 0xfffc0889
+mov eax, dword [ebp - 0x68]
+mov ecx, 0x64
+mov edx, dword [ebp - 0x64]
+mov edi, dword [ebp - 0x64]
+mov byte [ebp - 0x60], 0
+mov byte [ebp - 0x6c], 0
+cmp dword [eax + 0x1005], 0x40650
+mov eax, 0x32
+movsx ebx, byte [edx + 8]
+cmovne ecx, eax
+movzx eax, cl
+add ebx, 0x30
+imul eax, eax, 0x60
+add edi, dword [ebp - 0x94]
+cdq
+xor esi, esi
+idiv ebx
+xor ebx, ebx
+sub eax, ecx
+mov word [ebp - 0x8e], ax
+
+loc_fffc0793: ; not directly referenced
+mov ecx, dword [ebp - 0x98]
+bt ecx, esi
+jae short loc_fffc0811 ; jae 0xfffc0811
+sub esp, 0xc
+mov edx, dword [ebp - 0x80]
+push 1
+lea ecx, [esi + esi]
+mov eax, dword [ebp - 0x68]
+push 0
+push 0
+push 9
+push 0
+call fcn_fffb67ea ; call 0xfffb67ea
+movzx edx, byte [edi + 4]
+add byte [ebp - 0x6c], al
+movzx edx, byte [edx + ref_fffcbe8c] ; movzx edx, byte [edx - 0x34174]
+movzx eax, byte [edi]
+add esp, 0x20
+cmp dword [ebp - 0x88], 1
+mov word [ebp - 0x5c], dx
+movzx eax, byte [eax + ref_fffcbe8c] ; movzx eax, byte [eax - 0x34174]
+jne short loc_fffc07f2 ; jne 0xfffc07f2
+test dx, dx
+cmovne eax, edx
+mov word [ebp - 0x5c], ax
+mov eax, 0x3fff
+jmp short loc_fffc07fd ; jmp 0xfffc07fd
+
+loc_fffc07f2: ; not directly referenced
+test ax, ax
+mov edx, 0x3fff
+cmove eax, edx
+
+loc_fffc07fd: ; not directly referenced
+cmp word [ebp - 0x5c], 0
+mov edx, dword [ebp - 0x5c]
+cmove edx, eax
+add ebx, eax
+mov word [ebp - 0x5c], dx
+inc byte [ebp - 0x60]
+
+loc_fffc0811: ; not directly referenced
+inc esi
+inc edi
+cmp esi, 2
+jne loc_fffc0793 ; jne 0xfffc0793
+cmp byte [ebp - 0x60], 0
+je short loc_fffc0838 ; je 0xfffc0838
+movzx eax, bx
+movzx ecx, byte [ebp - 0x60]
+cdq
+idiv ecx
+mov ebx, eax
+movzx eax, byte [ebp - 0x6c]
+div byte [ebp - 0x60]
+mov byte [ebp - 0x6c], al
+
+loc_fffc0838: ; not directly referenced
+lea eax, [ebx - 0x79]
+lea esi, [ebp - 0x3e]
+cmp ax, 0x3f85
+mov eax, 0xf0
+mov ecx, 0x1e
+mov edx, esi
+cmovbe ebx, eax
+movzx eax, word [ebp - 0x5c]
+push eax
+movzx ebx, bx
+push ebx
+movzx eax, word [ebp - 0x8e]
+push eax
+movzx eax, byte [ebp - 0x6c]
+push eax
+mov eax, dword [ebp - 0x68]
+call fcn_fffb31ae ; call 0xfffb31ae
+mov ecx, dword [ebp - 0x74]
+mov ax, word [ebp - 0x1a]
+mov edi, dword [ebp - 0x64]
+add esp, 0x10
+add edi, 0xd
+mov word [ecx], ax
+mov ecx, 0x26
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+
+loc_fffc0889: ; not directly referenced
+mov edx, dword [ebp - 0x74]
+cmp byte [ebp - 0x76], 1
+mov ax, word [edx]
+je short loc_fffc08b0 ; je 0xfffc08b0
+cmp ax, word [ebp - 0x70]
+mov edx, dword [ebp - 0x70]
+cmovae edx, eax
+cmp word [ebp - 0x6e], ax
+cmovbe ax, word [ebp - 0x6e]
+mov word [ebp - 0x6e], ax
+mov eax, edx
+jmp short loc_fffc08b6 ; jmp 0xfffc08b6
+
+loc_fffc08b0: ; not directly referenced
+mov word [ebp - 0x6e], 0
+
+loc_fffc08b6: ; not directly referenced
+inc byte [ebp - 0x75]
+add dword [ebp - 0x74], 2
+add dword [ebp - 0x64], 0x53e
+mov word [ebp - 0x70], ax
+
+loc_fffc08c8: ; not directly referenced
+mov cl, byte [ebp - 0x76]
+cmp byte [ebp - 0x75], cl
+je short loc_fffc08e3 ; je 0xfffc08e3
+movzx eax, byte [ebp - 0x75]
+mov edx, dword [ebp + 0xc]
+xor ecx, ecx
+lea ebx, [edx + eax*2]
+xor eax, eax
+jmp near loc_fffc0739 ; jmp 0xfffc0739
+
+loc_fffc08e3: ; not directly referenced
+xor ebx, ebx
+mov edi, 0x7fff
+xor esi, esi
+jmp short loc_fffc094a ; jmp 0xfffc094a
+
+loc_fffc08ee: ; not directly referenced
+movzx eax, word [ebp + ebx*2 - 0x4e]
+mov edx, dword [ebp + 0x1c]
+add esi, eax
+movzx ecx, byte [edx + ebx]
+cdq
+idiv ecx
+mov ecx, dword [ebp + 0x18]
+movzx ecx, byte [ecx + ebx]
+mov dword [ebp - 0x5c], ecx
+xor ecx, ecx
+mov edx, dword [ebp - 0x5c]
+mov dword [ebp - 0x64], eax
+mov eax, dword [ebp - 0x68]
+call fcn_fffb2de8 ; call 0xfffb2de8
+movzx eax, ax
+mov ecx, 1
+mov dword [ebp - 0x60], eax
+mov edx, dword [ebp - 0x5c]
+mov eax, dword [ebp - 0x68]
+call fcn_fffb2de8 ; call 0xfffb2de8
+movzx ecx, ax
+mov edx, dword [ebp - 0x64]
+sub edx, dword [ebp - 0x60]
+sub ecx, dword [ebp - 0x60]
+imul edx, edx, 0x64
+mov eax, edx
+cdq
+idiv ecx
+cmp di, ax
+cmovg edi, eax
+inc ebx
+
+loc_fffc094a: ; not directly referenced
+cmp byte [ebp - 0x77], bl
+ja short loc_fffc08ee ; ja 0xfffc08ee
+movzx eax, si
+mov ecx, 0x64
+cdq
+idiv dword [ebp - 0x84]
+mov dword [ebp - 0x60], eax
+movsx eax, di
+imul eax, eax, 0x41
+cdq
+idiv ecx
+xor edx, edx
+cmp ax, 0x64
+jbe short loc_fffc097a ; jbe 0xfffc097a
+lea edx, [eax - 0x64]
+mov eax, 0x64
+
+loc_fffc097a: ; not directly referenced
+movzx esi, ax
+xor ecx, ecx
+movzx edx, dx
+movzx eax, word [ebp - 0x6e]
+add edx, esi
+mov dword [ebp - 0x64], edx
+mov dword [ebp - 0x6c], eax
+movzx edx, word [ebp - 0x70]
+mov dword [ebp - 0x5c], edx
+jmp short loc_fffc09f3 ; jmp 0xfffc09f3
+
+loc_fffc0997: ; not directly referenced
+test di, di
+jns short loc_fffc09a7 ; jns 0xfffc09a7
+mov eax, dword [ebp - 0x7c]
+mov word [eax + ecx*2], 1
+jmp short loc_fffc09f2 ; jmp 0xfffc09f2
+
+loc_fffc09a7: ; not directly referenced
+mov dx, word [ebp - 0x6e]
+cmp word [ebp - 0x70], dx
+je short loc_fffc09c9 ; je 0xfffc09c9
+mov edx, dword [ebp - 0x7c]
+movzx eax, word [edx + ecx*2]
+mov edx, dword [ebp - 0x6c]
+sub edx, eax
+imul eax, edx, 0x64
+cdq
+idiv dword [ebp - 0x5c]
+add eax, 0x64
+jmp short loc_fffc09cb ; jmp 0xfffc09cb
+
+loc_fffc09c9: ; not directly referenced
+xor eax, eax
+
+loc_fffc09cb: ; not directly referenced
+movzx eax, ax
+mov ebx, 0x64
+imul eax, dword [ebp - 0x64]
+mov edx, ebx
+sub edx, esi
+mov dword [ebp - 0x68], edx
+cdq
+idiv ebx
+add eax, dword [ebp - 0x68]
+imul eax, dword [ebp - 0x60]
+cdq
+idiv ebx
+mov edx, dword [ebp - 0x7c]
+mov word [edx + ecx*2], ax
+
+loc_fffc09f2: ; not directly referenced
+inc ecx
+
+loc_fffc09f3: ; not directly referenced
+cmp byte [ebp - 0x76], cl
+ja short loc_fffc0997 ; ja 0xfffc0997
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc0a00: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+lea esp, [esp - 0xbc]
+mov bl, byte [ebp + 0xc]
+mov byte [ebp - 0x5a], bl
+mov bl, byte [ebp + 0x10]
+mov byte [ebp - 0x5c], bl
+mov bl, byte [ebp + 0x14]
+mov al, byte [ebp + 8]
+mov byte [ebp - 0xbd], bl
+xor ebx, ebx
+cmp byte [ebp - 0x5a], 0x21
+mov byte [ebp - 0x98], cl
+mov byte [ebp - 0x50], al
+ja short loc_fffc0a43 ; ja 0xfffc0a43
+movzx eax, byte [ebp - 0x5a]
+movzx ebx, byte [eax + ref_fffcc308] ; movzx ebx, byte [eax - 0x33cf8]
+
+loc_fffc0a43: ; not directly referenced
+mov al, byte [ebp - 0x5a]
+shr al, 4
+cmp byte [edi + 0x1768], 1
+lea esi, [eax + 1]
+mov ecx, esi
+mov byte [ebp - 0x4c], cl
+jne short loc_fffc0a74 ; jne 0xfffc0a74
+mov al, byte [edi + 0x1769]
+mov byte [ebp - 0x24], al
+mov byte [ebp - 0x23], al
+lea ecx, [eax + 4]
+add eax, 2
+mov byte [ebp - 0x22], cl
+mov byte [ebp - 0x21], al
+jmp short loc_fffc0a84 ; jmp 0xfffc0a84
+
+loc_fffc0a74: ; not directly referenced
+mov byte [ebp - 0x24], 1
+mov byte [ebp - 0x23], 1
+mov byte [ebp - 0x22], 1
+mov byte [ebp - 0x21], 1
+
+loc_fffc0a84: ; not directly referenced
+cmp byte [ebp - 0x5a], 0x21
+sete cl
+cmp byte [ebp - 0x5a], 0x11
+sete al
+or cl, al
+jne short loc_fffc0aa7 ; jne 0xfffc0aa7
+xor eax, eax
+cmp byte [ebp - 0x5a], 5
+sete al
+mov dword [ebp - 0xa0], eax
+jmp short loc_fffc0ab1 ; jmp 0xfffc0ab1
+
+loc_fffc0aa7: ; not directly referenced
+mov dword [ebp - 0xa0], 1
+
+loc_fffc0ab1: ; not directly referenced
+cmp byte [ebp - 0x5a], 0xd
+mov dword [ebp - 0x6c], 0
+jne short loc_fffc0adf ; jne 0xfffc0adf
+movzx eax, byte [ebp - 0x98]
+xor ecx, ecx
+jmp short loc_fffc0acf ; jmp 0xfffc0acf
+
+loc_fffc0ac9: ; not directly referenced
+lea esi, [eax - 1]
+inc ecx
+and eax, esi
+
+loc_fffc0acf: ; not directly referenced
+test eax, eax
+jne short loc_fffc0ac9 ; jne 0xfffc0ac9
+cmp cl, 1
+seta cl
+movzx ecx, cl
+mov dword [ebp - 0x6c], ecx
+
+loc_fffc0adf: ; not directly referenced
+imul ebx, ebx, 0x240
+mov dword [ebp - 0x84], 0
+add ebx, edx
+mov byte [ebp - 0x59], 0
+movzx esi, byte [ebp - 0x98]
+mov dword [ebp - 0x54], ebx
+movzx ebx, byte [ebp - 0x50]
+mov dword [ebp - 0x68], esi
+imul eax, ebx, 0x90
+mov dword [ebp - 0x64], ebx
+sar esi, 1
+mov dword [ebp - 0x50], 0
+and esi, 1
+imul ebx, ebx, 0x24
+mov dword [ebp - 0x80], esi
+mov esi, dword [ebp - 0x54]
+mov dword [ebp - 0xbc], ebx
+mov bl, byte [ebp - 0x98]
+and ebx, 1
+mov dword [ebp - 0xa4], ebx
+lea esi, [esi + eax + 0x48]
+mov dword [ebp - 0x74], esi
+movzx esi, byte [ebp - 0x4c]
+add eax, dword [ebp - 0x54]
+mov dword [ebp - 0xac], esi
+dec esi
+mov dword [ebp - 0xa8], eax
+mov dword [ebp - 0xc4], esi
+
+loc_fffc0b5a: ; not directly referenced
+xor ecx, ecx
+mov edx, 4
+lea eax, [ebp - 0x28]
+call fcn_fffa119f ; call 0xfffa119f
+mov edx, 2
+xor ecx, ecx
+lea eax, [ebp - 0x40]
+call fcn_fffa119f ; call 0xfffa119f
+imul eax, dword [ebp - 0x64], 0x24
+mov edx, dword [ebp - 0x50]
+add edx, eax
+mov ebx, dword [ebp - 0x54]
+lea edx, [ebx + edx*4]
+mov dword [ebp - 0x7c], edx
+mov esi, edx
+xor ebx, ebx
+movzx edx, byte [ebp - 0x59]
+imul edx, edx, 0x12
+add eax, edx
+add eax, dword [ebp - 0x50]
+mov dword [ebp - 0x58], eax
+
+loc_fffc0b9d: ; not directly referenced
+mov edx, dword [ebp - 0x68]
+mov al, byte [ebp - 0xbd]
+bt edx, ebx
+mov byte [ebp + ebx - 0x42], al
+mov byte [ebp + ebx - 0x3e], 0x7f
+mov dword [ebp + ebx*4 - 0x20], 0
+mov byte [ebp + ebx - 0x3a], 0
+mov byte [ebp + ebx - 0x3c], 0
+jb short loc_fffc0bd7 ; jb 0xfffc0bd7
+mov word [ebp + ebx*2 - 0x28], 1
+mov byte [ebp + ebx - 0x40], 1
+jmp near loc_fffc0c70 ; jmp 0xfffc0c70
+
+loc_fffc0bd7: ; not directly referenced
+cmp byte [ebp - 0x5a], 1
+jne short loc_fffc0bef ; jne 0xfffc0bef
+mov cl, byte [edi + 0x1755]
+mov dword [ebp - 0x4c], 0
+mov byte [ebp - 0x60], cl
+jmp short loc_fffc0c2c ; jmp 0xfffc0c2c
+
+loc_fffc0bef: ; not directly referenced
+mov eax, dword [esi]
+xor edx, edx
+mov ecx, 0xa
+div ecx
+mov dword [esi], eax
+movzx edx, byte [ebp + ebx - 0x42]
+cmp eax, edx
+ja short loc_fffc0c36 ; ja 0xfffc0c36
+jmp short loc_fffc0c38 ; jmp 0xfffc0c38
+
+loc_fffc0c07: ; not directly referenced
+push eax
+movzx eax, byte [ebp + ebx - 0x42]
+mov ecx, 0xff
+push eax
+push dword [ebp - 0x50]
+push dword [ebp - 0x4c]
+mov edx, ebx
+mov eax, edi
+call fcn_fffb2c66 ; call 0xfffb2c66
+mov byte [ebp + ebx - 0x42], al
+add esp, 0x10
+inc dword [ebp - 0x4c]
+
+loc_fffc0c2c: ; not directly referenced
+mov al, byte [ebp - 0x4c]
+cmp byte [ebp - 0x60], al
+ja short loc_fffc0c07 ; ja 0xfffc0c07
+jmp short loc_fffc0bef ; jmp 0xfffc0bef
+
+loc_fffc0c36: ; not directly referenced
+mov dword [esi], edx
+
+loc_fffc0c38: ; not directly referenced
+cmp dword [ebp - 0x6c], 0
+je short loc_fffc0c4e ; je 0xfffc0c4e
+mov edx, dword [ebp - 0x58]
+mov ecx, dword [ebp - 0x54]
+mov eax, dword [esi]
+cmp dword [ecx + edx*4], eax
+jbe short loc_fffc0c4e ; jbe 0xfffc0c4e
+mov dword [ecx + edx*4], eax
+
+loc_fffc0c4e: ; not directly referenced
+mov eax, dword [esi]
+mov edx, ebx
+mov byte [ebp + ebx - 0x3a], al
+mov byte [ebp + ebx - 0x3c], al
+shl edx, 0xa
+mov eax, dword [edi + 0x103f]
+lea eax, [edx + eax + 0x40f0]
+mov dword [eax], 0
+
+loc_fffc0c70: ; not directly referenced
+inc ebx
+add esi, 0x48
+cmp ebx, 2
+jne loc_fffc0b9d ; jne 0xfffc0b9d
+cmp dword [ebp - 0x6c], 0
+je short loc_fffc0cef ; je 0xfffc0cef
+cmp dword [ebp - 0xa4], 0
+je short loc_fffc0cba ; je 0xfffc0cba
+movzx eax, byte [ebp - 0x59]
+mov ebx, dword [ebp - 0x54]
+imul edx, dword [ebp - 0x64], 0x24
+imul eax, eax, 0x12
+mov esi, dword [ebp - 0x50]
+add eax, edx
+add eax, dword [ebp - 0x50]
+mov edx, dword [ebx + eax*4]
+mov ebx, dword [ebp - 0xa8]
+mov dword [ebx + esi*4], edx
+mov esi, dword [ebp - 0x54]
+mov eax, dword [esi + eax*4]
+mov byte [ebp - 0x3a], al
+mov byte [ebp - 0x3c], al
+
+loc_fffc0cba: ; not directly referenced
+cmp dword [ebp - 0x80], 0
+je short loc_fffc0cef ; je 0xfffc0cef
+movzx eax, byte [ebp - 0x59]
+mov ebx, dword [ebp - 0x54]
+imul edx, dword [ebp - 0x64], 0x24
+imul eax, eax, 0x12
+mov esi, dword [ebp - 0x50]
+add eax, edx
+add eax, dword [ebp - 0x50]
+mov edx, dword [ebx + eax*4]
+mov ebx, dword [ebp - 0xa8]
+mov dword [ebx + esi*4 + 0x48], edx
+mov esi, dword [ebp - 0x54]
+mov eax, dword [esi + eax*4]
+mov byte [ebp - 0x39], al
+mov byte [ebp - 0x3b], al
+
+loc_fffc0cef: ; not directly referenced
+mov ebx, dword [ebp - 0x50]
+mov eax, dword [ebp - 0x50]
+mov esi, dword [ebp - 0x54]
+add eax, dword [ebp - 0xbc]
+lea ebx, [ebx + ebx - 1]
+mov dword [ebp - 0xb0], ebx
+lea eax, [esi + eax*4]
+mov dword [ebp - 0x9c], eax
+
+loc_fffc0d11: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+mov dword [ebp - 0x88], 0
+mov dword [ebp - 0x70], 0
+mov dword [eax + 0x4800], 4
+jmp near loc_fffc123b ; jmp 0xfffc123b
+
+loc_fffc0d37: ; not directly referenced
+movzx esi, byte [ebp - 0x5a]
+xor ebx, ebx
+mov dword [ebp - 0x60], esi
+
+loc_fffc0d40: ; not directly referenced
+mov esi, dword [ebp - 0x68]
+bt esi, ebx
+jae loc_fffc0dd6 ; jae 0xfffc0dd6
+imul eax, ebx, 0x48
+lea ecx, [ebx + 1]
+mov edx, dword [ebp - 0x9c]
+sar esi, cl
+mov dword [ebp - 0x58], esi
+mov esi, dword [ebp - 0xb0]
+imul esi, dword [edx + eax]
+cmp byte [ebp - 0x5a], 0xd
+jne short loc_fffc0dc7 ; jne 0xfffc0dc7
+push ecx
+mov edx, 2
+mov eax, edi
+push ecx
+xor ecx, ecx
+push 0
+push esi
+call fcn_fffafeda ; call 0xfffafeda
+mov dword [esp], edi
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+jmp short loc_fffc0de0 ; jmp 0xfffc0de0
+
+loc_fffc0d8d: ; not directly referenced
+push 1
+push dword [ebp - 0x58]
+movzx eax, byte [ebp - 0x4c]
+mov ecx, esi
+push 0
+mov edx, dword [ebp - 0x60]
+push eax
+mov eax, edi
+push 0xff
+push ebx
+push 0
+push dword [ebp - 0x70]
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+cmp dword [ebp - 0xa0], 0
+mov dword [ebp - 0x84], eax
+jne short loc_fffc0dd6 ; jne 0xfffc0dd6
+inc byte [ebp - 0x4c]
+jmp short loc_fffc0dcb ; jmp 0xfffc0dcb
+
+loc_fffc0dc7: ; not directly referenced
+mov byte [ebp - 0x4c], 0
+
+loc_fffc0dcb: ; not directly referenced
+mov cl, byte [ebp - 0x4c]
+cmp cl, byte [edi + 0x1755]
+jb short loc_fffc0d8d ; jb 0xfffc0d8d
+
+loc_fffc0dd6: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffc0d40 ; jne 0xfffc0d40
+
+loc_fffc0de0: ; not directly referenced
+push edx
+xor eax, eax
+cmp dword [ebp - 0x70], 0
+push 0
+sete al
+mov edx, dword [ebp - 0x68]
+push eax
+movzx ecx, byte [edi + 0x1768]
+lea eax, [ebp - 0x24]
+push eax
+mov eax, edi
+call fcn_fffb21f3 ; call 0xfffb21f3
+movzx eax, al
+add esp, 0x10
+or dword [ebp - 0x88], eax
+cmp byte [ebp - 0x5c], 0
+jne short loc_fffc0e34 ; jne 0xfffc0e34
+mov ebx, dword [ebp - 0xc4]
+cmp dword [ebp - 0x70], ebx
+jae short loc_fffc0e3c ; jae 0xfffc0e3c
+movzx eax, byte [ebp - 0x98]
+cmp dword [ebp - 0x88], eax
+je loc_fffc124a ; je 0xfffc124a
+jmp short loc_fffc0e3c ; jmp 0xfffc0e3c
+
+loc_fffc0e34: ; not directly referenced
+mov ebx, dword [ebp - 0x7c]
+mov dword [ebp - 0x60], ebx
+jmp short loc_fffc0e42 ; jmp 0xfffc0e42
+
+loc_fffc0e3c: ; not directly referenced
+mov esi, dword [ebp - 0x7c]
+mov dword [ebp - 0x60], esi
+
+loc_fffc0e42: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc0e44: ; not directly referenced
+mov dx, word [ebp + ebx*2 - 0x28]
+mov al, bl
+mov word [ebp - 0x78], dx
+dec dx
+jne short loc_fffc0e5e ; jne 0xfffc0e5e
+cmp byte [ebp + ebx - 0x40], 1
+je loc_fffc1156 ; je 0xfffc1156
+
+loc_fffc0e5e: ; not directly referenced
+mov esi, dword [ebp - 0x68]
+bt esi, ebx
+jae loc_fffc1156 ; jae 0xfffc1156
+cmp dword [ebp - 0x6c], 0
+mov dl, 0
+cmove edx, eax
+mov ecx, dword [ebp - 0x60]
+mov byte [ebp - 0x59], dl
+mov edx, ebx
+shl edx, 0xa
+mov eax, dword [edi + 0x103f]
+mov ecx, dword [ecx]
+mov byte [ebp - 0x4c], cl
+mov dword [ebp - 0xb4], ecx
+lea eax, [edx + eax + 0x4114]
+mov cl, byte [ebp + ebx - 0x3e]
+mov eax, dword [eax]
+mov dl, byte [ebp - 0x4c]
+sub edx, ecx
+and eax, 0x7fffff
+mov dword [ebp - 0x58], eax
+jne loc_fffc0f5d ; jne 0xfffc0f5d
+movzx ecx, byte [ebp - 0x59]
+mov al, byte [ebp - 0x4c]
+cmp al, byte [ebp + ecx - 0x3c]
+jne short loc_fffc0f1e ; jne 0xfffc0f1e
+test dl, dl
+jns short loc_fffc0ee2 ; jns 0xfffc0ee2
+cmp byte [ebp + ecx - 0x3a], al
+jne short loc_fffc0ed2 ; jne 0xfffc0ed2
+
+loc_fffc0ec6: ; not directly referenced
+mov dl, byte [ebp - 0x4c]
+mov byte [ebp + ebx - 0x3e], dl
+jmp near loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc0ed2: ; not directly referenced
+mov dword [ebp - 0x2c], 1
+
+loc_fffc0ed9: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+test eax, eax
+jne short loc_fffc0ed9 ; jne 0xfffc0ed9
+jmp short loc_fffc0ec6 ; jmp 0xfffc0ec6
+
+loc_fffc0ee2: ; not directly referenced
+cmp dl, 1
+jne short loc_fffc0f00 ; jne 0xfffc0f00
+mov edx, dword [ebp + ebx*4 - 0x20]
+mov cl, byte [ebp - 0xb4]
+shr edx, 8
+mov byte [ebx + ebp - 0x3e], cl
+xor dh, dh
+mov dword [ebp + ebx*4 - 0x20], edx
+jmp short loc_fffc0f42 ; jmp 0xfffc0f42
+
+loc_fffc0f00: ; not directly referenced
+xor eax, eax
+cmp dl, 2
+je loc_fffc0fb1 ; je 0xfffc0fb1
+mov dword [ebp - 0x30], 1
+
+loc_fffc0f12: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+test eax, eax
+jne short loc_fffc0f12 ; jne 0xfffc0f12
+jmp near loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc0f1e: ; not directly referenced
+mov al, byte [ebp - 0x4c]
+cmp al, byte [ebp + ecx - 0x3a]
+jne loc_fffc10c2 ; jne 0xfffc10c2
+cmp word [ebp - 0x78], 1
+je loc_fffc1156 ; je 0xfffc1156
+inc dl
+jne short loc_fffc0f4e ; jne 0xfffc0f4e
+and dword [ebp + ebx*4 - 0x20], 0xffffff00
+
+loc_fffc0f42: ; not directly referenced
+mov word [ebp + ebx*2 - 0x28], 1
+jmp near loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc0f4e: ; not directly referenced
+mov dl, byte [ebp - 0xb4]
+mov byte [ebx + ebp - 0x3e], dl
+jmp near loc_fffc10b9 ; jmp 0xfffc10b9
+
+loc_fffc0f5d: ; not directly referenced
+movzx esi, byte [ebp - 0x59]
+mov al, byte [ebp - 0x4c]
+mov dword [ebp - 0x78], esi
+cmp al, byte [ebp + esi - 0x3c]
+jne short loc_fffc0fd3 ; jne 0xfffc0fd3
+cmp dl, 2
+jle short loc_fffc0f85 ; jle 0xfffc0f85
+mov dword [ebp - 0x34], 1
+
+loc_fffc0f79: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+test eax, eax
+jne short loc_fffc0f79 ; jne 0xfffc0f79
+jmp near loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc0f85: ; not directly referenced
+mov eax, dword [ebp - 0x58]
+je short loc_fffc0fb1 ; je 0xfffc0fb1
+call fcn_fffb2181 ; call 0xfffb2181
+and eax, 0xff
+mov edx, dword [ebp + ebx*4 - 0x20]
+and edx, 0xff00ffff
+mov byte [ebp + ebx - 0x40], 0
+shl eax, 0x10
+or eax, edx
+mov dword [ebp + ebx*4 - 0x20], eax
+jmp near loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc0fb1: ; not directly referenced
+call fcn_fffb2181 ; call 0xfffb2181
+shl eax, 0x18
+mov edx, dword [ebp + ebx*4 - 0x20]
+and edx, 0xffffff
+or eax, edx
+mov dword [ebp + ebx*4 - 0x20], eax
+mov byte [ebp + ebx - 0x40], 1
+jmp near loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc0fd3: ; not directly referenced
+mov esi, dword [ebp - 0x78]
+mov al, byte [ebp - 0x4c]
+cmp al, byte [ebp + esi - 0x3a]
+jne loc_fffc10c2 ; jne 0xfffc10c2
+inc cl
+je loc_fffc106c ; je 0xfffc106c
+test dl, dl
+jg short loc_fffc106c ; jg 0xfffc106c
+mov eax, dword [ebp - 0x58]
+mov byte [ebp - 0xc8], dl
+call fcn_fffb2181 ; call 0xfffb2181
+mov dl, byte [ebp - 0xc8]
+mov cl, 0xf8
+mov dword [ebp - 0xb4], eax
+mov al, dl
+imul eax, ecx
+mov esi, dword [ebp + ebx*4 - 0x20]
+mov byte [ebp - 0x5b], al
+add eax, 0x27
+xor ecx, ecx
+cmp al, 0x3e
+mov dword [ebp - 0xb8], esi
+ja short loc_fffc105e ; ja 0xfffc105e
+lea ecx, [edx*8 + 8]
+movzx eax, byte [ebp - 0xb4]
+mov esi, 0xff
+shl esi, cl
+shl eax, cl
+mov cl, byte [ebp - 0x5b]
+not esi
+add ecx, 8
+and esi, dword [ebp - 0xb8]
+or eax, esi
+test cl, cl
+jle short loc_fffc1055 ; jle 0xfffc1055
+shl eax, cl
+jmp short loc_fffc105c ; jmp 0xfffc105c
+
+loc_fffc1055: ; not directly referenced
+movsx ecx, cl
+neg ecx
+shr eax, cl
+
+loc_fffc105c: ; not directly referenced
+mov ecx, eax
+
+loc_fffc105e: ; not directly referenced
+mov al, byte [ebp - 0x4c]
+mov dword [ebp + ebx*4 - 0x20], ecx
+dec eax
+mov byte [ebp + ebx - 0x3e], al
+jmp short loc_fffc10a0 ; jmp 0xfffc10a0
+
+loc_fffc106c: ; not directly referenced
+mov esi, dword [ebp + ebx*4 - 0x20]
+mov eax, dword [ebp - 0x58]
+mov byte [ebp - 0xc8], dl
+call fcn_fffb2181 ; call 0xfffb2181
+mov ecx, esi
+and esi, 0xff0000
+shr esi, 8
+and ecx, 0xffff
+add esi, eax
+shl esi, 0x10
+or esi, ecx
+mov dword [ebp + ebx*4 - 0x20], esi
+mov dl, byte [ebp - 0xc8]
+
+loc_fffc10a0: ; not directly referenced
+mov ecx, dword [ebp - 0x78]
+mov esi, dword [ebp - 0x78]
+mov cl, byte [ebp + ecx - 0x3c]
+cmp byte [ebp + esi - 0x3a], cl
+jae short loc_fffc10b5 ; jae 0xfffc10b5
+mov byte [ebp + ebx - 0x40], 1
+
+loc_fffc10b5: ; not directly referenced
+test dl, dl
+jg short loc_fffc10d0 ; jg 0xfffc10d0
+
+loc_fffc10b9: ; not directly referenced
+mov word [ebp + ebx*2 - 0x28], 0
+jmp short loc_fffc10d0 ; jmp 0xfffc10d0
+
+loc_fffc10c2: ; not directly referenced
+mov dword [ebp - 0x38], 1
+
+loc_fffc10c9: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+test eax, eax
+jne short loc_fffc10c9 ; jne 0xfffc10c9
+
+loc_fffc10d0: ; not directly referenced
+mov al, byte [ebp + ebx - 0x42]
+cmp byte [ebp - 0x4c], al
+jne short loc_fffc10de ; jne 0xfffc10de
+mov byte [ebp + ebx - 0x40], 1
+
+loc_fffc10de: ; not directly referenced
+cmp dword [ebp - 0x58], 0
+jne short loc_fffc10f9 ; jne 0xfffc10f9
+cmp al, byte [ebp + ebx - 0x3e]
+jne short loc_fffc10f9 ; jne 0xfffc10f9
+cmp word [ebp + ebx*2 - 0x28], 1
+jne short loc_fffc10f9 ; jne 0xfffc10f9
+mov word [ebp + ebx*4 - 0x1e], 0xfffe
+
+loc_fffc10f9: ; not directly referenced
+cmp byte [ebp - 0x4c], 0
+jne short loc_fffc111d ; jne 0xfffc111d
+cmp dword [ebp - 0x58], 0
+mov word [ebp + ebx*2 - 0x28], 1
+je short loc_fffc111d ; je 0xfffc111d
+mov byte [ebp + ebx - 0x40], 1
+mov byte [ebp + ebx - 0x3e], 0
+mov word [ebp + ebx*4 - 0x1e], 0x707
+
+loc_fffc111d: ; not directly referenced
+cmp dword [ebp - 0x6c], 0
+jne short loc_fffc1156 ; jne 0xfffc1156
+cmp word [ebp + ebx*2 - 0x28], 1
+jne short loc_fffc1145 ; jne 0xfffc1145
+cmp byte [ebp + ebx - 0x40], 1
+je short loc_fffc1156 ; je 0xfffc1156
+mov esi, dword [ebp - 0x60]
+mov al, byte [ebp + ebx - 0x3c]
+inc eax
+mov byte [ebp + ebx - 0x3c], al
+movzx eax, al
+mov dword [esi], eax
+jmp short loc_fffc1156 ; jmp 0xfffc1156
+
+loc_fffc1145: ; not directly referenced
+mov edx, dword [ebp - 0x60]
+mov al, byte [ebp + ebx - 0x3a]
+dec eax
+mov byte [ebp + ebx - 0x3a], al
+movzx eax, al
+mov dword [edx], eax
+
+loc_fffc1156: ; not directly referenced
+inc ebx
+add dword [ebp - 0x60], 0x48
+cmp ebx, 2
+jne loc_fffc0e44 ; jne 0xfffc0e44
+cmp dword [ebp - 0x6c], 0
+jne short loc_fffc1172 ; jne 0xfffc1172
+
+loc_fffc116a: ; not directly referenced
+inc dword [ebp - 0x70]
+jmp near loc_fffc123b ; jmp 0xfffc123b
+
+loc_fffc1172: ; not directly referenced
+cmp word [ebp - 0x28], 1
+jne short loc_fffc11e9 ; jne 0xfffc11e9
+cmp word [ebp - 0x26], 1
+jne short loc_fffc11e9 ; jne 0xfffc11e9
+cmp byte [ebp - 0x40], 1
+jne short loc_fffc118c ; jne 0xfffc118c
+cmp byte [ebp - 0x3f], 1
+je short loc_fffc116a ; je 0xfffc116a
+
+loc_fffc118c: ; not directly referenced
+movzx eax, byte [ebp - 0x59]
+mov ebx, dword [ebp - 0x54]
+imul ecx, dword [ebp - 0x64], 0x24
+mov dl, byte [ebp + eax - 0x3c]
+inc edx
+mov byte [ebp + eax - 0x3c], dl
+imul eax, eax, 0x12
+movzx edx, dl
+add eax, ecx
+add eax, dword [ebp - 0x50]
+mov dword [ebx + eax*4], edx
+
+loc_fffc11ae: ; not directly referenced
+cmp dword [ebp - 0xa4], 0
+je short loc_fffc11e1 ; je 0xfffc11e1
+movzx eax, byte [ebp - 0x59]
+mov esi, dword [ebp - 0x54]
+imul edx, eax, 0x12
+imul ecx, dword [ebp - 0x64], 0x24
+mov ebx, dword [ebp - 0x74]
+add edx, ecx
+add edx, dword [ebp - 0x50]
+mov edx, dword [esi + edx*4]
+mov dword [ebx - 0x48], edx
+mov dl, byte [ebp + eax - 0x3a]
+mov al, byte [ebp + eax - 0x3c]
+mov byte [ebp - 0x3a], dl
+mov byte [ebp - 0x3c], al
+
+loc_fffc11e1: ; not directly referenced
+cmp dword [ebp - 0x80], 0
+je short loc_fffc116a ; je 0xfffc116a
+jmp short loc_fffc120d ; jmp 0xfffc120d
+
+loc_fffc11e9: ; not directly referenced
+movzx eax, byte [ebp - 0x59]
+mov esi, dword [ebp - 0x54]
+imul ecx, dword [ebp - 0x64], 0x24
+mov dl, byte [ebp + eax - 0x3a]
+dec edx
+mov byte [ebp + eax - 0x3a], dl
+imul eax, eax, 0x12
+movzx edx, dl
+add eax, ecx
+add eax, dword [ebp - 0x50]
+mov dword [esi + eax*4], edx
+jmp short loc_fffc11ae ; jmp 0xfffc11ae
+
+loc_fffc120d: ; not directly referenced
+movzx eax, byte [ebp - 0x59]
+mov ebx, dword [ebp - 0x54]
+imul edx, eax, 0x12
+imul ecx, dword [ebp - 0x64], 0x24
+mov esi, dword [ebp - 0x74]
+add edx, ecx
+add edx, dword [ebp - 0x50]
+mov edx, dword [ebx + edx*4]
+mov dword [esi], edx
+mov dl, byte [ebp + eax - 0x3a]
+mov al, byte [ebp + eax - 0x3c]
+mov byte [ebp - 0x39], dl
+mov byte [ebp - 0x3b], al
+jmp near loc_fffc116a ; jmp 0xfffc116a
+
+loc_fffc123b: ; not directly referenced
+mov ebx, dword [ebp - 0xac]
+cmp dword [ebp - 0x70], ebx
+jb loc_fffc0d37 ; jb 0xfffc0d37
+
+loc_fffc124a: ; not directly referenced
+cmp word [ebp - 0x28], 0
+je loc_fffc0d11 ; je 0xfffc0d11
+cmp byte [ebp - 0x40], 0
+je loc_fffc0d11 ; je 0xfffc0d11
+cmp word [ebp - 0x26], 0
+je loc_fffc0d11 ; je 0xfffc0d11
+cmp byte [ebp - 0x3f], 0
+je loc_fffc0d11 ; je 0xfffc0d11
+xor ebx, ebx
+
+loc_fffc1276: ; not directly referenced
+mov esi, dword [ebp - 0x68]
+bt esi, ebx
+jae short loc_fffc12cb ; jae 0xfffc12cb
+cmp byte [ebp - 0x5c], 0
+je short loc_fffc12b7 ; je 0xfffc12b7
+mov edx, dword [ebp + ebx*4 - 0x20]
+sub esp, 0xc
+mov ecx, edx
+push dword [ebp + 0x18]
+shr edx, 0x10
+shr ecx, 0x18
+and edx, 0xff
+movzx eax, byte [ebp + ebx - 0x3e]
+call fcn_fffc8bf1 ; call 0xfffc8bf1
+imul edx, ebx, 0x48
+mov esi, dword [ebp - 0x9c]
+add esp, 0x10
+mov dword [esi + edx], eax
+jmp short loc_fffc12cb ; jmp 0xfffc12cb
+
+loc_fffc12b7: ; not directly referenced
+imul eax, ebx, 0x48
+mov esi, dword [ebp - 0x9c]
+movzx edx, byte [ebp + ebx - 0x3e]
+imul edx, edx, 0xa
+mov dword [esi + eax], edx
+
+loc_fffc12cb: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc1276 ; jne 0xfffc1276
+inc dword [ebp - 0x50]
+add dword [ebp - 0x74], 4
+cmp dword [ebp - 0x50], 2
+jne loc_fffc0b5a ; jne 0xfffc0b5a
+cmp byte [ebp - 0x5a], 0xd
+jne short loc_fffc1301 ; jne 0xfffc1301
+push eax
+xor ecx, ecx
+mov edx, 2
+push eax
+mov eax, edi
+push 0
+push 0
+call fcn_fffafeda ; call 0xfffafeda
+add esp, 0x10
+jmp short loc_fffc1327 ; jmp 0xfffc1327
+
+loc_fffc1301: ; not directly referenced
+push 2
+movzx edx, byte [ebp - 0x5a]
+xor ecx, ecx
+push 0
+mov eax, edi
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+mov dword [ebp - 0x84], eax
+add esp, 0x20
+
+loc_fffc1327: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+mov dword [eax + 0x4cf0], 0
+mov eax, dword [ebp - 0x84]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc1345: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x44]
+mov esi, ref_fffcbe94 ; mov esi, 0xfffcbe94
+push ebx
+mov ebx, eax
+mov eax, ecx
+lea esp, [esp - 0x4c]
+mov ecx, 0xb
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+push 0
+lea ecx, [ebp - 0x4f]
+mov esi, eax
+push 0
+mov word [ebp - 0x4f], 4
+mov dword [ebp - 0x4d], 0
+push 1
+mov dword [ebp - 0x49], 9
+mov byte [ebp - 0x45], 2
+push ecx
+movzx ecx, byte [ebp + 8]
+push ecx
+lea ecx, [ebp - 0x44]
+push ecx
+xor ecx, ecx
+push eax
+mov eax, ebx
+push 0x80
+call fcn_fffb2650 ; call 0xfffb2650
+lea edx, [esi - 4]
+add esp, 0x20
+test dl, dl
+mov al, 1
+mov byte [ebx + 0x1768], 2
+cmovg eax, edx
+mov byte [ebx + 0x1769], al
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc13c0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+lea esp, [esp - 0x8c]
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x70], dl
+mov byte [ebp - 0x61], cl
+mov dl, byte [ebp + 0xc]
+mov cl, byte [ebp + 0x10]
+mov byte [ebp - 0x62], al
+mov al, byte [ebp + 0x14]
+mov byte [ebp - 0x63], dl
+mov byte [ebp - 0x6c], cl
+mov byte [ebp - 0x64], al
+mov ecx, 1
+mov edx, 7
+lea eax, [ebp - 0x4f]
+call fcn_fffa119f ; call 0xfffa119f
+movsx si, byte [ebp - 0x6c]
+cmp dword [edi + 0x1749], 2
+mov word [ebp - 0x78], si
+setne bl
+mov word [ebp - 0x68], si
+movzx esi, byte [ebp - 0x61]
+mov dword [ebp - 0x74], esi
+sar esi, 1
+lea ebx, [ebx*4 + 2]
+mov dword [ebp - 0x90], esi
+jmp near loc_fffc1608 ; jmp 0xfffc1608
+
+loc_fffc1431: ; not directly referenced
+push 0
+movzx eax, byte [ebp - 0x63]
+mov edx, 1
+push esi
+movzx ecx, byte [ebp - 0x70]
+push eax
+mov al, byte [ebp - 0x62]
+and al, byte [edi + 0x4e12]
+movzx eax, al
+push eax
+mov eax, edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc1459: ; not directly referenced
+sub esp, 0xc
+push edi
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+cmp dword [ebp + 0x20], 0
+je short loc_fffc148d ; je 0xfffc148d
+push eax
+lea eax, [ebp - 0x4f]
+mov edx, dword [ebp - 0x74]
+push 0
+movzx ecx, byte [edi + 0x1768]
+push 1
+push eax
+mov eax, edi
+call fcn_fffb21f3 ; call 0xfffb21f3
+mov byte [ebp - 0x5c], al
+add esp, 0x10
+jmp short loc_fffc14e8 ; jmp 0xfffc14e8
+
+loc_fffc148d: ; not directly referenced
+mov dword [ebp - 0x60], 0
+mov byte [ebp - 0x5c], 0
+
+loc_fffc1498: ; not directly referenced
+push eax
+mov ecx, dword [ebp + 0x18]
+mov edx, dword [ebp - 0x60]
+push eax
+push 0
+movsx eax, byte [ecx + edx]
+xor ecx, ecx
+push eax
+mov edx, 2
+mov eax, edi
+call fcn_fffafeda ; call 0xfffafeda
+add esp, 0xc
+lea eax, [ebp - 0x4f]
+push 0
+movzx ecx, byte [edi + 0x1768]
+mov edx, dword [ebp - 0x74]
+push 1
+push eax
+mov eax, edi
+call fcn_fffb21f3 ; call 0xfffb21f3
+add esp, 0x10
+or byte [ebp - 0x5c], al
+mov dl, byte [ebp - 0x61]
+cmp byte [ebp - 0x5c], dl
+je short loc_fffc14e8 ; je 0xfffc14e8
+inc dword [ebp - 0x60]
+cmp dword [ebp - 0x60], 2
+jne short loc_fffc1498 ; jne 0xfffc1498
+
+loc_fffc14e8: ; not directly referenced
+movzx eax, bl
+mov edx, esi
+sub edx, eax
+mov dword [ebp - 0x60], eax
+mov al, byte [ebp - 0x64]
+xor ecx, ecx
+sub eax, ebx
+mov dword [ebp - 0x84], edx
+movzx eax, al
+mov dword [ebp - 0x8c], eax
+movsx eax, byte [ebp - 0x6c]
+
+loc_fffc150c: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x61], dl
+je loc_fffc15f7 ; je 0xfffc15f7
+test byte [ebp - 0x5c], dl
+sete dl
+movzx edx, dl
+mov dword [ebp - 0x7c], edx
+mov edx, dword [ebp - 0x78]
+cmp word [ebp - 0x68], dx
+jne short loc_fffc1576 ; jne 0xfffc1576
+cmp dword [ebp - 0x7c], 0
+je short loc_fffc1554 ; je 0xfffc1554
+mov dword [ebp + ecx*4 - 0x20], eax
+mov dword [ebp + ecx*4 - 0x28], eax
+mov dword [ebp + ecx*4 - 0x30], eax
+mov dword [ebp + ecx*4 - 0x38], eax
+mov dword [ebp + ecx*4 - 0x40], eax
+mov dword [ebp + ecx*4 - 0x48], eax
+jmp near loc_fffc15f7 ; jmp 0xfffc15f7
+
+loc_fffc1554: ; not directly referenced
+mov edx, eax
+sub edx, dword [ebp - 0x60]
+mov dword [ebp + ecx*4 - 0x20], edx
+mov dword [ebp + ecx*4 - 0x28], edx
+mov dword [ebp + ecx*4 - 0x30], edx
+mov dword [ebp + ecx*4 - 0x38], edx
+mov dword [ebp + ecx*4 - 0x40], edx
+mov dword [ebp + ecx*4 - 0x48], edx
+jmp near loc_fffc15f7 ; jmp 0xfffc15f7
+
+loc_fffc1576: ; not directly referenced
+cmp dword [ebp - 0x7c], 0
+je short loc_fffc15f7 ; je 0xfffc15f7
+mov edx, dword [ebp - 0x84]
+cmp dword [ebp + ecx*4 - 0x40], edx
+jne short loc_fffc158c ; jne 0xfffc158c
+mov dword [ebp + ecx*4 - 0x40], esi
+
+loc_fffc158c: ; not directly referenced
+mov edx, dword [ebp - 0x84]
+cmp dword [ebp + ecx*4 - 0x30], edx
+mov dword [ebp + ecx*4 - 0x30], esi
+jne short loc_fffc159e ; jne 0xfffc159e
+jmp short loc_fffc15a2 ; jmp 0xfffc15a2
+
+loc_fffc159e: ; not directly referenced
+mov dword [ebp + ecx*4 - 0x38], esi
+
+loc_fffc15a2: ; not directly referenced
+cmp esi, dword [ebp - 0x8c]
+jl short loc_fffc15bf ; jl 0xfffc15bf
+cmp dword [ebp + ecx*4 - 0x48], eax
+jne short loc_fffc15bf ; jne 0xfffc15bf
+mov edx, dword [ebp + ecx*4 - 0x40]
+sub edx, eax
+add edx, dword [ebp - 0x60]
+add edx, esi
+mov dword [ebp + ecx*4 - 0x30], edx
+
+loc_fffc15bf: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x30]
+mov dword [ebp - 0x7c], edx
+mov edx, dword [ebp + ecx*4 - 0x38]
+mov dword [ebp - 0x80], edx
+mov edx, dword [ebp - 0x7c]
+sub edx, dword [ebp - 0x80]
+mov dword [ebp - 0x88], edx
+mov edx, dword [ebp + ecx*4 - 0x20]
+sub edx, dword [ebp + ecx*4 - 0x28]
+cmp dword [ebp - 0x88], edx
+jle short loc_fffc15f7 ; jle 0xfffc15f7
+mov edx, dword [ebp - 0x80]
+mov dword [ebp + ecx*4 - 0x28], edx
+mov edx, dword [ebp - 0x7c]
+mov dword [ebp + ecx*4 - 0x20], edx
+
+loc_fffc15f7: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne loc_fffc150c ; jne 0xfffc150c
+movzx eax, bl
+add word [ebp - 0x68], ax
+
+loc_fffc1608: ; not directly referenced
+movzx ecx, byte [ebp - 0x64]
+movsx esi, word [ebp - 0x68]
+mov dword [ebp - 0x60], ecx
+cmp esi, ecx
+jg short loc_fffc1654 ; jg 0xfffc1654
+test byte [ebp - 0x61], 1
+je short loc_fffc1642 ; je 0xfffc1642
+push 0
+movzx eax, byte [ebp - 0x63]
+xor edx, edx
+push esi
+movzx ecx, byte [ebp - 0x70]
+push eax
+mov al, byte [ebp - 0x62]
+and al, byte [edi + 0x3acb]
+movzx eax, al
+push eax
+mov eax, edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc1642: ; not directly referenced
+test byte [ebp - 0x90], 1
+je loc_fffc1459 ; je 0xfffc1459
+jmp near loc_fffc1431 ; jmp 0xfffc1431
+
+loc_fffc1654: ; not directly referenced
+movzx eax, bl
+mov ecx, 2
+movsx esi, byte [ebp - 0x6c]
+lea eax, [eax + eax*2]
+mov dword [ebp - 0x74], eax
+mov eax, dword [ebp - 0x60]
+add eax, esi
+mov dword [ebp - 0x68], esi
+cdq
+xor ebx, ebx
+idiv ecx
+movzx esi, byte [ebp - 0x61]
+mov dword [ebp - 0x78], esi
+movzx esi, byte [ebp - 0x70]
+mov dword [ebp - 0x70], esi
+mov dword [ebp - 0x6c], eax
+
+loc_fffc1684: ; not directly referenced
+mov esi, dword [ebp - 0x78]
+bt esi, ebx
+jb short loc_fffc1698 ; jb 0xfffc1698
+
+loc_fffc168c: ; not directly referenced
+inc ebx
+cmp ebx, 2
+je loc_fffc174d ; je 0xfffc174d
+jmp short loc_fffc1684 ; jmp 0xfffc1684
+
+loc_fffc1698: ; not directly referenced
+mov esi, dword [ebp + ebx*4 - 0x20]
+mov eax, dword [ebp + ebx*4 - 0x28]
+mov edx, esi
+mov dword [ebp - 0x5c], eax
+sub edx, eax
+cmp edx, dword [ebp - 0x74]
+mov eax, dword [ebp - 0x6c]
+jl short loc_fffc16c6 ; jl 0xfffc16c6
+mov ecx, dword [ebp - 0x60]
+sub ecx, dword [ebp - 0x68]
+cmp edx, ecx
+jge short loc_fffc16c6 ; jge 0xfffc16c6
+mov eax, dword [ebp - 0x5c]
+mov ecx, 2
+add eax, esi
+cdq
+idiv ecx
+
+loc_fffc16c6: ; not directly referenced
+imul edx, ebx, 0x1347
+mov cl, byte [ebp - 0x62]
+and cl, byte [edi + edx + 0x3acb]
+cmp dword [ebp + 0x1c], 0
+mov byte [ebp - 0x61], cl
+jne short loc_fffc16fa ; jne 0xfffc16fa
+push 1
+mov edx, ebx
+push eax
+movzx eax, byte [ebp - 0x63]
+push eax
+movzx eax, cl
+mov ecx, dword [ebp - 0x70]
+push eax
+mov eax, edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc16fa: ; not directly referenced
+mov eax, dword [ebp - 0x5c]
+mov edx, dword [ebp - 0x5c]
+sar eax, 0x1f
+movzx ecx, byte [ebp - 0x61]
+xor edx, eax
+sub edx, eax
+mov eax, esi
+sar eax, 0x1f
+xor esi, eax
+sub esi, eax
+imul eax, ebx, 0x48
+imul edx, edx, 0xa
+imul esi, esi, 0xa
+mov dword [ebp - 0x5c], edx
+mov dword [ebp - 0x7c], esi
+lea edx, [edi + eax + 0x24f4]
+xor eax, eax
+
+loc_fffc172c: ; not directly referenced
+bt ecx, eax
+jae short loc_fffc173c ; jae 0xfffc173c
+mov esi, dword [ebp - 0x5c]
+mov dword [edx], esi
+mov esi, dword [ebp - 0x7c]
+mov dword [edx + 4], esi
+
+loc_fffc173c: ; not directly referenced
+inc eax
+add edx, 0x90
+cmp eax, 4
+jne short loc_fffc172c ; jne 0xfffc172c
+jmp near loc_fffc168c ; jmp 0xfffc168c
+
+loc_fffc174d: ; not directly referenced
+cmp dword [ebp + 0x20], 0
+jne short loc_fffc176a ; jne 0xfffc176a
+push eax
+xor ecx, ecx
+mov edx, 2
+push eax
+mov eax, edi
+push 0
+push 0
+call fcn_fffafeda ; call 0xfffafeda
+add esp, 0x10
+
+loc_fffc176a: ; not directly referenced
+sub esp, 0xc
+push edi
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0x10
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc177e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, ecx
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x2c]
+mov al, byte [ebp + 8]
+mov ecx, dword [ebp + 0xc]
+mov byte [ebp - 0x37], al
+mov eax, dword [ebp + 0x10]
+mov byte [ebp - 0x2c], dl
+mov word [ebp - 0x2e], cx
+mov word [ebp - 0x30], ax
+mov ecx, 1
+mov edx, 7
+lea eax, [ebp - 0x27]
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x20], 0
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, esi
+mov eax, esi
+and ecx, 1
+and eax, 2
+mov byte [ebp - 0x36], cl
+mov ecx, esi
+movzx esi, cl
+mov byte [ebp - 0x35], al
+movzx eax, byte [ebp - 0x2c]
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x2c], eax
+jmp near loc_fffc18b6 ; jmp 0xfffc18b6
+
+loc_fffc17e9: ; not directly referenced
+mov ecx, dword [ebp - 0x34]
+bt ecx, esi
+jae short loc_fffc1814 ; jae 0xfffc1814
+cmp dword [ebp + esi*4 - 0x20], 0
+jne short loc_fffc1814 ; jne 0xfffc1814
+push 0
+movsx eax, bx
+mov ecx, dword [ebp - 0x2c]
+push eax
+movzx eax, byte [ebp - 0x37]
+mov edx, esi
+push 3
+push eax
+mov eax, edi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc1814: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffc17e9 ; jne 0xfffc17e9
+sub esp, 0xc
+push edi
+call fcn_fffbd7da ; call 0xfffbd7da
+add esp, 0xc
+lea eax, [ebp - 0x27]
+push 0
+movzx ecx, byte [edi + 0x1768]
+mov edx, dword [ebp - 0x34]
+push 1
+push eax
+mov eax, edi
+call fcn_fffb21f3 ; call 0xfffb21f3
+mov dl, bl
+add esp, 0x10
+neg edx
+test bx, bx
+cmovns edx, ebx
+cmp byte [ebp - 0x36], 0
+je short loc_fffc186a ; je 0xfffc186a
+cmp dword [ebp - 0x20], 0
+jne short loc_fffc186a ; jne 0xfffc186a
+test al, 1
+je short loc_fffc1865 ; je 0xfffc1865
+mov dword [ebp - 0x20], 1
+jmp short loc_fffc186a ; jmp 0xfffc186a
+
+loc_fffc1865: ; not directly referenced
+mov ecx, dword [ebp + 0x14]
+mov byte [ecx], dl
+
+loc_fffc186a: ; not directly referenced
+cmp byte [ebp - 0x35], 0
+je short loc_fffc1889 ; je 0xfffc1889
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffc1889 ; jne 0xfffc1889
+test al, 2
+jne short loc_fffc1882 ; jne 0xfffc1882
+mov eax, dword [ebp + 0x14]
+mov byte [eax + 1], dl
+jmp short loc_fffc1889 ; jmp 0xfffc1889
+
+loc_fffc1882: ; not directly referenced
+mov dword [ebp - 0x1c], 1
+
+loc_fffc1889: ; not directly referenced
+add ebx, dword [ebp - 0x30]
+cmp word [ebp - 0x30], 0
+jle short loc_fffc189c ; jle 0xfffc189c
+cmp bx, word [ebp - 0x2e]
+setg al
+jmp short loc_fffc18a3 ; jmp 0xfffc18a3
+
+loc_fffc189c: ; not directly referenced
+cmp bx, word [ebp - 0x2e]
+setl al
+
+loc_fffc18a3: ; not directly referenced
+movzx eax, al
+cmp dword [ebp - 0x20], 0
+je short loc_fffc18b2 ; je 0xfffc18b2
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffc18bd ; jne 0xfffc18bd
+
+loc_fffc18b2: ; not directly referenced
+test eax, eax
+jne short loc_fffc18bd ; jne 0xfffc18bd
+
+loc_fffc18b6: ; not directly referenced
+xor esi, esi
+jmp near loc_fffc17e9 ; jmp 0xfffc17e9
+
+loc_fffc18bd: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc18c5:
+db 0x00
+db 0x00
+db 0x00
+
+fcn_fffc18c8:
+push ebp
+mov ecx, 8
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, 0xff800000
+sub ebx, 0xff7d7544
+lea esp, [esp - 0x1c]
+sar ebx, 2
+mov eax, ebx
+cdq
+idiv ecx
+mov dword [ebp - 0x1c], eax
+xor eax, eax
+jmp short loc_fffc190c ; jmp 0xfffc190c
+
+loc_fffc18f1:
+xor edx, edx
+
+loc_fffc18f3:
+lea ecx, [edx + eax]
+inc edx
+cmp edx, 4
+mov dword [ecx*4 - 0x828abc], 0xdeedbeef
+jne short loc_fffc18f3 ; jne 0xfffc18f3
+add eax, 0x100
+
+loc_fffc190c:
+cmp eax, dword [ebp - 0x1c]
+jl short loc_fffc18f1 ; jl 0xfffc18f1
+mov eax, dword [ebp + 8]
+xor esi, esi
+call fcn_fffa2c51 ; call 0xfffa2c51
+mov edi, eax
+jmp short loc_fffc1939 ; jmp 0xfffc1939
+
+loc_fffc191f:
+xor eax, eax
+
+loc_fffc1921:
+lea ecx, [eax + esi]
+cmp dword [ecx*4 - 0x828abc], 0xdeedbeef
+jne short loc_fffc195a ; jne 0xfffc195a
+inc eax
+cmp eax, 4
+jne short loc_fffc1921 ; jne 0xfffc1921
+jmp short loc_fffc1952 ; jmp 0xfffc1952
+
+loc_fffc1939:
+cmp esi, dword [ebp - 0x1c]
+jl short loc_fffc191f ; jl 0xfffc191f
+jmp short loc_fffc197a ; jmp 0xfffc197a
+
+loc_fffc1940:
+sub esp, 0xc
+push ref_fffcc6f2 ; push 0xfffcc6f2
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+
+loc_fffc1950:
+jmp short loc_fffc1950 ; jmp 0xfffc1950
+
+loc_fffc1952:
+add esi, 0x100
+jmp short loc_fffc1939 ; jmp 0xfffc1939
+
+loc_fffc195a:
+push eax
+lea eax, [ebx*4]
+sub ebx, esi
+push eax
+shl ebx, 2
+push ebx
+push ref_fffcc725 ; push 0xfffcc725
+call fcn_fffa1253 ; call 0xfffa1253
+add esp, 0x10
+test esi, esi
+je short loc_fffc1940 ; je 0xfffc1940
+
+loc_fffc197a:
+sub esp, 0xc
+push ref_fffcc70e ; push 0xfffcc70e
+call fcn_fffa1253 ; call 0xfffa1253
+mov eax, 8
+call fcn_fffa2937 ; call 0xfffa2937
+lea esp, [ebp - 0xc]
+mov eax, edi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc199b:
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+lea esi, [eax + edx]
+push ebx
+mov ebx, eax
+lea esp, [esp - 0xc]
+jmp short loc_fffc19c4 ; jmp 0xfffc19c4
+
+loc_fffc19ae:
+movzx edx, byte [ebx]
+mov eax, dword [0xff7d753c]
+inc ebx
+test eax, eax
+je short loc_fffc19c4 ; je 0xfffc19c4
+sub esp, 0xc
+push edx
+call eax ; ucall
+add esp, 0x10
+
+loc_fffc19c4:
+cmp ebx, esi
+jne short loc_fffc19ae ; jne 0xfffc19ae
+mov dword [edi], 0xffffffff
+lea esp, [ebp - 0xc]
+pop ebx
+xor eax, eax
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc19d8:
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, edx
+push ebx
+mov ebx, edx
+lea esp, [esp - 0x1c]
+test edx, edx
+mov dword [ebp - 0x1c], eax
+mov dword [ebp - 0x20], ecx
+jne short loc_fffc1a2c ; jne 0xfffc1a2c
+
+loc_fffc19f0:
+cmp dword [ebp + 8], 0
+setne dl
+cmp dword [ebp - 0x20], 0
+setne al
+test dl, al
+je short loc_fffc1a47 ; je 0xfffc1a47
+jmp short loc_fffc1a32 ; jmp 0xfffc1a32
+
+loc_fffc1a04:
+cmp esi, 0x10
+mov edi, 0x10
+mov ecx, dword [ebp - 0x1c]
+mov eax, ref_fffcbec0 ; mov eax, 0xfffcbec0
+cmovle edi, esi
+mov edx, edi
+call fcn_fffc199b ; call 0xfffc199b
+test eax, eax
+jns short loc_fffc1a2a ; jns 0xfffc1a2a
+
+loc_fffc1a22:
+or eax, 0xffffffff
+jmp near loc_fffc1ad9 ; jmp 0xfffc1ad9
+
+loc_fffc1a2a:
+sub esi, edi
+
+loc_fffc1a2c:
+test esi, esi
+jg short loc_fffc1a04 ; jg 0xfffc1a04
+jmp short loc_fffc19f0 ; jmp 0xfffc19f0
+
+loc_fffc1a32:
+mov ecx, dword [ebp - 0x1c]
+mov edx, dword [ebp + 8]
+mov eax, dword [ebp - 0x20]
+call fcn_fffc199b ; call 0xfffc199b
+test eax, eax
+js short loc_fffc1a22 ; js 0xfffc1a22
+add ebx, dword [ebp + 8]
+
+loc_fffc1a47:
+cmp dword [ebp + 0xc], 0
+je short loc_fffc1a52 ; je 0xfffc1a52
+mov esi, dword [ebp + 0xc]
+jmp short loc_fffc1a7d ; jmp 0xfffc1a7d
+
+loc_fffc1a52:
+add ebx, dword [ebp + 0xc]
+cmp dword [ebp + 0x14], 0
+je short loc_fffc1a83 ; je 0xfffc1a83
+jmp short loc_fffc1a91 ; jmp 0xfffc1a91
+
+loc_fffc1a5d:
+cmp esi, 0x10
+mov edi, 0x10
+mov ecx, dword [ebp - 0x1c]
+mov eax, ref_fffcbed4 ; mov eax, 0xfffcbed4
+cmovle edi, esi
+mov edx, edi
+call fcn_fffc199b ; call 0xfffc199b
+test eax, eax
+js short loc_fffc1a22 ; js 0xfffc1a22
+sub esi, edi
+
+loc_fffc1a7d:
+test esi, esi
+jg short loc_fffc1a5d ; jg 0xfffc1a5d
+jmp short loc_fffc1a52 ; jmp 0xfffc1a52
+
+loc_fffc1a83:
+add ebx, dword [ebp + 0x14]
+cmp dword [ebp + 0x18], 0
+je short loc_fffc1aa8 ; je 0xfffc1aa8
+mov esi, dword [ebp + 0x18]
+jmp short loc_fffc1ad3 ; jmp 0xfffc1ad3
+
+loc_fffc1a91:
+mov ecx, dword [ebp - 0x1c]
+mov edx, dword [ebp + 0x14]
+mov eax, dword [ebp + 0x10]
+call fcn_fffc199b ; call 0xfffc199b
+test eax, eax
+jns short loc_fffc1a83 ; jns 0xfffc1a83
+jmp near loc_fffc1a22 ; jmp 0xfffc1a22
+
+loc_fffc1aa8:
+mov eax, dword [ebp + 0x18]
+add eax, ebx
+jmp short loc_fffc1ad9 ; jmp 0xfffc1ad9
+
+loc_fffc1aaf:
+cmp esi, 0x10
+mov edi, 0x10
+mov ecx, dword [ebp - 0x1c]
+mov eax, ref_fffcbec0 ; mov eax, 0xfffcbec0
+cmovle edi, esi
+mov edx, edi
+call fcn_fffc199b ; call 0xfffc199b
+test eax, eax
+js loc_fffc1a22 ; js 0xfffc1a22
+sub esi, edi
+
+loc_fffc1ad3:
+test esi, esi
+jg short loc_fffc1aaf ; jg 0xfffc1aaf
+jmp short loc_fffc1aa8 ; jmp 0xfffc1aa8
+
+loc_fffc1ad9:
+lea esp, [esp + 0x1c]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc1ae2:
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+mov ebx, edx
+lea edx, [ebp - 0x1c]
+lea esp, [esp - 0x38]
+mov esi, dword [0xff7d7538]
+mov dword [ebp - 0x20], 1
+mov eax, dword [esi]
+mov dword [ebp - 0x2c], ecx
+push edx
+push 0
+push 0
+push ref_fffcd4f4 ; push 0xfffcd4f4
+push esi
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+mov ecx, dword [ebp - 0x2c]
+push ecx
+lea ecx, [ebp - 0x20]
+mov edx, ebx
+push ecx
+mov ecx, ebx
+movzx ebx, bh
+shr ecx, 0x16
+mov eax, dword [ebp - 0x1c]
+shr edx, 1
+and ecx, 1
+push ecx
+and edx, 0x7f
+push edi
+push ebx
+push edx
+push eax
+push esi
+call dword [eax] ; ucall
+add esp, 0x20
+cmp dword [ebp + 8], 0
+je short loc_fffc1b49 ; je 0xfffc1b49
+mov edx, dword [ebp + 8]
+mov dword [edx], eax
+
+loc_fffc1b49:
+mov eax, dword [ebp - 0x20]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc1b54:
+push ebp
+mov edx, 0x5022
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x50bc]
+mov dword [ebp - 0x50bc], eax
+lea eax, [ebp - 0x503a]
+call fcn_fffa118a ; call 0xfffa118a
+lea eax, [ebp - 0x5079]
+mov ecx, 0x3f
+mov edx, ref_fffcbee8 ; mov edx, 0xfffcbee8
+mov dword [ebp - 0x38ce], eax
+call fcn_fffa115e ; call 0xfffa115e
+mov edx, dword [ebp - 0x50bc]
+push edi
+push edi
+mov eax, dword [edx]
+lea edx, [ebp - 0x509c]
+push edx
+push dword [ebp - 0x50bc]
+call dword [eax + 0x28] ; ucall
+add esp, 0x10
+cmp dword [ebp - 0x509c], 0x11
+je short loc_fffc1bfd ; je 0xfffc1bfd
+mov ecx, dword [ebp - 0x50bc]
+lea edx, [ebp - 0x50a0]
+mov eax, dword [ecx]
+push edx
+push 0x503b
+push 4
+push ecx
+call dword [eax + 0x34] ; ucall
+add esp, 0x10
+test eax, eax
+js short loc_fffc1c07 ; js 0xfffc1c07
+mov eax, dword [ebp - 0x50a0]
+mov esi, ref_fffcd4c4 ; mov esi, 0xfffcd4c4
+mov ecx, 4
+mov edx, 0x5022
+lea edi, [eax + 8]
+add eax, 0x18
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+call fcn_fffa118a ; call 0xfffa118a
+jmp short loc_fffc1c07 ; jmp 0xfffc1c07
+
+loc_fffc1bfd:
+mov dword [ebp - 0x50a0], 0
+
+loc_fffc1c07:
+mov edx, dword [ebp - 0x50bc]
+sub esp, 0xc
+mov esi, 1
+xor edi, edi
+mov eax, dword [edx]
+lea edx, [ebp - 0x50a4]
+push edx
+push 0
+push 0
+push ref_fffcd4e4 ; push 0xfffcd4e4
+push dword [ebp - 0x50bc]
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+lea eax, [ebp - 0x503a]
+mov edx, 0xdd00
+call fcn_fffc83be ; call 0xfffc83be
+mov ecx, dword [ebp - 0x50bc]
+sub esp, 0xc
+lea edx, [ebp - 0x50a8]
+mov byte [ebp - 0x50aa], 0
+mov eax, dword [ecx]
+push edx
+push 0
+push 0
+push ref_fffcd4d4 ; push 0xfffcd4d4
+push ecx
+call dword [eax + 0x20] ; ucall
+mov eax, esi
+mov ecx, edi
+cpuid
+add esp, 0x20
+and cl, 0x40
+je loc_fffc1d20 ; je 0xfffc1d20
+mov eax, esi
+mov ecx, edi
+cpuid
+mov esi, ecx
+xor eax, eax
+and esi, 0x40
+je short loc_fffc1ca2 ; je 0xfffc1ca2
+mov edx, cr4
+mov eax, edx
+or eax, 0x4000
+mov cr4, eax
+xor eax, eax
+mov ebx, eax
+getsec
+mov cr4, edx
+
+loc_fffc1ca2:
+test al, 1
+je short loc_fffc1d20 ; je 0xfffc1d20
+mov edx, dword [ebp - 0x50bc]
+sub esp, 0xc
+mov ebx, 0x2ee
+mov eax, dword [edx]
+lea edx, [ebp - 0x5088]
+push edx
+push 0
+push 0
+push ref_fffcd4b4 ; push 0xfffcd4b4
+push dword [ebp - 0x50bc]
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+
+loc_fffc1cd2:
+mov ecx, dword [ebp - 0x50bc]
+mov eax, dword [ecx]
+mov eax, dword [eax + 0x60]
+push 0
+push 0xfed40000
+push eax
+push ecx
+call dword [eax + 0x30] ; ucall
+add esp, 0x10
+cmp al, 0xff
+je short loc_fffc1d15 ; je 0xfffc1d15
+test al, al
+js loc_fffc2369 ; js 0xfffc2369
+push esi
+mov eax, dword [ebp - 0x5088]
+push 0x3e8
+push eax
+push dword [ebp - 0x50bc]
+call dword [eax + 4] ; ucall
+add esp, 0x10
+dec bx
+jne short loc_fffc1cd2 ; jne 0xfffc1cd2
+
+loc_fffc1d15:
+mov ecx, 0x2e6
+xor eax, eax
+xor edx, edx
+wrmsr
+
+loc_fffc1d20:
+cmp dword [ebp - 0x509c], 0x11
+mov dword [ebp - 0x50c4], 2
+je short loc_fffc1d5a ; je 0xfffc1d5a
+mov edx, 0xcf8
+mov eax, 0x8000f8a0
+out dx, eax
+mov dl, 0xfc
+in eax, dx
+shr eax, 0x10
+and eax, 0xa0
+cmp eax, 0xa0
+sete al
+movzx eax, al
+mov dword [ebp - 0x50c4], eax
+
+loc_fffc1d5a:
+lea eax, [ebp - 0x5094]
+xor ebx, ebx
+call fcn_fffa9196 ; call 0xfffa9196
+mov eax, dword [ebp - 0x50a4]
+mov esi, dword [eax + 0x15]
+test esi, esi
+je short loc_fffc1dac ; je 0xfffc1dac
+cmp dword [ebp - 0x509c], 4
+je short loc_fffc1dac ; je 0xfffc1dac
+lea eax, [esi + 4]
+mov edx, 0xfd0
+call fcn_fffab210 ; call 0xfffab210
+cmp eax, dword [esi]
+jne short loc_fffc1dac ; jne 0xfffc1dac
+mov edx, dword [ebp - 0x50bc]
+push ebx
+mov bl, 1
+mov eax, dword [edx]
+lea edx, [ebp - 0x5036]
+push 0xfd4
+push esi
+push edx
+call dword [eax + 0x50] ; ucall
+add esp, 0x10
+
+loc_fffc1dac:
+cmp dword [ebp - 0x509c], 0x11
+jne short loc_fffc1dc2 ; jne 0xfffc1dc2
+test bl, bl
+mov eax, 0x8000000e
+je loc_fffc23a2 ; je 0xfffc23a2
+
+loc_fffc1dc2:
+mov ecx, dword [ebp - 0x50bc]
+sub esp, 0xc
+lea edx, [ebp - 0x5098]
+mov eax, dword [ecx]
+push edx
+push 0
+push 0
+push ref_fffcd504 ; push 0xfffcd504
+push ecx
+call dword [eax + 0x20] ; ucall
+mov eax, dword [ebp - 0x50c4]
+add esp, 0x20
+dec eax
+cmp eax, 1
+jbe short loc_fffc1e18 ; jbe 0xfffc1e18
+push ecx
+lea eax, [ebp - 0x50aa]
+push eax
+mov eax, dword [ebp - 0x5098]
+push 0
+push dword [ebp - 0x50bc]
+call dword [eax + 4] ; ucall
+add esp, 0x10
+mov al, 0
+cmp byte [ebp - 0x50aa], 1
+cmove ebx, eax
+
+loc_fffc1e18:
+call fcn_fffc908a ; call 0xfffc908a
+mov esi, eax
+call fcn_fffc9077 ; call 0xfffc9077
+cmp esi, 0x40650
+jne short loc_fffc1e38 ; jne 0xfffc1e38
+mov dword [ebp - 0x4035], 0x40650
+jmp short loc_fffc1e8b ; jmp 0xfffc1e8b
+
+loc_fffc1e38:
+cmp esi, 0x306c0
+jne short loc_fffc1e79 ; jne 0xfffc1e79
+cmp eax, 2
+mov dword [ebp - 0x4035], 0x306c0
+je short loc_fffc1e61 ; je 0xfffc1e61
+cmp eax, 3
+je short loc_fffc1e6d ; je 0xfffc1e6d
+dec eax
+setne al
+movzx eax, al
+lea eax, [eax + eax + 1]
+jmp short loc_fffc1e96 ; jmp 0xfffc1e96
+
+loc_fffc1e61:
+mov dword [ebp - 0x4039], 2
+jmp short loc_fffc1ea8 ; jmp 0xfffc1ea8
+
+loc_fffc1e6d:
+mov dword [ebp - 0x4039], 3
+jmp short loc_fffc1ea8 ; jmp 0xfffc1ea8
+
+loc_fffc1e79:
+cmp esi, 0x40660
+jne short loc_fffc1ea8 ; jne 0xfffc1ea8
+mov dword [ebp - 0x4035], 0x40660
+
+loc_fffc1e8b:
+test eax, eax
+je short loc_fffc1e9e ; je 0xfffc1e9e
+dec eax
+sete al
+movzx eax, al
+
+loc_fffc1e96:
+mov dword [ebp - 0x4039], eax
+jmp short loc_fffc1ea8 ; jmp 0xfffc1ea8
+
+loc_fffc1e9e:
+mov dword [ebp - 0x4039], 0
+
+loc_fffc1ea8:
+mov eax, dword [ebp - 0x50c4]
+dec eax
+cmp eax, 1
+jbe short loc_fffc1ee8 ; jbe 0xfffc1ee8
+dec bl
+jne loc_fffc2376 ; jne 0xfffc2376
+mov edx, dword [ebp - 0x50a4]
+mov eax, dword [edx + 9]
+cmp byte [eax + 0x56], 0
+je loc_fffc2376 ; je 0xfffc2376
+lea eax, [ebp - 0x503a]
+mov edi, 3
+call fcn_fffa10df ; call 0xfffa10df
+test al, al
+je short loc_fffc1f53 ; je 0xfffc1f53
+jmp near loc_fffc2376 ; jmp 0xfffc2376
+
+loc_fffc1ee8:
+test bl, bl
+je loc_fffc2376 ; je 0xfffc2376
+mov edx, dword [ebp - 0x50a4]
+lea eax, [ebp - 0x503a]
+call fcn_fffa10df ; call 0xfffa10df
+dec al
+je loc_fffc2376 ; je 0xfffc2376
+mov eax, dword [ebp - 0x50a4]
+mov eax, dword [eax + 1]
+mov eax, dword [eax + 4]
+movq qword [ebp - 0x5088], mm0
+movq mm0, qword [eax + 0x5d10]
+movq qword [ebp - 0x5090], mm0
+movq mm0, qword [ebp - 0x5088]
+emms
+mov eax, dword [ebp - 0x508c]
+or eax, dword [ebp - 0x5090]
+mov edi, dword [ebp - 0x50c4]
+jne short loc_fffc1f53 ; jne 0xfffc1f53
+dec edi
+je loc_fffc2376 ; je 0xfffc2376
+mov edi, 2
+
+loc_fffc1f53:
+mov edx, 4
+mov eax, ref_fffcd4a4 ; mov eax, 0xfffcd4a4
+call fcn_fffa11b3 ; call 0xfffa11b3
+test eax, eax
+je short loc_fffc1f77 ; je 0xfffc1f77
+mov dl, byte [eax + 0x21]
+add dl, byte [eax + 0x19]
+je short loc_fffc1f77 ; je 0xfffc1f77
+movzx edx, dl
+mov dword [ebp - 0x3fdb], edx
+
+loc_fffc1f77:
+push eax
+lea ecx, [ebp - 0x4062]
+mov edx, edi
+push eax
+push dword [ebp - 0x50a4]
+push dword [ebp - 0x50bc]
+mov eax, dword [ebp - 0x509c]
+call fcn_fffa1d20 ; call 0xfffa1d20
+mov dword [ebp - 0x4015], eax
+mov dword [ebp - 0x3feb], 0
+pop eax
+pop edx
+mov eax, dword [ebp - 0x5098]
+push 0
+push dword [ebp - 0x50bc]
+call dword [eax] ; ucall
+mov dword [ebp - 0x3feb], eax
+add esp, 0x10
+
+loc_fffc1fc3:
+mov ecx, dword [ebp - 0x4015]
+test ecx, ecx
+jne short loc_fffc2000 ; jne 0xfffc2000
+mov esi, 0x8000f8a0
+mov edx, 0xcf8
+mov eax, esi
+out dx, eax
+mov ebx, 0xcfc
+mov edx, ebx
+in eax, dx
+mov dword [ebp - 0x50c0], eax
+mov dl, 0xf8
+mov eax, esi
+out dx, eax
+and dword [ebp - 0x50c0], 0xff7f0000
+mov edx, ebx
+mov eax, dword [ebp - 0x50c0]
+out dx, eax
+
+loc_fffc2000:
+lea eax, [ebp - 0x397c]
+mov dword [ebp - 0x3963], ecx
+mov ebx, 1
+call fcn_fffa9196 ; call 0xfffa9196
+mov dl, 1
+mov word [ebp - 0x50c0], 0
+jmp near loc_fffc2116 ; jmp 0xfffc2116
+
+loc_fffc2026:
+movzx esi, word [ebp - 0x50c0]
+imul esi, esi, 0xc
+movzx eax, ax
+movzx edx, word [esi + ref_fffcbf2c] ; movzx edx, word [esi - 0x340d4]
+cmp word [esi + ref_fffcbf2c], 0xffffffffffffffff ; cmp word [esi - 0x340d4], 0xffffffffffffffff
+lea ecx, [esi + ref_fffcbf28] ; lea ecx, [esi - 0x340d8]
+cmove edx, eax
+lea eax, [ebp - 0x503a]
+mov dword [ebp - 0x50c8], ecx
+call fcn_fffc83be ; call 0xfffc83be
+cmp dword [esi + ref_fffcbf28], 0 ; cmp dword [esi - 0x340d8], 0
+mov dl, 1
+mov ecx, dword [ebp - 0x50c8]
+je loc_fffc210f ; je 0xfffc210f
+mov al, byte [ecx + 0xb]
+cmp byte [ebp - 0x4022], al
+jae loc_fffc210f ; jae 0xfffc210f
+mov eax, dword [ebp - 0x4021]
+test eax, eax
+jne short loc_fffc2090 ; jne 0xfffc2090
+test byte [ecx + 0xa], 0x10
+jmp short loc_fffc2097 ; jmp 0xfffc2097
+
+loc_fffc2090:
+dec eax
+jne short loc_fffc210f ; jne 0xfffc210f
+test byte [ecx + 0xa], 0x20
+
+loc_fffc2097:
+je short loc_fffc210f ; je 0xfffc210f
+mov eax, dword [ebp - 0x3963]
+cmp eax, 2
+jne short loc_fffc20aa ; jne 0xfffc20aa
+test byte [ecx + 0xa], 8
+jmp short loc_fffc20be ; jmp 0xfffc20be
+
+loc_fffc20aa:
+cmp eax, 3
+jne short loc_fffc20b5 ; jne 0xfffc20b5
+test byte [ecx + 0xa], 2
+jmp short loc_fffc20be ; jmp 0xfffc20be
+
+loc_fffc20b5:
+cmp eax, 1
+jne short loc_fffc20c2 ; jne 0xfffc20c2
+test byte [ecx + 0xa], 4
+
+loc_fffc20be:
+jne short loc_fffc20ce ; jne 0xfffc20ce
+jmp short loc_fffc210d ; jmp 0xfffc210d
+
+loc_fffc20c2:
+test eax, eax
+mov dl, 1
+jne short loc_fffc210f ; jne 0xfffc210f
+test byte [ecx + 0xa], 1
+je short loc_fffc210f ; je 0xfffc210f
+
+loc_fffc20ce:
+mov edx, dword [ecx + 6]
+cmp edx, 0x3b
+jbe short loc_fffc20fc ; jbe 0xfffc20fc
+
+loc_fffc20d6:
+call fcn_fffc6986 ; call 0xfffc6986
+sub esp, 0xc
+lea edx, [ebp - 0x503a]
+push edx
+call dword [esi + ref_fffcbf28] ; ucall: call dword [esi - 0x340d8]
+mov ebx, eax
+call fcn_fffc6986 ; call 0xfffc6986
+add esp, 0x10
+test ebx, ebx
+sete dl
+jmp short loc_fffc210f ; jmp 0xfffc210f
+
+loc_fffc20fc:
+xor ecx, ecx
+lea eax, [ebp - 0x503a]
+call fcn_fffc6438 ; call 0xfffc6438
+test eax, eax
+je short loc_fffc20d6 ; je 0xfffc20d6
+
+loc_fffc210d:
+mov dl, 1
+
+loc_fffc210f:
+inc word [ebp - 0x50c0]
+
+loc_fffc2116:
+mov eax, dword [ebp - 0x50c0]
+sub ax, 0x2300
+cmp word [ebp - 0x50c0], 0x33
+setbe cl
+test cl, dl
+jne loc_fffc2026 ; jne 0xfffc2026
+cmp ebx, 0x16
+je loc_fffc21fe ; je 0xfffc21fe
+ja short loc_fffc2151 ; ja 0xfffc2151
+test ebx, ebx
+je loc_fffc225d ; je 0xfffc225d
+cmp ebx, 0x15
+jne loc_fffc2251 ; jne 0xfffc2251
+jmp short loc_fffc2186 ; jmp 0xfffc2186
+
+loc_fffc2151:
+cmp ebx, 0x17
+je short loc_fffc21b8 ; je 0xfffc21b8
+cmp ebx, 0x1b
+jne loc_fffc2251 ; jne 0xfffc2251
+lea eax, [ebp - 0x397c]
+mov edx, 0x395c
+call fcn_fffa118a ; call 0xfffa118a
+lea eax, [ebp - 0x5079]
+inc byte [ebp - 0x4022]
+mov dword [ebp - 0x38ce], eax
+jmp near loc_fffc225d ; jmp 0xfffc225d
+
+loc_fffc2186:
+sub esp, 0xc
+lea ecx, [ebp - 0x50a9]
+push 0
+lea edx, [ebp - 0x5088]
+lea eax, [ebp - 0x503a]
+call fcn_fffb5038 ; call 0xfffb5038
+add esp, 0x10
+mov cl, byte [ebp - 0x3964]
+cmp byte [ebp - 0x50a9], cl
+jb short loc_fffc21b8 ; jb 0xfffc21b8
+jmp near loc_fffc2251 ; jmp 0xfffc2251
+
+loc_fffc21b8:
+cmp dword [ebp - 0x4015], 3
+jne short loc_fffc21ed ; jne 0xfffc21ed
+push eax
+lea ecx, [ebp - 0x4062]
+xor edx, edx
+push eax
+push dword [ebp - 0x50a4]
+push dword [ebp - 0x50bc]
+mov eax, dword [ebp - 0x509c]
+call fcn_fffa1d20 ; call 0xfffa1d20
+mov dword [ebp - 0x4015], eax
+add esp, 0x10
+jmp short loc_fffc21f7 ; jmp 0xfffc21f7
+
+loc_fffc21ed:
+mov dword [ebp - 0x4015], 0
+
+loc_fffc21f7:
+mov ebx, 0x17
+jmp short loc_fffc225d ; jmp 0xfffc225d
+
+loc_fffc21fe:
+push eax
+push eax
+push dword [ebp - 0x3feb]
+push dword [ebp - 0x391a]
+mov eax, dword [ebp - 0x5098]
+push 1
+push edi
+push 0
+push dword [ebp - 0x50bc]
+call dword [eax + 8] ; ucall
+add esp, 0x20
+lea eax, [ebp - 0x503a]
+mov edx, 0xddfe
+call fcn_fffc83be ; call 0xfffc83be
+mov edx, dword [ebp - 0x50bc]
+push eax
+push eax
+mov eax, dword [edx]
+push 0
+push 0
+push 0
+push 0x51009
+push 2
+push edx
+call dword [eax + 0x58] ; ucall
+add esp, 0x20
+
+loc_fffc2251:
+in al, 0x80
+or eax, 0xffffff80
+out 0x80, al
+jmp near loc_fffc239d ; jmp 0xfffc239d
+
+loc_fffc225d:
+cmp ebx, 0x1b
+sete dl
+cmp ebx, 0x17
+sete al
+or dl, al
+jne loc_fffc1fc3 ; jne 0xfffc1fc3
+mov eax, 0x100
+in al, 0x84
+test edi, edi
+mov ecx, dword [ebp - 0x3feb]
+sete bl
+cmp byte [ebp - 0x50c4], 1
+sete al
+and eax, ebx
+neg eax
+and eax, 3
+cmp ecx, 0x20
+ja short loc_fffc22d0 ; ja 0xfffc22d0
+mov edx, dword [0xf0000060]
+and edx, 0xfc000000
+mov edx, dword [edx + 0xb0010]
+inc edx
+je short loc_fffc22d0 ; je 0xfffc22d0
+push esi
+movzx eax, al
+push esi
+push ecx
+push dword [ebp - 0x391a]
+push eax
+mov eax, dword [ebp - 0x5098]
+push edi
+push 0
+push dword [ebp - 0x50bc]
+call dword [eax + 8] ; ucall
+add esp, 0x20
+
+loc_fffc22d0:
+cmp dword [ebp - 0x509c], 0x11
+je short loc_fffc2355 ; je 0xfffc2355
+cmp edi, 3
+sete dl
+xor eax, eax
+or dl, bl
+jne short loc_fffc22ea ; jne 0xfffc22ea
+jmp short loc_fffc2311 ; jmp 0xfffc2311
+
+loc_fffc22e7:
+mov byte [eax], al
+inc eax
+
+loc_fffc22ea:
+cmp eax, 0x1000
+jne short loc_fffc22e7 ; jne 0xfffc22e7
+mov edx, 0x14
+jmp short loc_fffc230d ; jmp 0xfffc230d
+
+loc_fffc22f8:
+cmp byte [eax], cl
+jne loc_fffc238d ; jne 0xfffc238d
+inc eax
+
+loc_fffc2301:
+cmp eax, 0x1000
+mov cl, al
+jne short loc_fffc22f8 ; jne 0xfffc22f8
+dec edx
+je short loc_fffc2311 ; je 0xfffc2311
+
+loc_fffc230d:
+xor eax, eax
+jmp short loc_fffc2301 ; jmp 0xfffc2301
+
+loc_fffc2311:
+mov ecx, dword [ebp - 0x50bc]
+mov dword [ebp - 0x503a], 0xfd4
+push edx
+lea edx, [ebp - 0x503a]
+mov eax, dword [ecx]
+push 0x5022
+push edx
+mov edx, dword [ebp - 0x50a0]
+add edx, 0x18
+push edx
+call dword [eax + 0x50] ; ucall
+mov eax, dword [ebp - 0x50a0]
+mov edx, 1
+add eax, 0x503a
+call fcn_fffa118a ; call 0xfffa118a
+add esp, 0x10
+
+loc_fffc2355:
+lea eax, [ebp - 0x503a]
+mov edx, 0x55
+call fcn_fffc83be ; call 0xfffc83be
+xor eax, eax
+jmp short loc_fffc23a2 ; jmp 0xfffc23a2
+
+loc_fffc2369:
+test al, 1
+jne loc_fffc1d15 ; jne 0xfffc1d15
+jmp near loc_fffc1d20 ; jmp 0xfffc1d20
+
+loc_fffc2376:
+mov edx, 0xfd4
+lea eax, [ebp - 0x5036]
+call fcn_fffa118a ; call 0xfffa118a
+xor edi, edi
+jmp near loc_fffc1f53 ; jmp 0xfffc1f53
+
+loc_fffc238d:
+mov edx, 0xd5
+lea eax, [ebp - 0x503a]
+call fcn_fffc83be ; call 0xfffc83be
+
+loc_fffc239d:
+mov eax, 0x80000007
+
+loc_fffc23a2:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc23aa:
+db 0x00
+db 0x00
+
+fcn_fffc23ac: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x57c]
+mov bl, byte [ebp + 0x10]
+cmp byte [eax + 0x1768], 1
+mov dword [ebp - 0x514], eax
+mov byte [ebp - 0x561], dl
+mov byte [ebp - 0x50c], cl
+mov byte [ebp - 0x50a], bl
+jne short loc_fffc2403 ; jne 0xfffc2403
+mov al, byte [eax + 0x1769]
+mov byte [ebp - 0x508], al
+mov byte [ebp - 0x507], al
+lea edx, [eax + 4]
+add eax, 2
+mov byte [ebp - 0x506], dl
+mov byte [ebp - 0x505], al
+jmp short loc_fffc241f ; jmp 0xfffc241f
+
+loc_fffc2403: ; not directly referenced
+mov byte [ebp - 0x508], 1
+mov byte [ebp - 0x507], 1
+mov byte [ebp - 0x506], 1
+mov byte [ebp - 0x505], 1
+
+loc_fffc241f: ; not directly referenced
+mov al, byte [ebp - 0x50a]
+shr al, 4
+cmp byte [ebp - 0x50a], 9
+lea ecx, [eax + 1]
+mov byte [ebp - 0x509], cl
+je short loc_fffc2462 ; je 0xfffc2462
+cmp byte [ebp - 0x50a], 8
+je short loc_fffc2472 ; je 0xfffc2472
+cmp byte [ebp - 0x50a], 0xa
+sete byte [ebp - 0x50b]
+mov bl, byte [ebp - 0x50b]
+shl ebx, 2
+mov byte [ebp - 0x54d], bl
+jmp short loc_fffc2480 ; jmp 0xfffc2480
+
+loc_fffc2462: ; not directly referenced
+mov byte [ebp - 0x50b], 1
+mov byte [ebp - 0x54d], 1
+jmp short loc_fffc2480 ; jmp 0xfffc2480
+
+loc_fffc2472: ; not directly referenced
+mov byte [ebp - 0x50b], 1
+mov byte [ebp - 0x54d], 2
+
+loc_fffc2480: ; not directly referenced
+cmp byte [ebp - 0x50a], 0x21
+sete dl
+cmp byte [ebp - 0x50a], 0x11
+sete al
+or dl, al
+jne short loc_fffc24ab ; jne 0xfffc24ab
+cmp byte [ebp - 0x50a], 5
+mov dword [ebp - 0x54c], 0
+jne short loc_fffc24bd ; jne 0xfffc24bd
+
+loc_fffc24ab: ; not directly referenced
+mov al, byte [ebp - 0x50b]
+xor eax, 1
+movzx eax, al
+mov dword [ebp - 0x54c], eax
+
+loc_fffc24bd: ; not directly referenced
+lea esi, [ebp - 0x4e0]
+mov ebx, dword [ebp + 0xc]
+mov dword [ebp - 0x524], esi
+mov dword [ebp - 0x51c], ebx
+movzx esi, byte [ebp - 0x561]
+xor edi, edi
+mov dword [ebp - 0x528], esi
+
+loc_fffc24e1: ; not directly referenced
+mov ebx, dword [ebp - 0x528]
+bt ebx, edi
+jb short loc_fffc2502 ; jb 0xfffc2502
+
+loc_fffc24ec: ; not directly referenced
+inc edi
+add dword [ebp - 0x51c], 0x48
+add dword [ebp - 0x524], 0x24
+cmp edi, 2
+je short loc_fffc254b ; je 0xfffc254b
+jmp short loc_fffc24e1 ; jmp 0xfffc24e1
+
+loc_fffc2502: ; not directly referenced
+mov ecx, dword [ebp - 0x514]
+mov esi, dword [ebp - 0x51c]
+mov cl, byte [ecx + 0x1755]
+mov byte [ebp - 0x510], cl
+xor ecx, ecx
+jmp short loc_fffc2541 ; jmp 0xfffc2541
+
+loc_fffc251e: ; not directly referenced
+mov edx, dword [esi]
+mov eax, dword [esi + 4]
+add eax, edx
+mov ebx, 0x14
+xor edx, edx
+mov dword [ebp - 0x518], eax
+div ebx
+mov ebx, dword [ebp - 0x524]
+add esi, 8
+mov dword [ebx + ecx*4], eax
+inc ecx
+
+loc_fffc2541: ; not directly referenced
+cmp byte [ebp - 0x510], cl
+ja short loc_fffc251e ; ja 0xfffc251e
+jmp short loc_fffc24ec ; jmp 0xfffc24ec
+
+loc_fffc254b: ; not directly referenced
+mov esi, dword [ebp - 0x528]
+mov dword [ebp - 0x51c], 0
+movzx ebx, byte [ebp - 0x509]
+sar esi, 1
+mov dword [ebp - 0x568], ebx
+movzx eax, byte [ebp - 0x50b]
+and esi, 1
+shl eax, 2
+dec ebx
+mov dword [ebp - 0x55c], esi
+mov dword [ebp - 0x560], eax
+mov dword [ebp - 0x578], ebx
+
+loc_fffc258a: ; not directly referenced
+mov ebx, dword [ebp - 0x51c]
+mov esi, dword [ebp + 8]
+mov dword [ebp - 0x538], esi
+mov dword [ebp - 0x510], esi
+xor esi, esi
+lea ebx, [ebx + ebx - 1]
+mov dword [ebp - 0x558], ebx
+movzx ebx, byte [ebp - 0x54d]
+mov dword [ebp - 0x530], ebx
+movzx ebx, byte [ebp - 0x50c]
+mov dword [ebp - 0x534], ebx
+
+loc_fffc25c5: ; not directly referenced
+mov ebx, dword [ebp - 0x528]
+bt ebx, esi
+jae short loc_fffc25fd ; jae 0xfffc25fd
+lea ebx, [esi + esi*8]
+lea eax, [ebp - 0x18]
+add eax, ebx
+mov dword [ebp - 0x518], ebx
+mov byte [ebp - 0x520], 0x7f
+mov byte [ebp - 0x509], 0
+mov dword [ebp - 0x524], ebx
+mov dword [ebp - 0x548], eax
+jmp near loc_fffc27a5 ; jmp 0xfffc27a5
+
+loc_fffc25fd: ; not directly referenced
+inc esi
+add dword [ebp - 0x510], 0x240
+cmp esi, 2
+jne short loc_fffc25c5 ; jne 0xfffc25c5
+jmp near loc_fffc27c2 ; jmp 0xfffc27c2
+
+loc_fffc2612: ; not directly referenced
+movzx ebx, byte [ebp - 0x509]
+mov edx, dword [ebp - 0x524]
+add edx, ebx
+mov eax, dword [ebp - 0x548]
+add eax, ebx
+mov ecx, dword [ebp + edx*4 - 0x4e0]
+shl edx, 5
+mov byte [eax - 0x4da], 0
+mov byte [eax - 0x4ec], 0
+lea eax, [ecx - 2]
+mov dword [ebp + edx - 0x498], eax
+mov dl, byte [ebp - 0x50a]
+sub edx, 8
+cmp dl, 1
+ja short loc_fffc2664 ; ja 0xfffc2664
+mov ecx, dword [ebp - 0x558]
+imul ecx, eax
+jmp short loc_fffc2677 ; jmp 0xfffc2677
+
+loc_fffc2664: ; not directly referenced
+cmp byte [ebp - 0x50a], 0xa
+jne short loc_fffc269d ; jne 0xfffc269d
+add ecx, 2
+imul ecx, dword [ebp - 0x558]
+
+loc_fffc2677: ; not directly referenced
+push 1
+mov edx, dword [ebp - 0x530]
+mov eax, dword [ebp - 0x514]
+push 0
+push 0
+push ebx
+push dword [ebp - 0x534]
+push esi
+push 0
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffc269d: ; not directly referenced
+cmp byte [ebp - 0x50b], 0
+jne short loc_fffc26b4 ; jne 0xfffc26b4
+
+loc_fffc26a6: ; not directly referenced
+cmp dword [ebp - 0x54c], 0
+jne short loc_fffc2708 ; jne 0xfffc2708
+jmp near loc_fffc273a ; jmp 0xfffc273a
+
+loc_fffc26b4: ; not directly referenced
+movzx eax, byte [ebp - 0x509]
+mov ecx, dword [ebp - 0x510]
+mov edx, eax
+add eax, dword [ebp - 0x518]
+shl edx, 4
+add edx, dword [ebp - 0x51c]
+shl eax, 5
+lea edi, [ecx + edx*4]
+lea eax, [ebp + eax - 0x498]
+mov dword [ebp - 0x52c], eax
+xor eax, eax
+
+loc_fffc26e7: ; not directly referenced
+mov edx, dword [edi + eax*2]
+mov ecx, 0xf
+cmp edx, 0xf
+cmova edx, ecx
+mov ecx, dword [ebp - 0x52c]
+mov dword [ecx + eax], edx
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffc26e7 ; jne 0xfffc26e7
+jmp short loc_fffc26a6 ; jmp 0xfffc26a6
+
+loc_fffc2708: ; not directly referenced
+movzx edx, byte [ebp - 0x520]
+add ebx, dword [ebp - 0x524]
+shl ebx, 5
+mov eax, dword [ebp + ebx - 0x498]
+cmp eax, edx
+mov dl, byte [ebp - 0x520]
+cmovb edx, eax
+movzx eax, dl
+mov byte [ebp - 0x520], dl
+mov dword [ebp + ebx - 0x498], eax
+
+loc_fffc273a: ; not directly referenced
+movzx eax, byte [ebp - 0x509]
+mov edx, dword [ebp - 0x518]
+add edx, eax
+mov ebx, dword [ebp - 0x510]
+shl edx, 5
+shl eax, 4
+add eax, dword [ebp - 0x51c]
+lea edi, [ebp + edx - 0x498]
+lea edx, [ebp + edx - 0x258]
+lea eax, [ebx + eax*4]
+mov dword [ebp - 0x52c], edx
+mov dword [ebp - 0x554], eax
+xor edx, edx
+xor eax, eax
+
+loc_fffc277c: ; not directly referenced
+mov ecx, dword [ebp - 0x52c]
+mov ebx, dword [edi + edx]
+add edx, dword [ebp - 0x560]
+mov dword [ecx + eax], ebx
+mov ecx, dword [ebp - 0x554]
+mov dword [ecx + eax*2], ebx
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffc277c ; jne 0xfffc277c
+inc byte [ebp - 0x509]
+
+loc_fffc27a5: ; not directly referenced
+mov eax, dword [ebp - 0x514]
+mov bl, byte [ebp - 0x509]
+cmp bl, byte [eax + 0x1755]
+jb loc_fffc2612 ; jb 0xfffc2612
+jmp near loc_fffc25fd ; jmp 0xfffc25fd
+
+loc_fffc27c2: ; not directly referenced
+lea esi, [ebp - 0x504]
+lea ecx, [ebp - 0x4f2]
+xor edx, edx
+mov edi, 0xffffffff
+jmp near loc_fffc2ee2 ; jmp 0xfffc2ee2
+
+loc_fffc27da: ; not directly referenced
+mov edx, dword [ebp - 0x514]
+mov dword [ebp - 0x510], 0
+mov eax, dword [edx + 0x103f]
+mov byte [eax + 0x4800], 4
+jmp near loc_fffc2a9a ; jmp 0xfffc2a9a
+
+loc_fffc27fc: ; not directly referenced
+mov cl, byte [ebp - 0x51c]
+xor ebx, ebx
+and ecx, 1
+neg ecx
+mov byte [ebp - 0x520], cl
+
+loc_fffc280f: ; not directly referenced
+mov esi, dword [ebp - 0x528]
+bt esi, ebx
+jb short loc_fffc2825 ; jb 0xfffc2825
+
+loc_fffc281a: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc280f ; jne 0xfffc280f
+jmp near loc_fffc296a ; jmp 0xfffc296a
+
+loc_fffc2825: ; not directly referenced
+lea ecx, [ebx + 1]
+mov esi, dword [ebp - 0x528]
+mov byte [ebp - 0x509], 0
+sar esi, cl
+mov dword [ebp - 0x518], esi
+lea esi, [ebx + ebx*8]
+mov dword [ebp - 0x52c], esi
+jmp near loc_fffc294d ; jmp 0xfffc294d
+
+loc_fffc284b: ; not directly referenced
+movzx eax, byte [ebp - 0x509]
+cmp byte [ebp - 0x50b], 0
+je loc_fffc28f7 ; je 0xfffc28f7
+add eax, dword [ebp - 0x52c]
+mov dl, byte [ebp - 0x520]
+shl eax, 5
+mov esi, dword [ebp - 0x51c]
+and edx, 1
+xor esi, 1
+xor ecx, ecx
+mov byte [ebp - 0x530], dl
+mov dword [ebp - 0x534], esi
+lea eax, [ebp + eax - 0x498]
+mov dword [ebp - 0x554], eax
+xor eax, eax
+
+loc_fffc2897: ; not directly referenced
+cmp byte [ebp - 0x50a], 9
+sete dl
+test byte [ebp - 0x530], dl
+jne short loc_fffc28c5 ; jne 0xfffc28c5
+cmp byte [ebp - 0x50a], 9
+mov dl, byte [ebp - 0x534]
+setne byte [ebp - 0x524]
+test byte [ebp - 0x524], dl
+je short loc_fffc28d5 ; je 0xfffc28d5
+
+loc_fffc28c5: ; not directly referenced
+mov esi, dword [ebp - 0x554]
+mov edi, 0xf
+sub edi, dword [esi + ecx]
+jmp short loc_fffc28de ; jmp 0xfffc28de
+
+loc_fffc28d5: ; not directly referenced
+mov edx, dword [ebp - 0x554]
+mov edi, dword [edx + ecx]
+
+loc_fffc28de: ; not directly referenced
+cmp edi, 0xf
+mov esi, 0xf
+cmovbe esi, edi
+shl esi, cl
+add ecx, 4
+or eax, esi
+cmp ecx, 0x20
+jne short loc_fffc2897 ; jne 0xfffc2897
+jmp short loc_fffc290d ; jmp 0xfffc290d
+
+loc_fffc28f7: ; not directly referenced
+lea edx, [ebx + ebx*8]
+add eax, edx
+shl eax, 5
+mov eax, dword [ebp + eax - 0x498]
+imul eax, dword [ebp - 0x558]
+
+loc_fffc290d: ; not directly referenced
+push 1
+push dword [ebp - 0x518]
+movzx ecx, byte [ebp - 0x509]
+push 0
+movzx edx, byte [ebp - 0x50a]
+push ecx
+movzx ecx, byte [ebp - 0x50c]
+push ecx
+mov ecx, eax
+mov eax, dword [ebp - 0x514]
+push ebx
+push 0
+push dword [ebp - 0x510]
+call fcn_fffc83fc ; call 0xfffc83fc
+inc byte [ebp - 0x509]
+add esp, 0x20
+
+loc_fffc294d: ; not directly referenced
+mov eax, dword [ebp - 0x514]
+mov cl, byte [ebp - 0x509]
+cmp cl, byte [eax + 0x1755]
+jb loc_fffc284b ; jb 0xfffc284b
+jmp near loc_fffc281a ; jmp 0xfffc281a
+
+loc_fffc296a: ; not directly referenced
+mov eax, dword [ebp - 0x514]
+push edx
+mov edx, dword [ebp - 0x528]
+movzx ecx, byte [eax + 0x1768]
+xor eax, eax
+push 0
+cmp dword [ebp - 0x510], 0
+sete al
+push eax
+lea eax, [ebp - 0x508]
+push eax
+mov eax, dword [ebp - 0x514]
+call fcn_fffb21f3 ; call 0xfffb21f3
+add esp, 0x10
+mov ebx, dword [ebp - 0x578]
+cmp dword [ebp - 0x510], ebx
+jae loc_fffc2a94 ; jae 0xfffc2a94
+mov eax, dword [ebp - 0x514]
+test byte [ebp - 0x561], 1
+mov bl, byte [eax + 0x1740]
+mov al, 1
+je short loc_fffc2a0a ; je 0xfffc2a0a
+mov eax, dword [ebp - 0x514]
+mov edx, dword [eax + 0x103f]
+mov ecx, dword [edx + 0x40e0]
+mov eax, dword [edx + 0x40e4]
+inc eax
+sete al
+inc ecx
+sete cl
+and eax, ecx
+test bl, bl
+jne short loc_fffc29fa ; jne 0xfffc29fa
+mov edx, 1
+
+loc_fffc29f6: ; not directly referenced
+and eax, edx
+jmp short loc_fffc2a0a ; jmp 0xfffc2a0a
+
+loc_fffc29fa: ; not directly referenced
+mov edx, dword [edx + 0x40e8]
+inc dl
+sete dl
+movzx edx, dl
+jmp short loc_fffc29f6 ; jmp 0xfffc29f6
+
+loc_fffc2a0a: ; not directly referenced
+cmp dword [ebp - 0x55c], 0
+je short loc_fffc2a58 ; je 0xfffc2a58
+mov ecx, dword [ebp - 0x514]
+mov edx, dword [ecx + 0x103f]
+mov esi, dword [edx + 0x44e0]
+mov ecx, dword [edx + 0x44e4]
+inc ecx
+sete cl
+inc esi
+mov edi, ecx
+sete cl
+mov esi, ecx
+and edi, esi
+test bl, bl
+jne short loc_fffc2a48 ; jne 0xfffc2a48
+mov edx, 1
+
+loc_fffc2a42: ; not directly referenced
+and eax, edi
+and eax, edx
+jmp short loc_fffc2a58 ; jmp 0xfffc2a58
+
+loc_fffc2a48: ; not directly referenced
+mov edx, dword [edx + 0x44e8]
+inc dl
+sete dl
+movzx edx, dl
+jmp short loc_fffc2a42 ; jmp 0xfffc2a42
+
+loc_fffc2a58: ; not directly referenced
+test al, al
+je short loc_fffc2a94 ; je 0xfffc2a94
+
+loc_fffc2a5c: ; not directly referenced
+lea ebx, [ebp - 0x498]
+mov esi, dword [ebp + 8]
+mov dword [ebp - 0x520], ebx
+mov dword [ebp - 0x534], esi
+movzx ebx, byte [ebp - 0x50c]
+mov dword [ebp - 0x530], 0
+mov dword [ebp - 0x510], 0
+mov dword [ebp - 0x574], ebx
+jmp short loc_fffc2aae ; jmp 0xfffc2aae
+
+loc_fffc2a94: ; not directly referenced
+inc dword [ebp - 0x510]
+
+loc_fffc2a9a: ; not directly referenced
+mov esi, dword [ebp - 0x568]
+cmp dword [ebp - 0x510], esi
+jb loc_fffc27fc ; jb 0xfffc27fc
+jmp short loc_fffc2a5c ; jmp 0xfffc2a5c
+
+loc_fffc2aae: ; not directly referenced
+mov ebx, dword [ebp - 0x528]
+mov esi, dword [ebp - 0x510]
+bt ebx, esi
+jb short loc_fffc2aef ; jb 0xfffc2aef
+
+loc_fffc2abf: ; not directly referenced
+inc dword [ebp - 0x510]
+add dword [ebp - 0x520], 0x120
+add dword [ebp - 0x534], 0x240
+add dword [ebp - 0x530], 9
+cmp dword [ebp - 0x510], 2
+je loc_fffc27c2 ; je 0xfffc27c2
+jmp short loc_fffc2aae ; jmp 0xfffc2aae
+
+loc_fffc2aef: ; not directly referenced
+mov ebx, dword [ebp - 0x514]
+mov edx, dword [ebp - 0x510]
+shl edx, 0xa
+mov byte [ebp - 0x524], 0xff
+imul esi, dword [ebp - 0x510], 9
+mov eax, dword [ebx + 0x103f]
+lea ecx, [edx + 0x40e0]
+mov dword [ebp - 0x52c], esi
+mov byte [ebp - 0x54e], 0xff
+lea esi, [ebp - 0x18]
+mov byte [ebp - 0x509], 0
+add esi, dword [ebp - 0x52c]
+lea ebx, [ecx + eax]
+lea ecx, [eax + ecx + 4]
+lea eax, [eax + edx + 0x40e8]
+mov ebx, dword [ebx]
+mov ecx, dword [ecx]
+mov eax, dword [eax]
+mov dword [ebp - 0x56c], ebx
+mov dword [ebp - 0x570], ecx
+mov byte [ebp - 0x562], al
+jmp near loc_fffc2e57 ; jmp 0xfffc2e57
+
+loc_fffc2b60: ; not directly referenced
+cmp byte [ebp - 0x509], 3
+ja short loc_fffc2b7b ; ja 0xfffc2b7b
+movzx ecx, byte [ebp - 0x509]
+mov ebx, dword [ebp - 0x56c]
+shl ecx, 3
+jmp short loc_fffc2ba4 ; jmp 0xfffc2ba4
+
+loc_fffc2b7b: ; not directly referenced
+mov bl, byte [ebp - 0x562]
+cmp byte [ebp - 0x509], 7
+mov byte [ebp - 0x548], bl
+ja short loc_fffc2bac ; ja 0xfffc2bac
+movzx eax, byte [ebp - 0x509]
+mov ebx, dword [ebp - 0x570]
+lea ecx, [eax*8 - 0x20]
+
+loc_fffc2ba4: ; not directly referenced
+shr ebx, cl
+mov byte [ebp - 0x548], bl
+
+loc_fffc2bac: ; not directly referenced
+movzx ebx, byte [ebp - 0x509]
+mov eax, dword [ebp - 0x52c]
+add eax, ebx
+lea edx, [ebp - 0x498]
+shl eax, 5
+mov ecx, dword [ebp - 0x534]
+add edx, eax
+mov eax, ebx
+shl eax, 4
+add eax, dword [ebp - 0x51c]
+mov dword [ebp - 0x518], edx
+lea edi, [ecx + eax*4]
+xor ecx, ecx
+lea eax, [esi + ebx]
+
+loc_fffc2be5: ; not directly referenced
+mov edx, 1
+shl edx, cl
+mov byte [ebp - 0x57d], dl
+mov dword [ebp - 0x554], edx
+mov dl, byte [eax - 0x4ec]
+mov byte [ebp - 0x54f], dl
+mov dl, byte [eax - 0x4da]
+mov byte [ebp - 0x550], dl
+and dl, byte [ebp - 0x54f]
+mov byte [ebp - 0x563], dl
+mov dl, byte [ebp - 0x57d]
+test byte [ebp - 0x563], dl
+jne short loc_fffc2c8d ; jne 0xfffc2c8d
+test byte [ebp - 0x548], dl
+je short loc_fffc2c65 ; je 0xfffc2c65
+or edx, dword [ebp - 0x550]
+mov byte [eax - 0x4da], dl
+mov edx, dword [ebp - 0x518]
+mov edx, dword [edx]
+cmp dword [edi + ecx*8], edx
+mov dword [ebp - 0x584], edx
+jb short loc_fffc2c8d ; jb 0xfffc2c8d
+dec edx
+mov dword [edi + ecx*8], edx
+mov dl, byte [ebp - 0x554]
+not edx
+and byte [eax - 0x4ec], dl
+jmp short loc_fffc2c8d ; jmp 0xfffc2c8d
+
+loc_fffc2c65: ; not directly referenced
+mov dl, byte [ebp - 0x57d]
+or dl, byte [ebp - 0x54f]
+mov byte [eax - 0x4ec], dl
+mov edx, dword [ebp - 0x518]
+mov edx, dword [edx]
+cmp dword [edi + ecx*8], edx
+mov dword [ebp - 0x554], edx
+jae short loc_fffc2c8d ; jae 0xfffc2c8d
+mov dword [edi + ecx*8], edx
+
+loc_fffc2c8d: ; not directly referenced
+inc ecx
+mov edx, dword [ebp - 0x560]
+add dword [ebp - 0x518], edx
+cmp ecx, 8
+jne loc_fffc2be5 ; jne 0xfffc2be5
+cmp byte [ebp - 0x50a], 1
+mov al, 0xf
+jne short loc_fffc2cd2 ; jne 0xfffc2cd2
+push eax
+mov ecx, dword [ebp - 0x574]
+mov edx, dword [ebp - 0x510]
+push 0xf
+push dword [ebp - 0x51c]
+mov eax, dword [ebp - 0x514]
+push ebx
+call fcn_fffb2c66 ; call 0xfffb2c66
+add esp, 0x10
+
+loc_fffc2cd2: ; not directly referenced
+cmp byte [ebp - 0x50b], 0
+je short loc_fffc2d3e ; je 0xfffc2d3e
+movzx edi, byte [ebp - 0x509]
+add edi, dword [ebp - 0x530]
+shl edi, 5
+lea edx, [ebp - 0x498]
+add edx, edi
+xor ecx, ecx
+mov dword [ebp - 0x518], edx
+
+loc_fffc2cfb: ; not directly referenced
+mov edx, 1
+shl edx, cl
+mov byte [ebp - 0x554], dl
+mov edx, dword [ebp - 0x518]
+mov edi, dword [edx + ecx*4]
+movzx edx, al
+cmp edi, edx
+jb short loc_fffc2d25 ; jb 0xfffc2d25
+mov dl, byte [ebp - 0x554]
+or byte [ebx + esi - 0x4da], dl
+
+loc_fffc2d25: ; not directly referenced
+test edi, edi
+jne short loc_fffc2d36 ; jne 0xfffc2d36
+mov dl, byte [ebp - 0x554]
+or byte [ebx + esi - 0x4ec], dl
+
+loc_fffc2d36: ; not directly referenced
+inc ecx
+cmp ecx, 8
+jne short loc_fffc2cfb ; jne 0xfffc2cfb
+jmp short loc_fffc2d6b ; jmp 0xfffc2d6b
+
+loc_fffc2d3e: ; not directly referenced
+movzx eax, al
+mov edx, dword [ebp - 0x52c]
+add edx, ebx
+shl edx, 5
+mov edx, dword [ebp + edx - 0x498]
+cmp edx, eax
+jb short loc_fffc2d5f ; jb 0xfffc2d5f
+mov byte [ebx + esi - 0x4da], 0xff
+
+loc_fffc2d5f: ; not directly referenced
+test edx, edx
+jne short loc_fffc2d6b ; jne 0xfffc2d6b
+mov byte [ebx + esi - 0x4ec], 0xff
+
+loc_fffc2d6b: ; not directly referenced
+lea edx, [esi + ebx]
+mov al, byte [edx - 0x4ec]
+mov dl, byte [edx - 0x4da]
+and byte [ebp - 0x54e], al
+and byte [ebp - 0x524], dl
+cmp dword [ebp - 0x54c], 0
+mov byte [ebp - 0x518], al
+jne loc_fffc2e51 ; jne 0xfffc2e51
+cmp byte [ebp - 0x50b], 0
+je short loc_fffc2e03 ; je 0xfffc2e03
+movzx ecx, byte [ebp - 0x509]
+add ecx, dword [ebp - 0x530]
+shl ecx, 5
+mov bl, byte [ebp - 0x518]
+and ebx, edx
+lea eax, [ebp - 0x498]
+mov byte [ebp - 0x554], bl
+add eax, ecx
+lea edi, [ebp + ecx - 0x258]
+xor ecx, ecx
+
+loc_fffc2dd1: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x554], bl
+jne short loc_fffc2dfb ; jne 0xfffc2dfb
+test bl, dl
+jne short loc_fffc2de9 ; jne 0xfffc2de9
+inc dword [eax + ecx*4]
+jmp short loc_fffc2dfb ; jmp 0xfffc2dfb
+
+loc_fffc2de9: ; not directly referenced
+test byte [ebp - 0x518], bl
+jne short loc_fffc2dfb ; jne 0xfffc2dfb
+mov ebx, dword [edi + ecx*4]
+dec ebx
+mov dword [edi + ecx*4], ebx
+mov dword [eax + ecx*4], ebx
+
+loc_fffc2dfb: ; not directly referenced
+inc ecx
+cmp ecx, 8
+jne short loc_fffc2dd1 ; jne 0xfffc2dd1
+jmp short loc_fffc2e51 ; jmp 0xfffc2e51
+
+loc_fffc2e03: ; not directly referenced
+mov cl, byte [ebp - 0x518]
+and ecx, edx
+inc cl
+je short loc_fffc2e51 ; je 0xfffc2e51
+inc dl
+je short loc_fffc2e27 ; je 0xfffc2e27
+mov eax, dword [ebp - 0x52c]
+add eax, ebx
+shl eax, 5
+inc dword [ebp + eax - 0x498]
+jmp short loc_fffc2e51 ; jmp 0xfffc2e51
+
+loc_fffc2e27: ; not directly referenced
+cmp byte [ebp - 0x518], 0xff
+je short loc_fffc2e51 ; je 0xfffc2e51
+mov eax, dword [ebp - 0x52c]
+add eax, ebx
+shl eax, 5
+mov edx, dword [ebp + eax - 0x258]
+dec edx
+mov dword [ebp + eax - 0x258], edx
+mov dword [ebp + eax - 0x498], edx
+
+loc_fffc2e51: ; not directly referenced
+inc byte [ebp - 0x509]
+
+loc_fffc2e57: ; not directly referenced
+mov eax, dword [ebp - 0x514]
+mov dl, byte [eax + 0x1755]
+cmp byte [ebp - 0x509], dl
+jb loc_fffc2b60 ; jb 0xfffc2b60
+cmp dword [ebp - 0x54c], 1
+jne loc_fffc2abf ; jne 0xfffc2abf
+mov al, byte [ebp - 0x54e]
+and eax, dword [ebp - 0x524]
+inc al
+je loc_fffc2abf ; je 0xfffc2abf
+cmp byte [ebp - 0x524], 0xff
+je short loc_fffc2ea5 ; je 0xfffc2ea5
+mov ebx, dword [ebp - 0x520]
+inc dword [ebx]
+
+loc_fffc2ea1: ; not directly referenced
+xor eax, eax
+jmp short loc_fffc2ed9 ; jmp 0xfffc2ed9
+
+loc_fffc2ea5: ; not directly referenced
+imul ecx, dword [ebp - 0x510], 0x120
+mov esi, dword [ebp - 0x520]
+mov eax, dword [ebp + ecx - 0x258]
+dec eax
+mov dword [ebp + ecx - 0x258], eax
+mov dword [esi], eax
+jmp short loc_fffc2ea1 ; jmp 0xfffc2ea1
+
+loc_fffc2ec8: ; not directly referenced
+mov esi, dword [ebp - 0x520]
+mov ecx, eax
+shl ecx, 5
+inc eax
+mov ebx, dword [esi]
+mov dword [esi + ecx], ebx
+
+loc_fffc2ed9: ; not directly referenced
+cmp dl, al
+ja short loc_fffc2ec8 ; ja 0xfffc2ec8
+jmp near loc_fffc2abf ; jmp 0xfffc2abf
+
+loc_fffc2ee2: ; not directly referenced
+mov ebx, dword [ebp - 0x528]
+bt ebx, edx
+jae short loc_fffc2f14 ; jae 0xfffc2f14
+mov eax, dword [ebp - 0x514]
+mov al, byte [eax + 0x1755]
+mov byte [ebp - 0x509], al
+xor eax, eax
+jmp short loc_fffc2f0c ; jmp 0xfffc2f0c
+
+loc_fffc2f03: ; not directly referenced
+mov bl, byte [esi + eax]
+and bl, byte [ecx + eax]
+and edi, ebx
+inc eax
+
+loc_fffc2f0c: ; not directly referenced
+cmp byte [ebp - 0x509], al
+ja short loc_fffc2f03 ; ja 0xfffc2f03
+
+loc_fffc2f14: ; not directly referenced
+inc edx
+add esi, 9
+add ecx, 9
+cmp edx, 2
+jne short loc_fffc2ee2 ; jne 0xfffc2ee2
+mov edx, edi
+inc dl
+jne loc_fffc27da ; jne 0xfffc27da
+cmp byte [ebp - 0x50b], 0
+jne loc_fffc2fe3 ; jne 0xfffc2fe3
+mov edi, dword [ebp + 0xc]
+xor esi, esi
+
+loc_fffc2f3c: ; not directly referenced
+mov ebx, dword [ebp - 0x528]
+bt ebx, esi
+jb short loc_fffc2f60 ; jb 0xfffc2f60
+
+loc_fffc2f47: ; not directly referenced
+inc esi
+add edi, 0x48
+add dword [ebp - 0x538], 0x240
+cmp esi, 2
+je loc_fffc30bf ; je 0xfffc30bf
+jmp short loc_fffc2f3c ; jmp 0xfffc2f3c
+
+loc_fffc2f60: ; not directly referenced
+xor ecx, ecx
+jmp short loc_fffc2fac ; jmp 0xfffc2fac
+
+loc_fffc2f64: ; not directly referenced
+mov ebx, dword [ebp - 0x510]
+mov ebx, dword [ebx + edx]
+mov dword [ebp - 0x57c], ebx
+movzx ebx, al
+mov dword [ebp - 0x520], ebx
+mov ebx, dword [ebp - 0x57c]
+cmp dword [ebp - 0x520], ebx
+cmova eax, ebx
+add edx, 8
+cmp edx, 0x40
+jne short loc_fffc2f64 ; jne 0xfffc2f64
+movzx eax, al
+mov edx, dword [ebp - 0x518]
+mov ebx, dword [ebp - 0x51c]
+inc ecx
+imul eax, eax, 0xa
+lea edx, [ebx + edx*2]
+mov dword [edi + edx*4], eax
+
+loc_fffc2fac: ; not directly referenced
+mov eax, dword [ebp - 0x514]
+cmp cl, byte [eax + 0x1755]
+jae short loc_fffc2f47 ; jae 0xfffc2f47
+movzx ebx, cl
+mov edx, dword [ebp - 0x538]
+mov eax, ebx
+mov dword [ebp - 0x518], ebx
+shl eax, 4
+add eax, dword [ebp - 0x51c]
+lea eax, [edx + eax*4]
+xor edx, edx
+mov dword [ebp - 0x510], eax
+mov al, 0x7f
+jmp short loc_fffc2f64 ; jmp 0xfffc2f64
+
+loc_fffc2fe3: ; not directly referenced
+mov bl, byte [ebp - 0x51c]
+xor ecx, ecx
+and ebx, 1
+neg ebx
+mov byte [ebp - 0x509], bl
+
+loc_fffc2ff6: ; not directly referenced
+mov esi, dword [ebp - 0x528]
+xor edx, edx
+bt esi, ecx
+jb short loc_fffc3053 ; jb 0xfffc3053
+
+loc_fffc3003: ; not directly referenced
+inc ecx
+add dword [ebp - 0x538], 0x240
+cmp ecx, 2
+je short loc_fffc3092 ; je 0xfffc3092
+jmp short loc_fffc2ff6 ; jmp 0xfffc2ff6
+
+loc_fffc3015: ; not directly referenced
+cmp byte [ebp - 0x50a], 9
+sete bl
+test byte [ebp - 0x510], bl
+jne short loc_fffc303f ; jne 0xfffc303f
+cmp byte [ebp - 0x50a], 9
+mov ebx, edi
+setne byte [ebp - 0x518]
+test byte [ebp - 0x518], bl
+je short loc_fffc304a ; je 0xfffc304a
+
+loc_fffc303f: ; not directly referenced
+mov ebx, 0xf
+sub ebx, dword [esi + eax]
+mov dword [esi + eax], ebx
+
+loc_fffc304a: ; not directly referenced
+add eax, 8
+cmp eax, 0x40
+jne short loc_fffc3015 ; jne 0xfffc3015
+inc edx
+
+loc_fffc3053: ; not directly referenced
+mov eax, dword [ebp - 0x514]
+cmp dl, byte [eax + 0x1755]
+jae short loc_fffc3003 ; jae 0xfffc3003
+movzx eax, dl
+mov ebx, dword [ebp - 0x538]
+shl eax, 4
+add eax, dword [ebp - 0x51c]
+mov edi, dword [ebp - 0x51c]
+xor edi, 1
+lea esi, [ebx + eax*4]
+mov bl, byte [ebp - 0x509]
+and ebx, 1
+xor eax, eax
+mov byte [ebp - 0x510], bl
+jmp short loc_fffc3015 ; jmp 0xfffc3015
+
+loc_fffc3092: ; not directly referenced
+push 2
+movzx eax, byte [ebp - 0x50c]
+xor ecx, ecx
+push 0
+movzx edx, byte [ebp - 0x54d]
+push 0
+push 0
+push eax
+mov eax, dword [ebp - 0x514]
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffc30bf: ; not directly referenced
+inc dword [ebp - 0x51c]
+cmp dword [ebp - 0x51c], 2
+jne loc_fffc258a ; jne 0xfffc258a
+push 2
+cmp byte [ebp - 0x50b], 1
+mov eax, 0
+push 0
+movzx edx, byte [ebp - 0x50a]
+mov ecx, 0x88888888
+push 0
+cmovne ecx, eax
+push 0
+movzx eax, byte [ebp - 0x50c]
+push eax
+mov eax, dword [ebp - 0x514]
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc3116: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+movzx edi, cl
+push esi
+mov esi, edx
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x54]
+mov al, byte [ebp + 8]
+movzx edx, al
+mov byte [ebp - 0x2e], al
+mov dword [ebp - 0x54], edx
+lea eax, [ebx + 0x1774]
+mov dword [ebp - 0x2c], eax
+mov eax, 1
+shl eax, cl
+mov ecx, edx
+and eax, 0xff
+mov edx, dword [ebp - 0x2c]
+push eax
+mov eax, ebx
+push edi
+call fcn_fffb0bed ; call 0xfffb0bed
+add esp, 0x10
+test eax, eax
+jne loc_fffc32d1 ; jne 0xfffc32d1
+push ecx
+mov edx, esi
+mov eax, ebx
+push ecx
+push dword [ebp + 0x18]
+movzx esi, dl
+mov edx, dword [ebp - 0x2c]
+push 0x36
+push dword [ebp + 0xc]
+push dword [ebp - 0x54]
+mov ecx, esi
+mov dword [ebp - 0x38], esi
+push edi
+push edi
+call fcn_fffc69bc ; call 0xfffc69bc
+add esp, 0x20
+test eax, eax
+jne loc_fffc32d1 ; jne 0xfffc32d1
+sub esp, 0xc
+mov ecx, dword [ebp - 0x54]
+push edi
+mov edx, dword [ebp - 0x2c]
+mov eax, ebx
+call fcn_fffb0b1b ; call 0xfffb0b1b
+add esp, 0x10
+test eax, eax
+jne loc_fffc32d1 ; jne 0xfffc32d1
+xor edx, edx
+cmp byte [ebp - 0x2e], 0x21
+ja short loc_fffc31bd ; ja 0xfffc31bd
+mov esi, dword [ebp - 0x54]
+movzx edx, byte [esi + ref_fffcc308] ; movzx edx, byte [esi - 0x33cf8]
+
+loc_fffc31bd: ; not directly referenced
+imul edx, edx, 0x48
+xor eax, eax
+mov byte [ebp - 0x28], 0
+mov dword [ebp - 0x44], edx
+jmp near loc_fffc32bd ; jmp 0xfffc32bd
+
+loc_fffc31ce: ; not directly referenced
+movzx esi, byte [ebp - 0x28]
+mov al, byte [ebp - 0x28]
+mov dword [ebp - 0x3c], esi
+mov esi, dword [ebp - 0x38]
+bt esi, eax
+jb short loc_fffc31e7 ; jb 0xfffc31e7
+
+loc_fffc31e0: ; not directly referenced
+xor eax, eax
+jmp near loc_fffc32ba ; jmp 0xfffc32ba
+
+loc_fffc31e7: ; not directly referenced
+imul eax, dword [ebp - 0x3c], 0x24
+mov esi, dword [ebp + 0x14]
+add esi, eax
+add eax, dword [ebp + 0x10]
+mov dword [ebp - 0x40], esi
+mov dword [ebp - 0x48], eax
+mov dword [ebp - 0x34], 0x18
+mov byte [ebp - 0x2d], 0
+jmp near loc_fffc32a6 ; jmp 0xfffc32a6
+
+loc_fffc3209: ; not directly referenced
+imul eax, dword [ebp - 0x3c], 9
+imul edx, edi, 0x12
+movzx ecx, byte [ebp - 0x2d]
+lea esi, [edx + eax]
+mov edx, dword [ebp - 0x44]
+lea eax, [esi + ecx]
+lea edx, [eax + edx + 0x16]
+mov dword [ebp - 0x4c], edx
+mov edx, dword [ebp - 0x44]
+add edx, esi
+mov esi, dword [ebp - 0x4c]
+lea eax, [ecx + edx + 0x16]
+mov esi, dword [ebx + esi*8 + 0x16c8]
+mov edx, dword [ebx + eax*8 + 0x16c4]
+add esi, edx
+xor edx, edx
+mov dword [ebp - 0x4c], esi
+mov eax, esi
+mov esi, 0xa
+div esi
+mov esi, dword [ebp - 0x48]
+mov edx, 0x18
+mov dword [esi + ecx*4], eax
+mov dword [ebp - 0x50], eax
+shr eax, 1
+mov esi, dword [ebp - 0x40]
+cmp eax, 0x18
+cmovbe edx, eax
+cmp dword [ebp - 0x34], edx
+mov dword [esi + ecx*4], edx
+cmovbe edx, dword [ebp - 0x34]
+sub esp, 0xc
+mov dword [ebp - 0x34], edx
+push edi
+mov ecx, dword [ebp - 0x54]
+mov edx, dword [ebp - 0x2c]
+mov eax, ebx
+call fcn_fffb0b1b ; call 0xfffb0b1b
+add esp, 0x10
+test eax, eax
+jne short loc_fffc32ba ; jne 0xfffc32ba
+cmp byte [ebp - 0x2e], 5
+jne short loc_fffc32a3 ; jne 0xfffc32a3
+movzx ecx, byte [ebx + 0x1755]
+mov edx, dword [ebp - 0x34]
+mov eax, esi
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffc32a3: ; not directly referenced
+inc byte [ebp - 0x2d]
+
+loc_fffc32a6: ; not directly referenced
+mov al, byte [ebp - 0x2d]
+cmp al, byte [ebx + 0x1755]
+jb loc_fffc3209 ; jb 0xfffc3209
+jmp near loc_fffc31e0 ; jmp 0xfffc31e0
+
+loc_fffc32ba: ; not directly referenced
+inc byte [ebp - 0x28]
+
+loc_fffc32bd: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x28], 1
+setbe dl
+test cl, dl
+jne loc_fffc31ce ; jne 0xfffc31ce
+
+loc_fffc32d1: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc32d9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+xor ecx, ecx
+push esi
+mov esi, eax
+push ebx
+lea esp, [esp - 0x96c]
+mov bl, byte [ebp + 8]
+mov byte [ebp - 0x95a], bl
+mov bl, byte [ebp + 0xc]
+mov byte [ebp - 0x93c], bl
+mov bl, byte [ebp + 0x10]
+mov dword [ebp - 0x954], edx
+mov byte [ebp - 0x959], bl
+mov edx, 0x10
+lea ebx, [eax + 0x16be]
+lea eax, [ebp - 0x928]
+mov byte [ebp - 0x937], 0
+mov byte [ebp - 0x936], 0xf8
+mov byte [ebp - 0x935], 8
+mov byte [ebp - 0x934], 1
+mov byte [ebp - 0x933], 1
+mov byte [ebp - 0x932], 1
+mov dword [ebp - 0x944], ebx
+call fcn_fffa119f ; call 0xfffa119f
+xor eax, eax
+
+loc_fffc3355: ; not directly referenced
+mov byte [ebp + eax - 0x931], al
+inc eax
+cmp eax, 9
+jne short loc_fffc3355 ; jne 0xfffc3355
+sub esp, 0xc
+mov eax, edi
+push 2
+movzx edx, al
+mov ecx, 0xf
+mov eax, esi
+call fcn_fffc5844 ; call 0xfffc5844
+add esp, 0x10
+xor eax, eax
+mov byte [ebp - 0x940], 0
+mov dl, 3
+
+loc_fffc3386: ; not directly referenced
+movzx ecx, al
+mov bl, byte [ebp + ecx - 0x934]
+add byte [ebp - 0x940], bl
+cmp byte [ebp - 0x959], 0
+cmove eax, edx
+inc eax
+cmp al, 2
+jbe short loc_fffc3386 ; jbe 0xfffc3386
+cmp byte [ebp - 0x940], 0
+mov bl, byte [ebp - 0x940]
+mov al, 1
+cmove ebx, eax
+cmp byte [ebp - 0x93c], 1
+mov byte [ebp - 0x940], bl
+jne short loc_fffc33ea ; jne 0xfffc33ea
+push 1
+mov ecx, 0x88888888
+mov edx, 0xa
+push 0
+mov eax, esi
+push 1
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+
+loc_fffc33ea: ; not directly referenced
+lea edi, [esi + 0x16be]
+xor ebx, ebx
+mov byte [ebp - 0x948], 0
+mov dword [ebp - 0x94c], edi
+
+loc_fffc33ff: ; not directly referenced
+imul edi, ebx, 0x1347
+mov eax, dword [ebp - 0x94c]
+mov edx, ebx
+lea eax, [eax + edi + 0x12b0]
+mov dword [ebp - 0x93c], eax
+movzx ecx, byte [eax + 0x115d]
+mov eax, esi
+call fcn_fffc41bb ; call 0xfffc41bb
+mov edx, dword [ebp - 0x944]
+or byte [ebp - 0x948], al
+cmp dword [edx + edi + 0x12be], 2
+jne short loc_fffc3457 ; jne 0xfffc3457
+mov eax, dword [ebp - 0x93c]
+xor edx, edx
+movzx ecx, byte [esi + 0x1755]
+add eax, 0x107
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffc3457: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc33ff ; jne 0xfffc33ff
+push eax
+lea ebx, [esi + 0x1774]
+mov ecx, 1
+push eax
+mov edx, ebx
+mov eax, esi
+push 0xf
+mov dword [ebp - 0x944], ebx
+push 0
+call fcn_fffb0bed ; call 0xfffb0bed
+mov edi, dword [ebp - 0x954]
+lea ecx, [ebp - 0x918]
+add edi, 0x240
+add esp, 0x10
+movzx ebx, byte [ebp - 0x948]
+mov dword [ebp - 0x960], edi
+mov dword [ebp - 0x93c], 0
+mov dword [ebp - 0x948], ebx
+
+loc_fffc34af: ; not directly referenced
+mov edi, dword [ebp - 0x948]
+mov ebx, dword [ebp - 0x93c]
+bt edi, ebx
+jae short loc_fffc34d0 ; jae 0xfffc34d0
+mov bl, byte [esi + 0x1755]
+xor edi, edi
+mov byte [ebp - 0x94c], bl
+jmp short loc_fffc353a ; jmp 0xfffc353a
+
+loc_fffc34d0: ; not directly referenced
+inc dword [ebp - 0x93c]
+add ecx, 0x24
+add dword [ebp - 0x960], 0x48
+cmp dword [ebp - 0x93c], 2
+je short loc_fffc3546 ; je 0xfffc3546
+jmp short loc_fffc34af ; jmp 0xfffc34af
+
+loc_fffc34eb: ; not directly referenced
+cmp byte [ebp - 0x959], 0
+je short loc_fffc351f ; je 0xfffc351f
+mov ebx, dword [ebp - 0x960]
+mov eax, dword [ebp - 0x960]
+xor edx, edx
+mov eax, dword [eax + edi*8]
+mov ebx, dword [ebx + edi*8 + 4]
+add ebx, eax
+mov eax, ebx
+mov dword [ebp - 0x950], ebx
+mov ebx, 0x14
+div ebx
+mov dword [ecx + edi*4], eax
+jmp short loc_fffc3526 ; jmp 0xfffc3526
+
+loc_fffc351f: ; not directly referenced
+mov dword [ecx + edi*4], 1
+
+loc_fffc3526: ; not directly referenced
+mov eax, dword [ecx + edi*4]
+test eax, eax
+je short loc_fffc3532 ; je 0xfffc3532
+cmp eax, 0xc
+jbe short loc_fffc3539 ; jbe 0xfffc3539
+
+loc_fffc3532: ; not directly referenced
+mov dword [ecx + edi*4], 0xc
+
+loc_fffc3539: ; not directly referenced
+inc edi
+
+loc_fffc353a: ; not directly referenced
+mov eax, edi
+cmp byte [ebp - 0x94c], al
+ja short loc_fffc34eb ; ja 0xfffc34eb
+jmp short loc_fffc34d0 ; jmp 0xfffc34d0
+
+loc_fffc3546: ; not directly referenced
+push eax
+mov ecx, 4
+mov edx, dword [ebp - 0x944]
+push eax
+mov eax, esi
+xor ebx, ebx
+push 0xf
+push 0
+call fcn_fffb0bed ; call 0xfffb0bed
+add esp, 0x10
+jmp near loc_fffc373e ; jmp 0xfffc373e
+
+loc_fffc3568: ; not directly referenced
+mov edx, dword [ebp - 0x948]
+bt edx, edi
+jb short loc_fffc35dd ; jb 0xfffc35dd
+
+loc_fffc3573: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffc3568 ; jne 0xfffc3568
+jmp near loc_fffc3600 ; jmp 0xfffc3600
+
+loc_fffc357e: ; not directly referenced
+movzx ecx, byte [ebp - 0x93c]
+mov edx, dword [ebp - 0x950]
+mov dword [ebp - 0x94c], ecx
+add edx, ecx
+mov ecx, dword [ebp - 0x958]
+push 2
+push 0
+movsx eax, byte [ebp + ecx - 0x937]
+mov ecx, 0xc
+imul eax, dword [ebp + edx*4 - 0x918]
+cdq
+idiv ecx
+push 1
+push dword [ebp - 0x94c]
+mov edx, 1
+push 0
+push edi
+push 0
+push 0
+mov ecx, eax
+mov eax, esi
+call fcn_fffc83fc ; call 0xfffc83fc
+inc byte [ebp - 0x93c]
+add esp, 0x20
+jmp short loc_fffc35ed ; jmp 0xfffc35ed
+
+loc_fffc35dd: ; not directly referenced
+lea eax, [edi + edi*8]
+mov byte [ebp - 0x93c], 0
+mov dword [ebp - 0x950], eax
+
+loc_fffc35ed: ; not directly referenced
+mov dl, byte [ebp - 0x93c]
+cmp dl, byte [esi + 0x1755]
+jb short loc_fffc357e ; jb 0xfffc357e
+jmp near loc_fffc3573 ; jmp 0xfffc3573
+
+loc_fffc3600: ; not directly referenced
+push eax
+lea ecx, [ebp - 0x928]
+lea edi, [ebp - 0x931]
+push eax
+mov edx, dword [ebp - 0x944]
+mov eax, esi
+push ecx
+mov ecx, dword [ebp - 0x948]
+push 0x36
+push edi
+movzx edi, bl
+push 4
+push 0xff
+push 0
+call fcn_fffc69bc ; call 0xfffc69bc
+imul eax, edi, 0x90
+mov edx, dword [ebp - 0x954]
+lea ecx, [ebp - 0x8d0]
+mov dword [ebp - 0x93c], edx
+add esp, 0x20
+mov dword [ebp - 0x970], 0
+mov dword [ebp - 0x960], edi
+mov dword [ebp - 0x96c], eax
+
+loc_fffc3662: ; not directly referenced
+mov edi, dword [ebp - 0x948]
+mov eax, dword [ebp - 0x970]
+bt edi, eax
+jb short loc_fffc3692 ; jb 0xfffc3692
+
+loc_fffc3673: ; not directly referenced
+inc dword [ebp - 0x970]
+add ecx, 0x24
+add dword [ebp - 0x93c], 0x48
+cmp dword [ebp - 0x970], 2
+je loc_fffc372c ; je 0xfffc372c
+jmp short loc_fffc3662 ; jmp 0xfffc3662
+
+loc_fffc3692: ; not directly referenced
+imul eax, dword [ebp - 0x970], 0x48
+add eax, dword [ebp - 0x96c]
+mov dl, byte [esi + 0x1755]
+mov byte [ebp - 0x968], dl
+lea edx, [ebp + eax - 0x888]
+xor eax, eax
+jmp short loc_fffc371f ; jmp 0xfffc371f
+
+loc_fffc36b6: ; not directly referenced
+mov edi, dword [ebp - 0x93c]
+mov edi, dword [edi + eax*8 + 4]
+mov dword [ebp - 0x950], edi
+mov edi, dword [ebp - 0x93c]
+mov edi, dword [edi + eax*8]
+mov dword [ebp - 0x958], edi
+mov edi, dword [ebp - 0x950]
+sub edi, dword [ebp - 0x958]
+test bl, bl
+mov dword [ebp - 0x964], edi
+jne short loc_fffc36f2 ; jne 0xfffc36f2
+mov dword [ecx + eax*4], 0
+
+loc_fffc36f2: ; not directly referenced
+mov edi, dword [ebp - 0x960]
+movzx edi, byte [ebp + edi - 0x934]
+imul edi, dword [ebp - 0x964]
+add dword [ecx + eax*4], edi
+mov edi, dword [ebp - 0x958]
+inc eax
+mov dword [edx], edi
+mov edi, dword [ebp - 0x950]
+mov dword [edx + 4], edi
+add edx, 8
+
+loc_fffc371f: ; not directly referenced
+cmp byte [ebp - 0x968], al
+ja short loc_fffc36b6 ; ja 0xfffc36b6
+jmp near loc_fffc3673 ; jmp 0xfffc3673
+
+loc_fffc372c: ; not directly referenced
+cmp byte [ebp - 0x959], 0
+mov al, 3
+cmove ebx, eax
+inc ebx
+cmp bl, 2
+ja short loc_fffc374e ; ja 0xfffc374e
+
+loc_fffc373e: ; not directly referenced
+movzx eax, bl
+xor edi, edi
+mov dword [ebp - 0x958], eax
+jmp near loc_fffc3568 ; jmp 0xfffc3568
+
+loc_fffc374e: ; not directly referenced
+movsx ebx, byte [ebp - 0x940]
+mov dword [ebp - 0x940], 0
+imul edi, ebx, 0x14
+mov dword [ebp - 0x94c], ebx
+mov dword [ebp - 0x960], edi
+lea ebx, [esi + 0x16be]
+mov dword [ebp - 0x968], ebx
+
+loc_fffc377a: ; not directly referenced
+mov edi, dword [ebp - 0x948]
+mov ebx, dword [ebp - 0x940]
+bt edi, ebx
+jae loc_fffc391d ; jae 0xfffc391d
+imul edi, ebx, 0x1347
+mov ebx, dword [ebp - 0x968]
+mov dword [ebp - 0x964], edi
+mov byte [ebp - 0x944], 0
+lea ebx, [ebx + edi + 0x12be]
+mov dword [ebp - 0x950], ebx
+imul edi, dword [ebp - 0x940], 9
+mov dword [ebp - 0x958], edi
+jmp near loc_fffc38d6 ; jmp 0xfffc38d6
+
+loc_fffc37c7: ; not directly referenced
+movzx ebx, byte [ebp - 0x944]
+mov ecx, dword [ebp - 0x958]
+add ecx, ebx
+mov eax, dword [ebp + ecx*4 - 0x8d0]
+cdq
+or edx, 1
+movsx edi, dl
+imul edi, dword [ebp - 0x94c]
+imul eax, edi, 0xa
+add eax, dword [ebp + ecx*4 - 0x8d0]
+cdq
+mov edi, dword [ebp - 0x950]
+idiv dword [ebp - 0x960]
+mov dword [ebp + ecx*4 - 0x8d0], eax
+cdq
+mov ecx, 2
+mov dword [ebp - 0x93c], eax
+idiv ecx
+add byte [edi + ebx + 0x10d9], al
+xor edi, edi
+
+loc_fffc3820: ; not directly referenced
+mov edx, dword [ebp - 0x964]
+mov ecx, edi
+mov eax, 1
+shl eax, cl
+test byte [esi + edx + 0x3acb], al
+je short loc_fffc3853 ; je 0xfffc3853
+push eax
+mov ecx, edi
+mov edx, dword [ebp - 0x940]
+push 0
+mov eax, esi
+push 0xff
+push ebx
+call fcn_fffb0168 ; call 0xfffb0168
+add esp, 0x10
+
+loc_fffc3853: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffc3820 ; jne 0xfffc3820
+imul ecx, dword [ebp - 0x93c], 0xa
+imul edi, dword [ebp - 0x93c], 0xfffffffffffffff6
+mov dword [ebp - 0x96c], ecx
+mov dword [ebp - 0x93c], edi
+xor ecx, ecx
+mov dl, 3
+
+loc_fffc3877: ; not directly referenced
+movzx eax, cl
+mov edi, dword [ebp - 0x96c]
+imul eax, eax, 0x12
+add eax, dword [ebp - 0x958]
+add eax, ebx
+add dword [ebp + eax*8 - 0x888], edi
+mov edi, dword [ebp - 0x93c]
+add dword [ebp + eax*8 - 0x884], edi
+cmp byte [ebp - 0x959], 0
+cmove ecx, edx
+inc ecx
+cmp cl, 2
+jbe short loc_fffc3877 ; jbe 0xfffc3877
+add ebx, dword [ebp - 0x958]
+mov edx, dword [ebp - 0x954]
+inc byte [ebp - 0x944]
+mov eax, dword [ebp + ebx*8 - 0x888]
+mov dword [edx + ebx*8], eax
+mov eax, dword [ebp + ebx*8 - 0x884]
+mov dword [edx + ebx*8 + 4], eax
+
+loc_fffc38d6: ; not directly referenced
+movzx ecx, byte [esi + 0x1755]
+cmp byte [ebp - 0x944], cl
+jb loc_fffc37c7 ; jb 0xfffc37c7
+mov eax, dword [ebp - 0x950]
+xor edx, edx
+add eax, 0xf9
+call fcn_fffc83ab ; call 0xfffc83ab
+sub esp, 0xc
+mov ecx, 1
+push 0
+mov edx, dword [ebp - 0x940]
+mov eax, esi
+push 1
+push 0
+push 2
+push 0
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+
+loc_fffc391d: ; not directly referenced
+inc dword [ebp - 0x940]
+cmp dword [ebp - 0x940], 2
+jne loc_fffc377a ; jne 0xfffc377a
+cmp byte [ebp - 0x95a], 0
+jne short loc_fffc3963 ; jne 0xfffc3963
+
+loc_fffc3939: ; not directly referenced
+push 2
+mov byte [esi + 0x1741], 0
+xor ecx, ecx
+push 0
+mov edx, 1
+mov eax, esi
+push 1
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+jmp near loc_fffc3d1b ; jmp 0xfffc3d1b
+
+loc_fffc3963: ; not directly referenced
+test byte [ebp - 0x948], 1
+je short loc_fffc397c ; je 0xfffc397c
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x4098], 0xffff3001
+
+loc_fffc397c: ; not directly referenced
+test byte [ebp - 0x948], 2
+je short loc_fffc3995 ; je 0xfffc3995
+mov eax, dword [esi + 0x103f]
+mov dword [eax + 0x4498], 0xffff3001
+
+loc_fffc3995: ; not directly referenced
+mov byte [ebp - 0x940], 0
+jmp near loc_fffc3b89 ; jmp 0xfffc3b89
+
+loc_fffc39a1: ; not directly referenced
+mov edi, dword [ebp - 0x948]
+bt edi, ebx
+jb short loc_fffc39b7 ; jb 0xfffc39b7
+
+loc_fffc39ac: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc39a1 ; jne 0xfffc39a1
+jmp near loc_fffc3a62 ; jmp 0xfffc3a62
+
+loc_fffc39b7: ; not directly referenced
+lea edi, [ebx + ebx*8]
+mov byte [ebp - 0x93c], 0
+mov dword [ebp - 0x944], edi
+mov dword [ebp - 0x954], edi
+jmp short loc_fffc3a4b ; jmp 0xfffc3a4b
+
+loc_fffc39cf: ; not directly referenced
+movzx edi, byte [ebp - 0x93c]
+mov edx, dword [ebp - 0x954]
+add edx, edi
+mov ecx, dword [ebp - 0x950]
+push 1
+push 0
+movsx eax, byte [ebp + ecx - 0x937]
+mov ecx, 0xc
+imul eax, dword [ebp + edx*4 - 0x918]
+cdq
+idiv ecx
+push 1
+mov edx, 1
+push edi
+push 0
+push ebx
+push 0
+push 0
+mov ecx, eax
+mov eax, esi
+call fcn_fffc83fc ; call 0xfffc83fc
+add edi, dword [ebp - 0x944]
+lea eax, [ebp - 0x498]
+shl edi, 6
+add esp, 0x20
+add edi, eax
+xor eax, eax
+
+loc_fffc3a2e: ; not directly referenced
+mov dword [edi + eax + 4], 8
+mov dword [edi + eax], 8
+add eax, 8
+cmp eax, 0x40
+jne short loc_fffc3a2e ; jne 0xfffc3a2e
+inc byte [ebp - 0x93c]
+
+loc_fffc3a4b: ; not directly referenced
+mov dl, byte [ebp - 0x93c]
+cmp dl, byte [esi + 0x1755]
+jb loc_fffc39cf ; jb 0xfffc39cf
+jmp near loc_fffc39ac ; jmp 0xfffc39ac
+
+loc_fffc3a62: ; not directly referenced
+movzx ebx, byte [ebp - 0x940]
+mov byte [esi + 0x1769], 1
+imul eax, ebx, 0x90
+xor ecx, ecx
+push edi
+lea edi, [ebp - 0x888]
+add eax, edi
+push 0xa
+mov edx, dword [ebp - 0x948]
+mov dword [ebp - 0x944], ebx
+push eax
+lea eax, [ebp - 0x498]
+xor edi, edi
+push eax
+mov eax, esi
+call fcn_fffc23ac ; call 0xfffc23ac
+add esp, 0x10
+mov dword [ebp - 0x93c], 0
+
+loc_fffc3aad: ; not directly referenced
+mov ebx, dword [ebp - 0x948]
+bt ebx, edi
+jb short loc_fffc3aca ; jb 0xfffc3aca
+
+loc_fffc3ab8: ; not directly referenced
+inc edi
+add dword [ebp - 0x93c], 9
+cmp edi, 2
+jne short loc_fffc3aad ; jne 0xfffc3aad
+jmp near loc_fffc3b6b ; jmp 0xfffc3b6b
+
+loc_fffc3aca: ; not directly referenced
+mov al, byte [esi + 0x1755]
+mov byte [ebp - 0x960], 0
+mov byte [ebp - 0x958], al
+jmp short loc_fffc3b17 ; jmp 0xfffc3b17
+
+loc_fffc3adf: ; not directly referenced
+mov edx, dword [ebp - 0x954]
+mov ebx, dword [edx + eax*2 + 4]
+add ebx, dword [edx + eax*2]
+sub ebx, 0x10
+cmp byte [ebp - 0x940], 0
+jne short loc_fffc3aff ; jne 0xfffc3aff
+mov dword [ecx + eax], 0
+
+loc_fffc3aff: ; not directly referenced
+imul ebx, dword [ebp - 0x950]
+add dword [ecx + eax], ebx
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffc3adf ; jne 0xfffc3adf
+inc byte [ebp - 0x960]
+
+loc_fffc3b17: ; not directly referenced
+mov cl, byte [ebp - 0x958]
+cmp byte [ebp - 0x960], cl
+je short loc_fffc3ab8 ; je 0xfffc3ab8
+mov ebx, dword [ebp - 0x944]
+lea edx, [ebp - 0x498]
+movzx ecx, byte [ebp - 0x960]
+add ecx, dword [ebp - 0x93c]
+mov eax, ecx
+shl eax, 6
+movzx ebx, byte [ebp + ebx - 0x934]
+add edx, eax
+shl ecx, 5
+mov dword [ebp - 0x950], ebx
+mov dword [ebp - 0x954], edx
+lea ebx, [ebp - 0x6d8]
+xor eax, eax
+add ecx, ebx
+jmp near loc_fffc3adf ; jmp 0xfffc3adf
+
+loc_fffc3b6b: ; not directly referenced
+cmp byte [ebp - 0x959], 0
+mov bl, byte [ebp - 0x940]
+mov al, 3
+cmove ebx, eax
+inc ebx
+cmp bl, 2
+mov byte [ebp - 0x940], bl
+ja short loc_fffc3b9d ; ja 0xfffc3b9d
+
+loc_fffc3b89: ; not directly referenced
+movzx edi, byte [ebp - 0x940]
+xor ebx, ebx
+mov dword [ebp - 0x950], edi
+jmp near loc_fffc39a1 ; jmp 0xfffc39a1
+
+loc_fffc3b9d: ; not directly referenced
+mov ebx, dword [ebp - 0x94c]
+mov dword [ebp - 0x944], 0
+add ebx, ebx
+xor edi, edi
+mov dword [ebp - 0x958], ebx
+lea ebx, [esi + 0x16be]
+mov dword [ebp - 0x960], ebx
+
+loc_fffc3bc3: ; not directly referenced
+mov ebx, dword [ebp - 0x948]
+bt ebx, edi
+jae loc_fffc3d05 ; jae 0xfffc3d05
+imul eax, edi, 0x1347
+mov ebx, dword [ebp - 0x960]
+mov byte [ebp - 0x959], 0
+lea eax, [ebx + eax + 0x12be]
+mov dword [ebp - 0x950], eax
+jmp near loc_fffc3c99 ; jmp 0xfffc3c99
+
+loc_fffc3bf7: ; not directly referenced
+mov edx, dword [ebx + ecx]
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, dword [ebp - 0x94c]
+add eax, edx
+cdq
+idiv dword [ebp - 0x958]
+mov dword [ebp - 0x964], eax
+mov eax, dword [ebp - 0x940]
+movzx edx, byte [eax]
+mov eax, dword [ebp - 0x964]
+add eax, edx
+cmp eax, 0xf
+jle short loc_fffc3c3a ; jle 0xfffc3c3a
+mov dword [ebx + ecx], 0xf
+jmp short loc_fffc3c47 ; jmp 0xfffc3c47
+
+loc_fffc3c3a: ; not directly referenced
+test eax, eax
+mov edx, 0
+cmovs eax, edx
+mov dword [ebx + ecx], eax
+
+loc_fffc3c47: ; not directly referenced
+mov edx, dword [ebp - 0x940]
+mov eax, dword [ebx + ecx]
+mov byte [edx], al
+add edx, 3
+shl eax, cl
+add ecx, 4
+or dword [ebp - 0x93c], eax
+cmp ecx, 0x20
+mov dword [ebp - 0x940], edx
+jne short loc_fffc3bf7 ; jne 0xfffc3bf7
+push 2
+mov ecx, dword [ebp - 0x93c]
+mov edx, 0xa
+push 0
+mov eax, esi
+push 0
+push dword [ebp - 0x954]
+push 0
+push edi
+push 0
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+inc byte [ebp - 0x959]
+add esp, 0x20
+
+loc_fffc3c99: ; not directly referenced
+movzx ecx, byte [esi + 0x1755]
+cmp byte [ebp - 0x959], cl
+jae short loc_fffc3cf3 ; jae 0xfffc3cf3
+movzx ebx, byte [ebp - 0x959]
+xor ecx, ecx
+imul eax, ebx, 0x18
+mov dword [ebp - 0x954], ebx
+mov ebx, dword [ebp - 0x950]
+mov dword [ebp - 0x93c], 0
+lea eax, [ebx + eax + 0x9fe]
+mov ebx, dword [ebp - 0x954]
+add ebx, dword [ebp - 0x944]
+mov dword [ebp - 0x940], eax
+shl ebx, 5
+lea eax, [ebp - 0x6d8]
+add ebx, eax
+jmp near loc_fffc3bf7 ; jmp 0xfffc3bf7
+
+loc_fffc3cf3: ; not directly referenced
+mov eax, dword [ebp - 0x950]
+xor edx, edx
+add eax, 0xf9
+call fcn_fffc83ab ; call 0xfffc83ab
+
+loc_fffc3d05: ; not directly referenced
+inc edi
+add dword [ebp - 0x944], 9
+cmp edi, 2
+jne loc_fffc3bc3 ; jne 0xfffc3bc3
+jmp near loc_fffc3939 ; jmp 0xfffc3939
+
+loc_fffc3d1b: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc3d23:
+db 0x00
+
+fcn_fffc3d24: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x4c]
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x20], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp - 0x30], eax
+mov eax, dword [ebp + 0x14]
+mov dword [ebp - 0x34], eax
+cmp dword [ebx + 0x1005], 0x306c0
+mov eax, dword [ebp + 0x18]
+mov esi, dword [ebp + 0x1c]
+mov dword [ebp - 0x24], eax
+mov edi, dword [ebp + 0x20]
+mov byte [ebp - 0x37], dl
+jne short loc_fffc3d93 ; jne 0xfffc3d93
+mov word [ebp - 0x36], 0x7f
+cmp dword [ebx + 0x1001], 1
+mov eax, 0xff
+cmove ax, word [ebp - 0x36]
+mov dword [ebp - 0x1c], 0x3f8
+mov word [ebp - 0x36], ax
+mov eax, 0x7f8
+cmove eax, dword [ebp - 0x1c]
+mov dword [ebp - 0x1c], eax
+jmp short loc_fffc3da0 ; jmp 0xfffc3da0
+
+loc_fffc3d93: ; not directly referenced
+mov word [ebp - 0x36], 0xff
+mov dword [ebp - 0x1c], 0x7f8
+
+loc_fffc3da0: ; not directly referenced
+test ecx, ecx
+je short loc_fffc3e19 ; je 0xfffc3e19
+push eax
+mov dword [ebp - 0x4c], 0
+push eax
+movzx eax, byte [ebp - 0x37]
+movzx edx, word [ecx]
+shl edx, 0x18
+lea eax, [eax*8 + 0x48d8]
+mov dword [ebp - 0x2c], eax
+movzx eax, word [ecx + 2]
+shl eax, 0x10
+add eax, edx
+mov edx, dword [ebp - 0x4c]
+mov dword [ebp - 0x3c], eax
+movzx eax, word [ecx + 4]
+movzx ecx, word [ecx + 6]
+mov dword [ebp - 0x50], eax
+mov eax, dword [ebp - 0x50]
+and ecx, dword [ebp - 0x1c]
+shld edx, eax, 0x18
+shl eax, 0x18
+mov dword [ebp - 0x4c], edx
+and edx, 0xff
+mov dword [ebp - 0x50], eax
+mov dword [ebp - 0x44], edx
+and eax, 0xff000000
+mov edx, dword [ebp - 0x3c]
+or edx, dword [ebp - 0x44]
+push edx
+mov dword [ebp - 0x40], eax
+mov eax, dword [ebp - 0x40]
+or eax, ecx
+mov edx, dword [ebp - 0x2c]
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+
+loc_fffc3e19: ; not directly referenced
+cmp dword [ebp - 0x28], 0
+je short loc_fffc3e8b ; je 0xfffc3e8b
+push eax
+xor edx, edx
+push eax
+movzx eax, byte [ebp - 0x37]
+lea eax, [eax*8 + 0x48e8]
+mov dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x28]
+movzx ecx, word [eax]
+movzx eax, word [eax + 2]
+shl ecx, 0x18
+shl eax, 0x10
+add eax, ecx
+mov ecx, dword [ebp - 0x28]
+mov dword [ebp - 0x2c], eax
+movzx eax, word [ecx + 4]
+shld edx, eax, 0x18
+shl eax, 0x18
+mov ecx, eax
+and ecx, 0xff000000
+mov dword [ebp - 0x3c], ecx
+movzx ecx, dl
+mov dword [ebp - 0x40], ecx
+mov ecx, dword [ebp - 0x28]
+mov edx, dword [ebp - 0x2c]
+or edx, dword [ebp - 0x40]
+movzx eax, word [ecx + 6]
+mov ecx, dword [ebp - 0x1c]
+push edx
+and ecx, eax
+mov eax, dword [ebp - 0x3c]
+or eax, ecx
+mov edx, dword [ebp - 0x44]
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+
+loc_fffc3e8b: ; not directly referenced
+cmp dword [ebp - 0x20], 0
+setne dl
+cmp dword [ebp - 0x24], 0
+setne byte [ebp - 0x1c]
+mov al, byte [ebp - 0x1c]
+or al, dl
+jne short loc_fffc3eb3 ; jne 0xfffc3eb3
+test edi, edi
+setne cl
+test esi, esi
+setne al
+or cl, al
+je loc_fffc4002 ; je 0xfffc4002
+
+loc_fffc3eb3: ; not directly referenced
+movzx ecx, byte [ebp - 0x37]
+xor eax, eax
+cmp dword [ebp - 0x24], 0
+sete byte [ebp - 0x2c]
+cmp dword [ebp - 0x20], 0
+lea ecx, [ecx*4 + 0x4908]
+mov dword [ebp - 0x28], ecx
+sete cl
+or cl, byte [ebp - 0x2c]
+jne short loc_fffc3f28 ; jne 0xfffc3f28
+test edi, edi
+sete byte [ebp - 0x2c]
+test esi, esi
+sete cl
+or cl, byte [ebp - 0x2c]
+jne short loc_fffc3f28 ; jne 0xfffc3f28
+
+loc_fffc3ee7: ; not directly referenced
+mov ecx, dword [ebp - 0x20]
+mov edx, dword [ebp - 0x20]
+and eax, 0xfffffff0
+movzx ecx, byte [ecx + 3]
+and ecx, 3
+mov dword [ebp - 0x2c], ecx
+or eax, dword [ebp - 0x2c]
+movzx ecx, byte [edx + 2]
+and ecx, 3
+shl ecx, 2
+or eax, ecx
+movzx ecx, byte [edx + 1]
+and al, 0xf
+and ecx, 3
+shl ecx, 4
+mov dword [ebp - 0x2c], ecx
+or eax, dword [ebp - 0x2c]
+movzx ecx, byte [edx]
+and ecx, 3
+shl ecx, 6
+or eax, ecx
+jmp short loc_fffc3f37 ; jmp 0xfffc3f37
+
+loc_fffc3f28: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+add eax, dword [ebx + 0x103f]
+test dl, dl
+mov eax, dword [eax]
+jne short loc_fffc3ee7 ; jne 0xfffc3ee7
+
+loc_fffc3f37: ; not directly referenced
+cmp byte [ebp - 0x1c], 0
+je short loc_fffc3f80 ; je 0xfffc3f80
+mov ecx, dword [ebp - 0x24]
+and eax, 0xfcffffff
+movzx ecx, byte [ecx + 3]
+and ecx, 1
+shl ecx, 0x18
+mov dword [ebp - 0x1c], ecx
+mov ecx, dword [ebp - 0x24]
+or eax, dword [ebp - 0x1c]
+movzx edx, byte [ecx + 2]
+and edx, 1
+shl edx, 0x19
+or eax, edx
+movzx edx, byte [ecx + 1]
+and eax, 0xf3ffffff
+movzx ecx, byte [ecx]
+and edx, 1
+shl edx, 0x1a
+and ecx, 1
+shl ecx, 0x1b
+or eax, edx
+or eax, ecx
+
+loc_fffc3f80: ; not directly referenced
+test esi, esi
+je short loc_fffc3fba ; je 0xfffc3fba
+movzx ecx, byte [esi + 3]
+and eax, 0xcfffffff
+movzx edx, byte [esi + 2]
+and ecx, 1
+shl ecx, 0x1c
+and edx, 1
+shl edx, 0x1d
+or eax, ecx
+movzx ecx, byte [esi]
+or eax, edx
+movzx edx, byte [esi + 1]
+and eax, 0x3fffffff
+shl ecx, 0x1f
+and edx, 1
+shl edx, 0x1e
+or eax, edx
+or eax, ecx
+
+loc_fffc3fba: ; not directly referenced
+test edi, edi
+je short loc_fffc3ff7 ; je 0xfffc3ff7
+movzx ecx, byte [edi + 3]
+and eax, 0xffcf1fff
+movzx edx, byte [edi + 2]
+and ecx, 1
+shl ecx, 0x14
+and edx, 1
+shl edx, 0x15
+or eax, ecx
+movzx ecx, byte [edi]
+or eax, edx
+movzx edx, byte [edi + 1]
+and eax, 0xff3f1fff
+and edx, 1
+and ecx, 1
+shl edx, 0x16
+shl ecx, 0x17
+or eax, edx
+or eax, ecx
+
+loc_fffc3ff7: ; not directly referenced
+mov esi, dword [ebp - 0x28]
+add esi, dword [ebx + 0x103f]
+mov dword [esi], eax
+
+loc_fffc4002: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+setne cl
+cmp dword [ebp - 0x34], 0
+setne byte [ebp - 0x20]
+mov al, byte [ebp - 0x20]
+or al, cl
+je loc_fffc41b3 ; je 0xfffc41b3
+movzx eax, byte [ebp - 0x37]
+xor esi, esi
+xor edi, edi
+cmp dword [ebp - 0x34], 0
+sete dl
+cmp dword [ebp - 0x30], 0
+lea eax, [eax*8 + 0x4910]
+mov dword [ebp - 0x24], eax
+sete al
+or dl, al
+jne short loc_fffc404c ; jne 0xfffc404c
+
+loc_fffc4040: ; not directly referenced
+mov ecx, dword [ebp - 0x30]
+mov eax, dword [ecx]
+cmp eax, 0x1f
+ja short loc_fffc406a ; ja 0xfffc406a
+jmp short loc_fffc4075 ; jmp 0xfffc4075
+
+loc_fffc404c: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+mov eax, ebx
+mov byte [ebp - 0x48], cl
+call fcn_fffb20e4 ; call 0xfffb20e4
+mov cl, byte [ebp - 0x48]
+mov esi, eax
+test cl, cl
+mov edi, edx
+je loc_fffc4149 ; je 0xfffc4149
+jmp short loc_fffc4040 ; jmp 0xfffc4040
+
+loc_fffc406a: ; not directly referenced
+dec eax
+call fcn_fffb21bf ; call 0xfffb21bf
+movzx eax, al
+jmp short loc_fffc4078 ; jmp 0xfffc4078
+
+loc_fffc4075: ; not directly referenced
+sub eax, 0xffffffffffffff80
+
+loc_fffc4078: ; not directly referenced
+mov ecx, eax
+mov edx, edi
+and ecx, 0x1f
+and edx, 0xe0ffffff
+shl ecx, 0x18
+shr eax, 7
+or edx, ecx
+mov ecx, dword [ebp - 0x30]
+and edx, 0x7fffffff
+shl eax, 0x1f
+mov edi, edx
+or edi, eax
+mov edx, dword [ecx + 4]
+cmp edx, 0x1f
+lea eax, [edx + 0x80]
+jbe short loc_fffc40b6 ; jbe 0xfffc40b6
+lea eax, [edx - 1]
+call fcn_fffb21bf ; call 0xfffb21bf
+movzx eax, al
+
+loc_fffc40b6: ; not directly referenced
+mov ecx, eax
+mov edx, edi
+and ecx, 0x1f
+and edx, 0xfffe0fff
+shl ecx, 0xc
+shl eax, 0xc
+or edx, ecx
+mov ecx, dword [ebp - 0x30]
+and edx, 0xfff7ffff
+mov edi, edx
+and eax, 0x80000
+or edi, eax
+mov edx, dword [ecx + 8]
+cmp edx, 0xf
+lea eax, [edx + 0x20]
+jbe short loc_fffc40f3 ; jbe 0xfffc40f3
+lea eax, [edx - 1]
+call fcn_fffb21bf ; call 0xfffb21bf
+movzx eax, al
+
+loc_fffc40f3: ; not directly referenced
+mov ecx, eax
+mov edx, edi
+and ecx, 0xf
+and edx, 0xfffffff0
+or edx, ecx
+mov ecx, dword [ebp - 0x30]
+and edx, 0xffffffdf
+and eax, 0x20
+mov edi, edx
+or edi, eax
+mov edx, dword [ecx + 0xc]
+cmp edx, 0x1f
+lea eax, [edx + 0x80]
+jbe short loc_fffc4125 ; jbe 0xfffc4125
+lea eax, [edx - 1]
+call fcn_fffb21bf ; call 0xfffb21bf
+movzx eax, al
+
+loc_fffc4125: ; not directly referenced
+mov ecx, eax
+mov edx, esi
+and ecx, 0x1f
+and edx, 0xfffe0fff
+shl ecx, 0xc
+shl eax, 0xc
+or edx, ecx
+and edx, 0xfff7ffff
+and eax, 0x80000
+mov esi, edx
+or esi, eax
+
+loc_fffc4149: ; not directly referenced
+cmp byte [ebp - 0x20], 0
+je short loc_fffc419c ; je 0xfffc419c
+mov ecx, dword [ebp - 0x34]
+mov eax, edi
+and eax, 0xff8fffff
+movzx edx, byte [ecx]
+and edx, 7
+shl edx, 0x14
+or eax, edx
+movzx edx, byte [ecx + 2]
+and eax, 0xfffffe3f
+and edx, 7
+mov edi, eax
+shl edx, 6
+mov eax, esi
+or edi, edx
+and eax, 0xfffff
+movzx edx, word [ecx + 4]
+shl edx, 0x14
+or eax, edx
+mov dl, byte [ebp - 0x36]
+and dl, byte [ecx + 6]
+and eax, 0xfffff807
+movzx edx, dl
+mov esi, eax
+shl edx, 3
+or esi, edx
+
+loc_fffc419c: ; not directly referenced
+mov dword [ebp + 8], esi
+mov dword [ebp + 0xc], edi
+mov edx, dword [ebp - 0x24]
+lea esp, [ebp - 0xc]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffb210b ; jmp 0xfffb210b
+
+loc_fffc41b3: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc41bb: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x14]
+mov byte [ebp - 0x11], dl
+movzx edx, dl
+imul ebx, edx, 0x1347
+and cl, byte [eax + ebx + 0x3acb]
+test cl, 0xf
+jne short loc_fffc4208 ; jne 0xfffc4208
+mov ecx, dword [eax + 0x103f]
+lea ecx, [ecx + edx*4 + 0x4930]
+mov dword [ecx], 0
+mov eax, dword [eax + 0x103f]
+lea edx, [eax + edx*8 + 0x48a8]
+mov eax, dword [edx]
+and ah, 0xf7
+mov dword [edx], eax
+xor eax, eax
+jmp short loc_fffc427a ; jmp 0xfffc427a
+
+loc_fffc4208: ; not directly referenced
+movzx ecx, cl
+xor ebx, ebx
+xor edi, edi
+mov byte [ebp - 0x1d], 0
+mov dword [ebp - 0x18], ecx
+
+loc_fffc4216: ; not directly referenced
+mov esi, dword [ebp - 0x18]
+bt esi, ebx
+jae short loc_fffc4234 ; jae 0xfffc4234
+movzx esi, byte [ebp - 0x1d]
+inc byte [ebp - 0x1d]
+shl esi, 2
+mov dword [ebp - 0x1c], esi
+mov cl, byte [ebp - 0x1c]
+mov esi, ebx
+shl esi, cl
+or edi, esi
+
+loc_fffc4234: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffc4216 ; jne 0xfffc4216
+mov ecx, dword [eax + 0x103f]
+mov bl, byte [ebp - 0x1d]
+dec ebx
+lea ecx, [ecx + edx*4 + 0x4930]
+mov dword [ecx], edi
+mov ecx, dword [eax + 0x103f]
+lea ecx, [ecx + edx*8 + 0x48ef]
+mov byte [ecx], bl
+mov eax, dword [eax + 0x103f]
+mov cl, byte [ebp - 0x11]
+lea edx, [eax + edx*8 + 0x48a8]
+mov eax, dword [edx]
+or ah, 8
+mov dword [edx], eax
+mov eax, 1
+shl eax, cl
+
+loc_fffc427a: ; not directly referenced
+lea esp, [esp + 0x14]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc4283: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+mov ebx, edx
+shl ebx, 0xa
+lea esp, [esp - 0x3c]
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x21], cl
+mov byte [ebp - 0x22], al
+mov eax, dword [esi + 0x103f]
+mov byte [ebp - 0x38], 0
+lea edx, [ebx + 0x41c0]
+mov dword [ebp - 0x28], edx
+lea eax, [ebx + eax + 0x41bc]
+mov byte [eax], 0
+
+loc_fffc42ba: ; not directly referenced
+mov al, byte [ebp - 0x38]
+mov dword [ebp - 0x20], 0
+shr al, 1
+mov dword [ebp - 0x1c], 0
+and eax, 1
+xor edi, edi
+mov dword [ebp - 0x40], eax
+mov al, byte [ebp - 0x38]
+and eax, 1
+mov dword [ebp - 0x3c], 0
+mov dword [ebp - 0x48], eax
+mov dword [ebp - 0x44], 0
+
+loc_fffc42ec: ; not directly referenced
+mov edx, edi
+lea ecx, [edi + 0x15]
+movzx eax, dl
+div byte [ebp - 0x21]
+cmp dl, 0x12
+movzx eax, ah
+ja short loc_fffc430a ; ja 0xfffc430a
+mov edx, edi
+lea ecx, [edi + 8]
+cmp dl, 0x10
+cmovb ecx, edi
+
+loc_fffc430a: ; not directly referenced
+cmp al, byte [ebp - 0x22]
+jne short loc_fffc4317 ; jne 0xfffc4317
+mov eax, dword [ebp - 0x48]
+mov edx, dword [ebp - 0x44]
+jmp short loc_fffc431d ; jmp 0xfffc431d
+
+loc_fffc4317: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+mov edx, dword [ebp - 0x3c]
+
+loc_fffc431d: ; not directly referenced
+shld edx, eax, cl
+shl eax, cl
+test cl, 0x20
+je short loc_fffc432b ; je 0xfffc432b
+mov edx, eax
+xor eax, eax
+
+loc_fffc432b: ; not directly referenced
+or eax, dword [ebp - 0x20]
+inc edi
+mov dword [ebp - 0x20], eax
+mov eax, edi
+or edx, dword [ebp - 0x1c]
+cmp al, 0x16
+mov dword [ebp - 0x1c], edx
+jne short loc_fffc42ec ; jne 0xfffc42ec
+push eax
+mov edx, dword [ebp - 0x28]
+push eax
+push dword [ebp - 0x1c]
+push dword [ebp - 0x20]
+mov eax, esi
+call fcn_fffb210b ; call 0xfffb210b
+inc byte [ebp - 0x38]
+add esp, 0x10
+cmp byte [ebp - 0x38], 8
+jne loc_fffc42ba ; jne 0xfffc42ba
+mov eax, dword [esi + 0x103f]
+lea eax, [ebx + eax + 0x41a0]
+mov dword [eax], 0x222
+mov eax, dword [esi + 0x103f]
+lea eax, [ebx + eax + 0x41b0]
+mov dword [eax], 0x6010102
+mov eax, dword [esi + 0x103f]
+lea eax, [ebx + eax + 0x41a4]
+mov dword [eax], 0xea1
+mov eax, dword [esi + 0x103f]
+lea eax, [ebx + eax + 0x41a8]
+mov dword [eax], 0xbeef
+mov eax, dword [esi + 0x103f]
+lea eax, [ebx + eax + 0x41ac]
+mov dword [eax], 0xdead
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc43c7: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+lea eax, [eax + 0x16be]
+lea esp, [esp - 0x3c]
+mov dword [ebp - 0x3c], eax
+mov byte [ebp - 0x2b], 0
+xor eax, eax
+lea edx, [ebx + 0x2974]
+mov dword [ebp - 0x44], edx
+jmp near loc_fffc4508 ; jmp 0xfffc4508
+
+loc_fffc43f0: ; not directly referenced
+movzx edx, byte [ebp - 0x2b]
+mov ecx, dword [ebp - 0x3c]
+imul eax, edx, 0x1347
+mov dword [ebp - 0x34], edx
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffc4503 ; jne 0xfffc4503
+mov edx, dword [ebp - 0x44]
+xor esi, esi
+mov dword [ebp - 0x30], 0
+lea edx, [edx + eax + 8]
+add eax, ebx
+mov dword [ebp - 0x38], edx
+mov dword [ebp - 0x40], eax
+
+loc_fffc4426: ; not directly referenced
+mov edx, dword [ebp - 0x40]
+mov cl, byte [ebp - 0x30]
+mov eax, 1
+mov byte [ebp - 0x2c], cl
+shl eax, cl
+test byte [edx + 0x3acb], al
+je loc_fffc44d7 ; je 0xfffc44d7
+cmp byte [ebx + 0x1742], 0
+je short loc_fffc4465 ; je 0xfffc4465
+mov al, cl
+mov ecx, dword [ebp - 0x38]
+shr al, 1
+movzx eax, al
+imul eax, eax, 0xfb
+mov si, word [ecx + eax + 0x123a]
+jmp short loc_fffc44ca ; jmp 0xfffc44ca
+
+loc_fffc4465: ; not directly referenced
+mov al, byte [ebp - 0x2c]
+mov edx, dword [ebp - 0x34]
+shr al, 1
+movzx edi, al
+mov eax, ebx
+mov ecx, edi
+call fcn_fffb90cf ; call 0xfffb90cf
+test eax, eax
+je loc_fffc451e ; je 0xfffc451e
+cmp dword [ebx + 0x1005], 0x40650
+jne short loc_fffc4496 ; jne 0xfffc4496
+cmp dword [ebx + 0x1749], 1
+je short loc_fffc449c ; je 0xfffc449c
+
+loc_fffc4496: ; not directly referenced
+movzx ecx, byte [eax + 1]
+jmp short loc_fffc449e ; jmp 0xfffc449e
+
+loc_fffc449c: ; not directly referenced
+xor ecx, ecx
+
+loc_fffc449e: ; not directly referenced
+sub esp, 0xc
+mov edx, ebx
+push esi
+imul edi, edi, 0xfb
+lea eax, [ebp - 0x2a]
+call fcn_fffb92d0 ; call 0xfffb92d0
+add edi, dword [ebp - 0x38]
+mov si, word [ebp - 0x2a]
+add esp, 0x10
+mov word [edi + 0x123a], si
+mov word [edi + 0x1244], si
+
+loc_fffc44ca: ; not directly referenced
+mov al, byte [ebp - 0x2c]
+shr al, 1
+movzx eax, al
+mov word [ebp + eax*2 - 0x1c], si
+
+loc_fffc44d7: ; not directly referenced
+add dword [ebp - 0x30], 2
+cmp dword [ebp - 0x30], 4
+jne loc_fffc4426 ; jne 0xfffc4426
+push 0
+lea eax, [ebp - 0x1c]
+mov ecx, 0xf
+push eax
+mov edx, dword [ebp - 0x34]
+mov eax, ebx
+push 1
+push 0
+call fcn_fffb933f ; call 0xfffb933f
+add esp, 0x10
+jmp short loc_fffc4505 ; jmp 0xfffc4505
+
+loc_fffc4503: ; not directly referenced
+xor eax, eax
+
+loc_fffc4505: ; not directly referenced
+inc byte [ebp - 0x2b]
+
+loc_fffc4508: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x2b], 1
+setbe dl
+test cl, dl
+jne loc_fffc43f0 ; jne 0xfffc43f0
+jmp short loc_fffc4523 ; jmp 0xfffc4523
+
+loc_fffc451e: ; not directly referenced
+mov eax, 1
+
+loc_fffc4523: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc452b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x5c]
+mov dword [ebp - 0x20], eax
+mov al, byte [ebp + 0xc]
+mov dword [ebp - 0x24], edx
+mov byte [ebp - 0x1b], al
+mov al, byte [ebp + 0x10]
+mov byte [ebp - 0x1c], al
+mov dword [ebp - 0x44], ecx
+imul eax, edx, 0x1347
+mov edx, dword [ebp - 0x20]
+lea ecx, [ecx + ecx*8]
+mov byte [ebp - 0x38], 0
+mov dword [ebp - 0x48], ecx
+lea esi, [edx + eax + 0x297c]
+jmp near loc_fffc465e ; jmp 0xfffc465e
+
+loc_fffc4569: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov al, byte [ebp - 0x38]
+movzx edi, byte [ebp - 0x38]
+bt edx, eax
+jae loc_fffc465b ; jae 0xfffc465b
+mov edx, dword [ebp - 0x48]
+movsx cx, byte [ebp - 0x1b]
+lea eax, [edi + edx + 0x130]
+mov word [ebp - 0x1a], cx
+add cx, word [esi + eax*2 + 0xd]
+mov eax, ecx
+js short loc_fffc45a7 ; js 0xfffc45a7
+cmp cx, 0x1ff
+mov ebx, 0x1ff
+cmovbe ebx, eax
+jmp short loc_fffc45a9 ; jmp 0xfffc45a9
+
+loc_fffc45a7: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc45a9: ; not directly referenced
+push eax
+movzx eax, bx
+mov ecx, dword [ebp - 0x44]
+push eax
+mov edx, dword [ebp - 0x24]
+mov eax, dword [ebp - 0x20]
+push 0
+push edi
+call fcn_fffb0168 ; call 0xfffb0168
+mov ecx, dword [ebp - 0x48]
+mov eax, dword [ebp - 0x48]
+add ecx, edi
+mov dx, word [ebp - 0x1a]
+mov dword [ebp - 0x28], ecx
+add ecx, 0xe8
+add eax, esi
+mov dword [ebp - 0x3c], ecx
+add esp, 0xc
+add dx, word [esi + ecx*2 + 0xd]
+movzx eax, byte [edi + eax + 0x309]
+mov ecx, edx
+mov edx, dword [ebp - 0x28]
+and ecx, 0x1ff
+add edx, 0x110
+and eax, 0x3f
+shl ecx, 9
+mov dword [ebp - 0x40], edx
+shl eax, 0x14
+mov dword [ebp - 0x5c], ecx
+mov cx, word [ebp - 0x1a]
+or eax, dword [ebp - 0x5c]
+add cx, word [esi + edx*2 + 5]
+mov edx, dword [ebp - 0x24]
+mov word [ebp - 0x58], cx
+and ecx, 0x1ff
+or eax, ecx
+mov ecx, dword [ebp - 0x44]
+push eax
+mov eax, dword [ebp - 0x20]
+push 3
+push edi
+call fcn_fffb02b4 ; call 0xfffb02b4
+add esp, 0x10
+cmp byte [ebp - 0x1c], 0
+je short loc_fffc465b ; je 0xfffc465b
+mov eax, dword [ebp - 0x28]
+mov edx, dword [ebp - 0x3c]
+mov cx, word [ebp - 0x1a]
+mov word [esi + eax*2 + 0x26d], bx
+mov eax, dword [ebp - 0x40]
+add word [esi + edx*2 + 0xd], cx
+add word [esi + eax*2 + 5], cx
+
+loc_fffc465b: ; not directly referenced
+inc byte [ebp - 0x38]
+
+loc_fffc465e: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov dl, byte [ebp - 0x38]
+cmp dl, byte [eax + 0x1755]
+jb loc_fffc4569 ; jb 0xfffc4569
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc4678: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+xor ebx, ebx
+lea esp, [esp - 0x1c]
+mov byte [ebp - 0x19], cl
+movzx edi, byte [ebp + 8]
+mov dword [ebp - 0x20], edx
+
+loc_fffc4690: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+bt eax, ebx
+jae short loc_fffc46c1 ; jae 0xfffc46c1
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x19]
+and dl, byte [esi + eax + 0x3acb]
+movzx eax, dl
+je short loc_fffc46c1 ; je 0xfffc46c1
+push 0
+xor ecx, ecx
+mov edx, ebx
+push edi
+push 3
+push eax
+mov eax, esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc46c1: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc4690 ; jne 0xfffc4690
+mov dword [ebp + 8], esi
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffbd7da ; jmp 0xfffbd7da
+
+fcn_fffc46d6: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov dword [ebp - 0x20], eax
+add eax, 0x16be
+mov byte [ebp - 0x22], dl
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp - 0x20]
+mov edx, dword [ebp - 0x20]
+mov dword [ebp - 0x30], ecx
+add edx, 0x2974
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x34], edx
+mov eax, dword [eax + 0x1749]
+mov dword [ebp - 0x2c], eax
+
+loc_fffc4710: ; not directly referenced
+imul eax, dword [ebp - 0x1c], 0x1347
+mov ecx, dword [ebp - 0x28]
+cmp dword [ecx + eax + 0x12be], 2
+jne loc_fffc482f ; jne 0xfffc482f
+mov edx, dword [ebp - 0x34]
+lea ebx, [edx + eax + 8]
+mov al, byte [ebp - 0x22]
+and al, byte [ebx + 0x114f]
+je loc_fffc482f ; je 0xfffc482f
+mov edx, dword [ebp - 0x30]
+mov ecx, dword [ebp - 0x1c]
+movzx esi, al
+mov eax, dword [ebp - 0x20]
+mov cl, byte [edx + ecx]
+mov edx, dword [ebp - 0x1c]
+push 0
+movzx edi, cl
+mov byte [ebp - 0x21], cl
+push edi
+xor ecx, ecx
+push 3
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+xor eax, eax
+
+loc_fffc4768: ; not directly referenced
+bt esi, eax
+jae short loc_fffc4779 ; jae 0xfffc4779
+movzx eax, byte [ebx + eax + 0x301]
+add edi, eax
+jmp short loc_fffc4781 ; jmp 0xfffc4781
+
+loc_fffc4779: ; not directly referenced
+inc eax
+cmp eax, 4
+jne short loc_fffc4768 ; jne 0xfffc4768
+xor edi, edi
+
+loc_fffc4781: ; not directly referenced
+push 0
+mov ecx, 4
+mov edx, dword [ebp - 0x1c]
+push edi
+mov eax, dword [ebp - 0x20]
+push 1
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+push 0
+movzx edi, byte [ebp - 0x21]
+mov eax, dword [ebx + 0x195]
+add eax, edi
+mov ecx, 2
+push eax
+mov edx, dword [ebp - 0x1c]
+mov eax, dword [ebp - 0x20]
+push 1
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+mov ecx, 1
+push 0
+mov eax, dword [ebx + 0x19d]
+mov edx, dword [ebp - 0x1c]
+add eax, edi
+push eax
+mov eax, dword [ebp - 0x20]
+push 1
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+cmp dword [ebp - 0x2c], 2
+jne short loc_fffc4810 ; jne 0xfffc4810
+add dword [ebx + 0x195], edi
+mov ecx, 2
+push 0
+mov eax, dword [ebx + 0x199]
+mov edx, dword [ebp - 0x1c]
+add eax, edi
+push eax
+mov eax, dword [ebp - 0x20]
+push 2
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+sub dword [ebx + 0x195], edi
+add esp, 0x10
+
+loc_fffc4810: ; not directly referenced
+push 0
+add edi, dword [ebx + 0x18d]
+mov ecx, 3
+push edi
+mov edx, dword [ebp - 0x1c]
+mov eax, dword [ebp - 0x20]
+push 1
+push esi
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc482f: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 2
+jne loc_fffc4710 ; jne 0xfffc4710
+sub esp, 0xc
+push dword [ebp - 0x20]
+call fcn_fffbd7da ; call 0xfffbd7da
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc484f:
+db 0x00
+
+fcn_fffc4850: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x2e0]
+mov esi, ref_fffcc198 ; mov esi, 0xfffcc198
+push ebx
+lea esp, [esp - 0x3ec]
+mov dword [ebp - 0x34c], eax
+mov al, byte [ebp + 0x2c]
+mov dword [ebp - 0x3d0], ecx
+mov byte [ebp - 0x37c], al
+mov ecx, 0xb
+xor eax, eax
+mov bl, byte [ebp + 8]
+rep stosd ; rep stosd dword es:[edi], eax
+mov byte [ebp - 0x3ca], bl
+lea edi, [ebp - 0x321]
+mov bl, byte [ebp + 0xc]
+mov cl, 0xd
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov byte [ebp - 0x368], bl
+mov bl, byte [ebp + 0x10]
+mov byte [ebp - 0x37b], bl
+mov bl, byte [ebp + 0x14]
+mov byte [ebp - 0x358], bl
+lea edi, [ebp - 0x302]
+mov bl, byte [ebp + 0x20]
+mov esi, ref_fffcc1a8 ; mov esi, 0xfffcc1a8
+mov cl, 4
+mov byte [ebp - 0x3cb], bl
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov bl, byte [ebp + 0x24]
+cmp dl, 0xc
+mov byte [ebp - 0x38c], bl
+mov bl, byte [ebp + 0x28]
+mov byte [ebp - 0x379], dl
+mov byte [ebp - 0x37a], bl
+mov word [ebp - 0x2d8], 7
+mov word [ebp - 0x2d2], 0x3ff
+mov word [ebp - 0x2bc], 1
+mov word [ebp - 0x2b6], 1
+lea edi, [ebp - 0x288]
+mov esi, ref_fffcc1b8 ; mov esi, 0xfffcc1b8
+mov cl, 0xc
+mov al, 0x14
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov bl, 0xa
+mov edx, 2
+cmovne ebx, eax
+lea eax, [ebp - 0x339]
+mov byte [ebp - 0x33b], 0
+mov byte [ebp - 0x33a], 0
+mov byte [ebp - 0x3ab], bl
+mov word [ebp - 0x32c], 0
+mov dword [ebp - 0x32a], 0
+mov dword [ebp - 0x326], 7
+mov byte [ebp - 0x322], 0
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 2
+lea eax, [ebp - 0x337]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 0x10
+lea eax, [ebp - 0x314]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, 0x2c
+lea edx, [ebp - 0x2e0]
+lea eax, [ebp - 0x2b4]
+call fcn_fffa115e ; call 0xfffa115e
+xor eax, eax
+
+loc_fffc49a5: ; not directly referenced
+mov byte [ebp + eax - 0x335], al
+inc eax
+cmp eax, 9
+jne short loc_fffc49a5 ; jne 0xfffc49a5
+cmp byte [ebp - 0x379], 0xc
+mov al, byte [ebp - 0x379]
+sete byte [ebp - 0x396]
+sub eax, 8
+mov dword [ebp - 0x354], 1
+movzx esi, byte [ebp - 0x396]
+cmp al, 1
+setbe dl
+cmp byte [ebp - 0x379], 0xb
+sete al
+mov dword [ebp - 0x388], esi
+or dl, al
+jne short loc_fffc4a05 ; jne 0xfffc4a05
+xor eax, eax
+cmp byte [ebp - 0x379], 0xa
+sete al
+mov dword [ebp - 0x354], eax
+
+loc_fffc4a05: ; not directly referenced
+mov ecx, dword [ebp - 0x34c]
+mov dl, byte [ebp - 0x33a]
+add ecx, 0x2974
+mov al, byte [ebp - 0x33b]
+movzx ebx, byte [ebp - 0x379]
+mov dword [ebp - 0x350], 0
+mov dword [ebp - 0x378], ecx
+mov dword [ebp - 0x390], ebx
+
+loc_fffc4a3a: ; not directly referenced
+imul ecx, dword [ebp - 0x350], 0x1347
+mov edi, dword [ebp - 0x378]
+lea esi, [edi + ecx + 8]
+mov cl, byte [esi + 0x114f]
+test cl, cl
+je loc_fffc4aec ; je 0xfffc4aec
+mov bl, cl
+and ebx, 0xc
+cmp bl, 0xc
+je short loc_fffc4a76 ; je 0xfffc4a76
+mov bl, cl
+and ebx, 3
+cmp bl, 3
+sete bl
+movzx ebx, bl
+jmp short loc_fffc4a7b ; jmp 0xfffc4a7b
+
+loc_fffc4a76: ; not directly referenced
+mov ebx, 1
+
+loc_fffc4a7b: ; not directly referenced
+test byte [ebp - 0x37a], cl
+je short loc_fffc4aec ; je 0xfffc4aec
+mov cl, byte [ebp - 0x350]
+mov edi, 1
+shl edi, cl
+mov ecx, dword [ebp - 0x390]
+mov cl, byte [ebp + ecx - 0x321]
+mov byte [ebp - 0x384], cl
+and cl, 2
+je short loc_fffc4ab6 ; je 0xfffc4ab6
+mov cl, dl
+or ecx, edi
+cmp dword [esi + 0xf5], 2
+cmove edx, ecx
+
+loc_fffc4ab6: ; not directly referenced
+test byte [ebp - 0x384], 1
+je short loc_fffc4ac3 ; je 0xfffc4ac3
+test ebx, ebx
+jne short loc_fffc4acc ; jne 0xfffc4acc
+
+loc_fffc4ac3: ; not directly referenced
+cmp dword [ebp - 0x388], 0
+je short loc_fffc4ace ; je 0xfffc4ace
+
+loc_fffc4acc: ; not directly referenced
+or eax, edi
+
+loc_fffc4ace: ; not directly referenced
+cmp dword [ebp - 0x354], 0
+je short loc_fffc4aec ; je 0xfffc4aec
+movzx ebx, al
+mov cl, byte [ebp - 0x350]
+sar ebx, cl
+mov cl, al
+or ecx, edi
+and bl, 1
+cmove eax, ecx
+
+loc_fffc4aec: ; not directly referenced
+inc dword [ebp - 0x350]
+cmp dword [ebp - 0x350], 2
+jne loc_fffc4a3a ; jne 0xfffc4a3a
+mov bl, byte [ebp - 0x368]
+cmp byte [ebp - 0x37b], bl
+setle cl
+mov byte [ebp - 0x33a], dl
+or dl, al
+mov byte [ebp - 0x33b], al
+sete al
+mov edi, edx
+or cl, al
+je short loc_fffc4b34 ; je 0xfffc4b34
+
+loc_fffc4b25: ; not directly referenced
+mov dword [ebp - 0x380], 1
+jmp near loc_fffc5836 ; jmp 0xfffc5836
+
+loc_fffc4b34: ; not directly referenced
+mov eax, dword [ebp - 0x34c]
+mov byte [eax + 0x1768], 3
+mov al, byte [ebp - 0x379]
+sub eax, 6
+cmp al, 1
+ja short loc_fffc4b69 ; ja 0xfffc4b69
+mov eax, dword [ebp - 0x34c]
+mov ebx, 1
+mov ecx, 4
+mov byte [eax + 0x1768], 5
+mov al, 0xd
+jmp short loc_fffc4b8b ; jmp 0xfffc4b8b
+
+loc_fffc4b69: ; not directly referenced
+cmp dword [ebp - 0x354], 0
+je short loc_fffc4b92 ; je 0xfffc4b92
+mov eax, dword [ebp - 0x34c]
+mov ebx, 1
+mov ecx, 5
+mov byte [eax + 0x1768], 6
+mov al, 0xd
+
+loc_fffc4b8b: ; not directly referenced
+mov esi, 0x80
+jmp short loc_fffc4bb4 ; jmp 0xfffc4bb4
+
+loc_fffc4b92: ; not directly referenced
+cmp byte [ebp - 0x396], 1
+sbb eax, eax
+xor ebx, ebx
+and eax, 0xfffffffd
+xor ecx, ecx
+add eax, 0x10
+cmp byte [ebp - 0x396], 1
+sbb esi, esi
+and esi, 0x7c
+add esi, 4
+
+loc_fffc4bb4: ; not directly referenced
+mov edx, dword [ebp - 0x34c]
+mov dword [ebp - 0x2a0], ebx
+movzx eax, al
+mov dl, byte [edx + 0x1768]
+mov word [ebp - 0x32c], ax
+push 0
+mov eax, edi
+mov dword [ebp - 0x294], ebx
+push 0
+movzx edi, al
+lea eax, [ebp - 0x32c]
+push 0
+movzx ebx, byte [ebp - 0x358]
+mov byte [ebp - 0x322], dl
+push eax
+lea eax, [ebp - 0x2b4]
+mov edx, edi
+push 0
+movzx esi, si
+mov dword [ebp - 0x3b0], edi
+push eax
+mov eax, dword [ebp - 0x34c]
+push ebx
+push esi
+call fcn_fffb2650 ; call 0xfffb2650
+add esp, 0x20
+lea eax, [esi - 1]
+call fcn_fffb21bf ; call 0xfffb21bf
+movzx eax, al
+mov ecx, ebx
+sub ecx, eax
+mov eax, 1
+mov ebx, eax
+mov dl, 1
+shl ebx, cl
+mov ecx, dword [ebp - 0x34c]
+test bl, bl
+cmovg edx, ebx
+mov bl, byte [ebp - 0x379]
+sub ebx, 0xa
+mov byte [ecx + 0x1769], dl
+mov cl, byte [ecx + 0x1755]
+cmp bl, 1
+mov byte [ebp - 0x3ac], bl
+setbe bl
+shl eax, cl
+mov byte [ebp - 0x354], cl
+movzx ebx, bl
+dec eax
+cmp byte [ebp - 0x379], 0xa
+mov dword [ebp - 0x3c4], ebx
+mov byte [ebp - 0x3c9], al
+jne short loc_fffc4c89 ; jne 0xfffc4c89
+mov byte [ebp - 0x350], 1
+jmp short loc_fffc4ca8 ; jmp 0xfffc4ca8
+
+loc_fffc4c89: ; not directly referenced
+mov al, byte [ebp - 0x368]
+mov bl, byte [ebp - 0x37b]
+mov byte [ebp - 0x368], bl
+mov byte [ebp - 0x37b], al
+mov byte [ebp - 0x350], 0xff
+
+loc_fffc4ca8: ; not directly referenced
+mov al, byte [ebp - 0x350]
+mov bl, byte [ebp - 0x368]
+imul eax, dword [ebp - 0x37c]
+lea edx, [ebp - 0x2f2]
+sub ebx, eax
+mov byte [ebp - 0x37c], al
+mov dword [ebp - 0x39c], edx
+xor esi, esi
+mov byte [ebp - 0x395], bl
+
+loc_fffc4cd7: ; not directly referenced
+imul eax, esi, 0x1347
+mov edi, dword [ebp - 0x34c]
+cmp dword [edi + eax + 0x297c], 2
+je short loc_fffc4d30 ; je 0xfffc4d30
+
+loc_fffc4ced: ; not directly referenced
+inc esi
+add dword [ebp - 0x39c], 9
+cmp esi, 2
+jne short loc_fffc4cd7 ; jne 0xfffc4cd7
+movzx esi, byte [ebp - 0x38c]
+mov bl, byte [ebp - 0x368]
+imul edi, esi, 0x90
+mov byte [ebp - 0x395], bl
+xor eax, eax
+mov dword [ebp - 0x380], 0
+mov dword [ebp - 0x3c8], esi
+mov dword [ebp - 0x3e4], edi
+jmp near loc_fffc56ce ; jmp 0xfffc56ce
+
+loc_fffc4d30: ; not directly referenced
+imul edx, esi, 0x12
+lea ecx, [ebp - 0x258]
+add ecx, edx
+xor eax, eax
+mov dword [ebp - 0x394], ecx
+jmp near loc_fffc4dd6 ; jmp 0xfffc4dd6
+
+loc_fffc4d48: ; not directly referenced
+mov edi, dword [ebp - 0x39c]
+mov bl, byte [ebp - 0x395]
+lea edx, [eax + eax]
+mov byte [ebp - 0x384], 0
+mov dword [ebp - 0x358], edx
+mov byte [edi + eax], bl
+jmp short loc_fffc4da4 ; jmp 0xfffc4da4
+
+loc_fffc4d69: ; not directly referenced
+imul ecx, ebx, 0x24
+mov edi, dword [ebp - 0x378]
+inc ebx
+mov word [edi + ecx], 0x500
+
+loc_fffc4d79: ; not directly referenced
+cmp byte [ebp - 0x3cb], bl
+ja short loc_fffc4d69 ; ja 0xfffc4d69
+add edx, 0x48
+cmp edx, 0x90
+je short loc_fffc4d9e ; je 0xfffc4d9e
+
+loc_fffc4d8c: ; not directly referenced
+mov ecx, dword [ebp - 0x380]
+xor ebx, ebx
+add ecx, edx
+mov dword [ebp - 0x378], ecx
+jmp short loc_fffc4d79 ; jmp 0xfffc4d79
+
+loc_fffc4d9e: ; not directly referenced
+inc byte [ebp - 0x384]
+
+loc_fffc4da4: ; not directly referenced
+mov bl, byte [ebp - 0x3ca]
+cmp byte [ebp - 0x384], bl
+je short loc_fffc4dd5 ; je 0xfffc4dd5
+movzx edx, byte [ebp - 0x384]
+imul edx, edx, 0x90
+add edx, dword [ebp - 0x358]
+add edx, dword [ebp - 0x394]
+mov dword [ebp - 0x380], edx
+xor edx, edx
+jmp short loc_fffc4d8c ; jmp 0xfffc4d8c
+
+loc_fffc4dd5: ; not directly referenced
+inc eax
+
+loc_fffc4dd6: ; not directly referenced
+cmp byte [ebp - 0x354], al
+ja loc_fffc4d48 ; ja 0xfffc4d48
+jmp near loc_fffc4ced ; jmp 0xfffc4ced
+
+loc_fffc4de7: ; not directly referenced
+test al, al
+je short loc_fffc4dfd ; je 0xfffc4dfd
+
+loc_fffc4deb: ; not directly referenced
+cmp dword [ebp - 0x388], 1
+jne loc_fffc5705 ; jne 0xfffc5705
+jmp near loc_fffc56ed ; jmp 0xfffc56ed
+
+loc_fffc4dfd: ; not directly referenced
+mov al, byte [ebp - 0x368]
+sub al, byte [ebp - 0x395]
+imul eax, dword [ebp - 0x350]
+mov byte [ebp - 0x397], al
+dec al
+sete al
+test byte [ebp - 0x396], al
+je short loc_fffc4e47 ; je 0xfffc4e47
+add cl, byte [ebp - 0x395]
+mov bl, byte [ebp - 0x37b]
+neg byte [ebp - 0x350]
+mov byte [ebp - 0x395], dl
+mov byte [ebp - 0x368], bl
+mov byte [ebp - 0x37b], cl
+
+loc_fffc4e47: ; not directly referenced
+mov bl, byte [ebp - 0x368]
+xor esi, esi
+shl ebx, 0x18
+movzx edi, byte [ebp - 0x379]
+mov dword [ebp - 0x358], ebx
+movzx ebx, byte [ebp - 0x368]
+mov dword [ebp - 0x38c], ebx
+
+loc_fffc4e6c: ; not directly referenced
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0x34c]
+mov ebx, dword [ebp - 0x3b0]
+bt ebx, esi
+mov al, byte [edx + eax + 0x3acb]
+jb short loc_fffc4e95 ; jb 0xfffc4e95
+
+loc_fffc4e8a: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffc4e6c ; jne 0xfffc4e6c
+jmp near loc_fffc4f75 ; jmp 0xfffc4f75
+
+loc_fffc4e95: ; not directly referenced
+and al, byte [ebp - 0x37a]
+mov byte [ebp - 0x378], al
+je short loc_fffc4e8a ; je 0xfffc4e8a
+mov eax, dword [ebp - 0x34c]
+lea edx, [esi*8]
+lea ecx, [edx + 0x48dc]
+mov ebx, ecx
+add edx, 0x48ec
+mov byte [ebp - 0x354], 1
+add ebx, dword [eax + 0x103f]
+mov eax, dword [ebx]
+xor al, al
+or eax, edi
+mov dword [ebx], eax
+mov ebx, dword [ebp - 0x34c]
+mov eax, dword [ebx + 0x103f]
+lea ecx, [ecx + eax - 4]
+mov eax, dword [ecx]
+and eax, 0xffffff
+or eax, dword [ebp - 0x358]
+mov dword [ecx], eax
+mov ecx, dword [ebx + 0x103f]
+add ecx, edx
+mov eax, dword [ecx]
+xor al, al
+or eax, edi
+mov dword [ecx], eax
+mov eax, dword [ebx + 0x103f]
+lea edx, [edx + eax - 4]
+mov eax, dword [edx]
+and eax, 0xffffff
+or eax, dword [ebp - 0x358]
+cmp dword [ebp - 0x3c4], 0
+mov dword [edx], eax
+je short loc_fffc4f30 ; je 0xfffc4f30
+mov bl, byte [ebx + 0x1755]
+mov byte [ebp - 0x354], bl
+
+loc_fffc4f30: ; not directly referenced
+movzx eax, byte [ebp - 0x378]
+xor ebx, ebx
+mov dword [ebp - 0x378], eax
+jmp short loc_fffc4f68 ; jmp 0xfffc4f68
+
+loc_fffc4f41: ; not directly referenced
+sub esp, 0xc
+mov ecx, ebx
+push dword [ebp - 0x378]
+mov edx, esi
+mov eax, dword [ebp - 0x34c]
+push 0
+inc ebx
+push 0
+push dword [ebp - 0x38c]
+push edi
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x20
+
+loc_fffc4f68: ; not directly referenced
+cmp byte [ebp - 0x354], bl
+ja short loc_fffc4f41 ; ja 0xfffc4f41
+jmp near loc_fffc4e8a ; jmp 0xfffc4e8a
+
+loc_fffc4f75: ; not directly referenced
+lea ebx, [ebp - 0x258]
+mov dword [ebp - 0x38c], 0
+mov dword [ebp - 0x3b4], ebx
+jmp short loc_fffc4fbe ; jmp 0xfffc4fbe
+
+loc_fffc4f8d: ; not directly referenced
+add dword [ebp - 0x3b4], 0x48
+cmp byte [ebp - 0x358], 0
+mov dword [ebp - 0x38c], 1
+je short loc_fffc4fbe ; je 0xfffc4fbe
+
+loc_fffc4fa7: ; not directly referenced
+mov bl, byte [ebp - 0x350]
+mov al, byte [ebp - 0x358]
+add byte [ebp - 0x368], bl
+jmp near loc_fffc56ce ; jmp 0xfffc56ce
+
+loc_fffc4fbe: ; not directly referenced
+mov ebx, dword [ebp - 0x38c]
+mov bl, byte [ebp + ebx - 0x33b]
+test bl, bl
+mov byte [ebp - 0x3aa], bl
+je loc_fffc56b5 ; je 0xfffc56b5
+imul eax, dword [ebp - 0x38c], 6
+xor edi, edi
+movzx esi, bl
+mov dword [ebp - 0x378], eax
+mov dword [ebp - 0x354], esi
+
+loc_fffc4ff1: ; not directly referenced
+mov ebx, dword [ebp - 0x354]
+bt ebx, edi
+jae loc_fffc50a1 ; jae 0xfffc50a1
+imul eax, edi, 0x1347
+mov esi, dword [ebp - 0x34c]
+mov cl, byte [ebp - 0x37a]
+and cl, byte [esi + eax + 0x3acb]
+je loc_fffc50a1 ; je 0xfffc50a1
+cmp dword [ebp - 0x388], 0
+mov eax, 0x3210
+jne short loc_fffc504a ; jne 0xfffc504a
+movzx edx, cl
+movzx edx, byte [ebp + edx - 0x302]
+cmp dl, 0xf
+je short loc_fffc504a ; je 0xfffc504a
+add edx, dword [ebp - 0x378]
+mov eax, dword [ebp + edx*4 - 0x288]
+
+loc_fffc504a: ; not directly referenced
+movzx ecx, cl
+xor ebx, ebx
+xor edx, edx
+mov dword [ebp - 0x358], ecx
+jmp short loc_fffc5078 ; jmp 0xfffc5078
+
+loc_fffc5059: ; not directly referenced
+mov esi, eax
+mov ecx, dword [ebp - 0x358]
+shr eax, 4
+and esi, 0xf
+bt ecx, esi
+jae short loc_fffc5078 ; jae 0xfffc5078
+lea ecx, [edx*4]
+inc edx
+shl esi, cl
+or ebx, esi
+
+loc_fffc5078: ; not directly referenced
+test eax, eax
+jne short loc_fffc5059 ; jne 0xfffc5059
+mov esi, dword [ebp - 0x34c]
+dec edx
+mov eax, dword [esi + 0x103f]
+lea eax, [eax + edi*4 + 0x4930]
+mov dword [eax], ebx
+mov eax, dword [esi + 0x103f]
+lea eax, [eax + edi*8 + 0x48ef]
+mov byte [eax], dl
+
+loc_fffc50a1: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffc4ff1 ; jne 0xfffc4ff1
+mov edi, dword [ebp - 0x354]
+mov ebx, dword [ebp + 0x1c]
+and edi, 2
+mov esi, dword [ebp - 0x3b4]
+mov dword [ebp - 0x3dc], edi
+mov dword [ebp - 0x3a0], ebx
+mov dword [ebp - 0x3c0], esi
+mov byte [ebp - 0x358], 0
+jmp near loc_fffc569e ; jmp 0xfffc569e
+
+loc_fffc50db: ; not directly referenced
+cmp byte [ebp - 0x358], 0
+jne loc_fffc56bc ; jne 0xfffc56bc
+mov edi, dword [ebp - 0x3a0]
+cmp dword [ebp - 0x388], 0
+mov bl, byte [edi]
+je short loc_fffc513f ; je 0xfffc513f
+test byte [ebp - 0x3aa], 1
+mov al, byte [ebp - 0x358]
+cmovne eax, ebx
+cmp dword [ebp - 0x3dc], 0
+mov byte [ebp - 0x337], al
+mov al, byte [ebp - 0x358]
+cmove ebx, eax
+lea ecx, [ebp - 0x337]
+movzx edx, byte [ebp - 0x37a]
+mov eax, dword [ebp - 0x34c]
+mov byte [ebp - 0x336], bl
+call fcn_fffc46d6 ; call 0xfffc46d6
+jmp short loc_fffc51b2 ; jmp 0xfffc51b2
+
+loc_fffc513f: ; not directly referenced
+cmp byte [ebp - 0x38c], 1
+jne short loc_fffc5174 ; jne 0xfffc5174
+sub esp, 0xc
+mov ecx, 3
+movzx eax, bl
+neg ebx
+push eax
+mov edx, dword [ebp - 0x354]
+mov eax, dword [ebp - 0x34c]
+movzx ebx, bl
+call fcn_fffc4678 ; call 0xfffc4678
+mov dword [esp], ebx
+mov ecx, 0xc
+jmp short loc_fffc519e ; jmp 0xfffc519e
+
+loc_fffc5174: ; not directly referenced
+sub esp, 0xc
+mov ecx, 5
+movzx eax, bl
+neg ebx
+push eax
+mov edx, dword [ebp - 0x354]
+mov eax, dword [ebp - 0x34c]
+movzx ebx, bl
+call fcn_fffc4678 ; call 0xfffc4678
+mov dword [esp], ebx
+mov ecx, 0xa
+
+loc_fffc519e: ; not directly referenced
+mov edx, dword [ebp - 0x354]
+mov eax, dword [ebp - 0x34c]
+call fcn_fffc4678 ; call 0xfffc4678
+add esp, 0x10
+
+loc_fffc51b2: ; not directly referenced
+mov ecx, dword [ebp - 0x3d0]
+mov ebx, dword [ebp - 0x3c0]
+mov dword [ebp - 0x3a8], ecx
+mov dword [ebp - 0x3bc], ebx
+jmp near loc_fffc561f ; jmp 0xfffc561f
+
+loc_fffc51cf: ; not directly referenced
+mov esi, dword [ebp - 0x3a8]
+mov bl, byte [esi]
+test bl, bl
+je loc_fffc4b25 ; je 0xfffc4b25
+movzx ecx, bl
+cmp bl, 0x21
+mov dword [ebp - 0x390], ecx
+mov byte [ebp - 0x378], 0
+ja short loc_fffc5200 ; ja 0xfffc5200
+mov al, byte [ecx + ref_fffcc308] ; mov al, byte [ecx - 0x33cf8]
+mov byte [ebp - 0x378], al
+
+loc_fffc5200: ; not directly referenced
+xor ecx, ecx
+mov edx, dword [ebp - 0x390]
+mov eax, dword [ebp - 0x34c]
+call fcn_fffb2de8 ; call 0xfffb2de8
+cmp bl, 0x10
+mov word [ebp - 0x3d2], ax
+sete dl
+cmp bl, 4
+sete al
+or dl, al
+jne short loc_fffc5254 ; jne 0xfffc5254
+cmp bl, 5
+sete dl
+cmp bl, 0x20
+sete al
+or dl, al
+jne short loc_fffc5254 ; jne 0xfffc5254
+cmp bl, 0x21
+sete al
+cmp bl, 0x11
+sete dl
+or eax, edx
+cmp al, 1
+sbb ebx, ebx
+and ebx, 0xffffffe9
+add ebx, 0x36
+jmp short loc_fffc5256 ; jmp 0xfffc5256
+
+loc_fffc5254: ; not directly referenced
+mov bl, 0x36
+
+loc_fffc5256: ; not directly referenced
+xor eax, eax
+mov dl, 1
+
+loc_fffc525a: ; not directly referenced
+mov esi, dword [ebp - 0x354]
+bt esi, eax
+jae short loc_fffc52b0 ; jae 0xfffc52b0
+imul edi, eax, 0x1347
+mov esi, dword [ebp - 0x34c]
+mov cl, byte [ebp - 0x37a]
+test byte [esi + edi + 0x3acb], cl
+je short loc_fffc52b0 ; je 0xfffc52b0
+cmp byte [ebp - 0x3ac], 2
+ja short loc_fffc52a0 ; ja 0xfffc52a0
+mov cl, byte [ebp - 0x3c9]
+mov esi, 0
+cmp byte [ebp + eax - 0x339], cl
+cmovne edx, esi
+jmp short loc_fffc52b0 ; jmp 0xfffc52b0
+
+loc_fffc52a0: ; not directly referenced
+cmp byte [ebp + eax - 0x339], 0
+mov edi, 0
+cmove edx, edi
+
+loc_fffc52b0: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffc525a ; jne 0xfffc525a
+test dl, dl
+jne loc_fffc5639 ; jne 0xfffc5639
+push edx
+mov eax, dword [ebp - 0x34c]
+mov ecx, dword [ebp - 0x390]
+push edx
+add eax, 0x1774
+push 0xf
+mov dword [ebp - 0x3b8], eax
+mov edx, eax
+push 0
+mov eax, dword [ebp - 0x34c]
+call fcn_fffb0bed ; call 0xfffb0bed
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x380], eax
+jne loc_fffc5836 ; jne 0xfffc5836
+push eax
+movzx ebx, bl
+mov ecx, dword [ebp - 0x354]
+push eax
+lea eax, [ebp - 0x314]
+mov edx, dword [ebp - 0x3b8]
+push eax
+lea eax, [ebp - 0x335]
+push ebx
+push eax
+push dword [ebp - 0x390]
+mov eax, dword [ebp - 0x34c]
+push 0xff
+push dword [ebp - 0x3c8]
+call fcn_fffc69bc ; call 0xfffc69bc
+add esp, 0x20
+test eax, eax
+mov dword [ebp - 0x380], eax
+jne loc_fffc5836 ; jne 0xfffc5836
+mov ebx, dword [ebp - 0x3bc]
+xor esi, esi
+movzx eax, byte [ebp - 0x3ab]
+mov dword [ebp - 0x394], ebx
+movzx edi, byte [ebp - 0x378]
+mov ebx, 0x64
+sub ebx, eax
+mov al, byte [ebp - 0x37c]
+imul edi, edi, 0x240
+mov dword [ebp - 0x3e0], ebx
+mov bl, byte [ebp - 0x368]
+sub ebx, dword [ebp - 0x350]
+add edi, dword [ebp + 0x18]
+sub ebx, eax
+mov dword [ebp - 0x3d8], edi
+mov byte [ebp - 0x398], 1
+lea edi, [ebp - 0x2f2]
+mov byte [ebp - 0x3a9], bl
+
+loc_fffc53a5: ; not directly referenced
+imul eax, esi, 0x1347
+mov edx, dword [ebp - 0x34c]
+mov ebx, dword [ebp - 0x354]
+bt ebx, esi
+mov al, byte [edx + eax + 0x3acb]
+jae loc_fffc55c9 ; jae 0xfffc55c9
+test byte [ebp - 0x37a], al
+je loc_fffc55c9 ; je 0xfffc55c9
+imul eax, esi, 0x48
+mov bl, byte [edx + 0x1755]
+mov byte [ebp - 0x3d3], bl
+mov ebx, dword [ebp - 0x3e4]
+xor ecx, ecx
+lea eax, [eax + ebx + 4]
+add eax, dword [ebp - 0x3d8]
+mov dword [ebp - 0x3a4], eax
+jmp near loc_fffc55bd ; jmp 0xfffc55bd
+
+loc_fffc53ff: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+mov byte [ebp - 0x378], bl
+mov ebx, dword [ebp - 0x3a4]
+mov ebx, dword [ebx]
+movzx edx, bx
+mov ebx, dword [ebp - 0x3a4]
+mov ebx, dword [ebx - 4]
+movzx eax, bx
+mov ebx, edx
+mov word [ebp - 0x3ee], ax
+add eax, edx
+add eax, eax
+mov word [ebp - 0x384], ax
+mov eax, edx
+sub ax, word [ebp - 0x3ee]
+mov edx, dword [ebp - 0x384]
+mov word [ebp - 0x39c], ax
+mov eax, dword [ebp - 0x384]
+add edx, dword [ebp - 0x39c]
+sub eax, dword [ebp - 0x39c]
+cmp bx, word [ebp - 0x3ee]
+mov ebx, 2
+cmovbe eax, edx
+mov edx, eax
+sar dx, 0xf
+idiv bx
+mov bl, byte [ebp + esi - 0x339]
+mov dl, byte [ebp - 0x378]
+and dl, bl
+mov byte [ebp - 0x3ee], bl
+mov byte [ebp - 0x384], dl
+je short loc_fffc54a1 ; je 0xfffc54a1
+cmp dword [ebp - 0x388], 0
+je loc_fffc55b5 ; je 0xfffc55b5
+
+loc_fffc54a1: ; not directly referenced
+cmp ax, word [ebp - 0x3d2]
+jae short loc_fffc54e9 ; jae 0xfffc54e9
+cmp dword [ebp - 0x388], 1
+jne loc_fffc554d ; jne 0xfffc554d
+cmp byte [ebp - 0x397], 0
+mov byte [ebp - 0x398], 0
+jne loc_fffc55b5 ; jne 0xfffc55b5
+mov bl, byte [ebp - 0x3c9]
+mov al, byte [ebp - 0x397]
+mov byte [ebp + esi - 0x339], bl
+mov byte [ebp - 0x398], al
+jmp near loc_fffc55b5 ; jmp 0xfffc55b5
+
+loc_fffc54e9: ; not directly referenced
+cmp byte [ebp - 0x397], 0
+jne short loc_fffc550b ; jne 0xfffc550b
+mov ebx, dword [ebp - 0x394]
+cmp word [ebx + ecx*2], ax
+jbe loc_fffc55b5 ; jbe 0xfffc55b5
+mov word [ebx + ecx*2], ax
+jmp near loc_fffc55b5 ; jmp 0xfffc55b5
+
+loc_fffc550b: ; not directly referenced
+movzx eax, ax
+mov ebx, dword [ebp - 0x394]
+mov dword [ebp - 0x39c], eax
+movzx ebx, word [ebx + ecx*2]
+imul ebx, dword [ebp - 0x3e0]
+mov eax, ebx
+mov dword [ebp - 0x3f4], ebx
+cdq
+mov ebx, 0x64
+idiv ebx
+cmp dword [ebp - 0x39c], eax
+jge short loc_fffc556b ; jge 0xfffc556b
+cmp dword [ebp - 0x388], 0
+mov byte [ebp - 0x398], 0
+jne short loc_fffc55b5 ; jne 0xfffc55b5
+
+loc_fffc554d: ; not directly referenced
+mov bl, byte [ebp - 0x3ee]
+or ebx, dword [ebp - 0x378]
+mov byte [ebp + esi - 0x339], bl
+mov bl, byte [ebp - 0x3a9]
+mov byte [edi + ecx], bl
+jmp short loc_fffc55b5 ; jmp 0xfffc55b5
+
+loc_fffc556b: ; not directly referenced
+cmp dword [ebp - 0x388], 1
+jne short loc_fffc55a6 ; jne 0xfffc55a6
+mov bl, byte [ebp - 0x378]
+cmp byte [ebp - 0x384], bl
+je short loc_fffc55b5 ; je 0xfffc55b5
+mov al, byte [ebp - 0x368]
+mov bl, byte [ebp - 0x3ee]
+sub eax, dword [ebp - 0x37c]
+or ebx, dword [ebp - 0x378]
+mov byte [edi + ecx], al
+mov byte [ebp + esi - 0x339], bl
+jmp short loc_fffc55b5 ; jmp 0xfffc55b5
+
+loc_fffc55a6: ; not directly referenced
+mov al, byte [ebp - 0x368]
+sub eax, dword [ebp - 0x37c]
+mov byte [edi + ecx], al
+
+loc_fffc55b5: ; not directly referenced
+inc ecx
+add dword [ebp - 0x3a4], 8
+
+loc_fffc55bd: ; not directly referenced
+cmp byte [ebp - 0x3d3], cl
+ja loc_fffc53ff ; ja 0xfffc53ff
+
+loc_fffc55c9: ; not directly referenced
+inc esi
+add dword [ebp - 0x394], 0x12
+add edi, 9
+cmp esi, 2
+jne loc_fffc53a5 ; jne 0xfffc53a5
+cmp byte [ebp - 0x398], 0
+je short loc_fffc560f ; je 0xfffc560f
+sub esp, 0xc
+mov ecx, dword [ebp - 0x390]
+push dword [ebp - 0x3c8]
+mov edx, dword [ebp - 0x3b8]
+mov eax, dword [ebp - 0x34c]
+call fcn_fffb0b1b ; call 0xfffb0b1b
+mov dword [ebp - 0x380], eax
+add esp, 0x10
+
+loc_fffc560f: ; not directly referenced
+add dword [ebp - 0x3bc], 0x90
+inc dword [ebp - 0x3a8]
+
+loc_fffc561f: ; not directly referenced
+mov al, byte [ebp - 0x3a8]
+sub eax, dword [ebp - 0x3d0]
+cmp al, byte [ebp - 0x3ca]
+jb loc_fffc51cf ; jb 0xfffc51cf
+jmp short loc_fffc5640 ; jmp 0xfffc5640
+
+loc_fffc5639: ; not directly referenced
+mov byte [ebp - 0x358], 1
+
+loc_fffc5640: ; not directly referenced
+cmp dword [ebp - 0x388], 0
+je short loc_fffc5671 ; je 0xfffc5671
+movzx edx, byte [ebp - 0x37a]
+lea ecx, [ebp - 0x337]
+mov eax, dword [ebp - 0x34c]
+mov byte [ebp - 0x337], 0
+mov byte [ebp - 0x336], 0
+call fcn_fffc46d6 ; call 0xfffc46d6
+jmp short loc_fffc5691 ; jmp 0xfffc5691
+
+loc_fffc5671: ; not directly referenced
+sub esp, 0xc
+mov edx, dword [ebp - 0x354]
+push 0
+movzx ecx, byte [ebp - 0x37a]
+mov eax, dword [ebp - 0x34c]
+call fcn_fffc4678 ; call 0xfffc4678
+add esp, 0x10
+
+loc_fffc5691: ; not directly referenced
+add dword [ebp - 0x3c0], 0x24
+inc dword [ebp - 0x3a0]
+
+loc_fffc569e: ; not directly referenced
+mov al, byte [ebp - 0x3a0]
+sub eax, dword [ebp + 0x1c]
+cmp al, byte [ebp - 0x3cb]
+jb loc_fffc50db ; jb 0xfffc50db
+jmp short loc_fffc56bc ; jmp 0xfffc56bc
+
+loc_fffc56b5: ; not directly referenced
+mov byte [ebp - 0x358], 0
+
+loc_fffc56bc: ; not directly referenced
+cmp dword [ebp - 0x38c], 1
+je loc_fffc4fa7 ; je 0xfffc4fa7
+jmp near loc_fffc4f8d ; jmp 0xfffc4f8d
+
+loc_fffc56ce: ; not directly referenced
+mov cl, byte [ebp - 0x350]
+mov dl, byte [ebp - 0x37b]
+add edx, ecx
+cmp byte [ebp - 0x368], dl
+jne loc_fffc4de7 ; jne 0xfffc4de7
+jmp near loc_fffc4deb ; jmp 0xfffc4deb
+
+loc_fffc56ed: ; not directly referenced
+mov bl, byte [ebp - 0x395]
+add ebx, dword [ebp - 0x350]
+mov byte [ebp - 0x37b], bl
+neg byte [ebp - 0x350]
+
+loc_fffc5705: ; not directly referenced
+movzx edi, byte [ebp - 0x379]
+xor esi, esi
+mov dword [ebp - 0x354], edi
+
+loc_fffc5714: ; not directly referenced
+mov ebx, dword [ebp - 0x3b0]
+bt ebx, esi
+jae loc_fffc582c ; jae 0xfffc582c
+imul eax, esi, 0x1347
+mov edi, dword [ebp - 0x34c]
+mov bl, byte [ebp - 0x37a]
+and bl, byte [edi + eax + 0x3acb]
+mov byte [ebp - 0x379], bl
+je loc_fffc582c ; je 0xfffc582c
+lea edi, [esi + esi*8]
+lea eax, [ebp - 0x18]
+movzx ebx, byte [ebp - 0x37b]
+mov byte [ebp - 0x368], 0
+add edi, eax
+jmp near loc_fffc57e3 ; jmp 0xfffc57e3
+
+loc_fffc5763: ; not directly referenced
+cmp byte [ebp - 0x350], 1
+jne short loc_fffc5782 ; jne 0xfffc5782
+movzx eax, byte [ebp - 0x368]
+movzx eax, byte [eax + edi - 0x2da]
+cmp bl, al
+cmovg ebx, eax
+jmp short loc_fffc579f ; jmp 0xfffc579f
+
+loc_fffc5782: ; not directly referenced
+cmp byte [ebp - 0x350], 0xff
+jne short loc_fffc579f ; jne 0xfffc579f
+movzx eax, byte [ebp - 0x368]
+movzx eax, byte [eax + edi - 0x2da]
+cmp bl, al
+cmovl ebx, eax
+
+loc_fffc579f: ; not directly referenced
+cmp dword [ebp - 0x3c4], 0
+je short loc_fffc57dd ; je 0xfffc57dd
+sub esp, 0xc
+mov edx, esi
+movzx eax, byte [ebp - 0x379]
+push eax
+movzx ecx, byte [ebp - 0x368]
+push 1
+push 1
+movzx eax, byte [ecx + edi - 0x2da]
+push eax
+push dword [ebp - 0x354]
+mov eax, dword [ebp - 0x34c]
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x20
+
+loc_fffc57dd: ; not directly referenced
+inc byte [ebp - 0x368]
+
+loc_fffc57e3: ; not directly referenced
+mov eax, dword [ebp - 0x34c]
+mov dl, byte [ebp - 0x368]
+cmp dl, byte [eax + 0x1755]
+jb loc_fffc5763 ; jb 0xfffc5763
+cmp dword [ebp - 0x3c4], 0
+jne short loc_fffc582c ; jne 0xfffc582c
+sub esp, 0xc
+xor ecx, ecx
+movzx eax, byte [ebp - 0x379]
+mov edx, esi
+push eax
+mov eax, dword [ebp - 0x34c]
+push 1
+push 1
+push ebx
+push dword [ebp - 0x354]
+call fcn_fffb3b9c ; call 0xfffb3b9c
+add esp, 0x20
+
+loc_fffc582c: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffc5714 ; jne 0xfffc5714
+
+loc_fffc5836: ; not directly referenced
+mov eax, dword [ebp - 0x380]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc5844: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea edi, [ebp - 0x44]
+mov esi, ecx
+push ebx
+mov ecx, 0xb
+mov ebx, eax
+lea esp, [esp - 0x4c]
+xor eax, eax
+rep stosd ; rep stosd dword es:[edi], eax
+push 0
+lea eax, [ebp - 0x4f]
+mov edi, esi
+push 0
+mov word [ebp - 0x36], 0x3ff
+mov dword [ebp - 0x30], 0x20
+push 0
+mov word [ebp - 0x20], 1
+mov word [ebp - 0x1a], 1
+push eax
+movzx eax, byte [ebp + 8]
+mov word [ebp - 0x4f], 4
+push eax
+lea eax, [ebp - 0x44]
+mov dword [ebp - 0x4d], 0
+push eax
+mov eax, ebx
+mov dword [ebp - 0x49], 7
+push esi
+mov byte [ebp - 0x45], 0
+push 0x80
+call fcn_fffb2650 ; call 0xfffb2650
+lea edx, [edi - 7]
+add esp, 0x20
+test dl, dl
+mov al, 1
+mov byte [ebx + 0x1768], 0
+cmovg eax, edx
+mov byte [ebx + 0x1769], al
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc58d3: ; not directly referenced
+push ebp
+mov ecx, 0xb
+mov ebp, esp
+push edi
+push ebx
+lea edi, [ebp - 0x60]
+mov ebx, eax
+xor eax, eax
+lea esp, [esp - 0x70]
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0x34]
+mov cl, 0xb
+rep stosd ; rep stosd dword es:[edi], eax
+push 0
+cmp dword [ebx + 0x1749], 2
+lea ecx, [ebp - 0x60]
+push 0
+lea eax, [ebp - 0x34]
+cmovne eax, ecx
+push 0
+lea ecx, [ebp - 0x6b]
+mov word [ebp - 0x52], 0x3ff
+push ecx
+mov ecx, 2
+mov dword [ebp - 0x4c], 0x20
+push 0
+mov word [ebp - 0x3c], 1
+mov word [ebp - 0x36], 1
+push eax
+mov eax, ebx
+mov word [ebp - 0x32], 4
+push 0xa
+mov word [ebp - 0x2a], 4
+mov word [ebp - 0x6b], 4
+push 0x80
+mov dword [ebp - 0x69], 0
+mov dword [ebp - 0x65], 9
+mov byte [ebp - 0x61], 0
+call fcn_fffb2650 ; call 0xfffb2650
+mov byte [ebx + 0x1769], 1
+mov byte [ebx + 0x1768], 0
+add esp, 0x20
+lea esp, [ebp - 8]
+pop ebx
+pop edi
+pop ebp
+ret
+
+loc_fffc5976:
+db 0x00
+db 0x00
+
+fcn_fffc5978: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea ecx, [ebp - 0x20]
+push ebx
+lea esp, [esp - 0x38]
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x1c], 0
+mov edx, dword [eax]
+push ecx
+push 0
+push 0
+push ref_fffcd534 ; push 0xfffcd534
+push eax
+call dword [edx + 0x20] ; ucall
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov esi, dword [eax + 0xf80f0]
+and esi, 0xfffffffe
+mov eax, dword [esi + 0x50]
+and eax, 0xff0fffff
+or eax, 0x200000
+mov dword [esi + 0x50], eax
+mov eax, dword [ebp - 0x20]
+add esp, 0x20
+cmp byte [eax + 0x24], 1
+jne short loc_fffc59d9 ; jne 0xfffc59d9
+mov eax, dword [esi + 0x50]
+or eax, 0xa0000
+mov dword [esi + 0x50], eax
+
+loc_fffc59d9: ; not directly referenced
+mov eax, dword [esi + 0x50]
+mov ebx, dword [ebp - 0x20]
+xor ecx, ecx
+mov edx, 1
+
+loc_fffc59e6: ; not directly referenced
+mov edi, dword [ebx + ecx*4]
+mov eax, edx
+shl eax, cl
+inc ecx
+or byte [ebp + edi - 0x1c], al
+cmp ecx, 8
+jne short loc_fffc59e6 ; jne 0xfffc59e6
+lea eax, [esi + 0x2014]
+lea edx, [esi + 0x2020]
+xor cl, cl
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x34], edx
+
+loc_fffc5a0b: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+lea edx, [ecx + 0x10]
+mov byte [ebp - 0x2c], cl
+cmp byte [eax + edx*2], 1
+jne short loc_fffc5a6e ; jne 0xfffc5a6e
+movzx edx, byte [eax + edx*2 + 1]
+shl edx, 0x18
+movzx edi, byte [ebp + ecx - 0x1c]
+and edx, 0xf000000
+or edx, 0x80000000
+cmp cl, 2
+je short loc_fffc5a49 ; je 0xfffc5a49
+cmp cl, 3
+je short loc_fffc5a51 ; je 0xfffc5a51
+cmp cl, 1
+mov ebx, dword [ebp - 0x30]
+cmove ebx, dword [ebp - 0x34]
+jmp short loc_fffc5a57 ; jmp 0xfffc5a57
+
+loc_fffc5a49: ; not directly referenced
+lea ebx, [esi + 0x2030]
+jmp short loc_fffc5a57 ; jmp 0xfffc5a57
+
+loc_fffc5a51: ; not directly referenced
+lea ebx, [esi + 0x2040]
+
+loc_fffc5a57: ; not directly referenced
+mov eax, dword [ebx]
+and eax, 0xf0ffff01
+or eax, edi
+or eax, edx
+mov dword [ebx], eax
+mov al, byte [ebp - 0x2c]
+dec eax
+cmp al, 1
+ja short loc_fffc5a6e ; ja 0xfffc5a6e
+mov eax, dword [ebx]
+
+loc_fffc5a6e: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffc5a0b ; jne 0xfffc5a0b
+mov eax, dword [esi + 0x50]
+or eax, 0x80000000
+mov dword [esi + 0x50], eax
+mov eax, dword [esi + 0x50]
+lea edx, [esi + 0x2026]
+mov ecx, dword [ebp - 0x20]
+xor eax, eax
+lea ebx, [esi + 0x201a]
+mov dword [ebp - 0x2c], edx
+
+loc_fffc5a96: ; not directly referenced
+cmp byte [ecx + eax*2 + 0x20], 1
+mov dl, al
+jne short loc_fffc5ac9 ; jne 0xfffc5ac9
+cmp al, 2
+je short loc_fffc5ab1 ; je 0xfffc5ab1
+cmp al, 3
+je short loc_fffc5ab9 ; je 0xfffc5ab9
+dec dl
+mov edx, dword [ebp - 0x2c]
+cmovne edx, ebx
+jmp short loc_fffc5abf ; jmp 0xfffc5abf
+
+loc_fffc5ab1: ; not directly referenced
+lea edx, [esi + 0x2036]
+jmp short loc_fffc5abf ; jmp 0xfffc5abf
+
+loc_fffc5ab9: ; not directly referenced
+lea edx, [esi + 0x2046]
+
+loc_fffc5abf: ; not directly referenced
+mov di, word [edx]
+test di, 2
+jne short loc_fffc5abf ; jne 0xfffc5abf
+
+loc_fffc5ac9: ; not directly referenced
+inc eax
+cmp eax, 4
+jne short loc_fffc5a96 ; jne 0xfffc5a96
+lea esp, [ebp - 0xc]
+xor al, al
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc5ad9: ; not directly referenced
+push ebp
+mov eax, 0x80000003
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffc5ae3: ; not directly referenced
+push ebp
+mov eax, 0x80000003
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffc5aed: ; not directly referenced
+push ebp
+mov eax, 0x80000003
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffc5af7: ; not directly referenced
+push ebp
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov ebp, esp
+pop ebp
+mov eax, dword [eax + 0xf8040]
+and eax, 0xfffc
+add eax, 0x54
+ret
+
+fcn_fffc5b14: ; not directly referenced
+push ebp
+mov ebp, esp
+call fcn_fffc5af7 ; call 0xfffc5af7
+mov edx, eax
+in eax, dx
+shr eax, 0xe
+and eax, 1
+pop ebp
+ret
+
+fcn_fffc5b27: ; not directly referenced
+push ebp
+mov ebp, esp
+call fcn_fffc5af7 ; call 0xfffc5af7
+mov edx, eax
+in eax, dx
+test eax, 0x3f0000
+setne al
+pop ebp
+ret
+
+fcn_fffc5b3c: ; not directly referenced
+push ebp
+mov byte [0xff7d7540], 1
+mov ebp, esp
+push ebx
+call fcn_fffc5af7 ; call 0xfffc5af7
+mov edx, eax
+in eax, dx
+mov ebx, eax
+and ebx, 0xffbf7fff
+call fcn_fffc5af7 ; call 0xfffc5af7
+movzx edx, ax
+mov eax, ebx
+out dx, eax
+pop ebx
+pop ebp
+ret
+
+fcn_fffc5b65: ; not directly referenced
+push ebp
+mov ebp, esp
+call fcn_fffc5af7 ; call 0xfffc5af7
+mov edx, eax
+in eax, dx
+shr eax, 0x17
+and eax, 1
+pop ebp
+ret
+
+fcn_fffc5b78: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+call fcn_fffc5af7 ; call 0xfffc5af7
+mov edx, eax
+in eax, dx
+mov ebx, eax
+and ebx, 0xffbf3fff
+call fcn_fffc5af7 ; call 0xfffc5af7
+movzx edx, ax
+mov eax, ebx
+out dx, eax
+pop ebx
+pop ebp
+ret
+
+fcn_fffc5b9a: ; not directly referenced
+push ebp
+mov eax, 0x80000002
+mov ebp, esp
+push esi
+push ebx
+mov esi, dword [ebp + 8]
+dec esi
+cmp esi, 0x3fe
+ja short loc_fffc5bf2 ; ja 0xfffc5bf2
+call fcn_fffc5af7 ; call 0xfffc5af7
+mov edx, eax
+in eax, dx
+mov ebx, eax
+or eax, 0x40e000
+or bh, 0xe0
+cmp byte [0xff7d7540], 0
+cmove ebx, eax
+and ebx, 0xfffffc00
+call fcn_fffc5af7 ; call 0xfffc5af7
+or ebx, esi
+movzx edx, ax
+mov eax, ebx
+out dx, eax
+call fcn_fffc5af7 ; call 0xfffc5af7
+or ebx, 0x80000000
+movzx edx, ax
+mov eax, ebx
+out dx, eax
+xor eax, eax
+
+loc_fffc5bf2: ; not directly referenced
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc5bf6:
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, edx
+lea esp, [esp - 0x10]
+mov dword [edx], 0x626d7370
+mov dword [edx + 4], eax
+mov edx, dword [eax]
+lea ecx, [ebx + 8]
+push ecx
+push 0
+push 0
+push ref_fffcd524 ; push 0xfffcd524
+push eax
+call dword [edx + 0x20] ; ucall
+mov eax, dword [ebx + 8]
+add esp, 0x20
+mov edx, dword [eax]
+mov dword [ebx + 0x10], 0x80000010
+mov dword [ebx + 0xc], edx
+mov dword [ebx + 0x14], ref_fffcd4f4 ; mov dword [ebx + 0x14], 0xfffcd4f4
+mov dword [ebx + 0x1c], fcn_fffc5f08 ; mov dword [ebx + 0x1c], 0xfffc5f08
+mov dword [ebx + 0x20], fcn_fffc5aed ; mov dword [ebx + 0x20], 0xfffc5aed
+mov dword [ebx + 0x24], fcn_fffc5ae3 ; mov dword [ebx + 0x24], 0xfffc5ae3
+mov dword [ebx + 0x28], fcn_fffc5ad9 ; mov dword [ebx + 0x28], 0xfffc5ad9
+mov dword [ebx + 0x2c], 0x80000020
+mov dword [ebx + 0x30], ref_fffcd544 ; mov dword [ebx + 0x30], 0xfffcd544
+mov dword [ebx + 0x34], fcn_fffc5c8e ; mov dword [ebx + 0x34], 0xfffc5c8e
+mov byte [ebx + 0x38], 0
+lea edx, [ebx + 0x1c]
+mov dword [ebx + 0x18], edx
+mov dl, byte [eax + 8]
+mov byte [ebx + 0xc1], dl
+mov eax, dword [eax + 9]
+mov dword [ebx + 0xc2], eax
+mov byte [ebx + 0xc6], 0
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffc5c8e: ; not directly referenced
+push ebp
+mov ebp, esp
+lea esp, [esp - 8]
+mov edx, dword [ebp + 0xc]
+mov eax, dword [ebp + 8]
+sub edx, 0x2c
+call fcn_fffc5bf6 ; call 0xfffc5bf6
+xor eax, eax
+leave
+ret
+
+fcn_fffc5ca7:
+mov dx, word [0xf00f8002]
+mov eax, 1
+mov ecx, edx
+and ecx, 0xfffffffd
+cmp cx, 0x8c44
+je loc_fffc5d48 ; je 0xfffc5d48
+cmp cx, 0x8c4c
+je short loc_fffc5d48 ; je 0xfffc5d48
+push ebp
+cmp dx, 0x8c5c
+mov ebp, esp
+push ebx
+sete bl
+cmp dx, 0x8c50
+sete cl
+or bl, cl
+jne short loc_fffc5d46 ; jne 0xfffc5d46
+mov ecx, edx
+and ecx, 0xfffffff7
+cmp cx, 0x8c42
+je short loc_fffc5d46 ; je 0xfffc5d46
+cmp dx, 0x8c4f
+sete bl
+cmp dx, 0x8c49
+sete cl
+or bl, cl
+jne short loc_fffc5d46 ; jne 0xfffc5d46
+cmp dx, 0x8c41
+sete bl
+cmp dx, 0x8c4b
+sete cl
+or bl, cl
+jne short loc_fffc5d46 ; jne 0xfffc5d46
+cmp dx, 0x8c58
+je short loc_fffc5d46 ; je 0xfffc5d46
+cmp dx, 0x8c54
+sete bl
+cmp dx, 0x8c52
+sete cl
+or bl, cl
+jne short loc_fffc5d46 ; jne 0xfffc5d46
+cmp dx, 0x8c56
+je short loc_fffc5d46 ; je 0xfffc5d46
+add dx, 0x63bf
+cmp dx, 7
+sbb eax, eax
+add eax, 3
+
+loc_fffc5d46:
+pop ebx
+pop ebp
+
+loc_fffc5d48:
+ret
+
+fcn_fffc5d49: ; not directly referenced
+push ebp
+mov ebp, esp
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+dec eax
+jne short loc_fffc5d87 ; jne 0xfffc5d87
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov eax, dword [eax + 0xf80f0]
+and eax, 0xfffffffe
+mov edx, dword [eax + 0x21a4]
+and edx, 0xf
+cmp edx, 2
+jne short loc_fffc5d87 ; jne 0xfffc5d87
+mov dl, byte [eax + 0x21b0]
+and edx, 0xfffffff0
+or edx, 2
+mov byte [eax + 0x21b0], dl
+
+loc_fffc5d87: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffc5d89:
+push ebp
+mov ebp, esp
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+lea ecx, [eax - 1]
+xor edx, edx
+cmp ecx, 1
+ja short loc_fffc5da1 ; ja 0xfffc5da1
+mov dl, byte [eax + ref_fffcc240 - 1] ; mov dl, byte [eax - 0x33dc1]
+
+loc_fffc5da1:
+mov al, dl
+pop ebp
+ret
+
+fcn_fffc5da5:
+push ebp
+mov ebp, esp
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+lea ecx, [eax - 1]
+xor edx, edx
+cmp ecx, 1
+ja short loc_fffc5dbd ; ja 0xfffc5dbd
+mov dl, byte [eax + ref_fffcc241] ; mov dl, byte [eax - 0x33dbf]
+
+loc_fffc5dbd:
+mov al, dl
+pop ebp
+ret
+
+fcn_fffc5dc1:
+push ebp
+mov ebp, esp
+push ebx
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov dl, byte [eax + 0xf8008]
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov ax, word [eax + 0xf8002]
+mov ecx, eax
+and ecx, 0xfffffffd
+cmp cx, 0x8c44
+je short loc_fffc5e59 ; je 0xfffc5e59
+cmp cx, 0x8c4c
+je short loc_fffc5e59 ; je 0xfffc5e59
+cmp ax, 0x8c5c
+sete bl
+cmp ax, 0x8c50
+sete cl
+or bl, cl
+jne short loc_fffc5e59 ; jne 0xfffc5e59
+mov ecx, eax
+and ecx, 0xfffffff7
+cmp cx, 0x8c42
+je short loc_fffc5e59 ; je 0xfffc5e59
+cmp ax, 0x8c4f
+sete bl
+cmp ax, 0x8c49
+sete cl
+or bl, cl
+jne short loc_fffc5e59 ; jne 0xfffc5e59
+cmp ax, 0x8c41
+sete bl
+cmp ax, 0x8c4b
+sete cl
+or bl, cl
+jne short loc_fffc5e59 ; jne 0xfffc5e59
+cmp ax, 0x8c58
+je short loc_fffc5e59 ; je 0xfffc5e59
+cmp ax, 0x8c54
+sete bl
+cmp ax, 0x8c52
+sete cl
+or bl, cl
+jne short loc_fffc5e59 ; jne 0xfffc5e59
+cmp ax, 0x8c56
+jne short loc_fffc5e72 ; jne 0xfffc5e72
+
+loc_fffc5e59:
+sub edx, 2
+mov eax, 7
+cmp dl, 3
+ja short loc_fffc5e95 ; ja 0xfffc5e95
+movzx edx, dl
+movzx eax, byte [edx + ref_fffcc244] ; movzx eax, byte [edx - 0x33dbc]
+jmp short loc_fffc5e95 ; jmp 0xfffc5e95
+
+loc_fffc5e72:
+lea ecx, [eax + 0x63bf]
+mov eax, 7
+cmp cx, 6
+ja short loc_fffc5e95 ; ja 0xfffc5e95
+sub edx, 2
+cmp dl, 2
+ja short loc_fffc5e95 ; ja 0xfffc5e95
+movzx edx, dl
+movzx eax, byte [edx + ref_fffcc248] ; movzx eax, byte [edx - 0x33db8]
+
+loc_fffc5e95:
+pop ebx
+pop ebp
+ret
+
+fcn_fffc5e98:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+push ecx
+mov di, word [0xf00f8040]
+and edi, 0xfffffffc
+add edi, 8
+mov word [ebp - 0xe], di
+mov edx, edi
+in eax, dx
+mov ecx, eax
+xor edx, edx
+imul eax, ebx, 0x166
+mov ebx, 0x64
+div ebx
+and ecx, 0xffffff
+lea eax, [ecx + eax + 1]
+mov esi, eax
+shr esi, 0x18
+mov edi, eax
+and edi, 0xffffff
+jmp short loc_fffc5ef4 ; jmp 0xfffc5ef4
+
+loc_fffc5edf:
+mov dx, word [ebp - 0xe]
+in eax, dx
+and eax, 0xffffff
+cmp eax, ecx
+jae short loc_fffc5ef2 ; jae 0xfffc5ef2
+test bl, bl
+je short loc_fffc5f02 ; je 0xfffc5f02
+dec esi
+
+loc_fffc5ef2:
+mov ecx, eax
+
+loc_fffc5ef4:
+test esi, esi
+setne bl
+cmp edi, ecx
+seta al
+or al, bl
+jne short loc_fffc5edf ; jne 0xfffc5edf
+
+loc_fffc5f02:
+pop edx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc5f08: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x2c]
+mov esi, dword [ebp + 0x10]
+mov cl, byte [ebp + 0x1c]
+and esi, 0x7f
+cmp dword [ebp + 0x18], 1
+mov edi, dword [ebp + 0x20]
+mov byte [ebp - 0x25], cl
+jbe short loc_fffc5f40 ; jbe 0xfffc5f40
+cmp dword [ebp + 0x24], 0
+mov ebx, 0x80000002
+sete dl
+test edi, edi
+sete al
+or dl, al
+jne loc_fffc642a ; jne 0xfffc642a
+
+loc_fffc5f40: ; not directly referenced
+xor eax, eax
+mov ebx, 0x80000012
+call fcn_fffc91a8 ; call 0xfffc91a8
+test al, 0x40
+jne loc_fffc642a ; jne 0xfffc642a
+test al, 1
+je short loc_fffc5f64 ; je 0xfffc5f64
+mov edx, 0xff
+xor eax, eax
+jmp near loc_fffc6416 ; jmp 0xfffc6416
+
+loc_fffc5f64: ; not directly referenced
+movzx edx, al
+xor eax, eax
+call fcn_fffc917f ; call 0xfffc917f
+lea ecx, [esi + esi + 1]
+mov byte [ebp - 0x1d], cl
+dec ecx
+mov dword [ebp - 0x24], 3
+mov byte [ebp - 0x1e], cl
+mov ecx, dword [ebp + 0x18]
+and ecx, 0xfffffffd
+mov byte [ebp - 0x20], 0
+mov dword [ebp - 0x30], ecx
+
+loc_fffc5f8d: ; not directly referenced
+mov al, byte [ebp + 0x14]
+cmp dword [ebp + 0x18], 0xb
+mov byte [ebp - 0x1f], al
+ja loc_fffc6138 ; ja 0xfffc6138
+mov ecx, dword [ebp + 0x18]
+jmp dword [ecx*4 + ref_fffcc1e8] ; ujmp: jmp dword [ecx*4 - 0x33e18]
+
+loc_fffc5fa7: ; not directly referenced
+movzx esi, byte [ebp - 0x1e]
+jmp short loc_fffc5fb1 ; jmp 0xfffc5fb1
+
+loc_fffc5fad: ; not directly referenced
+movzx esi, byte [ebp - 0x1d]
+
+loc_fffc5fb1: ; not directly referenced
+cmp byte [ebp - 0x25], 1
+je loc_fffc6126 ; je 0xfffc6126
+mov byte [ebp - 0x1c], 0
+jmp near loc_fffc6120 ; jmp 0xfffc6120
+
+loc_fffc5fc4: ; not directly referenced
+movzx esi, byte [ebp - 0x1e]
+mov ecx, dword [ebp + 0x24]
+mov cl, byte [ecx]
+mov byte [ebp - 0x1f], cl
+jmp short loc_fffc5fd6 ; jmp 0xfffc5fd6
+
+loc_fffc5fd2: ; not directly referenced
+movzx esi, byte [ebp - 0x1d]
+
+loc_fffc5fd6: ; not directly referenced
+cmp dword [edi], 1
+mov byte [ebp - 0x1c], 4
+sbb ebx, ebx
+mov dword [edi], 1
+and ebx, 0x80000005
+jmp near loc_fffc60f4 ; jmp 0xfffc60f4
+
+loc_fffc5ff0: ; not directly referenced
+mov ecx, dword [ebp + 0x24]
+mov eax, 5
+movzx edx, byte [ecx]
+call fcn_fffc917f ; call 0xfffc917f
+movzx esi, byte [ebp - 0x1e]
+mov dword [edi], 1
+jmp short loc_fffc6010 ; jmp 0xfffc6010
+
+loc_fffc600c: ; not directly referenced
+movzx esi, byte [ebp - 0x1d]
+
+loc_fffc6010: ; not directly referenced
+mov eax, dword [edi]
+test eax, eax
+je loc_fffc63e8 ; je 0xfffc63e8
+cmp eax, 1
+je loc_fffc611c ; je 0xfffc611c
+cmp eax, 0x100
+ja loc_fffc6138 ; ja 0xfffc6138
+cmp byte [ebp - 0x25], 1
+je loc_fffc6126 ; je 0xfffc6126
+mov byte [ebp - 0x1c], 0x18
+jmp near loc_fffc6120 ; jmp 0xfffc6120
+
+loc_fffc6041: ; not directly referenced
+movzx esi, byte [ebp - 0x1d]
+cmp dword [edi], 2
+sbb ebx, ebx
+mov dword [edi], 2
+and ebx, 0x80000005
+jmp short loc_fffc608e ; jmp 0xfffc608e
+
+loc_fffc6058: ; not directly referenced
+mov ecx, dword [ebp + 0x24]
+mov eax, 6
+movzx edx, byte [ecx + 1]
+call fcn_fffc917f ; call 0xfffc917f
+mov ecx, dword [ebp + 0x24]
+mov eax, 5
+movzx edx, byte [ecx]
+call fcn_fffc917f ; call 0xfffc917f
+movzx esi, byte [ebp - 0x1e]
+cmp dword [edi], 2
+sbb ebx, ebx
+mov dword [edi], 2
+and ebx, 0x80000005
+
+loc_fffc608e: ; not directly referenced
+mov byte [ebp - 0x1c], 0xc
+jmp short loc_fffc60f4 ; jmp 0xfffc60f4
+
+loc_fffc6094: ; not directly referenced
+movzx edx, byte [edi]
+mov eax, 5
+call fcn_fffc917f ; call 0xfffc917f
+movzx esi, byte [ebp - 0x1e]
+mov cl, byte [edi]
+mov byte [ebp - 0x20], cl
+jmp short loc_fffc60b0 ; jmp 0xfffc60b0
+
+loc_fffc60ac: ; not directly referenced
+movzx esi, byte [ebp - 0x1d]
+
+loc_fffc60b0: ; not directly referenced
+mov eax, dword [edi]
+dec eax
+cmp eax, 0x1f
+jbe short loc_fffc6130 ; jbe 0xfffc6130
+jmp short loc_fffc6138 ; jmp 0xfffc6138
+
+loc_fffc60ba: ; not directly referenced
+mov ecx, dword [ebp + 0x24]
+mov eax, 6
+movzx edx, byte [ecx + 1]
+call fcn_fffc917f ; call 0xfffc917f
+mov ecx, dword [ebp + 0x24]
+mov eax, 5
+movzx edx, byte [ecx]
+call fcn_fffc917f ; call 0xfffc917f
+cmp dword [edi], 2
+mov byte [ebp - 0x1c], 0x10
+sbb ebx, ebx
+mov dword [edi], 2
+movzx esi, byte [ebp - 0x1d]
+and ebx, 0x80000005
+
+loc_fffc60f4: ; not directly referenced
+xor edx, edx
+jmp short loc_fffc6142 ; jmp 0xfffc6142
+
+loc_fffc60f8: ; not directly referenced
+mov eax, dword [edi]
+dec eax
+cmp eax, 0x1f
+ja short loc_fffc6138 ; ja 0xfffc6138
+movzx edx, byte [edi]
+mov eax, 5
+call fcn_fffc917f ; call 0xfffc917f
+mov cl, byte [edi]
+mov byte [ebp - 0x1c], 0x1c
+movzx esi, byte [ebp - 0x1d]
+mov byte [ebp - 0x20], cl
+jmp short loc_fffc6134 ; jmp 0xfffc6134
+
+loc_fffc611c: ; not directly referenced
+mov byte [ebp - 0x1c], 8
+
+loc_fffc6120: ; not directly referenced
+xor edx, edx
+
+loc_fffc6122: ; not directly referenced
+xor ebx, ebx
+jmp short loc_fffc614a ; jmp 0xfffc614a
+
+loc_fffc6126: ; not directly referenced
+mov ebx, 0x80000003
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc6130: ; not directly referenced
+mov byte [ebp - 0x1c], 0x14
+
+loc_fffc6134: ; not directly referenced
+mov dl, 2
+jmp short loc_fffc6122 ; jmp 0xfffc6122
+
+loc_fffc6138: ; not directly referenced
+mov ebx, 0x80000002
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc6142: ; not directly referenced
+test ebx, ebx
+js loc_fffc63f4 ; js 0xfffc63f4
+
+loc_fffc614a: ; not directly referenced
+mov al, dl
+or eax, 1
+cmp byte [ebp - 0x25], 1
+cmove edx, eax
+mov eax, 0xd
+movzx edx, dl
+call fcn_fffc917f ; call 0xfffc917f
+mov eax, 2
+call fcn_fffc91a8 ; call 0xfffc91a8
+cmp dword [ebp - 0x30], 9
+je short loc_fffc61a4 ; je 0xfffc61a4
+
+loc_fffc6173: ; not directly referenced
+mov eax, esi
+movzx edx, al
+mov eax, 4
+call fcn_fffc917f ; call 0xfffc917f
+cmp dword [ebp + 0x18], 4
+jne short loc_fffc61c4 ; jne 0xfffc61c4
+jmp short loc_fffc61b4 ; jmp 0xfffc61b4
+
+loc_fffc618a: ; not directly referenced
+mov eax, dword [ebp + 0x24]
+movzx edx, byte [eax + ecx]
+mov eax, 7
+mov dword [ebp - 0x34], ecx
+call fcn_fffc917f ; call 0xfffc917f
+mov ecx, dword [ebp - 0x34]
+inc ecx
+jmp short loc_fffc61ad ; jmp 0xfffc61ad
+
+loc_fffc61a4: ; not directly referenced
+movzx edx, byte [ebp - 0x20]
+xor ecx, ecx
+mov dword [ebp - 0x2c], edx
+
+loc_fffc61ad: ; not directly referenced
+cmp ecx, dword [ebp - 0x2c]
+jb short loc_fffc618a ; jb 0xfffc618a
+jmp short loc_fffc6173 ; jmp 0xfffc6173
+
+loc_fffc61b4: ; not directly referenced
+cmp dword [edi], 1
+jbe short loc_fffc61c4 ; jbe 0xfffc61c4
+movzx edx, byte [ebp - 0x1f]
+mov eax, 6
+jmp short loc_fffc61cd ; jmp 0xfffc61cd
+
+loc_fffc61c4: ; not directly referenced
+movzx edx, byte [ebp - 0x1f]
+mov eax, 3
+
+loc_fffc61cd: ; not directly referenced
+call fcn_fffc917f ; call 0xfffc917f
+mov dl, byte [ebp - 0x1c]
+mov eax, 2
+add edx, 0x40
+mov esi, 0x186a0
+movzx edx, dl
+call fcn_fffc917f ; call 0xfffc917f
+
+loc_fffc61ea: ; not directly referenced
+xor eax, eax
+call fcn_fffc91a8 ; call 0xfffc91a8
+test al, 0x8e
+jne loc_fffc641d ; jne 0xfffc641d
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+dec esi
+jne short loc_fffc61ea ; jne 0xfffc61ea
+jmp near loc_fffc6328 ; jmp 0xfffc6328
+
+loc_fffc620b: ; not directly referenced
+mov eax, 0xc
+call fcn_fffc91a8 ; call 0xfffc91a8
+and eax, 1
+cmp al, 1
+sbb ebx, ebx
+and ebx, 0xffffffec
+sub ebx, 0x7fffffe5
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc622a: ; not directly referenced
+test al, 8
+je short loc_fffc626d ; je 0xfffc626d
+xor eax, eax
+mov edx, 8
+call fcn_fffc917f ; call 0xfffc917f
+xor eax, eax
+mov edx, 0xff
+call fcn_fffc917f ; call 0xfffc917f
+mov edx, 1
+mov eax, 0xc
+call fcn_fffc917f ; call 0xfffc917f
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+dec dword [ebp - 0x24]
+jne loc_fffc5f8d ; jne 0xfffc5f8d
+jmp near loc_fffc63ef ; jmp 0xfffc63ef
+
+loc_fffc626d: ; not directly referenced
+mov eax, dword [ebp + 0x18]
+sub eax, 2
+cmp eax, 9
+ja loc_fffc63f4 ; ja 0xfffc63f4
+jmp dword [eax*4 + ref_fffcc218] ; ujmp: jmp dword [eax*4 - 0x33de8]
+
+loc_fffc6283: ; not directly referenced
+mov eax, 6
+call fcn_fffc91a8 ; call 0xfffc91a8
+mov ecx, dword [ebp + 0x24]
+mov byte [ecx + 1], al
+jmp near loc_fffc6340 ; jmp 0xfffc6340
+
+loc_fffc6298: ; not directly referenced
+xor esi, esi
+cmp dword [edi], 1
+ja loc_fffc6333 ; ja 0xfffc6333
+jmp near loc_fffc6340 ; jmp 0xfffc6340
+
+loc_fffc62a8: ; not directly referenced
+mov eax, 7
+call fcn_fffc91a8 ; call 0xfffc91a8
+mov ecx, dword [ebp + 0x24]
+mov byte [ecx + esi], al
+mov eax, dword [edi]
+lea edx, [eax - 2]
+cmp esi, edx
+jne short loc_fffc62d3 ; jne 0xfffc62d3
+mov eax, 2
+call fcn_fffc91a8 ; call 0xfffc91a8
+or eax, 0x20
+movzx edx, al
+jmp short loc_fffc62ea ; jmp 0xfffc62ea
+
+loc_fffc62d3: ; not directly referenced
+dec eax
+cmp esi, eax
+jne short loc_fffc62f4 ; jne 0xfffc62f4
+mov eax, 2
+call fcn_fffc91a8 ; call 0xfffc91a8
+mov edx, eax
+and edx, 0xdf
+
+loc_fffc62ea: ; not directly referenced
+mov eax, 2
+call fcn_fffc917f ; call 0xfffc917f
+
+loc_fffc62f4: ; not directly referenced
+xor eax, eax
+mov edx, 0x80
+call fcn_fffc917f ; call 0xfffc917f
+mov eax, dword [edi]
+dec eax
+cmp esi, eax
+jae short loc_fffc6332 ; jae 0xfffc6332
+mov dword [ebp - 0x1c], 0x64
+
+loc_fffc630e: ; not directly referenced
+xor eax, eax
+call fcn_fffc91a8 ; call 0xfffc91a8
+test al, al
+js short loc_fffc6332 ; js 0xfffc6332
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+dec dword [ebp - 0x1c]
+jne short loc_fffc630e ; jne 0xfffc630e
+
+loc_fffc6328: ; not directly referenced
+mov ebx, 0x80000012
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc6332: ; not directly referenced
+inc esi
+
+loc_fffc6333: ; not directly referenced
+cmp esi, dword [edi]
+jb loc_fffc62a8 ; jb 0xfffc62a8
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc6340: ; not directly referenced
+mov eax, 5
+call fcn_fffc91a8 ; call 0xfffc91a8
+mov ecx, dword [ebp + 0x24]
+mov byte [ecx], al
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc6354: ; not directly referenced
+mov edx, 0x80
+xor eax, eax
+call fcn_fffc917f ; call 0xfffc917f
+jmp near loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc6365: ; not directly referenced
+mov eax, 5
+xor esi, esi
+call fcn_fffc91a8 ; call 0xfffc91a8
+movzx edx, al
+cmp dword [edi], edx
+mov al, 1
+jae short loc_fffc6393 ; jae 0xfffc6393
+jmp short loc_fffc6399 ; jmp 0xfffc6399
+
+loc_fffc637c: ; not directly referenced
+mov eax, 7
+mov dword [ebp - 0x34], edx
+call fcn_fffc91a8 ; call 0xfffc91a8
+mov ecx, dword [ebp + 0x24]
+mov byte [ecx + esi], al
+inc esi
+mov edx, dword [ebp - 0x34]
+
+loc_fffc6393: ; not directly referenced
+cmp esi, edx
+jb short loc_fffc637c ; jb 0xfffc637c
+xor eax, eax
+
+loc_fffc6399: ; not directly referenced
+test al, al
+mov eax, 0x80000005
+mov dword [edi], edx
+cmovne ebx, eax
+jmp short loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc63a7: ; not directly referenced
+mov eax, 5
+call fcn_fffc91a8 ; call 0xfffc91a8
+test al, al
+je short loc_fffc63e8 ; je 0xfffc63e8
+movzx ecx, al
+movzx edx, byte [edi]
+lea eax, [edx + ecx]
+cmp eax, 0x20
+jg short loc_fffc63ef ; jg 0xfffc63ef
+xor esi, esi
+mov edx, ecx
+jmp short loc_fffc63e0 ; jmp 0xfffc63e0
+
+loc_fffc63c9: ; not directly referenced
+mov eax, 7
+mov dword [ebp - 0x34], edx
+call fcn_fffc91a8 ; call 0xfffc91a8
+mov ecx, dword [ebp + 0x24]
+mov byte [ecx + esi], al
+inc esi
+mov edx, dword [ebp - 0x34]
+
+loc_fffc63e0: ; not directly referenced
+cmp esi, edx
+jb short loc_fffc63c9 ; jb 0xfffc63c9
+mov dword [edi], edx
+jmp short loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc63e8: ; not directly referenced
+mov ebx, 0x80000005
+jmp short loc_fffc63f4 ; jmp 0xfffc63f4
+
+loc_fffc63ef: ; not directly referenced
+mov ebx, 0x80000007
+
+loc_fffc63f4: ; not directly referenced
+mov edx, 0xff
+xor eax, eax
+call fcn_fffc917f ; call 0xfffc917f
+mov edx, 1
+mov eax, 0xc
+call fcn_fffc917f ; call 0xfffc917f
+xor edx, edx
+mov eax, 0xd
+
+loc_fffc6416: ; not directly referenced
+call fcn_fffc917f ; call 0xfffc917f
+jmp short loc_fffc642a ; jmp 0xfffc642a
+
+loc_fffc641d: ; not directly referenced
+test al, 4
+je loc_fffc622a ; je 0xfffc622a
+jmp near loc_fffc620b ; jmp 0xfffc620b
+
+loc_fffc642a: ; not directly referenced
+lea esp, [esp + 0x2c]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc6435:
+db 0x00
+db 0x00
+db 0x00
+
+fcn_fffc6438:
+push ebp
+sub edx, 0xd
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 8]
+cmp edx, 0x2e
+mov edi, dword [eax + 0x1749]
+ja loc_fffc697d ; ja 0xfffc697d
+jmp dword [edx*4 + ref_fffcc24c] ; ujmp: jmp dword [edx*4 - 0x33db4]
+
+loc_fffc645b:
+cmp edi, 2
+je loc_fffc697d ; je 0xfffc697d
+mov al, byte [eax + 0x16b4]
+jmp near loc_fffc653f ; jmp 0xfffc653f
+
+loc_fffc646f:
+cmp edi, 2
+setne al
+jmp near loc_fffc651d ; jmp 0xfffc651d
+
+loc_fffc647a:
+mov al, byte [eax + 0x16b4]
+jmp near loc_fffc65bb ; jmp 0xfffc65bb
+
+loc_fffc6485:
+mov al, byte [eax + 0x16b4]
+jmp near loc_fffc65c5 ; jmp 0xfffc65c5
+
+loc_fffc6490:
+mov al, byte [eax + 0x16b4]
+jmp near loc_fffc655c ; jmp 0xfffc655c
+
+loc_fffc649b:
+mov al, byte [eax + 0x16b4]
+jmp near loc_fffc65b0 ; jmp 0xfffc65b0
+
+loc_fffc64a6:
+mov al, byte [eax + 0x16b4]
+jmp short loc_fffc650f ; jmp 0xfffc650f
+
+loc_fffc64ae:
+mov al, byte [eax + 0x16b4]
+jmp near loc_fffc65d0 ; jmp 0xfffc65d0
+
+loc_fffc64b9:
+movsx eax, byte [eax + 0x16b4]
+jmp near loc_fffc6570 ; jmp 0xfffc6570
+
+loc_fffc64c5:
+mov al, byte [eax + 0x16b5]
+jmp short loc_fffc653f ; jmp 0xfffc653f
+
+loc_fffc64cd:
+mov al, byte [eax + 0x16b7]
+jmp short loc_fffc650f ; jmp 0xfffc650f
+
+loc_fffc64d5:
+mov al, byte [eax + 0x16b7]
+jmp near loc_fffc65b0 ; jmp 0xfffc65b0
+
+loc_fffc64e0:
+mov al, byte [eax + 0x16b7]
+jmp short loc_fffc655c ; jmp 0xfffc655c
+
+loc_fffc64e8:
+mov al, byte [eax + 0x16b5]
+jmp near loc_fffc65bb ; jmp 0xfffc65bb
+
+loc_fffc64f3:
+mov al, byte [eax + 0x16b5]
+jmp near loc_fffc65c5 ; jmp 0xfffc65c5
+
+loc_fffc64fe:
+mov al, byte [eax + 0x16b5]
+jmp near loc_fffc65b0 ; jmp 0xfffc65b0
+
+loc_fffc6509:
+mov al, byte [eax + 0x16b5]
+
+loc_fffc650f:
+shr al, 5
+jmp near loc_fffc65d3 ; jmp 0xfffc65d3
+
+loc_fffc6517:
+cmp edi, 2
+sete al
+
+loc_fffc651d:
+movzx eax, al
+jmp near loc_fffc697f ; jmp 0xfffc697f
+
+loc_fffc6525:
+mov al, byte [eax + 0x16b5]
+jmp near loc_fffc65d0 ; jmp 0xfffc65d0
+
+loc_fffc6530:
+movsx eax, byte [eax + 0x16b5]
+jmp short loc_fffc6570 ; jmp 0xfffc6570
+
+loc_fffc6539:
+mov al, byte [eax + 0x16b6]
+
+loc_fffc653f:
+not eax
+jmp near loc_fffc65d6 ; jmp 0xfffc65d6
+
+loc_fffc6546:
+mov al, byte [eax + 0x16b6]
+jmp short loc_fffc65bb ; jmp 0xfffc65bb
+
+loc_fffc654e:
+mov al, byte [eax + 0x16b6]
+jmp short loc_fffc65c5 ; jmp 0xfffc65c5
+
+loc_fffc6556:
+mov al, byte [eax + 0x16b6]
+
+loc_fffc655c:
+shr al, 3
+jmp short loc_fffc65d3 ; jmp 0xfffc65d3
+
+loc_fffc6561:
+mov al, byte [eax + 0x16b6]
+jmp short loc_fffc65d0 ; jmp 0xfffc65d0
+
+loc_fffc6569:
+movsx eax, byte [eax + 0x16b6]
+
+loc_fffc6570:
+not eax
+shr eax, 0x1f
+jmp near loc_fffc697f ; jmp 0xfffc697f
+
+loc_fffc657a:
+test byte [eax + 0x16b7], 1
+jne short loc_fffc658d ; jne 0xfffc658d
+
+loc_fffc6583:
+mov eax, 1
+jmp near loc_fffc697f ; jmp 0xfffc697f
+
+loc_fffc658d:
+cmp edi, 2
+je short loc_fffc6583 ; je 0xfffc6583
+jmp near loc_fffc697d ; jmp 0xfffc697d
+
+loc_fffc6597:
+test byte [eax + 0x16b5], 8
+je short loc_fffc6583 ; je 0xfffc6583
+cmp edi, 2
+jne short loc_fffc6583 ; jne 0xfffc6583
+jmp near loc_fffc697d ; jmp 0xfffc697d
+
+loc_fffc65aa:
+mov al, byte [eax + 0x16b6]
+
+loc_fffc65b0:
+shr al, 4
+jmp short loc_fffc65d3 ; jmp 0xfffc65d3
+
+loc_fffc65b5:
+mov al, byte [eax + 0x16b7]
+
+loc_fffc65bb:
+shr al, 1
+jmp short loc_fffc65d3 ; jmp 0xfffc65d3
+
+loc_fffc65bf:
+mov al, byte [eax + 0x16b7]
+
+loc_fffc65c5:
+shr al, 2
+jmp short loc_fffc65d3 ; jmp 0xfffc65d3
+
+loc_fffc65ca:
+mov al, byte [eax + 0x16b7]
+
+loc_fffc65d0:
+shr al, 6
+
+loc_fffc65d3:
+xor eax, 1
+
+loc_fffc65d6:
+and eax, 1
+jmp near loc_fffc697f ; jmp 0xfffc697f
+
+loc_fffc65de:
+cmp byte [eax + 0x107d], 0
+lea edx, [eax + 0x16be]
+mov dword [ebp - 0x10], edx
+je short loc_fffc6622 ; je 0xfffc6622
+movzx edx, byte [eax + 0x107e]
+mov ecx, dword [eax + 0x103f]
+and edx, 7
+mov dword [ecx + 0x5884], edx
+xor edx, edx
+mov cl, byte [eax + 0x1080]
+mov dl, byte [eax + 0x107f]
+mov dh, cl
+mov ecx, dword [eax + 0x103f]
+mov dword [ecx + 0x5888], edx
+
+loc_fffc6622:
+movzx edx, byte [eax + 0x1087]
+xor ebx, ebx
+movzx esi, byte [eax + 0x1088]
+and edx, 3
+and esi, 0x1f
+and ebx, 0x7fffffff
+shl edx, 0x16
+shl esi, 0x11
+or esi, edx
+movzx edx, byte [eax + 0x1089]
+and edx, 1
+shl edx, 0xf
+or edx, esi
+movzx esi, word [eax + 0x108a]
+mov ecx, edx
+movzx edx, byte [eax + 0x1081]
+and esi, 0x7fff
+shl edx, 0x1f
+or ecx, esi
+or ebx, edx
+movzx edx, byte [eax + 0x1082]
+and ebx, 0xff3fffff
+and edx, 3
+shl edx, 0x16
+or ebx, edx
+movzx edx, byte [eax + 0x1083]
+and ebx, 0xffc1ffff
+and edx, 0x1f
+shl edx, 0x11
+or ebx, edx
+movzx edx, byte [eax + 0x1084]
+and bh, 0x7f
+and edx, 1
+shl edx, 0xf
+or ebx, edx
+movzx edx, word [eax + 0x1085]
+and ebx, 0xffff8000
+and edx, 0x7fff
+or ebx, edx
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x58e0], ecx
+mov edx, dword [eax + 0x103f]
+mov dword [edx + 0x58e4], ebx
+mov ecx, dword [eax + 0x103f]
+mov bl, byte [eax + 0x108d]
+xor edx, edx
+mov dh, bl
+mov dl, byte [eax + 0x108c]
+mov dword [ecx + 0x5890], edx
+xor edx, edx
+mov cl, byte [eax + 0x108f]
+mov dh, cl
+mov ecx, dword [eax + 0x103f]
+mov dl, byte [eax + 0x108e]
+mov dword [ecx + 0x5894], edx
+mov ecx, dword [eax + 0x103f]
+mov bl, byte [eax + 0x1091]
+xor edx, edx
+mov dh, bl
+mov dl, byte [eax + 0x1090]
+mov dword [ecx + 0x5898], edx
+xor edx, edx
+mov cl, byte [eax + 0x1093]
+mov dh, cl
+mov ecx, dword [eax + 0x103f]
+mov dl, byte [eax + 0x1092]
+mov dword [ecx + 0x589c], edx
+mov ecx, dword [eax + 0x103f]
+xor edx, edx
+mov bl, byte [eax + 0x1095]
+mov dh, bl
+mov dl, byte [eax + 0x1094]
+mov dword [ecx + 0x58d0], edx
+xor edx, edx
+mov cl, byte [eax + 0x1097]
+mov dh, cl
+mov ecx, dword [eax + 0x103f]
+mov dl, byte [eax + 0x1096]
+mov dword [ecx + 0x58d4], edx
+mov ecx, dword [eax + 0x103f]
+mov bl, byte [eax + 0x1099]
+xor edx, edx
+mov dh, bl
+mov dl, byte [eax + 0x1098]
+mov dword [ebp - 0x14], 0x4328
+mov dword [ecx + 0x58d8], edx
+xor edx, edx
+mov cl, byte [eax + 0x109b]
+mov dh, cl
+mov ecx, dword [eax + 0x103f]
+mov dl, byte [eax + 0x109a]
+mov dword [ecx + 0x58dc], edx
+lea edx, [eax + 0x109d]
+
+loc_fffc67c8:
+mov ebx, dword [ebp - 0x10]
+cmp dword [ebx + 0x12be], 2
+jne loc_fffc68a8 ; jne 0xfffc68a8
+cmp byte [eax + 0x107d], 0
+je loc_fffc6870 ; je 0xfffc6870
+movzx ecx, byte [edx]
+mov ebx, dword [ebp - 0x14]
+movzx esi, byte [edx - 1]
+and ecx, 0x3f
+shl ecx, 8
+and esi, 0x3f
+or ecx, esi
+mov esi, dword [eax + 0x103f]
+lea esi, [ebx + esi - 0x3c]
+mov dword [esi], ecx
+movzx ecx, byte [edx + 4]
+movzx esi, byte [edx + 3]
+and ecx, 0x3f
+shl ecx, 8
+and esi, 0x3f
+or ecx, esi
+mov esi, dword [eax + 0x103f]
+lea esi, [ebx + esi - 0x38]
+mov dword [esi], ecx
+xor ecx, ecx
+mov bl, byte [edx + 8]
+mov esi, dword [eax + 0x103f]
+mov ch, bl
+mov ebx, dword [ebp - 0x14]
+mov cl, byte [edx + 7]
+lea esi, [ebx + esi - 0x34]
+mov dword [esi], ecx
+xor ecx, ecx
+mov bl, byte [edx + 0xc]
+mov esi, dword [eax + 0x103f]
+mov ch, bl
+mov ebx, dword [ebp - 0x14]
+mov cl, byte [edx + 0xb]
+lea esi, [ebx + esi - 0x30]
+mov dword [esi], ecx
+xor ecx, ecx
+mov bl, byte [edx + 0x10]
+mov esi, dword [eax + 0x103f]
+mov ch, bl
+mov ebx, dword [ebp - 0x14]
+mov cl, byte [edx + 0xf]
+lea esi, [ebx + esi - 0x2c]
+mov dword [esi], ecx
+
+loc_fffc6870:
+cmp edi, 2
+jne short loc_fffc688a ; jne 0xfffc688a
+movzx ecx, byte [eax + 0x10b5]
+and ecx, 1
+shl ecx, 8
+mov cl, byte [eax + 0x10b6]
+jmp short loc_fffc689d ; jmp 0xfffc689d
+
+loc_fffc688a:
+movzx ecx, byte [eax + 0x10b3]
+and ecx, 1
+shl ecx, 8
+mov cl, byte [eax + 0x10b4]
+
+loc_fffc689d:
+mov esi, dword [ebp - 0x14]
+add esi, dword [eax + 0x103f]
+mov dword [esi], ecx
+
+loc_fffc68a8:
+add dword [ebp - 0x10], 0x1347
+add dword [ebp - 0x14], 0x400
+add edx, 2
+cmp dword [ebp - 0x14], 0x4b28
+jne loc_fffc67c8 ; jne 0xfffc67c8
+movzx edx, byte [eax + 0x10b0]
+mov ecx, dword [eax + 0x103f]
+and edx, 1
+shl edx, 0x10
+mov dx, word [eax + 0x10b1]
+mov dword [ecx + 0x5060], edx
+mov ecx, dword [eax + 0x103f]
+movzx ebx, byte [eax + 0x1077]
+movzx esi, byte [eax + 0x1076]
+and ebx, 1
+and esi, 1
+mov edx, dword [ecx + 0x5880]
+add esi, esi
+and edx, 0xfffffffc
+or edx, ebx
+movzx ebx, byte [eax + 0x1075]
+or edx, esi
+and ebx, 1
+and edx, 0xffffffe3
+movzx esi, byte [eax + 0x107a]
+shl ebx, 4
+and esi, 3
+shl esi, 2
+or edx, ebx
+or edx, esi
+cmp edi, 2
+jne short loc_fffc6965 ; jne 0xfffc6965
+movzx ebx, byte [eax + 0x1079]
+and edx, 0xffffffbf
+and ebx, 1
+shl ebx, 6
+or edx, ebx
+cmp byte [eax + 0x1070], 0
+jne short loc_fffc6977 ; jne 0xfffc6977
+cmp byte [eax + 0x107b], 0
+sete al
+and dl, 0x7f
+movzx eax, al
+shl eax, 7
+jmp short loc_fffc6975 ; jmp 0xfffc6975
+
+loc_fffc6965:
+movzx eax, byte [eax + 0x1078]
+and edx, 0xffffffbf
+and eax, 1
+shl eax, 6
+
+loc_fffc6975:
+or edx, eax
+
+loc_fffc6977:
+mov dword [ecx + 0x5880], edx
+
+loc_fffc697d:
+xor eax, eax
+
+loc_fffc697f:
+pop edx
+pop ecx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc6986:
+mov ecx, 0xce
+rdmsr
+movzx ecx, ah
+xor edx, edx
+imul ecx, ecx, 0x186a0
+xor eax, eax
+test ecx, ecx
+je short loc_fffc69ba ; je 0xfffc69ba
+push ebp
+mov ebp, esp
+push ebx
+push eax
+mfence
+rdtsc
+xor ebx, ebx
+push ebx
+push ecx
+push edx
+push eax
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+mov ebx, dword [ebp - 4]
+leave
+
+loc_fffc69ba:
+ret
+
+loc_fffc69bb:
+db 0x00
+
+fcn_fffc69bc: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+lea esp, [esp - 0x11c]
+mov bl, byte [ebp + 8]
+mov byte [ebp - 0xdc], bl
+mov bl, byte [ebp + 0xc]
+mov byte [ebp - 0x101], bl
+mov bl, byte [ebp + 0x10]
+mov byte [ebp - 0xda], bl
+mov al, byte [ebp - 0xda]
+shr al, 4
+mov bl, byte [ebp + 0x18]
+inc eax
+mov byte [ebp - 0x103], cl
+mov byte [ebp - 0x102], al
+xor eax, eax
+cmp byte [ebp - 0xda], 0x21
+mov byte [ebp - 0xdb], bl
+ja short loc_fffc6a1e ; ja 0xfffc6a1e
+movzx eax, byte [ebp - 0xda]
+movzx eax, byte [eax + ref_fffcc308] ; movzx eax, byte [eax - 0x33cf8]
+
+loc_fffc6a1e: ; not directly referenced
+cmp byte [ebp - 0xda], 0x21
+mov dword [ebp - 0xf0], 1
+sete bl
+cmp byte [ebp - 0xda], 0x11
+sete cl
+or bl, cl
+jne short loc_fffc6a52 ; jne 0xfffc6a52
+xor ebx, ebx
+cmp byte [ebp - 0xda], 5
+sete bl
+mov dword [ebp - 0xf0], ebx
+
+loc_fffc6a52: ; not directly referenced
+movzx ecx, byte [edi + 0x1755]
+mov ebx, 1
+shl ebx, cl
+dec ebx
+cmp byte [edi + 0x1768], 1
+mov word [ebp - 0xd0], bx
+jne short loc_fffc6ad5 ; jne 0xfffc6ad5
+mov cl, byte [edi + 0x1769]
+mov byte [ebp - 0x9a], cl
+mov byte [ebp - 0x99], cl
+lea ebx, [ecx + 4]
+add ecx, 2
+mov byte [ebp - 0x98], bl
+mov byte [ebp - 0x97], cl
+
+loc_fffc6a95: ; not directly referenced
+imul eax, eax, 0x240
+mov dword [ebp - 0xc0], 0
+add eax, edx
+mov byte [ebp - 0xd9], 0
+mov dword [ebp - 0xc8], eax
+movzx eax, byte [ebp - 0xdc]
+imul esi, eax, 0x24
+imul ebx, eax, 0x12
+mov dword [ebp - 0x110], esi
+mov dword [ebp - 0x108], eax
+mov dword [ebp - 0xe4], ebx
+jmp short loc_fffc6af3 ; jmp 0xfffc6af3
+
+loc_fffc6ad5: ; not directly referenced
+mov byte [ebp - 0x9a], 1
+mov byte [ebp - 0x99], 1
+mov byte [ebp - 0x98], 1
+mov byte [ebp - 0x97], 1
+jmp short loc_fffc6a95 ; jmp 0xfffc6a95
+
+loc_fffc6af3: ; not directly referenced
+xor ecx, ecx
+mov edx, 4
+lea eax, [ebp - 0xa2]
+lea esi, [ebp - 0x72]
+call fcn_fffa119f ; call 0xfffa119f
+xor ecx, ecx
+mov edx, 4
+lea eax, [ebp - 0x9e]
+call fcn_fffa119f ; call 0xfffa119f
+mov dword [ebp - 0xbc], esi
+xor esi, esi
+
+loc_fffc6b22: ; not directly referenced
+movzx ebx, byte [ebp - 0x103]
+bt ebx, esi
+mov dword [ebp - 0xf4], ebx
+jb short loc_fffc6b4f ; jb 0xfffc6b4f
+mov ebx, dword [ebp - 0xd0]
+mov word [ebp + esi*2 - 0xa2], bx
+mov word [ebp + esi*2 - 0x9e], bx
+jmp near loc_fffc6d31 ; jmp 0xfffc6d31
+
+loc_fffc6b4f: ; not directly referenced
+mov ebx, dword [ebp - 0xbc]
+mov eax, esi
+shl eax, 0xa
+mov byte [ebp - 0xc4], 0
+add eax, 0x40f0
+mov dword [ebp - 0xec], eax
+mov byte [ebx], 0x7f
+lea ebx, [esi + esi*8]
+mov dword [ebp - 0xd4], ebx
+mov dword [ebp - 0xd8], ebx
+movzx ebx, byte [ebp - 0xdb]
+mov dword [ebp - 0xe0], ebx
+mov ebx, dword [ebp - 0xd4]
+add ebx, dword [ebp - 0xe4]
+mov dword [ebp - 0xe8], ebx
+jmp near loc_fffc6cd4 ; jmp 0xfffc6cd4
+
+loc_fffc6ba2: ; not directly referenced
+movzx ebx, byte [ebp - 0xc4]
+lea eax, [ebp - 0x18]
+add eax, dword [ebp - 0xd8]
+mov byte [ebx + eax - 0x7e], 0x7f
+mov eax, dword [ebp - 0xd8]
+add eax, ebx
+cmp byte [ebp - 0xda], 1
+mov dword [ebp + eax*4 - 0x60], 0
+mov al, byte [ebp - 0xdb]
+mov byte [ebp - 0xcc], al
+jne short loc_fffc6c03 ; jne 0xfffc6c03
+push eax
+push dword [ebp - 0xe0]
+push dword [ebp - 0xc0]
+movzx ecx, byte [ebp - 0x101]
+mov edx, esi
+push ebx
+mov eax, edi
+call fcn_fffb2c66 ; call 0xfffb2c66
+mov byte [ebp - 0xcc], al
+add esp, 0x10
+
+loc_fffc6c03: ; not directly referenced
+mov eax, dword [ebp - 0xe8]
+mov edx, dword [ebp - 0xc0]
+add eax, ebx
+mov ecx, dword [ebp - 0xc8]
+lea eax, [edx + eax*2]
+xor edx, edx
+mov ecx, dword [ecx + eax*4]
+mov dword [ebp - 0x100], eax
+mov dword [ebp - 0x124], ecx
+mov eax, ecx
+mov ecx, 0xa
+div ecx
+mov edx, dword [ebp - 0xc8]
+mov ecx, dword [ebp - 0x100]
+mov dword [edx + ecx*4], eax
+movzx edx, byte [ebp - 0xcc]
+cmp eax, edx
+jbe short loc_fffc6c57 ; jbe 0xfffc6c57
+mov eax, dword [ebp - 0xc8]
+mov dword [eax + ecx*4], edx
+
+loc_fffc6c57: ; not directly referenced
+mov eax, dword [ebp - 0xe8]
+mov edx, dword [ebp - 0xc0]
+add eax, ebx
+mov ecx, dword [ebp - 0xc8]
+cmp dword [ebp - 0xf0], 1
+lea eax, [edx + eax*2]
+mov eax, dword [ecx + eax*4]
+jne short loc_fffc6c98 ; jne 0xfffc6c98
+mov ecx, dword [ebp - 0xbc]
+movzx edx, byte [ecx]
+cmp eax, edx
+jae short loc_fffc6ca9 ; jae 0xfffc6ca9
+mov edx, dword [ebp - 0xd4]
+mov byte [ecx], al
+mov byte [ebp + edx - 0x84], al
+jmp short loc_fffc6ca9 ; jmp 0xfffc6ca9
+
+loc_fffc6c98: ; not directly referenced
+lea edx, [ebp - 0x18]
+add edx, dword [ebp - 0xd8]
+add edx, ebx
+mov byte [edx - 0x6c], al
+mov byte [edx - 0x5a], al
+
+loc_fffc6ca9: ; not directly referenced
+movzx eax, byte [ebp - 0xc4]
+mov ecx, dword [ebp + 0x14]
+inc byte [ebp - 0xc4]
+movzx eax, byte [ecx + eax]
+mov ecx, dword [ebp - 0xec]
+and eax, 0x7f
+or ah, 1
+lea edx, [ecx + ebx*4]
+add edx, dword [edi + 0x103f]
+mov dword [edx], eax
+
+loc_fffc6cd4: ; not directly referenced
+mov bl, byte [ebp - 0xc4]
+cmp bl, byte [edi + 0x1755]
+jb loc_fffc6ba2 ; jb 0xfffc6ba2
+cmp dword [ebp - 0xf0], 1
+jne short loc_fffc6d31 ; jne 0xfffc6d31
+jmp short loc_fffc6d18 ; jmp 0xfffc6d18
+
+loc_fffc6cf1: ; not directly referenced
+movzx ecx, al
+mov ebx, dword [ebp - 0xc0]
+mov edx, dword [ebp - 0xbc]
+add ecx, dword [ebp - 0xc4]
+inc eax
+lea ecx, [ebx + ecx*2]
+movzx ebx, byte [edx]
+mov edx, dword [ebp - 0xc8]
+mov dword [edx + ecx*4], ebx
+jmp short loc_fffc6d29 ; jmp 0xfffc6d29
+
+loc_fffc6d18: ; not directly referenced
+lea edx, [esi + esi*8]
+add edx, dword [ebp - 0xe4]
+xor eax, eax
+mov dword [ebp - 0xc4], edx
+
+loc_fffc6d29: ; not directly referenced
+cmp al, byte [edi + 0x1755]
+jb short loc_fffc6cf1 ; jb 0xfffc6cf1
+
+loc_fffc6d31: ; not directly referenced
+inc esi
+add dword [ebp - 0xbc], 9
+cmp esi, 2
+jne loc_fffc6b22 ; jne 0xfffc6b22
+mov eax, dword [ebp - 0xc0]
+mov ebx, dword [ebp - 0xc8]
+add eax, dword [ebp - 0x110]
+mov esi, dword [ebp - 0xc0]
+lea eax, [ebx + eax*4]
+lea esi, [esi + esi - 1]
+mov dword [ebp - 0x100], eax
+mov dword [ebp - 0x10c], esi
+
+loc_fffc6d6d: ; not directly referenced
+mov eax, dword [edi + 0x103f]
+xor esi, esi
+mov dword [eax + 0x4800], 4
+jmp near loc_fffc6e62 ; jmp 0xfffc6e62
+
+loc_fffc6d84: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc6d86: ; not directly referenced
+mov eax, dword [ebp - 0xf4]
+bt eax, ebx
+jb short loc_fffc6d9c ; jb 0xfffc6d9c
+
+loc_fffc6d91: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc6d86 ; jne 0xfffc6d86
+jmp near loc_fffc6e38 ; jmp 0xfffc6e38
+
+loc_fffc6d9c: ; not directly referenced
+lea ecx, [ebx + 1]
+mov edx, dword [ebp - 0xf4]
+mov byte [ebp - 0xbc], 0
+sar edx, cl
+mov dword [ebp - 0xc4], edx
+jmp short loc_fffc6e25 ; jmp 0xfffc6e25
+
+loc_fffc6db6: ; not directly referenced
+movzx ecx, byte [ebp - 0xbc]
+lea edx, [ebx + ebx*8]
+add edx, dword [ebp - 0xe4]
+mov eax, dword [ebp - 0xc0]
+add edx, ecx
+mov dword [ebp - 0xd4], ecx
+mov ecx, dword [ebp - 0x10c]
+lea edx, [eax + edx*2]
+mov eax, dword [ebp - 0xc8]
+imul ecx, dword [eax + edx*4]
+mov eax, edi
+push 1
+push dword [ebp - 0xc4]
+movzx edx, byte [ebp - 0xda]
+push 0
+push dword [ebp - 0xd4]
+push dword [ebp - 0x108]
+push ebx
+push 0
+push esi
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+cmp dword [ebp - 0xf0], 0
+jne loc_fffc6d91 ; jne 0xfffc6d91
+inc byte [ebp - 0xbc]
+
+loc_fffc6e25: ; not directly referenced
+mov dl, byte [ebp - 0xbc]
+cmp dl, byte [edi + 0x1755]
+jb short loc_fffc6db6 ; jb 0xfffc6db6
+jmp near loc_fffc6d91 ; jmp 0xfffc6d91
+
+loc_fffc6e38: ; not directly referenced
+push ecx
+xor eax, eax
+test esi, esi
+push 0
+sete al
+mov edx, dword [ebp - 0xf4]
+push eax
+lea eax, [ebp - 0x9a]
+inc esi
+push eax
+movzx ecx, byte [edi + 0x1768]
+mov eax, edi
+call fcn_fffb21f3 ; call 0xfffb21f3
+add esp, 0x10
+
+loc_fffc6e62: ; not directly referenced
+movzx eax, byte [ebp - 0x102]
+cmp esi, eax
+jb loc_fffc6d84 ; jb 0xfffc6d84
+xor esi, esi
+
+loc_fffc6e73: ; not directly referenced
+mov ebx, dword [ebp - 0xf4]
+bt ebx, esi
+jae loc_fffc74e7 ; jae 0xfffc74e7
+mov eax, esi
+mov byte [ebp - 0xe8], 0
+shl eax, 0xa
+add eax, 0x4114
+mov dword [ebp - 0x114], eax
+jmp near loc_fffc741a ; jmp 0xfffc741a
+
+loc_fffc6e9e: ; not directly referenced
+mov dword [ebp - 0xec], 1
+mov cl, byte [ebp - 0xe8]
+shl dword [ebp - 0xec], cl
+mov cx, word [ebp + esi*2 - 0x9e]
+mov eax, dword [ebp - 0xec]
+mov dx, word [ebp + esi*2 - 0xa2]
+mov word [ebp - 0xbc], ax
+mov eax, ecx
+and eax, edx
+test word [ebp - 0xbc], ax
+movzx ebx, byte [ebp - 0xe8]
+mov word [ebp - 0xe0], dx
+mov word [ebp - 0xf8], cx
+jne loc_fffc7414 ; jne 0xfffc7414
+mov edx, dword [ebp - 0x114]
+cmp dword [ebp - 0xf0], 1
+mov cl, byte [ebp - 0xe8]
+mov al, 0
+cmovne eax, ecx
+lea ecx, [esi + esi*8]
+mov byte [ebp - 0xd9], al
+mov dword [ebp - 0xcc], ecx
+lea eax, [edx + ebx*4]
+add eax, dword [edi + 0x103f]
+mov edx, dword [ebp - 0xc0]
+mov eax, dword [eax]
+mov dword [ebp - 0xc4], eax
+mov eax, dword [ebp - 0xe4]
+add eax, ecx
+mov ecx, dword [ebp - 0xc8]
+add eax, ebx
+lea eax, [edx + eax*2]
+mov eax, dword [ecx + eax*4]
+mov byte [ebp - 0xd4], al
+mov dword [ebp - 0xfc], eax
+lea eax, [ebp - 0x18]
+add eax, dword [ebp - 0xcc]
+lea edx, [eax + ebx]
+mov cl, byte [edx - 0x7e]
+mov byte [ebp - 0x11d], cl
+mov cl, byte [ebp - 0xd4]
+sub cl, byte [ebp - 0x11d]
+mov byte [ebp - 0xd8], cl
+mov ecx, dword [ebp - 0xc4]
+and ecx, 0x7fffff
+mov dword [ebp - 0xc4], ecx
+jne loc_fffc70b5 ; jne 0xfffc70b5
+movzx ecx, byte [ebp - 0xd9]
+add eax, ecx
+mov cl, byte [ebp - 0xd4]
+cmp cl, byte [eax - 0x6c]
+jne loc_fffc7048 ; jne 0xfffc7048
+cmp byte [ebp - 0xd8], 0
+jns short loc_fffc6fe9 ; jns 0xfffc6fe9
+cmp byte [eax - 0x5a], cl
+jne short loc_fffc6fd3 ; jne 0xfffc6fd3
+
+loc_fffc6fbc: ; not directly referenced
+lea eax, [esi + esi*8]
+lea edx, [ebp - 0x18]
+add eax, edx
+mov cl, byte [ebp - 0xd4]
+mov byte [ebx + eax - 0x7e], cl
+jmp near loc_fffc72ce ; jmp 0xfffc72ce
+
+loc_fffc6fd3: ; not directly referenced
+mov dword [ebp - 0xa8], 1
+
+loc_fffc6fdd: ; not directly referenced
+mov eax, dword [ebp - 0xa8]
+test eax, eax
+jne short loc_fffc6fdd ; jne 0xfffc6fdd
+jmp short loc_fffc6fbc ; jmp 0xfffc6fbc
+
+loc_fffc6fe9: ; not directly referenced
+cmp byte [ebp - 0xd8], 1
+jne short loc_fffc7012 ; jne 0xfffc7012
+mov ecx, dword [ebp - 0xcc]
+add ecx, ebx
+mov eax, dword [ebp + ecx*4 - 0x60]
+shr eax, 8
+xor ah, ah
+mov dword [ebp + ecx*4 - 0x60], eax
+mov al, byte [ebp - 0xfc]
+mov byte [edx - 0x7e], al
+jmp short loc_fffc7083 ; jmp 0xfffc7083
+
+loc_fffc7012: ; not directly referenced
+cmp byte [ebp - 0xd8], 2
+jne short loc_fffc702f ; jne 0xfffc702f
+xor eax, eax
+call fcn_fffb2181 ; call 0xfffb2181
+mov ecx, dword [ebp - 0xcc]
+add ecx, ebx
+jmp near loc_fffc714a ; jmp 0xfffc714a
+
+loc_fffc702f: ; not directly referenced
+mov dword [ebp - 0xac], 1
+
+loc_fffc7039: ; not directly referenced
+mov eax, dword [ebp - 0xac]
+test eax, eax
+jne short loc_fffc7039 ; jne 0xfffc7039
+jmp near loc_fffc72ce ; jmp 0xfffc72ce
+
+loc_fffc7048: ; not directly referenced
+mov cl, byte [ebp - 0xd4]
+cmp cl, byte [eax - 0x5a]
+jne loc_fffc72ba ; jne 0xfffc72ba
+mov eax, dword [ebp - 0xe0]
+test word [ebp - 0xbc], ax
+jne loc_fffc7414 ; jne 0xfffc7414
+cmp byte [ebp - 0xd8], 0xff
+jne short loc_fffc709c ; jne 0xfffc709c
+mov eax, dword [ebp - 0xcc]
+add eax, ebx
+and dword [ebp + eax*4 - 0x60], 0xffffff00
+
+loc_fffc7083: ; not directly referenced
+mov eax, dword [ebp - 0xbc]
+or eax, dword [ebp - 0xe0]
+
+loc_fffc708f: ; not directly referenced
+mov word [ebp + esi*2 - 0xa2], ax
+jmp near loc_fffc72ce ; jmp 0xfffc72ce
+
+loc_fffc709c: ; not directly referenced
+mov cl, byte [ebp - 0xfc]
+mov eax, dword [ebp - 0xec]
+not eax
+mov byte [edx - 0x7e], cl
+and eax, dword [ebp - 0xe0]
+jmp short loc_fffc708f ; jmp 0xfffc708f
+
+loc_fffc70b5: ; not directly referenced
+movzx edx, byte [ebp - 0xd9]
+mov cl, byte [ebp - 0xd4]
+add eax, edx
+mov dword [ebp - 0xe0], edx
+cmp cl, byte [eax - 0x6c]
+jne loc_fffc7176 ; jne 0xfffc7176
+cmp byte [ebp - 0xd8], 2
+jle short loc_fffc70f5 ; jle 0xfffc70f5
+mov dword [ebp - 0xb0], 1
+
+loc_fffc70e6: ; not directly referenced
+mov eax, dword [ebp - 0xb0]
+test eax, eax
+jne short loc_fffc70e6 ; jne 0xfffc70e6
+jmp near loc_fffc72ce ; jmp 0xfffc72ce
+
+loc_fffc70f5: ; not directly referenced
+mov edx, dword [ebp - 0xcc]
+mov eax, dword [ebp - 0xc4]
+lea ecx, [edx + ebx]
+mov dword [ebp - 0x11c], ecx
+je short loc_fffc713f ; je 0xfffc713f
+call fcn_fffb2181 ; call 0xfffb2181
+mov ecx, dword [ebp - 0x11c]
+and eax, 0xff
+shl eax, 0x10
+mov edx, dword [ebp + ecx*4 - 0x60]
+and edx, 0xff00ffff
+or eax, edx
+mov dword [ebp + ecx*4 - 0x60], eax
+mov eax, dword [ebp - 0xec]
+not eax
+and eax, dword [ebp - 0xf8]
+jmp short loc_fffc7169 ; jmp 0xfffc7169
+
+loc_fffc713f: ; not directly referenced
+call fcn_fffb2181 ; call 0xfffb2181
+mov ecx, dword [ebp - 0x11c]
+
+loc_fffc714a: ; not directly referenced
+shl eax, 0x18
+mov edx, dword [ebp + ecx*4 - 0x60]
+and edx, 0xffffff
+or eax, edx
+mov dword [ebp + ecx*4 - 0x60], eax
+mov eax, dword [ebp - 0xbc]
+or eax, dword [ebp - 0xf8]
+
+loc_fffc7169: ; not directly referenced
+mov word [ebp + esi*2 - 0x9e], ax
+jmp near loc_fffc72ce ; jmp 0xfffc72ce
+
+loc_fffc7176: ; not directly referenced
+mov cl, byte [ebp - 0xd4]
+cmp cl, byte [eax - 0x5a]
+jne loc_fffc72ba ; jne 0xfffc72ba
+cmp byte [ebp - 0x11d], 0xff
+je loc_fffc723c ; je 0xfffc723c
+cmp byte [ebp - 0xd8], 0
+jg loc_fffc723c ; jg 0xfffc723c
+mov eax, dword [ebp - 0xc4]
+call fcn_fffb2181 ; call 0xfffb2181
+mov dword [ebp - 0xf8], eax
+mov eax, dword [ebp - 0xcc]
+add eax, ebx
+mov dl, 0xf8
+xor ecx, ecx
+mov eax, dword [ebp + eax*4 - 0x60]
+mov dword [ebp - 0xfc], eax
+mov al, byte [ebp - 0xd8]
+imul eax, edx
+mov dl, al
+mov byte [ebp - 0xcc], al
+add edx, 0x27
+cmp dl, 0x3e
+ja short loc_fffc7220 ; ja 0xfffc7220
+mov dl, byte [ebp - 0xd8]
+movzx eax, byte [ebp - 0xf8]
+lea ecx, [edx*8 + 8]
+mov edx, 0xff
+shl edx, cl
+shl eax, cl
+mov cl, byte [ebp - 0xcc]
+not edx
+add ecx, 8
+and edx, dword [ebp - 0xfc]
+or eax, edx
+test cl, cl
+jle short loc_fffc7217 ; jle 0xfffc7217
+shl eax, cl
+jmp short loc_fffc721e ; jmp 0xfffc721e
+
+loc_fffc7217: ; not directly referenced
+movsx ecx, cl
+neg ecx
+shr eax, cl
+
+loc_fffc721e: ; not directly referenced
+mov ecx, eax
+
+loc_fffc7220: ; not directly referenced
+lea eax, [esi + esi*8]
+lea edx, [eax + ebx]
+mov dword [ebp + edx*4 - 0x60], ecx
+lea ecx, [ebp - 0x18]
+add eax, ecx
+mov dl, byte [ebp - 0xd4]
+dec edx
+mov byte [ebx + eax - 0x7e], dl
+jmp short loc_fffc7273 ; jmp 0xfffc7273
+
+loc_fffc723c: ; not directly referenced
+lea eax, [esi + esi*8]
+lea edx, [eax + ebx]
+mov eax, dword [ebp - 0xc4]
+mov ecx, dword [ebp + edx*4 - 0x60]
+mov dword [ebp - 0x11c], edx
+mov dword [ebp - 0xcc], ecx
+call fcn_fffb2181 ; call 0xfffb2181
+mov edx, dword [ebp - 0x11c]
+movzx ecx, word [ebp - 0xcc]
+shl eax, 0x10
+or eax, ecx
+mov dword [ebp + edx*4 - 0x60], eax
+
+loc_fffc7273: ; not directly referenced
+lea edx, [ebp - 0x18]
+lea eax, [esi + esi*8]
+mov ecx, dword [ebp - 0xe0]
+add eax, edx
+mov edx, dword [ebp - 0xe0]
+mov cl, byte [ecx + eax - 0x6c]
+cmp byte [edx + eax - 0x5a], cl
+jae short loc_fffc729f ; jae 0xfffc729f
+mov eax, dword [ebp - 0xbc]
+or word [ebp + esi*2 - 0x9e], ax
+
+loc_fffc729f: ; not directly referenced
+cmp byte [ebp - 0xd8], 0
+jg short loc_fffc72ce ; jg 0xfffc72ce
+mov eax, dword [ebp - 0xec]
+not eax
+and word [ebp + esi*2 - 0xa2], ax
+jmp short loc_fffc72ce ; jmp 0xfffc72ce
+
+loc_fffc72ba: ; not directly referenced
+mov dword [ebp - 0xb4], 1
+
+loc_fffc72c4: ; not directly referenced
+mov eax, dword [ebp - 0xb4]
+test eax, eax
+jne short loc_fffc72c4 ; jne 0xfffc72c4
+
+loc_fffc72ce: ; not directly referenced
+movzx eax, byte [ebp - 0xdb]
+cmp byte [ebp - 0xda], 1
+jne short loc_fffc72fa ; jne 0xfffc72fa
+push edx
+movzx ecx, byte [ebp - 0x101]
+mov edx, esi
+push eax
+push dword [ebp - 0xc0]
+mov eax, edi
+push ebx
+call fcn_fffb2c66 ; call 0xfffb2c66
+add esp, 0x10
+
+loc_fffc72fa: ; not directly referenced
+cmp byte [ebp - 0xd4], al
+jne short loc_fffc7310 ; jne 0xfffc7310
+mov edx, dword [ebp - 0xbc]
+or word [ebp + esi*2 - 0x9e], dx
+
+loc_fffc7310: ; not directly referenced
+cmp dword [ebp - 0xc4], 0
+jne short loc_fffc7340 ; jne 0xfffc7340
+lea edx, [esi + esi*8]
+lea ecx, [ebp - 0x18]
+add ecx, edx
+cmp al, byte [ebx + ecx - 0x7e]
+jne short loc_fffc7340 ; jne 0xfffc7340
+mov ecx, dword [ebp - 0xbc]
+test word [ebp + esi*2 - 0xa2], cx
+je short loc_fffc7340 ; je 0xfffc7340
+add edx, ebx
+mov word [ebp + edx*4 - 0x5e], 0xfffe
+
+loc_fffc7340: ; not directly referenced
+cmp byte [ebp - 0xd4], 0
+jne short loc_fffc737e ; jne 0xfffc737e
+mov eax, dword [ebp - 0xbc]
+or word [ebp + esi*2 - 0xa2], ax
+cmp dword [ebp - 0xc4], 0
+je short loc_fffc737e ; je 0xfffc737e
+or word [ebp + esi*2 - 0x9e], ax
+lea edx, [ebp - 0x18]
+lea eax, [esi + esi*8]
+add edx, eax
+add eax, ebx
+mov byte [ebx + edx - 0x7e], 0
+mov word [ebp + eax*4 - 0x5e], 0x707
+
+loc_fffc737e: ; not directly referenced
+cmp dword [ebp - 0xf0], 0
+jne loc_fffc7414 ; jne 0xfffc7414
+mov dx, word [ebp + esi*2 - 0x9e]
+mov ax, word [ebp + esi*2 - 0xa2]
+mov ecx, edx
+and ecx, eax
+test word [ebp - 0xbc], cx
+jne short loc_fffc7414 ; jne 0xfffc7414
+cmp dword [ebp - 0xc4], 0
+jne short loc_fffc73c3 ; jne 0xfffc73c3
+movzx eax, byte [ebp - 0xd9]
+test word [ebp - 0xbc], dx
+jne short loc_fffc73d3 ; jne 0xfffc73d3
+jmp short loc_fffc73e6 ; jmp 0xfffc73e6
+
+loc_fffc73c3: ; not directly referenced
+test word [ebp - 0xbc], ax
+movzx eax, byte [ebp - 0xd9]
+jne short loc_fffc73e6 ; jne 0xfffc73e6
+
+loc_fffc73d3: ; not directly referenced
+lea edx, [esi + esi*8]
+lea ecx, [ebp - 0x18]
+add ecx, edx
+add ecx, eax
+mov al, byte [ecx - 0x5a]
+dec eax
+mov byte [ecx - 0x5a], al
+jmp short loc_fffc73f7 ; jmp 0xfffc73f7
+
+loc_fffc73e6: ; not directly referenced
+lea edx, [esi + esi*8]
+lea ecx, [ebp - 0x18]
+add ecx, edx
+add ecx, eax
+mov al, byte [ecx - 0x6c]
+inc eax
+mov byte [ecx - 0x6c], al
+
+loc_fffc73f7: ; not directly referenced
+movzx eax, al
+add edx, dword [ebp - 0xe4]
+add edx, ebx
+mov ebx, dword [ebp - 0xc0]
+lea edx, [ebx + edx*2]
+mov ebx, dword [ebp - 0xc8]
+mov dword [ebx + edx*4], eax
+
+loc_fffc7414: ; not directly referenced
+inc byte [ebp - 0xe8]
+
+loc_fffc741a: ; not directly referenced
+mov cl, byte [ebp - 0xe8]
+cmp cl, byte [edi + 0x1755]
+jb loc_fffc6e9e ; jb 0xfffc6e9e
+cmp dword [ebp - 0xf0], 1
+jne loc_fffc74e7 ; jne 0xfffc74e7
+mov ax, word [ebp + esi*2 - 0xa2]
+mov edx, eax
+and dx, word [ebp + esi*2 - 0x9e]
+cmp dx, word [ebp - 0xd0]
+je loc_fffc74e7 ; je 0xfffc74e7
+cmp ax, word [ebp - 0xd0]
+lea edx, [esi + esi*8]
+movzx eax, byte [ebp - 0xd9]
+je short loc_fffc74a4 ; je 0xfffc74a4
+lea ebx, [ebp - 0x18]
+add edx, ebx
+add edx, eax
+mov al, byte [edx - 0x5a]
+dec eax
+mov byte [edx - 0x5a], al
+
+loc_fffc7479: ; not directly referenced
+imul edx, esi, 0x48
+mov ebx, dword [ebp - 0x100]
+movzx eax, al
+lea ecx, [esi + esi*8]
+mov dword [ebx + edx], eax
+add ecx, dword [ebp - 0xe4]
+imul eax, esi, 0x48
+mov dword [ebp - 0xc4], ecx
+mov dword [ebp - 0xcc], eax
+xor eax, eax
+jmp short loc_fffc74df ; jmp 0xfffc74df
+
+loc_fffc74a4: ; not directly referenced
+lea ecx, [ebp - 0x18]
+add edx, ecx
+add edx, eax
+mov al, byte [edx - 0x6c]
+inc eax
+mov byte [edx - 0x6c], al
+jmp short loc_fffc7479 ; jmp 0xfffc7479
+
+loc_fffc74b4: ; not directly referenced
+mov ebx, dword [ebp - 0x100]
+mov edx, dword [ebp - 0xcc]
+mov ecx, dword [ebp - 0xc0]
+mov edx, dword [ebx + edx]
+movzx ebx, al
+add ebx, dword [ebp - 0xc4]
+inc eax
+lea ebx, [ecx + ebx*2]
+mov ecx, dword [ebp - 0xc8]
+mov dword [ecx + ebx*4], edx
+
+loc_fffc74df: ; not directly referenced
+cmp al, byte [edi + 0x1755]
+jb short loc_fffc74b4 ; jb 0xfffc74b4
+
+loc_fffc74e7: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffc6e73 ; jne 0xfffc6e73
+mov eax, dword [ebp - 0xd0]
+and ax, word [ebp - 0xa2]
+cmp ax, word [ebp - 0xd0]
+jne loc_fffc6d6d ; jne 0xfffc6d6d
+mov eax, dword [ebp - 0xd0]
+and ax, word [ebp - 0x9e]
+cmp ax, word [ebp - 0xd0]
+jne loc_fffc6d6d ; jne 0xfffc6d6d
+mov eax, dword [ebp - 0xd0]
+and eax, dword [ebp - 0xa0]
+cmp ax, word [ebp - 0xd0]
+jne loc_fffc6d6d ; jne 0xfffc6d6d
+mov eax, dword [ebp - 0xd0]
+and eax, dword [ebp - 0x9c]
+cmp ax, word [ebp - 0xd0]
+jne loc_fffc6d6d ; jne 0xfffc6d6d
+xor ebx, ebx
+
+loc_fffc7559: ; not directly referenced
+mov esi, dword [ebp - 0xf4]
+bt esi, ebx
+jb short loc_fffc75d7 ; jb 0xfffc75d7
+
+loc_fffc7564: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc7559 ; jne 0xfffc7559
+jmp near loc_fffc75f1 ; jmp 0xfffc75f1
+
+loc_fffc756f: ; not directly referenced
+movzx esi, byte [ebp - 0xbc]
+lea eax, [ebx + ebx*8]
+mov dword [ebp - 0xc4], eax
+add eax, esi
+sub esp, 0xc
+mov edx, dword [ebp + eax*4 - 0x60]
+lea eax, [ebp - 0x18]
+add eax, dword [ebp - 0xc4]
+mov ecx, edx
+shr edx, 0x10
+shr ecx, 0x18
+and edx, 0xff
+movzx eax, byte [esi + eax - 0x7e]
+push dword [ebp + 0x1c]
+call fcn_fffc8bf1 ; call 0xfffc8bf1
+mov edx, dword [ebp - 0xc4]
+add edx, dword [ebp - 0xe4]
+add esi, edx
+mov ecx, dword [ebp - 0xc0]
+inc byte [ebp - 0xbc]
+add esp, 0x10
+lea edx, [ecx + esi*2]
+mov esi, dword [ebp - 0xc8]
+mov dword [esi + edx*4], eax
+jmp short loc_fffc75de ; jmp 0xfffc75de
+
+loc_fffc75d7: ; not directly referenced
+mov byte [ebp - 0xbc], 0
+
+loc_fffc75de: ; not directly referenced
+mov al, byte [ebp - 0xbc]
+cmp al, byte [edi + 0x1755]
+jb short loc_fffc756f ; jb 0xfffc756f
+jmp near loc_fffc7564 ; jmp 0xfffc7564
+
+loc_fffc75f1: ; not directly referenced
+inc dword [ebp - 0xc0]
+cmp dword [ebp - 0xc0], 2
+jne loc_fffc6af3 ; jne 0xfffc6af3
+cmp byte [ebp - 0xda], 0xb
+je short loc_fffc7637 ; je 0xfffc7637
+
+loc_fffc760d: ; not directly referenced
+push 2
+movzx edx, byte [ebp - 0xda]
+xor ecx, ecx
+push 0
+mov eax, edi
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+call fcn_fffc83fc ; call 0xfffc83fc
+add esp, 0x20
+xor edx, edx
+jmp near loc_fffc7710 ; jmp 0xfffc7710
+
+loc_fffc7637: ; not directly referenced
+lea esi, [edi + 0x2974]
+mov dword [ebp - 0xc4], esi
+movzx esi, byte [ebp - 0xdc]
+xor ebx, ebx
+mov dword [ebp - 0xd0], esi
+
+loc_fffc7652: ; not directly referenced
+mov esi, dword [ebp - 0xf4]
+bt esi, ebx
+jb short loc_fffc7665 ; jb 0xfffc7665
+
+loc_fffc765d: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc7652 ; jne 0xfffc7652
+jmp short loc_fffc760d ; jmp 0xfffc760d
+
+loc_fffc7665: ; not directly referenced
+imul eax, ebx, 0x1347
+mov esi, dword [ebp - 0xc4]
+mov byte [ebp - 0xc0], 0
+lea eax, [esi + eax + 8]
+mov dword [ebp - 0xc8], eax
+mov eax, ebx
+shl eax, 0xa
+add eax, 0x4028
+mov dword [ebp - 0xbc], eax
+jmp short loc_fffc76e6 ; jmp 0xfffc76e6
+
+loc_fffc7694: ; not directly referenced
+push eax
+movzx eax, byte [ebp - 0xc0]
+mov ecx, dword [ebp - 0xd0]
+push 0
+mov edx, ebx
+push 0xff
+push eax
+mov eax, edi
+call fcn_fffb0168 ; call 0xfffb0168
+mov esi, dword [ebp - 0xc8]
+mov ecx, dword [ebp - 0xbc]
+add ecx, dword [edi + 0x103f]
+inc byte [ebp - 0xc0]
+add esp, 0x10
+movzx edx, byte [esi + 0x10d5]
+mov eax, dword [ecx]
+and edx, 0x3f
+shl edx, 0x10
+and eax, 0xffc0ffff
+or eax, edx
+mov dword [ecx], eax
+
+loc_fffc76e6: ; not directly referenced
+mov al, byte [ebp - 0xc0]
+cmp al, byte [edi + 0x1755]
+jb short loc_fffc7694 ; jb 0xfffc7694
+jmp near loc_fffc765d ; jmp 0xfffc765d
+
+loc_fffc76f9: ; not directly referenced
+movzx ebx, dl
+mov ecx, dword [edi + 0x103f]
+inc edx
+lea ecx, [ecx + ebx*4 + 0x4cf0]
+mov dword [ecx], 0
+
+loc_fffc7710: ; not directly referenced
+cmp dl, byte [edi + 0x1755]
+jb short loc_fffc76f9 ; jb 0xfffc76f9
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc7720: ; not directly referenced
+push ebp
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov esi, dword [ebp + 8]
+lea ebx, [esi + 0x16be]
+mov dword [esi + 0x1700], 0
+lea edi, [esi + 0x2974]
+
+loc_fffc7745: ; not directly referenced
+imul ecx, edx, 0x1347
+lea eax, [edi + ecx + 8]
+mov dword [eax + 0xf1], 0
+cmp dword [ebx + ecx + 0x12be], 2
+jne short loc_fffc77ac ; jne 0xfffc77ac
+cmp dword [eax + 0x1151], 2
+jne short loc_fffc7778 ; jne 0xfffc7778
+mov ecx, dword [eax + 0x1222]
+mov dword [eax + 0xf1], ecx
+
+loc_fffc7778: ; not directly referenced
+cmp dword [eax + 0x124c], 2
+jne short loc_fffc778d ; jne 0xfffc778d
+mov ecx, dword [eax + 0x131d]
+add dword [eax + 0xf1], ecx
+
+loc_fffc778d: ; not directly referenced
+mov ecx, dword [esi + 0x1751]
+cmp dword [eax + 0xf1], ecx
+cmovbe ecx, dword [eax + 0xf1]
+mov dword [eax + 0xf1], ecx
+add dword [esi + 0x1700], ecx
+
+loc_fffc77ac: ; not directly referenced
+inc edx
+cmp edx, 2
+jne short loc_fffc7745 ; jne 0xfffc7745
+mov ecx, dword [esi + 0x1700]
+mov edx, dword [esi + 0x1053]
+mov eax, ecx
+sub eax, dword [esi + 0x104f]
+cmp byte [esi + 0x16b3], 0
+mov dword [esi + 0x16db], eax
+je short loc_fffc77ed ; je 0xfffc77ed
+cmp ecx, 0x1000
+ja short loc_fffc77ed ; ja 0xfffc77ed
+mov ebx, ecx
+mov ecx, 0x1000
+shr ebx, 1
+sub ecx, ebx
+cmp edx, ecx
+cmovb edx, ecx
+
+loc_fffc77ed: ; not directly referenced
+mov ebx, dword [esi + 0x1724]
+mov edi, eax
+mov ecx, ebx
+sub ecx, edx
+mov edx, ecx
+mov ecx, dword [esi + 0x1728]
+lea edx, [edx + ecx + 0x1000]
+cmp edx, eax
+cmovbe edi, edx
+mov edx, edi
+mov dword [esi + 0x16df], edi
+sub edx, ebx
+mov dword [esi + 0x16e3], edx
+mov dword [ebp - 0x1c], edx
+sub edx, ecx
+xor ecx, ecx
+mov dword [esi + 0x16e7], edx
+mov dword [ebp - 0x20], edx
+mov edx, dword [esi + 0x103b]
+cmp byte [esi + 0x102d], 1
+sete cl
+shl ecx, 0xe
+mov dword [ebp - 0x24], ecx
+mov ecx, 3
+mov edx, dword [edx + 0x50]
+and dh, 0xbc
+cmp dword [esi + 0x1728], 3
+cmovbe ecx, dword [esi + 0x1728]
+or edx, dword [ebp - 0x24]
+and ecx, 3
+shl ecx, 8
+or edx, ecx
+cmp ebx, 0x400
+jne short loc_fffc7877 ; jne 0xfffc7877
+and dl, 7
+or dl, 0x88
+jmp short loc_fffc7894 ; jmp 0xfffc7894
+
+loc_fffc7877: ; not directly referenced
+cmp ebx, 0x3ff
+mov cl, 0x1f
+ja short loc_fffc7889 ; ja 0xfffc7889
+mov ecx, ebx
+shr ecx, 5
+and ecx, 0x1f
+
+loc_fffc7889: ; not directly referenced
+and ecx, 0x1f
+and dl, 7
+shl ecx, 3
+or edx, ecx
+
+loc_fffc7894: ; not directly referenced
+mov ebx, dword [esi + 0x1057]
+mov dword [esi + 0x16eb], edx
+mov edx, dword [esi + 0x105f]
+mov ecx, dword [ebp - 0x20]
+mov dword [esi + 0x171c], edx
+mov edx, ebx
+sub ecx, ebx
+neg edx
+and edx, ecx
+sub ecx, edx
+mov dword [esi + 0x16ef], edx
+je short loc_fffc78e1 ; je 0xfffc78e1
+mov edx, dword [ebp - 0x20]
+sub edx, ecx
+mov dword [esi + 0x16e7], edx
+mov edx, dword [ebp - 0x1c]
+sub edx, ecx
+mov dword [esi + 0x16e3], edx
+mov edx, edi
+sub edx, ecx
+mov dword [esi + 0x16df], edx
+
+loc_fffc78e1: ; not directly referenced
+cmp byte [esi + 0x1030], 0
+je short loc_fffc7941 ; je 0xfffc7941
+mov edx, dword [esi + 0x16df]
+cmp eax, edx
+jbe short loc_fffc7941 ; jbe 0xfffc7941
+cmp eax, 0x1000
+mov ebx, 0x1000
+mov ecx, ebx
+mov byte [esi + 0x16f3], 1
+cmovae ecx, eax
+cmova eax, ebx
+add eax, ecx
+mov dword [esi + 0x16f4], ecx
+sub eax, edx
+cmp dword [esi + 0x1005], 0x306c0
+mov dword [esi + 0x16f8], eax
+mov dword [esi + 0x16fc], eax
+jne short loc_fffc7938 ; jne 0xfffc7938
+cmp dword [esi + 0x1001], 1
+je short loc_fffc794e ; je 0xfffc794e
+
+loc_fffc7938: ; not directly referenced
+dec eax
+mov dword [esi + 0x16f8], eax
+jmp short loc_fffc794e ; jmp 0xfffc794e
+
+loc_fffc7941: ; not directly referenced
+mov byte [esi + 0x16f3], 0
+mov dword [esi + 0x16fc], eax
+
+loc_fffc794e: ; not directly referenced
+cmp byte [esi + 0x173c], 0
+je short loc_fffc79c0 ; je 0xfffc79c0
+cmp byte [esi + 0x16b3], 0
+je short loc_fffc797c ; je 0xfffc797c
+cmp dword [esi + 0x1700], 0x1000
+ja short loc_fffc7974 ; ja 0xfffc7974
+mov eax, dword [esi + 0x16fc]
+jmp short loc_fffc7988 ; jmp 0xfffc7988
+
+loc_fffc7974: ; not directly referenced
+mov eax, dword [esi + 0x16db]
+jmp short loc_fffc7988 ; jmp 0xfffc7988
+
+loc_fffc797c: ; not directly referenced
+mov eax, dword [esi + 0x16ef]
+sub eax, dword [esi + 0x105f]
+
+loc_fffc7988: ; not directly referenced
+movzx edx, byte [esi + 0x173e]
+shl edx, 3
+mov dword [esi + 0x1710], edx
+not edx
+add eax, edx
+movzx edx, byte [esi + 0x173d]
+and eax, 0xfffffff0
+shl edx, 3
+mov dword [esi + 0x170c], eax
+sub eax, edx
+mov dword [esi + 0x1718], edx
+sub eax, 0x10
+mov dword [esi + 0x1714], eax
+
+loc_fffc79c0: ; not directly referenced
+mov eax, dword [esi + 0x16db]
+mov edi, dword [esi + 0x1700]
+mov dword [esi + 0x1704], eax
+mov ecx, dword [esi + 0x103b]
+mov eax, dword [esi + 0x104f]
+xor edx, edx
+mov dword [esi + 0x1708], eax
+mov eax, edi
+shr edi, 0xc
+and edx, 0xffffff80
+and edi, 0x7f
+mov ebx, dword [esi + 0x1047]
+shl eax, 0x14
+or edx, edi
+mov dword [ecx + 0xa0], eax
+mov dword [ecx + 0xa4], edx
+movzx eax, word [esi + 0x16df]
+xor edx, edx
+shl eax, 0x14
+and edx, 0xffffff80
+mov dword [ecx + 0xbc], eax
+mov edi, dword [esi + 0x16fc]
+mov eax, edi
+shr edi, 0xc
+shl eax, 0x14
+and edi, 0x7f
+or edx, edi
+mov dword [ecx + 0xa8], eax
+mov dword [ecx + 0xac], edx
+cmp byte [esi + 0x16f3], 0
+je short loc_fffc7a8d ; je 0xfffc7a8d
+mov edi, dword [esi + 0x16f4]
+xor edx, edx
+mov eax, edi
+and edx, 0xffffff80
+shr edi, 0xc
+shl eax, 0x14
+and edi, 0x7f
+or edx, edi
+mov dword [ecx + 0x90], eax
+mov dword [ecx + 0x94], edx
+mov edi, dword [esi + 0x16f8]
+mov eax, edi
+xor edx, edx
+shr edi, 0xc
+and edx, 0xffffff80
+shl eax, 0x14
+and edi, 0x7f
+or edx, edi
+mov dword [ecx + 0x98], eax
+mov dword [ecx + 0x9c], edx
+
+loc_fffc7a8d: ; not directly referenced
+movzx eax, word [esi + 0x16ef]
+shl eax, 0x14
+mov dword [ecx + 0xb8], eax
+mov edx, dword [esi + 0x171c]
+test edx, edx
+je short loc_fffc7abd ; je 0xfffc7abd
+movzx edx, dl
+mov eax, dword [ecx + 0x5c]
+shl edx, 4
+and eax, 0xfffff00f
+or eax, edx
+or eax, 4
+mov dword [ecx + 0x5c], eax
+
+loc_fffc7abd: ; not directly referenced
+movzx eax, word [esi + 0x16e3]
+shl eax, 0x14
+mov dword [ecx + 0xb0], eax
+movzx eax, word [esi + 0x16e7]
+shl eax, 0x14
+mov dword [ecx + 0xb4], eax
+mov edx, dword [esi + 0x1708]
+test edx, edx
+je short loc_fffc7b35 ; je 0xfffc7b35
+mov eax, 0x80000
+mov dword [ebp - 0x14], 0
+sub eax, edx
+mov edx, eax
+shl edx, 0x14
+shr eax, 0xc
+or dh, 8
+mov dword [ebp - 0x18], edx
+mov edx, dword [ebp - 0x14]
+and eax, 0x7f
+and edx, 0xffffff80
+or edx, eax
+mov eax, dword [ebp - 0x18]
+mov dword [ecx + 0x78], eax
+mov dword [ecx + 0x7c], edx
+mov edi, dword [esi + 0x1704]
+xor edx, edx
+mov eax, edi
+and edx, 0xffffff80
+shr edi, 0xc
+shl eax, 0x14
+and edi, 0x7f
+or edx, edi
+mov dword [ecx + 0x70], eax
+mov dword [ecx + 0x74], edx
+
+loc_fffc7b35: ; not directly referenced
+mov eax, dword [esi + 0x16eb]
+mov dword [ecx + 0x50], eax
+mov eax, dword [esi + 0x170c]
+shl eax, 0xe
+mov dword [ebx + 0x10], eax
+mov eax, dword [esi + 0x170c]
+and eax, 0x40000
+shr eax, 0x12
+mov dword [ebx + 0x14], eax
+mov edx, dword [esi + 0x170c]
+mov eax, dword [esi + 0x1710]
+add eax, edx
+shr eax, 3
+shr edx, 3
+shl eax, 0x10
+or eax, edx
+mov dword [ebx + 0x18], eax
+mov eax, dword [esi + 0x1714]
+shl eax, 0xe
+mov dword [ebx + 0x20], eax
+mov eax, dword [esi + 0x1714]
+and eax, 0x40000
+shr eax, 0x12
+or eax, 4
+mov dword [ebx + 0x24], eax
+mov edx, dword [esi + 0x1714]
+mov eax, dword [esi + 0x1718]
+add eax, edx
+shr eax, 3
+shl eax, 0x10
+shr edx, 3
+or eax, edx
+mov dword [ebx + 0x28], eax
+lea esp, [esp + 0x1c]
+pop ebx
+xor eax, eax
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc7bbe:
+db 0x00
+db 0x00
+
+fcn_fffc7bc0: ; not directly referenced
+push ebp
+mov eax, dword [0xf0000060]
+mov ebp, esp
+and eax, 0xfc000000
+mov ecx, dword [ebp + 0xc]
+mov eax, dword [eax + 0xf80f0]
+and eax, 0xfffffffe
+cmp ecx, 1
+mov edx, dword [ebp + 0x10]
+je short loc_fffc7c08 ; je 0xfffc7c08
+jb short loc_fffc7bea ; jb 0xfffc7bea
+cmp ecx, 2
+jne short loc_fffc7c30 ; jne 0xfffc7c30
+jmp short loc_fffc7c21 ; jmp 0xfffc7c21
+
+loc_fffc7bea: ; not directly referenced
+mov cl, byte [eax + 0x38f4]
+and cl, 1
+jne short loc_fffc7bfc ; jne 0xfffc7bfc
+mov word [edx], 0
+jmp short loc_fffc7c30 ; jmp 0xfffc7c30
+
+loc_fffc7bfc: ; not directly referenced
+mov ax, word [eax + 0x38f8]
+mov word [edx], ax
+jmp short loc_fffc7c30 ; jmp 0xfffc7c30
+
+loc_fffc7c08: ; not directly referenced
+mov dx, word [edx]
+mov word [eax + 0x38f8], dx
+mov dl, byte [eax + 0x38f4]
+or edx, 1
+mov byte [eax + 0x38f4], dl
+
+loc_fffc7c21: ; not directly referenced
+mov dl, byte [eax + 0x38f0]
+or edx, 1
+mov byte [eax + 0x38f0], dl
+
+loc_fffc7c30: ; not directly referenced
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffc7c34: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+lea esp, [esp - 0x24]
+lea eax, [ebp - 0x1c]
+mov ebx, dword [ebp + 8]
+call fcn_fffbf908 ; call 0xfffbf908
+cmp dword [ebp - 0x1c], 0x11
+jne short loc_fffc7c96 ; jne 0xfffc7c96
+sub esp, 0xc
+lea edx, [ebp - 0x14]
+mov eax, dword [ebx]
+push edx
+push 0
+push 0
+push ref_fffcd4d4 ; push 0xfffcd4d4
+push ebx
+call dword [eax + 0x20] ; ucall
+add esp, 0x18
+lea eax, [ebp - 0xe]
+push eax
+lea eax, [ebp - 0x18]
+mov dword [ebp - 0x18], 6
+push eax
+mov eax, dword [ebp - 0x14]
+push 0
+push ref_fffcd56c ; push 0xfffcd56c
+push ref_fffcc756 ; push 0xfffcc756
+push ebx
+call dword [eax] ; ucall
+add esp, 0x20
+test eax, eax
+js short loc_fffc7c96 ; js 0xfffc7c96
+mov dx, word [ebp - 0xe]
+xor eax, eax
+out dx, ax
+
+loc_fffc7c96: ; not directly referenced
+xor eax, eax
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffc7c9d:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+call fcn_fffc5ca7 ; call 0xfffc5ca7
+mov dword [ebp - 0x34], eax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov eax, dword [eax + 0xf80f0]
+and eax, 0xfffffffe
+mov dword [ebp - 0x38], eax
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov ax, word [eax + 0xf8002]
+mov word [ebp - 0x2c], ax
+mov esi, dword [0xf0000060]
+and esi, 0xfc000000
+mov edx, dword [0xf0000060]
+mov al, byte [esi + 0xfa092]
+test al, 0xf
+setne al
+cmp dword [ebp - 0x34], 1
+jne loc_fffc8280 ; jne 0xfffc8280
+mov cl, byte [esi + 0xfa092]
+and cl, 0x30
+je loc_fffc8273 ; je 0xfffc8273
+
+loc_fffc7d10:
+lea ecx, [ebp - 0x1c]
+mov edx, 0xea000aac
+mov eax, dword [ebp - 0x38]
+call fcn_fffc909f ; call 0xfffc909f
+jmp near loc_fffc8288 ; jmp 0xfffc8288
+
+loc_fffc7d25:
+mov al, byte [esi + 0xfa090]
+and eax, 0x1f
+or eax, 0x60
+jmp short loc_fffc7d45 ; jmp 0xfffc7d45
+
+loc_fffc7d33:
+cmp dword [ebp - 0x34], 2
+jne short loc_fffc7d4b ; jne 0xfffc7d4b
+mov al, byte [esi + 0xfa090]
+and eax, 0x3f
+or eax, 0x40
+
+loc_fffc7d45:
+mov byte [esi + 0xfa090], al
+
+loc_fffc7d4b:
+mov dword [ebp - 0x1c], 0xfffffe00
+mov eax, dword [esi + 0xfa094]
+and eax, 0xfffffe00
+or eax, 0x183
+mov dword [esi + 0xfa094], eax
+mov ax, word [esi + 0xfa092]
+or ax, 0x8000
+mov word [esi + 0xfa092], ax
+and edx, 0xfc000000
+mov dword [ebp - 0x3c], edx
+mov al, byte [edx + 0xe0410]
+mov byte [ebp - 0x2d], al
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+cmp eax, 3
+ja short loc_fffc7da6 ; ja 0xfffc7da6
+movzx edi, byte [eax + ref_fffcc32c] ; movzx edi, byte [eax - 0x33cd4]
+mov ebx, dword [eax*4 + ref_fffcc330] ; mov ebx, dword [eax*4 - 0x33cd0]
+jmp short loc_fffc7daa ; jmp 0xfffc7daa
+
+loc_fffc7da6:
+xor ebx, ebx
+xor edi, edi
+
+loc_fffc7daa:
+mov word [ebp - 0x2a], 0
+jmp short loc_fffc7dcf ; jmp 0xfffc7dcf
+
+loc_fffc7db2:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+add ebx, 0xc
+inc word [ebp - 0x2a]
+add esp, 0x10
+
+loc_fffc7dcf:
+cmp word [ebp - 0x2a], di
+jne short loc_fffc7db2 ; jne 0xfffc7db2
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+cmp eax, 6
+ja short loc_fffc7def ; ja 0xfffc7def
+movzx edx, byte [eax + ref_fffcc340] ; movzx edx, byte [eax - 0x33cc0]
+mov ebx, dword [eax*4 + ref_fffcc348] ; mov ebx, dword [eax*4 - 0x33cb8]
+jmp short loc_fffc7df3 ; jmp 0xfffc7df3
+
+loc_fffc7def:
+xor ebx, ebx
+xor edx, edx
+
+loc_fffc7df3:
+imul edx, edx, 0xc
+mov al, byte [ebp - 0x2d]
+and eax, 0x10
+mov byte [ebp - 0x2e], al
+lea edi, [ebx + edx]
+mov dl, byte [ebp - 0x2d]
+and edx, 0x20
+mov byte [ebp - 0x2a], dl
+jmp short loc_fffc7e88 ; jmp 0xfffc7e88
+
+loc_fffc7e0d:
+cmp dword [ebp - 0x34], 2
+jne short loc_fffc7e48 ; jne 0xfffc7e48
+mov eax, dword [ebx]
+and eax, 0xfe00
+cmp eax, 0x2000
+jne short loc_fffc7e23 ; jne 0xfffc7e23
+jmp short loc_fffc7e5c ; jmp 0xfffc7e5c
+
+loc_fffc7e23:
+cmp eax, 0x2200
+jne short loc_fffc7e2c ; jne 0xfffc7e2c
+jmp short loc_fffc7e69 ; jmp 0xfffc7e69
+
+loc_fffc7e2c:
+cmp eax, 0x2400
+jne short loc_fffc7e39 ; jne 0xfffc7e39
+test byte [ebp - 0x2d], 0x40
+jmp short loc_fffc7e6d ; jmp 0xfffc7e6d
+
+loc_fffc7e39:
+cmp eax, 0x2600
+jne short loc_fffc7e6f ; jne 0xfffc7e6f
+cmp byte [ebp - 0x2d], 0
+jns short loc_fffc7e6f ; jns 0xfffc7e6f
+jmp short loc_fffc7e85 ; jmp 0xfffc7e85
+
+loc_fffc7e48:
+cmp dword [ebp - 0x34], 1
+jne short loc_fffc7e6f ; jne 0xfffc7e6f
+mov eax, dword [ebx]
+and eax, 0xfe00
+cmp eax, 0x2000
+jne short loc_fffc7e62 ; jne 0xfffc7e62
+
+loc_fffc7e5c:
+cmp byte [ebp - 0x2e], 0
+jmp short loc_fffc7e6d ; jmp 0xfffc7e6d
+
+loc_fffc7e62:
+cmp eax, 0x2200
+jne short loc_fffc7e6f ; jne 0xfffc7e6f
+
+loc_fffc7e69:
+cmp byte [ebp - 0x2a], 0
+
+loc_fffc7e6d:
+jne short loc_fffc7e85 ; jne 0xfffc7e85
+
+loc_fffc7e6f:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffc7e85:
+add ebx, 0xc
+
+loc_fffc7e88:
+cmp ebx, edi
+jne short loc_fffc7e0d ; jne 0xfffc7e0d
+cmp word [ebp - 0x2c], 0x8c4f
+sete dl
+cmp word [ebp - 0x2c], 0x8c49
+sete al
+or dl, al
+mov byte [ebp - 0x2f], dl
+jne short loc_fffc7ecc ; jne 0xfffc7ecc
+cmp word [ebp - 0x2c], 0x8c41
+sete dl
+cmp word [ebp - 0x2c], 0x8c4b
+sete al
+or dl, al
+jne short loc_fffc7ecc ; jne 0xfffc7ecc
+mov eax, dword [ebp - 0x2c]
+add ax, 0x63bf
+cmp ax, 6
+ja loc_fffc7fe1 ; ja 0xfffc7fe1
+
+loc_fffc7ecc:
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+cmp eax, 3
+ja short loc_fffc7ee6 ; ja 0xfffc7ee6
+movzx edi, byte [eax + ref_fffcc364] ; movzx edi, byte [eax - 0x33c9c]
+mov ebx, dword [eax*4 + ref_fffcc368] ; mov ebx, dword [eax*4 - 0x33c98]
+jmp short loc_fffc7eea ; jmp 0xfffc7eea
+
+loc_fffc7ee6:
+xor ebx, ebx
+xor edi, edi
+
+loc_fffc7eea:
+mov word [ebp - 0x2a], 0
+jmp short loc_fffc7f0f ; jmp 0xfffc7f0f
+
+loc_fffc7ef2:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+add ebx, 0xc
+inc word [ebp - 0x2a]
+add esp, 0x10
+
+loc_fffc7f0f:
+cmp word [ebp - 0x2a], di
+jne short loc_fffc7ef2 ; jne 0xfffc7ef2
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+cmp eax, 6
+ja short loc_fffc7f2f ; ja 0xfffc7f2f
+movzx edx, byte [eax + ref_fffcc378] ; movzx edx, byte [eax - 0x33c88]
+mov ebx, dword [eax*4 + ref_fffcc380] ; mov ebx, dword [eax*4 - 0x33c80]
+jmp short loc_fffc7f33 ; jmp 0xfffc7f33
+
+loc_fffc7f2f:
+xor ebx, ebx
+xor edx, edx
+
+loc_fffc7f33:
+imul edx, edx, 0xc
+mov al, byte [ebp - 0x2d]
+and eax, 0x10
+mov byte [ebp - 0x2e], al
+lea edi, [ebx + edx]
+mov dl, byte [ebp - 0x2d]
+and edx, 0x20
+mov byte [ebp - 0x2a], dl
+jmp short loc_fffc7fc8 ; jmp 0xfffc7fc8
+
+loc_fffc7f4d:
+cmp dword [ebp - 0x34], 2
+jne short loc_fffc7f88 ; jne 0xfffc7f88
+mov eax, dword [ebx]
+and eax, 0xfe00
+cmp eax, 0x2000
+jne short loc_fffc7f63 ; jne 0xfffc7f63
+jmp short loc_fffc7f9c ; jmp 0xfffc7f9c
+
+loc_fffc7f63:
+cmp eax, 0x2200
+jne short loc_fffc7f6c ; jne 0xfffc7f6c
+jmp short loc_fffc7fa9 ; jmp 0xfffc7fa9
+
+loc_fffc7f6c:
+cmp eax, 0x2400
+jne short loc_fffc7f79 ; jne 0xfffc7f79
+test byte [ebp - 0x2d], 0x40
+jmp short loc_fffc7fad ; jmp 0xfffc7fad
+
+loc_fffc7f79:
+cmp eax, 0x2600
+jne short loc_fffc7faf ; jne 0xfffc7faf
+cmp byte [ebp - 0x2d], 0
+jns short loc_fffc7faf ; jns 0xfffc7faf
+jmp short loc_fffc7fc5 ; jmp 0xfffc7fc5
+
+loc_fffc7f88:
+cmp dword [ebp - 0x34], 1
+jne short loc_fffc7faf ; jne 0xfffc7faf
+mov eax, dword [ebx]
+and eax, 0xfe00
+cmp eax, 0x2000
+jne short loc_fffc7fa2 ; jne 0xfffc7fa2
+
+loc_fffc7f9c:
+cmp byte [ebp - 0x2e], 0
+jmp short loc_fffc7fad ; jmp 0xfffc7fad
+
+loc_fffc7fa2:
+cmp eax, 0x2200
+jne short loc_fffc7faf ; jne 0xfffc7faf
+
+loc_fffc7fa9:
+cmp byte [ebp - 0x2a], 0
+
+loc_fffc7fad:
+jne short loc_fffc7fc5 ; jne 0xfffc7fc5
+
+loc_fffc7faf:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffc7fc5:
+add ebx, 0xc
+
+loc_fffc7fc8:
+cmp ebx, edi
+jne short loc_fffc7f4d ; jne 0xfffc7f4d
+
+loc_fffc7fcc:
+mov eax, dword [ebp - 0x2c]
+and eax, 0xfffffffd
+cmp ax, 0x8c44
+jne loc_fffc80e6 ; jne 0xfffc80e6
+jmp near loc_fffc8137 ; jmp 0xfffc8137
+
+loc_fffc7fe1:
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+cmp eax, 3
+ja short loc_fffc7ffb ; ja 0xfffc7ffb
+movzx edi, byte [eax + ref_fffcc39c] ; movzx edi, byte [eax - 0x33c64]
+mov ebx, dword [eax*4 + ref_fffcc3a0] ; mov ebx, dword [eax*4 - 0x33c60]
+jmp short loc_fffc7fff ; jmp 0xfffc7fff
+
+loc_fffc7ffb:
+xor ebx, ebx
+xor edi, edi
+
+loc_fffc7fff:
+mov word [ebp - 0x2a], 0
+jmp short loc_fffc8024 ; jmp 0xfffc8024
+
+loc_fffc8007:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+add ebx, 0xc
+inc word [ebp - 0x2a]
+add esp, 0x10
+
+loc_fffc8024:
+cmp word [ebp - 0x2a], di
+jne short loc_fffc8007 ; jne 0xfffc8007
+call fcn_fffc5dc1 ; call 0xfffc5dc1
+cmp eax, 6
+ja short loc_fffc8044 ; ja 0xfffc8044
+movzx edx, byte [eax + ref_fffcc3b0] ; movzx edx, byte [eax - 0x33c50]
+mov ebx, dword [eax*4 + ref_fffcc3b8] ; mov ebx, dword [eax*4 - 0x33c48]
+jmp short loc_fffc8048 ; jmp 0xfffc8048
+
+loc_fffc8044:
+xor ebx, ebx
+xor edx, edx
+
+loc_fffc8048:
+imul edx, edx, 0xc
+mov al, byte [ebp - 0x2d]
+and eax, 0x10
+mov byte [ebp - 0x2e], al
+lea edi, [ebx + edx]
+mov dl, byte [ebp - 0x2d]
+and edx, 0x20
+mov byte [ebp - 0x2a], dl
+jmp short loc_fffc80dd ; jmp 0xfffc80dd
+
+loc_fffc8062:
+cmp dword [ebp - 0x34], 2
+jne short loc_fffc809d ; jne 0xfffc809d
+mov eax, dword [ebx]
+and eax, 0xfe00
+cmp eax, 0x2000
+jne short loc_fffc8078 ; jne 0xfffc8078
+jmp short loc_fffc80b1 ; jmp 0xfffc80b1
+
+loc_fffc8078:
+cmp eax, 0x2200
+jne short loc_fffc8081 ; jne 0xfffc8081
+jmp short loc_fffc80be ; jmp 0xfffc80be
+
+loc_fffc8081:
+cmp eax, 0x2400
+jne short loc_fffc808e ; jne 0xfffc808e
+test byte [ebp - 0x2d], 0x40
+jmp short loc_fffc80c2 ; jmp 0xfffc80c2
+
+loc_fffc808e:
+cmp eax, 0x2600
+jne short loc_fffc80c4 ; jne 0xfffc80c4
+cmp byte [ebp - 0x2d], 0
+jns short loc_fffc80c4 ; jns 0xfffc80c4
+jmp short loc_fffc80da ; jmp 0xfffc80da
+
+loc_fffc809d:
+cmp dword [ebp - 0x34], 1
+jne short loc_fffc80c4 ; jne 0xfffc80c4
+mov eax, dword [ebx]
+and eax, 0xfe00
+cmp eax, 0x2000
+jne short loc_fffc80b7 ; jne 0xfffc80b7
+
+loc_fffc80b1:
+cmp byte [ebp - 0x2e], 0
+jmp short loc_fffc80c2 ; jmp 0xfffc80c2
+
+loc_fffc80b7:
+cmp eax, 0x2200
+jne short loc_fffc80c4 ; jne 0xfffc80c4
+
+loc_fffc80be:
+cmp byte [ebp - 0x2a], 0
+
+loc_fffc80c2:
+jne short loc_fffc80da ; jne 0xfffc80da
+
+loc_fffc80c4:
+sub esp, 0xc
+mov ecx, dword [ebx + 4]
+push dword [ebx + 8]
+mov eax, dword [ebp - 0x38]
+mov edx, dword [ebx]
+call fcn_fffc90fb ; call 0xfffc90fb
+add esp, 0x10
+
+loc_fffc80da:
+add ebx, 0xc
+
+loc_fffc80dd:
+cmp ebx, edi
+jne short loc_fffc8062 ; jne 0xfffc8062
+jmp near loc_fffc7fcc ; jmp 0xfffc7fcc
+
+loc_fffc80e6:
+cmp ax, 0x8c4c
+je short loc_fffc8137 ; je 0xfffc8137
+cmp word [ebp - 0x2c], 0x8c5c
+sete dl
+cmp word [ebp - 0x2c], 0x8c50
+sete al
+or dl, al
+jne short loc_fffc8137 ; jne 0xfffc8137
+mov eax, dword [ebp - 0x2c]
+and eax, 0xfffffff7
+cmp ax, 0x8c42
+je short loc_fffc8137 ; je 0xfffc8137
+cmp byte [ebp - 0x2f], 0
+jne short loc_fffc8137 ; jne 0xfffc8137
+cmp word [ebp - 0x2c], 0x8c41
+sete dl
+cmp word [ebp - 0x2c], 0x8c4b
+sete al
+or dl, al
+jne short loc_fffc8137 ; jne 0xfffc8137
+mov eax, dword [ebp - 0x2c]
+add ax, 0x63bf
+cmp ax, 6
+ja short loc_fffc8148 ; ja 0xfffc8148
+
+loc_fffc8137:
+mov eax, dword [esi + 0xfa098]
+or eax, 0x400000
+mov dword [esi + 0xfa098], eax
+
+loc_fffc8148:
+mov eax, dword [esi + 0xfa098]
+or eax, 0x80000
+mov dword [esi + 0xfa098], eax
+mov dword [ebp - 0x1c], 0xffffe27f
+mov eax, dword [esi + 0xfa098]
+and eax, 0xffffe27f
+or ah, 2
+mov dword [esi + 0xfa098], eax
+mov eax, dword [esi + 0xfa098]
+or eax, 0x100000
+mov dword [esi + 0xfa098], eax
+mov eax, dword [esi + 0xfa098]
+and eax, 0xffffff9f
+or eax, 0x20
+mov dword [esi + 0xfa098], eax
+mov eax, dword [esi + 0xfa098]
+or eax, 0x40000
+mov dword [esi + 0xfa098], eax
+cmp dword [ebp - 0x34], 1
+jne short loc_fffc81d0 ; jne 0xfffc81d0
+mov al, byte [esi + 0xfa092]
+or eax, 0xf
+mov byte [esi + 0xfa092], al
+mov edx, dword [ebp - 0x3c]
+mov al, byte [edx + 0xe0410]
+test al, 0x10
+jne loc_fffc8255 ; jne 0xfffc8255
+jmp short loc_fffc8246 ; jmp 0xfffc8246
+
+loc_fffc81d0:
+cmp dword [ebp - 0x34], 2
+jne loc_fffc8288 ; jne 0xfffc8288
+mov edx, dword [ebp - 0x3c]
+mov al, byte [edx + 0xe0410]
+test al, al
+js short loc_fffc81f6 ; js 0xfffc81f6
+mov al, byte [esi + 0xfa092]
+or eax, 1
+mov byte [esi + 0xfa092], al
+
+loc_fffc81f6:
+mov edx, dword [ebp - 0x3c]
+mov al, byte [edx + 0xe0410]
+test al, 0x40
+jne short loc_fffc8212 ; jne 0xfffc8212
+mov al, byte [esi + 0xfa092]
+or eax, 2
+mov byte [esi + 0xfa092], al
+
+loc_fffc8212:
+mov edx, dword [ebp - 0x3c]
+mov al, byte [edx + 0xe0410]
+test al, 0x20
+jne short loc_fffc822e ; jne 0xfffc822e
+mov al, byte [esi + 0xfa092]
+or eax, 4
+mov byte [esi + 0xfa092], al
+
+loc_fffc822e:
+mov edx, dword [ebp - 0x3c]
+mov al, byte [edx + 0xe0410]
+test al, 0x10
+jne short loc_fffc8288 ; jne 0xfffc8288
+mov al, byte [esi + 0xfa092]
+or eax, 8
+jmp short loc_fffc826b ; jmp 0xfffc826b
+
+loc_fffc8246:
+mov al, byte [esi + 0xfa092]
+or eax, 0x10
+mov byte [esi + 0xfa092], al
+
+loc_fffc8255:
+mov edx, dword [ebp - 0x3c]
+mov al, byte [edx + 0xe0410]
+test al, 0x20
+jne short loc_fffc8288 ; jne 0xfffc8288
+mov al, byte [esi + 0xfa092]
+or eax, 0x20
+
+loc_fffc826b:
+mov byte [esi + 0xfa092], al
+jmp short loc_fffc8288 ; jmp 0xfffc8288
+
+loc_fffc8273:
+dec al
+jne loc_fffc7d25 ; jne 0xfffc7d25
+jmp near loc_fffc7d10 ; jmp 0xfffc7d10
+
+loc_fffc8280:
+dec al
+jne loc_fffc7d33 ; jne 0xfffc7d33
+
+loc_fffc8288:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc8290:
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+push ebx
+mov ebx, 0xfffff
+mov edi, dword [ebp + 0x10]
+
+loc_fffc82a1:
+mov al, 0xa
+out 0x70, al
+in al, 0x71
+test al, al
+jns short loc_fffc82b0 ; jns 0xfffc82b0
+dec ebx
+jne short loc_fffc82a1 ; jne 0xfffc82a1
+jmp short loc_fffc82b4 ; jmp 0xfffc82b4
+
+loc_fffc82b0:
+test ebx, ebx
+jne short loc_fffc82da ; jne 0xfffc82da
+
+loc_fffc82b4:
+mov bl, 0xb
+mov al, bl
+out 0x70, al
+mov al, 0x82
+out 0x71, al
+mov al, 0xa
+out 0x70, al
+mov al, 0x26
+out 0x71, al
+mov al, 0xc
+out 0x70, al
+in al, 0x71
+mov al, 0xd
+out 0x70, al
+in al, 0x71
+mov al, bl
+out 0x70, al
+mov al, 2
+out 0x71, al
+
+loc_fffc82da:
+xor eax, eax
+out 0x70, al
+in al, 0x71
+mov byte [esi], al
+mov al, 2
+out 0x70, al
+in al, 0x71
+mov byte [edx], al
+mov al, 4
+out 0x70, al
+in al, 0x71
+mov byte [ecx], al
+mov al, 7
+out 0x70, al
+in al, 0x71
+mov ebx, dword [ebp + 8]
+mov byte [ebx], al
+mov al, 8
+out 0x70, al
+in al, 0x71
+mov ebx, dword [ebp + 0xc]
+mov byte [ebx], al
+mov al, 9
+out 0x70, al
+in al, 0x71
+movzx eax, al
+mov word [edi], ax
+mov al, byte [esi]
+shr al, 4
+mov bl, 0xa
+imul eax, ebx
+mov byte [ebp - 0xe], al
+mov al, byte [esi]
+and eax, 0xf
+mov byte [ebp - 0xd], al
+mov al, byte [ebp - 0xe]
+add al, byte [ebp - 0xd]
+mov byte [esi], al
+mov al, byte [edx]
+shr al, 4
+imul eax, ebx
+mov byte [ebp - 0xd], al
+mov al, byte [edx]
+and eax, 0xf
+mov esi, eax
+mov al, byte [ebp - 0xd]
+add eax, esi
+mov byte [edx], al
+mov dl, byte [ecx]
+mov al, dl
+and edx, 0xf
+shr al, 4
+imul eax, ebx
+add edx, eax
+mov eax, dword [ebp + 8]
+mov byte [ecx], dl
+mov dl, byte [eax]
+mov al, dl
+and edx, 0xf
+shr al, 4
+imul eax, ebx
+add eax, edx
+mov edx, dword [ebp + 8]
+mov byte [edx], al
+mov eax, dword [ebp + 0xc]
+mov dl, byte [eax]
+mov al, dl
+and edx, 0xf
+shr al, 4
+imul eax, ebx
+add eax, edx
+mov edx, dword [ebp + 0xc]
+mov byte [edx], al
+mov ax, word [edi]
+mov edx, eax
+shr ax, 4
+and edx, 0xf
+and eax, 0xf
+imul eax, eax, 0xa
+lea eax, [edx + eax + 0x7d0]
+mov word [edi], ax
+pop eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc83ab: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+xor ebx, ebx
+jmp short loc_fffc83b7 ; jmp 0xfffc83b7
+
+loc_fffc83b3: ; not directly referenced
+mov dword [eax + ebx*4], edx
+inc ebx
+
+loc_fffc83b7: ; not directly referenced
+cmp ebx, ecx
+jne short loc_fffc83b3 ; jne 0xfffc83b3
+pop ebx
+pop ebp
+ret
+
+fcn_fffc83be:
+push ebp
+mov ecx, edx
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov word [eax + 0xfee], dx
+mov eax, edx
+out 0x80, ax
+mov edi, 0x48
+mov esi, 0x49
+
+loc_fffc83dc:
+mov eax, edi
+out 0x74, al
+in al, 0x75
+movzx ebx, al
+mov eax, esi
+out 0x74, al
+in al, 0x75
+mov edx, eax
+shl edx, 8
+or edx, ebx
+cmp cx, dx
+je short loc_fffc83dc ; je 0xfffc83dc
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc83fc: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x3c]
+mov bl, byte [ebp + 0xc]
+mov byte [ebp - 0x32], bl
+mov bl, byte [ebp + 0x10]
+cmp dl, 6
+mov byte [ebp - 0x34], bl
+mov bl, byte [ebp + 0x18]
+mov dword [ebp - 0x1c], eax
+sete byte [ebp - 0x39]
+mov byte [ebp - 0x33], bl
+cmp dl, 3
+mov bl, byte [ebp + 0x1c]
+mov dword [ebp - 0x28], ecx
+mov byte [ebp - 0x31], bl
+mov cl, byte [ebp + 0x14]
+mov bl, byte [ebp + 0x20]
+setbe al
+or al, byte [ebp - 0x39]
+mov byte [ebp - 0x3a], bl
+mov esi, dword [ebp + 8]
+mov byte [ebp - 0x20], dl
+mov byte [ebp - 0x24], cl
+mov bl, 0x1f
+jne short loc_fffc8456 ; jne 0xfffc8456
+mov al, dl
+sub eax, 8
+cmp al, 3
+sbb ebx, ebx
+or ebx, 0x36
+
+loc_fffc8456: ; not directly referenced
+cmp byte [ebp - 0x20], 0x1f
+ja short loc_fffc8465 ; ja 0xfffc8465
+lea edi, [esi + esi - 1]
+mov ecx, dword [ebp - 0x28]
+jmp short loc_fffc848b ; jmp 0xfffc848b
+
+loc_fffc8465: ; not directly referenced
+lea edi, [esi + esi*2]
+mov ecx, 2
+lea eax, [edi - 5]
+imul eax, esi
+cdq
+idiv ecx
+test esi, esi
+mov ecx, dword [ebp - 0x28]
+mov edi, eax
+jne short loc_fffc848b ; jne 0xfffc848b
+lea eax, [ecx + ecx*4]
+mov si, 4
+cdq
+idiv esi
+mov ecx, eax
+
+loc_fffc848b: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+mov esi, 3
+imul eax, edi
+movzx ebx, bl
+cdq
+idiv esi
+cmp ecx, ebx
+jg short loc_fffc84a7 ; jg 0xfffc84a7
+neg ebx
+cmp ecx, ebx
+cmovge ebx, ecx
+
+loc_fffc84a7: ; not directly referenced
+cmp eax, 0xffffffffffffffe1
+mov edx, 0xffffffe1
+mov edi, 0x1f
+mov cl, byte [ebp - 0x24]
+movzx esi, byte [ebp - 0x33]
+cmovge edx, eax
+cmp edx, 0x1f
+mov al, 0
+cmovle edi, edx
+cmp byte [ebp - 0x24], 0xff
+cmovne eax, ecx
+mov ecx, dword [ebp - 0x1c]
+movzx edx, byte [ebp - 0x34]
+mov byte [ebp - 0x30], al
+imul eax, edx, 0x1347
+cmp byte [ebp - 0x20], 0x21
+mov dword [ebp - 0x24], esi
+mov dword [ebp - 0x2c], edx
+lea eax, [ecx + eax + 0x297c]
+mov dword [ebp - 0x38], eax
+mov esi, dword [eax + esi*4 + 0xf9]
+ja loc_fffc8bc5 ; ja 0xfffc8bc5
+movzx eax, byte [ebp - 0x20]
+jmp dword [eax*4 + ref_fffcc3d4] ; ujmp: jmp dword [eax*4 - 0x33c2c]
+
+loc_fffc8509: ; not directly referenced
+and ebx, 0x3f
+and esi, 0xffffffc0
+jmp near loc_fffc86c0 ; jmp 0xfffc86c0
+
+loc_fffc8514: ; not directly referenced
+and ebx, 0x3f
+and esi, 0xfffff03f
+shl ebx, 6
+jmp near loc_fffc86c0 ; jmp 0xfffc86c0
+
+loc_fffc8525: ; not directly referenced
+and ebx, 0x3f
+and esi, 0xfffc0fff
+shl ebx, 0xc
+jmp near loc_fffc86c0 ; jmp 0xfffc86c0
+
+loc_fffc8536: ; not directly referenced
+and ebx, 0x3f
+and esi, 0xff03ffff
+shl ebx, 0x12
+jmp near loc_fffc86c0 ; jmp 0xfffc86c0
+
+loc_fffc8547: ; not directly referenced
+and ebx, 0x7f
+and esi, 0x80ffffff
+shl ebx, 0x18
+jmp near loc_fffc86c0 ; jmp 0xfffc86c0
+
+loc_fffc8558: ; not directly referenced
+mov ecx, dword [ebp - 0x1c]
+mov edi, dword [ebp - 0x2c]
+shl edi, 0xa
+mov edx, dword [ebp - 0x38]
+add edi, 0x4028
+mov eax, edi
+add eax, dword [ecx + 0x103f]
+cmp ebx, 0
+mov esi, dword [eax]
+mov eax, dword [edx + 0x10d5]
+jle short loc_fffc8586 ; jle 0xfffc8586
+lea ebx, [ebx + ebx - 0x10]
+dec eax
+jmp short loc_fffc858d ; jmp 0xfffc858d
+
+loc_fffc8586: ; not directly referenced
+je short loc_fffc858d ; je 0xfffc858d
+lea ebx, [ebx + ebx + 0x10]
+inc eax
+
+loc_fffc858d: ; not directly referenced
+movzx ecx, byte [ebp - 0x30]
+mov edx, dword [ebp - 0x24]
+and eax, 0x3f
+and esi, 0xffc0ffff
+shl eax, 0x10
+or esi, eax
+lea eax, [ecx + ecx*8]
+lea eax, [edx + eax + 0x130]
+mov edx, dword [ebp - 0x38]
+movzx eax, word [edx + eax*2 + 0xd]
+add ebx, eax
+mov eax, 0x1ff
+cmp ebx, 0x1ff
+cmovle eax, ebx
+xor edx, edx
+test eax, eax
+push ebx
+cmovns edx, eax
+mov eax, dword [ebp - 0x1c]
+push edx
+mov edx, dword [ebp - 0x2c]
+push 0
+push dword [ebp - 0x24]
+call fcn_fffb0168 ; call 0xfffb0168
+mov eax, dword [ebp - 0x1c]
+add esp, 0x10
+add edi, dword [eax + 0x103f]
+mov dword [edi], esi
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc85f0: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+cmp dword [eax + 0x297c], 2
+jne short loc_fffc8627 ; jne 0xfffc8627
+cmp byte [ebp - 0x34], 0
+sete dl
+cmp byte [ebp - 0x32], 1
+sete al
+or dl, al
+je short loc_fffc8627 ; je 0xfffc8627
+push edx
+movzx eax, byte [ebp - 0x3a]
+push edx
+movzx ecx, byte [ebp - 0x31]
+xor edx, edx
+push eax
+mov eax, dword [ebp - 0x1c]
+push ebx
+call fcn_fffafeda ; call 0xfffafeda
+add esp, 0x10
+
+loc_fffc8627: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+cmp dword [eax + 0x3cc3], 2
+jne short loc_fffc8661 ; jne 0xfffc8661
+cmp byte [ebp - 0x34], 1
+sete dl
+cmp byte [ebp - 0x32], 1
+sete al
+or dl, al
+je short loc_fffc8661 ; je 0xfffc8661
+push eax
+movzx ecx, byte [ebp - 0x31]
+mov edx, 1
+push eax
+movzx eax, byte [ebp - 0x3a]
+push eax
+mov eax, dword [ebp - 0x1c]
+push ebx
+call fcn_fffafeda ; call 0xfffafeda
+add esp, 0x10
+
+loc_fffc8661: ; not directly referenced
+cmp byte [ebp - 0x20], 0x21
+sete dl
+cmp byte [ebp - 0x20], 0x11
+sete al
+or dl, al
+je loc_fffc8be7 ; je 0xfffc8be7
+mov ebx, dword [ebp - 0x24]
+mov eax, dword [ebp - 0x38]
+and edi, 0x3f
+shl edi, 0xc
+mov esi, dword [eax + ebx*4 + 0xf9]
+and esi, 0xfffc0fff
+jmp short loc_fffc86a6 ; jmp 0xfffc86a6
+
+loc_fffc8692: ; not directly referenced
+and ebx, 0x7f
+and esi, 0x80fff03f
+shl ebx, 0x18
+and edi, 0x3f
+shl edi, 6
+or esi, ebx
+
+loc_fffc86a6: ; not directly referenced
+or esi, edi
+jmp near loc_fffc8bcc ; jmp 0xfffc8bcc
+
+loc_fffc86ad: ; not directly referenced
+and ebx, 0x3f
+and esi, 0xff000fff
+mov eax, ebx
+shl eax, 0xc
+shl ebx, 0x12
+or esi, eax
+
+loc_fffc86c0: ; not directly referenced
+or esi, ebx
+jmp near loc_fffc8bcc ; jmp 0xfffc8bcc
+
+loc_fffc86c7: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+cmp byte [ebp - 0x32], 0
+movzx ebx, byte [ebp - 0x30]
+mov eax, dword [edx + 0x103f]
+je loc_fffc878f ; je 0xfffc878f
+imul esi, ebx, 0xd8
+lea eax, [eax + ebx*4 + 0x3630]
+mov ecx, dword [ebp - 0x28]
+add edx, 0x2974
+mov dword [eax], ecx
+mov dword [ebp - 0x44], 0
+mov dword [ebp - 0x2c], esi
+mov dword [ebp - 0x30], edx
+
+loc_fffc8703: ; not directly referenced
+sub esp, 0xc
+mov ecx, 1
+push 1
+mov edx, dword [ebp - 0x44]
+mov eax, dword [ebp - 0x1c]
+push 0
+push 0
+push dword [ebp + 0x24]
+push ebx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+jne short loc_fffc8776 ; jne 0xfffc8776
+
+loc_fffc8729: ; not directly referenced
+inc dword [ebp - 0x44]
+cmp dword [ebp - 0x44], 2
+jne short loc_fffc8703 ; jne 0xfffc8703
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc8737: ; not directly referenced
+movzx ecx, dl
+xor eax, eax
+imul ecx, ecx, 0x18
+mov dword [ebp - 0x20], ecx
+
+loc_fffc8742: ; not directly referenced
+lea ecx, [eax*4]
+mov edi, dword [ebp - 0x28]
+lea esi, [eax + eax*2]
+add esi, dword [ebp - 0x20]
+add esi, dword [ebp - 0x2c]
+add esi, dword [ebp - 0x30]
+sar edi, cl
+inc eax
+and edi, 0xf
+cmp eax, 8
+mov dword [ebp - 0x40], edi
+mov edi, dword [ebp - 0x24]
+mov cl, byte [ebp - 0x40]
+mov byte [esi + edi + 0x6a6], cl
+jne short loc_fffc8742 ; jne 0xfffc8742
+inc edx
+jmp short loc_fffc8782 ; jmp 0xfffc8782
+
+loc_fffc8776: ; not directly referenced
+imul eax, dword [ebp - 0x44], 0x1347
+xor edx, edx
+mov dword [ebp - 0x24], eax
+
+loc_fffc8782: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+cmp dl, byte [eax + 0x1755]
+jb short loc_fffc8737 ; jb 0xfffc8737
+jmp short loc_fffc8729 ; jmp 0xfffc8729
+
+loc_fffc878f: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+sub esp, 0xc
+shl edx, 7
+lea ecx, [ebx + edx + 0xc]
+mov edx, dword [ebp - 0x2c]
+shl edx, 6
+add edx, ecx
+mov ecx, dword [ebp - 0x28]
+lea eax, [eax + edx*4]
+mov edx, dword [ebp - 0x2c]
+mov dword [eax], ecx
+xor ecx, ecx
+push 1
+mov eax, dword [ebp - 0x1c]
+push 0
+push dword [ebp - 0x24]
+push dword [ebp + 0x24]
+push ebx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+je loc_fffc8be7 ; je 0xfffc8be7
+movzx eax, byte [ebp - 0x33]
+xor ecx, ecx
+imul eax, eax, 0x18
+imul ebx, ebx, 0xd8
+add ebx, eax
+xor eax, eax
+add ebx, dword [ebp - 0x38]
+
+loc_fffc87e7: ; not directly referenced
+mov edx, dword [ebp - 0x28]
+sar edx, cl
+add ecx, 4
+and edx, 0xf
+mov byte [ebx + eax + 0x69e], dl
+add eax, 3
+cmp ecx, 0x20
+jne short loc_fffc87e7 ; jne 0xfffc87e7
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc8806: ; not directly referenced
+mov ebx, dword [ebp - 0x1c]
+cmp byte [ebp - 0x32], 0
+mov eax, dword [ebx + 0x103f]
+movzx ebx, byte [ebp - 0x30]
+je loc_fffc88d7 ; je 0xfffc88d7
+imul esi, ebx, 0xd8
+mov edi, dword [ebp - 0x1c]
+lea eax, [eax + ebx*4 + 0x3610]
+mov ecx, dword [ebp - 0x28]
+add edi, 0x2974
+mov dword [eax], ecx
+mov dword [ebp - 0x44], 0
+mov dword [ebp - 0x2c], esi
+mov dword [ebp - 0x30], edi
+
+loc_fffc8845: ; not directly referenced
+sub esp, 0xc
+mov ecx, 1
+push 0
+mov edx, dword [ebp - 0x44]
+mov eax, dword [ebp - 0x1c]
+push 1
+push 0
+push dword [ebp + 0x24]
+push ebx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+jne short loc_fffc88be ; jne 0xfffc88be
+
+loc_fffc886b: ; not directly referenced
+inc dword [ebp - 0x44]
+cmp dword [ebp - 0x44], 2
+jne short loc_fffc8845 ; jne 0xfffc8845
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc8879: ; not directly referenced
+movzx ecx, dl
+xor eax, eax
+imul ecx, ecx, 0x18
+mov dword [ebp - 0x20], ecx
+
+loc_fffc8884: ; not directly referenced
+lea ecx, [eax*4]
+lea esi, [eax + eax*2]
+add esi, dword [ebp - 0x20]
+add esi, dword [ebp - 0x2c]
+add esi, dword [ebp - 0x30]
+inc eax
+mov dword [ebp - 0x38], esi
+mov esi, dword [ebp - 0x28]
+sar esi, cl
+mov edi, dword [ebp - 0x38]
+and esi, 0xf
+cmp eax, 8
+mov dword [ebp - 0x40], esi
+mov esi, dword [ebp - 0x24]
+mov cl, byte [ebp - 0x40]
+mov byte [edi + esi + 0x346], cl
+jne short loc_fffc8884 ; jne 0xfffc8884
+inc edx
+jmp short loc_fffc88ca ; jmp 0xfffc88ca
+
+loc_fffc88be: ; not directly referenced
+imul eax, dword [ebp - 0x44], 0x1347
+xor edx, edx
+mov dword [ebp - 0x24], eax
+
+loc_fffc88ca: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+cmp dl, byte [eax + 0x1755]
+jb short loc_fffc8879 ; jb 0xfffc8879
+jmp short loc_fffc886b ; jmp 0xfffc886b
+
+loc_fffc88d7: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+sub esp, 0xc
+shl edx, 7
+lea ecx, [ebx + edx + 4]
+mov edx, dword [ebp - 0x2c]
+shl edx, 6
+add edx, ecx
+mov ecx, dword [ebp - 0x28]
+lea eax, [eax + edx*4]
+mov edx, dword [ebp - 0x2c]
+mov dword [eax], ecx
+xor ecx, ecx
+push 0
+mov eax, dword [ebp - 0x1c]
+push 1
+push dword [ebp - 0x24]
+push dword [ebp + 0x24]
+push ebx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+je loc_fffc8be7 ; je 0xfffc8be7
+movzx eax, byte [ebp - 0x33]
+xor ecx, ecx
+imul eax, eax, 0x18
+imul ebx, ebx, 0xd8
+add ebx, eax
+xor eax, eax
+add ebx, dword [ebp - 0x38]
+
+loc_fffc892f: ; not directly referenced
+mov edx, dword [ebp - 0x28]
+sar edx, cl
+add ecx, 4
+and edx, 0xf
+mov byte [ebx + eax + 0x33e], dl
+add eax, 3
+cmp ecx, 0x20
+jne short loc_fffc892f ; jne 0xfffc892f
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc894e: ; not directly referenced
+mov ebx, dword [ebp - 0x1c]
+cmp byte [ebp - 0x32], 0
+mov eax, dword [ebx + 0x103f]
+je loc_fffc8a16 ; je 0xfffc8a16
+movzx esi, byte [ebp - 0x30]
+mov ecx, dword [ebp - 0x28]
+imul edi, esi, 0xd8
+mov dword [eax + 0x364c], ecx
+xor ebx, ebx
+mov dword [ebp - 0x40], esi
+mov dword [ebp - 0x2c], edi
+
+loc_fffc897c: ; not directly referenced
+sub esp, 0xc
+mov ecx, 1
+push 0
+mov edx, ebx
+mov eax, dword [ebp - 0x1c]
+push 1
+push 0
+push dword [ebp + 0x24]
+push dword [ebp - 0x40]
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+jne short loc_fffc89fe ; jne 0xfffc89fe
+
+loc_fffc89a3: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc897c ; jne 0xfffc897c
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc89ae: ; not directly referenced
+movzx edi, dl
+xor eax, eax
+imul edi, edi, 0x18
+mov dword [ebp - 0x20], edi
+
+loc_fffc89b9: ; not directly referenced
+lea ecx, [eax + eax*2]
+mov edi, dword [ebp - 0x2c]
+add ecx, dword [ebp - 0x20]
+lea esi, [eax*4]
+add edi, ecx
+mov ecx, dword [ebp - 0x1c]
+inc eax
+lea edi, [ecx + edi + 0x2974]
+mov ecx, esi
+mov dword [ebp - 0x38], edi
+mov edi, dword [ebp - 0x28]
+sar edi, cl
+mov esi, dword [ebp - 0x24]
+and edi, 0xf
+cmp eax, 8
+mov dword [ebp - 0x30], edi
+mov edi, dword [ebp - 0x38]
+mov cl, byte [ebp - 0x30]
+mov byte [edi + esi + 0xa06], cl
+jne short loc_fffc89b9 ; jne 0xfffc89b9
+inc edx
+jmp short loc_fffc8a09 ; jmp 0xfffc8a09
+
+loc_fffc89fe: ; not directly referenced
+imul eax, ebx, 0x1347
+xor edx, edx
+mov dword [ebp - 0x24], eax
+
+loc_fffc8a09: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+cmp dl, byte [eax + 0x1755]
+jb short loc_fffc89ae ; jb 0xfffc89ae
+jmp short loc_fffc89a3 ; jmp 0xfffc89a3
+
+loc_fffc8a16: ; not directly referenced
+mov ecx, dword [ebp - 0x24]
+mov edx, dword [ebp - 0x2c]
+shl ecx, 9
+sub esp, 0xc
+shl edx, 8
+movzx ebx, byte [ebp - 0x30]
+lea edx, [ecx + edx + 0x4c]
+add eax, edx
+mov ecx, dword [ebp - 0x28]
+mov edx, dword [ebp - 0x2c]
+mov dword [eax], ecx
+xor ecx, ecx
+push 0
+mov eax, dword [ebp - 0x1c]
+push 1
+push dword [ebp - 0x24]
+push dword [ebp + 0x24]
+push ebx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+je loc_fffc8be7 ; je 0xfffc8be7
+movzx eax, byte [ebp - 0x33]
+xor ecx, ecx
+imul eax, eax, 0x18
+imul ebx, ebx, 0xd8
+add ebx, eax
+xor eax, eax
+add ebx, dword [ebp - 0x38]
+
+loc_fffc8a6f: ; not directly referenced
+mov edx, dword [ebp - 0x28]
+sar edx, cl
+add ecx, 4
+and edx, 0xf
+mov byte [ebx + eax + 0x9fe], dl
+add eax, 3
+cmp ecx, 0x20
+jne short loc_fffc8a6f ; jne 0xfffc8a6f
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc8a8e: ; not directly referenced
+cmp byte [ebp - 0x20], 4
+sete dl
+cmp byte [ebp - 0x20], 1
+sete al
+or dl, al
+jne short loc_fffc8adf ; jne 0xfffc8adf
+cmp byte [ebp - 0x20], 0x20
+sete dl
+cmp byte [ebp - 0x20], 0x10
+sete al
+or dl, al
+jne short loc_fffc8adf ; jne 0xfffc8adf
+mov al, byte [ebp - 0x20]
+sub eax, 2
+cmp al, 1
+setbe al
+or al, byte [ebp - 0x39]
+jne short loc_fffc8ad9 ; jne 0xfffc8ad9
+cmp byte [ebp - 0x20], 0x21
+sete al
+cmp byte [ebp - 0x20], 0x11
+sete dl
+or eax, edx
+cmp al, 1
+sbb eax, eax
+inc eax
+jmp short loc_fffc8adb ; jmp 0xfffc8adb
+
+loc_fffc8ad9: ; not directly referenced
+mov al, 1
+
+loc_fffc8adb: ; not directly referenced
+xor edx, edx
+jmp short loc_fffc8ae6 ; jmp 0xfffc8ae6
+
+loc_fffc8adf: ; not directly referenced
+xor eax, eax
+mov edx, 1
+
+loc_fffc8ae6: ; not directly referenced
+mov ebx, dword [ebp - 0x1c]
+cmp byte [ebp - 0x32], 0
+mov ecx, dword [ebx + 0x103f]
+je loc_fffc8b79 ; je 0xfffc8b79
+movzx eax, al
+mov dword [ecx + 0x3670], esi
+xor ebx, ebx
+mov dword [ebp - 0x20], eax
+mov dword [ebp - 0x28], edx
+
+loc_fffc8b0a: ; not directly referenced
+imul eax, ebx, 0x1347
+mov edi, dword [ebp - 0x1c]
+cmp dword [edi + eax + 0x297c], 2
+je short loc_fffc8b28 ; je 0xfffc8b28
+
+loc_fffc8b1d: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc8b0a ; jne 0xfffc8b0a
+jmp near loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc8b28: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+sub esp, 0xc
+push dword [ebp - 0x20]
+push dword [ebp - 0x28]
+mov ecx, 1
+push 0
+push dword [ebp + 0x24]
+lea edi, [edx + eax + 0x297c]
+mov edx, ebx
+movzx eax, byte [ebp - 0x30]
+push eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+xor eax, eax
+jmp short loc_fffc8b6c ; jmp 0xfffc8b6c
+
+loc_fffc8b5b: ; not directly referenced
+cmp byte [ebp - 0x31], 0
+je short loc_fffc8b6b ; je 0xfffc8b6b
+movzx edx, al
+mov dword [edi + edx*4 + 0xf9], esi
+
+loc_fffc8b6b: ; not directly referenced
+inc eax
+
+loc_fffc8b6c: ; not directly referenced
+mov ecx, dword [ebp - 0x1c]
+cmp al, byte [ecx + 0x1755]
+jb short loc_fffc8b5b ; jb 0xfffc8b5b
+jmp short loc_fffc8b1d ; jmp 0xfffc8b1d
+
+loc_fffc8b79: ; not directly referenced
+mov edi, dword [ebp - 0x2c]
+mov ebx, dword [ebp - 0x24]
+shl edi, 8
+sub esp, 0xc
+shl ebx, 9
+movzx eax, al
+lea ebx, [edi + ebx + 0x70]
+add ecx, ebx
+movzx ebx, byte [ebp - 0x30]
+mov dword [ecx], esi
+xor ecx, ecx
+push eax
+mov eax, dword [ebp - 0x1c]
+push edx
+push dword [ebp - 0x24]
+push dword [ebp + 0x24]
+mov edx, dword [ebp - 0x2c]
+push ebx
+call fcn_fffb00a3 ; call 0xfffb00a3
+add esp, 0x20
+cmp byte [ebp - 0x31], 0
+je short loc_fffc8be7 ; je 0xfffc8be7
+mov ebx, dword [ebp - 0x24]
+mov edi, dword [ebp - 0x38]
+mov dword [edi + ebx*4 + 0xf9], esi
+jmp short loc_fffc8be7 ; jmp 0xfffc8be7
+
+loc_fffc8bc5: ; not directly referenced
+mov eax, 2
+jmp short loc_fffc8be9 ; jmp 0xfffc8be9
+
+loc_fffc8bcc: ; not directly referenced
+cmp byte [ebp - 0x20], 0
+sete dl
+cmp byte [ebp - 0x20], 0xb
+sete al
+or dl, al
+jne loc_fffc8adf ; jne 0xfffc8adf
+jmp near loc_fffc8a8e ; jmp 0xfffc8a8e
+
+loc_fffc8be7: ; not directly referenced
+xor eax, eax
+
+loc_fffc8be9: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc8bf1: ; not directly referenced
+push ebp
+cmp ecx, edx
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+ja short loc_fffc8c09 ; ja 0xfffc8c09
+inc edi
+inc dword [ebx + 0xc]
+imul eax, edi, 0xa
+jmp short loc_fffc8c70 ; jmp 0xfffc8c70
+
+loc_fffc8c09: ; not directly referenced
+mov esi, ecx
+sub esi, edx
+cmp ecx, 6
+ja short loc_fffc8c37 ; ja 0xfffc8c37
+imul edi, eax, 0xa
+mov eax, 7
+sub eax, ecx
+xor edx, edx
+imul eax, eax, 0xa
+inc dword [ebx + 8]
+div esi
+mov ecx, 0xa
+cmp eax, 0xa
+cmovbe ecx, eax
+lea eax, [edi + ecx + 0x14]
+jmp short loc_fffc8c70 ; jmp 0xfffc8c70
+
+loc_fffc8c37: ; not directly referenced
+cmp edx, 7
+ja short loc_fffc8c45 ; ja 0xfffc8c45
+inc dword [ebx + 4]
+test esi, esi
+jne short loc_fffc8c49 ; jne 0xfffc8c49
+jmp short loc_fffc8c5a ; jmp 0xfffc8c5a
+
+loc_fffc8c45: ; not directly referenced
+inc dword [ebx]
+jmp short loc_fffc8c5a ; jmp 0xfffc8c5a
+
+loc_fffc8c49: ; not directly referenced
+mov eax, 7
+inc edi
+sub eax, edx
+xor edx, edx
+imul eax, eax, 0xa
+div esi
+jmp short loc_fffc8c6b ; jmp 0xfffc8c6b
+
+loc_fffc8c5a: ; not directly referenced
+cmp esi, edx
+cmovb esi, edx
+xor eax, eax
+test esi, esi
+je short loc_fffc8c70 ; je 0xfffc8c70
+mov al, 0x46
+xor edx, edx
+div esi
+
+loc_fffc8c6b: ; not directly referenced
+imul edi, edi, 0xa
+add eax, edi
+
+loc_fffc8c70: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc8c75:
+db 0x00
+db 0x00
+db 0x00
+
+fcn_fffc8c78: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+lea esp, [esp - 0x1c]
+mov edi, dword [0xf00b0044]
+mov eax, dword [0xf00b0040]
+mov esi, dword [ebp + 8]
+mov edx, eax
+shr edx, 0x10
+and edx, 0xf
+cmp dl, 2
+jne short loc_fffc8ca1 ; jne 0xfffc8ca1
+
+loc_fffc8c9d: ; not directly referenced
+xor eax, eax
+jmp short loc_fffc8cfc ; jmp 0xfffc8cfc
+
+loc_fffc8ca1: ; not directly referenced
+movzx eax, ah
+test al, 0xf0
+jne short loc_fffc8c9d ; jne 0xfffc8c9d
+sub esp, 0xc
+lea edx, [ebp - 0x1c]
+mov eax, dword [esi]
+xor ebx, ebx
+push edx
+push 0
+push 0
+push ref_fffcd4b4 ; push 0xfffcd4b4
+push esi
+call dword [eax + 0x20] ; ucall
+add esp, 0x20
+jmp short loc_fffc8cdd ; jmp 0xfffc8cdd
+
+loc_fffc8cc5: ; not directly referenced
+push edx
+mov eax, dword [ebp - 0x1c]
+inc ebx
+push 0x3e8
+push eax
+push esi
+call dword [eax + 4] ; ucall
+mov edi, dword [0xf00b0044]
+add esp, 0x10
+
+loc_fffc8cdd: ; not directly referenced
+test edi, 0x10000
+jne short loc_fffc8cef ; jne 0xfffc8cef
+cmp ebx, 0x1388
+jne short loc_fffc8cc5 ; jne 0xfffc8cc5
+jmp short loc_fffc8c9d ; jmp 0xfffc8c9d
+
+loc_fffc8cef: ; not directly referenced
+cmp ebx, 0x1388
+je short loc_fffc8c9d ; je 0xfffc8c9d
+mov eax, edi
+and eax, 0x3f
+
+loc_fffc8cfc: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc8d04:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, edx
+lea esp, [esp - 0x1c]
+test ax, ax
+mov word [edx], 0
+je loc_fffc8dc3 ; je 0xfffc8dc3
+test cl, cl
+jne short loc_fffc8d85 ; jne 0xfffc8d85
+test ax, ax
+jns short loc_fffc8d2f ; jns 0xfffc8d2f
+neg eax
+mov cl, 1
+and ax, 0x7fff
+
+loc_fffc8d2f:
+cmp ax, 0x1f4
+mov esi, 0x1f4
+push 0
+cmovle esi, eax
+mov byte [ebp - 0x20], cl
+movsx esi, si
+shl esi, 0xa
+push 0x3e8
+mov edi, esi
+sar edi, 0x1f
+push edi
+push esi
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+mov dword [ebp - 0x1c], eax
+push 0
+push 0x3e8
+push edi
+push esi
+call fcn_fffc9300 ; call 0xfffc9300
+add esp, 0x10
+cmp eax, 0x1f3
+mov cl, byte [ebp - 0x20]
+mov eax, dword [ebp - 0x1c]
+ja short loc_fffc8d7d ; ja 0xfffc8d7d
+jmp short loc_fffc8d7e ; jmp 0xfffc8d7e
+
+loc_fffc8d7d:
+inc eax
+
+loc_fffc8d7e:
+mov word [ebx], ax
+test cl, cl
+jmp short loc_fffc8dbe ; jmp 0xfffc8dbe
+
+loc_fffc8d85:
+dec cl
+jne short loc_fffc8dc3 ; jne 0xfffc8dc3
+xor edx, edx
+test ah, 4
+je short loc_fffc8d98 ; je 0xfffc8d98
+neg eax
+mov dl, 1
+and ax, 0x3ff
+
+loc_fffc8d98:
+cwde
+imul eax, eax, 0x3e8
+mov edi, eax
+mov esi, eax
+sar edi, 0x1f
+and eax, 0x3ff
+shrd esi, edi, 0xa
+cmp eax, 0x1f3
+ja short loc_fffc8db8 ; ja 0xfffc8db8
+jmp short loc_fffc8db9 ; jmp 0xfffc8db9
+
+loc_fffc8db8:
+inc esi
+
+loc_fffc8db9:
+mov word [ebx], si
+test dl, dl
+
+loc_fffc8dbe:
+je short loc_fffc8dc3 ; je 0xfffc8dc3
+neg word [ebx]
+
+loc_fffc8dc3:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc8dcb:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, edx
+lea esp, [esp - 0x1c]
+test ax, ax
+jne short loc_fffc8de6 ; jne 0xfffc8de6
+mov word [edx], 0
+jmp near loc_fffc8e67 ; jmp 0xfffc8e67
+
+loc_fffc8de6:
+test cl, cl
+jne short loc_fffc8e38 ; jne 0xfffc8e38
+cmp ax, 0xfff
+mov esi, 0xfff
+push 0
+cmovbe esi, eax
+movzx esi, si
+shl esi, 0xa
+push 0x3e8
+mov edi, esi
+sar edi, 0x1f
+push edi
+push esi
+call fcn_fffc91d0 ; call 0xfffc91d0
+add esp, 0x10
+mov word [ebx], ax
+push 0
+mov word [ebp - 0x1a], ax
+push 0x3e8
+push edi
+push esi
+call fcn_fffc9300 ; call 0xfffc9300
+add esp, 0x10
+cmp eax, 0x1f3
+jbe short loc_fffc8e67 ; jbe 0xfffc8e67
+mov ax, word [ebp - 0x1a]
+inc eax
+jmp short loc_fffc8e64 ; jmp 0xfffc8e64
+
+loc_fffc8e38:
+dec cl
+jne short loc_fffc8e67 ; jne 0xfffc8e67
+movzx eax, ax
+imul eax, eax, 0x3e8
+mov edi, eax
+mov esi, eax
+sar edi, 0x1f
+and eax, 0x3ff
+shrd esi, edi, 0xa
+cmp eax, 0x1f3
+mov edx, esi
+mov word [ebx], si
+jbe short loc_fffc8e67 ; jbe 0xfffc8e67
+lea eax, [edx + 1]
+
+loc_fffc8e64:
+mov word [ebx], ax
+
+loc_fffc8e67:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc8e6f:
+push ebp
+mov ecx, 0x150
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+rdmsr
+push ebx
+xor esi, esi
+lea esp, [esp - 0x2c]
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x2c], edx
+
+loc_fffc8e8a:
+cmp edi, 1
+je short loc_fffc8e98 ; je 0xfffc8e98
+cmp edi, 2
+mov bl, 1
+jne short loc_fffc8ed7 ; jne 0xfffc8ed7
+jmp short loc_fffc8eb3 ; jmp 0xfffc8eb3
+
+loc_fffc8e98:
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov eax, dword [eax + 0x48]
+and eax, 0xfffffffe
+mov ebx, dword [eax + 0x5da4]
+shr ebx, 0x1f
+jmp short loc_fffc8ed7 ; jmp 0xfffc8ed7
+
+loc_fffc8eb3:
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x2c]
+mov dword [ebp - 0x28], eax
+mov dword [ebp - 0x24], edx
+mov ecx, 8
+lea edx, [ebp - 0x28]
+lea eax, [ebp - 0x20]
+call fcn_fffa115e ; call 0xfffa115e
+mov bl, byte [ebp - 0x19]
+shr bl, 7
+jmp short loc_fffc8ed7 ; jmp 0xfffc8ed7
+
+loc_fffc8ed7:
+mov eax, 1
+inc esi
+call fcn_fffc5e98 ; call 0xfffc5e98
+and ebx, 1
+cmp si, 0x3e7
+setbe al
+test bl, al
+jne short loc_fffc8e8a ; jne 0xfffc8e8a
+cmp si, 0x3e8
+sete al
+lea esp, [esp + 0x2c]
+and eax, ebx
+shl eax, 0x1f
+sar eax, 0x1f
+pop ebx
+and eax, 0x80000012
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc8f0f:
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, ecx
+push ebx
+lea esp, [esp - 0x3c]
+mov dword [ebp - 0x44], edx
+call fcn_fffc8e6f ; call 0xfffc8e6f
+test eax, eax
+mov ebx, eax
+mov edx, dword [ebp - 0x44]
+js loc_fffc906c ; js 0xfffc906c
+cmp edi, 1
+je short loc_fffc8f42 ; je 0xfffc8f42
+cmp edi, 2
+jne loc_fffc9067 ; jne 0xfffc9067
+jmp short loc_fffc8fbc ; jmp 0xfffc8fbc
+
+loc_fffc8f42:
+mov dword [ebp - 0x20], edx
+or byte [ebp - 0x1d], 0x80
+mov eax, dword [0xf0000060]
+and eax, 0xfc000000
+mov edi, dword [eax + 0x48]
+mov eax, dword [ebp - 0x20]
+and edi, 0xfffffffe
+mov dword [edi + 0x5da4], eax
+mov eax, 1
+call fcn_fffc8e6f ; call 0xfffc8e6f
+mov eax, dword [edi + 0x5da4]
+mov dword [ebp - 0x20], eax
+mov eax, dword [edi + 0x5da0]
+mov dword [ebp - 0x1c], eax
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov edx, dword [edi + 0x5da4]
+mov eax, dword [ebp - 0x20]
+cmp eax, edx
+mov ecx, dword [edi + 0x5da0]
+je short loc_fffc8faa ; je 0xfffc8faa
+cmp dword [ebp - 0x1c], ecx
+je short loc_fffc8faa ; je 0xfffc8faa
+
+loc_fffc8fa0:
+mov ebx, 0x80000002
+jmp near loc_fffc906c ; jmp 0xfffc906c
+
+loc_fffc8faa:
+mov edx, dword [ebp + 8]
+mov ecx, 4
+mov dword [edx], eax
+lea edx, [ebp - 0x1c]
+jmp near loc_fffc905e ; jmp 0xfffc905e
+
+loc_fffc8fbc:
+mov eax, dword [esi]
+mov dword [ebp - 0x24], edx
+mov dword [ebp - 0x28], eax
+lea edx, [ebp - 0x28]
+mov ecx, 8
+lea eax, [ebp - 0x30]
+or byte [ebp - 0x21], 0x80
+call fcn_fffa115e ; call 0xfffa115e
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x2c]
+mov ecx, 0x150
+wrmsr
+mov eax, 2
+mov dword [ebp - 0x44], ecx
+call fcn_fffc8e6f ; call 0xfffc8e6f
+mov ecx, dword [ebp - 0x44]
+rdmsr
+mov ecx, 8
+mov dword [ebp - 0x40], eax
+mov dword [ebp - 0x3c], edx
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x2c], edx
+lea eax, [ebp - 0x28]
+lea edx, [ebp - 0x30]
+call fcn_fffa115e ; call 0xfffa115e
+mov eax, 0xa
+call fcn_fffc5e98 ; call 0xfffc5e98
+mov eax, dword [ebp - 0x40]
+mov edx, dword [ebp - 0x3c]
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x2c], edx
+mov ecx, 8
+lea edx, [ebp - 0x30]
+lea eax, [ebp - 0x20]
+call fcn_fffa115e ; call 0xfffa115e
+mov edx, dword [ebp - 0x1c]
+cmp dword [ebp - 0x24], edx
+je short loc_fffc904d ; je 0xfffc904d
+mov eax, dword [ebp - 0x20]
+cmp dword [ebp - 0x28], eax
+jne loc_fffc8fa0 ; jne 0xfffc8fa0
+
+loc_fffc904d:
+mov edx, dword [ebp + 8]
+mov ecx, 4
+movzx eax, byte [ebp - 0x24]
+mov dword [edx], eax
+lea edx, [ebp - 0x28]
+
+loc_fffc905e:
+mov eax, esi
+call fcn_fffa115e ; call 0xfffa115e
+jmp short loc_fffc906c ; jmp 0xfffc906c
+
+loc_fffc9067:
+mov ebx, 0x80000003
+
+loc_fffc906c:
+lea esp, [esp + 0x3c]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc9077:
+push ebp
+xor ecx, ecx
+mov eax, 1
+mov ebp, esp
+push ebx
+cpuid
+and eax, 0xf
+pop ebx
+pop ebp
+ret
+
+fcn_fffc908a:
+push ebp
+xor ecx, ecx
+mov eax, 1
+mov ebp, esp
+push ebx
+cpuid
+and eax, 0xfff0ff0
+pop ebx
+pop ebp
+ret
+
+fcn_fffc909f:
+push ebp
+mov ebp, esp
+push esi
+mov esi, eax
+push ebx
+
+loc_fffc90a6:
+mov al, byte [esi + 0x2338]
+lea ebx, [esi + 0x2338]
+test al, 1
+jne short loc_fffc90a6 ; jne 0xfffc90a6
+mov dword [esi + 0x2330], edx
+mov ax, word [ebx]
+and ax, 0xff
+or ah, 6
+mov word [ebx], ax
+mov word [esi + 0x233a], 0xf000
+mov ax, word [ebx]
+or eax, 1
+mov word [ebx], ax
+
+loc_fffc90db:
+mov al, byte [ebx]
+test al, 1
+jne short loc_fffc90db ; jne 0xfffc90db
+mov dl, byte [ebx]
+mov eax, 0x80000007
+and dl, 6
+jne short loc_fffc90f7 ; jne 0xfffc90f7
+mov eax, dword [esi + 0x2334]
+mov dword [ecx], eax
+xor eax, eax
+
+loc_fffc90f7:
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc90fb:
+push ebp
+mov ebp, esp
+push esi
+mov esi, ecx
+push ebx
+lea ecx, [ebp - 0xc]
+mov ebx, eax
+lea esp, [esp - 0x10]
+call fcn_fffc909f ; call 0xfffc909f
+test eax, eax
+js short loc_fffc9177 ; js 0xfffc9177
+mov ax, word [ebx + 0x2338]
+mov ecx, dword [ebp - 0xc]
+and ax, 0xff
+and ecx, esi
+or ah, 7
+or ecx, dword [ebp + 8]
+mov word [ebx + 0x2338], ax
+mov dword [ebp - 0xc], ecx
+lea edx, [ebx + 0x2338]
+mov eax, dword [ebp - 0xc]
+mov dword [ebx + 0x2334], eax
+mov word [ebx + 0x233a], 0xf000
+mov ax, word [ebx + 0x2338]
+or eax, 1
+mov word [ebx + 0x2338], ax
+
+loc_fffc915d:
+mov al, byte [edx]
+test al, 1
+jne short loc_fffc915d ; jne 0xfffc915d
+mov al, byte [ebx + 0x2338]
+and eax, 6
+cmp al, 1
+sbb eax, eax
+not eax
+and eax, 0x80000007
+
+loc_fffc9177:
+lea esp, [esp + 0x10]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc917f:
+push ebp
+mov ebp, esp
+push esi
+mov esi, edx
+push ebx
+mov ebx, dword [0xf0000060]
+and ebx, 0xfc000000
+mov ecx, dword [ebx + 0xfb020]
+and ecx, 0xffe0
+lea edx, [eax + ecx]
+mov eax, esi
+out dx, al
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc91a8: ; not directly referenced
+push ebp
+mov ecx, dword [0xf0000060]
+and ecx, 0xfc000000
+mov ebp, esp
+mov edx, dword [ecx + 0xfb020]
+and edx, 0xffe0
+add edx, eax
+in al, dx
+pop ebp
+ret
+
+loc_fffc91c8:
+dd 0x00000000
+dd 0x00000000
+
+fcn_fffc91d0:
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea esp, [esp - 0x20]
+mov eax, dword [ebp + 0x14]
+mov edi, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+test eax, eax
+mov dword [ebp - 0x10], edi
+mov esi, dword [ebp + 0xc]
+mov dword [ebp - 0xc], ecx
+jne short loc_fffc9218 ; jne 0xfffc9218
+cmp ecx, esi
+ja short loc_fffc9258 ; ja 0xfffc9258
+test ecx, ecx
+jne short loc_fffc9202 ; jne 0xfffc9202
+mov eax, 1
+xor edx, edx
+div ecx
+mov ecx, eax
+
+loc_fffc9202:
+mov eax, esi
+xor edx, edx
+div ecx
+mov esi, eax
+mov eax, edi
+div ecx
+mov edx, esi
+
+loc_fffc9210:
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9218:
+cmp eax, esi
+ja short loc_fffc9248 ; ja 0xfffc9248
+bsr ecx, eax
+xor ecx, 0x1f
+mov dword [ebp - 0x20], ecx
+jne short loc_fffc9268 ; jne 0xfffc9268
+mov edi, dword [ebp - 0x10]
+xor edx, edx
+cmp dword [ebp - 0xc], edi
+jbe loc_fffc92d8 ; jbe 0xfffc92d8
+cmp eax, esi
+jb loc_fffc92d8 ; jb 0xfffc92d8
+xor eax, eax
+jmp short loc_fffc9210 ; jmp 0xfffc9210
+
+loc_fffc9241:
+db 0x8d
+db 0xb4
+db 0x26
+dd 0x00000000
+
+loc_fffc9248:
+xor edx, edx
+xor eax, eax
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9254:
+dd 0x0026748d
+
+loc_fffc9258:
+mov eax, edi
+mov edx, esi
+div ecx
+xor edx, edx
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9268:
+movzx ecx, byte [ebp - 0x20]
+mov edi, dword [ebp - 0xc]
+mov edx, dword [ebp - 0xc]
+shl eax, cl
+mov dword [ebp - 0x18], eax
+mov eax, 0x20
+sub eax, dword [ebp - 0x20]
+mov ecx, eax
+shr edi, cl
+or edi, dword [ebp - 0x18]
+movzx ecx, byte [ebp - 0x20]
+shl edx, cl
+mov ecx, eax
+mov dword [ebp - 0x18], edx
+mov edx, esi
+shr edx, cl
+movzx ecx, byte [ebp - 0x20]
+mov dword [ebp - 0x1c], edx
+mov edx, dword [ebp - 0x10]
+shl esi, cl
+mov ecx, eax
+shr edx, cl
+mov eax, edx
+or eax, esi
+mov esi, dword [ebp - 0x1c]
+mov edx, esi
+div edi
+mov esi, edx
+mov dword [ebp - 0xc], eax
+mul dword [ebp - 0x18]
+cmp esi, edx
+jb short loc_fffc92e8 ; jb 0xfffc92e8
+movzx ecx, byte [ebp - 0x20]
+mov edi, dword [ebp - 0x10]
+shl edi, cl
+cmp edi, eax
+jae short loc_fffc92cd ; jae 0xfffc92cd
+cmp esi, edx
+je short loc_fffc92e8 ; je 0xfffc92e8
+
+loc_fffc92cd:
+mov eax, dword [ebp - 0xc]
+xor edx, edx
+jmp near loc_fffc9210 ; jmp 0xfffc9210
+
+loc_fffc92d7:
+db 0x90
+
+loc_fffc92d8:
+mov eax, 1
+jmp near loc_fffc9210 ; jmp 0xfffc9210
+
+loc_fffc92e2:
+db 0x8d
+db 0xb6
+dd 0x00000000
+
+loc_fffc92e8:
+mov eax, dword [ebp - 0xc]
+xor edx, edx
+sub eax, 1
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc92f8:
+dd 0x00000000
+dd 0x00000000
+
+fcn_fffc9300:
+push ebp
+mov ebp, esp
+push edi
+push esi
+lea esp, [esp - 0x20]
+mov edx, dword [ebp + 0x14]
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+mov esi, dword [ebp + 0xc]
+test edx, edx
+mov dword [ebp - 0x18], eax
+mov dword [ebp - 0xc], ecx
+mov edi, eax
+mov dword [ebp - 0x10], esi
+jne short loc_fffc9338 ; jne 0xfffc9338
+cmp ecx, esi
+jbe short loc_fffc9368 ; jbe 0xfffc9368
+mov edx, esi
+div ecx
+
+loc_fffc932c:
+mov eax, edx
+xor edx, edx
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9338:
+cmp edx, esi
+ja short loc_fffc9388 ; ja 0xfffc9388
+bsr eax, edx
+xor eax, 0x1f
+mov dword [ebp - 0x14], eax
+jne short loc_fffc9398 ; jne 0xfffc9398
+cmp ecx, edi
+ja loc_fffc9438 ; ja 0xfffc9438
+
+loc_fffc934f:
+sub edi, ecx
+sbb esi, edx
+mov dword [ebp - 0x10], esi
+
+loc_fffc9356:
+mov eax, edi
+mov edx, dword [ebp - 0x10]
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9363:
+db 0x90
+dd 0x0026748d
+
+loc_fffc9368:
+test ecx, ecx
+jne short loc_fffc9377 ; jne 0xfffc9377
+mov eax, 1
+xor edx, edx
+div ecx
+mov ecx, eax
+
+loc_fffc9377:
+mov eax, esi
+xor edx, edx
+div ecx
+mov eax, edi
+div ecx
+jmp short loc_fffc932c ; jmp 0xfffc932c
+
+loc_fffc9383:
+db 0x90
+dd 0x0026748d
+
+loc_fffc9388:
+mov edx, esi
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9392:
+db 0x8d
+db 0xb6
+dd 0x00000000
+
+loc_fffc9398:
+movzx ecx, byte [ebp - 0x14]
+mov edi, 0x20
+sub edi, dword [ebp - 0x14]
+mov eax, dword [ebp - 0xc]
+shl edx, cl
+mov ecx, edi
+shr eax, cl
+movzx ecx, byte [ebp - 0x14]
+or eax, edx
+mov dword [ebp - 0x10], eax
+mov eax, dword [ebp - 0xc]
+shl eax, cl
+mov ecx, edi
+mov edx, esi
+mov dword [ebp - 0x1c], eax
+shr edx, cl
+mov eax, dword [ebp - 0x18]
+movzx ecx, byte [ebp - 0x14]
+shl esi, cl
+mov ecx, edi
+shr eax, cl
+movzx ecx, byte [ebp - 0x14]
+or eax, esi
+mov esi, dword [ebp - 0x18]
+shl esi, cl
+div dword [ebp - 0x10]
+mov dword [ebp - 0xc], edx
+mov dword [ebp - 0x18], esi
+mul dword [ebp - 0x1c]
+cmp dword [ebp - 0xc], edx
+mov esi, eax
+mov ecx, edx
+jb short loc_fffc9425 ; jb 0xfffc9425
+cmp dword [ebp - 0x18], eax
+jb short loc_fffc9420 ; jb 0xfffc9420
+
+loc_fffc93f6:
+mov edx, dword [ebp - 0xc]
+mov eax, dword [ebp - 0x18]
+sub eax, esi
+sbb edx, ecx
+movzx ecx, byte [ebp - 0x14]
+mov esi, edx
+shr eax, cl
+mov ecx, edi
+shl esi, cl
+movzx ecx, byte [ebp - 0x14]
+or eax, esi
+shr edx, cl
+lea esp, [esp + 0x20]
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc941c:
+dd 0x0026748d
+
+loc_fffc9420:
+cmp dword [ebp - 0xc], edx
+jne short loc_fffc93f6 ; jne 0xfffc93f6
+
+loc_fffc9425:
+mov ecx, edx
+mov esi, eax
+sub esi, dword [ebp - 0x1c]
+sbb ecx, dword [ebp - 0x10]
+jmp short loc_fffc93f6 ; jmp 0xfffc93f6
+
+loc_fffc9431:
+db 0x8d
+db 0xb4
+db 0x26
+dd 0x00000000
+
+loc_fffc9438:
+cmp edx, esi
+jb loc_fffc934f ; jb 0xfffc934f
+jmp near loc_fffc9356 ; jmp 0xfffc9356
+
+fcn_fffc9445: ; not directly referenced
+push ebp
+shl edx, 0xa
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+xor esi, esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x2c]
+mov eax, dword [eax + 0x103f]
+mov byte [ebp - 0x29], cl
+mov dword [ebp - 0x20], 0
+lea ecx, [edx + eax + 0x41a0]
+mov eax, dword [ecx]
+and eax, 0xfffffccc
+or eax, 0x111
+mov dword [ecx], eax
+mov eax, dword [ebx + 0x103f]
+mov ecx, dword [ebp + 0x10]
+lea eax, [edx + eax + 0x41a4]
+mov dword [eax], ecx
+mov eax, dword [ebx + 0x103f]
+mov ecx, dword [ebp + 0x14]
+lea eax, [edx + eax + 0x41a8]
+mov dword [eax], ecx
+mov eax, dword [ebx + 0x103f]
+mov ecx, dword [ebp + 0x18]
+lea eax, [edx + eax + 0x41ac]
+mov dword [eax], ecx
+mov eax, dword [ebx + 0x103f]
+lea eax, [edx + eax + 0x41bc]
+add edx, 0x41c0
+mov dword [eax], 0
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x28], edx
+mov dword [ebp - 0x1c], eax
+jmp near loc_fffc956a ; jmp 0xfffc956a
+
+loc_fffc94da: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+mov ecx, dword [eax + 4]
+mov eax, dword [eax]
+mov edx, eax
+mov dword [ebp - 0x30], eax
+and edx, 2
+and eax, 1
+shr edx, 1
+add eax, eax
+or edx, eax
+movzx eax, cl
+and ecx, 0x300
+or ah, 0x80
+shl ecx, 5
+or edx, 4
+shl edx, 8
+mov dword [ebp - 0x34], ecx
+mov ecx, dword [ebp - 0x30]
+and ecx, 0x7c
+shl ecx, 6
+or dword [ebp - 0x34], ecx
+or eax, dword [ebp - 0x34]
+mov si, ax
+mov eax, dword [ebp - 0x30]
+mov ecx, esi
+and eax, 0x380
+shl eax, 0x11
+and ecx, 0xf8ffffff
+mov esi, ecx
+mov ecx, dword [ebp - 0x1c]
+or esi, eax
+mov eax, edi
+and ah, 0xf8
+or eax, edx
+mov edx, dword [ecx + 8]
+mov cl, byte [ebp - 0x29]
+and eax, 0xfffffff0
+shl edx, cl
+mov edi, eax
+push ecx
+not edx
+mov eax, ebx
+push ecx
+and edx, 0xf
+or edi, edx
+mov edx, dword [ebp - 0x28]
+push edi
+push esi
+call fcn_fffb210b ; call 0xfffb210b
+inc dword [ebp - 0x20]
+add dword [ebp - 0x1c], 0xc
+add esp, 0x10
+
+loc_fffc956a: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+cmp dword [ebp - 0x20], eax
+jne loc_fffc94da ; jne 0xfffc94da
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc957e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+lea esp, [esp - 0x2c]
+cmp dword [ebp + 8], 1
+je short loc_fffc95c3 ; je 0xfffc95c3
+jb short loc_fffc95a3 ; jb 0xfffc95a3
+cmp dword [ebp + 8], 2
+mov eax, 1
+jne loc_fffc96aa ; jne 0xfffc96aa
+jmp short loc_fffc95b3 ; jmp 0xfffc95b3
+
+loc_fffc95a3: ; not directly referenced
+mov dword [ebp - 0x28], 0xa4
+mov dword [ebp - 0x24], 0x29
+jmp short loc_fffc95d1 ; jmp 0xfffc95d1
+
+loc_fffc95b3: ; not directly referenced
+mov dword [ebp - 0x28], 0xa8
+mov dword [ebp - 0x24], 0x2a
+jmp short loc_fffc95d1 ; jmp 0xfffc95d1
+
+loc_fffc95c3: ; not directly referenced
+mov dword [ebp - 0x28], 0xc0
+mov dword [ebp - 0x24], 0x30
+
+loc_fffc95d1: ; not directly referenced
+movzx edx, dl
+mov dword [ebp - 0x20], esi
+movzx ecx, cl
+xor edi, edi
+mov dword [ebp - 0x30], edx
+mov dword [ebp - 0x34], ecx
+
+loc_fffc95e2: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+bt eax, edi
+jae loc_fffc9695 ; jae 0xfffc9695
+mov edx, dword [ebp - 0x20]
+mov eax, edi
+shl eax, 0xa
+add eax, 0x4190
+mov dword [ebp - 0x2c], eax
+add eax, dword [esi + 0x103f]
+movzx ebx, byte [edx + 0x3acc]
+mov edx, 1
+and ebx, 0xf
+shl ebx, 0x10
+or ebx, 0xf
+mov dword [eax], ebx
+mov eax, esi
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov dword [ebp - 0x1c], 0
+
+loc_fffc9629: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+mov cl, byte [ebp - 0x1c]
+mov eax, 1
+shl eax, cl
+test byte [edx + 0x3acb], al
+jne short loc_fffc9649 ; jne 0xfffc9649
+
+loc_fffc963e: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 4
+jne short loc_fffc9629 ; jne 0xfffc9629
+jmp short loc_fffc9672 ; jmp 0xfffc9672
+
+loc_fffc9649: ; not directly referenced
+mov ecx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x1c]
+bt ecx, eax
+jae short loc_fffc963e ; jae 0xfffc963e
+push 0
+mov ecx, eax
+mov edx, edi
+push 1
+push dword [ebp - 0x28]
+push dword [ebp - 0x24]
+mov eax, esi
+call fcn_fffb8fda ; call 0xfffb8fda
+add esp, 0x10
+test eax, eax
+je short loc_fffc963e ; je 0xfffc963e
+jmp short loc_fffc96aa ; jmp 0xfffc96aa
+
+loc_fffc9672: ; not directly referenced
+cmp dword [ebp + 8], 2
+je short loc_fffc9695 ; je 0xfffc9695
+mov eax, esi
+mov edx, 1
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov eax, dword [ebp - 0x2c]
+add eax, dword [esi + 0x103f]
+and ebx, 0xfff0ffff
+mov dword [eax], ebx
+
+loc_fffc9695: ; not directly referenced
+inc edi
+add dword [ebp - 0x20], 0x1347
+cmp edi, 2
+jne loc_fffc95e2 ; jne 0xfffc95e2
+xor eax, eax
+jmp short loc_fffc96aa ; jmp 0xfffc96aa
+
+loc_fffc96aa: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc96b2: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+xor esi, esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x2c]
+
+loc_fffc96c2: ; not directly referenced
+lea eax, [esi + 0x915]
+lea edx, [eax*8]
+mov dword [ebp - 0x2c], edx
+mov edx, dword [ebx + 0x103f]
+movq qword [ebp - 0x20], mm0
+movq mm0, qword [edx + eax*8]
+movq qword [ebp - 0x28], mm0
+movq mm0, qword [ebp - 0x20]
+emms
+mov eax, dword [ebp - 0x28]
+bt edi, esi
+mov edx, dword [ebp - 0x24]
+mov ecx, eax
+jae short loc_fffc9701 ; jae 0xfffc9701
+and ch, 0xcf
+mov eax, ecx
+or ah, 0x18
+jmp short loc_fffc9704 ; jmp 0xfffc9704
+
+loc_fffc9701: ; not directly referenced
+and ah, 0xf7
+
+loc_fffc9704: ; not directly referenced
+push ecx
+inc esi
+push ecx
+push edx
+mov edx, dword [ebp - 0x2c]
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+cmp esi, 2
+jne short loc_fffc96c2 ; jne 0xfffc96c2
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4d98], 2
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x4800], 1
+mov edx, dword [ebx + 0x103f]
+mov eax, dword [edx + 0x4800]
+mov dword [edx + 0x4d98], 0
+mov edx, dword [ebx + 0x103f]
+and eax, 0xfffffffe
+or eax, 2
+test edi, 1
+mov dword [edx + 0x4800], eax
+mov eax, dword [ebx + 0x103f]
+mov eax, dword [eax + 0x4800]
+je short loc_fffc9799 ; je 0xfffc9799
+mov edx, 0x48a8
+mov eax, ebx
+call fcn_fffb20e4 ; call 0xfffb20e4
+push esi
+and ah, 0xf7
+push esi
+push edx
+mov edx, 0x48a8
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+
+loc_fffc9799: ; not directly referenced
+and edi, 2
+je short loc_fffc97c0 ; je 0xfffc97c0
+mov edx, 0x48b0
+mov eax, ebx
+call fcn_fffb20e4 ; call 0xfffb20e4
+push ecx
+and ah, 0xf7
+push ecx
+push edx
+mov edx, 0x48b0
+push eax
+mov eax, ebx
+call fcn_fffb210b ; call 0xfffb210b
+add esp, 0x10
+
+loc_fffc97c0: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc97c8: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+mov edx, 2
+push esi
+push ebx
+mov ebx, eax
+lea esp, [esp - 0x7c]
+mov esi, dword [ebp + 8]
+mov eax, esi
+mov byte [ebp - 0x44], cl
+mov byte [ebp - 0x5d], al
+xor ecx, ecx
+lea eax, [ebp - 0x2c]
+call fcn_fffa119f ; call 0xfffa119f
+mov ecx, edi
+mov eax, 1
+movzx edx, cl
+mov byte [ebp - 0x39], 0
+shl eax, cl
+mov cl, byte [ebp - 0x5d]
+mov byte [ebp - 0x3b], al
+and eax, 0xff
+mov dword [ebp - 0x5c], eax
+add ecx, 0x40
+mov eax, esi
+lea edx, [edx + edx*8]
+movzx esi, byte [ebp - 0x44]
+mov byte [ebp - 0x43], al
+mov byte [ebp - 0x3a], cl
+mov dword [ebp - 0x7c], edx
+mov dword [ebp - 0x80], esi
+jmp near loc_fffc9a94 ; jmp 0xfffc9a94
+
+loc_fffc982b: ; not directly referenced
+push 0
+movzx eax, byte [ebp - 0x41]
+mov ecx, 4
+push eax
+mov edx, 1
+mov eax, ebx
+push 1
+push dword [ebp - 0x5c]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc984b: ; not directly referenced
+lea edi, [ebx + 0x10b7]
+mov dword [ebp - 0x84], 0
+mov dword [ebp - 0x78], edi
+jmp near loc_fffc99a0 ; jmp 0xfffc99a0
+
+loc_fffc9863: ; not directly referenced
+imul edx, eax, 0x1347
+mov cl, byte [ebp - 0x3b]
+test byte [ebx + edx + 0x3acb], cl
+jne short loc_fffc987f ; jne 0xfffc987f
+mov byte [ebp + eax - 0x2c], 0xff
+jmp near loc_fffc997f ; jmp 0xfffc997f
+
+loc_fffc987f: ; not directly referenced
+cmp byte [ebp + eax - 0x2c], 0xff
+je loc_fffc997f ; je 0xfffc997f
+imul ecx, eax, 0x2fa
+lea edx, [ebx + edx + 0x297c]
+mov esi, dword [ebp - 0x78]
+mov dword [ebp - 0x70], edx
+mov edx, eax
+lea edi, [ebp - 0x18]
+shl edx, 8
+add edx, 0x54
+mov dword [ebp - 0x68], edx
+lea edx, [eax + eax*8]
+add edi, edx
+lea ecx, [esi + ecx + 5]
+mov dword [ebp - 0x64], edi
+mov dword [ebp - 0x6c], ecx
+xor ecx, ecx
+jmp near loc_fffc9973 ; jmp 0xfffc9973
+
+loc_fffc98c1: ; not directly referenced
+movzx esi, cl
+mov edx, 1
+shl edx, cl
+mov byte [ebp - 0x58], dl
+mov edx, dword [ebp - 0x6c]
+movzx edi, byte [edx + esi + 0x2a6]
+mov edx, dword [ebp - 0x70]
+cmp byte [edx + 0x1232], 0x20
+jne short loc_fffc98f3 ; jne 0xfffc98f3
+and edi, 2
+je short loc_fffc98f3 ; je 0xfffc98f3
+mov dl, byte [ebp - 0x58]
+or byte [ebp + eax - 0x2c], dl
+jmp short loc_fffc9972 ; jmp 0xfffc9972
+
+loc_fffc98f3: ; not directly referenced
+mov edx, esi
+shl edx, 9
+add edx, dword [ebp - 0x68]
+add edx, dword [ebx + 0x103f]
+mov edi, dword [edx]
+mov dl, byte [ebp + eax - 0x2c]
+test byte [ebp - 0x58], dl
+mov byte [ebp - 0x42], dl
+jne short loc_fffc9972 ; jne 0xfffc9972
+and edi, 0xff
+cmp dword [ebp - 0x84], 0
+mov dword [ebp - 0x40], edi
+jne short loc_fffc992d ; jne 0xfffc992d
+mov edi, dword [ebp - 0x64]
+mov dl, byte [ebp - 0x40]
+mov byte [esi + edi - 0x12], dl
+jmp short loc_fffc9972 ; jmp 0xfffc9972
+
+loc_fffc992d: ; not directly referenced
+mov edx, dword [ebp - 0x64]
+mov byte [ebp - 0x3c], 0
+mov dl, byte [esi + edx - 0x12]
+mov byte [ebp - 0x5e], dl
+mov edx, dword [ebp - 0x40]
+jmp short loc_fffc9948 ; jmp 0xfffc9948
+
+loc_fffc9940: ; not directly referenced
+lea edi, [edx - 1]
+inc byte [ebp - 0x3c]
+and edx, edi
+
+loc_fffc9948: ; not directly referenced
+test edx, edx
+jne short loc_fffc9940 ; jne 0xfffc9940
+cmp byte [ebp - 0x3c], 4
+jne short loc_fffc995a ; jne 0xfffc995a
+mov dl, byte [ebp - 0x40]
+cmp byte [ebp - 0x5e], dl
+jne short loc_fffc9972 ; jne 0xfffc9972
+
+loc_fffc995a: ; not directly referenced
+mov edi, dword [ebp - 0x7c]
+mov dl, byte [ebp - 0x41]
+add edi, esi
+mov esi, dword [ebp - 0x48]
+mov byte [esi + edi], dl
+mov dl, byte [ebp - 0x58]
+or dl, byte [ebp - 0x42]
+mov byte [ebp + eax - 0x2c], dl
+
+loc_fffc9972: ; not directly referenced
+inc ecx
+
+loc_fffc9973: ; not directly referenced
+cmp cl, byte [ebx + 0x1755]
+jb loc_fffc98c1 ; jb 0xfffc98c1
+
+loc_fffc997f: ; not directly referenced
+inc eax
+add dword [ebp - 0x48], 0x24
+cmp eax, 2
+jne loc_fffc9863 ; jne 0xfffc9863
+inc dword [ebp - 0x84]
+cmp dword [ebp - 0x84], 2
+je loc_fffc9a60 ; je 0xfffc9a60
+
+loc_fffc99a0: ; not directly referenced
+mov al, byte [ebp - 0x3b]
+test byte [ebx + 0x3acb], al
+je short loc_fffc99ee ; je 0xfffc99ee
+mov edx, dword [ebx + 0x103f]
+or byte [ebp - 0x39], 1
+cmp dword [ebp - 0x84], 1
+sbb eax, eax
+and eax, 0xffffc000
+add eax, 0x7000
+mov dword [edx + 0x41a4], eax
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x41a8], 0x4000
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x41ac], 0
+
+loc_fffc99ee: ; not directly referenced
+mov dl, byte [ebp - 0x3b]
+test byte [ebx + 0x4e12], dl
+je short loc_fffc9a3c ; je 0xfffc9a3c
+mov edx, dword [ebx + 0x103f]
+or byte [ebp - 0x39], 2
+cmp dword [ebp - 0x84], 1
+sbb eax, eax
+and eax, 0xffffc000
+add eax, 0x7000
+mov dword [edx + 0x45a4], eax
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x45a8], 0x4000
+mov eax, dword [ebx + 0x103f]
+mov dword [eax + 0x45ac], 0
+
+loc_fffc9a3c: ; not directly referenced
+movzx edx, byte [ebp - 0x39]
+mov eax, ebx
+call fcn_fffc96b2 ; call 0xfffc96b2
+mov eax, ebx
+mov edx, 0xf
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov ecx, dword [ebp + 0xc]
+xor eax, eax
+mov dword [ebp - 0x48], ecx
+jmp near loc_fffc9863 ; jmp 0xfffc9863
+
+loc_fffc9a60: ; not directly referenced
+cmp byte [ebp - 0x2c], 0xff
+jne short loc_fffc9a6c ; jne 0xfffc9a6c
+cmp byte [ebp - 0x2b], 0xff
+je short loc_fffc9ad8 ; je 0xfffc9ad8
+
+loc_fffc9a6c: ; not directly referenced
+cmp byte [ebp - 0x5d], 0
+jle short loc_fffc9a7d ; jle 0xfffc9a7d
+mov al, byte [ebp - 0x44]
+cmp byte [ebp - 0x3a], al
+seta al
+jmp short loc_fffc9a87 ; jmp 0xfffc9a87
+
+loc_fffc9a7d: ; not directly referenced
+movsx eax, byte [ebp - 0x3a]
+cmp eax, dword [ebp - 0x80]
+setl al
+
+loc_fffc9a87: ; not directly referenced
+movzx eax, al
+mov dl, byte [ebp - 0x43]
+add byte [ebp - 0x3a], dl
+test eax, eax
+jne short loc_fffc9ad8 ; jne 0xfffc9ad8
+
+loc_fffc9a94: ; not directly referenced
+mov cl, byte [ebp - 0x3a]
+mov al, byte [ebp - 0x3b]
+sub cl, byte [ebp - 0x43]
+test byte [ebx + 0x3acb], al
+mov byte [ebp - 0x41], cl
+je short loc_fffc9ac4 ; je 0xfffc9ac4
+push 0
+movzx eax, cl
+xor edx, edx
+push eax
+mov ecx, 4
+mov eax, ebx
+push 1
+push dword [ebp - 0x5c]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc9ac4: ; not directly referenced
+mov dl, byte [ebp - 0x3b]
+test byte [ebx + 0x4e12], dl
+je loc_fffc984b ; je 0xfffc984b
+jmp near loc_fffc982b ; jmp 0xfffc982b
+
+loc_fffc9ad8: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc9ae0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+mov esi, edx
+push ebx
+mov ebx, eax
+movzx eax, cl
+lea esp, [esp - 0x48]
+mov dword [ebp - 0x44], eax
+add eax, 4
+mov byte [ebp - 0x3e], cl
+cdq
+mov ecx, 5
+idiv ecx
+imul esi, esi, 0x30
+add esi, ebx
+mov dword [ebp - 0x48], esi
+dec eax
+movzx edx, al
+mov byte [ebp - 0x3f], al
+mov dword [ebp - 0x54], edx
+jmp near loc_fffc9bbf ; jmp 0xfffc9bbf
+
+loc_fffc9b1b: ; not directly referenced
+movzx eax, al
+mov bl, 5
+mov word [ebp + edi*2 - 0x3c], 0
+div bl
+xor ecx, ecx
+xor esi, esi
+mov byte [ebp - 0x3d], ah
+mov byte [ebp - 0x40], al
+mov al, byte [ebp - 0x3d]
+dec eax
+mov byte [ebp - 0x4e], al
+
+loc_fffc9b3a: ; not directly referenced
+mov edx, esi
+mov bl, byte [ebp - 0x3d]
+xor eax, eax
+or bl, dl
+je short loc_fffc9b4a ; je 0xfffc9b4a
+mov al, byte [ebp - 0x4e]
+add eax, edx
+
+loc_fffc9b4a: ; not directly referenced
+cmp al, 1
+setbe bl
+cmp byte [ebp - 0x3d], 1
+setbe dl
+test bl, dl
+jne short loc_fffc9b63 ; jne 0xfffc9b63
+cmp al, 5
+mov dl, 4
+cmovae eax, edx
+jmp short loc_fffc9b66 ; jmp 0xfffc9b66
+
+loc_fffc9b63: ; not directly referenced
+mov al, byte [ebp - 0x3d]
+
+loc_fffc9b66: ; not directly referenced
+mov bl, byte [ebp - 0x40]
+mov dl, byte [ebp - 0x40]
+add ebx, 2
+dec edx
+movzx eax, al
+mov byte [ebp - 0x4d], bl
+mov dword [ebp - 0x4c], eax
+
+loc_fffc9b79: ; not directly referenced
+xor eax, eax
+test dl, dl
+cmovns eax, edx
+movsx ebx, al
+cmp ebx, dword [ebp - 0x54]
+mov bl, byte [ebp - 0x3f]
+cmovg eax, ebx
+movsx ebx, al
+lea ebx, [ebx + ebx*4]
+add ebx, dword [ebp - 0x4c]
+cmp dword [ebp - 0x44], ebx
+setle bl
+inc edx
+sub eax, ebx
+mov ebx, dword [ebp - 0x48]
+movsx eax, al
+lea eax, [eax + eax*4]
+add eax, dword [ebp - 0x4c]
+add cx, word [ebx + eax*2]
+cmp dl, byte [ebp - 0x4d]
+jne short loc_fffc9b79 ; jne 0xfffc9b79
+inc esi
+cmp esi, 3
+jne short loc_fffc9b3a ; jne 0xfffc9b3a
+mov word [ebp + edi*2 - 0x3c], cx
+inc edi
+
+loc_fffc9bbf: ; not directly referenced
+mov eax, edi
+cmp al, byte [ebp - 0x3e]
+jb loc_fffc9b1b ; jb 0xfffc9b1b
+xor ecx, ecx
+mov ebx, 9
+jmp short loc_fffc9be3 ; jmp 0xfffc9be3
+
+loc_fffc9bd3: ; not directly referenced
+movzx eax, word [ebp + ecx*2 - 0x3c]
+cdq
+idiv ebx
+mov edx, dword [ebp - 0x48]
+mov word [edx + ecx*2], ax
+inc ecx
+
+loc_fffc9be3: ; not directly referenced
+cmp byte [ebp - 0x3e], cl
+ja short loc_fffc9bd3 ; ja 0xfffc9bd3
+lea esp, [esp + 0x48]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc9bf1: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+mov bl, dl
+mov edx, 2
+lea esp, [esp - 0x5c]
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x43], cl
+mov byte [ebp - 0x3b], al
+xor ecx, ecx
+lea eax, [ebp - 0x1a]
+call fcn_fffa119f ; call 0xfffa119f
+mov cl, bl
+mov dword [ebp - 0x40], 1
+movzx edx, bl
+shl dword [ebp - 0x40], cl
+mov bl, byte [ebp - 0x40]
+test byte [esi + 0x3acb], bl
+mov byte [ebp - 0x3a], bl
+setne al
+lea edx, [edx + edx*8]
+mov cl, al
+mov dword [ebp - 0x60], edx
+or ecx, 2
+test byte [esi + 0x4e12], bl
+mov bl, byte [ebp - 0x3b]
+cmovne eax, ecx
+add ebx, 0x60
+movzx eax, al
+mov byte [ebp - 0x39], bl
+mov dword [ebp - 0x5c], eax
+jmp near loc_fffc9e04 ; jmp 0xfffc9e04
+
+loc_fffc9c5d: ; not directly referenced
+imul eax, ebx, 0x1347
+mov dl, byte [ebp - 0x3a]
+test byte [esi + eax + 0x3acb], dl
+je short loc_fffc9cb7 ; je 0xfffc9cb7
+push 0
+mov ecx, 1
+mov edx, ebx
+push edi
+mov eax, esi
+push 3
+push dword [ebp - 0x38]
+call fcn_fffafa3c ; call 0xfffafa3c
+push 0
+mov ecx, 2
+mov edx, ebx
+push edi
+mov eax, esi
+push 3
+push dword [ebp - 0x38]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x20
+mov ecx, 3
+push 0
+mov edx, ebx
+mov eax, esi
+push edi
+push 3
+push dword [ebp - 0x38]
+call fcn_fffafa3c ; call 0xfffafa3c
+add esp, 0x10
+
+loc_fffc9cb7: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc9c5d ; jne 0xfffc9c5d
+mov edx, dword [ebp - 0x5c]
+mov eax, esi
+call fcn_fffc96b2 ; call 0xfffc96b2
+mov eax, esi
+mov edx, 0xf
+call fcn_fffb2d76 ; call 0xfffb2d76
+mov ecx, dword [ebp + 0xc]
+lea ebx, [esi + 0x10b7]
+mov dword [ebp - 0x64], ecx
+xor eax, eax
+mov dword [ebp - 0x58], ebx
+
+loc_fffc9ce4: ; not directly referenced
+imul edx, eax, 0x1347
+mov bl, byte [ebp - 0x3a]
+test byte [esi + edx + 0x3acb], bl
+jne short loc_fffc9d00 ; jne 0xfffc9d00
+mov byte [ebp + eax - 0x1a], 0xff
+jmp near loc_fffc9dbf ; jmp 0xfffc9dbf
+
+loc_fffc9d00: ; not directly referenced
+cmp byte [ebp + eax - 0x1a], 0xff
+je loc_fffc9dbf ; je 0xfffc9dbf
+imul ecx, eax, 0x2fa
+mov edi, dword [ebp - 0x58]
+lea edx, [esi + edx + 0x297c]
+mov dword [ebp - 0x4c], edx
+mov edx, eax
+shl edx, 8
+add edx, 0x54
+lea ecx, [edi + ecx + 5]
+mov dword [ebp - 0x54], edx
+mov dword [ebp - 0x48], ecx
+xor ecx, ecx
+jmp short loc_fffc9db3 ; jmp 0xfffc9db3
+
+loc_fffc9d34: ; not directly referenced
+movzx edi, cl
+mov edx, 1
+shl edx, cl
+mov byte [ebp - 0x38], dl
+mov edx, dword [ebp - 0x48]
+mov bl, byte [edx + edi + 0x2a6]
+mov edx, dword [ebp - 0x4c]
+cmp byte [edx + 0x1232], 0x20
+jne short loc_fffc9d65 ; jne 0xfffc9d65
+and bl, 2
+je short loc_fffc9d65 ; je 0xfffc9d65
+mov bl, byte [ebp - 0x38]
+or byte [ebp + eax - 0x1a], bl
+jmp short loc_fffc9db2 ; jmp 0xfffc9db2
+
+loc_fffc9d65: ; not directly referenced
+mov edx, edi
+shl edx, 9
+add edx, dword [ebp - 0x54]
+add edx, dword [esi + 0x103f]
+mov ebx, dword [edx]
+mov dl, byte [ebp + eax - 0x1a]
+test byte [ebp - 0x38], dl
+mov byte [ebp - 0x41], dl
+jne short loc_fffc9db2 ; jne 0xfffc9db2
+movzx edx, bl
+mov byte [ebp - 0x3c], 0
+jmp short loc_fffc9d92 ; jmp 0xfffc9d92
+
+loc_fffc9d8a: ; not directly referenced
+lea ebx, [edx - 1]
+inc byte [ebp - 0x3c]
+and edx, ebx
+
+loc_fffc9d92: ; not directly referenced
+test edx, edx
+jne short loc_fffc9d8a ; jne 0xfffc9d8a
+cmp byte [ebp - 0x3c], 4
+je short loc_fffc9db2 ; je 0xfffc9db2
+mov edx, dword [ebp - 0x64]
+add edi, dword [ebp - 0x60]
+mov bl, byte [ebp - 0x42]
+mov byte [edx + edi], bl
+mov dl, byte [ebp - 0x38]
+or dl, byte [ebp - 0x41]
+mov byte [ebp + eax - 0x1a], dl
+
+loc_fffc9db2: ; not directly referenced
+inc ecx
+
+loc_fffc9db3: ; not directly referenced
+cmp cl, byte [esi + 0x1755]
+jb loc_fffc9d34 ; jb 0xfffc9d34
+
+loc_fffc9dbf: ; not directly referenced
+inc eax
+add dword [ebp - 0x64], 0x24
+cmp eax, 2
+jne loc_fffc9ce4 ; jne 0xfffc9ce4
+cmp byte [ebp - 0x1a], 0xff
+jne short loc_fffc9dd9 ; jne 0xfffc9dd9
+cmp byte [ebp - 0x19], 0xff
+je short loc_fffc9e1f ; je 0xfffc9e1f
+
+loc_fffc9dd9: ; not directly referenced
+cmp byte [ebp - 0x3b], 0
+jle short loc_fffc9dea ; jle 0xfffc9dea
+mov bl, byte [ebp - 0x43]
+cmp byte [ebp - 0x39], bl
+seta al
+jmp short loc_fffc9df7 ; jmp 0xfffc9df7
+
+loc_fffc9dea: ; not directly referenced
+movzx eax, byte [ebp - 0x43]
+movsx edx, byte [ebp - 0x39]
+cmp edx, eax
+setl al
+
+loc_fffc9df7: ; not directly referenced
+movzx eax, al
+mov bl, byte [ebp - 0x3b]
+add byte [ebp - 0x39], bl
+test eax, eax
+jne short loc_fffc9e1f ; jne 0xfffc9e1f
+
+loc_fffc9e04: ; not directly referenced
+mov bl, byte [ebp - 0x39]
+movzx eax, byte [ebp - 0x40]
+sub bl, byte [ebp - 0x3b]
+mov dword [ebp - 0x38], eax
+mov byte [ebp - 0x42], bl
+xor ebx, ebx
+movzx edi, byte [ebp - 0x42]
+jmp near loc_fffc9c5d ; jmp 0xfffc9c5d
+
+loc_fffc9e1f: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9e27:
+db 0x00
+
+ref_fffc9e28:
+dd 0x08000100
+dd 0x01010000
+dd 0x01000004
+dd 0x00000202
+
+ref_fffc9e38:
+dd fcn_fffaea18
+dd fcn_fffc5978
+dd fcn_fffc5d49
+dd fcn_fffc7bc0
+
+ref_fffc9e48:
+dd 0x00000000
+dd 0x00000001
+dd 0x00000002
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000003
+dd 0x01010001
+dd 0x07010201
+
+ref_fffc9e70:
+dd fcn_fffc5b9a
+dd fcn_fffc5b65
+dd fcn_fffc5b78
+dd fcn_fffc5b3c
+dd fcn_fffc5b27
+dd fcn_fffc5b14
+
+ref_fffc9e88:
+db 'GlueAllocatePool',0x00,0x00,0x00,0x00
+
+ref_fffc9e9c:
+db ' +-#0!^',0x00
+
+ref_fffc9ea4:
+dd 0x00000001
+dd 0x00000002
+dd 0x00000004
+dd 0x00000008
+dd 0x00000010
+dd 0x00000020
+dd 0x00000040
+dd 0x00000000
+
+ref_fffc9ec4:
+db '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',0x00,0x00,0x00,0x00
+
+ref_fffc9eec:
+db 'install_ppi',0x00
+
+ref_fffc9ef8:
+dd 0x05010400
+dd 0x07030602
+dd 0x00000008
+
+ref_fffc9f04:
+dd 0xff830000
+dd 0xffe1ffc2
+dd 0x007d00fa
+dd 0x001f003e
+
+ref_fffc9f14:
+dd 0x02030304
+dd 0x02030404
+dd 0x03030405
+dd 0x03040405
+dd 0x03040405
+dd 0x02030304
+dd 0x02030404
+dd 0x03030405
+dd 0x03040405
+dd 0x03030404
+
+ref_fffc9f3c:
+dd 0x05060605
+dd 0x05060605
+dd 0x06060604
+dd 0x05060607
+dd 0x05060607
+dd 0x06060607
+
+ref_fffc9f54:
+dd 0x00280000
+dd 0x003c0f01
+dd 0x0f01003f
+dd 0x007f0075
+dd 0x00800f0b
+dd 0x0f010091
+dd 0x00b300b0
+dd 0x00b40f01
+dd 0x0f0100b8
+dd 0x00d700b9
+dd 0x00dc0f01
+dd 0x0f0100fa
+
+ref_fffc9f84:
+dd 0x00669263
+dd 0x82ca6a04
+dd 0x63081009
+dd 0x030066a2
+dd 0x05408934
+dd 0x92630b07
+dd 0x78040086
+dd 0x130b86d6
+dd 0x86a26309
+dd 0x8f3b0300
+dd 0x0e090642
+dd 0x00669463
+dd 0x7cb05b04
+dd 0x63070b05
+dd 0x040066a4
+dd 0x057af758
+dd 0x94630909
+dd 0x66040086
+dd 0x0d0681b9
+dd 0x86a46308
+dd 0x80320300
+dd 0x09050340
+dd 0x00671263
+dd 0x40ca9f03
+dd 0x63110705
+dd 0x03006722
+dd 0x053fca9e
+dd 0x12631807
+dd 0xa6030087
+dd 0x090642d0
+dd 0x87226313
+dd 0xd0a50300
+dd 0x1a080641
+dd 0x00671463
+dd 0x3dbd9803
+dd 0x630f0503
+dd 0x03006724
+dd 0x033dbd97
+dd 0x14631204
+dd 0x9d030087
+dd 0x060340c2
+dd 0x87246310
+dd 0xc19c0300
+dd 0x1405033f
+dd 0x006a9263
+dd 0x88b36604
+dd 0x630a0e08
+dd 0x04006aa2
+dd 0x0886b164
+dd 0x92630d0c
+dd 0x7404008a
+dd 0x110a8bbf
+dd 0x8aa2630b
+dd 0xbd720400
+dd 0x0f0f0a89
+dd 0x006a9463
+dd 0x7c9a5704
+dd 0x63080a04
+dd 0x04006aa4
+dd 0x047a9855
+dd 0x94630a08
+dd 0x6204008a
+dd 0x0b0580a3
+dd 0x8aa46309
+dd 0xa1600400
+dd 0x0b09057e
+dd 0x006b1263
+dd 0x43ab8803
+dd 0x63140704
+dd 0x03006b22
+dd 0x0443aa87
+dd 0x12631a06
+dd 0x8f03008b
+dd 0x080545b1
+dd 0x8b226315
+dd 0xb08f0300
+dd 0x1d070544
+dd 0x006b1463
+dd 0x3d9e8103
+dd 0x63100402
+dd 0x03006b24
+dd 0x023d9e80
+dd 0x14631504
+dd 0x8603008b
+dd 0x05033fa3
+dd 0x8b246311
+dd 0xa2850300
+dd 0x1504033f
+dd 0x006e9263
+dd 0x90fd7204
+dd 0x630c0d07
+dd 0x04006ea2
+dd 0x078efb71
+dd 0x92630f0b
+dd 0x4003008e
+dd 0x08054a85
+dd 0x8ea2630e
+dd 0x843f0300
+dd 0x12070549
+dd 0x006e9463
+dd 0x7ee46204
+dd 0x630a0904
+dd 0x04006ea4
+dd 0x047ce361
+dd 0x94630c07
+dd 0x6c04008e
+dd 0x0a0582ed
+dd 0x8ea4630b
+dd 0xeb6b0400
+dd 0x0d080580
+dd 0x006f1263
+dd 0x47ce8e03
+dd 0x63170604
+dd 0x03006f22
+dd 0x0447cd8e
+dd 0x12632006
+dd 0x9503008f
+dd 0x070549d4
+dd 0x8f226319
+dd 0xd3950300
+dd 0x23070548
+dd 0x006f1463
+dd 0x3ec18603
+dd 0x63130402
+dd 0x03006f24
+dd 0x023ec186
+dd 0x14631603
+dd 0x8c03008f
+dd 0x040340c6
+dd 0x8f246314
+dd 0xc58b0300
+dd 0x1a040340
+dd 0x00729263
+dd 0x9ce66f04
+dd 0x630e0c07
+dd 0x040072a2
+dd 0x079be46d
+dd 0x9263120b
+dd 0x7c040092
+dd 0x0e089ff1
+dd 0x92a2630f
+dd 0xf07b0400
+dd 0x140d089d
+dd 0x00729463
+dd 0x83ce5f04
+dd 0x630b0804
+dd 0x040072a4
+dd 0x0482cc5e
+dd 0x94630d06
+dd 0x69040092
+dd 0x090587d6
+dd 0x92a4630c
+dd 0xd5680400
+dd 0x0e070586
+dd 0x00731263
+dd 0x4eb78103
+dd 0x631a0604
+dd 0x03007322
+dd 0x044db680
+dd 0x12632105
+dd 0x87030093
+dd 0x07044fbd
+dd 0x9322631c
+dd 0xbc870300
+dd 0x2506044f
+dd 0x00731463
+dd 0x41ab7903
+dd 0x63150402
+dd 0x03007324
+dd 0x0241aa78
+dd 0x14631903
+dd 0x7e030093
+dd 0x040343af
+dd 0x93246316
+dd 0xaf7d0300
+dd 0x1d040343
+dd 0x00769263
+dd 0xa6d46c04
+dd 0x630f0b06
+dd 0x040076a2
+dd 0x06a4d36b
+dd 0x9263130a
+dd 0x7a040096
+dd 0x0d08a8e0
+dd 0x96a26311
+dd 0xde790400
+dd 0x160c08a7
+dd 0x00769463
+dd 0x87bd5c04
+dd 0x630c0703
+dd 0x040076a4
+dd 0x0385bb5b
+dd 0x94630e06
+dd 0x66040096
+dd 0x08048ac5
+dd 0x96a4630d
+dd 0xc3650400
+dd 0x10070489
+dd 0x00771263
+dd 0x52a67603
+dd 0x631a0503
+dd 0x03007722
+dd 0x0352a576
+dd 0x12632405
+dd 0x7d030097
+dd 0x060454ab
+dd 0x9722631d
+dd 0xab7d0300
+dd 0x29060453
+dd 0x00771463
+dd 0x439a6e03
+dd 0x63150302
+dd 0x03007724
+dd 0x02439a6e
+dd 0x14631b03
+dd 0x73030097
+dd 0x0402459e
+dd 0x97246318
+dd 0x9d730300
+dd 0x1c030244
+dd 0x00669243
+dd 0x82c97704
+dd 0x43091009
+dd 0x040066a2
+dd 0x097fc775
+dd 0x92430c0e
+dd 0x85040086
+dd 0x130b86d6
+dd 0x86a2430a
+dd 0xd3830400
+dd 0x0d110b83
+dd 0x00669443
+dd 0x7cb06804
+dd 0x43070b05
+dd 0x040066a4
+dd 0x057aae66
+dd 0x94430909
+dd 0x73040086
+dd 0x0d0681b9
+dd 0x86a44308
+dd 0xb7710400
+dd 0x0a0a067e
+dd 0x00671243
+dd 0x40e8bd03
+dd 0x43130705
+dd 0x03006722
+dd 0x053fe8bd
+dd 0x12431a07
+dd 0xc4030087
+dd 0x090642ef
+dd 0x87224315
+dd 0xeec30300
+dd 0x1c080641
+dd 0x00671443
+dd 0x3ddcb603
+dd 0x43110503
+dd 0x03006724
+dd 0x033ddbb5
+dd 0x14431404
+dd 0xbb030087
+dd 0x060340e0
+dd 0x87244312
+dd 0xdfbb0300
+dd 0x1605033f
+dd 0x006a9243
+dd 0x88b27104
+dd 0x430a0e08
+dd 0x04006aa2
+dd 0x0886b16f
+dd 0x92430d0c
+dd 0x7f04008a
+dd 0x110a8bbf
+dd 0x8aa2430b
+dd 0xbd7d0400
+dd 0x0f0f0a89
+dd 0x006a9443
+dd 0x7c9a6204
+dd 0x43080a04
+dd 0x04006aa4
+dd 0x047a9860
+dd 0x94430a08
+dd 0x6d04008a
+dd 0x0b0580a3
+dd 0x8aa44309
+dd 0xa16b0400
+dd 0x0b09057e
+dd 0x006b1243
+dd 0x43c3a003
+dd 0x43150704
+dd 0x03006b22
+dd 0x0443c2a0
+dd 0x12431c06
+dd 0xa703008b
+dd 0x080545c9
+dd 0x8b224317
+dd 0xc8a70300
+dd 0x1f070544
+dd 0x006b1443
+dd 0x3db69903
+dd 0x43110402
+dd 0x03006b24
+dd 0x023db698
+dd 0x14431604
+dd 0x9e03008b
+dd 0x05033fbb
+dd 0x8b244313
+dd 0xba9e0300
+dd 0x1704033f
+dd 0x006e9243
+dd 0x90d27904
+dd 0x430c0d07
+dd 0x04006ea2
+dd 0x078ed077
+dd 0x92430f0b
+dd 0x8704008e
+dd 0x0f0993de
+dd 0x8ea2430d
+dd 0xdc850400
+dd 0x110d0991
+dd 0x006e9443
+dd 0x7eba6904
+dd 0x430a0804
+dd 0x04006ea4
+dd 0x047cb867
+dd 0x94430c07
+dd 0x7304008e
+dd 0x0a0581c2
+dd 0x8ea4430b
+dd 0xc0720400
+dd 0x0d080580
+dd 0x006f1243
+dd 0x47ba8e03
+dd 0x43170604
+dd 0x03006f22
+dd 0x0447ba8e
+dd 0x12432006
+dd 0x9503008f
+dd 0x070549c0
+dd 0x8f224319
+dd 0xc0940300
+dd 0x23070548
+dd 0x006f1443
+dd 0x3eae8603
+dd 0x43130402
+dd 0x03006f24
+dd 0x023eae86
+dd 0x14431603
+dd 0x8b03008f
+dd 0x040340b2
+dd 0x8f244314
+dd 0xb28b0300
+dd 0x1a040340
+dd 0x00729243
+dd 0x9cc17504
+dd 0x430e0c07
+dd 0x040072a2
+dd 0x079bbf73
+dd 0x9243120b
+dd 0x82040092
+dd 0x0e089fcc
+dd 0x92a2430f
+dd 0xcb810400
+dd 0x140c089d
+dd 0x00729443
+dd 0x83a96504
+dd 0x430b0804
+dd 0x040072a4
+dd 0x0482a864
+dd 0x94430d06
+dd 0x6f040092
+dd 0x090587b1
+dd 0x92a4430c
+dd 0xb06e0400
+dd 0x0e070586
+dd 0x00731243
+dd 0x4ea68003
+dd 0x431a0604
+dd 0x03007322
+dd 0x044da680
+dd 0x12432105
+dd 0x87030093
+dd 0x07044fac
+dd 0x9322431c
+dd 0xab870300
+dd 0x2506044f
+dd 0x00731443
+dd 0x419a7803
+dd 0x43150402
+dd 0x03007324
+dd 0x02419a78
+dd 0x14431903
+dd 0x7d030093
+dd 0x0403439e
+dd 0x93244316
+dd 0x9e7d0300
+dd 0x1d040343
+dd 0x00769243
+dd 0xa5b47204
+dd 0x430f0b06
+dd 0x040076a2
+dd 0x06a4b370
+dd 0x9243140a
+dd 0x7f040096
+dd 0x0d08a8c0
+dd 0x96a24311
+dd 0xbe7e0400
+dd 0x160c08a7
+dd 0x00769443
+dd 0x879d6104
+dd 0x430c0703
+dd 0x040076a4
+dd 0x03859b60
+dd 0x94430e06
+dd 0x6b040096
+dd 0x08048aa4
+dd 0x96a4430d
+dd 0xa36a0400
+dd 0x10070489
+dd 0x00771243
+dd 0x52977603
+dd 0x431a0503
+dd 0x03007722
+dd 0x03529776
+dd 0x12432405
+dd 0x7d030097
+dd 0x0604549d
+dd 0x9722431d
+dd 0x9c7c0300
+dd 0x29060453
+dd 0x00771443
+dd 0x438b6e03
+dd 0x43150302
+dd 0x03007724
+dd 0x02438b6d
+dd 0x14431b03
+dd 0x73030097
+dd 0x0402458f
+dd 0x97244318
+dd 0x8f720300
+dd 0x1c030244
+dd 0x00669253
+dd 0x91e28504
+dd 0x5308120a
+dd 0x040066a2
+dd 0x0a8fdf83
+dd 0x92530b0f
+dd 0x95040086
+dd 0x150d96f0
+dd 0x86a25309
+dd 0xed920400
+dd 0x0d130d93
+dd 0x00669453
+dd 0x9acf7e04
+dd 0x53060c06
+dd 0x040066a4
+dd 0x0698cc7b
+dd 0x9453080a
+dd 0x8b040086
+dd 0x0e07a0da
+dd 0x86a45307
+dd 0xd7890400
+dd 0x0a0c079d
+dd 0x00671253
+dd 0x248c7702
+dd 0x530f0403
+dd 0x02006722
+dd 0x03248c76
+dd 0x12531704
+dd 0x7b020087
+dd 0x05042590
+dd 0x87225311
+dd 0x8f7a0200
+dd 0x1b050425
+dd 0x00671453
+dd 0x26877502
+dd 0x530d0302
+dd 0x02006724
+dd 0x02268774
+dd 0x14531303
+dd 0x78020087
+dd 0x0302288a
+dd 0x8724530d
+dd 0x8a780200
+dd 0x13030227
+dd 0x006a9253
+dd 0x98c87e04
+dd 0x53091009
+dd 0x04006aa2
+dd 0x0996c67c
+dd 0x92530d0e
+dd 0x8e04008a
+dd 0x120b9cd6
+dd 0x8aa2530a
+dd 0xd48c0400
+dd 0x0e100b9a
+dd 0x006a9453
+dd 0x9ab67704
+dd 0x53070b05
+dd 0x04006aa4
+dd 0x0598b475
+dd 0x94530a09
+dd 0x8404008a
+dd 0x0c079fc0
+dd 0x8aa45308
+dd 0xbe820400
+dd 0x0a0a079d
+dd 0x006b1253
+dd 0x26928302
+dd 0x53130403
+dd 0x02006b22
+dd 0x03269282
+dd 0x12531d04
+dd 0x8702008b
+dd 0x05032796
+dd 0x8b225316
+dd 0x95860200
+dd 0x1d040327
+dd 0x006b1453
+dd 0x268e8102
+dd 0x53110302
+dd 0x02006b24
+dd 0x02268d80
+dd 0x14531302
+dd 0x8402008b
+dd 0x03022890
+dd 0x8b245311
+dd 0x90840200
+dd 0x18030227
+dd 0x006e9253
+dd 0xa1b87a04
+dd 0x530a0e08
+dd 0x04006ea2
+dd 0x08a0b679
+dd 0x92530e0c
+dd 0x8a04008e
+dd 0x100aa5c5
+dd 0x8ea2530b
+dd 0xc4880400
+dd 0x100f0aa3
+dd 0x006e9453
+dd 0x9ca67104
+dd 0x53080a05
+dd 0x04006ea4
+dd 0x059aa470
+dd 0x94530b08
+dd 0x7e04008e
+dd 0x0b06a1b0
+dd 0x8ea45309
+dd 0xae7c0400
+dd 0x0c09069f
+dd 0x006f1253
+dd 0x50fce203
+dd 0x53140704
+dd 0x03006f22
+dd 0x0450fbe1
+dd 0x12531c06
+dd 0x7502008f
+dd 0x04032982
+dd 0x8f225316
+dd 0x81750200
+dd 0x22040329
+dd 0x006f1453
+dd 0x4ef3dd03
+dd 0x53100403
+dd 0x03006f24
+dd 0x034df2dd
+dd 0x14531604
+dd 0xe403008f
+dd 0x050350f8
+dd 0x8f245312
+dd 0xf7e30300
+dd 0x19050350
+dd 0x00729253
+dd 0xafac7704
+dd 0x530b0d07
+dd 0x040072a2
+dd 0x07aeab76
+dd 0x9253100c
+dd 0x86040092
+dd 0x0f09b2b9
+dd 0x92a2530d
+dd 0xb8850400
+dd 0x120e09b1
+dd 0x00729453
+dd 0xa39a6f04
+dd 0x53090904
+dd 0x040072a4
+dd 0x04a2996d
+dd 0x94530c07
+dd 0x7b040092
+dd 0x0a05a8a5
+dd 0x92a4530a
+dd 0xa37a0400
+dd 0x0e0905a7
+dd 0x00731253
+dd 0x57dfc903
+dd 0x53150604
+dd 0x03007322
+dd 0x0457dfc8
+dd 0x12532006
+dd 0xd0030093
+dd 0x070559e6
+dd 0x93225317
+dd 0xe5d00300
+dd 0x24070558
+dd 0x00731453
+dd 0x51d6c503
+dd 0x53120402
+dd 0x03007324
+dd 0x0251d6c4
+dd 0x14531904
+dd 0xcb030093
+dd 0x050354db
+dd 0x93245314
+dd 0xdbcb0300
+dd 0x19040353
+dd 0x00769253
+dd 0xbaa47504
+dd 0x530d0c07
+dd 0x040076a2
+dd 0x07b9a274
+dd 0x9253120b
+dd 0x84040096
+dd 0x0e09bcb0
+dd 0x96a2530e
+dd 0xaf830400
+dd 0x140d09bb
+dd 0x00769453
+dd 0xa7926c04
+dd 0x530a0804
+dd 0x040076a4
+dd 0x04a6916a
+dd 0x94530d07
+dd 0x78040096
+dd 0x0905ac9c
+dd 0x96a4530b
+dd 0x9b770400
+dd 0x0e0805ab
+dd 0x00771253
+dd 0x5dcab603
+dd 0x53180604
+dd 0x03007722
+dd 0x045cc9b6
+dd 0x12532406
+dd 0xbe030097
+dd 0x07055ed0
+dd 0x9722531a
+dd 0xd0bd0300
+dd 0x2406055e
+dd 0x00771453
+dd 0x53c1b103
+dd 0x53130402
+dd 0x03007724
+dd 0x0253c1b1
+dd 0x14531703
+dd 0xb8030097
+dd 0x040356c6
+dd 0x97245314
+dd 0xc6b70300
+dd 0x1c040355
+dd 0x00669262
+dd 0x69a35604
+dd 0x62070d07
+dd 0x040066a2
+dd 0x0767dd54
+dd 0x9262090b
+dd 0x61040086
+dd 0x10096cad
+dd 0x86a26208
+dd 0xe75f0400
+dd 0x0b0e096a
+dd 0x00669462
+dd 0x658f4a04
+dd 0x62060904
+dd 0x040066a4
+dd 0x0463c948
+dd 0x94620707
+dd 0x53040086
+dd 0x0a056996
+dd 0x86a46206
+dd 0xd0510400
+dd 0x08080567
+dd 0x00671262
+dd 0x34a48103
+dd 0x620e0604
+dd 0x03006722
+dd 0x0433a380
+dd 0x12621406
+dd 0x87030087
+dd 0x070536a9
+dd 0x87226210
+dd 0xa8860300
+dd 0x16070535
+dd 0x00671462
+dd 0x329a7b03
+dd 0x620c0402
+dd 0x03006724
+dd 0x0231997a
+dd 0x14620e03
+dd 0x7f030087
+dd 0x0503349d
+dd 0x8724620d
+dd 0x9d7f0300
+dd 0x10040333
+dd 0x006a9262
+dd 0x6e915304
+dd 0x62080c06
+dd 0x04006aa2
+dd 0x066d8f51
+dd 0x92620b0a
+dd 0x5e04008a
+dd 0x0e08719b
+dd 0x8aa26209
+dd 0x995c0400
+dd 0x0c0c086f
+dd 0x006a9462
+dd 0xc9f98d05
+dd 0x62060f07
+dd 0x05006aa4
+dd 0x07c5f68a
+dd 0x9462080c
+dd 0x4f04008a
+dd 0x09046884
+dd 0x8aa46207
+dd 0x824e0400
+dd 0x09070466
+dd 0x006b1262
+dd 0x378a6e03
+dd 0x620f0503
+dd 0x03006b22
+dd 0x03368a6e
+dd 0x12621605
+dd 0x7403008b
+dd 0x0604388f
+dd 0x8b226211
+dd 0x8f740300
+dd 0x18060438
+dd 0x006b1462
+dd 0x32806803
+dd 0x620e0402
+dd 0x04006b24
+dd 0x0462ffcf
+dd 0x14621006
+dd 0x6d03008b
+dd 0x04023484
+dd 0x8b24620e
+dd 0x836c0300
+dd 0x13040233
+dd 0x006e9262
+dd 0x75cd5d04
+dd 0x620a0b06
+dd 0x04006ea2
+dd 0x0673cb5b
+dd 0x92620d09
+dd 0x6804008e
+dd 0x0c0777d6
+dd 0x8ea2620b
+dd 0xd5660400
+dd 0x0e0b0776
+dd 0x006e9462
+dd 0x66b95004
+dd 0x62080703
+dd 0x04006ea4
+dd 0x0365b84e
+dd 0x94620a06
+dd 0x5804008e
+dd 0x080469c0
+dd 0x8ea46209
+dd 0xbe570400
+dd 0x0b070468
+dd 0x006f1262
+dd 0x3aa77303
+dd 0x62130503
+dd 0x03006f22
+dd 0x033aa673
+dd 0x12621a05
+dd 0x7903008f
+dd 0x06043bab
+dd 0x8f226215
+dd 0xab790300
+dd 0x1b05043b
+dd 0x006f1462
+dd 0x339d6d03
+dd 0x620f0302
+dd 0x03006f24
+dd 0x02329c6d
+dd 0x14621403
+dd 0x7103008f
+dd 0x040234a0
+dd 0x8f246211
+dd 0xa0710300
+dd 0x14030234
+dd 0x00729262
+dd 0x7fba5a04
+dd 0x620b0a05
+dd 0x040072a2
+dd 0x057eb959
+dd 0x92620f09
+dd 0x65040092
+dd 0x0b0781c3
+dd 0x92a2620c
+dd 0xc2640400
+dd 0x100a0780
+dd 0x00729462
+dd 0x6ba74d04
+dd 0x62090603
+dd 0x040072a4
+dd 0x0369a64c
+dd 0x94620a05
+dd 0x55040092
+dd 0x07046ead
+dd 0x92a46209
+dd 0xac540400
+dd 0x0c06046c
+dd 0x00731262
+dd 0x3f946803
+dd 0x62150503
+dd 0x03007322
+dd 0x033f9468
+dd 0x12621b04
+dd 0x6e030093
+dd 0x05044099
+dd 0x93226216
+dd 0x986d0300
+dd 0x1e050440
+dd 0x00731462
+dd 0x358a6203
+dd 0x62110302
+dd 0x03007324
+dd 0x02358a62
+dd 0x14621603
+dd 0x66030093
+dd 0x0302378e
+dd 0x93246211
+dd 0x8d660300
+dd 0x17030236
+dd 0x00769262
+dd 0x86ac5804
+dd 0x620c0905
+dd 0x040076a2
+dd 0x0585ab57
+dd 0x92621008
+dd 0x63040096
+dd 0x0b0688b5
+dd 0x96a2620e
+dd 0xb4620400
+dd 0x120a0687
+dd 0x00769462
+dd 0x6d994a04
+dd 0x620a0603
+dd 0x040076a4
+dd 0x036c9849
+dd 0x94620c05
+dd 0x53040096
+dd 0x0704709f
+dd 0x96a4620b
+dd 0x9e520400
+dd 0x0d06046f
+dd 0x00771262
+dd 0x43866003
+dd 0x62160403
+dd 0x03007722
+dd 0x03438660
+dd 0x12621d04
+dd 0x65030097
+dd 0x0503448b
+dd 0x97226218
+dd 0x8b650300
+dd 0x22050344
+dd 0x00771462
+dd 0x6cf9b204
+dd 0x62110503
+dd 0x04007724
+dd 0x036cf8b1
+dd 0x14621605
+dd 0xba040097
+dd 0x06046fff
+dd 0x97246213
+dd 0xffb90400
+dd 0x1705046f
+dd 0x00669242
+dd 0x69a36304
+dd 0x42070d07
+dd 0x040066a2
+dd 0x0767a161
+dd 0x9242090b
+dd 0x6e040086
+dd 0x10096cad
+dd 0x86a24208
+dd 0xab6c0400
+dd 0x0b0e096a
+dd 0x00669442
+dd 0x658f5704
+dd 0x42060904
+dd 0x040066a4
+dd 0x04638d55
+dd 0x94420707
+dd 0x5f040086
+dd 0x0a056896
+dd 0x86a44206
+dd 0x945d0400
+dd 0x08080567
+dd 0x00671242
+dd 0x34bc9903
+dd 0x42100604
+dd 0x03006722
+dd 0x0433bc99
+dd 0x12421606
+dd 0x9f030087
+dd 0x070536c1
+dd 0x87224211
+dd 0xc19e0300
+dd 0x18070535
+dd 0x00671442
+dd 0x32b29303
+dd 0x420d0402
+dd 0x03006724
+dd 0x0231b193
+dd 0x14420f03
+dd 0x98030087
+dd 0x050334b6
+dd 0x8724420f
+dd 0xb5970300
+dd 0x12040333
+dd 0x006a9242
+dd 0x6e915d04
+dd 0x42080c06
+dd 0x04006aa2
+dd 0x066d8f5b
+dd 0x92420b0a
+dd 0x6804008a
+dd 0x0e08719b
+dd 0x8aa24209
+dd 0x99670400
+dd 0x0d0c086f
+dd 0x006a9442
+dd 0xc8f9a205
+dd 0x42070f07
+dd 0x05006aa4
+dd 0x07c5f69e
+dd 0x9442080c
+dd 0x5a04008a
+dd 0x09046884
+dd 0x8aa44207
+dd 0x82580400
+dd 0x09070466
+dd 0x006b1242
+dd 0x379e8203
+dd 0x42110503
+dd 0x03006b22
+dd 0x03369d81
+dd 0x12421705
+dd 0x8803008b
+dd 0x060438a3
+dd 0x8b224212
+dd 0xa2870300
+dd 0x1a060438
+dd 0x006b1442
+dd 0x32947c03
+dd 0x420e0302
+dd 0x03006b24
+dd 0x0231937b
+dd 0x14421203
+dd 0x8003008b
+dd 0x04023497
+dd 0x8b24420f
+dd 0x97800300
+dd 0x14040233
+dd 0x006e9242
+dd 0x74aa6304
+dd 0x420a0b06
+dd 0x04006ea2
+dd 0x0673a962
+dd 0x92420d09
+dd 0x6f04008e
+dd 0x0c0777b4
+dd 0x8ea2420b
+dd 0xb26d0400
+dd 0x0f0b0776
+dd 0x006e9442
+dd 0x66965604
+dd 0x42080703
+dd 0x04006ea4
+dd 0x03649555
+dd 0x94420a06
+dd 0x5f04008e
+dd 0x0804699d
+dd 0x8ea44209
+dd 0x9c5d0400
+dd 0x0b070468
+dd 0x006f1242
+dd 0x3a977303
+dd 0x42130503
+dd 0x03006f22
+dd 0x033a9673
+dd 0x12421a05
+dd 0x7903008f
+dd 0x06043b9c
+dd 0x8f224215
+dd 0x9b780300
+dd 0x1b05043b
+dd 0x006f1442
+dd 0x338d6d03
+dd 0x420f0302
+dd 0x03006f24
+dd 0x02328d6c
+dd 0x14421403
+dd 0x7103008f
+dd 0x04023490
+dd 0x8f244211
+dd 0x90700300
+dd 0x14030234
+dd 0x00729242
+dd 0x7f9c6004
+dd 0x420b0a05
+dd 0x040072a2
+dd 0x057e9b5f
+dd 0x92420f09
+dd 0x6b040092
+dd 0x0b0781a6
+dd 0x92a2420c
+dd 0xa56a0400
+dd 0x100a0780
+dd 0x00729442
+dd 0x6a895304
+dd 0x42090603
+dd 0x040072a4
+dd 0x03698852
+dd 0x94420b05
+dd 0x5b040092
+dd 0x07046d90
+dd 0x92a4420a
+dd 0x8f5a0400
+dd 0x0c06046c
+dd 0x00731242
+dd 0x3f876803
+dd 0x42150503
+dd 0x03007322
+dd 0x033f8668
+dd 0x12421a04
+dd 0x6d030093
+dd 0x0504408b
+dd 0x93224216
+dd 0x8b6d0300
+dd 0x1e050440
+dd 0x00731442
+dd 0x6af9c304
+dd 0x42100503
+dd 0x04007324
+dd 0x0369f9c2
+dd 0x14421405
+dd 0x66030093
+dd 0x03023780
+dd 0x93244211
+dd 0xffca0400
+dd 0x1606046c
+dd 0x00769242
+dd 0x86925d04
+dd 0x420c0905
+dd 0x040076a2
+dd 0x0585915c
+dd 0x92421008
+dd 0x68040096
+dd 0x0b06889b
+dd 0x96a2420e
+dd 0x9a670400
+dd 0x120a0687
+dd 0x00769442
+dd 0xdafd9f05
+dd 0x420a0b05
+dd 0x050076a4
+dd 0x05d8fb9d
+dd 0x94420b09
+dd 0x58040096
+dd 0x07047085
+dd 0x96a4420b
+dd 0x84570400
+dd 0x0d06046f
+dd 0x00771242
+dd 0x85f4bf04
+dd 0x42150805
+dd 0x04007722
+dd 0x0585f4be
+dd 0x12421d08
+dd 0xca040097
+dd 0x0a0687fe
+dd 0x97224218
+dd 0xfdc90400
+dd 0x20090687
+dd 0x00771442
+dd 0x6ce1b104
+dd 0x42110503
+dd 0x04007724
+dd 0x036ce1b1
+dd 0x14421605
+dd 0xb9040097
+dd 0x06046fe8
+dd 0x97244213
+dd 0xe7b90400
+dd 0x1705046f
+dd 0x00669252
+dd 0x76b76e04
+dd 0x52060e08
+dd 0x040066a2
+dd 0x0874b56c
+dd 0x9252090c
+dd 0x7b040086
+dd 0x110a79c2
+dd 0x86a25207
+dd 0xc0790400
+dd 0x0a0f0a77
+dd 0x00669452
+dd 0x7da76804
+dd 0x52050a05
+dd 0x040066a4
+dd 0x057ba566
+dd 0x94520708
+dd 0x73040086
+dd 0x0c0681b0
+dd 0x86a45206
+dd 0xaf710400
+dd 0x080a067f
+dd 0x00671252
+dd 0x3ae3c003
+dd 0x520d0704
+dd 0x03006722
+dd 0x043ae2bf
+dd 0x12521206
+dd 0xc6030087
+dd 0x08053ce8
+dd 0x8722520e
+dd 0xe8c60300
+dd 0x1407053b
+dd 0x00671452
+dd 0x3edbbd03
+dd 0x520a0403
+dd 0x03006724
+dd 0x033ddabc
+dd 0x14520e04
+dd 0xc2030087
+dd 0x050340df
+dd 0x8724520b
+dd 0xdfc20300
+dd 0x10050340
+dd 0x006a9252
+dd 0x7ba26804
+dd 0x52070d07
+dd 0x04006aa2
+dd 0x077aa166
+dd 0x92520a0b
+dd 0x7504008a
+dd 0x0f097eae
+dd 0x8aa25208
+dd 0xac730400
+dd 0x0c0d097d
+dd 0x006a9452
+dd 0x7d936204
+dd 0x52060904
+dd 0x04006aa4
+dd 0x047b9261
+dd 0x94520807
+dd 0x6d04008a
+dd 0x0a05819c
+dd 0x8aa45207
+dd 0x9a6b0400
+dd 0x0908057f
+dd 0x006b1252
+dd 0x3dedd303
+dd 0x520f0604
+dd 0x03006b22
+dd 0x043decd3
+dd 0x12521405
+dd 0xda03008b
+dd 0x07053ff2
+dd 0x8b225210
+dd 0xf2d90300
+dd 0x1907053e
+dd 0x006b1452
+dd 0x3ee5d003
+dd 0x520d0402
+dd 0x03006b24
+dd 0x023de5d0
+dd 0x14521104
+dd 0xd603008b
+dd 0x050340e9
+dd 0x8b24520e
+dd 0xe9d50300
+dd 0x12040340
+dd 0x006e9252
+dd 0x83956404
+dd 0x52080b06
+dd 0x04006ea2
+dd 0x06819463
+dd 0x92520b0a
+dd 0x7104008e
+dd 0x0d0885a0
+dd 0x8ea25209
+dd 0x9f700400
+dd 0x0d0c0884
+dd 0x006e9452
+dd 0x7e865d04
+dd 0x52070804
+dd 0x04006ea4
+dd 0x047d855c
+dd 0x94520907
+dd 0x6804008e
+dd 0x0905828f
+dd 0x8ea45207
+dd 0x8d660400
+dd 0x0a080581
+dd 0x006f1252
+dd 0x41ccb703
+dd 0x52100503
+dd 0x03006f22
+dd 0x0341ccb7
+dd 0x12521705
+dd 0xbd03008f
+dd 0x060442d2
+dd 0x8f225211
+dd 0xd1bd0300
+dd 0x1a060442
+dd 0x006f1452
+dd 0x3fc5b303
+dd 0x520e0402
+dd 0x03006f24
+dd 0x023fc4b3
+dd 0x14521103
+dd 0xb903008f
+dd 0x040341c9
+dd 0x8f24520e
+dd 0xc9b80300
+dd 0x14040341
+dd 0x00729252
+dd 0x8e8c6204
+dd 0x520a0b06
+dd 0x040072a2
+dd 0x068d8a61
+dd 0x92520d0a
+dd 0x6e040092
+dd 0x0c089096
+dd 0x92a2520a
+dd 0x956d0400
+dd 0x0f0b088f
+dd 0x00729452
+dd 0x847d5b04
+dd 0x52080704
+dd 0x040072a4
+dd 0x04837c5a
+dd 0x94520a06
+dd 0x65040092
+dd 0x08058885
+dd 0x92a45208
+dd 0x84640400
+dd 0x0b070587
+dd 0x00731252
+dd 0x47b5a303
+dd 0x52120503
+dd 0x03007322
+dd 0x0347b5a2
+dd 0x12521a05
+dd 0xa9030093
+dd 0x060448ba
+dd 0x93225214
+dd 0xbaa90300
+dd 0x1e060448
+dd 0x00731452
+dd 0x42ae9f03
+dd 0x520e0302
+dd 0x03007324
+dd 0x0242ad9f
+dd 0x14521303
+dd 0xa4030093
+dd 0x040344b2
+dd 0x93245210
+dd 0xb2a40300
+dd 0x17040344
+dd 0x00769252
+dd 0x97856004
+dd 0x520b0a06
+dd 0x040076a2
+dd 0x0696845f
+dd 0x92520e09
+dd 0x6c040096
+dd 0x0c07998f
+dd 0x96a2520c
+dd 0x8e6b0400
+dd 0x110b0798
+dd 0x00769452
+dd 0x88765804
+dd 0x52090703
+dd 0x040076a4
+dd 0x03877557
+dd 0x94520b06
+dd 0x62040096
+dd 0x08048b7e
+dd 0x96a45209
+dd 0x7d610400
+dd 0x0c07048a
+dd 0x00771252
+dd 0x4ba49403
+dd 0x52140503
+dd 0x03007722
+dd 0x034ba393
+dd 0x12521e05
+dd 0x9a030097
+dd 0x06044ca9
+dd 0x97225216
+dd 0xa8990300
+dd 0x1e05044c
+dd 0x00771452
+dd 0x449c9003
+dd 0x520f0302
+dd 0x03007724
+dd 0x02439c8f
+dd 0x14521503
+dd 0x95030097
+dd 0x040245a0
+dd 0x97245211
+dd 0xa0950300
+dd 0x16030245
+dd 0x0046a263
+dd 0xccad5a03
+dd 0x63170e08
+dd 0x03004692
+dd 0x08cd8a5b
+dd 0x22631110
+dd 0xc5030047
+dd 0x0e08cbee
+dd 0x4712632b
+dd 0xefc50300
+dd 0x1e0f08cc
+dd 0x0046a243
+dd 0xcc886103
+dd 0x43170e08
+dd 0x03004692
+dd 0x08cd8a62
+dd 0x22431110
+dd 0x72020047
+dd 0x07046686
+dd 0x4712432c
+dd 0x87720200
+dd 0x20080466
+dd 0x0046a253
+dd 0xe5996d03
+dd 0x53171009
+dd 0x03004692
+dd 0x09e69a6e
+dd 0x22531011
+dd 0x8c020047
+dd 0x080573a0
+dd 0x4712532b
+dd 0xa18c0200
+dd 0x1b080573
+dd 0x0046a463
+dd 0x62974003
+dd 0x630e0805
+dd 0x04004694
+dd 0x09c5e783
+dd 0x24630a12
+dd 0xab030047
+dd 0x080561d8
+dd 0x4714631b
+dd 0xd9ac0300
+dd 0x14080562
+dd 0x0046a443
+dd 0xc3e48e04
+dd 0x430e1009
+dd 0x04004694
+dd 0x09c5e690
+dd 0x24430b12
+dd 0xc9030047
+dd 0x080561f6
+dd 0x4714431d
+dd 0xf7ca0300
+dd 0x15080562
+dd 0x0046a453
+dd 0x7a885703
+dd 0x530f0a06
+dd 0x03004694
+dd 0x067b8a58
+dd 0x24530a0b
+dd 0x81020047
+dd 0x05033d98
+dd 0x4714531c
+dd 0x98810200
+dd 0x1205033d
+dd 0x004aa263
+dd 0xa8765803
+dd 0x631a0d08
+dd 0x03004a92
+dd 0x08a97759
+dd 0x2263130e
+dd 0xad03004b
+dd 0x0c08a8c8
+dd 0x4b12632e
+dd 0xc8ad0300
+dd 0x200d08a9
+dd 0x004aa243
+dd 0xa8765d03
+dd 0x431a0d08
+dd 0x03004a92
+dd 0x08a9775e
+dd 0x2243130e
+dd 0xc503004b
+dd 0x0c08a8e0
+dd 0x4b12432f
+dd 0xe0c50300
+dd 0x220d08a9
+dd 0x004aa253
+dd 0xbd856803
+dd 0x53190e08
+dd 0x03004a92
+dd 0x08be8669
+dd 0x2253110f
+dd 0x9702004b
+dd 0x07045fa3
+dd 0x4b125330
+dd 0xa3980200
+dd 0x1e07045f
+dd 0x004aa463
+dd 0xc7ca8304
+dd 0x63100e08
+dd 0x04004a94
+dd 0x08c9cc85
+dd 0x24630c10
+dd 0x9703004b
+dd 0x070463b6
+dd 0x4b14631e
+dd 0xb7970300
+dd 0x16070464
+dd 0x004aa443
+dd 0xc7ca8e04
+dd 0x43100e08
+dd 0x04004a94
+dd 0x08c9cb8f
+dd 0x24430c10
+dd 0xaf03004b
+dd 0x070463cf
+dd 0x4b144320
+dd 0xcfb00300
+dd 0x17070464
+dd 0x004aa453
+dd 0xf8f2ae04
+dd 0x53101009
+dd 0x04004a94
+dd 0x09faf4b0
+dd 0x24530c12
+dd 0x8f02004b
+dd 0x04033e9d
+dd 0x4b14531f
+dd 0x9d8f0200
+dd 0x1705033f
+dd 0x004ea263
+dd 0x94975d03
+dd 0x631c0b06
+dd 0x03004e92
+dd 0x0695985e
+dd 0x2263150c
+dd 0xb203004f
+dd 0x0b0693e7
+dd 0x4f126334
+dd 0xe7b30300
+dd 0x230b0694
+dd 0x004ea243
+dd 0x94826003
+dd 0x431d0b06
+dd 0x03004e92
+dd 0x06958361
+dd 0x2243150c
+dd 0xb203004f
+dd 0x0b0693d3
+dd 0x4f124334
+dd 0xd4b20300
+dd 0x230b0694
+dd 0x004ea253
+dd 0xa6786503
+dd 0x531a0c07
+dd 0x03004e92
+dd 0x07a77966
+dd 0x2253120d
+dd 0x8502004f
+dd 0x0604538c
+dd 0x4f125331
+dd 0x8c860200
+dd 0x1f060453
+dd 0x004ea463
+dd 0x60884703
+dd 0x63120604
+dd 0x03004e94
+dd 0x04618948
+dd 0x24630e07
+dd 0x9c03004f
+dd 0x060460d8
+dd 0x4f146322
+dd 0xd89d0300
+dd 0x19060460
+dd 0x004ea443
+dd 0xc0e59404
+dd 0x43120c07
+dd 0x04004e94
+dd 0x07c1e796
+dd 0x24430e0e
+dd 0x9c03004f
+dd 0x060460c4
+dd 0x4f144322
+dd 0xc59c0300
+dd 0x19060460
+dd 0x004ea453
+dd 0xefdda704
+dd 0x53110e08
+dd 0x04004e94
+dd 0x08f0dea9
+dd 0x24530d10
+dd 0x7d02004f
+dd 0x04023c88
+dd 0x4f145324
+dd 0x887d0200
+dd 0x1804023c
+
+ref_fffcb73c:
+dd 0x00000062
+dd 0x44ab8703
+dd 0x42220805
+dd 0x03000000
+dd 0x0544c19f
+dd 0x00522008
+dd 0xda030000
+dd 0x09054df2
+dd 0x0000631e
+dd 0xefc50300
+dd 0x341008cd
+dd 0x00000043
+dd 0x67877202
+dd 0x53340804
+dd 0x02000000
+dd 0x0573a398
+dd 0x00003109
+dd 0x98020000
+dd 0x090573a3
+dd 0x00000034
+
+ref_fffcb78c:
+dd 0x008a2601
+dd 0xee84a905
+dd 0x03060402
+dd 0x008a1601
+dd 0xee4c9105
+dd 0x03050402
+dd 0x008e2601
+dd 0xe979a305
+dd 0x04070302
+dd 0x008e1601
+dd 0xe94a8b05
+dd 0x03060302
+dd 0x008a2401
+dd 0xe0566b04
+dd 0x05090302
+dd 0x008a1401
+dd 0xe03d5f04
+dd 0x04080302
+dd 0x008e2401
+dd 0xdb4f6704
+dd 0x060a0302
+dd 0x008e1401
+dd 0xdb385b04
+dd 0x05090302
+
+ref_fffcb7ec:
+dd 0x00000000
+dd 0xe0566b04
+dd 0x060a0302
+
+ref_fffcb7f8:
+dd 0x02010601
+
+ref_fffcb7fc:
+dd 0x02000100
+dd 0x08000400
+dd 0x20001000
+dd 0x80004000
+
+ref_fffcb80c:
+dd 0x003c0000
+dd 0x004c0048
+dd 0x0078005c
+dd 0x013c0100
+dd 0x014c0148
+dd 0x0178015c
+dd 0x023c0200
+dd 0x024c0248
+dd 0x0278025c
+dd 0x033c0300
+dd 0x034c0348
+dd 0x0378035c
+dd 0x043c0400
+dd 0x044c0448
+dd 0x0478045c
+dd 0x053c0500
+dd 0x054c0548
+dd 0x0578055c
+dd 0x063c0600
+dd 0x064c0648
+dd 0x0678065c
+dd 0x073c0700
+dd 0x074c0748
+dd 0x0778075c
+dd 0x083c0800
+dd 0x084c0848
+dd 0x0878085c
+dd 0x093c0900
+dd 0x094c0948
+dd 0x0978095c
+dd 0x0a3c0a00
+dd 0x0a4c0a48
+dd 0x0a780a5c
+dd 0x0b3c0b00
+dd 0x0b4c0b48
+dd 0x0b780b5c
+dd 0x0c3c0c00
+dd 0x0c4c0c48
+dd 0x0c780c5c
+dd 0x0d3c0d00
+dd 0x0d4c0d48
+dd 0x0d780d5c
+dd 0x0e3c0e00
+dd 0x0e4c0e48
+dd 0x0e780e5c
+dd 0x0f3c0f00
+dd 0x0f4c0f48
+dd 0x0f780f5c
+dd 0x103c1000
+dd 0x104c1048
+dd 0x1078105c
+dd 0x113c1100
+dd 0x114c1148
+dd 0x1178115c
+dd 0x12081204
+dd 0x121c1214
+dd 0x13081304
+dd 0x131c1314
+dd 0x140c1404
+dd 0x150c1504
+dd 0x18101808
+dd 0x19101908
+dd 0x1a0c1a04
+dd 0x1b0c1b04
+dd 0x1c1c1c14
+dd 0x1d1c1d14
+dd 0x20082000
+dd 0x3a1c3a14
+dd 0x3a243a24
+dd 0x40144000
+dd 0x40284024
+dd 0x40d040d0
+dd 0x42244220
+dd 0x42944294
+dd 0x42a0429c
+dd 0x42fc42ec
+dd 0x4390438c
+dd 0x43284328
+dd 0x44144400
+dd 0x44284424
+dd 0x44d044d0
+dd 0x46244620
+dd 0x46944694
+dd 0x46a0469c
+dd 0x46fc46ec
+dd 0x47284728
+dd 0x4790478c
+dd 0x58885884
+dd 0x589c5890
+dd 0x58a458a4
+dd 0x58e458d0
+dd 0x58805880
+dd 0x50dc5000
+
+ref_fffcb980:
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000001
+dd 0x00000000
+dd 0x00000001
+
+ref_fffcb998:
+dd 0x00000102
+
+ref_fffcb99c:
+dd 0x00000000
+dd 0x00000001
+dd 0x00000002
+dd 0x00000003
+dd 0x00000008
+dd 0x00000009
+dd 0x0000000c
+dd 0x0000000d
+dd 0x00000004
+dd 0x00000005
+dd 0x00000006
+dd 0x00000007
+dd 0x0000000a
+dd 0x0000000b
+dd 0x0000000c
+dd 0x0000000d
+
+ref_fffcb9dc:
+dd 0x00000406
+
+ref_fffcb9e0:
+dd ref_fffcc9a8
+dd ref_fffcc9e4
+
+ref_fffcb9e8:
+dd ref_fffcca08
+dd ref_fffcca20
+
+ref_fffcb9f0:
+dd 0x13000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x11000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x15000000
+dd 0x0f000000
+
+ref_fffcba34:
+db 0x1d
+
+ref_fffcba35:
+db 0x00
+db 0x1a
+db 0x00
+
+ref_fffcba38:
+dd loc_fffafaad
+dd loc_fffafc42
+dd loc_fffafc8b
+dd loc_fffafd50
+dd loc_fffafd99
+
+ref_fffcba4c:
+dd 0x00000006
+dd 0x00000002
+dd 0x00000001
+dd 0x00000000
+dd 0x00000002
+dd 0x00000001
+dd 0x00000000
+
+ref_fffcba68:
+dd 0x00000000
+dd 0x00000001
+dd 0x00000002
+dd 0x00000003
+dd 0x00000001
+dd 0x00000002
+dd 0x00000003
+
+ref_fffcba84:
+dd 0x00000000
+dd 0xfffffffa
+dd 0xfffffff4
+dd 0xffffffee
+dd 0x00000006
+dd 0x0000000c
+dd 0x00000012
+
+ref_fffcbaa0:
+dd 0x02010000
+dd 0x06050403
+dd 0x08080707
+dd 0x0a090909
+dd 0x0000000a
+
+ref_fffcbab4:
+dd 0x00010000
+dd 0x00000000
+
+ref_fffcbabc:
+dd 0x00010001
+dd 0x00000307
+
+ref_fffcbac4:
+dd loc_fffb38be
+dd loc_fffb38cc
+dd loc_fffb38dc
+dd loc_fffb38ea
+dd loc_fffb38f8
+dd loc_fffb3903
+dd loc_fffb3910
+dd loc_fffb3928
+dd loc_fffb393e
+dd loc_fffb395a
+
+ref_fffcbaec:
+dd loc_fffb3b02
+dd loc_fffb3b40
+dd loc_fffb3b54
+dd loc_fffb3b64
+dd loc_fffb3b7b
+dd loc_fffb3b40
+dd loc_fffb3b54
+dd loc_fffb3b64
+dd loc_fffb3b7b
+dd loc_fffb3b02
+
+ref_fffcbb14:
+dd loc_fffb3be0
+dd loc_fffb3bf7
+dd loc_fffb3c0e
+dd loc_fffb3c22
+dd loc_fffb3c36
+dd loc_fffb3c4d
+dd loc_fffb3c64
+dd loc_fffb3c78
+dd loc_fffb3cb0
+dd loc_fffb3cc7
+dd loc_fffb3d1c
+dd loc_fffb3d78
+dd loc_fffb3def
+dd loc_fffb3efe
+dd loc_fffb3f2f
+
+ref_fffcbb50:
+dd 0x00100000
+dd 0x00110001
+dd 0x00800081
+
+ref_fffcbb5c:
+dd 0x08c009b0
+dd 0x08c009b0
+dd 0x00000000
+
+ref_fffcbb68:
+dd 0x05000500
+dd 0x00000000
+dd 0x00000000
+
+ref_fffcbb74:
+dd 0x08c009b0
+dd 0x00000000
+dd 0x00000000
+
+ref_fffcbb80:
+dd 0x0bb80bb8
+dd 0x00000000
+dd 0x00000000
+
+ref_fffcbb8c:
+dd fcn_fffbd356
+dd fcn_fffbd30a
+dd fcn_fffbd1e7
+dd fcn_fffbd184
+dd fcn_fffbd1b3
+dd fcn_fffbd106
+dd fcn_fffbd29a
+dd fcn_fffbd213
+dd fcn_fffbd0e4
+dd fcn_fffbd0c8
+dd fcn_fffbd046
+dd fcn_fffbd01d
+
+ref_fffcbbbc:
+dd fcn_fffbce60
+dd fcn_fffb73ef
+dd fcn_fffb6f52
+dd fcn_fffbcc31
+dd fcn_fffbc869
+dd fcn_fffbc643
+dd fcn_fffbc441
+dd fcn_fffb7633
+dd fcn_fffbc277
+dd fcn_fffbc075
+dd fcn_fffbbe9c
+dd fcn_fffbca4d
+dd fcn_fffbbcd4
+dd fcn_fffbbb0c
+dd fcn_fffb7e5c
+dd fcn_fffb7c94
+dd fcn_fffb7acc
+dd fcn_fffb7866
+
+ref_fffcbc04:
+dd 0xffffffff
+
+ref_fffcbc08:
+dd 0x7fffffff
+
+ref_fffcbc0c:
+dd 0x2625a000
+dd 0x00032000
+dd 0x84800300
+dd 0x03e8001e
+dd 0x38020000
+dd 0x2b001c9c
+dd 0x01000004
+dd 0x00196e6a
+dd 0x000004b0
+dd 0x16e36002
+dd 0x00053500
+dd 0xcc5b0100
+dd 0x05780015
+dd 0xd0020000
+dd 0x40001312
+dd 0x03000006
+dd 0x0010f447
+dd 0x00000708
+dd 0x10594402
+dd 0x00074b00
+dd 0x42400100
+dd 0x07d0000f
+dd 0x1c020000
+dd 0x55000e4e
+dd 0x01000008
+dd 0x000ddf22
+dd 0x00000898
+dd 0x0cb73502
+dd 0x00096000
+dd 0xbcce0300
+dd 0x0a28000b
+dd 0xb0020000
+dd 0x6b000b71
+dd 0x0100000a
+dd 0x00000000
+dd 0x00000000
+db 0x00
+
+ref_fffcbc9d:
+db 0x01
+db 0x03
+db 0x00
+
+ref_fffcbca0:
+dd 0x86186186
+dd 0x18618618
+dd 0x30c30c30
+dd 0xa28a28a2
+dd 0x8a28a28a
+dd 0x14514514
+dd 0x28a28a28
+dd 0x92492492
+dd 0x24924924
+
+ref_fffcbcc4:
+dd 0x00a10ca1
+dd 0x00ef0d08
+dd 0x00ad0a1e
+
+ref_fffcbcd0:
+dd loc_fffb9240
+dd loc_fffb917c
+dd loc_fffb91b3
+dd loc_fffb9209
+dd loc_fffb928b
+dd loc_fffb9240
+dd loc_fffb9240
+
+ref_fffcbcec:
+dd 0x00780078
+dd 0x00000000
+
+ref_fffcbcf4:
+dd 0x28002800
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+dd 0x28002800
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+
+ref_fffcbd0c:
+dd 0x003c003c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+dd 0x003c003c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+
+ref_fffcbd24:
+dd 0x00780078
+dd 0x00000000
+
+ref_fffcbd2c:
+dd 0x3c3c3c3c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+dd 0x3c3c3c3c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+
+ref_fffcbd44:
+dd 0x3c3c3c3c
+dd 0x283c283c
+dd 0x283c283c
+dd 0x3c3c3c3c
+dd 0x283c283c
+dd 0x283c283c
+
+ref_fffcbd5c:
+dd 0xfafafabb
+dd 0x00d7d7d7
+
+ref_fffcbd64:
+dd ref_fffccaa8
+dd ref_fffccb64
+dd ref_fffccb64
+dd ref_fffccb64
+dd ref_fffccc60
+dd ref_fffccc60
+dd ref_fffccc60
+
+ref_fffcbd80:
+dd 0xc1392859
+dd 0x446e1f65
+dd 0x3584f5b3
+dd 0xc4d1c7fc
+
+ref_fffcbd90:
+dd 0x2020201c
+dd 0x00121212
+
+ref_fffcbd98:
+dd ref_fffccd38
+dd ref_fffcce88
+dd ref_fffcce88
+dd ref_fffcce88
+dd ref_fffcd008
+dd ref_fffcd008
+dd ref_fffcd008
+
+ref_fffcbdb4:
+dd 0x12121212
+dd 0x00141414
+
+ref_fffcbdbc:
+dd ref_fffcd0e0
+dd ref_fffcd1b8
+dd ref_fffcd1b8
+dd ref_fffcd1b8
+dd ref_fffcd290
+dd ref_fffcd290
+dd ref_fffcd290
+
+ref_fffcbdd8:
+dd ref_fffcd380
+dd ref_fffcd3e0
+dd ref_fffcd3e0
+dd ref_fffcd3e0
+dd ref_fffcd440
+dd ref_fffcd440
+dd ref_fffcd440
+
+ref_fffcbdf4:
+dd 0x01010101
+dd 0x00010101
+
+ref_fffcbdfc:
+dd 0xfb0af600
+dd 0x000ff105
+
+ref_fffcbe04:
+dd 0x00aaaaaa
+dd 0x00cccccc
+dd 0x00f0f0f0
+
+ref_fffcbe10:
+dd 0x00a10ca1
+dd 0x00ef0d08
+dd 0x00ad0a1e
+
+ref_fffcbe1c:
+dd 0x00000020
+dd 0x00000040
+dd 0x00000080
+dd 0x00000100
+dd 0x00000200
+dd 0x00000400
+dd 0x00000800
+dd 0x00001000
+
+ref_fffcbe3c:
+dd loc_fffbd2bb
+dd loc_fffbd2c7
+dd loc_fffbd2d8
+dd loc_fffbd2e4
+dd loc_fffbd2f0
+
+ref_fffcbe50:
+dd 0x04030201
+dd 0x06000500
+dd 0x00000700
+
+ref_fffcbe5c:
+dd 0x08c009b0
+dd 0x00000000
+dd 0x00000000
+
+ref_fffcbe68:
+dd loc_fffbf2e0
+dd loc_fffbf34c
+dd loc_fffbf67c
+dd loc_fffbf67c
+dd loc_fffbf3b8
+dd loc_fffbf4e9
+dd loc_fffbf617
+
+ref_fffcbe84:
+dd 0x00000401
+dd 0x00000203
+
+ref_fffcbe8c:
+dd 0x283c7800
+dd 0x0000141e
+
+ref_fffcbe94:
+dd 0x00000000
+dd 0x00000000
+dd 0x00070000
+dd 0x03ff07ff
+dd 0x00000000
+dd 0x00000020
+dd 0x00000003
+dd 0x00000003
+dd 0x00000000
+dd 0x00010001
+dd 0x00350049
+
+ref_fffcbec0:
+db ' ',0x00,0x00,0x00,0x00
+
+ref_fffcbed4:
+db '0000000000000000',0x00,0x00,0x00,0x00
+
+ref_fffcbee8:
+dd 0x4000f001
+dd 0x02005a01
+dd 0x011800dc
+dd 0x9004005a
+dd 0xa0020801
+dd 0x01900500
+dd 0x00a00208
+dd 0xe000f010
+dd 0x11000001
+dd 0x01e000f0
+dd 0xc0200000
+dd 0x00018000
+dd 0x00c02100
+dd 0x00000180
+dd 0x2200be0b
+dd 0x00000001
+
+ref_fffcbf28:
+dd fcn_fffaa884
+
+ref_fffcbf2c:
+dd 0x0000dd1b
+dd 0xff320000
+dd fcn_fffaa6af
+dd 0x0001dd1c
+dd 0xff3e0000
+dd fcn_fffa7899
+dd 0x0004dd1e
+dd 0xff3f0000
+dd fcn_fffa78a0
+dd 0x0005dd1f
+dd 0xff3f0000
+dd fcn_fffb8689
+dd 0x0003dd20
+dd 0xff310000
+dd fcn_fffa782c
+dd 0x0006dd21
+dd 0xff3f0000
+dd fcn_fffa7a1c
+dd 0x0007dd22
+dd 0xff3f0000
+dd fcn_fffa56ac
+dd 0x0008dd23
+dd 0xff3f0000
+dd fcn_fffc7720
+dd 0x0009dd24
+dd 0xff3f0000
+dd fcn_fffbd7da
+dd 0x000add26
+dd 0xff330000
+dd fcn_fffb8c0b
+dd 0x000bdd27
+dd 0xff330000
+dd fcn_fffb3f6c
+dd 0x000fdd29
+dd 0xff310000
+dd fcn_fffab4c0
+dd 0x000ddd28
+dd 0xff310000
+dd fcn_fffbd5ac
+dd 0x000edd25
+dd 0xff330000
+dd fcn_fffa94dd
+dd 0x0011dd2b
+dd 0xff310000
+dd fcn_fffae06c
+dd 0x0010dd2a
+dd 0xff310000
+dd fcn_fffba408
+dd 0x0012dd2c
+dd 0xff310000
+dd fcn_fffb8625
+dd 0x0014dd2e
+dd 0xff310000
+dd fcn_fffae02a
+dd 0x0015dd2f
+dd 0xff310000
+dd fcn_fffb8d2d
+dd 0x0020dd49
+dd 0xff310000
+dd fcn_fffb5763
+dd 0x0016dd46
+dd 0xff310000
+dd fcn_fffb5cbc
+dd 0x0017dd30
+dd 0xff310000
+dd fcn_fffb5535
+dd 0x0018dd30
+dd 0xff310000
+dd fcn_fffb5c9f
+dd 0x0019dd32
+dd 0xff310000
+dd fcn_fffb58c8
+dd 0x001bdd33
+dd 0xff310000
+dd fcn_fffb5a70
+dd 0x001cdd35
+dd 0xff310000
+dd fcn_fffb5811
+dd 0x001add45
+dd 0xff310000
+dd fcn_fffb59af
+dd 0x001edd37
+dd 0xff310000
+dd fcn_fffb568f
+dd 0x001ddd36
+dd 0xff310000
+dd fcn_fffb514c
+dd 0x001fdd41
+dd 0xff310000
+dd fcn_fffb89f8
+dd 0x0032dd3d
+dd 0xff310000
+dd fcn_fffad6f1
+dd 0x0026dd3e
+dd 0xff310000
+dd fcn_fffaddd4
+dd 0x0023dd3a
+dd 0xff310000
+dd fcn_fffbb819
+dd 0x0024dd3b
+dd 0xff310000
+dd fcn_fffadf82
+dd 0x0025dd3c
+dd 0xff310000
+dd fcn_fffb85ca
+dd 0x0021dd38
+dd 0xff310000
+dd fcn_fffadfcf
+dd 0x0022dd39
+dd 0xff310000
+dd fcn_fffae80e
+dd 0x0027dd3f
+dd 0xff310000
+dd fcn_fffb365a
+dd 0x0028dd40
+dd 0xff310000
+dd fcn_fffae04b
+dd 0x0029dd47
+dd 0xff310000
+dd fcn_fffb2e66
+dd 0x003bdd58
+dd 0x01310000
+dd fcn_fffb8040
+dd 0x002bdd44
+dd 0xff310000
+dd fcn_fffb8d2d
+dd 0x0020dd49
+dd 0xff310000
+dd fcn_fffa7ecd
+dd 0x0033dd50
+dd 0xff310000
+dd fcn_fffab280
+dd 0x002add42
+dd 0xff310000
+dd fcn_fffa948c
+dd 0x002ddd43
+dd 0xff3e0000
+dd fcn_fffbd4c2
+dd 0x002edd70
+dd 0xff3c0000
+dd fcn_fffa7e78
+dd 0x002fdd71
+dd 0xff3e0000
+dd fcn_fffaacb1
+dd 0x0030dd5b
+dd 0xff310000
+dd fcn_fffa7e71
+dd 0x002cdd5f
+dd 0xff310000
+dd fcn_fffaa9d1
+dd 0x0031dd5c
+dd 0xff330000
+dd fcn_fffa8fb6
+dd 0x0034dd5d
+dd 0xff3f0000
+
+ref_fffcc198:
+dd 0x02010201
+dd 0x02010201
+dd 0x03030303
+dd 0x00000000
+
+ref_fffcc1a8:
+dd 0x040f0f0f
+dd 0x010f030f
+dd 0x0f0f0f0f
+dd 0x000f0205
+
+ref_fffcc1b8:
+dd 0x32320101
+dd 0x20101010
+dd 0x23232320
+dd 0x00000020
+dd 0x00000010
+dd 0x00000023
+dd 0x21303120
+dd 0x00002120
+dd 0x00003020
+dd 0x00000020
+dd 0x00000000
+dd 0x00000000
+
+ref_fffcc1e8:
+dd loc_fffc5fad
+dd loc_fffc5fa7
+dd loc_fffc5fd2
+dd loc_fffc5fc4
+dd loc_fffc600c
+dd loc_fffc5ff0
+dd loc_fffc6041
+dd loc_fffc6058
+dd loc_fffc60ac
+dd loc_fffc6094
+dd loc_fffc60ba
+dd loc_fffc60f8
+
+ref_fffcc218:
+dd loc_fffc6340
+dd loc_fffc63f4
+dd loc_fffc6298
+dd loc_fffc63f4
+dd loc_fffc6283
+dd loc_fffc63f4
+dd loc_fffc6365
+dd loc_fffc6354
+dd loc_fffc6283
+dd loc_fffc63a7
+
+ref_fffcc240:
+db 0x0e
+
+ref_fffcc241:
+db 0x08
+db 0x08
+db 0x06
+
+ref_fffcc244:
+dd 0x03020100
+
+ref_fffcc248:
+dd 0x00060504
+
+ref_fffcc24c:
+dd loc_fffc645b
+dd loc_fffc646f
+dd loc_fffc647a
+dd loc_fffc6485
+dd loc_fffc6490
+dd loc_fffc649b
+dd loc_fffc64a6
+dd loc_fffc64ae
+dd loc_fffc64b9
+dd loc_fffc64cd
+dd loc_fffc64c5
+dd loc_fffc64e0
+dd loc_fffc64e8
+dd loc_fffc64d5
+dd loc_fffc64f3
+dd loc_fffc64fe
+dd loc_fffc6509
+dd loc_fffc6525
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc6530
+dd loc_fffc6539
+dd loc_fffc6546
+dd loc_fffc654e
+dd loc_fffc6556
+dd loc_fffc6561
+dd loc_fffc6569
+dd loc_fffc657a
+dd loc_fffc6597
+dd loc_fffc697d
+dd loc_fffc65b5
+dd loc_fffc65bf
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc65ca
+dd loc_fffc697d
+dd loc_fffc6517
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc697d
+dd loc_fffc65de
+dd loc_fffc697d
+dd loc_fffc65aa
+
+ref_fffcc308:
+dd 0x00030104
+dd 0x00050200
+dd 0x04000000
+dd 0x00000706
+dd 0x00000200
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000200
+
+ref_fffcc32c:
+dd 0x45454552
+
+ref_fffcc330:
+dd ref_fffcd58c
+dd ref_fffcd964
+dd ref_fffcd964
+dd ref_fffcd964
+
+ref_fffcc340:
+db '("""MMM',0x00
+
+ref_fffcc348:
+dd ref_fffcdca0
+dd ref_fffcde80
+dd ref_fffcde80
+dd ref_fffcde80
+dd ref_fffce018
+dd ref_fffce018
+dd ref_fffce018
+
+ref_fffcc364:
+dd 0x0c0c0c08
+
+ref_fffcc368:
+dd ref_fffce3b4
+dd ref_fffce414
+dd ref_fffce414
+dd ref_fffce414
+
+ref_fffcc378:
+dd 0x06060604
+dd 0x00040404
+
+ref_fffcc380:
+dd ref_fffce4a4
+dd ref_fffce4d4
+dd ref_fffce4d4
+dd ref_fffce4d4
+dd ref_fffce51c
+dd ref_fffce51c
+dd ref_fffce51c
+
+ref_fffcc39c:
+dd 0x0c0c0c08
+
+ref_fffcc3a0:
+dd ref_fffce54c
+dd ref_fffce5ac
+dd ref_fffce5ac
+dd ref_fffce5ac
+
+ref_fffcc3b0:
+dd 0x06060604
+dd 0x00040404
+
+ref_fffcc3b8:
+dd ref_fffce63c
+dd ref_fffce66c
+dd ref_fffce66c
+dd ref_fffce66c
+dd ref_fffce6b4
+dd ref_fffce6b4
+dd ref_fffce6b4
+
+ref_fffcc3d4:
+dd loc_fffc8509
+dd loc_fffc8514
+dd loc_fffc8525
+dd loc_fffc8536
+dd loc_fffc8547
+dd loc_fffc85f0
+dd loc_fffc86ad
+dd loc_fffc8bc5
+dd loc_fffc86c7
+dd loc_fffc8806
+dd loc_fffc894e
+dd loc_fffc8558
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8692
+dd loc_fffc85f0
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8bc5
+dd loc_fffc8692
+dd loc_fffc85f0
+
+ref_fffcc45c:
+db 'hljztL',0x00
+
+ref_fffcc463:
+db '(null)',0x00
+
+ref_fffcc46a:
+db 'Copy SPD for Channel %d Dimm %d',0x0a,0x00
+
+ref_fffcc48b:
+db '%s:%d pool cookie corrupted...',0x0a,0x00
+
+ref_fffcc4ab:
+db '%s:%d failed to allocate %d bytes...',0x0a,0x00
+
+ref_fffcc4d1:
+db '{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}',0x0a,0x00
+
+ref_fffcc505:
+db '%s: overwrite GUID ',0x00
+
+ref_fffcc519:
+db '%s: no room for a new PPI',0x0a,0x00
+
+ref_fffcc534:
+db 'System Agent: Starting up...',0x0a,0x00
+
+ref_fffcc552:
+db 'System Agent: S3 resume detected',0x0a,0x00
+
+ref_fffcc574:
+db 'System Agent: Unsupported DDR3 frequence %d (Supported are 800, 1067, 1333, 1600)',0x0a,0x00
+
+ref_fffcc5c7:
+db 'System Agent: Initializing PCH',0x0a,0x00
+
+ref_fffcc5e7:
+db 'System Agent: Initializing PCH (SMBUS)',0x0a,0x00
+
+ref_fffcc60f:
+db 'System Agent: Initializing PCH (USB)',0x0a,0x00
+
+ref_fffcc635:
+db 'System Agent: Initializing PCH (SA Init)',0x0a,0x00
+
+ref_fffcc65f:
+db 'System Agent: Initializing PCH (Me UMA)',0x0a,0x00
+
+ref_fffcc688:
+db 'System Agent: Initializing Memory',0x0a,0x00
+
+ref_fffcc6ab:
+db 'System Agent: failed to locate restore data hob!',0x0a,0x00
+
+ref_fffcc6dd:
+db 'System Agent: Done.',0x0a,0x00
+
+ref_fffcc6f2:
+db 'Stack completely exhaused!',0x0a,0x00
+
+ref_fffcc70e:
+db 'Sanity checking heap.',0x0a,0x00
+
+ref_fffcc725:
+db 'Reference code used approx 0x%x/0x%x of stack.',0x0a,0x00,0x00
+
+ref_fffcc756:
+db 0x50
+db 0x00
+dd 0x00680063
+dd 0x006e0049
+dd 0x00740069
+dd 0x00650050
+dd 0x00000069
+dd 0x00000014
+dd 0x00000000
+dd 0x00527a01
+dd 0x01087c01
+dd 0x04040c1b
+dd 0x00000188
+dd 0x00000048
+dd 0x0000001c
+dd 0xffffca44
+dd 0x00000128
+dd 0x080e4100
+dd 0x0d420285
+dd 0x03874605
+dd 0x0a7c0486
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x0a790b41
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x0a4d0b45
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x8d020b41
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x0000004c
+dd 0x00000068
+dd 0xffffcb28
+dd 0x00000145
+dd 0x080e4100
+dd 0x0d420285
+dd 0x03874605
+dd 0x0a6c0486
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x0a680b41
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x0a670b46
+dd 0x41c741c6
+dd 0x04040cc5
+dd 0x81020b47
+dd 0xc741c60a
+dd 0x040cc541
+dd 0x000b4504
+dd 0x3b031b01
+dd 0xffffff48
+dd 0x00000002
+dd 0xffffc9b0
+dd 0xffffff64
+dd 0xffffcae0
+dd 0xffffffb0
+
+ref_fffcc83c:
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd fcn_fffa04f5
+dd 0x00000000
+dd 0x00000000
+dd fcn_fffa050c
+dd 0x00000000
+dd fcn_fffa0502
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+
+ref_fffcc88c:
+dd 0x30eb2979
+dd 0x4d60b0f7
+dd 0x2c1adcb2
+dd 0xf4b1ce96
+
+ref_fffcc89c:
+dd 0x9a7ef41e
+dd 0x4bd1c140
+dd 0x111e84b8
+dd 0xe64c0b24
+
+ref_fffcc8ac:
+dd 0xb6ec423c
+dd 0x490d21d2
+dd 0x58ddc685
+dd 0x74a6ea64
+
+ref_fffcc8bc:
+dd 0xf8d5438e
+dd 0x481d26e1
+dd 0xd6303cb6
+dd 0x20a4f4ef
+
+ref_fffcc8cc:
+dd 0x7ae3ceb7
+dd 0x48fa2ee2
+dd 0x103549aa
+dd 0xbfca83bc
+
+ref_fffcc8dc:
+dd 0x00000000
+dd 0x00000001
+dd 0x00000002
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000003
+dd 0x01010001
+dd 0x07010201
+
+ref_fffcc904:
+dd 0x80000020
+dd ref_fffcc91c
+dd fcn_fffa036f
+
+ref_fffcc910:
+dd 0x80000010
+dd ref_fffcc92c
+dd 0x00000000
+
+ref_fffcc91c:
+dd 0xf894643d
+dd 0x42d1c449
+dd 0xbd85a88e
+dd 0xde5bc6d8
+
+ref_fffcc92c:
+dd 0x09ea8911
+dd 0x4230be0d
+dd 0xc6ed03a0
+dd 0x118eb493
+
+ref_fffcc93c:
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x000003ff
+dd 0x000003ff
+dd 0x00000000
+dd 0x000002aa
+dd 0x000002aa
+dd 0x00000001
+dd 0x00000155
+dd 0x00000155
+dd 0x00000001
+
+ref_fffcc96c:
+dd 0x908c7f8b
+dd 0x47fb5c48
+dd 0xfdf55783
+dd 0x7652234e
+
+ref_fffcc97c:
+dd 0x80000010
+dd ref_fffcc96c
+dd ref_fffcc998
+
+ref_fffcc988:
+dd 0x887acae1
+dd 0x4eee6a8c
+dd 0x12910d97
+dd 0xf1bc63da
+
+ref_fffcc998:
+dd fcn_fffaea18
+dd fcn_fffc5978
+dd fcn_fffc5d49
+dd fcn_fffc7bc0
+
+ref_fffcc9a8:
+dd 0x00000480
+dd 0x00000490
+dd 0x000004a0
+dd 0x000004b0
+dd 0x000004c0
+dd 0x000004d0
+dd 0x000004e0
+dd 0x000004f0
+dd 0x00000500
+dd 0x00000510
+dd 0x00000520
+dd 0x00000530
+dd 0x00000540
+dd 0x00000550
+dd 0x00000560
+
+ref_fffcc9e4:
+dd 0x00000480
+dd 0x00000490
+dd 0x000004a0
+dd 0x000004b0
+dd 0x000004c0
+dd 0x000004d0
+dd 0x000004e0
+dd 0x000004f0
+dd 0x00000500
+
+ref_fffcca08:
+dd 0x00000570
+dd 0x00000580
+dd 0x00000590
+dd 0x000005a0
+dd 0x000005b0
+dd 0x000005c0
+
+ref_fffcca20:
+dd 0x00000510
+dd 0x00000520
+dd 0x00000530
+dd 0x00000540
+
+ref_fffcca30:
+dd 0x80000020
+dd ref_fffcca3c
+dd fcn_fffb9720
+
+ref_fffcca3c:
+dd 0x36f6ce3d
+dd 0x42c2b76e
+dd 0x413e969f
+dd 0x6650a384
+
+ref_fffcca4c:
+dd 0x80000010
+dd ref_fffcca98
+dd 0x00000000
+
+ref_fffcca58:
+dd 0xeb002090
+dd 0xffff00ff
+dd 0x00005100
+dd 0xeb002290
+dd 0xffff00ff
+dd 0x00005100
+dd 0xeb000490
+dd 0xffff00ff
+dd 0x00005100
+dd 0xeb000690
+dd 0xffff00ff
+dd 0x00005100
+
+ref_fffcca88:
+dd 0x433e0f9f
+dd 0x410a05ae
+dd 0x29bfc3a0
+dd 0xac25cb8e
+
+ref_fffcca98:
+dd 0x1edcbdf9
+dd 0x4bd4ffc6
+dd 0x5d19f694
+dd 0x5670e11d
+
+ref_fffccaa8:
+dd 0x02235679
+dd 0xa6c1401a
+dd 0xeb000805
+dd 0x0394c144
+dd 0x40eb0004
+dd 0x08059683
+dd 0x8340e900
+dd 0x00080596
+dd 0x948344ea
+dd 0xe9000403
+dd 0x03948344
+dd 0x0cea0004
+dd 0x02ab5080
+dd 0x800ceb0e
+dd 0x0e02ab50
+dd 0x89c100e9
+dd 0xeb0f0b5f
+dd 0x5f89c100
+dd 0x7ce90f0b
+dd 0x403f00c1
+dd 0xc17ceb3d
+dd 0x4f003f00
+dd 0x84c178e9
+dd 0xe900001b
+dd 0x4304c1cc
+dd 0x90eb0035
+dd 0x3e5155c0
+dd 0x8290e92b
+dd 0x2b3e5155
+dd 0x46c08cea
+dd 0xe90c7820
+dd 0x2046828c
+dd 0x30ea0c78
+dd 0x000f00c0
+dd 0xc030eb00
+dd 0x00000f00
+dd 0x00c030e9
+dd 0xea00000f
+dd 0x4304c1cc
+dd 0xcce90035
+dd 0x354304c1
+dd 0xc02cea00
+dd 0x0f000a00
+dd 0x00822ceb
+dd 0xe90f000a
+dd 0x0a00822c
+dd 0x00ea0f00
+
+ref_fffccb64:
+dd 0x0326671c
+dd 0x00c02c23
+dd 0xeb0f000a
+dd 0x0a00822c
+dd 0x40e90f00
+dd 0x08059cc1
+dd 0xc098e900
+dd 0x1f203b41
+dd 0x41c098eb
+dd 0xe91f203b
+dd 0x3b41c098
+dd 0x2cea1f20
+dd 0x000a0082
+dd 0xc030ea0f
+dd 0x00000f00
+dd 0x00c030eb
+dd 0xe900000f
+dd 0x6055c094
+dd 0x30eb4740
+dd 0x000f00c0
+dd 0x8340ea00
+dd 0x0008059c
+dd 0x80c178ea
+dd 0xeb000019
+dd 0x6055c094
+dd 0x94e94740
+dd 0x406055c0
+dd 0xc088ea47
+dd 0x5580983a
+dd 0x80c178eb
+dd 0xe9000019
+dd 0x983ac088
+dd 0x88e95580
+dd 0x80983a82
+dd 0xc08cea55
+dd 0x0c782046
+dd 0x46c08ceb
+dd 0xe90c7820
+dd 0x2046828c
+dd 0x78ea0c78
+dd 0x001980c1
+dd 0xc1ccea00
+dd 0x38254304
+dd 0x04c1cce9
+dd 0xeb382543
+dd 0x4304c1cc
+dd 0x7cea3825
+dd 0xa02400c1
+dd 0xc17ce94e
+dd 0x3ec02400
+dd 0x00c17ceb
+dd 0xea3ec024
+dd 0x05acc140
+dd 0x90eb0008
+dd 0x3e5155c0
+dd 0xc090eb2b
+dd 0x2b3e5155
+dd 0x558290e9
+dd 0xea2b3e51
+dd 0x8000c008
+dd 0x08e9b000
+dd 0x008000c0
+dd 0x0000eab0
+
+ref_fffccc60:
+dd 0x111773ed
+dd 0x09c00c1e
+dd 0xe9072237
+dd 0x3709c00c
+dd 0x2cea0722
+dd 0x000a0082
+dd 0xc140e90f
+dd 0x0008059c
+dd 0x00c02cea
+dd 0xea0f000a
+dd 0x3b41c098
+dd 0x30e91f20
+dd 0x000f00c0
+dd 0xc098e900
+dd 0x1f203b41
+dd 0x9cc140ea
+dd 0xe9000805
+dd 0x6055c094
+dd 0x30e94740
+dd 0x000f00c0
+dd 0xc178ea00
+dd 0x00001980
+dd 0x55c094e9
+dd 0xea474060
+dd 0x1980c178
+dd 0x88ea0000
+dd 0x80983ac0
+dd 0xc088e955
+dd 0x5580983a
+dd 0x46c08cea
+dd 0xe90c7820
+dd 0x2046c08c
+dd 0x90ea0c78
+dd 0x3e5155c0
+dd 0xc090e92b
+dd 0x2b3e5155
+dd 0x04c1ccea
+dd 0xe9380043
+dd 0x2400c17c
+dd 0xcce94ea0
+dd 0x004304c1
+dd 0xc17cea38
+dd 0x3ec02400
+dd 0x00c1c4ea
+dd 0xea000002
+dd 0x0200c1c4
+dd 0x08e90000
+dd 0x008000c0
+dd 0xc008e9b0
+dd 0xb0008000
+dd 0x09c00cea
+dd 0xe9072217
+dd 0x1709c00c
+dd 0x00ea0722
+
+ref_fffccd38:
+dd 0xe9003140
+dd 0xff000000
+dd 0x00040998
+dd 0xe9003340
+dd 0xff000000
+dd 0x00040998
+dd 0xe9001540
+dd 0xff000000
+dd 0x00040998
+dd 0xe9001740
+dd 0xff000000
+dd 0x00040998
+dd 0xe900316c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900336c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900156c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900176c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe9003168
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9003368
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9001568
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9001768
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe900314c
+dd 0xff00ffff
+dd 0x00140000
+dd 0xe900334c
+dd 0xff00ffff
+dd 0x00140000
+dd 0xe900154c
+dd 0xff00ffff
+dd 0x00140000
+dd 0xe900174c
+dd 0xff00ffff
+dd 0x00140000
+dd 0xe9003164
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9003364
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9001564
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9001764
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9003170
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9003370
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9001570
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9001770
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe90031cc
+dd 0xffffebf8
+dd 0x00001401
+dd 0xe90033cc
+dd 0xffffebf8
+dd 0x00001401
+dd 0xe90015cc
+dd 0xffffebf8
+dd 0x00001401
+dd 0xe90017cc
+dd 0xffffebf8
+dd 0x00001401
+
+ref_fffcce88:
+dd 0xe90031cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe90033cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe90015cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe90017cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe9003168
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9003368
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9001568
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9001768
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe900316c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900336c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900156c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900176c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900314c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe900334c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe900154c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe900174c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe9003114
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9003314
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9001514
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9001714
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9003164
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9003364
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9001564
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9001764
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9003170
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9003370
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9001570
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9001770
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9003038
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9003238
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9001438
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9001638
+dd 0xfffffff0
+dd 0x0000000b
+
+ref_fffcd008:
+dd 0xe90021cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe90023cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe9002168
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9002368
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe900216c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900236c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900214c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe900234c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe9002164
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002364
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002170
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002370
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002114
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9002314
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9002038
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9002238
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9002014
+dd 0xffff01ff
+dd 0x00006600
+dd 0xe9002214
+dd 0xffff01ff
+dd 0x00006600
+
+ref_fffcd0e0:
+dd 0xe9002d40
+dd 0xff000000
+dd 0x00040998
+dd 0xe9002f40
+dd 0xff000000
+dd 0x00040998
+dd 0xe9002d6c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe9002f6c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe9002d44
+dd 0xffffff00
+dd 0x00000014
+dd 0xe9002f44
+dd 0xffffff00
+dd 0x00000014
+dd 0xe9002d68
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9002f68
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9002d4c
+dd 0xff00ffff
+dd 0x00140000
+dd 0xe9002f4c
+dd 0xff00ffff
+dd 0x00140000
+dd 0xe9002d64
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002f64
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002d70
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002f70
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002dcc
+dd 0xffffebf8
+dd 0x00001401
+dd 0xe9002fcc
+dd 0xffffebf8
+dd 0x00001401
+dd 0xe9002c2c
+dd 0xfffff8ff
+dd 0x00000100
+dd 0xe9002e2c
+dd 0xfffff8ff
+dd 0x00000100
+
+ref_fffcd1b8:
+dd 0xe9002c2c
+dd 0xfffff8ff
+dd 0x00000100
+dd 0xe9002e2c
+dd 0xfffff8ff
+dd 0x00000100
+dd 0xe9002dcc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe9002fcc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe9002d68
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9002f68
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9002d6c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe9002f6c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe9002d4c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe9002f4c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe9002d14
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9002f14
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9002d64
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002f64
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002d70
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002f70
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002c38
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9002e38
+dd 0xfffffff0
+dd 0x0000000b
+
+ref_fffcd290:
+dd 0xe90025cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe90027cc
+dd 0xffffebf8
+dd 0x00001407
+dd 0xe9002568
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe9002768
+dd 0xfefff0c3
+dd 0x00000a28
+dd 0xe900242c
+dd 0xfffff8ff
+dd 0x00000100
+dd 0xe900262c
+dd 0xfffff8ff
+dd 0x00000100
+dd 0xe900256c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900276c
+dd 0xffffff00
+dd 0x0000003f
+dd 0xe900254c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe900274c
+dd 0xff0000ff
+dd 0x00120500
+dd 0xe9002564
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002764
+dd 0xffff0fff
+dd 0x00005000
+dd 0xe9002570
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002770
+dd 0xffffffe7
+dd 0x00000000
+dd 0xe9002514
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9002714
+dd 0xc7fff8ff
+dd 0x00000100
+dd 0xe9002438
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9002638
+dd 0xfffffff0
+dd 0x0000000b
+dd 0xe9002414
+dd 0xffff01ff
+dd 0x00006600
+dd 0xe9002614
+dd 0xffff01ff
+dd 0x00006600
+
+ref_fffcd380:
+dd 0xe9002e08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002c08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002a08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002808
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002608
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002408
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002208
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002008
+dd 0x0ffffeff
+dd 0xe0000100
+
+ref_fffcd3e0:
+dd 0xe9002e08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002c08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002a08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002808
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002608
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002408
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002208
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9002008
+dd 0x0ffffeff
+dd 0xe0000100
+
+ref_fffcd440:
+dd 0xe9000808
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9000a08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9000c08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9000e08
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9001008
+dd 0x0ffffeff
+dd 0xe0000100
+dd 0xe9001208
+dd 0x0ffffeff
+dd 0xe0000100
+
+ref_fffcd488:
+dd 0xf38d1338
+dd 0x4fb6af7a
+dd 0x9c1adb91
+dd 0x0d578321
+
+ref_fffcd498:
+dd 0x80000010
+dd ref_fffcd504
+dd ref_fffcd514
+
+ref_fffcd4a4:
+dd 0x4c10d934
+dd 0x45a438e6
+dd 0x792a249a
+dd 0x7fcb3db9
+
+ref_fffcd4b4:
+dd 0x1f4c6f90
+dd 0x48d8b06b
+dd 0xe5ba01a2
+dd 0x567dcdf1
+
+ref_fffcd4c4:
+dd 0x87f22dcb
+dd 0x41057304
+dd 0x71317cbb
+dd 0x3bc2cc43
+
+ref_fffcd4d4:
+dd 0x3cdc90c6
+dd 0x4a7513fb
+dd 0xe959799e
+dd 0xfab978dd
+
+ref_fffcd4e4:
+dd 0x573eaf99
+dd 0x46b5f445
+dd 0x4abcd5a5
+dd 0xf3983593
+
+ref_fffcd4f4:
+dd 0xabd42895
+dd 0x487278cf
+dd 0x5c1b4484
+dd 0xdafb0b18
+
+ref_fffcd504:
+dd 0x8c376010
+dd 0x4d7d2400
+dd 0x859d7bb4
+dd 0xd1c9f31d
+
+ref_fffcd514:
+dd fcn_fffc8c78
+dd fcn_fffbe070
+dd fcn_fffbe14d
+dd fcn_fffbe110
+
+ref_fffcd524:
+dd 0x63b6e435
+dd 0x49c632bc
+dd 0xa1b7bd81
+dd 0x6c1afea0
+
+ref_fffcd534:
+dd 0xed097352
+dd 0x445a9041
+dd 0x9db2b680
+dd 0x45889e50
+
+ref_fffcd544:
+dd 0xf894643d
+dd 0x42d1c449
+dd 0xbd85a88e
+dd 0xde5bc6d8
+
+ref_fffcd554:
+dd 0x80000020
+dd ref_fffcd57c
+dd fcn_fffa1227
+
+ref_fffcd560:
+dd 0x80000020
+dd ref_fffcd57c
+dd fcn_fffc7c34
+
+ref_fffcd56c:
+dd 0xa31b27a4
+dd 0x48ffcae6
+dd 0x42295a8c
+dd 0x89f3e621
+
+ref_fffcd57c:
+dd 0x605ea650
+dd 0x42e1c65c
+dd 0xa59180ba
+dd 0xc618b62a
+
+ref_fffcd58c:
+dd 0xea008008
+dd 0x00ffffff
+dd 0x1c000000
+dd 0xea00800c
+dd 0xffff8000
+dd 0x00002b50
+dd 0xea0024a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0026a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0008a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea000aa4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0024ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0026ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0008ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea000aac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea002488
+dd 0xffff00ff
+dd 0x00008000
+dd 0xea002688
+dd 0xffff00ff
+dd 0x00008000
+dd 0xea000888
+dd 0xffff00ff
+dd 0x00008000
+dd 0xea000a88
+dd 0xffff00ff
+dd 0x00008000
+dd 0xea002494
+dd 0x7fffffff
+dd 0x80000000
+dd 0xea002694
+dd 0x7fffffff
+dd 0x80000000
+dd 0xea000894
+dd 0x7fffffff
+dd 0x80000000
+dd 0xea000a94
+dd 0x7fffffff
+dd 0x80000000
+dd 0xea002540
+dd 0xff000000
+dd 0x00180918
+dd 0xea002740
+dd 0xff000000
+dd 0x00180918
+dd 0xea000940
+dd 0xff000000
+dd 0x00180918
+dd 0xea000b40
+dd 0xff000000
+dd 0x00180918
+dd 0xea002544
+dd 0xff000000
+dd 0x00140918
+dd 0xea002744
+dd 0xff000000
+dd 0x00140918
+dd 0xea000944
+dd 0xff000000
+dd 0x00140918
+dd 0xea000b44
+dd 0xff000000
+dd 0x00140918
+dd 0xea002548
+dd 0xff000000
+dd 0x00140918
+dd 0xea002748
+dd 0xff000000
+dd 0x00140918
+dd 0xea000948
+dd 0xff000000
+dd 0x00140918
+dd 0xea000b48
+dd 0xff000000
+dd 0x00140918
+dd 0xea002550
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002750
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea000950
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea000b50
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002554
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002754
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea000954
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea000b54
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002410
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002610
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea000810
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea000a10
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002400
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002600
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea000800
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea000a00
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002408
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002608
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea000808
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea000a08
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002418
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002618
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea000818
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea000a18
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002428
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002628
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea000828
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea000a28
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002438
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002638
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea000838
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea000a38
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002440
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002640
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea000840
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea000a40
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea00242c
+dd 0xfffdffff
+dd 0x00020000
+dd 0xea00262c
+dd 0xfffdffff
+dd 0x00020000
+dd 0xea00082c
+dd 0xfffdffff
+dd 0x00020000
+dd 0xea000a2c
+dd 0xfffdffff
+dd 0x00020000
+dd 0xea00241c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00261c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00081c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea000a1c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea002500
+dd 0xffff1fc1
+dd 0x00004008
+dd 0xea002700
+dd 0xffff1fc1
+dd 0x00004008
+dd 0xea000900
+dd 0xffff1fc1
+dd 0x00004008
+dd 0xea000b00
+dd 0xffff1fc1
+dd 0x00004008
+dd 0xea00257c
+dd 0xfff0c0ff
+dd 0x00003f00
+dd 0xea00277c
+dd 0xfff0c0ff
+dd 0x00003f00
+dd 0xea00097c
+dd 0xfff0c0ff
+dd 0x00003f00
+dd 0xea000b7c
+dd 0xfff0c0ff
+dd 0x00003f00
+
+ref_fffcd964:
+dd 0xea008008
+dd 0x00ffffff
+dd 0x1c000000
+dd 0xea002408
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002608
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea000808
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea000a08
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002438
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002638
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea000838
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea000a38
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002440
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002640
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea000840
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea000a40
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002410
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002610
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea000810
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea000a10
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea00242c
+dd 0xfffdf7ff
+dd 0x00020000
+dd 0xea00262c
+dd 0xfffdf7ff
+dd 0x00020000
+dd 0xea00082c
+dd 0xfffdf7ff
+dd 0x00020000
+dd 0xea000a2c
+dd 0xfffdf7ff
+dd 0x00020000
+dd 0xea002418
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002618
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea000818
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea000a18
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002400
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002600
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea000800
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea000a00
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002428
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002628
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea000828
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea000a28
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea00241c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00261c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00081c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea000a1c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00248c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00268c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00088c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea000a8c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea0024a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0026a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0008a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea000aa4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0024ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0026ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0008ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea000aac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea002540
+dd 0xff000000
+dd 0x00140718
+dd 0xea002740
+dd 0xff000000
+dd 0x00140718
+dd 0xea000940
+dd 0xff000000
+dd 0x00140718
+dd 0xea000b40
+dd 0xff000000
+dd 0x00140718
+dd 0xea002544
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002744
+dd 0xff000000
+dd 0x0014091b
+dd 0xea000944
+dd 0xff000000
+dd 0x0014091b
+dd 0xea000b44
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002548
+dd 0xff000000
+dd 0x00140918
+dd 0xea002748
+dd 0xff000000
+dd 0x00140918
+dd 0xea000948
+dd 0xff000000
+dd 0x00140918
+dd 0xea000b48
+dd 0xff000000
+dd 0x00140918
+dd 0xea00257c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00277c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00097c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea000b7c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea002578
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea002778
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea000978
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea000b78
+dd 0xffffe0ff
+dd 0x00001800
+
+ref_fffcdca0:
+dd 0xea0020a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0022a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0020ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0022ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea002088
+dd 0xffff00ff
+dd 0x00008000
+dd 0xea002288
+dd 0xffff00ff
+dd 0x00008000
+dd 0xea002094
+dd 0x7fffffff
+dd 0x80000000
+dd 0xea002294
+dd 0x7fffffff
+dd 0x80000000
+dd 0xea002140
+dd 0xff000000
+dd 0x00180918
+dd 0xea002340
+dd 0xff000000
+dd 0x00180918
+dd 0xea002144
+dd 0xff000000
+dd 0x00140918
+dd 0xea002344
+dd 0xff000000
+dd 0x00140918
+dd 0xea002148
+dd 0xff000000
+dd 0x00140918
+dd 0xea002348
+dd 0xff000000
+dd 0x00140918
+dd 0xea002150
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002350
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002154
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002354
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002010
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002210
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002000
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002200
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002008
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002208
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002018
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002218
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002028
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002228
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002038
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002238
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002040
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002240
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea00202c
+dd 0xfffdf8ff
+dd 0x00020100
+dd 0xea00222c
+dd 0xfffdf8ff
+dd 0x00020100
+dd 0xea00201c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00221c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea002100
+dd 0xffff1fc1
+dd 0x00004008
+dd 0xea002300
+dd 0xffff1fc1
+dd 0x00004008
+dd 0xea00217c
+dd 0xfff0c0ff
+dd 0x00003f00
+dd 0xea00237c
+dd 0xfff0c0ff
+dd 0x00003f00
+
+ref_fffcde80:
+dd 0xea002008
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002208
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002038
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002238
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea00202c
+dd 0xfffdf0ff
+dd 0x00020100
+dd 0xea00222c
+dd 0xfffdf0ff
+dd 0x00020100
+dd 0xea002040
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002240
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002010
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002210
+dd 0x0000ffff
+dd 0x0d510000
+dd 0xea002018
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002218
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002000
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002200
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002028
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002228
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea00201c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00221c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00208c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00228c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea0020a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0022a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0020ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0022ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea002140
+dd 0xff000000
+dd 0x00140718
+dd 0xea002340
+dd 0xff000000
+dd 0x00140718
+dd 0xea002144
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002344
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002148
+dd 0xff000000
+dd 0x00140918
+dd 0xea002348
+dd 0xff000000
+dd 0x00140918
+dd 0xea00217c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00237c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea002178
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea002378
+dd 0xffffe0ff
+dd 0x00001800
+
+ref_fffce018:
+dd 0xea008008
+dd 0x00ffffff
+dd 0x1c000000
+dd 0xea002008
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002208
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002408
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002608
+dd 0x00039ef7
+dd 0xea6c6108
+dd 0xea002038
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002238
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002438
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea002638
+dd 0xfffffff0
+dd 0x0000000d
+dd 0xea00202c
+dd 0xfffdf0ff
+dd 0x00020100
+dd 0xea00222c
+dd 0xfffdf0ff
+dd 0x00020100
+dd 0xea00242c
+dd 0xfffdf0ff
+dd 0x00020100
+dd 0xea00262c
+dd 0xfffdf0ff
+dd 0x00020100
+dd 0xea002040
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002240
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002440
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002640
+dd 0xe0ffffff
+dd 0x01000000
+dd 0xea002010
+dd 0x0000ffff
+dd 0x55510000
+dd 0xea002210
+dd 0x0000ffff
+dd 0x55510000
+dd 0xea002410
+dd 0x0000ffff
+dd 0x55510000
+dd 0xea002610
+dd 0x0000ffff
+dd 0x55510000
+dd 0xea002150
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002350
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002550
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002750
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002154
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002354
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002554
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002754
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002140
+dd 0xff000000
+dd 0x00140718
+dd 0xea002340
+dd 0xff000000
+dd 0x00140718
+dd 0xea002540
+dd 0xff000000
+dd 0x00140718
+dd 0xea002740
+dd 0xff000000
+dd 0x00140718
+dd 0xea002144
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002344
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002544
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002744
+dd 0xff000000
+dd 0x0014091b
+dd 0xea002148
+dd 0xff000000
+dd 0x00140918
+dd 0xea002348
+dd 0xff000000
+dd 0x00140918
+dd 0xea002548
+dd 0xff000000
+dd 0x00140918
+dd 0xea002748
+dd 0xff000000
+dd 0x00140918
+dd 0xea00217c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00237c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00257c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00277c
+dd 0xfcffffff
+dd 0x03000000
+dd 0xea00208c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00228c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00248c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00268c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea0020a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0022a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0024a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0026a4
+dd 0xffcf00ff
+dd 0x00308300
+dd 0xea0020ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0022ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0024ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea0026ac
+dd 0xffffffcf
+dd 0x00000020
+dd 0xea002018
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002218
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002418
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002618
+dd 0x0000fcff
+dd 0x38250100
+dd 0xea002000
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002200
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002400
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002600
+dd 0x30fcffff
+dd 0xcf030000
+dd 0xea002028
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002228
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002428
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea002628
+dd 0x00e0ffff
+dd 0x580e0000
+dd 0xea00201c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00221c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00241c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea00261c
+dd 0xffff83ff
+dd 0x00002400
+dd 0xea002178
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea002378
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea002578
+dd 0xffffe0ff
+dd 0x00001800
+dd 0xea002778
+dd 0xffffe0ff
+dd 0x00001800
+
+ref_fffce3b4:
+dd 0xea002490
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002690
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea000890
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea000a90
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea00248c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00268c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00088c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea000a8c
+dd 0xff00ffff
+dd 0x00800000
+
+ref_fffce414:
+dd 0xea002550
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002750
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea000950
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea000b50
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002554
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002754
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea000954
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea000b54
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002490
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002690
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea000890
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea000a90
+dd 0xffff0000
+dd 0x00004c5a
+
+ref_fffce4a4:
+dd 0xea002090
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002290
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea00208c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00228c
+dd 0xff00ffff
+dd 0x00800000
+
+ref_fffce4d4:
+dd 0xea002150
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002350
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002154
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002354
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002090
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002290
+dd 0xffff0000
+dd 0x00004c5a
+
+ref_fffce51c:
+dd 0xea002090
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002290
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002490
+dd 0xffff0000
+dd 0x00004c5a
+dd 0xea002690
+dd 0xffff0000
+dd 0x00004c5a
+
+ref_fffce54c:
+dd 0xea002490
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002690
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea000890
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea000a90
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea00248c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00268c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00088c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea000a8c
+dd 0xff00ffff
+dd 0x00800000
+
+ref_fffce5ac:
+dd 0xea002550
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002750
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea000950
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea000b50
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002554
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002754
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea000954
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea000b54
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002490
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002690
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea000890
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea000a90
+dd 0xffff0000
+dd 0x00003e67
+
+ref_fffce63c:
+dd 0xea002090
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002290
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea00208c
+dd 0xff00ffff
+dd 0x00800000
+dd 0xea00228c
+dd 0xff00ffff
+dd 0x00800000
+
+ref_fffce66c:
+dd 0xea002150
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002350
+dd 0xc0ffffff
+dd 0x02000000
+dd 0xea002154
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002354
+dd 0xffc0ffff
+dd 0x00020000
+dd 0xea002090
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002290
+dd 0xffff0000
+dd 0x00003e67
+
+ref_fffce6b4:
+dd 0xea002090
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002290
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002490
+dd 0xffff0000
+dd 0x00003e67
+dd 0xea002690
+dd 0xffff0000
+dd 0x00003e67
diff --git a/src/northbridge/intel/haswell/raminit.c b/src/northbridge/intel/haswell/raminit.c
index 2fdbe07c8d..e981ea9576 100644
--- a/src/northbridge/intel/haswell/raminit.c
+++ b/src/northbridge/intel/haswell/raminit.c
@@ -111,6 +111,7 @@ static void report_memory_config(void)
}
}
+int __attribute((regparm(1))) mrc_entry(struct pei_data *pei_data);
/**
* Find PEI executable in coreboot filesystem and execute it.
*
@@ -118,10 +119,6 @@ static void report_memory_config(void)
*/
void sdram_initialize(struct pei_data *pei_data)
{
- unsigned long entry;
- uint32_t type = CBFS_TYPE_MRC;
- struct cbfsf f;
-
printk(BIOS_DEBUG, "Starting UEFI PEI System Agent\n");
/*
@@ -147,15 +144,10 @@ void sdram_initialize(struct pei_data *pei_data)
* a fixed offset in the flash and can therefore only reside in the
* COREBOOT fmap region
*/
- if (cbfs_locate_file_in_region(&f, "COREBOOT", "mrc.bin", &type) < 0)
- die("mrc.bin not found!");
/* We don't care about leaking the mapping */
- entry = (unsigned long)rdev_mmap_full(&f.data);
- if (entry) {
- int rv;
- asm volatile (
- "call *%%ecx\n\t"
- :"=a" (rv) : "c" (entry), "a" (pei_data));
+ if (1) {
+ printk(BIOS_DEBUG, "calling mrc_entry.\n");
+ int rv = mrc_entry(pei_data);
/* mrc.bin reconfigures USB, so reinit it to have debug */
if (CONFIG(USBDEBUG_IN_PRE_RAM))