summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2020-11-09 12:42:19 +0800
committerIru Cai <mytbk920423@gmail.com>2020-11-15 11:00:59 +0800
commitd5a7ee4465a8a3c1c99cd809466c4a2d55ca4a31 (patch)
tree4a48eb8bc41f38ec120f26f5f23ccb97be14996b
parentb42967112f2e907e6c3b5dc47b424f8a1d7eb50e (diff)
downloadcoreboot-d5a7ee4465a8a3c1c99cd809466c4a2d55ca4a31.tar.xz
add broadwell_mrc.asm
-rw-r--r--src/soc/intel/broadwell/Kconfig30
-rw-r--r--src/soc/intel/broadwell/Makefile.inc6
-rw-r--r--src/soc/intel/broadwell/raminit.c16
-rw-r--r--src/soc/intel/broadwell/refcode/Makefile.inc1
-rw-r--r--src/soc/intel/broadwell/refcode/broadwell_mrc.asm72358
5 files changed, 72361 insertions, 50 deletions
diff --git a/src/soc/intel/broadwell/Kconfig b/src/soc/intel/broadwell/Kconfig
index 5871d58d17..de80bf3dfe 100644
--- a/src/soc/intel/broadwell/Kconfig
+++ b/src/soc/intel/broadwell/Kconfig
@@ -124,36 +124,6 @@ config DCACHE_BSP_STACK_SIZE
The amount of anticipated stack usage in CAR by bootblock and
other stages.
-config HAVE_MRC
- bool "Add a Memory Reference Code binary"
- help
- Select this option to add a Memory Reference Code binary to
- the resulting coreboot image.
-
- Note: Without this binary coreboot will not work
-
-if HAVE_MRC
-
-config MRC_FILE
- string "Intel Memory Reference Code path and filename"
- depends on HAVE_MRC
- default "mrc.bin"
- help
- The filename of the file to use as Memory Reference Code binary.
-
-config MRC_BIN_ADDRESS
- hex
- default 0xfffa0000
-
-# The UEFI System Agent binary needs to be at a fixed offset in the flash
-# and can therefore only reside in the COREBOOT fmap region
-config RO_REGION_ONLY
- string
- depends on VBOOT
- default "mrc.bin"
-
-endif # HAVE_MRC
-
config PRE_GRAPHICS_DELAY
int "Graphics initialization delay in ms"
default 0
diff --git a/src/soc/intel/broadwell/Makefile.inc b/src/soc/intel/broadwell/Makefile.inc
index f8743cf7b5..cfbd5e47ce 100644
--- a/src/soc/intel/broadwell/Makefile.inc
+++ b/src/soc/intel/broadwell/Makefile.inc
@@ -32,10 +32,4 @@ CPPFLAGS_common += -Isrc/soc/intel/broadwell/include
mrcelfoffset = $(shell $(READELF_x86_32) -S -W $(CONFIG_MRC_FILE) | sed -e 's/\[ /[0/' | awk '$$3 ~ /PROGBITS/ { print "0x"$$5; exit }' )
mrcelfentry = $(shell $(READELF_x86_32) -h -W $(CONFIG_MRC_FILE) | grep 'Entry point address' | awk '{print $$NF }')
-# Add memory reference code blob.
-cbfs-files-$(CONFIG_HAVE_MRC) += mrc.bin
-mrc.bin-file := $(call strip_quotes,$(CONFIG_MRC_FILE))
-mrc.bin-position := $(if $(findstring elf,$(CONFIG_MRC_FILE)),$(shell printf "0x%x" $$(( $(mrcelfentry) - $(mrcelfoffset) )) ),$(CONFIG_MRC_BIN_ADDRESS))
-mrc.bin-type := mrc
-
endif
diff --git a/src/soc/intel/broadwell/raminit.c b/src/soc/intel/broadwell/raminit.c
index e51b4f7b66..da0ad6b378 100644
--- a/src/soc/intel/broadwell/raminit.c
+++ b/src/soc/intel/broadwell/raminit.c
@@ -78,10 +78,7 @@ void raminit(struct pei_data *pei_data)
{
size_t mrc_size;
struct memory_info *mem_info;
- pei_wrapper_entry_t entry;
int ret;
- struct cbfsf f;
- uint32_t type = CBFS_TYPE_MRC;
broadwell_fill_pei_data(pei_data);
@@ -114,19 +111,10 @@ void raminit(struct pei_data *pei_data)
pei_data->saved_data_size = 0;
}
- /* Determine if mrc.bin is in the cbfs. */
- 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 = (pei_wrapper_entry_t)rdev_mmap_full(&f.data);
- if (entry == NULL) {
- printk(BIOS_DEBUG, "Couldn't find mrc.bin\n");
- return;
- }
-
printk(BIOS_DEBUG, "Starting Memory Reference Code\n");
- ret = entry(pei_data);
+ int ABI_X86 mrc_entry(struct pei_data *pei_data);
+ ret = mrc_entry(pei_data);
if (ret < 0)
die("pei_data version mismatch\n");
diff --git a/src/soc/intel/broadwell/refcode/Makefile.inc b/src/soc/intel/broadwell/refcode/Makefile.inc
index 74bd08dfcd..ce1fa0319c 100644
--- a/src/soc/intel/broadwell/refcode/Makefile.inc
+++ b/src/soc/intel/broadwell/refcode/Makefile.inc
@@ -1,3 +1,4 @@
+romstage-libs += $(obj)/broadwell_mrc.o
ramstage-libs += $(obj)/broadwell_refcode.o
$(obj)/%.o: $(src)/soc/intel/broadwell/refcode/%.asm
diff --git a/src/soc/intel/broadwell/refcode/broadwell_mrc.asm b/src/soc/intel/broadwell/refcode/broadwell_mrc.asm
new file mode 100644
index 0000000000..5a6b7db548
--- /dev/null
+++ b/src/soc/intel/broadwell/refcode/broadwell_mrc.asm
@@ -0,0 +1,72358 @@
+;; Generated with r2dumpbin (https://github.com/mytbk/r2dumpbin)
+;; f va @ 0xfffa0000
+;; f fcn1 @ 0xfffa87da
+;; f fcn2 @ 0xfffb7579
+;; f fcn3 @ 0xfffab07d
+;; f fcn4 @ 0xfffb742b
+;; f fcn5 @ 0xfffb7458
+
+bits 32
+global mrc_entry
+
+mrc_entry:
+pushad
+mov ebx, esp
+mov eax, dword [ebx + 0x24]
+mov esp, 0xff800000
+push ebx
+push eax
+mov al, 1
+out 0x80, al
+cld
+call fcn_fffa0024 ; call 0xfffa0024
+pop ecx
+pop ebx
+mov esp, ebx
+mov dword [ebx + 0x1c], eax
+mov al, 2
+out 0x80, al
+popad
+ret
+
+fcn_fffa0024:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x4c
+mov eax, dword [ebp + 8]
+mov eax, dword [eax]
+cmp eax, 0x16
+je short loc_fffa0050 ; je 0xfffa0050
+push edx
+push 0x16
+push eax
+push ref_fffd5f4a ; push 0xfffd5f4a
+call fcn_fffb76e3 ; call 0xfffb76e3
+add esp, 0x10
+or eax, 0xffffffff
+jmp near loc_fffa1e87 ; jmp 0xfffa1e87
+
+loc_fffa0050:
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0xca]
+mov dword [0xff7d0274], eax
+push eax
+push eax
+push 0x270
+push 0xff7d0004
+call fcn_fffac673 ; call 0xfffac673
+mov eax, dword [ebp + 8]
+add esp, 0x10
+mov dword [0xff7d0004], 0xfeaddeaf
+mov dword [0xff7d0084], eax
+cmp dword [eax + 8], 3
+jne short loc_fffa00af ; jne 0xfffa00af
+cmp dword [eax + 0x8f6], 0
+je short loc_fffa00af ; je 0xfffa00af
+sub esp, 0xc
+push ref_fffd5f6e ; push 0xfffd5f6e
+call fcn_fffb76e3 ; call 0xfffb76e3
+add esp, 0x10
+mov dword [0xff7d0080], 0x11
+jmp short loc_fffa00b9 ; jmp 0xfffa00b9
+
+loc_fffa00af:
+mov dword [0xff7d0080], 6
+
+loc_fffa00b9:
+mov dword [0xff7d008c], ref_fffd65b0 ; mov dword [0xff7d008c], 0xfffd65b0
+mov dword [0xff7d0178], 1
+mov dword [0xff7d0028], fcn_fffc54ff ; mov dword [0xff7d0028], 0xfffc54ff
+mov dword [0xff7d0030], fcn_fffa5c78 ; mov dword [0xff7d0030], 0xfffa5c78
+mov dword [0xff7d0034], fcn_fffa5c69 ; mov dword [0xff7d0034], 0xfffa5c69
+mov dword [0xff7d0038], fcn_fffa87da ; mov dword [0xff7d0038], 0xfffa87da
+mov dword [0xff7d003c], fcn_fffb7579 ; mov dword [0xff7d003c], 0xfffb7579
+mov dword [0xff7d002c], fcn_fffab07d ; mov dword [0xff7d002c], 0xfffab07d
+mov dword [0xff7d0020], fcn_fffc5451 ; mov dword [0xff7d0020], 0xfffc5451
+mov dword [0xff7d0054], fcn_fffb709f ; mov dword [0xff7d0054], 0xfffb709f
+mov dword [0xff7d0058], fcn_fffab11d ; mov dword [0xff7d0058], 0xfffab11d
+mov dword [0xff7d007c], fcn_fffa5c62 ; mov dword [0xff7d007c], 0xfffa5c62
+mov dword [0xff7d0278], 0xff7d0008
+mov dword [0xff7d0000], 0xff7d0278
+call fcn_fffab405 ; call 0xfffab405
+sub esp, 0xc
+mov eax, dword [eax]
+push 0
+call dword [eax + 0x74] ; ucall
+mov edx, dword [0xff7d0278]
+add esp, 0x10
+mov dword [edx + 0x60], ref_fffd608c ; mov dword [edx + 0x60], 0xfffd608c
+cmp eax, 0x80000014
+je short loc_fffa017b ; je 0xfffa017b
+sub esp, 0xc
+push ref_fffd6080 ; push 0xfffd6080
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa017b:
+sub esp, 0xc
+push ref_fffd5f7e ; push 0xfffd5f7e
+call fcn_fffb76e3 ; call 0xfffb76e3
+mov esi, dword [0xff7d0084]
+call fcn_fffb481e ; call 0xfffb481e
+mov dword [esp], 0x5ac
+mov dword [ebp - 0x2c], eax
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+je loc_fffa0efc ; je 0xfffa0efc
+sub esp, 0xc
+push 0xc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x38], eax
+test eax, eax
+je loc_fffa0efc ; je 0xfffa0efc
+mov dword [eax], 0x80000010
+xor edi, edi
+mov dword [eax + 4], ref_fffd6584 ; mov dword [eax + 4], 0xfffd6584
+mov dword [eax + 8], ebx
+mov byte [ebx], 0xb
+mov byte [ebx + 1], 0
+mov dword [ebx + 4], 0xfed1c000
+mov eax, dword [esi + 0x2a]
+mov word [ebx + 8], ax
+mov eax, dword [esi + 0x2e]
+mov byte [ebx + 0xc], 0
+mov byte [ebx + 0x37e], 0
+mov byte [ebx + 0x370], 1
+mov word [ebx + 0xa], ax
+mov byte [ebx + 0x1da], 1
+mov byte [ebx + 0x386], 1
+mov ax, word [esi + 0x18]
+or byte [ebx + 0x45e], 1
+or byte [ebx + 0x49e], 0x80
+and byte [ebx + 0x486], 0xfe
+or byte [ebx + 0x412], 0xf
+mov word [ebx + 0x388], ax
+mov byte [ebx + 0x3a], 0
+mov byte [ebx + 0x496], 1
+mov byte [ebx + 0x497], 1
+mov byte [ebx + 0x498], 1
+mov byte [ebx + 0x499], 1
+mov byte [ebx + 0x49a], 1
+mov byte [ebx + 0x49b], 1
+mov byte [ebx + 0x49c], 1
+mov byte [ebx + 0x49d], 1
+or byte [ebx + 0x419], 0xc0
+or byte [ebx + 0x41e], 2
+or byte [ebx + 0x424], 0x40
+mov byte [ebx + 0x43c], 1
+
+loc_fffa0294:
+call fcn_fffb481e ; call 0xfffb481e
+cmp eax, 1
+je short loc_fffa02a9 ; je 0xfffa02a9
+cmp eax, 2
+sete al
+shl eax, 2
+jmp short loc_fffa02ab ; jmp 0xfffa02ab
+
+loc_fffa02a9:
+mov al, 6
+
+loc_fffa02ab:
+movzx eax, al
+cmp edi, eax
+jae short loc_fffa02c0 ; jae 0xfffa02c0
+imul eax, edi, 0x12
+inc edi
+or byte [ebx + eax + 0x1e1], 0x40
+jmp short loc_fffa0294 ; jmp 0xfffa0294
+
+loc_fffa02c0:
+mov al, byte [ebx + 0x436]
+xor edx, edx
+and byte [ebx + 0x426], 0xfe
+or byte [ebx + 0x432], 7
+or eax, 3
+and eax, 0xfffffffb
+mov word [ebx + 0x43a], 0
+mov byte [ebx + 0x436], al
+mov byte [ebx + 0x1a8], 1
+
+loc_fffa02f2:
+mov dword [ebp - 0x30], edx
+call fcn_fffb4984 ; call 0xfffb4984
+mov edx, dword [ebp - 0x30]
+cmp dl, al
+jae short loc_fffa032a ; jae 0xfffa032a
+movzx eax, dl
+imul eax, eax, 0x2c
+add eax, ebx
+mov cl, byte [eax + 0x46]
+mov byte [eax + 0x4f], dl
+mov byte [eax + 0x50], dl
+inc edx
+mov byte [eax + 0x56], 4
+or ecx, 5
+and ecx, 0x7f
+mov byte [eax + 0x57], 3
+mov byte [eax + 0x4e], 0
+mov byte [eax + 0x46], cl
+jmp short loc_fffa02f2 ; jmp 0xfffa02f2
+
+loc_fffa032a:
+or byte [ebx + 0x17a], 8
+sub esp, 0xc
+and byte [ebx + 0x1aa], 0xfe
+mov byte [ebx + 0x1a6], 0
+mov byte [ebx + 0x1a7], 0
+mov byte [ebx + 0x1a9], 1
+push 0xc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+test eax, eax
+je short loc_fffa037e ; je 0xfffa037e
+sub esp, 0xc
+mov dword [eax], 0x80000010
+mov dword [eax + 4], ref_fffd60ec ; mov dword [eax + 4], 0xfffd60ec
+mov dword [eax + 8], ref_fffd6194 ; mov dword [eax + 8], 0xfffd6194
+push eax
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa037e:
+mov dword [ebx + 0x1db], 1
+xor edi, edi
+
+loc_fffa038a:
+call fcn_fffb481e ; call 0xfffb481e
+cmp eax, 1
+je short loc_fffa03a1 ; je 0xfffa03a1
+cmp eax, 2
+jne loc_fffa042d ; jne 0xfffa042d
+mov al, 4
+jmp short loc_fffa03a3 ; jmp 0xfffa03a3
+
+loc_fffa03a1:
+mov al, 6
+
+loc_fffa03a3:
+mov ecx, edi
+cmp cl, al
+jae loc_fffa042d ; jae 0xfffa042d
+mov eax, edi
+inc edi
+movzx eax, al
+imul eax, eax, 0x12
+add eax, ebx
+mov cl, byte [eax + 0x1e1]
+lea edx, [eax + 0x1da]
+mov byte [eax + 0x1df], 0x71
+mov byte [eax + 0x1e0], 0x1f
+mov byte [eax + 0x1e4], 1
+and ecx, 0xffffffc0
+or ecx, 0x27
+mov byte [eax + 0x1e1], cl
+mov byte [eax + 0x1e6], 1
+mov byte [eax + 0x1e8], 1
+mov byte [eax + 0x1e3], 0
+mov byte [eax + 0x1e5], 0
+mov byte [eax + 0x1e7], 0
+mov byte [eax + 0x1e9], 0
+mov byte [eax + 0x1ea], 0
+mov byte [eax + 0x1eb], 0
+mov byte [eax + 0x1ec], 0
+and byte [edx + 0x13], 0xf0
+jmp near loc_fffa038a ; jmp 0xfffa038a
+
+loc_fffa042d:
+mov al, byte [ebx + 0x24c]
+mov byte [ebx + 0x24b], 0x7e
+mov byte [ebx + 0x253], 0
+mov byte [ebx + 0x255], 1
+or eax, 0x1e
+and eax, 0xfffffffe
+mov byte [ebx + 0x24c], al
+lea eax, [ebx + 0x38e]
+mov byte [ebx + 0x254], 0
+mov dword [ebx + 0x24f], 0
+mov byte [ebx + 0x257], 0
+mov byte [ebx + 0x258], 0
+mov byte [ebx + 0x259], 0
+mov byte [ebx + 0x25a], 0
+mov byte [ebx + 0x25b], 0x64
+mov byte [ebx + 0x38d], 4
+push edi
+xor edi, edi
+push 4
+push ref_fffd6190 ; push 0xfffd6190
+push eax
+call fcn_fffab101 ; call 0xfffab101
+mov word [ebx + 0x36], 0x8086
+mov word [ebx + 0x38], 0x7270
+mov byte [ebx + 0x3b], 0
+mov byte [ebx + 0x360], 2
+mov byte [ebx + 0x361], 0
+mov byte [ebx + 0x362], 1
+mov byte [ebx + 0x35c], 1
+mov byte [ebx + 0x35d], 0xf0
+mov byte [ebx + 0x35e], 0x1f
+mov byte [ebx + 0x35f], 0
+mov eax, dword [esi + 0xc]
+mov word [ebx + 0x22], 0xd000
+mov word [ebx + 0x24], 0x10
+mov byte [ebx + 0x11], al
+mov eax, dword [esi + 0x32]
+mov dword [ebx + 0x1e], 0x10000
+mov byte [ebx + 0x18], 2
+mov byte [ebx + 0x19], 6
+mov dword [ebx + 0x1a], eax
+mov esi, dword [0xff7d0084]
+mov byte [ebx + 0x371], 0
+mov word [ebx + 0x374], 0x12c
+mov byte [ebx + 0x372], 1
+mov byte [ebx + 0x373], 0
+call fcn_fffb481e ; call 0xfffb481e
+mov dword [ebp - 0x30], eax
+mov eax, dword [0xff7d0084]
+mov eax, dword [eax + 0x14]
+add eax, 0xf8002
+mov dword [esp], eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+add esp, 0x10
+mov byte [ebx + 0x284], 0
+mov byte [ebx + 0x28c], 0
+mov byte [ebx + 0x295], 1
+mov byte [ebx + 0x294], 1
+mov byte [ebx + 0x297], 0
+mov ecx, eax
+mov byte [ebx + 0x296], 1
+
+loc_fffa057d:
+mov dword [ebp - 0x34], ecx
+call fcn_fffb5bb6 ; call 0xfffb5bb6
+mov ecx, dword [ebp - 0x34]
+movzx eax, al
+cmp edi, eax
+jae short loc_fffa059a ; jae 0xfffa059a
+mov byte [ebx + edi + 0x298], 0
+inc edi
+jmp short loc_fffa057d ; jmp 0xfffa057d
+
+loc_fffa059a:
+xor edi, edi
+
+loc_fffa059c:
+mov dword [ebp - 0x34], ecx
+call fcn_fffb5b8d ; call 0xfffb5b8d
+mov ecx, dword [ebp - 0x34]
+movzx eax, al
+cmp edi, eax
+jae short loc_fffa05b9 ; jae 0xfffa05b9
+mov byte [ebx + edi + 0x2a6], 0
+inc edi
+jmp short loc_fffa059c ; jmp 0xfffa059c
+
+loc_fffa05b9:
+mov byte [ebx + 0x2ac], 0
+mov byte [ebx + 0x285], 0
+mov byte [ebx + 0x28d], 0
+mov byte [ebx + 0x339], 0
+mov byte [ebx + 0x338], 1
+mov al, byte [esi + 0x5c]
+mov byte [ebx + 0x2b0], al
+mov al, byte [esi + 0x61]
+mov byte [ebx + 0x2b8], al
+mov al, byte [esi + 0x66]
+mov byte [ebx + 0x2c0], al
+mov al, byte [esi + 0x6b]
+mov byte [ebx + 0x2c8], al
+mov al, byte [esi + 0x70]
+mov byte [ebx + 0x2d0], al
+mov al, byte [esi + 0x75]
+mov byte [ebx + 0x2d8], al
+mov al, byte [esi + 0x7a]
+mov byte [ebx + 0x2e0], al
+mov al, byte [esi + 0x7f]
+mov byte [ebx + 0x2e8], al
+mov al, byte [esi + 0x84]
+mov byte [ebx + 0x2f0], al
+mov al, byte [esi + 0x89]
+mov byte [ebx + 0x2f8], al
+mov al, byte [esi + 0x8e]
+mov byte [ebx + 0x300], al
+mov al, byte [esi + 0x93]
+mov byte [ebx + 0x308], al
+mov al, byte [esi + 0x98]
+mov byte [ebx + 0x310], al
+mov al, byte [esi + 0x9d]
+mov byte [ebx + 0x318], al
+mov al, byte [esi + 0xa0]
+mov byte [ebx + 0x320], al
+mov al, byte [esi + 0xa3]
+mov byte [ebx + 0x324], al
+mov al, byte [esi + 0xa6]
+mov byte [ebx + 0x328], al
+mov al, byte [esi + 0xa9]
+mov byte [ebx + 0x32c], al
+mov al, byte [esi + 0xac]
+mov byte [ebx + 0x330], al
+mov al, byte [esi + 0xaf]
+mov byte [ebx + 0x334], al
+mov al, byte [esi + 0x5d]
+mov byte [ebx + 0x2b1], al
+mov al, byte [esi + 0x62]
+mov byte [ebx + 0x2b9], al
+mov al, byte [esi + 0x67]
+mov byte [ebx + 0x2c1], al
+mov al, byte [esi + 0x6c]
+mov byte [ebx + 0x2c9], al
+mov al, byte [esi + 0x71]
+mov byte [ebx + 0x2d1], al
+mov al, byte [esi + 0x76]
+mov byte [ebx + 0x2d9], al
+mov al, byte [esi + 0x7b]
+mov byte [ebx + 0x2e1], al
+mov al, byte [esi + 0x80]
+mov byte [ebx + 0x2e9], al
+mov al, byte [esi + 0x85]
+mov byte [ebx + 0x2f1], al
+mov al, byte [esi + 0x8a]
+mov byte [ebx + 0x2f9], al
+mov al, byte [esi + 0x8f]
+mov byte [ebx + 0x301], al
+mov al, byte [esi + 0x94]
+mov byte [ebx + 0x309], al
+mov al, byte [esi + 0x99]
+mov byte [ebx + 0x311], al
+mov al, byte [esi + 0x9e]
+mov byte [ebx + 0x319], al
+mov al, byte [esi + 0xa1]
+mov byte [ebx + 0x321], al
+mov al, byte [esi + 0xa4]
+mov byte [ebx + 0x325], al
+mov al, byte [esi + 0xa7]
+mov byte [ebx + 0x329], al
+mov al, byte [esi + 0xaa]
+mov byte [ebx + 0x32d], al
+mov al, byte [esi + 0xad]
+mov byte [ebx + 0x331], al
+mov al, byte [esi + 0xb0]
+mov byte [ebx + 0x335], al
+mov ax, word [esi + 0x5a]
+mov word [ebx + 0x2b4], ax
+mov ax, word [esi + 0x5f]
+mov word [ebx + 0x2bc], ax
+mov ax, word [esi + 0x64]
+mov word [ebx + 0x2c4], ax
+mov ax, word [esi + 0x69]
+mov word [ebx + 0x2cc], ax
+mov ax, word [esi + 0x6e]
+mov word [ebx + 0x2d4], ax
+mov ax, word [esi + 0x73]
+mov word [ebx + 0x2dc], ax
+mov ax, word [esi + 0x78]
+mov word [ebx + 0x2e4], ax
+mov ax, word [esi + 0x7d]
+mov word [ebx + 0x2ec], ax
+mov ax, word [esi + 0x82]
+mov word [ebx + 0x2f4], ax
+mov ax, word [esi + 0x87]
+mov word [ebx + 0x2fc], ax
+mov ax, word [esi + 0x8c]
+mov word [ebx + 0x304], ax
+mov ax, word [esi + 0x91]
+mov word [ebx + 0x30c], ax
+mov ax, word [esi + 0x96]
+mov word [ebx + 0x314], ax
+mov ax, word [esi + 0x9b]
+mov word [ebx + 0x31c], ax
+mov al, byte [esi + 0xa2]
+mov byte [ebx + 0x322], al
+mov al, byte [esi + 0xa5]
+mov byte [ebx + 0x326], al
+mov al, byte [esi + 0xa8]
+mov byte [ebx + 0x32a], al
+mov al, byte [esi + 0xab]
+mov byte [ebx + 0x32e], al
+mov al, byte [esi + 0xae]
+mov byte [ebx + 0x332], al
+mov al, byte [esi + 0xb1]
+mov byte [ebx + 0x336], al
+mov al, byte [esi + 0x5e]
+mov byte [ebx + 0x2b6], al
+mov al, byte [esi + 0x63]
+mov byte [ebx + 0x2be], al
+mov al, byte [esi + 0x68]
+mov byte [ebx + 0x2c6], al
+mov al, byte [esi + 0x6d]
+mov byte [ebx + 0x2ce], al
+mov al, byte [esi + 0x72]
+mov byte [ebx + 0x2d6], al
+mov al, byte [esi + 0x77]
+mov byte [ebx + 0x2de], al
+mov al, byte [esi + 0x7c]
+cmp dword [ebp - 0x30], 1
+mov byte [ebx + 0x2e6], al
+mov al, byte [esi + 0x81]
+mov byte [ebx + 0x2ee], al
+mov al, byte [esi + 0x86]
+mov byte [ebx + 0x2f6], al
+mov al, byte [esi + 0x8b]
+mov byte [ebx + 0x2fe], al
+mov al, byte [esi + 0x90]
+mov byte [ebx + 0x306], al
+mov al, byte [esi + 0x95]
+mov byte [ebx + 0x30e], al
+mov al, byte [esi + 0x9a]
+mov byte [ebx + 0x316], al
+mov al, byte [esi + 0x9f]
+mov byte [ebx + 0x31e], al
+jne loc_fffa0a97 ; jne 0xfffa0a97
+mov eax, ecx
+and al, 0x7d
+cmp ax, 0x8c44
+je short loc_fffa093e ; je 0xfffa093e
+cmp cx, 0x8c4c
+sete dl
+cmp cx, 0x8c4a
+sete al
+or dl, al
+je short loc_fffa0948 ; je 0xfffa0948
+
+loc_fffa093e:
+lea edi, [ebx + 0x2b3]
+xor edx, edx
+jmp short loc_fffa09a6 ; jmp 0xfffa09a6
+
+loc_fffa0948:
+cmp cx, 0x8c50
+sete dl
+cmp cx, 0x8c4e
+sete al
+or dl, al
+jne short loc_fffa093e ; jne 0xfffa093e
+cmp cx, 0x8c42
+sete dl
+cmp cx, 0x8c5c
+sete al
+or dl, al
+jne short loc_fffa093e ; jne 0xfffa093e
+cmp cx, 0x8cc2
+jne short loc_fffa09bf ; jne 0xfffa09bf
+jmp short loc_fffa093e ; jmp 0xfffa093e
+
+loc_fffa0979:
+cmp byte [edi + 3], 1
+sbb eax, eax
+not eax
+add eax, 4
+cmp byte [edi + 3], 0
+mov byte [edi - 1], al
+jne short loc_fffa09ba ; jne 0xfffa09ba
+mov ax, word [edi + 1]
+cmp ax, 0x7f
+jbe short loc_fffa09ba ; jbe 0xfffa09ba
+cmp ax, 0x130
+sbb eax, eax
+add eax, 4
+mov byte [edi], al
+
+loc_fffa09a2:
+inc edx
+add edi, 8
+
+loc_fffa09a6:
+mov dword [ebp - 0x30], edx
+call fcn_fffb5bb6 ; call 0xfffb5bb6
+mov edx, dword [ebp - 0x30]
+movzx eax, al
+cmp edx, eax
+jb short loc_fffa0979 ; jb 0xfffa0979
+jmp short loc_fffa0a0e ; jmp 0xfffa0a0e
+
+loc_fffa09ba:
+mov byte [edi], 2
+jmp short loc_fffa09a2 ; jmp 0xfffa09a2
+
+loc_fffa09bf:
+cmp cx, 0x8c4f
+sete dl
+cmp cx, 0x8c49
+sete al
+or dl, al
+jne short loc_fffa0a2d ; jne 0xfffa0a2d
+cmp cx, 0x8c41
+sete dl
+cmp cx, 0x8c4b
+sete al
+or dl, al
+jne short loc_fffa0a2d ; jne 0xfffa0a2d
+lea eax, [ecx + 0x63bf]
+cmp ax, 6
+jbe short loc_fffa0a2d ; jbe 0xfffa0a2d
+cmp cx, 0x8cc5
+sete dl
+cmp cx, 0x8cc3
+sete al
+or dl, al
+jne short loc_fffa0a2d ; jne 0xfffa0a2d
+cmp cx, 0x8cc1
+je short loc_fffa0a2d ; je 0xfffa0a2d
+
+loc_fffa0a0e:
+cmp dword [esi + 0x10], 0
+je loc_fffa0bde ; je 0xfffa0bde
+mov byte [ebx + 0x284], 1
+xor edi, edi
+mov byte [ebx + 0x297], 1
+jmp near loc_fffa0ba0 ; jmp 0xfffa0ba0
+
+loc_fffa0a2d:
+lea edi, [ebx + 0x2b3]
+xor edx, edx
+jmp short loc_fffa0a49 ; jmp 0xfffa0a49
+
+loc_fffa0a37:
+mov al, byte [edi + 3]
+cmp al, 5
+jne short loc_fffa0a5d ; jne 0xfffa0a5d
+mov byte [edi - 1], 5
+
+loc_fffa0a42:
+mov byte [edi], 2
+
+loc_fffa0a45:
+inc edx
+add edi, 8
+
+loc_fffa0a49:
+mov dword [ebp - 0x30], edx
+call fcn_fffb5bb6 ; call 0xfffb5bb6
+mov edx, dword [ebp - 0x30]
+movzx eax, al
+cmp edx, eax
+jb short loc_fffa0a37 ; jb 0xfffa0a37
+jmp short loc_fffa0a0e ; jmp 0xfffa0a0e
+
+loc_fffa0a5d:
+cmp al, 2
+jne short loc_fffa0a67 ; jne 0xfffa0a67
+mov byte [edi - 1], 4
+jmp short loc_fffa0a7c ; jmp 0xfffa0a7c
+
+loc_fffa0a67:
+cmp word [edi + 1], 0x70
+sbb ecx, ecx
+add ecx, 6
+mov byte [edi - 1], cl
+cmp al, 5
+je short loc_fffa0a42 ; je 0xfffa0a42
+cmp al, 2
+jne short loc_fffa0a88 ; jne 0xfffa0a88
+
+loc_fffa0a7c:
+cmp word [edi + 1], 0x50
+sbb eax, eax
+add eax, 2
+jmp short loc_fffa0a93 ; jmp 0xfffa0a93
+
+loc_fffa0a88:
+cmp word [edi + 1], 0x100
+sbb eax, eax
+add eax, 3
+
+loc_fffa0a93:
+mov byte [edi], al
+jmp short loc_fffa0a45 ; jmp 0xfffa0a45
+
+loc_fffa0a97:
+cmp dword [ebp - 0x30], 2
+jne loc_fffa0a0e ; jne 0xfffa0a0e
+lea eax, [ecx + 0x63bf]
+mov word [ebp - 0x3c], ax
+lea eax, [ecx + 0x633f]
+lea edi, [ebx + 0x2b2]
+mov dword [ebp - 0x30], 0
+mov word [ebp - 0x40], ax
+
+loc_fffa0ac2:
+mov dword [ebp - 0x34], ecx
+call fcn_fffb5bb6 ; call 0xfffb5bb6
+mov ecx, dword [ebp - 0x34]
+movzx eax, al
+cmp dword [ebp - 0x30], eax
+jae loc_fffa0a0e ; jae 0xfffa0a0e
+cmp word [ebp - 0x3c], 6
+ja short loc_fffa0b0e ; ja 0xfffa0b0e
+mov al, byte [edi + 4]
+mov dl, al
+cmp al, 3
+mov byte [ebp - 0x34], al
+sete al
+test dl, dl
+sete dl
+or al, dl
+je short loc_fffa0b02 ; je 0xfffa0b02
+cmp word [edi + 2], 0x70
+sbb eax, eax
+add eax, 6
+jmp short loc_fffa0b0c ; jmp 0xfffa0b0c
+
+loc_fffa0b02:
+cmp byte [ebp - 0x34], 2
+setne al
+add eax, 4
+
+loc_fffa0b0c:
+mov byte [edi], al
+
+loc_fffa0b0e:
+cmp word [ebp - 0x40], 2
+setbe dl
+cmp cx, 0x9cc5
+sete al
+or dl, al
+je short loc_fffa0b25 ; je 0xfffa0b25
+mov byte [edi], 6
+
+loc_fffa0b25:
+lea eax, [ecx + 0x633a]
+cmp ax, 1
+setbe dl
+cmp cx, 0x9cc9
+sete al
+or dl, al
+je short loc_fffa0b55 ; je 0xfffa0b55
+cmp byte [edi + 4], 0
+jne short loc_fffa0b52 ; jne 0xfffa0b52
+cmp word [edi + 2], 0x70
+sbb eax, eax
+add eax, 7
+mov byte [edi], al
+jmp short loc_fffa0b55 ; jmp 0xfffa0b55
+
+loc_fffa0b52:
+mov byte [edi], 6
+
+loc_fffa0b55:
+mov al, byte [edi + 4]
+cmp al, 3
+sete dl
+test al, al
+mov byte [ebp - 0x34], al
+sete al
+or al, dl
+jne short loc_fffa0b6f ; jne 0xfffa0b6f
+cmp byte [ebp - 0x34], 7
+jne short loc_fffa0b7c ; jne 0xfffa0b7c
+
+loc_fffa0b6f:
+cmp word [edi + 2], 0x100
+sbb eax, eax
+add eax, 3
+jmp short loc_fffa0b8c ; jmp 0xfffa0b8c
+
+loc_fffa0b7c:
+cmp byte [ebp - 0x34], 2
+jne short loc_fffa0b91 ; jne 0xfffa0b91
+cmp word [edi + 2], 0x50
+sbb eax, eax
+add eax, 2
+
+loc_fffa0b8c:
+mov byte [edi + 1], al
+jmp short loc_fffa0b95 ; jmp 0xfffa0b95
+
+loc_fffa0b91:
+mov byte [edi + 1], 2
+
+loc_fffa0b95:
+inc dword [ebp - 0x30]
+add edi, 8
+jmp near loc_fffa0ac2 ; jmp 0xfffa0ac2
+
+loc_fffa0ba0:
+call fcn_fffb5bb6 ; call 0xfffb5bb6
+movzx eax, al
+cmp edi, eax
+jae short loc_fffa0bb7 ; jae 0xfffa0bb7
+mov byte [ebx + edi + 0x298], 1
+inc edi
+jmp short loc_fffa0ba0 ; jmp 0xfffa0ba0
+
+loc_fffa0bb7:
+mov byte [ebx + 0x299], 0
+xor edi, edi
+
+loc_fffa0bc0:
+call fcn_fffb5b8d ; call 0xfffb5b8d
+movzx eax, al
+cmp edi, eax
+jae short loc_fffa0bd7 ; jae 0xfffa0bd7
+mov byte [ebx + edi + 0x2a6], 1
+inc edi
+jmp short loc_fffa0bc0 ; jmp 0xfffa0bc0
+
+loc_fffa0bd7:
+mov byte [ebx + 0x2a7], 0
+
+loc_fffa0bde:
+xor edi, edi
+
+loc_fffa0be0:
+call fcn_fffb5b8d ; call 0xfffb5b8d
+movzx eax, al
+cmp edi, eax
+jae loc_fffa0cba ; jae 0xfffa0cba
+mov dl, byte [esi + edi + 0xb2]
+mov al, byte [ebx + edi*8 + 0x580]
+test dl, dl
+je short loc_fffa0c0e ; je 0xfffa0c0e
+mov byte [ebx + edi*8 + 0x57c], dl
+or eax, 1
+jmp short loc_fffa0c19 ; jmp 0xfffa0c19
+
+loc_fffa0c0e:
+mov byte [ebx + edi*8 + 0x57c], 0
+and eax, 0xfffffffe
+
+loc_fffa0c19:
+mov byte [ebx + edi*8 + 0x580], al
+mov dl, byte [esi + edi + 0xb8]
+mov al, byte [ebx + edi*8 + 0x580]
+test dl, dl
+je short loc_fffa0c3e ; je 0xfffa0c3e
+mov byte [ebx + edi*8 + 0x57d], dl
+or eax, 2
+jmp short loc_fffa0c49 ; jmp 0xfffa0c49
+
+loc_fffa0c3e:
+mov byte [ebx + edi*8 + 0x57d], 0
+and eax, 0xfffffffd
+
+loc_fffa0c49:
+mov byte [ebx + edi*8 + 0x580], al
+mov dl, byte [esi + edi + 0xbe]
+mov al, byte [ebx + edi*8 + 0x580]
+test dl, dl
+je short loc_fffa0c6e ; je 0xfffa0c6e
+mov byte [ebx + edi*8 + 0x57e], dl
+or eax, 4
+jmp short loc_fffa0c79 ; jmp 0xfffa0c79
+
+loc_fffa0c6e:
+mov byte [ebx + edi*8 + 0x57e], 0
+and eax, 0xfffffffb
+
+loc_fffa0c79:
+mov byte [ebx + edi*8 + 0x580], al
+mov dl, byte [esi + edi + 0xc4]
+mov al, byte [ebx + edi*8 + 0x580]
+test dl, dl
+je short loc_fffa0ca2 ; je 0xfffa0ca2
+lea edx, [edx + edx + 1]
+or eax, 8
+mov byte [ebx + edi*8 + 0x57f], dl
+jmp short loc_fffa0cad ; jmp 0xfffa0cad
+
+loc_fffa0ca2:
+mov byte [ebx + edi*8 + 0x57f], 0
+and eax, 0xfffffff7
+
+loc_fffa0cad:
+mov byte [ebx + edi*8 + 0x580], al
+inc edi
+jmp near loc_fffa0be0 ; jmp 0xfffa0be0
+
+loc_fffa0cba:
+mov al, byte [ebx + 0x40e]
+or eax, 3
+and eax, 0xffffffc3
+mov byte [ebx + 0x40e], al
+xor eax, eax
+
+loc_fffa0cce:
+and byte [ebx + eax*8 + 0x554], 0xfc
+mov word [ebx + eax*8 + 0x558], 0
+mov word [ebx + eax*8 + 0x55a], 0
+inc eax
+cmp eax, 5
+jne short loc_fffa0cce ; jne 0xfffa0cce
+mov al, byte [ebx + 0x46a]
+xor edx, edx
+mov byte [ebx + 0x364], 1
+mov dword [ebx + 0x368], 0xfed00000
+mov byte [ebx + 0x36c], 1
+and eax, 0xffffffb0
+or eax, 0x49
+mov byte [ebx + 0x365], 0xf0
+mov byte [ebx + 0x366], 0xf
+mov byte [ebx + 0x367], 0
+mov byte [ebx + 0x476], 1
+mov dword [ebx + 0x47e], 0
+mov dword [ebx + 0x47a], 1
+mov byte [ebx + 0x46a], al
+mov byte [ebx + 0x37f], 0
+mov byte [ebx + 0x256], 1
+
+loc_fffa0d5a:
+mov dword [ebp - 0x30], edx
+call fcn_fffb4984 ; call 0xfffb4984
+mov edx, dword [ebp - 0x30]
+cmp dl, al
+jae short loc_fffa0d77 ; jae 0xfffa0d77
+movzx eax, dl
+inc edx
+imul eax, eax, 0x2c
+mov byte [ebx + eax + 0x58], 1
+jmp short loc_fffa0d5a ; jmp 0xfffa0d5a
+
+loc_fffa0d77:
+and byte [ebx + 0x45e], 0xf7
+xor edx, edx
+
+loc_fffa0d80:
+mov dword [ebp - 0x30], edx
+call fcn_fffb4984 ; call 0xfffb4984
+mov edx, dword [ebp - 0x30]
+cmp dl, al
+jae short loc_fffa0df1 ; jae 0xfffa0df1
+cmp dword [ebp - 0x2c], 2
+movzx eax, dl
+jne short loc_fffa0dad ; jne 0xfffa0dad
+imul eax, eax, 0x2c
+lea eax, [ebx + eax + 0x50]
+mov word [eax + 0xa], 0x1003
+mov word [eax + 0xc], 0x1003
+jmp short loc_fffa0dc6 ; jmp 0xfffa0dc6
+
+loc_fffa0dad:
+cmp dword [ebp - 0x2c], 1
+jne short loc_fffa0dc6 ; jne 0xfffa0dc6
+imul eax, eax, 0x2c
+lea eax, [ebx + eax + 0x50]
+mov word [eax + 0xa], 0x846
+mov word [eax + 0xc], 0x846
+
+loc_fffa0dc6:
+movzx eax, dl
+inc edx
+imul eax, eax, 0x2c
+add eax, ebx
+mov byte [eax + 0x59], 0
+mov byte [eax + 0x5e], 2
+mov byte [eax + 0x5f], 2
+mov word [eax + 0x60], 0x3c
+mov byte [eax + 0x62], 2
+mov byte [eax + 0x63], 2
+mov word [eax + 0x64], 0x3c
+jmp short loc_fffa0d80 ; jmp 0xfffa0d80
+
+loc_fffa0df1:
+mov al, byte [ebx + 0x446]
+or byte [ebx + 0x442], 7
+and byte [ebx + 0x45e], 0xf9
+and eax, 0xffffffcc
+or eax, 0xc
+mov byte [ebx + 0x446], al
+mov al, byte [ebx + 0x486]
+mov dword [ebx + 0x44a], 0
+mov dword [ebx + 0x44e], 2
+mov dword [ebx + 0x452], 4
+and eax, 0xffffffc1
+or eax, 0x32
+mov byte [ebx + 0x486], al
+mov al, byte [ebx + 0x49e]
+mov dword [ebx + 0x456], 3
+mov dword [ebx + 0x45a], 3
+mov byte [ebx + 0x462], 4
+or eax, 1
+and eax, 0xffffffbd
+mov byte [ebx + 0x49e], al
+xor eax, eax
+mov byte [ebx + 0x10], 0xdd
+
+loc_fffa0e74:
+mov dword [ebx + eax*4 + 0x1ba], 0
+inc eax
+cmp eax, 8
+jne short loc_fffa0e74 ; jne 0xfffa0e74
+cmp dword [ebp - 0x2c], 2
+lea eax, [ebx + 0x4de]
+lea esi, [ebx + 0x527]
+jne short loc_fffa0ebf ; jne 0xfffa0ebf
+mov byte [ebx + 0x526], 5
+push ecx
+push 0x28
+push ref_fffd6168 ; push 0xfffd6168
+push eax
+call fcn_fffab101 ; call 0xfffab101
+add esp, 0xc
+mov byte [ebx + 0x553], 9
+push 0x24
+push ref_fffd6144 ; push 0xfffd6144
+jmp short loc_fffa0ee5 ; jmp 0xfffa0ee5
+
+loc_fffa0ebf:
+mov byte [ebx + 0x526], 6
+push edx
+push 0x30
+push ref_fffd6114 ; push 0xfffd6114
+push eax
+call fcn_fffab101 ; call 0xfffab101
+add esp, 0xc
+mov byte [ebx + 0x553], 6
+push 0x18
+push ref_fffd60fc ; push 0xfffd60fc
+
+loc_fffa0ee5:
+push esi
+call fcn_fffab101 ; call 0xfffab101
+add esp, 0x10
+sub esp, 0xc
+push dword [ebp - 0x38]
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa0efc:
+sub esp, 0xc
+push 0x15
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov edi, eax
+test eax, eax
+je loc_fffa10af ; je 0xfffa10af
+sub esp, 0xc
+push 0xc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x2c], eax
+test eax, eax
+je loc_fffa10af ; je 0xfffa10af
+sub esp, 0xc
+push 5
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x34], eax
+je loc_fffa10af ; je 0xfffa10af
+sub esp, 0xc
+push 0xc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x30], eax
+je loc_fffa10af ; je 0xfffa10af
+sub esp, 0xc
+push 0x1d
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+je loc_fffa10af ; je 0xfffa10af
+sub esp, 0xc
+push 0x13
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov esi, eax
+test eax, eax
+je loc_fffa10af ; je 0xfffa10af
+mov edx, dword [ebp - 0x34]
+mov ecx, dword [ebp - 0x30]
+mov byte [edi], 0xa
+mov dword [edi + 1], edx
+mov dword [edi + 9], ecx
+mov dword [ecx], 0
+mov eax, dword [edi + 9]
+mov dword [eax + 4], 0
+mov dword [edi + 5], ebx
+mov dword [edi + 0xd], esi
+mov dword [edi + 0x11], edi
+mov byte [edx + 3], 0x3f
+mov byte [edx + 4], 0x3f
+mov byte [edx + 2], 0
+mov byte [edx], 0x62
+mov byte [ebx + 6], 0
+mov byte [ebx + 7], 0
+mov byte [ebx + 8], 0
+mov byte [ebx + 9], 0
+mov byte [ebx + 1], 0
+mov word [ebx + 2], 0
+mov byte [ebx + 4], 0
+mov byte [ebx + 5], 0
+mov byte [ebx], 0
+mov word [ebx + 0x11], 0x200
+mov byte [ebx + 0x13], 0
+mov word [ebx + 0x14], 0
+mov byte [ebx + 0xa], 0
+mov byte [ebx + 0xb], 1
+mov byte [ebx + 0xc], 0
+mov byte [ebx + 0xd], 1
+call fcn_fffa6801 ; call 0xfffa6801
+cmp eax, 0x40650
+jne short loc_fffa1033 ; jne 0xfffa1033
+
+loc_fffa1011:
+mov byte [ebx + 0xe], 1
+call fcn_fffa6801 ; call 0xfffa6801
+mov byte [ebx + 0x10], 0
+mov byte [ebx + 0x16], 1
+cmp eax, 0x306d0
+setne al
+lea eax, [eax + eax*4 + 0x6a]
+mov byte [ebx + 0xf], al
+jmp short loc_fffa103f ; jmp 0xfffa103f
+
+loc_fffa1033:
+call fcn_fffa6801 ; call 0xfffa6801
+cmp eax, 0x306d0
+je short loc_fffa1011 ; je 0xfffa1011
+
+loc_fffa103f:
+mov eax, dword [ebp - 0x2c]
+sub esp, 0xc
+mov byte [ebx + 0x17], 0x14
+mov byte [ebx + 0x18], 5
+mov byte [ebx + 0x19], 1
+mov byte [ebx + 0x1a], 0
+mov byte [ebx + 0x1b], 0
+mov byte [ebx + 0x1c], 0
+mov word [esi], 0
+mov word [esi + 2], 0
+mov word [esi + 4], 0
+mov word [esi + 6], 0
+mov word [esi + 8], 0
+mov word [esi + 0xa], 0
+mov word [esi + 0xc], 0
+mov word [esi + 0xe], 0
+mov word [esi + 0x10], 0
+mov byte [esi + 0x12], 0
+mov dword [eax], 0x80000010
+mov dword [eax + 4], ref_fffd65c0 ; mov dword [eax + 4], 0xfffd65c0
+mov dword [eax + 8], edi
+push eax
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa10af:
+sub esp, 0xc
+push 2
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+je short loc_fffa10f2 ; je 0xfffa10f2
+sub esp, 0xc
+push 0xc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+test eax, eax
+je short loc_fffa10f2 ; je 0xfffa10f2
+sub esp, 0xc
+mov dword [eax], 0x80000010
+mov dword [eax + 4], ref_fffd60dc ; mov dword [eax + 4], 0xfffd60dc
+mov byte [ebx], 1
+mov dword [eax + 8], ebx
+push eax
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa10f2:
+sub esp, 0xc
+mov esi, dword [0xff7d0084]
+push 0x27
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x2c], eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0xc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x30], eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0x36
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x3c], eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0xd
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x40], eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0x102
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0xdc
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov edi, eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0x6b
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x54], eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 5
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov dword [ebp - 0x44], eax
+test eax, eax
+je loc_fffa19ec ; je 0xfffa19ec
+sub esp, 0xc
+push 0x11
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+test eax, eax
+mov dword [ebp - 0x50], eax
+je loc_fffa19ec ; je 0xfffa19ec
+lea eax, [esi + 0xce]
+mov dword [edi + 0xd0], eax
+lea eax, [esi + 0x8ce]
+mov dword [edi + 0xd4], eax
+lea eax, [esi + 0x8e6]
+mov dword [edi + 0xd8], eax
+push eax
+push 0
+push 0x27
+push dword [ebp - 0x2c]
+call fcn_fffab0d1 ; call 0xfffab0d1
+mov eax, dword [ebp - 0x30]
+mov ecx, dword [ebp - 0x2c]
+mov dword [eax], 0x80000010
+mov dword [eax + 8], ecx
+mov dword [eax + 4], ref_fffd661c ; mov dword [eax + 4], 0xfffd661c
+mov byte [ecx], 0x13
+call fcn_fffa6801 ; call 0xfffa6801
+add esp, 0x10
+mov edx, dword [ebp - 0x50]
+cmp eax, 0x306d0
+sete cl
+cmp eax, 0x40670
+mov dword [ebp - 0x38], eax
+sete al
+mov byte [ebp - 0x34], al
+or al, cl
+mov byte [ebp - 0x48], cl
+mov ecx, dword [ebp - 0x54]
+mov byte [ebp - 0x49], al
+je short loc_fffa1271 ; je 0xfffa1271
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov dword [ebp - 0x54], edx
+mov dword [ebp - 0x50], ecx
+mov eax, dword [eax + 0x14]
+add eax, 0x10002
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+mov edx, dword [ebp - 0x54]
+add esp, 0x10
+mov ecx, dword [ebp - 0x50]
+
+loc_fffa1271:
+mov al, byte [esi + 0x42]
+mov dword [ebp - 0x54], edx
+mov edx, dword [ebp - 0x3c]
+mov dword [ebp - 0x50], ecx
+mov ecx, dword [ebp - 0x2c]
+cmp byte [ebp - 0x49], 1
+mov byte [edx], al
+mov al, byte [esi + 0x43]
+mov byte [edx + 1], al
+mov al, byte [esi + 0x44]
+mov byte [edx + 2], al
+mov al, byte [esi + 0x45]
+mov dword [edx + 4], 0xfed10000
+mov dword [edx + 8], 0xfed18000
+mov dword [edx + 0xc], 0xfed19000
+mov byte [edx + 3], al
+mov dword [edx + 0x22], 0xfed80000
+mov eax, dword [esi + 0x14]
+mov dword [edx + 0x10], eax
+movzx eax, word [esi + 0x18]
+mov dword [edx + 0x14], eax
+mov eax, dword [esi + 0x36]
+mov dword [edx + 0x2b], 0x400000
+mov dword [edx + 0x18], 0xfed84000
+mov word [edx + 0x26], 0
+mov dword [edx + 0x1c], eax
+mov eax, dword [esi + 4]
+mov byte [edx + 0x20], al
+sbb eax, eax
+mov dword [ecx + 1], edx
+mov edx, dword [ebp - 0x40]
+add eax, 3
+mov word [edx + 2], ax
+mov byte [edx + 4], 3
+mov byte [edx + 5], 1
+mov byte [edx + 6], 0
+mov byte [edx + 7], 1
+mov byte [edx + 0xc], 1
+mov eax, dword [esi + 0x22]
+mov word [edx], 0x800
+mov dword [edx + 8], eax
+mov dword [ecx + 5], edx
+mov byte [ebx], 0
+mov eax, dword [esi + 0x4e]
+mov byte [ebx + 3], 1
+mov dword [ebx + 4], 0
+mov byte [ebx + 0x10], 0
+mov word [ebx + 1], ax
+mov byte [ebx + 0x11], 1
+mov byte [ebx + 0x5d], 0xff
+mov byte [ebx + 0x5e], 0x80
+mov byte [ebx + 0x5f], 1
+mov byte [ebx + 0x60], 1
+mov byte [ebx + 0x61], 1
+mov byte [ebx + 0x62], 7
+mov byte [ebx + 0x63], 0
+mov byte [ebx + 0xcf], 1
+mov byte [ebx + 0xfe], 0
+mov byte [ebx + 0xff], 0xe
+mov byte [ebx + 0x100], 0
+mov byte [ebx + 0xc2], 1
+mov byte [ebx + 0xc3], 1
+mov byte [ebx + 0xf2], 0
+mov byte [ebx + 0x24], 1
+mov byte [ebx + 0x25], 0
+mov byte [ebx + 0x26], 0
+mov byte [ebx + 0x27], 0
+mov byte [ebx + 0x28], 0
+mov eax, dword [esi + 0x3a]
+mov byte [ebx + 0x2a], al
+mov eax, dword [esi + 0x3e]
+cmp dword [ebp - 0x38], 0x40650
+mov byte [ebx + 0x6d], 2
+mov ecx, dword [ebp - 0x50]
+mov word [ebx + 0x6e], 0x30ce
+mov edx, dword [ebp - 0x54]
+mov byte [ebx + 0x2b], al
+sete al
+or al, byte [ebp - 0x48]
+mov byte [ebx + 0x70], 1
+mov byte [ebx + 0x71], 0
+mov byte [ebx + 0x72], 0
+mov byte [ebx + 0x73], 0
+mov byte [ebx + 0x74], 1
+mov byte [ebp - 0x3c], al
+jne short loc_fffa13d8 ; jne 0xfffa13d8
+cmp byte [ebp - 0x34], 0
+je short loc_fffa13dc ; je 0xfffa13dc
+
+loc_fffa13d8:
+mov byte [ebx + 0x75], 0
+
+loc_fffa13dc:
+mov al, byte [esi + 0x46]
+mov byte [ebx + 0x77], 1
+mov byte [ebx + 0x78], 0
+mov byte [ebx + 0x79], 0
+mov byte [ebx + 0x76], al
+mov byte [ebx + 0x7a], 3
+mov byte [ebx + 0x7b], 0
+mov byte [ebx + 0x7c], 0
+mov byte [ebx + 0x7d], 0
+mov byte [ebx + 0x7e], 0
+mov byte [ebx + 0x7f], 0
+mov byte [ebx + 0x80], 0
+mov word [ebx + 0x81], 0
+mov byte [ebx + 0x83], 0
+mov byte [ebx + 0x84], 0
+mov byte [ebx + 0x85], 0
+mov word [ebx + 0x86], 0
+mov byte [ebx + 0x88], 0xff
+mov byte [ebx + 0x89], 0xff
+mov byte [ebx + 0x8a], 0xff
+mov byte [ebx + 0x8b], 0xff
+mov byte [ebx + 0x8c], 0xff
+mov byte [ebx + 0x8d], 0xff
+mov byte [ebx + 0x8e], 0xff
+mov byte [ebx + 0x8f], 0xff
+mov byte [ebx + 0x90], 0xff
+mov byte [ebx + 0x91], 0xff
+mov byte [ebx + 0x92], 0xff
+mov byte [ebx + 0x93], 0xff
+mov byte [ebx + 0x94], 0xff
+mov byte [ebx + 0x95], 0xff
+mov byte [ebx + 0x96], 0xff
+mov byte [ebx + 0x97], 0xff
+mov byte [ebx + 0x98], 0
+mov byte [ebx + 0x99], 0
+mov byte [ebx + 0x9a], 0
+mov byte [ebx + 0x9b], 0
+mov byte [ebx + 0x9c], 0
+mov byte [ebx + 0x9d], 0
+mov byte [ebx + 0x9e], 0
+mov byte [ebx + 0x9f], 0
+mov byte [ebx + 0xa0], 0
+mov byte [ebx + 0xa1], 0
+mov byte [ebx + 0xa2], 0
+mov byte [ebx + 0xa3], 0
+mov byte [ebx + 0xa4], 0
+mov byte [ebx + 0xa5], 0
+mov byte [ebx + 0xa6], 0
+mov byte [ebx + 0xa7], 0
+mov byte [ebx + 0xa8], 0
+mov byte [ebx + 0xa9], 0
+mov byte [ebx + 0xaa], 0
+mov byte [ebx + 0xab], 0
+cmp dword [esi + 0x52], 0
+mov word [ebx + 0xad], 0x200
+mov byte [ebx + 0xaf], 0
+sete byte [ebx + 0xac]
+cmp byte [ebp - 0x3c], 0
+mov byte [ebx + 0xb0], 0x30
+jne short loc_fffa155e ; jne 0xfffa155e
+cmp byte [ebp - 0x34], 0
+je short loc_fffa156c ; je 0xfffa156c
+
+loc_fffa155e:
+mov byte [ebx + 0xb1], 1
+mov byte [ebx + 0xb2], 0x40
+
+loc_fffa156c:
+mov byte [ebx + 0x101], 0xff
+mov byte [ebx + 0x2e], 1
+mov byte [ebx + 0x2f], 0
+mov byte [ebx + 0x30], 4
+mov byte [ebx + 0x31], 0xc
+mov byte [ebx + 0x6b], 0
+mov byte [ebx + 0x32], 0
+mov byte [ebx + 0x33], 1
+mov byte [ebx + 0x34], 1
+mov byte [ebx + 0x35], 1
+mov byte [ebx + 0x36], 1
+mov byte [ebx + 0x37], 0
+mov byte [ebx + 0x38], 1
+mov byte [ebx + 0x39], 1
+mov byte [ebx + 0x3a], 1
+mov byte [ebx + 0x3b], 0
+mov byte [ebx + 0x3c], 1
+mov byte [ebx + 0x3e], 1
+mov byte [ebx + 0x3f], 0
+mov byte [ebx + 0x40], 1
+mov byte [ebx + 0x41], 1
+mov byte [ebx + 0x42], 1
+mov byte [ebx + 0x5c], 1
+mov byte [ebx + 0x43], 1
+mov byte [ebx + 0x44], 1
+mov byte [ebx + 0x47], 1
+mov byte [ebx + 0x48], 1
+mov byte [ebx + 0x49], 1
+mov byte [ebx + 0x4a], 0
+mov byte [ebx + 0x4b], 0
+mov byte [ebx + 0x58], 0
+mov byte [ebx + 0x59], 0
+mov byte [ebx + 0x5a], 1
+mov byte [ebx + 0x6a], 1
+mov byte [ebx + 0xc5], 1
+mov byte [ebx + 0xce], 1
+cmp dword [esi + 0x56], 0
+mov byte [ebx + 0xd0], 1
+mov byte [ebx + 0x2c], 1
+sete byte [ebx + 0xfd]
+cmp byte [ebp - 0x3c], 0
+mov byte [ebx + 0x55], 0
+mov byte [ebx + 0x56], 1
+mov word [ebx + 0x4c], 0
+mov dword [ebx + 0x4e], 0
+mov byte [ebx + 0x53], 2
+mov byte [ebx + 0x54], 0
+mov dword [ebx + 0x64], 0x5f5e100
+mov byte [ebx + 0xc4], 0
+mov byte [ebx + 0x5b], 1
+mov byte [ebx + 0xf3], 1
+mov byte [ebx + 0xc7], 0
+mov al, byte [esi + 0x4a]
+mov byte [ebx + 0x57], al
+jne short loc_fffa166a ; jne 0xfffa166a
+cmp byte [ebp - 0x34], 0
+jmp short loc_fffa1671 ; jmp 0xfffa1671
+
+loc_fffa166a:
+cmp dword [ebp - 0x38], 0x40650
+
+loc_fffa1671:
+je short loc_fffa16f2 ; je 0xfffa16f2
+mov byte [ebx + 0xfc], 0
+mov byte [ebx + 0xd1], 0
+mov dword [ebx + 0xd2], 0
+mov dword [ebx + 0xd6], 0
+mov dword [ebx + 0xda], 0
+mov dword [ebx + 0xde], 0
+mov dword [ebx + 0xe2], 0
+mov dword [ebx + 0xe6], 0
+mov dword [ebx + 0xea], 0
+mov dword [ebx + 0xee], 0
+mov byte [ebx + 0xf4], 1
+mov dword [ebx + 0xf5], 0x320
+mov word [ebx + 0xf9], 0x118
+mov byte [ebx + 0xfb], 7
+
+loc_fffa16f2:
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov dword [ebp - 0x40], edx
+mov dword [ebp - 0x3c], ecx
+mov eax, dword [eax + 0x14]
+add eax, 2
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+add esp, 0x10
+mov edx, dword [ebp - 0x40]
+mov dword [ebp - 0x38], 1
+cmp ax, 0xa04
+sete cl
+cmp ax, 0xc04
+mov word [ebp - 0x34], ax
+sete al
+or cl, al
+mov ecx, dword [ebp - 0x3c]
+jne short loc_fffa175d ; jne 0xfffa175d
+cmp word [ebp - 0x34], 0xa0c
+sete al
+cmp word [ebp - 0x34], 0xd04
+sete byte [ebp - 0x3c]
+or al, byte [ebp - 0x3c]
+jne short loc_fffa175d ; jne 0xfffa175d
+mov eax, dword [ebp - 0x34]
+and eax, 0xffffffef
+cmp ax, 0x1604
+sete al
+movzx eax, al
+mov dword [ebp - 0x38], eax
+
+loc_fffa175d:
+mov al, byte [ebp - 0x38]
+mov word [ebx + 0xc8], 0xcf8
+mov word [ebx + 0xca], 0xcfc
+mov byte [ebx + 0xcc], 0xaa
+mov byte [ebx + 0xc6], al
+mov dword [edi], fcn_fffa5b74 ; mov dword [edi], 0xfffa5b74
+mov dword [edi + 4], fcn_fffb3f0f ; mov dword [edi + 4], 0xfffb3f0f
+mov dword [edi + 8], fcn_fffaafc2 ; mov dword [edi + 8], 0xfffaafc2
+mov dword [edi + 0xc], fcn_fffa5b68 ; mov dword [edi + 0xc], 0xfffa5b68
+mov dword [edi + 0x10], fcn_fffb3f28 ; mov dword [edi + 0x10], 0xfffb3f28
+mov dword [edi + 0x14], fcn_fffaafda ; mov dword [edi + 0x14], 0xfffaafda
+mov dword [edi + 0x18], fcn_fffb3cfc ; mov dword [edi + 0x18], 0xfffb3cfc
+mov dword [edi + 0x1c], fcn_fffb3d06 ; mov dword [edi + 0x1c], 0xfffb3d06
+mov dword [edi + 0x20], fcn_fffb3d4e ; mov dword [edi + 0x20], 0xfffb3d4e
+mov dword [edi + 0x24], fcn_fffb3dc0 ; mov dword [edi + 0x24], 0xfffb3dc0
+mov dword [edi + 0x28], fcn_fffb3db3 ; mov dword [edi + 0x28], 0xfffb3db3
+mov dword [edi + 0x2c], fcn_fffb3d20 ; mov dword [edi + 0x2c], 0xfffb3d20
+mov dword [edi + 0x30], fcn_fffb3d84 ; mov dword [edi + 0x30], 0xfffb3d84
+mov dword [edi + 0x34], fcn_fffa5bcf ; mov dword [edi + 0x34], 0xfffa5bcf
+mov dword [edi + 0x38], fcn_fffab48f ; mov dword [edi + 0x38], 0xfffab48f
+mov dword [edi + 0x3c], fcn_fffab4e0 ; mov dword [edi + 0x3c], 0xfffab4e0
+mov dword [edi + 0x40], fcn_fffab4b3 ; mov dword [edi + 0x40], 0xfffab4b3
+mov dword [edi + 0x44], fcn_fffb44dc ; mov dword [edi + 0x44], 0xfffb44dc
+mov dword [edi + 0x48], fcn_fffc3868 ; mov dword [edi + 0x48], 0xfffc3868
+mov dword [edi + 0x4c], fcn_fffc3844 ; mov dword [edi + 0x4c], 0xfffc3844
+mov dword [edi + 0x50], fcn_fffb3ddc ; mov dword [edi + 0x50], 0xfffb3ddc
+mov dword [edi + 0x54], fcn_fffb742b ; mov dword [edi + 0x54], 0xfffb742b
+mov dword [edi + 0x58], fcn_fffab101 ; mov dword [edi + 0x58], 0xfffab101
+mov dword [edi + 0x5c], fcn_fffab0d1 ; mov dword [edi + 0x5c], 0xfffab0d1
+mov dword [edi + 0x60], fcn_fffa5c15 ; mov dword [edi + 0x60], 0xfffa5c15
+mov dword [edi + 0x64], fcn_fffa5bfd ; mov dword [edi + 0x64], 0xfffa5bfd
+mov dword [edi + 0x68], fcn_fffab0f8 ; mov dword [edi + 0x68], 0xfffab0f8
+mov dword [edi + 0x6c], fcn_fffab0ef ; mov dword [edi + 0x6c], 0xfffab0ef
+mov dword [edi + 0x70], fcn_fffa5c8a ; mov dword [edi + 0x70], 0xfffa5c8a
+mov eax, dword [ebp - 0x2c]
+mov dword [edi + 0x74], fcn_fffab0c8 ; mov dword [edi + 0x74], 0xfffab0c8
+mov dword [edi + 0x78], fcn_fffb45e9 ; mov dword [edi + 0x78], 0xfffb45e9
+mov dword [edi + 0x7c], fcn_fffab039 ; mov dword [edi + 0x7c], 0xfffab039
+mov dword [edi + 0x80], fcn_fffb4ecf ; mov dword [edi + 0x80], 0xfffb4ecf
+mov dword [edi + 0x84], fcn_fffb506c ; mov dword [edi + 0x84], 0xfffb506c
+mov dword [edi + 0x88], fcn_fffa5bc8 ; mov dword [edi + 0x88], 0xfffa5bc8
+mov dword [edi + 0x8c], fcn_fffa5bc0 ; mov dword [edi + 0x8c], 0xfffa5bc0
+mov dword [edi + 0x90], fcn_fffa5b97 ; mov dword [edi + 0x90], 0xfffa5b97
+mov dword [edi + 0x94], fcn_fffb73dd ; mov dword [edi + 0x94], 0xfffb73dd
+mov dword [edi + 0x98], fcn_fffab06a ; mov dword [edi + 0x98], 0xfffab06a
+mov dword [edi + 0x9c], fcn_fffaaffb ; mov dword [edi + 0x9c], 0xfffaaffb
+mov dword [edi + 0xa0], fcn_fffa5b8d ; mov dword [edi + 0xa0], 0xfffa5b8d
+mov dword [edi + 0xa4], fcn_fffa5b7d ; mov dword [edi + 0xa4], 0xfffa5b7d
+mov dword [edi + 0xa8], fcn_fffab06f ; mov dword [edi + 0xa8], 0xfffab06f
+mov dword [eax + 9], ebx
+mov dword [eax + 0x1e], edi
+xor eax, eax
+mov byte [ecx], 0
+mov byte [ecx + 1], 1
+mov byte [ecx + 2], 1
+mov byte [ecx + 3], 1
+mov byte [ecx + 4], 0
+mov byte [ecx + 5], 0
+mov byte [ecx + 6], 0
+mov byte [ecx + 7], 0
+mov byte [ecx + 0x5c], 0xff
+mov byte [ecx + 0x61], 0
+mov byte [ecx + 0x5d], 0xff
+mov byte [ecx + 0x62], 0
+mov byte [ecx + 0x5e], 0xff
+mov byte [ecx + 0x63], 0
+mov byte [ecx + 8], 1
+mov byte [ecx + 0x39], 0
+mov byte [ecx + 0x40], 2
+mov byte [ecx + 0x5f], 0
+mov byte [ecx + 0x60], 0
+mov byte [ecx + 0x64], 2
+mov word [ecx + 0x65], 0x2710
+mov word [ecx + 0x67], 2
+mov byte [ecx + 0x69], 2
+mov byte [ecx + 0x6a], 2
+mov byte [ecx + 0x3b], 1
+mov byte [ecx + 0x48], 0
+mov word [ecx + 0x3c], 0x3e8
+mov byte [ecx + 0x3f], 0xf
+mov byte [ecx + 0x42], 0x14
+mov word [ecx + 0x50], 1
+
+loc_fffa1956:
+mov byte [ecx + eax + 9], 8
+mov byte [ecx + eax + 0x19], 7
+mov byte [ecx + eax + 0x29], 2
+inc eax
+cmp eax, 0x10
+jne short loc_fffa1956 ; jne 0xfffa1956
+mov eax, dword [ebp - 0x44]
+mov byte [ecx + 0x49], 0
+mov byte [eax], 0
+xor eax, eax
+mov byte [ecx + 0x52], 0
+mov byte [ecx + 0x53], 0
+
+loc_fffa197f:
+mov byte [ecx + eax + 0x54], 8
+inc eax
+cmp eax, 8
+jne short loc_fffa197f ; jne 0xfffa197f
+mov eax, dword [ebp - 0x2c]
+sub esp, 0xc
+mov dword [ecx + 0x44], 0
+mov dword [eax + 0xd], ecx
+mov ecx, eax
+mov word [edx], 0
+mov word [edx + 2], 0
+mov word [edx + 4], 0
+mov word [edx + 6], 0
+mov word [edx + 8], 0
+mov byte [edx + 0xa], 0
+mov byte [edx + 0xb], 0
+mov word [edx + 0xc], 0
+mov word [edx + 0xe], 0
+mov byte [edx + 0x10], 0
+mov dword [eax + 0x11], edx
+mov byte [eax + 0x22], 0
+mov eax, dword [esi + 0x8f6]
+mov dword [ecx + 0x15], eax
+push dword [ebp - 0x30]
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa19ec:
+sub esp, 0xc
+push ref_fffd5f93 ; push 0xfffd5f93
+call fcn_fffb76e3 ; call 0xfffb76e3
+mov dword [esp], ref_fffd6594 ; mov dword [esp], 0xfffd6594
+call fcn_fffab5db ; call 0xfffab5db
+mov dword [esp], 0x20
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+je short loc_fffa1a74 ; je 0xfffa1a74
+mov dword [eax + 0x14], fcn_fffb4a59 ; mov dword [eax + 0x14], 0xfffb4a59
+sub esp, 0xc
+mov dword [eax + 0xc], 0x53524549
+mov dword [eax + 0x10], 0
+mov eax, dword [0xff7d0084]
+mov eax, dword [eax + 0x14]
+lea edx, [eax + 0xf8000]
+add eax, 0xf80f0
+mov dword [ebx + 0x1c], edx
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [ebx], 0x80000010
+mov dword [ebx + 4], ref_fffd65a0 ; mov dword [ebx + 4], 0xfffd65a0
+and eax, 0xffffc000
+mov dword [ebx + 0x18], eax
+lea eax, [ebx + 0x14]
+mov dword [ebx + 8], eax
+mov dword [esp], ebx
+call fcn_fffab5db ; call 0xfffab5db
+add esp, 0x10
+
+loc_fffa1a74:
+push ebx
+push ebx
+lea eax, [ebp - 0x1c]
+push eax
+push 0x11b
+call fcn_fffab60f ; call 0xfffab60f
+add esp, 0x10
+test eax, eax
+jns short loc_fffa1a92 ; jns 0xfffa1a92
+mov dword [ebp - 0x1c], 0
+
+loc_fffa1a92:
+mov ebx, dword [ebp - 0x1c]
+test ebx, ebx
+je loc_fffa1b43 ; je 0xfffa1b43
+mov edx, ebx
+mov eax, 0xff7d0278
+call fcn_fffab505 ; call 0xfffab505
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov edi, dword [eax + 0x14]
+mov eax, dword [ebx + 8]
+lea esi, [edi + 0xfb020]
+push esi
+mov dword [ebp - 0x2c], eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop edx
+pop ecx
+and eax, 0xffe0
+or eax, dword [ebp - 0x2c]
+push eax
+push esi
+call fcn_fffb3d84 ; call 0xfffb3d84
+mov al, byte [edi + 0xfb004]
+or eax, 1
+mov byte [edi + 0xfb004], al
+mov al, byte [edi + 0xfb040]
+or eax, 0x10
+mov byte [edi + 0xfb040], al
+mov al, byte [edi + 0xfb040]
+or eax, 8
+mov byte [edi + 0xfb040], al
+mov al, byte [edi + 0xfb040]
+and eax, 0xfffffff9
+or eax, 1
+mov byte [edi + 0xfb040], al
+pop esi
+pop edi
+push 0xff
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+lea eax, [ebx + 0xc]
+add ebx, 0x38
+mov dword [esp], eax
+call fcn_fffab5db ; call 0xfffab5db
+call fcn_fffab405 ; call 0xfffab405
+pop edx
+pop ecx
+mov edx, dword [eax]
+push ebx
+push eax
+call dword [edx + 0x24] ; ucall
+add esp, 0x10
+
+loc_fffa1b43:
+sub esp, 0xc
+mov esi, ref_fffd65d0 ; mov esi, 0xfffd65d0
+push ref_fffd5fcb ; push 0xfffd5fcb
+call fcn_fffb76e3 ; call 0xfffb76e3
+lea eax, [ebp - 0x24]
+push eax
+push 0
+push 0
+push ref_fffd661c ; push 0xfffd661c
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x1c
+mov ebx, dword [ebp - 0x24]
+lea eax, [ebp - 0x20]
+push eax
+push 0x73
+push 4
+call fcn_fffab5ba ; call 0xfffab5ba
+mov eax, dword [ebp - 0x20]
+mov ecx, 4
+lea edi, [eax + 8]
+add eax, 0x18
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+pop edx
+pop ecx
+push 8
+push eax
+call fcn_fffac673 ; call 0xfffac673
+mov eax, dword [ebp - 0x20]
+pop esi
+pop edi
+add eax, 0x20
+push 8
+push eax
+call fcn_fffac673 ; call 0xfffac673
+pop eax
+mov eax, dword [ebp - 0x20]
+pop edx
+add eax, 0x29
+push 0x21
+push eax
+call fcn_fffac673 ; call 0xfffac673
+mov eax, dword [ebp - 0x20]
+add esp, 0x10
+mov byte [eax + 0x28], 0
+mov byte [eax + 0x71], 0
+cmp byte [ebx], 1
+jbe short loc_fffa1bd2 ; jbe 0xfffa1bd2
+mov edx, dword [ebx + 0xd]
+mov dl, byte [edx + 0x49]
+mov byte [eax + 0x4a], dl
+jmp short loc_fffa1bd6 ; jmp 0xfffa1bd6
+
+loc_fffa1bd2:
+mov byte [eax + 0x4a], 0
+
+loc_fffa1bd6:
+mov edx, dword [ebx + 5]
+mov dl, byte [edx + 7]
+mov byte [eax + 0x72], dl
+lea eax, [ebp - 0x1c]
+push eax
+push 0
+push 0
+push ref_fffd65c0 ; push 0xfffd65c0
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [ebp - 0x1c]
+add esp, 0x10
+mov edx, dword [eax + 9]
+cmp dword [edx + 4], 0
+je short loc_fffa1c29 ; je 0xfffa1c29
+mov ebx, dword [ebp - 0x20]
+mov byte [ebx + 0x18], 1
+mov edx, dword [eax + 1]
+cmp byte [edx], 0
+jns short loc_fffa1c29 ; jns 0xfffa1c29
+push ecx
+push 0x14
+mov eax, dword [eax + 9]
+mov eax, dword [eax + 4]
+push dword [eax + 0x1c]
+push dword [eax + 0x18]
+call fcn_fffab0ef ; call 0xfffab0ef
+add esp, 0x10
+mov byte [ebx + 0x19], al
+
+loc_fffa1c29:
+mov eax, dword [ebp - 0x20]
+mov byte [eax + 0x20], 2
+mov edx, dword [ebp - 0x1c]
+mov ecx, dword [edx + 1]
+test byte [ecx], 0x10
+je short loc_fffa1c49 ; je 0xfffa1c49
+mov edx, dword [edx + 9]
+mov edx, dword [edx]
+mov dl, byte [edx + 0x301]
+mov byte [eax + 0x21], dl
+
+loc_fffa1c49:
+sub esp, 0xc
+push ref_fffd65e0 ; push 0xfffd65e0
+call fcn_fffab5db ; call 0xfffab5db
+mov dword [esp], ref_fffd5faa ; mov dword [esp], 0xfffd5faa
+call fcn_fffb76e3 ; call 0xfffb76e3
+mov dword [esp], 0x19
+call fcn_fffb8358 ; call 0xfffb8358
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+je short loc_fffa1cea ; je 0xfffa1cea
+mov dword [eax], 0x4943524d
+lea eax, [eax + 0x14]
+mov dword [eax - 0x10], 0x80000020
+lea esi, [ebx + 4]
+mov dword [eax - 8], fcn_fffcd152 ; mov dword [eax - 8], 0xfffcd152
+mov dword [eax - 4], 0
+mov byte [eax + 4], 0
+mov dword [eax], 0
+push eax
+push 0
+push 0
+push ref_fffd65fc ; push 0xfffd65fc
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [ebx + 0x14]
+add esp, 0x10
+test eax, eax
+je short loc_fffa1cd9 ; je 0xfffa1cd9
+test byte [eax + 1], 1
+je short loc_fffa1cd9 ; je 0xfffa1cd9
+mov dword [ebx + 8], ref_fffd65ec ; mov dword [ebx + 8], 0xfffd65ec
+call fcn_fffab405 ; call 0xfffab405
+push edx
+push edx
+mov edx, dword [eax]
+push esi
+push eax
+call dword [edx + 0x24] ; ucall
+add esp, 0x10
+
+loc_fffa1cd9:
+push edi
+push 0
+push esi
+push 0xff7d0278
+call fcn_fffcd152 ; call 0xfffcd152
+add esp, 0x10
+
+loc_fffa1cea:
+call fcn_fffab5f3 ; call 0xfffab5f3
+push ebx
+push ebx
+push eax
+push ref_fffd660c ; push 0xfffd660c
+call fcn_fffc5551 ; call 0xfffc5551
+add esp, 0x10
+mov esi, eax
+test eax, eax
+jne short loc_fffa1d21 ; jne 0xfffa1d21
+mov eax, dword [ebp + 8]
+mov dword [eax + 0x906], 0
+mov dword [eax + 0x902], 0
+jmp near loc_fffa1e75 ; jmp 0xfffa1e75
+
+loc_fffa1d21:
+mov eax, dword [eax + 0x20]
+mov ecx, dword [ebp + 8]
+mov byte [ebp - 0x2c], 0
+mov dword [ecx + 0x906], eax
+lea eax, [esi + 0x20]
+mov dword [ecx + 0x902], eax
+mov byte [ecx + 0x90a], 0
+mov eax, dword [esi + 0x245b]
+mov dword [ebp - 0x34], eax
+lea eax, [esi + 0x1092]
+mov dword [ebp - 0x38], eax
+
+loc_fffa1d53:
+mov al, byte [ebp - 0x2c]
+mov dword [ebp - 0x30], 0
+add eax, eax
+mov byte [ebp - 0x40], al
+mov eax, dword [ebp - 0x38]
+lea edi, [eax + 0x25d]
+mov ecx, eax
+
+loc_fffa1d6d:
+mov edx, dword [ebp - 0x30]
+mov al, byte [ebp - 0x40]
+mov byte [ebp - 0x44], dl
+add eax, edx
+cmp dword [ecx], 2
+mov byte [ebp - 0x3c], al
+jne loc_fffa1e4b ; jne 0xfffa1e4b
+mov eax, dword [ebp + 8]
+mov edx, dword [ebp + 8]
+movzx eax, byte [eax + 0x90a]
+imul eax, eax, 0x28
+lea eax, [edx + eax + 0x900]
+mov edx, dword [esi + 0x2498]
+mov dword [ebp - 0x48], eax
+lea ebx, [eax + 0xb]
+cmp edx, 2
+je short loc_fffa1dc5 ; je 0xfffa1dc5
+cmp edx, 3
+je short loc_fffa1dcd ; je 0xfffa1dcd
+dec edx
+mov eax, 0xff
+mov edx, 0x18
+cmove eax, edx
+mov word [ebx + 4], ax
+jmp short loc_fffa1dd3 ; jmp 0xfffa1dd3
+
+loc_fffa1dc5:
+mov word [ebx + 4], 0x1a
+jmp short loc_fffa1dd3 ; jmp 0xfffa1dd3
+
+loc_fffa1dcd:
+mov word [ebx + 4], 0x1d
+
+loc_fffa1dd3:
+mov eax, dword [esi + 0x1837]
+mov edx, dword [ebp - 0x48]
+mov dword [ebp - 0x48], ecx
+mov word [ebx + 6], ax
+mov eax, dword [ecx + 0xe1]
+mov dword [edx + 0xb], eax
+mov al, byte [ecx + 0xed]
+mov byte [ebx + 8], al
+mov al, byte [ebp - 0x2c]
+mov byte [ebx + 9], al
+mov al, byte [ebp - 0x44]
+mov byte [ebx + 0xa], al
+mov al, byte [ebp - 0x3c]
+mov byte [ebx + 0xb], al
+lea eax, [ebx + 0x11]
+push ecx
+push 0x12
+push edi
+push eax
+mov eax, dword [ebp - 0x34]
+call dword [eax + 0x58] ; ucall
+add esp, 0xc
+push 4
+lea eax, [edi - 6]
+push eax
+lea eax, [ebx + 0xc]
+push eax
+mov eax, dword [ebp - 0x34]
+call dword [eax + 0x58] ; ucall
+mov ax, word [edi - 0xb]
+add esp, 0x10
+mov ecx, dword [ebp - 0x48]
+mov word [ebx + 0x24], ax
+mov al, byte [edi - 0xd]
+mov byte [ebx + 0x26], al
+mov al, byte [edi - 0xc]
+mov byte [ebx + 0x27], al
+mov eax, dword [ebp + 8]
+inc byte [eax + 0x90a]
+
+loc_fffa1e4b:
+inc dword [ebp - 0x30]
+add ecx, 0x128
+add edi, 0x21
+cmp dword [ebp - 0x30], 2
+jne loc_fffa1d6d ; jne 0xfffa1d6d
+inc byte [ebp - 0x2c]
+add dword [ebp - 0x38], 0x433
+cmp byte [ebp - 0x2c], 2
+jne loc_fffa1d53 ; jne 0xfffa1d53
+
+loc_fffa1e75:
+sub esp, 0xc
+push ref_fffd5fbf ; push 0xfffd5fbf
+call fcn_fffb76e3 ; call 0xfffb76e3
+add esp, 0x10
+xor eax, eax
+
+loc_fffa1e87:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa1e8f:
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, edx
+push ebx
+sub esp, 0x6214
+push 0x5ee4
+lea edi, [ebp - 0x5efc]
+push edi
+mov dword [ebp - 0x6208], ecx
+mov dword [ebp - 0x6204], eax
+call fcn_fffac673 ; call 0xfffac673
+pop ebx
+pop eax
+lea ebx, [ebp - 0x60c7]
+push 0x1cb
+push ebx
+call fcn_fffac673 ; call 0xfffac673
+lea eax, [ebp - 0x6173]
+mov dword [ebp - 0x3ab9], eax
+mov eax, dword [ref_fffd3288] ; mov eax, dword [0xfffd3288]
+lea edx, [ebp - 0x61c0]
+mov dword [ebp - 0x20], ebx
+mov dword [ebp - 0x60c3], edx
+mov dword [ebp - 0x6200], edx
+mov dword [ebp - 0x5efc], eax
+lea eax, [ebp - 0x61e8]
+push eax
+push 0
+push 0
+push ref_fffd661c ; push 0xfffd661c
+mov dword [ebp - 0x60c7], 0x1cb
+mov dword [ebp - 0x5ef8], 0x5ee4
+mov dword [ebp - 0x5ef4], 0x1866
+mov dword [ebp - 0x468e], 0xbdd
+mov dword [ebp - 0x3ab1], 0x3a91
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [ebp - 0x61e8]
+add esp, 0x20
+mov edx, dword [ebp - 0x3ab9]
+mov ecx, dword [eax + 9]
+mov ebx, dword [eax + 0x1e]
+mov dword [ebp - 0x61fc], edx
+mov dword [ebx + 0xac], fcn_fffc6ea0 ; mov dword [ebx + 0xac], 0xfffc6ea0
+mov dword [ebx + 0xb0], fcn_fffc45f9 ; mov dword [ebx + 0xb0], 0xfffc45f9
+mov dword [ebx + 0xb4], fcn_fffac81d ; mov dword [ebx + 0xb4], 0xfffac81d
+mov dword [ebx + 0xb8], fcn_fffc3bd3 ; mov dword [ebx + 0xb8], 0xfffc3bd3
+mov dword [ebx + 0xbc], fcn_fffcc900 ; mov dword [ebx + 0xbc], 0xfffcc900
+mov dword [ebx + 0xc0], fcn_fffac7e7 ; mov dword [ebx + 0xc0], 0xfffac7e7
+mov dword [ebx + 0xc4], fcn_fffa9178 ; mov dword [ebx + 0xc4], 0xfffa9178
+mov dword [ebx + 0xc8], fcn_fffcc4cb ; mov dword [ebx + 0xc8], 0xfffcc4cb
+mov dword [ebx + 0xcc], fcn_fffa8c9b ; mov dword [ebx + 0xcc], 0xfffa8c9b
+mov dword [ebp - 0x3ae1], eax
+mov ax, word [ecx + 0xc8]
+mov word [ebp - 0x3ae5], ax
+mov ax, word [ecx + 0xca]
+mov word [ebp - 0x3ae3], ax
+call fcn_fffa6801 ; call 0xfffa6801
+sub esp, 0xc
+lea ecx, [ebp - 0x61c4]
+push ecx
+lea ecx, [ebp - 0x61c8]
+push ecx
+lea ecx, [ebp - 0x61cc]
+push ecx
+mov dword [ebp - 0x3aea], eax
+lea eax, [ebp - 0x61d0]
+push eax
+push 1
+call fcn_fffd28d0 ; call 0xfffd28d0
+add esp, 0x1c
+mov eax, dword [ebp - 0x61d0]
+push 0xac
+push ebx
+push dword [ebp - 0x61fc]
+and eax, 0xf
+mov byte [ebp - 0x3ae6], al
+call dword [ebx + 0x58] ; ucall
+mov edx, dword [ebp - 0x6200]
+add esp, 0xc
+push 0x4d
+push ref_fffd3238 ; push 0xfffd3238
+push edx
+call dword [ebp - 0x611b] ; ucall
+call fcn_fffab405 ; call 0xfffab405
+pop edx
+pop ecx
+lea ecx, [ebp - 0x61e0]
+mov edx, dword [eax]
+push ecx
+push eax
+call dword [edx + 0x28] ; ucall
+add esp, 0x10
+cmp dword [ebp - 0x61e0], 0x11
+je short loc_fffa20a7 ; je 0xfffa20a7
+lea eax, [ebp - 0x61e4]
+push ecx
+push eax
+push 0x5efd
+push 4
+call fcn_fffab5ba ; call 0xfffab5ba
+add esp, 0x10
+test eax, eax
+js short loc_fffa20b1 ; js 0xfffa20b1
+mov ebx, dword [ebp - 0x61e4]
+push eax
+push 0x10
+push ref_fffd660c ; push 0xfffd660c
+lea eax, [ebx + 8]
+add ebx, 0x18
+push eax
+call fcn_fffab101 ; call 0xfffab101
+pop eax
+pop edx
+push 0x5ee5
+push ebx
+call fcn_fffac673 ; call 0xfffac673
+add esp, 0x10
+jmp short loc_fffa20b1 ; jmp 0xfffa20b1
+
+loc_fffa20a7:
+mov dword [ebp - 0x61e4], 0
+
+loc_fffa20b1:
+mov eax, dword [ebp - 0x61e8]
+mov edx, dword [eax + 9]
+mov eax, 5
+cmp byte [edx + 0x55], 0
+jne short loc_fffa20c9 ; jne 0xfffa20c9
+movzx eax, byte [edx + 0x2d]
+
+loc_fffa20c9:
+mov edx, dword [ebp - 0x61e0]
+mov dword [ebp - 0x45fe], eax
+mov dword [ebp - 0x4602], esi
+cmp edx, 0x11
+je short loc_fffa20eb ; je 0xfffa20eb
+mov eax, dword [ebp - 0x61e4]
+add eax, 0x18
+jmp short loc_fffa20ed ; jmp 0xfffa20ed
+
+loc_fffa20eb:
+xor eax, eax
+
+loc_fffa20ed:
+push ecx
+push ecx
+push 0xdd00
+push edi
+mov dword [ebp - 0x460a], eax
+xor eax, eax
+cmp edx, 0x11
+mov edx, 0xfbe8
+cmovne eax, edx
+mov dword [ebp - 0x4606], eax
+call dword [ebp - 0x60df] ; ucall
+lea edx, [ebp - 0x61c4]
+mov edi, dword [ebp - 0x3ab9]
+mov dword [esp], edx
+lea edx, [ebp - 0x61c8]
+push edx
+lea edx, [ebp - 0x61cc]
+push edx
+lea eax, [ebp - 0x61d0]
+push eax
+push 1
+mov byte [ebp - 0x61e9], 0
+call fcn_fffd28d0 ; call 0xfffd28d0
+add esp, 0x20
+test byte [ebp - 0x61c8], 0x40
+je short loc_fffa21cf ; je 0xfffa21cf
+sub esp, 0xc
+push 0x2e7
+call dword [edi + 0xa0] ; ucall
+add esp, 0x10
+test al, 6
+je short loc_fffa21cf ; je 0xfffa21cf
+lea eax, [ebp - 0x61d4]
+mov ebx, 0x2ee
+push eax
+push 0
+push 0
+push ref_fffd604c ; push 0xfffd604c
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x10
+
+loc_fffa2184:
+mov eax, dword [esi]
+mov eax, dword [eax + 0x60]
+push 0
+push 0xfed40000
+push eax
+push esi
+call dword [eax + 0x30] ; ucall
+add esp, 0x10
+cmp al, 0xff
+je short loc_fffa21bc ; je 0xfffa21bc
+test al, al
+js loc_fffa2abe ; js 0xfffa2abe
+mov eax, dword [ebp - 0x61d4]
+push edx
+push 0x3e8
+push eax
+push esi
+call dword [eax + 4] ; ucall
+add esp, 0x10
+dec bx
+jne short loc_fffa2184 ; jne 0xfffa2184
+
+loc_fffa21bc:
+push ebx
+push 0
+push 0
+push 0x2e6
+call dword [edi + 0xa4] ; ucall
+add esp, 0x10
+
+loc_fffa21cf:
+cmp dword [ebp - 0x61e0], 0x11
+mov dword [ebp - 0x6200], 2
+je short loc_fffa222d ; je 0xfffa222d
+mov ebx, dword [ebp - 0x3ab9]
+push 0xa0
+push 0
+push 0x1f
+push 0
+call dword [ebx + 0x48] ; ucall
+pop edx
+pop ecx
+push eax
+movzx eax, word [ebp - 0x3ae5]
+push eax
+call dword [ebx + 0x14] ; ucall
+movzx eax, word [ebp - 0x3ae3]
+mov dword [esp], eax
+call dword [ebx + 8] ; ucall
+add esp, 0x10
+shr eax, 0x10
+and eax, 0xa0
+cmp eax, 0xa0
+sete al
+movzx eax, al
+mov dword [ebp - 0x6200], eax
+
+loc_fffa222d:
+mov eax, dword [ebp - 0x3aea]
+cmp eax, 0x40650
+jne short loc_fffa2246 ; jne 0xfffa2246
+mov dword [ebp - 0x4675], 0x40650
+jmp short loc_fffa2274 ; jmp 0xfffa2274
+
+loc_fffa2246:
+cmp eax, 0x306c0
+jne short loc_fffa2263 ; jne 0xfffa2263
+mov dword [ebp - 0x4675], 0x306c0
+mov dword [ebp - 0x4671], 0
+jmp short loc_fffa22da ; jmp 0xfffa22da
+
+loc_fffa2263:
+cmp eax, 0x40660
+jne short loc_fffa228d ; jne 0xfffa228d
+mov dword [ebp - 0x4675], 0x40660
+
+loc_fffa2274:
+mov dword [ebp - 0x4671], 0
+mov dword [ebp - 0x4679], 1
+jmp near loc_fffa231f ; jmp 0xfffa231f
+
+loc_fffa228d:
+cmp eax, 0x306d0
+jne short loc_fffa22f2 ; jne 0xfffa22f2
+mov al, byte [ebp - 0x3ae6]
+mov dword [ebp - 0x4675], 0x306d0
+mov dword [ebp - 0x4671], 1
+cmp al, 3
+je short loc_fffa22da ; je 0xfffa22da
+cmp al, 4
+jne short loc_fffa22e6 ; jne 0xfffa22e6
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov eax, dword [eax + 0x14]
+add eax, 8
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+and eax, 0xf
+cmp eax, 9
+sbb eax, eax
+add eax, 5
+jmp short loc_fffa2319 ; jmp 0xfffa2319
+
+loc_fffa22da:
+mov dword [ebp - 0x4679], 3
+jmp short loc_fffa231f ; jmp 0xfffa231f
+
+loc_fffa22e6:
+mov dword [ebp - 0x4679], 5
+jmp short loc_fffa231f ; jmp 0xfffa231f
+
+loc_fffa22f2:
+cmp eax, 0x40670
+jne short loc_fffa231f ; jne 0xfffa231f
+xor eax, eax
+cmp byte [ebp - 0x3ae6], 0
+mov dword [ebp - 0x4675], 0x40670
+mov dword [ebp - 0x4671], 1
+setne al
+
+loc_fffa2319:
+mov dword [ebp - 0x4679], eax
+
+loc_fffa231f:
+mov eax, dword [ebp - 0x6208]
+mov dword [ebp - 0x61d0], 0
+mov eax, dword [eax + 0x14]
+test eax, eax
+jne short loc_fffa2347 ; jne 0xfffa2347
+
+loc_fffa2336:
+mov eax, dword [ebp - 0x61e8]
+xor ebx, ebx
+mov edi, dword [eax + 0x15]
+test edi, edi
+jne short loc_fffa2373 ; jne 0xfffa2373
+jmp short loc_fffa23a6 ; jmp 0xfffa23a6
+
+loc_fffa2347:
+test byte [eax + 1], 1
+je short loc_fffa2336 ; je 0xfffa2336
+lea eax, [ebp - 0x61d0]
+push eax
+push 0
+push 0
+push ref_fffd65ec ; push 0xfffd65ec
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x10
+test eax, eax
+je short loc_fffa2336 ; je 0xfffa2336
+
+loc_fffa2369:
+mov eax, 0x8000000e
+jmp near loc_fffa2b0c ; jmp 0xfffa2b0c
+
+loc_fffa2373:
+cmp dword [ebp - 0x61e0], 4
+je short loc_fffa23a6 ; je 0xfffa23a6
+lea eax, [edi + 8]
+mov edx, 0x185e
+call fcn_fffc3dc3 ; call 0xfffc3dc3
+cmp eax, dword [edi + 4]
+jne short loc_fffa23a6 ; jne 0xfffa23a6
+push eax
+mov eax, dword [esi]
+mov bl, 1
+push 0x1866
+push edi
+lea edx, [ebp - 0x5ef4]
+push edx
+call dword [eax + 0x50] ; ucall
+add esp, 0x10
+
+loc_fffa23a6:
+cmp dword [ebp - 0x61e0], 0x11
+jne short loc_fffa23b3 ; jne 0xfffa23b3
+test bl, bl
+je short loc_fffa2369 ; je 0xfffa2369
+
+loc_fffa23b3:
+lea eax, [ebp - 0x61dc]
+push eax
+push 0
+push 0
+push ref_fffd6070 ; push 0xfffd6070
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [ebp - 0x6200]
+add esp, 0x10
+dec eax
+cmp eax, 1
+jbe short loc_fffa23fe ; jbe 0xfffa23fe
+push eax
+lea eax, [ebp - 0x61e9]
+push eax
+mov eax, dword [ebp - 0x61dc]
+push dword [ebp - 0x6204]
+push esi
+call dword [eax + 5] ; ucall
+add esp, 0x10
+mov al, 0
+cmp byte [ebp - 0x61e9], 1
+cmove ebx, eax
+
+loc_fffa23fe:
+mov eax, dword [ebp - 0x6200]
+dec eax
+cmp eax, 1
+jbe short loc_fffa2446 ; jbe 0xfffa2446
+dec bl
+jne loc_fffa2acb ; jne 0xfffa2acb
+mov edx, dword [ebp - 0x61e8]
+mov eax, dword [edx + 9]
+cmp byte [eax + 0x56], 0
+je loc_fffa2acb ; je 0xfffa2acb
+xor ecx, ecx
+lea eax, [ebp - 0x5efc]
+call fcn_fffb82ba ; call 0xfffb82ba
+test al, al
+jne loc_fffa2acb ; jne 0xfffa2acb
+mov dword [ebp - 0x61fc], 3
+jmp short loc_fffa24aa ; jmp 0xfffa24aa
+
+loc_fffa2446:
+mov edx, dword [ebp - 0x61e8]
+mov eax, dword [edx + 1]
+mov eax, dword [eax + 4]
+mov dword [ebp - 0x4637], eax
+test bl, bl
+je loc_fffa2acb ; je 0xfffa2acb
+mov edi, dword [ebp - 0x6200]
+lea eax, [ebp - 0x5efc]
+mov ecx, edi
+call fcn_fffb82ba ; call 0xfffb82ba
+dec al
+je loc_fffa2acb ; je 0xfffa2acb
+dec edi
+mov dword [ebp - 0x61fc], 2
+jne short loc_fffa24aa ; jne 0xfffa24aa
+mov edx, 0x5d10
+lea eax, [ebp - 0x5efc]
+call fcn_fffae548 ; call 0xfffae548
+or edx, eax
+je loc_fffa2acb ; je 0xfffa2acb
+mov dword [ebp - 0x61fc], 1
+
+loc_fffa24aa:
+cmp dword [ebp - 0x4675], 0x306d0
+jne short loc_fffa24de ; jne 0xfffa24de
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov eax, dword [eax + 0x14]
+add eax, 8
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+and eax, 0xf
+cmp eax, 7
+ja short loc_fffa24de ; ja 0xfffa24de
+mov byte [ebp - 0x460f], 1
+jmp short loc_fffa24e5 ; jmp 0xfffa24e5
+
+loc_fffa24de:
+mov byte [ebp - 0x460f], 0
+
+loc_fffa24e5:
+mov bl, byte [ebp - 0x460f]
+call fcn_fffab5f3 ; call 0xfffab5f3
+push edi
+push edi
+push eax
+push ref_fffd65d0 ; push 0xfffd65d0
+call fcn_fffc5551 ; call 0xfffc5551
+add esp, 0x10
+test eax, eax
+je short loc_fffa2520 ; je 0xfffa2520
+movzx edi, byte [eax + 0x19]
+xor edx, edx
+cmp byte [eax + 0x18], 1
+movzx ecx, byte [eax + 0x21]
+cmove edx, edi
+cmp byte [eax + 0x20], 1
+cmove edx, ecx
+add ecx, edi
+jmp short loc_fffa2524 ; jmp 0xfffa2524
+
+loc_fffa2520:
+xor edx, edx
+xor ecx, ecx
+
+loc_fffa2524:
+cmp bl, 1
+sbb cl, 0xff
+test cl, cl
+je short loc_fffa253d ; je 0xfffa253d
+movzx ecx, cl
+mov dword [ebp - 0x4617], ecx
+mov dword [ebp - 0x4613], edx
+
+loc_fffa253d:
+push ebx
+mov edx, dword [ebp - 0x61fc]
+push dword [ebp - 0x3aea]
+push dword [ebp - 0x61e8]
+mov eax, dword [ebp - 0x61e0]
+lea ecx, [ebp - 0x5efc]
+push esi
+call fcn_fffab673 ; call 0xfffab673
+add esp, 0x10
+mov dword [ebp - 0x4627], 0
+mov dword [ebp - 0x4651], eax
+mov eax, dword [ebp - 0x61d0]
+test eax, eax
+je short loc_fffa259e ; je 0xfffa259e
+cmp dword [ebp - 0x61e0], 0x11
+je short loc_fffa259e ; je 0xfffa259e
+sub esp, 0xc
+push eax
+call dword [eax + 1] ; ucall
+add esp, 0x10
+cmp eax, 2
+jne short loc_fffa259e ; jne 0xfffa259e
+mov byte [ebp - 0x3af5], 1
+
+loc_fffa259e:
+push ecx
+mov eax, dword [ebp - 0x61dc]
+push ecx
+push dword [ebp - 0x6204]
+push esi
+call dword [eax + 1] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x4627], eax
+
+loc_fffa25b9:
+cmp dword [ebp - 0x4651], 0
+jne short loc_fffa2623 ; jne 0xfffa2623
+mov ebx, dword [ebp - 0x3ab9]
+push 0xa0
+push 0
+push 0x1f
+push 0
+call dword [ebx + 0x48] ; ucall
+mov edi, eax
+pop eax
+movzx eax, word [ebp - 0x3ae5]
+pop edx
+push edi
+push eax
+call dword [ebx + 0x14] ; ucall
+movzx eax, word [ebp - 0x3ae3]
+mov dword [esp], eax
+call dword [ebx + 8] ; ucall
+movzx edx, word [ebp - 0x3ae5]
+pop ecx
+mov dword [ebp - 0x6208], eax
+pop eax
+push edi
+push edx
+call dword [ebx + 0x14] ; ucall
+pop eax
+mov eax, dword [ebp - 0x6208]
+pop edx
+and eax, 0xff7f0000
+push eax
+movzx eax, word [ebp - 0x3ae3]
+push eax
+call dword [ebx + 0x14] ; ucall
+add esp, 0x10
+
+loc_fffa2623:
+mov eax, dword [ebp - 0x3ab9]
+mov ebx, 1
+push edi
+push 4
+mov ecx, eax
+mov dword [ebp - 0x620c], eax
+mov eax, dword [ebp - 0x4651]
+mov dword [ebp - 0x2814], eax
+mov eax, dword [ebp - 0x4671]
+lea eax, [eax*4 + ref_fffd3230] ; lea eax, [eax*4 - 0x2cdd0]
+push eax
+lea eax, [ebp - 0x282d]
+push eax
+mov eax, ecx
+call dword [eax + 0x58] ; ucall
+add esp, 0x10
+mov dl, 1
+mov word [ebp - 0x6208], 0
+
+loc_fffa266d:
+mov eax, dword [ebp - 0x6208]
+cmp ax, 0x40
+lea ecx, [eax - 0x2300]
+setbe al
+mov word [ebp - 0x620e], cx
+test al, dl
+je loc_fffa2795 ; je 0xfffa2795
+movzx eax, word [ebp - 0x6208]
+mov dl, 1
+imul eax, eax, 0xc
+cmp dword [eax + ref_fffd5c10], 0 ; cmp dword [eax - 0x2a3f0], 0
+mov dword [ebp - 0x6214], eax
+lea edi, [eax + ref_fffd5c10] ; lea edi, [eax - 0x2a3f0]
+je loc_fffa2789 ; je 0xfffa2789
+mov al, byte [edi + 0xb]
+cmp byte [ebp - 0x465e], al
+jae loc_fffa2789 ; jae 0xfffa2789
+mov eax, dword [ebp - 0x465d]
+test eax, eax
+jne short loc_fffa26d3 ; jne 0xfffa26d3
+test byte [edi + 0xa], 0x10
+jmp short loc_fffa26de ; jmp 0xfffa26de
+
+loc_fffa26d3:
+dec eax
+jne loc_fffa2789 ; jne 0xfffa2789
+test byte [edi + 0xa], 0x20
+
+loc_fffa26de:
+je loc_fffa2789 ; je 0xfffa2789
+mov eax, dword [ebp - 0x2814]
+cmp eax, 2
+jne short loc_fffa26f5 ; jne 0xfffa26f5
+test byte [edi + 0xa], 8
+jmp short loc_fffa2709 ; jmp 0xfffa2709
+
+loc_fffa26f5:
+cmp eax, 3
+jne short loc_fffa2700 ; jne 0xfffa2700
+test byte [edi + 0xa], 2
+jmp short loc_fffa2709 ; jmp 0xfffa2709
+
+loc_fffa2700:
+cmp eax, 1
+jne short loc_fffa270f ; jne 0xfffa270f
+test byte [edi + 0xa], 4
+
+loc_fffa2709:
+jne short loc_fffa271b ; jne 0xfffa271b
+mov dl, 1
+jmp short loc_fffa2789 ; jmp 0xfffa2789
+
+loc_fffa270f:
+mov dl, 1
+test eax, eax
+jne short loc_fffa2789 ; jne 0xfffa2789
+test byte [edi + 0xa], 1
+je short loc_fffa2789 ; je 0xfffa2789
+
+loc_fffa271b:
+mov edx, dword [edi + 6]
+cmp edx, 0x44
+jbe short loc_fffa2776 ; jbe 0xfffa2776
+
+loc_fffa2723:
+mov eax, dword [edi + 4]
+mov edi, dword [ebp - 0x620c]
+push ebx
+push ebx
+cmp ax, 0xffff
+cmove ax, word [ebp - 0x620e]
+movzx eax, ax
+push eax
+lea eax, [ebp - 0x5efc]
+push eax
+call dword [edi + 0x94] ; ucall
+mov eax, edi
+call dword [eax + 0x54] ; ucall
+lea eax, [ebp - 0x5efc]
+mov dword [esp], eax
+mov eax, dword [ebp - 0x6214]
+call dword [eax + ref_fffd5c10] ; ucall: call dword [eax - 0x2a3f0]
+mov ebx, eax
+mov eax, edi
+call dword [eax + 0x54] ; ucall
+add esp, 0x10
+test ebx, ebx
+sete dl
+jmp short loc_fffa2789 ; jmp 0xfffa2789
+
+loc_fffa2776:
+xor ecx, ecx
+lea eax, [ebp - 0x5efc]
+call fcn_fffc3c0d ; call 0xfffc3c0d
+mov dl, 1
+test eax, eax
+je short loc_fffa2723 ; je 0xfffa2723
+
+loc_fffa2789:
+inc word [ebp - 0x6208]
+jmp near loc_fffa266d ; jmp 0xfffa266d
+
+loc_fffa2795:
+push ecx
+push ecx
+push ebx
+lea eax, [ebp - 0x5efc]
+push eax
+call dword [ebp - 0x60cb] ; ucall
+add esp, 0x10
+cmp ebx, 0x17
+je loc_fffa28a9 ; je 0xfffa28a9
+ja short loc_fffa27c5 ; ja 0xfffa27c5
+test ebx, ebx
+je loc_fffa2920 ; je 0xfffa2920
+cmp ebx, 0x16
+je short loc_fffa2832 ; je 0xfffa2832
+jmp near loc_fffa28f7 ; jmp 0xfffa28f7
+
+loc_fffa27c5:
+cmp ebx, 0x18
+je loc_fffa2863 ; je 0xfffa2863
+cmp ebx, 0x1c
+jne loc_fffa28f7 ; jne 0xfffa28f7
+push eax
+push eax
+push 0x3a91
+lea eax, [ebp - 0x3ab1]
+push eax
+call fcn_fffac673 ; call 0xfffac673
+pop eax
+pop edx
+lea eax, [ebp - 0x60c7]
+push 0x1cb
+push eax
+call fcn_fffac673 ; call 0xfffac673
+lea eax, [ebp - 0x61c0]
+add esp, 0x10
+mov dword [ebp - 0x3ab1], 0x3a91
+mov dword [ebp - 0x60c7], 0x1cb
+mov dword [ebp - 0x60c3], eax
+mov byte [ebp - 0x3a6d], 1
+inc byte [ebp - 0x465e]
+jmp near loc_fffa2920 ; jmp 0xfffa2920
+
+loc_fffa2832:
+sub esp, 0xc
+push 0
+lea ecx, [ebp - 0x61ea]
+lea edx, [ebp - 0x61d4]
+lea eax, [ebp - 0x5efc]
+call fcn_fffa77b4 ; call 0xfffa77b4
+mov al, byte [ebp - 0x2815]
+add esp, 0x10
+cmp byte [ebp - 0x61ea], al
+jae loc_fffa28f7 ; jae 0xfffa28f7
+
+loc_fffa2863:
+cmp dword [ebp - 0x4651], 3
+jne short loc_fffa2898 ; jne 0xfffa2898
+push eax
+mov eax, dword [ebp - 0x61e0]
+xor edx, edx
+push dword [ebp - 0x3aea]
+push dword [ebp - 0x61e8]
+lea ecx, [ebp - 0x5efc]
+push esi
+call fcn_fffab673 ; call 0xfffab673
+add esp, 0x10
+mov dword [ebp - 0x4651], eax
+jmp short loc_fffa28a2 ; jmp 0xfffa28a2
+
+loc_fffa2898:
+mov dword [ebp - 0x4651], 0
+
+loc_fffa28a2:
+mov ebx, 0x18
+jmp short loc_fffa2920 ; jmp 0xfffa2920
+
+loc_fffa28a9:
+sub esp, 0xc
+mov eax, dword [ebp - 0x61dc]
+push dword [ebp - 0x4627]
+push dword [ebp - 0x27cb]
+push 1
+push dword [ebp - 0x6204]
+push esi
+call dword [eax + 9] ; ucall
+add esp, 0x18
+push 0xddfe
+lea eax, [ebp - 0x5efc]
+push eax
+call dword [ebp - 0x60df] ; ucall
+mov eax, dword [esi]
+pop ebx
+pop edi
+push 0
+push 0
+push 0
+push 0x51009
+push 2
+push esi
+call dword [eax + 0x58] ; ucall
+add esp, 0x20
+
+loc_fffa28f7:
+sub esp, 0xc
+mov ebx, dword [ebp - 0x6167]
+push 0x80
+call dword [ebp - 0x6173] ; ucall
+pop edx
+pop ecx
+or eax, 0xffffff80
+movzx eax, al
+push eax
+push 0x80
+call ebx
+jmp near loc_fffa2b04 ; jmp 0xfffa2b04
+
+loc_fffa2920:
+and ebx, 0xfffffffb
+cmp ebx, 0x18
+je loc_fffa25b9 ; je 0xfffa25b9
+mov eax, dword [ebp - 0x61d0]
+test eax, eax
+jne short loc_fffa293a ; jne 0xfffa293a
+
+loc_fffa2936:
+xor edi, edi
+jmp short loc_fffa294d ; jmp 0xfffa294d
+
+loc_fffa293a:
+sub esp, 0xc
+push eax
+call dword [eax + 1] ; ucall
+add esp, 0x10
+test eax, eax
+je short loc_fffa2936 ; je 0xfffa2936
+mov edi, 0xffffff80
+
+loc_fffa294d:
+cmp dword [ebp - 0x61fc], 0
+sete bl
+cmp byte [ebp - 0x6200], 1
+sete al
+test bl, al
+je short loc_fffa296b ; je 0xfffa296b
+and edi, 0xfffffff0
+or edi, 3
+
+loc_fffa296b:
+cmp dword [ebp - 0x4627], 0x20
+ja short loc_fffa29b8 ; ja 0xfffa29b8
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov eax, dword [eax + 0x14]
+add eax, 0xb0010
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+inc eax
+je short loc_fffa29b8 ; je 0xfffa29b8
+sub esp, 0xc
+mov eax, edi
+push dword [ebp - 0x4627]
+movzx edi, al
+push dword [ebp - 0x27cb]
+mov eax, dword [ebp - 0x61dc]
+push edi
+push dword [ebp - 0x6204]
+push esi
+call dword [eax + 9] ; ucall
+add esp, 0x20
+
+loc_fffa29b8:
+mov eax, dword [ebp - 0x61d0]
+test eax, eax
+je short loc_fffa2a0d ; je 0xfffa2a0d
+mov edx, dword [ebp - 0x61e8]
+mov edx, dword [edx + 9]
+cmp byte [edx + 0x56], 0
+je short loc_fffa2a0d ; je 0xfffa2a0d
+sub esp, 0xc
+push eax
+call dword [eax + 1] ; ucall
+add esp, 0x10
+cmp eax, 2
+jne short loc_fffa2a0d ; jne 0xfffa2a0d
+cmp dword [ebp - 0x4651], 3
+je short loc_fffa2a0d ; je 0xfffa2a0d
+lea eax, [ebp - 0x61d8]
+push eax
+push 0
+push 0
+push ref_fffd65a0 ; push 0xfffd65a0
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [ebp - 0x61d8]
+pop ecx
+pop edi
+push 3
+push eax
+call dword [eax] ; ucall
+jmp short loc_fffa2a24 ; jmp 0xfffa2a24
+
+loc_fffa2a0d:
+mov eax, dword [ebp - 0x61d0]
+test eax, eax
+je short loc_fffa2a27 ; je 0xfffa2a27
+push edx
+push edx
+lea edx, [ebp - 0x61e0]
+push edx
+push eax
+call dword [eax + 5] ; ucall
+
+loc_fffa2a24:
+add esp, 0x10
+
+loc_fffa2a27:
+cmp dword [ebp - 0x61e0], 0x11
+je short loc_fffa2aa6 ; je 0xfffa2aa6
+cmp dword [ebp - 0x61fc], 3
+sete al
+or al, bl
+je short loc_fffa2a68 ; je 0xfffa2a68
+xor eax, eax
+
+loc_fffa2a40:
+cmp eax, 0x1000
+je short loc_fffa2a4c ; je 0xfffa2a4c
+mov byte [eax], al
+inc eax
+jmp short loc_fffa2a40 ; jmp 0xfffa2a40
+
+loc_fffa2a4c:
+mov edx, 0x14
+
+loc_fffa2a51:
+xor eax, eax
+
+loc_fffa2a53:
+cmp eax, 0x1000
+je short loc_fffa2a65 ; je 0xfffa2a65
+cmp byte [eax], al
+jne loc_fffa2af0 ; jne 0xfffa2af0
+inc eax
+jmp short loc_fffa2a53 ; jmp 0xfffa2a53
+
+loc_fffa2a65:
+dec edx
+jne short loc_fffa2a51 ; jne 0xfffa2a51
+
+loc_fffa2a68:
+push ebx
+mov eax, dword [esi]
+mov esi, dword [ebp - 0x61e4]
+lea edx, [ebp - 0x5efc]
+push 0x5ee4
+push edx
+lea edx, [esi + 0x18]
+push edx
+mov dword [ebp - 0x3a9d], 0
+call dword [eax + 0x50] ; ucall
+mov eax, dword [ebp - 0x61e4]
+pop esi
+pop edi
+add eax, 0x5efc
+push 1
+push eax
+call fcn_fffac673 ; call 0xfffac673
+add esp, 0x10
+
+loc_fffa2aa6:
+push ecx
+push ecx
+push 0x55
+lea eax, [ebp - 0x5efc]
+push eax
+call dword [ebp - 0x60df] ; ucall
+add esp, 0x10
+xor eax, eax
+jmp short loc_fffa2b0c ; jmp 0xfffa2b0c
+
+loc_fffa2abe:
+test al, 1
+je loc_fffa21cf ; je 0xfffa21cf
+jmp near loc_fffa21bc ; jmp 0xfffa21bc
+
+loc_fffa2acb:
+push edx
+push edx
+push 0x1866
+lea eax, [ebp - 0x5ef4]
+push eax
+call fcn_fffac673 ; call 0xfffac673
+add esp, 0x10
+mov dword [ebp - 0x61fc], 0
+jmp near loc_fffa24aa ; jmp 0xfffa24aa
+
+loc_fffa2af0:
+push eax
+push eax
+push 0xd5
+lea eax, [ebp - 0x5efc]
+push eax
+call dword [ebp - 0x60df] ; ucall
+
+loc_fffa2b04:
+add esp, 0x10
+mov eax, 0x80000007
+
+loc_fffa2b0c:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa2b14: ; not directly referenced
+push ebp
+mov ecx, 9
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd3290 ; mov esi, 0xfffd3290
+push ebx
+sub esp, 0x100
+mov eax, dword [ebp + 8]
+lea edi, [ebp - 0x31]
+mov byte [ebp - 0x45], 0x40
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov eax, dword [eax + 0x5edc]
+mov byte [ebp - 0x44], 0x60
+mov byte [ebp - 0x43], 0x40
+mov byte [ebp - 0x42], 0x40
+mov dword [ebp - 0x70], eax
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0x41], 0x40
+mov byte [ebp - 0x40], 0x19
+mov byte [ebp - 0x3f], 0x32
+mov ebx, dword [eax + 0x2443]
+mov eax, dword [eax + 0x18a7]
+mov byte [ebp - 0x3e], 0x14
+mov byte [ebp - 0x3d], 0x14
+mov byte [ebp - 0x3c], 0x19
+mov esi, eax
+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 - 0x88], eax
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 8]
+mov eax, dword [eax + 0x1887]
+mov edi, eax
+mov dword [ebp - 0x8c], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x1883]
+mov dword [ebp - 0xe8], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x80], eax
+mov eax, dword [ecx + esi*4 + 0x3735]
+mov dword [ebp - 0x7c], eax
+movzx eax, byte [ecx + 0x2409]
+mov dword [ebp - 0x90], eax
+mov al, byte [ecx + 0x3748]
+push 0
+push 2
+mov byte [ebp - 0xec], al
+lea eax, [ebp - 0x5a]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 5
+lea eax, [ebp - 0x3b]
+push eax
+lea eax, [ebp - 0x36]
+push eax
+call dword [ebx + 0x58] ; ucall
+add esp, 0xc
+push 4
+lea eax, [ebp - 0x4d]
+push eax
+lea eax, [ebp - 0x49]
+push eax
+call dword [ebx + 0x58] ; ucall
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x2443]
+mov esi, dword [ebx + 0x14]
+push 0
+push 0
+push 0
+push 0
+call dword [ebx + 0x48] ; ucall
+add esp, 0x18
+push eax
+mov eax, dword [ebp + 8]
+movzx eax, word [eax + 0x2417]
+push eax
+call esi
+mov eax, dword [ebp + 8]
+movzx eax, word [eax + 0x2419]
+mov dword [esp], eax
+call dword [ebx + 8] ; ucall
+mov esi, dword [ebp + 8]
+mov ebx, dword [esi + 0x2443]
+shr eax, 0x10
+mov word [esi + 0x3752], ax
+mov esi, dword [ebx + 0x14]
+push 8
+push 0
+push 0
+push 0
+call dword [ebx + 0x48] ; ucall
+add esp, 0x18
+push eax
+mov eax, dword [ebp + 8]
+movzx eax, word [eax + 0x2417]
+push eax
+call esi
+mov eax, dword [ebp + 8]
+movzx eax, word [eax + 0x2419]
+mov dword [esp], eax
+call dword [ebx + 8] ; ucall
+mov esi, dword [ebp + 8]
+add esp, 0x10
+cmp edi, 0x40660
+sete dl
+cmp edi, 0x306c0
+mov byte [esi + 0x3754], al
+sete al
+or dl, al
+mov byte [ebp - 0x82], dl
+je short loc_fffa2d11 ; je 0xfffa2d11
+
+loc_fffa2ccd: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffa2d03 ; jne 0xfffa2d03
+imul eax, dword [ebp - 0x88], 0x2e
+mov edi, dword [ebp + 8]
+lea eax, [edi + eax + 0x3756]
+mov cx, word [eax + 0xa]
+movzx ebx, word [eax + 0xc]
+movzx edx, cx
+sub edx, ebx
+cmp edx, 4
+jle short loc_fffa2d03 ; jle 0xfffa2d03
+sub ecx, 4
+mov word [eax + 0xc], cx
+
+loc_fffa2d03: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+je short loc_fffa2d32 ; je 0xfffa2d32
+jmp short loc_fffa2d1d ; jmp 0xfffa2d1d
+
+loc_fffa2d11: ; not directly referenced
+cmp dword [ebp - 0x8c], 0x40670
+je short loc_fffa2ccd ; je 0xfffa2ccd
+
+loc_fffa2d1d: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x3c
+call fcn_fffc3c0d ; call 0xfffc3c0d
+test eax, eax
+je short loc_fffa2d5e ; je 0xfffa2d5e
+jmp short loc_fffa2dab ; jmp 0xfffa2dab
+
+loc_fffa2d32: ; not directly referenced
+imul eax, dword [ebp - 0x88], 0x2e
+mov edi, dword [ebp + 8]
+lea eax, [edi + eax + 0x4b19]
+mov cx, word [eax + 0xa]
+movzx ebx, word [eax + 0xc]
+movzx edx, cx
+sub edx, ebx
+cmp edx, 4
+jle short loc_fffa2d1d ; jle 0xfffa2d1d
+sub ecx, 4
+mov word [eax + 0xc], cx
+jmp short loc_fffa2d1d ; jmp 0xfffa2d1d
+
+loc_fffa2d5e: ; not directly referenced
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+lea ecx, [ebp - 0x5b]
+lea edx, [ebp - 0x28]
+mov edi, dword [eax + 0x2443]
+lea eax, [ebp - 0x58]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa77b4 ; call 0xfffa77b4
+add esp, 0x10
+test eax, eax
+je loc_fffa2e3d ; je 0xfffa2e3d
+mov edi, dword [ebp + 8]
+mov dword [edi + 0x36d7], eax
+mov eax, dword [ebp - 0x28]
+mov dword [edi + 0x36df], eax
+mov eax, dword [ebp - 0x58]
+mov dword [edi + 0x36e3], eax
+mov al, byte [ebp - 0x5b]
+mov byte [edi + 0x36e7], al
+
+loc_fffa2dab: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x3d
+call fcn_fffc3c0d ; call 0xfffc3c0d
+mov eax, dword [ebp + 8]
+xor edx, edx
+mov ecx, 0x7d0
+mov edi, dword [ebp + 8]
+mov eax, dword [eax + 0x36df]
+div ecx
+mov word [edi + 0x2489], ax
+mov eax, dword [edi + 0x2480]
+cmp eax, 3
+sete bl
+cmp eax, 2
+mov dword [ebp - 0xf0], eax
+sete al
+movzx edi, bl
+cmp dword [ebp - 0x8c], 0x40650
+movzx eax, al
+mov byte [ebp - 0xdc], bl
+mov dword [ebp - 0xe0], eax
+sete bl
+cmp dword [ebp - 0x80], 1
+mov dword [ebp - 0x78], edi
+mov byte [ebp - 0x81], bl
+sete al
+mov byte [ebp - 0x6c], al
+or al, bl
+mov byte [ebp - 0x84], al
+jne loc_fffa2fd2 ; jne 0xfffa2fd2
+mov dword [ebp - 0x98], 0
+jmp near loc_fffa303e ; jmp 0xfffa303e
+
+loc_fffa2e3d: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x36e8], 0
+jne loc_fffa2f5a ; jne 0xfffa2f5a
+cmp dword [eax + 0x18a7], 1
+jne short loc_fffa2e6e ; jne 0xfffa2e6e
+mov al, byte [eax + 0x1876]
+test al, al
+je short loc_fffa2e6e ; je 0xfffa2e6e
+mov esi, dword [ebp + 8]
+mov byte [esi + 0x36e7], al
+jmp near loc_fffa2f5a ; jmp 0xfffa2f5a
+
+loc_fffa2e6e: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x74], 0x3e8
+mov esi, dword [esi + 0x36d7]
+mov eax, dword [eax + 0x187b]
+mov dword [ebp - 0x6c], esi
+mov esi, dword [ebp + 8]
+mov ecx, dword [esi + 0x5edc]
+mov esi, dword [esi + 0x2443]
+test eax, eax
+je short loc_fffa2ea9 ; je 0xfffa2ea9
+mov ebx, 0x186a0
+xor edx, edx
+div ebx
+mov dword [ebp - 0x74], eax
+
+loc_fffa2ea9: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x1887], 0x306d0
+jne short loc_fffa2f03 ; jne 0xfffa2f03
+cmp dword [eax + 0x1883], 4
+jbe short loc_fffa2f03 ; jbe 0xfffa2f03
+cmp byte [eax + 0x2442], 1
+jne short loc_fffa2f03 ; jne 0xfffa2f03
+cmp dword [eax + 0x1877], 2
+jne short loc_fffa2f03 ; jne 0xfffa2f03
+cmp dword [ebp - 0x6c], 0x640
+jne short loc_fffa2f03 ; jne 0xfffa2f03
+mov eax, dword [ecx + 0x1c6]
+test eax, eax
+je short loc_fffa2f03 ; je 0xfffa2f03
+cmp byte [ecx + 0x1ca], 0
+jne short loc_fffa2ef6 ; jne 0xfffa2ef6
+cmp eax, 0x63f
+jbe short loc_fffa2f03 ; jbe 0xfffa2f03
+
+loc_fffa2ef6: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [eax + 0x36e3], 1
+
+loc_fffa2f03: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ebx, 0x30d40
+cmp dword [eax + 0x36e3], 1
+mov eax, 0x411ab
+cmovne ebx, eax
+xor edx, edx
+push eax
+mov eax, dword [ebp - 0x6c]
+push 0x3b9aca00
+push edx
+push eax
+call dword [esi + 0x70] ; ucall
+mov ecx, dword [ebp - 0x74]
+mov dword [esp], 0
+imul ecx, ebx
+xor ebx, ebx
+push ebx
+push ecx
+push edx
+push eax
+call dword [esi + 0x74] ; ucall
+mov ecx, 0x3e8
+xor edx, edx
+mov esi, dword [ebp + 8]
+add esp, 0x20
+add eax, 0x1f4
+div ecx
+mov byte [esi + 0x36e7], al
+
+loc_fffa2f5a: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov bl, byte [eax + 0x36e7]
+lea eax, [ebx - 3]
+cmp al, 0xc
+jbe short loc_fffa2f74 ; jbe 0xfffa2f74
+
+loc_fffa2f6a: ; not directly referenced
+mov edx, 0x16
+jmp near loc_fffa5b40 ; jmp 0xfffa5b40
+
+loc_fffa2f74: ; not directly referenced
+mov eax, dword [ebp + 8]
+and ebx, 0xf
+mov edx, 0x5e00
+cmp dword [eax + 0x36e3], 0
+setne al
+movzx eax, al
+shl eax, 4
+or ebx, eax
+mov eax, dword [ebp + 8]
+or ebx, 0x80000000
+mov ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+call dword [edi + 0x54] ; ucall
+lea esi, [eax + 0x2710]
+
+loc_fffa2faa: ; not directly referenced
+shr ebx, 0x18
+test bl, bl
+jns loc_fffa5aca ; jns 0xfffa5aca
+call dword [edi + 0x54] ; ucall
+cmp edx, 0
+ja short loc_fffa2f6a ; ja 0xfffa2f6a
+cmp eax, esi
+jae short loc_fffa2f6a ; jae 0xfffa2f6a
+mov eax, dword [ebp + 8]
+mov edx, 0x5e00
+call fcn_fffae52a ; call 0xfffae52a
+mov ebx, eax
+jmp short loc_fffa2faa ; jmp 0xfffa2faa
+
+loc_fffa2fd2: ; not directly referenced
+xor ecx, ecx
+cmp dword [ebp - 0x90], 0
+sete cl
+shl ecx, 0xa
+cmp dword [ebp - 0x78], 0
+je short loc_fffa300a ; je 0xfffa300a
+mov eax, dword [ebp + 8]
+or ch, 8
+mov al, byte [eax + 0x240c]
+mov edx, eax
+and edx, 0xf
+shr al, 4
+shl edx, 0xc
+and eax, 0xf
+shl eax, 0x10
+or ecx, edx
+or ecx, eax
+jmp short loc_fffa301c ; jmp 0xfffa301c
+
+loc_fffa300a: ; not directly referenced
+mov edi, dword [ebp - 0xe0]
+mov eax, ecx
+or eax, 0x100000
+test edi, edi
+cmovne ecx, eax
+
+loc_fffa301c: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x2008
+call fcn_fffae58c ; call 0xfffae58c
+xor eax, eax
+cmp dword [ebp - 0x8c], 0x40670
+setne al
+mov dword [ebp - 0x98], eax
+
+loc_fffa303e: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x5034
+movzx ecx, byte [eax + 0x36cf]
+movzx eax, byte [eax + 0x36d0]
+shl ecx, 0x18
+shl eax, 0x10
+or ecx, eax
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x36d2]
+or ecx, eax
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x36d1]
+shl eax, 8
+or ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x7c], 0x546
+ja short loc_fffa309c ; ja 0xfffa309c
+cmp dword [ebp - 0x7c], 0x4e2
+mov byte [ebp - 0x74], 0
+setbe byte [ebp - 0xd8]
+jmp short loc_fffa30a7 ; jmp 0xfffa30a7
+
+loc_fffa309c: ; not directly referenced
+mov byte [ebp - 0xd8], 0
+mov byte [ebp - 0x74], 1
+
+loc_fffa30a7: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa30d0 ; je 0xfffa30d0
+mov edi, dword [ebp + 8]
+xor eax, eax
+cmp byte [edi + 0x240f], 0
+je short loc_fffa30c7 ; je 0xfffa30c7
+xor eax, eax
+cmp dword [ebp - 0x7c], 0x5db
+setbe al
+
+loc_fffa30c7: ; not directly referenced
+mov edi, dword [ebp - 0x70]
+mov byte [edi + 0x1c5], al
+
+loc_fffa30d0: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x3918
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, dword [ebp + 8]
+mov dl, byte [edi + 0x36e7]
+and eax, 3
+cmp dword [edi + 0x36e3], 1
+sbb ecx, ecx
+and ecx, 0xfffffffe
+add ecx, 6
+sub edx, ecx
+mov cl, 4
+cmp dl, 4
+cmovle ecx, edx
+xor edx, edx
+test cl, cl
+cmovns edx, ecx
+cmp byte [ebp - 0x81], 0
+je short loc_fffa3132 ; je 0xfffa3132
+movzx ebx, byte [ebp - 0x74]
+cmp dl, 2
+mov cl, 2
+cmovle ecx, edx
+movzx eax, al
+movsx ecx, cl
+lea ebx, [ebx + ebx*2]
+add ecx, ebx
+mov al, byte [eax + ecx*4 + ref_fffd32d4] ; mov al, byte [eax + ecx*4 - 0x2cd2c]
+jmp short loc_fffa314e ; jmp 0xfffa314e
+
+loc_fffa3132: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+jne short loc_fffa3156 ; jne 0xfffa3156
+movzx ecx, byte [ebp - 0x74]
+movsx edx, dl
+movzx eax, al
+lea ecx, [ecx + ecx*4]
+add edx, ecx
+mov al, byte [eax + edx*4 + ref_fffd32ac] ; mov al, byte [eax + edx*4 - 0x2cd54]
+
+loc_fffa314e: ; not directly referenced
+mov byte [ebp - 0xc8], al
+jmp short loc_fffa315d ; jmp 0xfffa315d
+
+loc_fffa3156: ; not directly referenced
+mov byte [ebp - 0xc8], 4
+
+loc_fffa315d: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffa317e ; jne 0xfffa317e
+imul eax, dword [ebp - 0x88], 0x2e
+mov edi, dword [ebp + 8]
+mov ax, word [edi + eax + 0x3760]
+mov byte [ebp - 0x5a], al
+
+loc_fffa317e: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffa319f ; jne 0xfffa319f
+imul eax, dword [ebp - 0x88], 0x2e
+mov edi, dword [ebp + 8]
+mov ax, word [edi + eax + 0x4b23]
+mov byte [ebp - 0x59], al
+
+loc_fffa319f: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor esi, esi
+mov byte [ebp - 0x83], 0
+lea edi, [eax + 0x381a]
+add eax, 0x1eaa
+mov dword [ebp - 0xe4], eax
+
+loc_fffa31bc: ; not directly referenced
+cmp dword [edi - 0xc4], 2
+jne loc_fffa3346 ; jne 0xfffa3346
+cmp dword [edi - 4], 2
+mov ecx, esi
+mov ebx, dword [ebp + 8]
+sete al
+add byte [ebp - 0x83], al
+mov eax, 1
+shl eax, cl
+or byte [ebx + 0x248e], al
+mov al, byte [edi]
+or byte [ebx + 0x248d], al
+mov cl, byte [edi]
+and ecx, 0xf
+cmp dword [ebp - 0x78], 0
+je short loc_fffa3215 ; je 0xfffa3215
+mov ebx, dword [ebp - 0xe4]
+xor ecx, ecx
+cmp byte [ebx - 1], 0
+setne cl
+mov eax, ecx
+or eax, 2
+cmp byte [ebx], 0
+cmovne ecx, eax
+
+loc_fffa3215: ; not directly referenced
+mov eax, dword [ebp + 8]
+lea ebx, [esi + 0x18]
+shl ebx, 8
+mov edx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+movzx eax, byte [edi]
+and eax, 0xf
+cmp byte [ebp - 0x81], 0
+mov ecx, eax
+je short loc_fffa3250 ; je 0xfffa3250
+cmp dword [ebp - 0x78], 0
+je short loc_fffa324b ; je 0xfffa324b
+mov edx, dword [ebp + 8]
+or ecx, 0x20
+cmp byte [edx + 0x240a], 0
+jne short loc_fffa3250 ; jne 0xfffa3250
+
+loc_fffa324b: ; not directly referenced
+or eax, 0x30
+mov ecx, eax
+
+loc_fffa3250: ; not directly referenced
+cmp byte [ebp - 0xec], 0
+sete al
+and al, byte [ebp - 0x6c]
+mov byte [ebp - 0xf4], al
+je short loc_fffa3268 ; je 0xfffa3268
+or ecx, 0x40
+
+loc_fffa3268: ; not directly referenced
+lea eax, [ebx - 0x1800]
+mov dword [ebp - 0xf8], eax
+mov eax, dword [ebp + 8]
+lea edx, [ebx + 0x420]
+call fcn_fffae58c ; call 0xfffae58c
+mov dl, byte [edi]
+mov ebx, edx
+and ebx, 0xf
+cmp dword [ebp - 0x78], 0
+je loc_fffa3317 ; je 0xfffa3317
+mov eax, dword [ebp + 8]
+lea ecx, [esi*4]
+xor ebx, ebx
+mov dword [ebp - 0xa8], 0
+movzx eax, byte [eax + 0x240c]
+sar eax, cl
+movzx ecx, dl
+and eax, 0xf
+mov dword [ebp - 0xfc], ecx
+
+loc_fffa32be: ; not directly referenced
+mov cl, byte [ebp - 0xa8]
+mov edx, dword [ebp - 0xfc]
+sar edx, cl
+xor ecx, ecx
+mov dword [ebp - 0x94], edx
+and dword [ebp - 0x94], 1
+
+loc_fffa32db: ; not directly referenced
+mov edx, eax
+shr edx, cl
+and edx, 1
+cmp edx, dword [ebp - 0xa8]
+jne short loc_fffa32ff ; jne 0xfffa32ff
+cmp dword [ebp - 0x94], 0
+je short loc_fffa32ff ; je 0xfffa32ff
+mov edx, 1
+shl edx, cl
+or ebx, edx
+and ebx, 0xf
+
+loc_fffa32ff: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffa32db ; jne 0xfffa32db
+inc dword [ebp - 0xa8]
+cmp dword [ebp - 0xa8], 4
+jne short loc_fffa32be ; jne 0xfffa32be
+and ebx, 0xf
+
+loc_fffa3317: ; not directly referenced
+mov cl, byte [ebp - 0xf4]
+mov eax, ebx
+or eax, 0x40
+mov edx, dword [ebp - 0xf8]
+test cl, cl
+cmovne ebx, eax
+mov eax, dword [ebp + 8]
+add edx, 0x1220
+mov ecx, ebx
+and ebx, 0xf
+call fcn_fffae58c ; call 0xfffae58c
+mov byte [edi + 0xfce], bl
+
+loc_fffa3346: ; not directly referenced
+inc esi
+add edi, 0x13c3
+add dword [ebp - 0xe4], 0x54a
+cmp esi, 2
+jne loc_fffa31bc ; jne 0xfffa31bc
+cmp dword [ebp - 0x80], 1
+mov ebx, 0x3620
+sbb eax, eax
+xor edi, edi
+mov dword [ebp - 0xa8], eax
+and byte [ebp - 0xa8], 0xfa
+add byte [ebp - 0xa8], 7
+mov eax, dword [ebp - 0xa8]
+and eax, 0x1f
+mov dword [ebp - 0xec], eax
+
+loc_fffa3390: ; not directly referenced
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x248d]
+bt eax, edi
+jb short loc_fffa33ad ; jb 0xfffa33ad
+
+loc_fffa339f: ; not directly referenced
+inc edi
+add ebx, 4
+cmp edi, 4
+jne short loc_fffa3390 ; jne 0xfffa3390
+jmp near loc_fffa34a4 ; jmp 0xfffa34a4
+
+loc_fffa33ad: ; not directly referenced
+mov ecx, dword [ebp - 0xec]
+lea edx, [ebx - 0x20]
+mov eax, dword [ebp + 8]
+shl ecx, 0xf
+or ecx, 0x2004040
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+lea edx, [ebx - 0x10]
+mov ecx, 0x88888888
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, ebx
+cmp byte [ebp - 0x6c], 1
+sbb esi, esi
+and esi, 0xf00000
+add esi, 0x2c08060
+mov ecx, esi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+lea edx, [ebx + 0x10]
+mov ecx, 0x88888888
+shr esi, 0x14
+and esi, 0x3f
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov ecx, dword [ebp + 8]
+imul eax, edi, 0x12
+lea edx, [edi + edi*8]
+mov byte [ebp - 0xe4], 2
+lea eax, [ecx + eax + 0x3756]
+lea edx, [ecx + edx + 0x3756]
+mov dword [ebp - 0x94], eax
+
+loc_fffa342f: ; not directly referenced
+xor eax, eax
+
+loc_fffa3431: ; not directly referenced
+mov ecx, dword [ebp - 0x94]
+mov word [ecx + eax*2 + 0x169], 0x60
+mov word [ecx + eax*2 + 0x121], 0x40
+mov ecx, esi
+mov byte [edx + eax + 0x24d], cl
+mov ecx, dword [ebp - 0x94]
+mov word [ecx + eax*2 + 0x1b1], 0x40
+mov cl, byte [ebp - 0xa8]
+mov byte [edx + eax + 0x104a], 0x20
+mov byte [edx + eax + 0x106e], 0x20
+mov byte [edx + eax + 0x1026], cl
+inc eax
+cmp eax, 9
+jne short loc_fffa3431 ; jne 0xfffa3431
+add dword [ebp - 0x94], 0x13c3
+add edx, 0x13c3
+dec byte [ebp - 0xe4]
+jne short loc_fffa342f ; jne 0xfffa342f
+jmp near loc_fffa339f ; jmp 0xfffa339f
+
+loc_fffa34a4: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x3648
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 0x88888888
+call fcn_fffaa226 ; call 0xfffaa226
+mov eax, dword [ebp + 8]
+mov edx, 0x3670
+cmp dword [eax + 0x188b], 1
+mov eax, 0x367c
+cmove edx, eax
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 0x365c
+cmp dword [eax + 0x188b], 1
+mov eax, 0x3668
+cmove edx, eax
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov al, byte [ebp - 0x74]
+and eax, 1
+mov edi, eax
+mov byte [ebp - 0x94], al
+mov al, byte [ebp - 0x98]
+and edi, 1
+shl edi, 0x13
+and eax, 1
+mov byte [ebp - 0xe4], al
+and eax, 1
+shl eax, 0x1a
+or edi, eax
+cmp dword [ebp - 0x78], 0
+je short loc_fffa3551 ; je 0xfffa3551
+mov bl, byte [ebp - 0x84]
+or edi, 0x10000000
+mov eax, edi
+or eax, 0x80000000
+test bl, bl
+cmovne edi, eax
+or edi, 0x40000000
+
+loc_fffa3551: ; not directly referenced
+mov bl, byte [ebp - 0x82]
+mov eax, edi
+mov edx, 0x3674
+or ah, 1
+test bl, bl
+cmovne edi, eax
+mov eax, dword [ebp + 8]
+mov ecx, edi
+cmp dword [eax + 0x188b], 1
+mov eax, 0x3680
+cmove edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x190a], 1
+mov eax, dword [ebp - 0xc8]
+sbb esi, esi
+not esi
+and eax, 7
+and esi, 0x40
+shl eax, 0xa
+or esi, eax
+or esi, 0x7efc010
+cmp dword [ebp - 0x78], 0
+je short loc_fffa35c5 ; je 0xfffa35c5
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa35c5 ; je 0xfffa35c5
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x1922]
+and eax, 7
+shl eax, 0x1b
+or esi, eax
+
+loc_fffa35c5: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x3660
+mov ecx, esi
+cmp dword [eax + 0x188b], 1
+mov eax, 0x366c
+cmove edx, eax
+mov eax, dword [ebp + 8]
+xor ebx, ebx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+cmp byte [ebp - 0x81], 0
+je short loc_fffa3603 ; je 0xfffa3603
+cmp dword [ebp - 0x78], 1
+sbb ebx, ebx
+and ebx, 0xfffffe80
+add ebx, 0x3f180
+
+loc_fffa3603: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa3663 ; je 0xfffa3663
+mov eax, ebx
+mov ecx, dword [ebp - 0x70]
+and eax, 0xe3fc01ff
+or eax, 0x3f000
+mov ebx, eax
+or eax, 0x10000000
+or ebx, 0x12400000
+cmp byte [ecx + 0x1c5], 0
+mov ecx, dword [ebp + 8]
+cmove ebx, eax
+mov eax, ebx
+or eax, 0x80000
+cmp byte [ecx + 0x240d], 0
+cmovne ebx, eax
+cmp dword [ebp - 0x78], 0
+je short loc_fffa3651 ; je 0xfffa3651
+or ebx, 0x180
+jmp short loc_fffa3663 ; jmp 0xfffa3663
+
+loc_fffa3651: ; not directly referenced
+mov ecx, dword [ebp - 0xe0]
+mov eax, ebx
+or eax, 0x300000
+test ecx, ecx
+cmovne ebx, eax
+
+loc_fffa3663: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+mov dword [ebp - 0x74], 0
+add eax, 0x1c
+mov dword [ebp - 0xc8], eax
+
+loc_fffa3676: ; not directly referenced
+imul eax, dword [ebp - 0x74], 0x13c3
+mov ecx, dword [ebp + 8]
+cmp dword [ecx + eax + 0x3756], 2
+je short loc_fffa36a2 ; je 0xfffa36a2
+
+loc_fffa368a: ; not directly referenced
+inc dword [ebp - 0x74]
+add dword [ebp - 0xc8], 0xcc
+cmp dword [ebp - 0x74], 2
+jne short loc_fffa3676 ; jne 0xfffa3676
+jmp near loc_fffa3762 ; jmp 0xfffa3762
+
+loc_fffa36a2: ; not directly referenced
+mov eax, dword [ebp - 0xc8]
+mov byte [ebp - 0xa8], 0
+mov dword [eax], edi
+mov eax, dword [ebp - 0x74]
+movzx eax, byte [ebp + eax - 0x5a]
+lea eax, [eax + eax - 6]
+movzx eax, al
+mov dword [ebp - 0xf4], eax
+
+loc_fffa36c6: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov al, byte [ebp - 0xa8]
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffa368a ; jae 0xfffa368a
+movzx eax, byte [ebp - 0xa8]
+and ebx, 0xffffffe0
+mov edx, dword [ebp - 0xc8]
+mov ecx, eax
+lea eax, [edx + eax*4]
+mov edx, dword [ebp - 0x74]
+mov dword [eax + 0x54], 0
+mov dword [eax + 0x78], 0
+mov dword [ebp - 0xec], eax
+mov dword [eax + 4], esi
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x98], ecx
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0x98]
+mov dword [ebp - 0xe0], eax
+movzx eax, byte [ebp + ecx - 0x31]
+mov ecx, dword [ebp + 8]
+imul eax, dword [ebp - 0xf4]
+movzx ecx, byte [ecx + 0x2488]
+cdq
+idiv ecx
+mov edx, dword [ebp - 0xe0]
+and eax, 0x1f
+or ebx, eax
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0xec]
+inc byte [ebp - 0xa8]
+mov dword [eax + 0x28], ebx
+jmp near loc_fffa36c6 ; jmp 0xfffa36c6
+
+loc_fffa3762: ; not directly referenced
+mov edi, dword [ebp - 0x7c]
+mov eax, edi
+movzx ebx, di
+sub ax, 0x3b6
+mov word [ebp - 0xc8], ax
+movzx eax, ax
+mov dword [ebp - 0xec], eax
+imul eax, eax, 0xc0
+cdq
+idiv ebx
+sub eax, 0x14
+mov word [ebp - 0xf4], ax
+movzx eax, ax
+add eax, 0x4d8140
+cmp byte [ebp - 0x81], 0
+mov dword [ebp - 0x74], eax
+je short loc_fffa37b4 ; je 0xfffa37b4
+mov ecx, eax
+mov eax, dword [ebp + 8]
+mov edx, 0x366c
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffa37b4: ; not directly referenced
+cmp byte [ebp - 0x82], 0
+je short loc_fffa37cd ; je 0xfffa37cd
+mov ecx, dword [ebp - 0x74]
+mov edx, 0x306c
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffa37cd: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa3817 ; je 0xfffa3817
+mov ecx, dword [ebp - 0x74]
+mov eax, dword [ebp - 0x8c]
+and ch, 0x3f
+cmp eax, 0x306d0
+je short loc_fffa3801 ; je 0xfffa3801
+cmp dword [ebp - 0xe8], 0
+setne dl
+cmp eax, 0x40670
+sete al
+test dl, al
+jne short loc_fffa3801 ; jne 0xfffa3801
+or ch, 0x40
+jmp short loc_fffa3804 ; jmp 0xfffa3804
+
+loc_fffa3801: ; not directly referenced
+or ch, 0x50
+
+loc_fffa3804: ; not directly referenced
+mov dword [ebp - 0x74], ecx
+mov eax, dword [ebp + 8]
+mov edx, 0x3678
+mov ecx, dword [ebp - 0x74]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffa3817: ; not directly referenced
+mov eax, dword [ebp - 0x74]
+mov edx, 0x3a24
+mov esi, ref_fffd329c ; mov esi, 0xfffd329c
+shl ebx, 7
+lea edi, [ebp - 0x28]
+mov ecx, eax
+mov dword [ebp - 0xfc], eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov ecx, 4
+mov byte [ebp - 0xa8], 0
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+xor esi, esi
+movzx eax, word [eax + 0x1904]
+imul eax, eax, 0x2ee00
+cdq
+idiv ebx
+sub ax, 0x3e8
+mov word [ebp - 0xe8], ax
+mov eax, 0x3e8
+
+loc_fffa386d: ; not directly referenced
+mov edi, dword [ebp - 0xe8]
+mov ebx, esi
+xor edx, edx
+sub di, word [ebp + esi*2 - 0x28]
+mov byte [ebp - 0xe0], bl
+mov ebx, eax
+mov byte [ebp - 0x98], cl
+mov word [ebp - 0xf8], di
+
+loc_fffa3891: ; not directly referenced
+mov eax, dword [ebp - 0xf8]
+mov cl, dl
+sub ax, word [ebp + edx*2 - 0x28]
+mov edi, eax
+sar di, 0xf
+xor eax, edi
+sub eax, edi
+cmp bx, ax
+jg short loc_fffa38b7 ; jg 0xfffa38b7
+mov cl, byte [ebp - 0x98]
+mov eax, ebx
+jmp short loc_fffa38c3 ; jmp 0xfffa38c3
+
+loc_fffa38b7: ; not directly referenced
+mov bl, byte [ebp - 0xe0]
+mov byte [ebp - 0xa8], bl
+
+loc_fffa38c3: ; not directly referenced
+inc edx
+cmp edx, 8
+je short loc_fffa38d3 ; je 0xfffa38d3
+mov byte [ebp - 0x98], cl
+mov ebx, eax
+jmp short loc_fffa3891 ; jmp 0xfffa3891
+
+loc_fffa38d3: ; not directly referenced
+inc esi
+cmp esi, 8
+jne short loc_fffa386d ; jne 0xfffa386d
+xor eax, eax
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa38ea ; je 0xfffa38ea
+mov ax, 0xb40
+xor edx, edx
+div dword [ebp - 0x7c]
+
+loc_fffa38ea: ; not directly referenced
+cmp byte [ebp - 0x81], 0
+je short loc_fffa3901 ; je 0xfffa3901
+mov edx, eax
+shl edx, 0x12
+lea edi, [edx + 0x2051c]
+mov dword [ebp - 0x74], edi
+
+loc_fffa3901: ; not directly referenced
+cmp byte [ebp - 0x82], 0
+jne short loc_fffa3914 ; jne 0xfffa3914
+cmp byte [ebp - 0x6c], 0
+je loc_fffa399b ; je 0xfffa399b
+
+loc_fffa3914: ; not directly referenced
+mov edi, dword [ebp - 0xa8]
+shl eax, 0x12
+lea ecx, [ecx + edi*8]
+movzx ecx, cl
+shl ecx, 0xc
+add ecx, eax
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa3992 ; je 0xfffa3992
+xor eax, eax
+xor ebx, ebx
+xor esi, esi
+
+loc_fffa3934: ; not directly referenced
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x1973], 0
+jne short loc_fffa394d ; jne 0xfffa394d
+cmp byte [edi + eax + 0x1be9], 1
+adc bl, 0
+inc esi
+
+loc_fffa394d: ; not directly referenced
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x1bea], 0
+jne short loc_fffa3966 ; jne 0xfffa3966
+cmp byte [edi + eax + 0x1e60], 1
+adc bl, 0
+inc esi
+
+loc_fffa3966: ; not directly referenced
+add eax, 0x54a
+cmp eax, 0xa94
+jne short loc_fffa3934 ; jne 0xfffa3934
+mov eax, esi
+cmp al, bl
+sete al
+or eax, dword [ebp - 0xdc]
+cmp al, 1
+sbb edx, edx
+and edx, 4
+lea eax, [edx + ecx + 0x518]
+mov dword [ebp - 0x74], eax
+jmp short loc_fffa399f ; jmp 0xfffa399f
+
+loc_fffa3992: ; not directly referenced
+lea eax, [ecx + 0x53f]
+mov dword [ebp - 0x74], eax
+
+loc_fffa399b: ; not directly referenced
+xor ebx, ebx
+xor esi, esi
+
+loc_fffa399f: ; not directly referenced
+cmp byte [ebp - 0x81], 0
+je short loc_fffa39b8 ; je 0xfffa39b8
+mov ecx, dword [ebp - 0x74]
+mov edx, 0xf68
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa39b8: ; not directly referenced
+cmp byte [ebp - 0x82], 0
+je short loc_fffa39d1 ; je 0xfffa39d1
+mov ecx, dword [ebp - 0x74]
+mov edx, 0xf6c
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa39d1: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa39e7 ; je 0xfffa39e7
+mov ecx, dword [ebp - 0x74]
+mov edx, 0xf74
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa39e7: ; not directly referenced
+mov eax, dword [ebp - 0x94]
+mov cl, 3
+and eax, 1
+shl eax, 0x1a
+or eax, 0xe00000
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa3a12 ; je 0xfffa3a12
+mov ecx, esi
+cmp cl, bl
+sete cl
+or ecx, dword [ebp - 0xdc]
+neg ecx
+add ecx, 3
+
+loc_fffa3a12: ; not directly referenced
+mov ebx, ecx
+mov edx, 0x3678
+and ebx, 3
+shl ebx, 0x18
+or ebx, eax
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+cmp dword [eax + 0x188b], 1
+mov eax, 0x3684
+cmove edx, eax
+mov eax, dword [ebp + 8]
+xor edi, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp - 0x70]
+mov dword [eax + 0x14], ebx
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x74], eax
+mov eax, dword [ebp - 0x94]
+and eax, 1
+mov dword [ebp - 0xdc], eax
+
+loc_fffa3a5a: ; not directly referenced
+cmp dword [ebx + 0x3756], 2
+jne loc_fffa3c8b ; jne 0xfffa3c8b
+mov eax, dword [ebp - 0xdc]
+lea edx, [edi + 0x1810]
+mov ecx, dword [ebp - 0x78]
+shl eax, 0x1b
+mov esi, eax
+or eax, 0x10
+or esi, 0x20000010
+test ecx, ecx
+mov cl, byte [ebp - 0x6c]
+cmove esi, eax
+mov eax, esi
+and eax, 0x7fffffff
+test cl, cl
+cmovne esi, eax
+mov eax, dword [ebp + 8]
+mov ecx, esi
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x6c], 0
+mov dword [ebp - 0xa8], esi
+je short loc_fffa3aba ; je 0xfffa3aba
+and esi, 0x7fffffbf
+mov dword [ebp - 0xa8], esi
+
+loc_fffa3aba: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x190a], 0
+je short loc_fffa3ad6 ; je 0xfffa3ad6
+or dword [ebp - 0xa8], 0x10000000
+or esi, 0x10000000
+
+loc_fffa3ad6: ; not directly referenced
+or esi, 0x18000
+cmp dword [ebp - 0x80], 1
+lea edx, [edi + 0x320c]
+setne al
+and esi, 0xffff9fff
+mov byte [ebp - 0x98], al
+and eax, 1
+shl eax, 0xd
+or esi, eax
+mov eax, dword [ebp + 8]
+mov ecx, esi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0x74]
+lea edx, [edi + 0x121c]
+mov al, byte [ebp - 0x98]
+mov byte [ecx + 0xd0], al
+mov eax, dword [ebp + 8]
+mov ecx, esi
+and ecx, 0xffe1bfff
+or ecx, 0x120000
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0xa8]
+lea edx, [edi + 0x1c1c]
+mov esi, dword [ebp - 0x80]
+and eax, 0xffe1ffff
+or eax, 0x20000
+mov ecx, eax
+or eax, 0x100000
+or ecx, 0x40100000
+test esi, esi
+cmove eax, ecx
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [edi + 0x3208]
+cmp byte [ebp - 0x84], 0
+je short loc_fffa3b85 ; je 0xfffa3b85
+mov eax, dword [ebp + 8]
+mov ecx, 0xc183060
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffa3b9b ; jmp 0xfffa3b9b
+
+loc_fffa3b85: ; not directly referenced
+cmp byte [ebp - 0x82], 0
+je short loc_fffa3b9b ; je 0xfffa3b9b
+mov eax, dword [ebp + 8]
+mov ecx, 0x60
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffa3b9b: ; not directly referenced
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x1208]
+mov ecx, 0xc183060
+mov dword [ebx + 0x386f], 0x60
+mov dword [ebx + 0x3867], 0x60
+mov dword [ebx + 0x3873], 0x60
+mov dword [ebx + 0x386b], 0x60
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x3418]
+mov ecx, 0x8102040
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x180c]
+mov ecx, 0x8102040
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov byte [ebx + 0x3997], 0x40
+lea edx, [edi + 0x3204]
+mov byte [ebx + 0x399b], 0x40
+mov byte [ebx + 0x3998], 0x40
+mov byte [ebx + 0x399c], 0x40
+mov byte [ebx + 0x3999], 0x40
+mov byte [ebx + 0x399d], 0x40
+mov byte [ebx + 0x399a], 0x40
+mov byte [ebx + 0x399e], 0x40
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa3c5a ; je 0xfffa3c5a
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x1204]
+xor ecx, ecx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa3c5a: ; not directly referenced
+mov esi, dword [ebp - 0x74]
+lea edx, [edi + 0x3414]
+xor ecx, ecx
+mov eax, dword [ebp + 8]
+mov dword [esi + 0x68], 0
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x1808]
+mov dword [esi + 0x6c], 0
+xor ecx, ecx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa3c8b: ; not directly referenced
+add edi, 0x100
+add ebx, 0x13c3
+add dword [ebp - 0x74], 0xcc
+cmp edi, 0x200
+jne loc_fffa3a5a ; jne 0xfffa3a5a
+mov al, byte [ebp - 0xe4]
+mov edi, dword [ebp - 0x70]
+shl eax, 3
+cmp byte [ebp - 0x83], 0
+mov dword [edi + 0xc], 0
+mov byte [edi + 0xc], al
+je short loc_fffa3cd9 ; je 0xfffa3cd9
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x187f], 1
+jne short loc_fffa3cd9 ; jne 0xfffa3cd9
+mov byte [ebp - 0x35], 0x3c
+
+loc_fffa3cd9: ; not directly referenced
+cmp dword [ebp - 0x8c], 0x306d0
+mov bl, byte [ebp - 0x81]
+sete al
+or bl, al
+je short loc_fffa3d0c ; je 0xfffa3d0c
+mov eax, dword [ebp - 0x70]
+mov byte [ebp - 0x40], 0x28
+mov byte [ebp - 0x36], 0x28
+mov byte [ebp - 0x3c], 0x28
+cmp byte [eax + 0x1c5], 0
+je short loc_fffa3d0c ; je 0xfffa3d0c
+mov byte [ebp - 0x35], 0x20
+
+loc_fffa3d0c: ; not directly referenced
+mov edi, 0xc
+xor ebx, ebx
+
+loc_fffa3d13: ; not directly referenced
+movzx ecx, byte [ebp + ebx - 0x40]
+movzx edx, byte [ebp + ebx - 0x36]
+movzx eax, byte [ebp + ebx - 0x45]
+mov esi, ecx
+sub esi, edx
+add ecx, edx
+imul eax, esi
+add ecx, ecx
+cdq
+idiv ecx
+cmp bl, 1
+jne short loc_fffa3d76 ; jne 0xfffa3d76
+mov esi, dword [ebp - 0x70]
+cmp ax, 0xfff0
+mov ecx, 0xfffffff0
+cmovge ecx, eax
+mov edx, 0xf
+cmp cx, 0xf
+cmovle edx, ecx
+mov al, byte [esi + 0xd]
+mov ecx, edx
+and ecx, 1
+shl ecx, 7
+shr dx, 1
+and eax, 0x7f
+and edx, 0xf
+or eax, ecx
+mov byte [esi + 0xd], al
+mov al, byte [esi + 0xe]
+and eax, 0xfffffff0
+or eax, edx
+mov byte [esi + 0xe], al
+jmp short loc_fffa3db3 ; jmp 0xfffa3db3
+
+loc_fffa3d76: ; not directly referenced
+cmp ax, 0xfff8
+mov esi, 0xfffffff8
+cmovl eax, esi
+mov esi, 7
+cmp ax, 7
+cmovg eax, esi
+test bl, bl
+jne short loc_fffa3da8 ; jne 0xfffa3da8
+mov esi, dword [ebp - 0x70]
+and eax, 0xf
+shl eax, 3
+mov dl, byte [esi + 0xd]
+and edx, 0xffffff87
+or edx, eax
+mov byte [esi + 0xd], dl
+jmp short loc_fffa3db3 ; jmp 0xfffa3db3
+
+loc_fffa3da8: ; not directly referenced
+mov esi, dword [ebp - 0x70]
+cwde
+mov ecx, edi
+shl eax, cl
+or dword [esi + 0xc], eax
+
+loc_fffa3db3: ; not directly referenced
+inc ebx
+add edi, 4
+cmp ebx, 5
+jne loc_fffa3d13 ; jne 0xfffa3d13
+mov eax, dword [ebp - 0x70]
+mov edx, 0x3a14
+mov ecx, dword [eax + 0xc]
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov ebx, dword [ebp - 0x94]
+and ebx, 1
+shl ebx, 0x19
+and ebx, 0xfeffffff
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa3dff ; je 0xfffa3dff
+mov eax, dword [ebp - 0xd8]
+or ebx, 0x20000000
+and eax, 1
+shl eax, 0x1a
+or ebx, eax
+
+loc_fffa3dff: ; not directly referenced
+imul eax, dword [ebp - 0x88], 0x2e
+add eax, dword [ebp + 8]
+cmp word [eax + 0x375e], 2
+jne short loc_fffa3e41 ; jne 0xfffa3e41
+
+loc_fffa3e13: ; not directly referenced
+mov eax, 1
+mov edx, 2
+
+loc_fffa3e1d: ; not directly referenced
+imul ecx, dword [ebp - 0x88], 0x2e
+add ecx, dword [ebp + 8]
+mov word [ecx + 0x375e], dx
+lea edx, [eax + 1]
+dec eax
+mov word [ecx + 0x4b21], dx
+jne short loc_fffa3e54 ; jne 0xfffa3e54
+mov byte [ebp - 0x48], 0x59
+jmp short loc_fffa3e54 ; jmp 0xfffa3e54
+
+loc_fffa3e41: ; not directly referenced
+cmp word [eax + 0x4b21], 2
+je short loc_fffa3e13 ; je 0xfffa3e13
+xor eax, eax
+mov edx, 1
+jmp short loc_fffa3e1d ; jmp 0xfffa3e1d
+
+loc_fffa3e54: ; not directly referenced
+cmp dword [ebp - 0x78], 0
+je short loc_fffa3e5e ; je 0xfffa3e5e
+mov byte [ebp - 0x48], 0x3f
+
+loc_fffa3e5e: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor esi, esi
+mov edi, 5
+movzx eax, word [eax + 0x2489]
+mov dword [ebp - 0x74], eax
+
+loc_fffa3e72: ; not directly referenced
+mov al, byte [ebp + esi - 0x49]
+movzx ecx, al
+shr al, 1
+movzx eax, al
+add eax, dword [ebp - 0x74]
+mov byte [ebp - 0x78], cl
+cdq
+idiv ecx
+lea ecx, [esi + esi*4]
+cmp ax, 4
+cmovbe eax, edi
+cmp ax, 0x10
+ja short loc_fffa3ea0 ; ja 0xfffa3ea0
+mov dl, byte [ebp - 0x78]
+cmp dl, byte [ebp + esi - 0x51]
+jae short loc_fffa3ea9 ; jae 0xfffa3ea9
+
+loc_fffa3ea0: ; not directly referenced
+shr ax, 1
+movzx eax, ax
+dec eax
+jmp short loc_fffa3eaf ; jmp 0xfffa3eaf
+
+loc_fffa3ea9: ; not directly referenced
+movzx eax, ax
+add eax, 0xf
+
+loc_fffa3eaf: ; not directly referenced
+shl eax, cl
+inc esi
+add ebx, eax
+cmp esi, 4
+jne short loc_fffa3e72 ; jne 0xfffa3e72
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+mov edx, 0x3a18
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x70]
+xor ecx, ecx
+cmp dword [ebp - 0x80], 0
+mov dword [eax + 0x10], ebx
+jne loc_fffa3f93 ; jne 0xfffa3f93
+mov esi, dword [ebp - 0xc8]
+mov eax, esi
+lea ecx, [eax + 0x18]
+movzx ecx, cx
+imul eax, ecx, 0x64
+sub ecx, 0xf
+cdq
+idiv ecx
+call fcn_fffaebb7 ; call 0xfffaebb7
+mov edi, dword [ebp + 8]
+movzx ebx, word [edi + 0x2489]
+movzx edi, word [edi + 0x1902]
+movzx ecx, ax
+imul ecx, ecx, 0x7d0
+imul ebx, ebx, 0x7d0
+mov eax, ebx
+cdq
+idiv ecx
+movzx ecx, ax
+mov eax, ecx
+add ecx, 0x3e8
+shl eax, 7
+cdq
+idiv ecx
+mov ecx, edi
+sub ecx, esi
+sub ecx, 0x18
+movzx ecx, cx
+mov dword [ebp - 0x74], eax
+imul eax, ecx, 0x64
+sub ecx, 0xf
+cdq
+idiv ecx
+call fcn_fffaebb7 ; call 0xfffaebb7
+mov esi, eax
+mov eax, 0x7080
+cdq
+movzx esi, si
+idiv edi
+imul esi, esi, 0x7d0
+mov ecx, eax
+mov eax, ebx
+cdq
+and ecx, 0x1f
+idiv esi
+shl ecx, 0xc
+or ecx, 0x80000
+movzx ebx, ax
+mov eax, 0x1f400
+add ebx, 0x3e8
+cdq
+idiv ebx
+mov edx, dword [ebp - 0x74]
+and eax, 0x3f
+shl eax, 6
+and edx, 0x3f
+or ecx, eax
+or ecx, edx
+jmp near loc_fffa4040 ; jmp 0xfffa4040
+
+loc_fffa3f93: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je loc_fffa4040 ; je 0xfffa4040
+mov eax, dword [ebp - 0x70]
+cmp byte [eax + 0x1c5], 0
+je short loc_fffa3fb8 ; je 0xfffa3fb8
+mov eax, dword [ebp + 8]
+mov ecx, 1
+xor edx, edx
+call fcn_fffb9560 ; call 0xfffb9560
+
+loc_fffa3fb8: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov esi, 0x7f
+movzx ecx, word [eax + 0x2489]
+mov eax, 0xafc8
+cdq
+idiv ecx
+mov ecx, 0x64
+mov ebx, eax
+mov eax, dword [ebp + 8]
+movzx eax, word [eax + 0x1902]
+sub eax, dword [ebp - 0xec]
+cdq
+idiv ecx
+xor edx, edx
+mov edi, eax
+mov eax, dword [ebp - 0xc8]
+div cx
+movzx ecx, ax
+mov eax, ecx
+shr eax, 1
+cmp dword [ebp - 0x7c], 0x547
+cmovae ecx, eax
+xor edx, edx
+mov eax, ebx
+div ecx
+cmp eax, 0x7f
+cmova eax, esi
+xor edx, edx
+mov ecx, eax
+mov eax, ebx
+div edi
+and ecx, 0x7f
+shl ecx, 0x11
+cmp eax, 0x7f
+cmovbe esi, eax
+mov eax, dword [ebp - 0xfc]
+or ecx, 0x27c0
+and esi, 0x7f
+shl esi, 0x18
+or ecx, esi
+and eax, 0x3f
+or ecx, eax
+
+loc_fffa4040: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x3a1c
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x2008
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, dword [ebp - 0x70]
+mov edx, 0x2008
+and eax, 0xfffffc20
+or eax, 0x316
+mov ecx, eax
+mov dword [edi + 0x18], eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x2000
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x2004
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x42a0
+movzx ecx, byte [eax + 0x381a]
+call fcn_fffae566 ; call 0xfffae566
+mov eax, dword [ebp + 8]
+mov edx, 0x46a0
+movzx ecx, byte [eax + 0x4bdd]
+call fcn_fffae566 ; call 0xfffae566
+mov eax, dword [ebp + 8]
+mov edx, 0x3a20
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, 0x115
+mov edx, 0x5f08
+mov ebx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x96
+call fcn_fffa834b ; call 0xfffa834b
+cmp dword [ebp - 0x80], 0
+jne loc_fffa4235 ; jne 0xfffa4235
+mov eax, dword [ebp + 8]
+mov edx, 0x3644
+and ebx, 0xf8ffffff
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3644
+and eax, 0x8fffffff
+or eax, 0x20000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 0x3700
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3700
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 0x3810
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3810
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 0x3904
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3904
+and eax, 0xfc7fffff
+or eax, 0x1000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 0x3a04
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a04
+and eax, 0x8fffffff
+or eax, 0x20000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x3a08
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a08
+and eax, 0xf8ffffff
+or eax, 0x2000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x3a0c
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a0c
+and eax, 0xf0ffffff
+or eax, 0x2000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x3a10
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a10
+and eax, 0xf87fffff
+or eax, 0x1000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+or ebx, 0x2000000
+jmp short loc_fffa425d ; jmp 0xfffa425d
+
+loc_fffa4235: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa425d ; je 0xfffa425d
+mov eax, dword [ebp - 0xf0]
+sub eax, 2
+cmp eax, 2
+sbb eax, eax
+and ebx, 0xf8ffffff
+and eax, 4
+add eax, 2
+and eax, 6
+shl eax, 0x18
+or ebx, eax
+
+loc_fffa425d: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+mov edx, 0x3a20
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x70]
+mov edx, 0x2008
+mov ecx, dword [eax + 0x18]
+mov eax, dword [ebp + 8]
+or ecx, 0x20
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x3a04
+call fcn_fffae52a ; call 0xfffae52a
+cmp dword [ebp - 0x80], 0
+jne short loc_fffa429f ; jne 0xfffa429f
+mov ecx, eax
+shr ecx, 9
+and ecx, 0x3f
+jmp short loc_fffa42ac ; jmp 0xfffa42ac
+
+loc_fffa429f: ; not directly referenced
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa42b1 ; je 0xfffa42b1
+mov edi, eax
+shr edi, 0x1a
+mov ecx, edi
+
+loc_fffa42ac: ; not directly referenced
+and eax, 0x3f
+jmp short loc_fffa42b5 ; jmp 0xfffa42b5
+
+loc_fffa42b1: ; not directly referenced
+xor eax, eax
+xor ecx, ecx
+
+loc_fffa42b5: ; not directly referenced
+mov edi, dword [ebp - 0x70]
+sub ecx, eax
+mov eax, ecx
+and eax, 0x3f
+shl eax, 4
+mov edx, dword [edi + 0xc]
+and edx, 0xfffffc0f
+or edx, eax
+mov ecx, edx
+or ch, 4
+cmp byte [ebp - 0x6c], 0
+je short loc_fffa42f1 ; je 0xfffa42f1
+mov ecx, edx
+xor eax, eax
+or ecx, 0x404
+cmp dword [ebp - 0x7c], 0x546
+seta al
+and ecx, 0xfffffffe
+or ecx, eax
+
+loc_fffa42f1: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+mov edx, 0x3a14
+mov dword [eax + 0xc], ecx
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x6c], 0
+je loc_fffa455a ; je 0xfffa455a
+mov eax, dword [ebp + 8]
+mov edx, 0x3658
+mov ecx, 0x80000000
+mov esi, 0xc0
+cmp dword [eax + 0x188b], 1
+mov eax, 0x3664
+cmove edx, eax
+mov eax, dword [ebp + 8]
+xor ebx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov ecx, 0x2000000
+mov edx, 0x3824
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov ecx, 0x2000000
+mov edx, 0x3914
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov ecx, 0x2000000
+mov edx, 0x3724
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x3688
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa437e: ; not directly referenced
+mov eax, ebx
+mov edi, esi
+and eax, 7
+and edi, 0xffff0fff
+shl eax, 0xd
+mov edx, 0xd8c
+or edi, eax
+mov eax, dword [ebp + 8]
+mov ecx, edi
+mov esi, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, edi
+mov edx, 0xc8c
+cmp dword [ebp - 0x90], 0
+je short loc_fffa43b6 ; je 0xfffa43b6
+mov edx, 0x58c
+
+loc_fffa43b6: ; not directly referenced
+mov eax, dword [ebp + 8]
+inc ebx
+and ebx, 7
+call fcn_fffae58c ; call 0xfffae58c
+cmp bl, 6
+jne short loc_fffa437e ; jne 0xfffa437e
+and edi, 0xfffffe0f
+xor ebx, ebx
+mov esi, edi
+or esi, 0x80
+
+loc_fffa43d7: ; not directly referenced
+mov eax, ebx
+mov edi, esi
+and eax, 7
+and edi, 0xffff0fff
+shl eax, 0xd
+or edi, eax
+cmp dword [ebp - 0x90], 0
+mov esi, edi
+mov ecx, edi
+jne short loc_fffa440c ; jne 0xfffa440c
+mov eax, dword [ebp + 8]
+mov edx, 0x58c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, edi
+mov edx, 0x48c
+jmp short loc_fffa4420 ; jmp 0xfffa4420
+
+loc_fffa440c: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x98c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, edi
+mov edx, 0x18c
+
+loc_fffa4420: ; not directly referenced
+mov eax, dword [ebp + 8]
+inc ebx
+and ebx, 7
+call fcn_fffae58c ; call 0xfffae58c
+cmp bl, 6
+jne short loc_fffa43d7 ; jne 0xfffa43d7
+mov ebx, edi
+and edi, 0xffffe60f
+mov esi, edi
+xor edi, edi
+shr ebx, 0x10
+or esi, 0x40
+and ebx, 1
+
+loc_fffa4446: ; not directly referenced
+mov eax, edi
+and esi, 0xffff0fff
+and eax, 7
+shl eax, 0xd
+mov dword [ebp - 0x6c], esi
+or dword [ebp - 0x6c], eax
+mov esi, dword [ebp - 0x6c]
+cmp dword [ebp - 0x90], 0
+mov ecx, esi
+jne short loc_fffa447e ; jne 0xfffa447e
+mov eax, dword [ebp + 8]
+mov edx, 0x78c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x68c
+jmp short loc_fffa4492 ; jmp 0xfffa4492
+
+loc_fffa447e: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0xb8c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x38c
+
+loc_fffa4492: ; not directly referenced
+mov eax, dword [ebp + 8]
+inc edi
+and edi, 7
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, edi
+cmp al, 6
+jne short loc_fffa4446 ; jne 0xfffa4446
+mov eax, dword [ebp - 0x6c]
+mov ecx, dword [ebp + 8]
+shr eax, 0x10
+and eax, 1
+cmp al, 1
+mov eax, 0x10000
+sbb bl, 0xff
+xor esi, esi
+cmp byte [ecx + 0x2410], 0
+cmovne esi, eax
+cmp dword [ebp - 0x90], 0
+mov edi, esi
+mov ecx, esi
+jne short loc_fffa44e9 ; jne 0xfffa44e9
+mov eax, dword [ebp + 8]
+mov edx, 0x38c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x88c
+jmp short loc_fffa44fd ; jmp 0xfffa44fd
+
+loc_fffa44e9: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0xa8c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x48c
+
+loc_fffa44fd: ; not directly referenced
+mov eax, dword [ebp + 8]
+shr esi, 0x10
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, esi
+mov edx, 0x3920
+and eax, 1
+mov ecx, edi
+cmp al, 1
+mov eax, dword [ebp + 8]
+sbb bl, 0xff
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, edi
+shr eax, 0x10
+add bl, al
+setne dl
+cmp word [ebp - 0xf4], 0xf
+setbe al
+test dl, al
+je short loc_fffa455a ; je 0xfffa455a
+mov eax, dword [ebp + 8]
+mov edx, 0x78
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3678
+and eax, 0xffffffc0
+lea ecx, [eax + 0x10]
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffa455a: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+cmp eax, 0x4b0
+je short loc_fffa456e ; je 0xfffa456e
+cmp eax, 0x546
+sete cl
+jmp short loc_fffa4582 ; jmp 0xfffa4582
+
+loc_fffa456e: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 2
+sete cl
+lea ecx, [ecx*4 + 3]
+
+loc_fffa4582: ; not directly referenced
+mov eax, dword [ebp + 8]
+and ecx, 7
+mov edx, 0x58a4
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x6c], 0
+mov eax, dword [eax + 0x2480]
+mov dword [ebp - 0x80], eax
+mov eax, dword [ebp + 8]
+add eax, 0x3756
+mov dword [ebp - 0x88], eax
+mov dword [ebp - 0x70], eax
+mov eax, dword [ebp + 8]
+add eax, 0x244b
+mov dword [ebp - 0x78], eax
+
+loc_fffa45c1: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+cmp dword [eax], 2
+jne loc_fffa502f ; jne 0xfffa502f
+mov edi, dword [ebp + 8]
+imul eax, dword [ebp - 0x6c], 0xcc
+mov edx, dword [edi + 0x5edc]
+lea eax, [edx + eax + 0x1c]
+imul edx, dword [edi + 0x18a7], 0x2e
+mov edi, dword [ebp - 0x70]
+lea edx, [edi + edx + 4]
+movzx ebx, word [edx + 8]
+movzx ecx, word [edx + 0x26]
+mov dword [eax + 0x9c], 0
+lea edi, [ebx + ecx + 4]
+mov cx, word [edx + 0x10]
+mov bl, 0x1f
+mov esi, ecx
+and esi, 0x1f
+cmp cx, 0x1f
+mov cl, byte [eax + 0x9c]
+cmova esi, ebx
+and ecx, 0xffffffe0
+or ecx, esi
+mov byte [eax + 0x9c], cl
+movzx esi, byte [edx + 0x1a]
+and esi, 0x1f
+cmp word [edx + 0x1a], 0x1f
+cmovbe ebx, esi
+and ecx, 0x1f
+mov esi, ebx
+shl esi, 5
+or ecx, esi
+mov byte [eax + 0x9c], cl
+mov cl, byte [eax + 0x9d]
+shr bl, 3
+and ecx, 0xfffffffc
+or ecx, ebx
+mov bl, 0x3f
+mov byte [eax + 0x9d], cl
+movzx esi, byte [edx + 0xc]
+and esi, 0x3f
+cmp word [edx + 0xc], 0x3f
+cmovbe ebx, esi
+and ecx, 3
+shl ebx, 2
+mov esi, 0xf
+or ecx, ebx
+mov byte [eax + 0x9d], cl
+mov cx, word [edx + 0x24]
+mov bl, cl
+and ebx, 0xf
+cmp cx, 0xf
+cmova ebx, esi
+mov ecx, 0x3f
+cmp edi, 0x3f
+cmovbe ecx, edi
+mov edi, ecx
+shl edi, 4
+or ebx, edi
+mov byte [eax + 0x9e], bl
+mov bl, byte [eax + 0x9f]
+shr ecx, 4
+and ecx, 3
+and ebx, 0xfffffffc
+or ebx, ecx
+mov byte [eax + 0x9f], bl
+mov di, word [edx + 0x1e]
+mov ecx, edi
+and ecx, 0xf
+cmp di, 0xf
+mov edi, dword [ebp + 8]
+cmovbe esi, ecx
+and ebx, 0xffffffc3
+shl esi, 2
+or ebx, esi
+mov byte [eax + 0x9f], bl
+cmp dword [edi + 0x2480], 3
+jne short loc_fffa470b ; jne 0xfffa470b
+movzx esi, word [edx + 0x1a]
+movzx ecx, word [edx + 0x1c]
+sub ecx, esi
+mov esi, 3
+cmp ecx, 3
+cmovg ecx, esi
+and ebx, 0x3f
+shl ecx, 6
+or ebx, ecx
+mov byte [eax + 0x9f], bl
+
+loc_fffa470b: ; not directly referenced
+mov edi, dword [ebp + 8]
+cmp dword [edi + 0x2480], 2
+jne short loc_fffa473d ; jne 0xfffa473d
+mov cx, word [edx + 0x22]
+mov dl, 0xf
+mov bl, cl
+and ebx, 0xf
+cmp cx, 0xf
+mov cl, byte [eax + 0x9f]
+cmovbe edx, ebx
+shl edx, 2
+and ecx, 0xffffffc3
+or ecx, edx
+mov byte [eax + 0x9f], cl
+
+loc_fffa473d: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+mov ecx, dword [eax + 0x9c]
+mov eax, dword [ebp + 8]
+mov edi, esi
+add edi, 0x10
+shl edi, 0xa
+mov edx, edi
+call fcn_fffae58c ; call 0xfffae58c
+imul eax, esi, 0xcc
+mov esi, dword [ebp + 8]
+mov edx, dword [esi + 0x5edc]
+lea ecx, [edx + eax + 0x1c]
+imul eax, dword [esi + 0x18a7], 0x2e
+mov esi, dword [ebp - 0x70]
+lea ebx, [esi + eax + 4]
+mov esi, 0x1f
+movzx eax, word [ebx + 6]
+mov dword [ebp - 0x7c], eax
+movzx eax, word [ebx + 8]
+sub dword [ebp - 0x7c], eax
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 2
+mov dword [ecx + 0xac], 0
+mov dx, word [ebx + 8]
+sete byte [ebp - 0x90]
+mov al, dl
+and eax, 0x1f
+cmp dx, 0x1f
+cmova eax, esi
+mov byte [ebp - 0x81], al
+mov dl, al
+shl eax, 5
+mov byte [ebp - 0x8c], al
+mov al, byte [ecx + 0xac]
+mov byte [ebp - 0x74], al
+mov al, byte [ebp - 0x8c]
+and byte [ebp - 0x74], 0x1f
+or byte [ebp - 0x74], al
+mov al, byte [ebp - 0x74]
+mov byte [ecx + 0xac], al
+mov al, dl
+shr al, 3
+mov dl, al
+mov al, byte [ecx + 0xad]
+and eax, 0xfffffffc
+or eax, edx
+mov byte [ecx + 0xad], al
+mov dl, byte [ebx + 6]
+and edx, 0x1f
+cmp word [ebx + 6], 0x1f
+cmovbe esi, edx
+mov dl, byte [ebp - 0x74]
+and eax, 0xffffffc3
+and edx, 0xffffffe0
+or edx, esi
+mov esi, dword [ebp - 0x90]
+mov byte [ecx + 0xac], dl
+lea edx, [esi*8 + 4]
+mov esi, dword [ebp - 0x7c]
+and edx, 0xc
+or eax, edx
+mov edx, 7
+or eax, 0x10
+cmp esi, 7
+cmovbe edx, esi
+and eax, 0x3f
+mov esi, edx
+shl esi, 6
+or eax, esi
+mov byte [ecx + 0xad], al
+mov al, byte [ecx + 0xae]
+shr edx, 2
+and edx, 1
+and eax, 0xfffffffe
+or eax, edx
+mov byte [ecx + 0xae], al
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+jne loc_fffa493f ; jne 0xfffa493f
+cmp byte [eax + 0x240a], 0
+je short loc_fffa4888 ; je 0xfffa4888
+or byte [ecx + 0xaf], 2
+
+loc_fffa4888: ; not directly referenced
+mov dl, byte [ebp - 0x81]
+mov al, byte [ecx + 0xac]
+add edx, 0x1f
+and edx, 0x1f
+and eax, 0x1f
+mov esi, edx
+shl esi, 5
+or eax, esi
+mov byte [ecx + 0xac], al
+mov al, byte [ecx + 0xad]
+shr dl, 3
+and eax, 0xfffffff0
+or eax, edx
+xor edx, edx
+or eax, 8
+mov byte [ecx + 0xad], al
+mov eax, dword [ebp + 8]
+movzx esi, word [ebx + 8]
+movzx eax, word [eax + 0x2489]
+dec esi
+add eax, eax
+mov ebx, eax
+add eax, 0xdab
+div ebx
+mov dword [ebp - 0x74], ebx
+mov bl, byte [ecx + 0xae]
+sub esi, eax
+mov eax, 7
+cmp esi, 7
+cmova esi, eax
+xor edx, edx
+mov eax, esi
+and ebx, 7
+shl eax, 6
+mov byte [ebp - 0x7c], al
+mov al, byte [ecx + 0xaf]
+shr esi, 2
+and esi, 1
+and eax, 0xfffffffe
+or eax, esi
+mov byte [ecx + 0xaf], al
+mov esi, dword [ebp - 0x74]
+lea eax, [esi + 0x6d5]
+div esi
+mov esi, 7
+inc eax
+cmp eax, 7
+cmova eax, esi
+or ebx, dword [ebp - 0x7c]
+and eax, 7
+shl eax, 3
+or ebx, eax
+mov byte [ecx + 0xae], bl
+
+loc_fffa493f: ; not directly referenced
+lea eax, [edi - 0x4000]
+mov ecx, dword [ecx + 0xac]
+mov dword [ebp - 0x74], eax
+lea eax, [edi + 0x14]
+mov edx, eax
+mov dword [ebp - 0x7c], eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov esi, dword [ebp + 8]
+mov edi, dword [ebp - 0x6c]
+mov edx, dword [esi + 0x5edc]
+imul eax, edi, 0xcc
+imul ecx, dword [esi + 0x18a7], 0x2e
+lea eax, [edx + eax + 0x1c]
+imul edx, edi, 0x13c3
+mov edi, dword [ebp - 0x78]
+lea edx, [ecx + edx + 0x1300]
+lea ecx, [edi + edx + 0xf]
+mov edx, dword [esi + 0x2480]
+mov dword [eax + 0xa0], 0
+mov ebx, dword [esi + 0x36d7]
+cmp edx, 3
+jne short loc_fffa49c1 ; jne 0xfffa49c1
+mov dl, 4
+cmp ebx, 0x42b
+jbe short loc_fffa49f7 ; jbe 0xfffa49f7
+cmp ebx, 0x536
+sbb edx, edx
+add edx, 6
+jmp short loc_fffa49f7 ; jmp 0xfffa49f7
+
+loc_fffa49c1: ; not directly referenced
+mov edx, 3
+cmp ebx, 0x42b
+jbe short loc_fffa49f7 ; jbe 0xfffa49f7
+mov dl, 4
+cmp ebx, 0x640
+jbe short loc_fffa49f7 ; jbe 0xfffa49f7
+mov dl, 5
+cmp ebx, 0x74b
+jbe short loc_fffa49f7 ; jbe 0xfffa49f7
+mov dl, 6
+cmp ebx, 0x960
+jbe short loc_fffa49f7 ; jbe 0xfffa49f7
+cmp ebx, 0xaf1
+sbb edx, edx
+add edx, 8
+
+loc_fffa49f7: ; not directly referenced
+cmp edx, 0xf
+mov ebx, 0xf
+mov edi, dword [ebp + 8]
+cmovbe ebx, edx
+mov dl, byte [eax + 0xa0]
+and ebx, 0xf
+and edx, 0xfffffff0
+or edx, ebx
+mov byte [eax + 0xa0], dl
+mov dl, byte [eax + 0xa3]
+cmp dword [edi + 0x2480], 3
+jne short loc_fffa4a2d ; jne 0xfffa4a2d
+and edx, 0x3f
+jmp short loc_fffa4a30 ; jmp 0xfffa4a30
+
+loc_fffa4a2d: ; not directly referenced
+or edx, 0xffffffc0
+
+loc_fffa4a30: ; not directly referenced
+mov byte [eax + 0xa3], dl
+mov dx, word [ecx + 0xa]
+mov bl, 0xff
+mov edi, dword [ebp + 8]
+cmp dx, 0xff
+cmovbe ebx, edx
+mov dl, byte [eax + 0xa0]
+mov esi, ebx
+shl esi, 4
+shr bl, 4
+and edx, 0xf
+or edx, esi
+mov byte [eax + 0xa0], dl
+mov dl, byte [eax + 0xa1]
+and edx, 0xffffff80
+or edx, ebx
+xor ebx, ebx
+or edx, 0x40
+mov byte [eax + 0xa1], dl
+cmp dword [edi + 0x2480], 3
+sete bl
+and edx, 0x7f
+add ebx, 6
+and ebx, 0xf
+mov esi, ebx
+and esi, 1
+shl esi, 7
+or edx, esi
+mov byte [eax + 0xa1], dl
+mov dl, bl
+shr dl, 1
+mov esi, edx
+mov dl, byte [eax + 0xa2]
+shl ebx, 3
+and edx, 0xffffff80
+or edx, esi
+or edx, ebx
+mov ebx, 0x1f
+mov byte [eax + 0xa2], dl
+movzx ecx, word [ecx + 6]
+add ecx, 5
+cmp ecx, 0x1f
+cmova ecx, ebx
+and edx, 0x7f
+mov ebx, ecx
+and ebx, 1
+shl ebx, 7
+or edx, ebx
+mov byte [eax + 0xa2], dl
+mov dl, byte [eax + 0xa3]
+shr ecx, 1
+and ecx, 0xf
+and edx, 0xfffffff0
+or edx, ecx
+or edx, 0x20
+mov byte [eax + 0xa3], dl
+mov ecx, dword [eax + 0xa0]
+mov eax, dword [ebp - 0x74]
+lea edx, [eax + 0x4004]
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov edi, dword [ebp - 0x6c]
+mov esi, dword [ebp + 8]
+imul eax, edi, 0xcc
+mov edx, dword [esi + 0x5edc]
+lea ebx, [edx + eax + 0x1c]
+imul edx, dword [esi + 0x18a7], 0x2e
+imul eax, edi, 0x13c3
+mov edi, dword [ebp - 0x78]
+lea eax, [edx + eax + 0x1300]
+lea eax, [edi + eax + 0xf]
+mov edi, dword [esi + 0x2480]
+mov dword [ebx + 0xa4], 0
+cmp edi, 2
+jne short loc_fffa4b56 ; jne 0xfffa4b56
+movzx edx, word [eax + 0x2c]
+jmp short loc_fffa4b5a ; jmp 0xfffa4b5a
+
+loc_fffa4b56: ; not directly referenced
+movzx edx, word [eax + 0x28]
+
+loc_fffa4b5a: ; not directly referenced
+movzx ecx, word [eax + 8]
+lea edx, [edx + ecx + 6]
+mov ecx, 0x3f
+cmp edx, 0x3f
+cmova edx, ecx
+mov cl, dl
+mov dl, byte [ebx + 0xa4]
+and ecx, 0x3f
+and edx, 0xffffffc0
+or edx, ecx
+mov byte [ebx + 0xa4], dl
+movzx edx, word [eax + 8]
+movzx ecx, word [eax + 6]
+cmp edi, 3
+je short loc_fffa4b97 ; je 0xfffa4b97
+sub edx, ecx
+add edx, 7
+jmp short loc_fffa4b9c ; jmp 0xfffa4b9c
+
+loc_fffa4b97: ; not directly referenced
+mov edx, 8
+
+loc_fffa4b9c: ; not directly referenced
+cmp edx, 0xf
+mov ecx, 0xf
+cmovbe ecx, edx
+mov dl, byte [ebx + 0xa4]
+and ecx, 0xf
+mov esi, ecx
+shl esi, 6
+and edx, 0x3f
+or edx, esi
+mov byte [ebx + 0xa4], dl
+mov dl, cl
+shr dl, 2
+shl ecx, 2
+or edx, ecx
+mov byte [ebx + 0xa5], dl
+mov edx, 7
+or byte [ebx + 0xa6], 1
+cmp edi, 3
+jne short loc_fffa4bf3 ; jne 0xfffa4bf3
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x240a], 1
+sbb edx, edx
+and edx, 0xfffffffe
+add edx, 9
+
+loc_fffa4bf3: ; not directly referenced
+cmp edx, 0xf
+mov ecx, 0xf
+cmovbe ecx, edx
+mov dl, byte [ebx + 0xa6]
+and ecx, 0xf
+lea edi, [ecx + ecx]
+mov esi, ecx
+shl esi, 5
+and edx, 1
+or edx, edi
+or edx, esi
+mov byte [ebx + 0xa6], dl
+mov dl, byte [ebx + 0xa7]
+shr cl, 3
+and edx, 0xfffffffe
+or edx, ecx
+mov byte [ebx + 0xa7], dl
+movzx ecx, word [eax + 0x26]
+movzx eax, word [eax + 8]
+lea eax, [ecx + eax + 4]
+mov ecx, 0x3f
+cmp eax, 0x3f
+cmova eax, ecx
+and edx, 0xffffff81
+and eax, 0x3f
+add eax, eax
+or edx, eax
+mov eax, dword [ebp + 8]
+mov byte [ebx + 0xa7], dl
+mov edx, dword [ebp - 0x7c]
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, dword [ebp - 0x74]
+mov dword [ebx + 0xac], eax
+movzx edx, byte [ebx + 0xad]
+shr al, 5
+movzx eax, al
+and edx, 3
+shl edx, 3
+or edx, eax
+mov al, byte [ebx + 0xa7]
+cmp edx, 5
+setg dl
+shl edx, 7
+and eax, 0x7f
+or eax, edx
+mov byte [ebx + 0xa7], al
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x4008]
+mov ecx, dword [ebx + 0xa4]
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0xa7]
+shr al, 7
+movzx eax, al
+inc eax
+and eax, 3
+mov ebx, eax
+mov ecx, eax
+shl ebx, 4
+shl ecx, 6
+lea edx, [eax*4]
+or ecx, ebx
+or ecx, edx
+or ecx, eax
+mov eax, dword [ebp + 8]
+lea edx, [edi + 0x40d0]
+call fcn_fffae566 ; call 0xfffae566
+mov edi, dword [ebp - 0x6c]
+mov esi, dword [ebp + 8]
+imul eax, edi, 0xcc
+mov edx, dword [esi + 0x5edc]
+lea ecx, [edx + eax + 0x1c]
+imul edx, dword [esi + 0x18a7], 0x2e
+imul eax, edi, 0x13c3
+mov edi, dword [ebp - 0x78]
+lea eax, [edx + eax + 0x1300]
+lea esi, [edi + eax + 0xf]
+mov eax, dword [ebp + 8]
+mov edi, dword [eax + 0x2480]
+mov dword [ecx + 0xa8], 0
+mov edx, dword [eax + 0x36d7]
+mov eax, 0xa
+cmp edx, 0x320
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0xd
+cmp edx, 0x42b
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x10
+cmp edx, 0x535
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x14
+cmp edx, 0x640
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x17
+cmp edx, 0x74b
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x1a
+cmp edx, 0x855
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x1d
+cmp edx, 0x960
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x20
+cmp edx, 0xa6b
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+mov al, 0x22
+cmp edx, 0xaf0
+jbe short loc_fffa4d98 ; jbe 0xfffa4d98
+cmp edx, 0xbb9
+sbb eax, eax
+and eax, 0xfffffffd
+add eax, 0x27
+
+loc_fffa4d98: ; not directly referenced
+cmp eax, 0x3f
+mov edx, 0x3f
+cmovbe edx, eax
+mov al, byte [ecx + 0xa8]
+and edx, 0x3f
+and eax, 0xffffffc0
+or eax, edx
+mov byte [ecx + 0xa8], al
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x36d7]
+cmp edi, 3
+jne short loc_fffa4dd2 ; jne 0xfffa4dd2
+cmp edx, 0x536
+sbb eax, eax
+add eax, 6
+jmp short loc_fffa4df9 ; jmp 0xfffa4df9
+
+loc_fffa4dd2: ; not directly referenced
+cmp edi, 2
+jne short loc_fffa4dee ; jne 0xfffa4dee
+mov eax, 5
+cmp edx, 0x640
+jbe short loc_fffa4df9 ; jbe 0xfffa4df9
+mov al, 6
+cmp edx, 0x74b
+jbe short loc_fffa4df9 ; jbe 0xfffa4df9
+
+loc_fffa4dee: ; not directly referenced
+cmp edx, 0x856
+sbb eax, eax
+add eax, 8
+
+loc_fffa4df9: ; not directly referenced
+cmp eax, 0xf
+mov edx, 0xf
+cmovbe edx, eax
+mov al, byte [ecx + 0xa8]
+mov bl, dl
+shl ebx, 6
+shr edx, 2
+and eax, 0x3f
+and edx, 3
+or eax, ebx
+mov byte [ecx + 0xa8], al
+mov al, byte [ecx + 0xa9]
+and eax, 0xfffffffc
+or eax, edx
+mov byte [ecx + 0xa9], al
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x36d7]
+mov eax, 4
+cmp edx, 0x320
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 5
+cmp edx, 0x42b
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 6
+cmp edx, 0x535
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 7
+cmp edx, 0x640
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 8
+cmp edx, 0x74b
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 0xa
+cmp edx, 0x855
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 0xb
+cmp edx, 0x960
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+mov al, 0xc
+cmp edx, 0xaf0
+jbe short loc_fffa4e98 ; jbe 0xfffa4e98
+cmp edx, 0xbb9
+sbb eax, eax
+add eax, 0xe
+
+loc_fffa4e98: ; not directly referenced
+cmp eax, 0xf
+mov edx, 0xf
+cmovbe edx, eax
+mov al, byte [ecx + 0xa9]
+and edx, 0xf
+shl edx, 2
+and eax, 0xffffffc3
+or eax, edx
+mov byte [ecx + 0xa9], al
+movzx eax, word [esi + 8]
+movzx ebx, word [esi + 6]
+mov esi, dword [ebp + 8]
+sub ebx, eax
+cmp dword [esi + 0x36d7], 0x536
+lea eax, [ebx + 8]
+movzx esi, word [esi + 0x2489]
+lea edx, [ebx + 7]
+cmovb eax, edx
+cmp edi, 3
+jne short loc_fffa4ef6 ; jne 0xfffa4ef6
+add esi, esi
+xor edx, edx
+lea eax, [esi + 0x157b]
+div esi
+lea eax, [ebx + eax + 6]
+
+loc_fffa4ef6: ; not directly referenced
+cmp eax, 0x1f
+mov edx, 0x1f
+cmovbe edx, eax
+mov al, byte [ecx + 0xa9]
+and edx, 0x1f
+mov bl, dl
+shl ebx, 6
+and eax, 0x3f
+or eax, ebx
+mov byte [ecx + 0xa9], al
+mov al, dl
+lea ebx, [edx*8]
+shr al, 2
+or eax, ebx
+mov byte [ecx + 0xaa], al
+mov al, byte [ecx + 0xab]
+and eax, 0xffffffe0
+or eax, edx
+mov byte [ecx + 0xab], al
+mov eax, dword [ebp - 0x74]
+mov ecx, dword [ecx + 0xa8]
+lea edx, [eax + 0x400c]
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x80], 2
+jne loc_fffa502f ; jne 0xfffa502f
+mov edi, dword [ebp + 8]
+imul eax, dword [ebp - 0x6c], 0xcc
+mov edx, dword [edi + 0x5edc]
+lea eax, [edx + eax + 0x1c]
+imul edx, dword [edi + 0x18a7], 0x2e
+mov edi, dword [ebp - 0x70]
+lea ecx, [edi + edx + 4]
+mov edi, dword [ebp + 8]
+mov dl, 4
+mov ebx, dword [edi + 0x36d7]
+cmp ebx, 0x535
+jbe short loc_fffa4faa ; jbe 0xfffa4faa
+mov dl, 5
+cmp ebx, 0x74b
+jbe short loc_fffa4faa ; jbe 0xfffa4faa
+cmp ebx, 0x961
+sbb edx, edx
+add edx, 7
+
+loc_fffa4faa: ; not directly referenced
+and edx, 0xf
+mov bl, dl
+shl ebx, 4
+or ebx, edx
+mov dword [eax + 0xb0], 0
+mov dl, byte [eax + 0xb1]
+mov byte [eax + 0xb0], bl
+mov bx, word [ecx + 0x2a]
+add bl, byte [ecx + 8]
+and edx, 0xffffffc0
+add ebx, 6
+and ebx, 0x3f
+or edx, ebx
+mov byte [eax + 0xb1], dl
+mov bx, word [ecx + 0x20]
+mov cl, 0xf
+mov esi, ebx
+and esi, 0xf
+cmp bx, 0xf
+cmovbe ecx, esi
+and edx, 0x3f
+mov bl, cl
+shl ebx, 6
+or edx, ebx
+mov byte [eax + 0xb1], dl
+mov dl, byte [eax + 0xb2]
+shr cl, 2
+and edx, 0xfffffffc
+or edx, ecx
+mov byte [eax + 0xb2], dl
+mov edx, dword [ebp - 0x74]
+mov ecx, dword [eax + 0xb0]
+mov eax, dword [ebp + 8]
+add edx, 0x4018
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa502f: ; not directly referenced
+inc dword [ebp - 0x6c]
+add dword [ebp - 0x70], 0x13c3
+cmp dword [ebp - 0x6c], 2
+jne loc_fffa45c1 ; jne 0xfffa45c1
+mov eax, dword [ebp + 8]
+mov edi, dword [ebp + 8]
+mov edx, dword [eax + 0x5edc]
+xor eax, eax
+cmp byte [edi + 0x381a], 0
+je short loc_fffa5064 ; je 0xfffa5064
+cmp dword [edi + 0x3816], 2
+sete al
+
+loc_fffa5064: ; not directly referenced
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x4bdd], 0
+je short loc_fffa507f ; je 0xfffa507f
+mov cl, al
+or ecx, 2
+cmp dword [edi + 0x4bd9], 2
+cmove eax, ecx
+
+loc_fffa507f: ; not directly referenced
+lea edi, [edx + 0xbc]
+movzx eax, al
+mov dword [ebp - 0x70], edi
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x6c], 0
+mov dword [ebp - 0x74], eax
+add edi, 0x4ae6
+
+loc_fffa509e: ; not directly referenced
+mov eax, dword [ebp - 0x74]
+mov esi, dword [ebp - 0x6c]
+bt eax, esi
+jae loc_fffa5212 ; jae 0xfffa5212
+mov eax, dword [edi - 0x144]
+movzx ebx, byte [edi - 0x12cc]
+cmp eax, 3
+sete cl
+cmp eax, 8
+sete dl
+xor eax, eax
+or cl, dl
+je short loc_fffa50e4 ; je 0xfffa50e4
+mov eax, dword [ebp - 0xb8]
+mov al, byte [edi - 0x128]
+mov word [ebp - 0xb8], ax
+mov eax, 1
+
+loc_fffa50e4: ; not directly referenced
+mov edx, dword [edi - 0x1c]
+cmp edx, 8
+sete cl
+cmp edx, 3
+sete dl
+or cl, dl
+jne short loc_fffa5100 ; jne 0xfffa5100
+mov esi, 6
+test eax, eax
+je short loc_fffa5133 ; je 0xfffa5133
+
+loc_fffa5100: ; not directly referenced
+mov al, byte [edi]
+mov ecx, dword [ebp - 0xb8]
+mov ch, al
+mov word [ebp - 0xb8], cx
+mov al, cl
+cmp cl, 5
+je short loc_fffa5125 ; je 0xfffa5125
+movzx edx, ch
+mov esi, 6
+cmp dl, 5
+jne short loc_fffa5133 ; jne 0xfffa5133
+
+loc_fffa5125: ; not directly referenced
+mov ecx, dword [ebp - 0xb8]
+cmp ch, al
+setne al
+lea esi, [eax + 6]
+
+loc_fffa5133: ; not directly referenced
+sub esp, 0xc
+mov eax, esi
+mov edx, dword [ebp - 0x6c]
+push ebx
+movsx eax, al
+push 1
+xor ecx, ecx
+push 1
+push eax
+mov eax, dword [ebp + 8]
+push 8
+call fcn_fffb579d ; call 0xfffb579d
+mov eax, esi
+add esp, 0x20
+cmp al, 7
+jne loc_fffa5212 ; jne 0xfffa5212
+mov eax, dword [ebp - 0x70]
+sub esp, 0xc
+mov edx, dword [ebp - 0x6c]
+mov esi, dword [eax]
+push ebx
+push 1
+push 1
+mov ecx, esi
+shr ecx, 0xf
+mov eax, ecx
+xor ecx, ecx
+and eax, 0xf
+inc eax
+push eax
+mov eax, dword [ebp + 8]
+push 0
+shr esi, 0x13
+and esi, 0xf
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x14
+mov edx, dword [ebp - 0x6c]
+push ebx
+xor ecx, ecx
+push 1
+push 1
+lea eax, [esi + 1]
+push eax
+mov eax, dword [ebp + 8]
+push 1
+call fcn_fffb579d ; call 0xfffb579d
+mov eax, dword [ebp - 0x70]
+add esp, 0x14
+mov edx, dword [ebp - 0x6c]
+xor ecx, ecx
+mov esi, dword [eax + 8]
+push ebx
+push 1
+push 1
+mov eax, esi
+shr eax, 0x13
+and eax, 0x1f
+inc eax
+push eax
+mov eax, dword [ebp + 8]
+push 4
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x14
+mov eax, esi
+push ebx
+mov edx, dword [ebp - 0x6c]
+xor ecx, ecx
+shr eax, 0x18
+push 1
+and eax, 0x1f
+push 1
+inc eax
+push eax
+mov eax, dword [ebp + 8]
+push 5
+shr esi, 0xe
+and esi, 0x1f
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x14
+mov edx, dword [ebp - 0x6c]
+push ebx
+xor ecx, ecx
+push 1
+push 1
+lea eax, [esi + 1]
+push eax
+mov eax, dword [ebp + 8]
+push 0xe
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x20
+
+loc_fffa5212: ; not directly referenced
+inc dword [ebp - 0x6c]
+add edi, 0x13c3
+add dword [ebp - 0x70], 0xcc
+cmp dword [ebp - 0x6c], 2
+jne loc_fffa509e ; jne 0xfffa509e
+mov edi, 0x4290
+mov dword [ebp - 0x6c], 0
+
+loc_fffa5238: ; not directly referenced
+imul eax, dword [ebp - 0x6c], 0x13c3
+mov esi, dword [ebp + 8]
+cmp dword [esi + eax + 0x3756], 2
+jne loc_fffa553b ; jne 0xfffa553b
+mov edx, dword [ebp - 0x6c]
+mov eax, esi
+call fcn_fffae6fa ; call 0xfffae6fa
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x36d7]
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x70], eax
+mov eax, dword [ebp + 8]
+mov ecx, dword [eax + 0x2480]
+cmp ecx, 3
+jne short loc_fffa528d ; jne 0xfffa528d
+movzx esi, word [eax + 0x2489]
+mov eax, 0x57e40
+cdq
+add esi, esi
+idiv esi
+jmp short loc_fffa52de ; jmp 0xfffa52de
+
+loc_fffa528d: ; not directly referenced
+cmp ecx, 2
+je short loc_fffa52d9 ; je 0xfffa52d9
+mov eax, 0x100
+cmp ebx, 0x640
+jbe short loc_fffa52de ; jbe 0xfffa52de
+mov al, 0x2b
+cmp ebx, 0x74b
+jbe short loc_fffa52e6 ; jbe 0xfffa52e6
+mov al, 0x56
+cmp ebx, 0x855
+jbe short loc_fffa52e6 ; jbe 0xfffa52e6
+mov al, 0x80
+cmp ebx, 0x960
+jbe short loc_fffa52e6 ; jbe 0xfffa52e6
+mov al, 0xab
+cmp ebx, 0xa6b
+jbe short loc_fffa52e6 ; jbe 0xfffa52e6
+cmp ebx, 0xb76
+sbb eax, eax
+and eax, 0xffffffd6
+add eax, 0x200
+jmp short loc_fffa52e6 ; jmp 0xfffa52e6
+
+loc_fffa52d9: ; not directly referenced
+mov eax, 0x200
+
+loc_fffa52de: ; not directly referenced
+cmp ebx, 0x320
+jbe short loc_fffa534b ; jbe 0xfffa534b
+
+loc_fffa52e6: ; not directly referenced
+cmp ebx, 0x42b
+jbe short loc_fffa5352 ; jbe 0xfffa5352
+cmp ebx, 0x535
+jbe loc_fffa5b11 ; jbe 0xfffa5b11
+cmp ebx, 0x640
+jbe loc_fffa5b18 ; jbe 0xfffa5b18
+cmp ebx, 0x74b
+jbe loc_fffa5b1f ; jbe 0xfffa5b1f
+cmp ebx, 0x855
+jbe loc_fffa5b26 ; jbe 0xfffa5b26
+cmp ebx, 0x960
+jbe loc_fffa5b2d ; jbe 0xfffa5b2d
+mov edx, 0xe
+cmp ebx, 0xaf0
+jbe loc_fffa53cc ; jbe 0xfffa53cc
+cmp ebx, 0xbb9
+sbb edx, edx
+add edx, 0x10
+jmp near loc_fffa53cc ; jmp 0xfffa53cc
+
+loc_fffa534b: ; not directly referenced
+mov edx, 4
+jmp short loc_fffa5357 ; jmp 0xfffa5357
+
+loc_fffa5352: ; not directly referenced
+mov edx, 6
+
+loc_fffa5357: ; not directly referenced
+cmp ecx, 2
+je short loc_fffa53d1 ; je 0xfffa53d1
+mov esi, 0xc
+cmp ebx, 0x42b
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+
+loc_fffa5369: ; not directly referenced
+mov esi, 0xc
+cmp ebx, 0x640
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+mov si, 0xe
+cmp ebx, 0x74b
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+mov si, 0x10
+cmp ebx, 0x855
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+mov si, 0x12
+cmp ebx, 0x960
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+
+loc_fffa539a: ; not directly referenced
+mov esi, 0x14
+cmp ebx, 0xa6b
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+mov si, 0x15
+cmp ebx, 0xaf0
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+mov si, 0x16
+cmp ebx, 0xb75
+jbe short loc_fffa53d6 ; jbe 0xfffa53d6
+cmp ebx, 0xbb9
+sbb esi, esi
+add esi, 0x18
+jmp short loc_fffa53d6 ; jmp 0xfffa53d6
+
+loc_fffa53cc: ; not directly referenced
+cmp ecx, 2
+jne short loc_fffa539a ; jne 0xfffa539a
+
+loc_fffa53d1: ; not directly referenced
+mov esi, 0x18
+
+loc_fffa53d6: ; not directly referenced
+cmp edx, 0xf
+mov ecx, 0xf
+cmova edx, ecx
+mov ebx, 0x3ff
+and edx, 0xf
+shl edx, 0xc
+cmp eax, 0x3ff
+cmovbe ebx, eax
+or dh, 2
+and ebx, 0x3ff
+shl ebx, 0x10
+or edx, ebx
+cmp dword [ebp - 0x70], 0
+jne short loc_fffa5416 ; jne 0xfffa5416
+sub esi, 8
+cmp esi, 0xf
+cmovbe ecx, esi
+shl ecx, 0x1c
+jmp short loc_fffa5425 ; jmp 0xfffa5425
+
+loc_fffa5416: ; not directly referenced
+inc esi
+mov ecx, 0x1f
+cmp esi, 0x1f
+cmovbe ecx, esi
+shl ecx, 0x1b
+
+loc_fffa5425: ; not directly referenced
+mov eax, dword [ebp + 8]
+or ecx, edx
+lea edx, [edi + 0x14]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x70], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x1887]
+mov dword [ebp - 0x74], eax
+mov eax, dword [ebp + 8]
+mov esi, dword [eax + 0x2480]
+mov edx, dword [eax + 0x36d7]
+cmp esi, 3
+jne short loc_fffa5473 ; jne 0xfffa5473
+movzx ebx, word [eax + 0x2489]
+mov eax, 0x15f90
+cdq
+add ebx, ebx
+idiv ebx
+jmp short loc_fffa54bd ; jmp 0xfffa54bd
+
+loc_fffa5473: ; not directly referenced
+mov eax, 0x80
+cmp esi, 2
+je short loc_fffa54bd ; je 0xfffa54bd
+mov al, 0x40
+cmp edx, 0x640
+jbe short loc_fffa54bd ; jbe 0xfffa54bd
+mov al, 0x4b
+cmp edx, 0x74b
+jbe short loc_fffa54bd ; jbe 0xfffa54bd
+mov al, 0x56
+cmp edx, 0x855
+jbe short loc_fffa54bd ; jbe 0xfffa54bd
+mov al, 0x60
+cmp edx, 0x960
+jbe short loc_fffa54bd ; jbe 0xfffa54bd
+mov al, 0x6b
+cmp edx, 0xa6b
+jbe short loc_fffa54bd ; jbe 0xfffa54bd
+cmp edx, 0xb76
+sbb eax, eax
+and eax, 0xfffffff6
+sub eax, 0xffffff80
+
+loc_fffa54bd: ; not directly referenced
+cmp dword [ebp - 0x70], 1
+sete dl
+cmp dword [ebp - 0x74], 0x40650
+sete bl
+or dl, bl
+je short loc_fffa54fb ; je 0xfffa54fb
+cmp esi, 3
+mov edx, 0x100
+mov ecx, 0x80
+cmove ecx, edx
+cmp eax, 0x3ff
+mov dx, 0x3ff
+cmovbe edx, eax
+and edx, 0x3ff
+shl edx, 0xa
+or ecx, edx
+jmp short loc_fffa550c ; jmp 0xfffa550c
+
+loc_fffa54fb: ; not directly referenced
+mov edx, 0xff
+cmp eax, 0xff
+mov cl, 0x80
+cmovbe edx, eax
+mov ch, dl
+
+loc_fffa550c: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, edi
+lea ebx, [edi + 4]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, ebx
+mov ecx, eax
+mov eax, dword [ebp + 8]
+mov cl, 0xff
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+
+loc_fffa553b: ; not directly referenced
+inc dword [ebp - 0x6c]
+add edi, 0x400
+cmp dword [ebp - 0x6c], 2
+jne loc_fffa5238 ; jne 0xfffa5238
+mov eax, dword [ebp + 8]
+mov ecx, 0x100000
+mov esi, dword [eax + 0x1887]
+cmp dword [eax + 0x2480], 3
+mov edi, dword [eax + 0x188b]
+sete al
+cmp esi, 0x306d0
+sete bl
+cmp esi, 0x40650
+sete dl
+or bl, dl
+jne short loc_fffa558f ; jne 0xfffa558f
+cmp esi, 0x40670
+sete dl
+test dl, al
+je short loc_fffa55b0 ; je 0xfffa55b0
+
+loc_fffa558f: ; not directly referenced
+mov ecx, 0x102000
+test al, al
+je short loc_fffa55b0 ; je 0xfffa55b0
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x240a], 1
+sbb ecx, ecx
+and ecx, 0x2000
+add ecx, 0x4100000
+
+loc_fffa55b0: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x4c20
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov ecx, 0x553c3038
+mov edx, 0x4f8c
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+je short loc_fffa55e4 ; je 0xfffa55e4
+
+loc_fffa55db: ; not directly referenced
+dec edi
+jne loc_fffa568d ; jne 0xfffa568d
+jmp short loc_fffa563c ; jmp 0xfffa563c
+
+loc_fffa55e4: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffa560f ; jne 0xfffa560f
+mov edx, 0x4010
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x4010
+and eax, 0xfffffff0
+or eax, 7
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa560f: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffa55db ; jne 0xfffa55db
+mov edx, 0x4410
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x4410
+and eax, 0xfffffff0
+or eax, 7
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffa55db ; jmp 0xfffa55db
+
+loc_fffa563c: ; not directly referenced
+mov edi, dword [ebp + 8]
+xor edx, edx
+mov ecx, 0x1ffff
+cmp dword [edi + 0x191c], 0x1ffff
+cmovbe ecx, dword [edi + 0x191c]
+mov dx, word [edi + 0x1920]
+and ecx, 0x1ffff
+cmp byte [edi + 0x191b], 0
+mov eax, ecx
+je short loc_fffa5679 ; je 0xfffa5679
+mov ecx, edx
+or ecx, 0x80000000
+mov edx, ecx
+
+loc_fffa5679: ; not directly referenced
+push ecx
+push ecx
+push edx
+mov edx, 0x5028
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+
+loc_fffa568d: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x3f
+xor esi, esi
+xor edi, edi
+call fcn_fffc3c0d ; call 0xfffc3c0d
+mov eax, dword [ebp + 8]
+lea ecx, [ebp - 0x20]
+mov edx, dword [ebp - 0x88]
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x70], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2480]
+mov dword [ebp - 0x74], eax
+lea eax, [ebp - 0x28]
+
+loc_fffa56c4: ; not directly referenced
+mov dword [eax], 0
+cmp dword [edx], 2
+jne short loc_fffa56f1 ; jne 0xfffa56f1
+cmp dword [edx + 0x1173], 2
+jne short loc_fffa56e0 ; jne 0xfffa56e0
+mov ebx, dword [edx + 0x1254]
+mov dword [eax], ebx
+
+loc_fffa56e0: ; not directly referenced
+cmp dword [edx + 0x129b], 2
+jne short loc_fffa56f1 ; jne 0xfffa56f1
+mov ebx, dword [edx + 0x137c]
+add dword [eax], ebx
+
+loc_fffa56f1: ; not directly referenced
+add eax, 4
+add edx, 0x13c3
+cmp eax, ecx
+jne short loc_fffa56c4 ; jne 0xfffa56c4
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248d]
+mov byte [ebp - 0x78], al
+mov eax, dword [ebp - 0x24]
+mov ebx, eax
+mov dword [ebp - 0x6c], eax
+mov eax, dword [ebp - 0x28]
+cmp ebx, eax
+ja short loc_fffa5737 ; ja 0xfffa5737
+mov eax, dword [ebp + 8]
+mov ebx, 4
+mov dword [eax + 0x381b], 0
+mov dword [eax + 0x4bde], 1
+jmp short loc_fffa5756 ; jmp 0xfffa5756
+
+loc_fffa5737: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov ebx, 1
+mov dword [ebp - 0x6c], eax
+mov dword [ecx + 0x381b], 1
+mov dword [ecx + 0x4bde], 0
+
+loc_fffa5756: ; not directly referenced
+mov eax, dword [ebp - 0x6c]
+mov edx, 0xff
+shr eax, 8
+cmp dword [ebp - 0x70], 0
+jne short loc_fffa5788 ; jne 0xfffa5788
+cmp eax, 0xff
+mov esi, edx
+cmovbe esi, eax
+add eax, eax
+cmp eax, 0xff
+cmova eax, edx
+movzx eax, al
+shl eax, 0x10
+shl esi, 0x18
+or esi, eax
+jmp short loc_fffa5796 ; jmp 0xfffa5796
+
+loc_fffa5788: ; not directly referenced
+cmp eax, 0xff
+cmovbe edx, eax
+mov eax, esi
+mov al, dl
+mov esi, eax
+
+loc_fffa5796: ; not directly referenced
+and ebx, 0xfffffbcf
+mov ecx, ebx
+mov ebx, dword [ebp - 0x74]
+cmp ebx, 3
+sete dl
+or ecx, 0x20
+mov eax, edx
+and eax, 1
+shl eax, 0xa
+or ecx, eax
+xor eax, eax
+cmp ebx, 2
+sete al
+and ch, 0xf7
+shl eax, 0xb
+or ecx, eax
+mov eax, dword [ebp + 8]
+mov ebx, ecx
+mov al, byte [eax + 0x1917]
+test al, al
+je loc_fffa5894 ; je 0xfffa5894
+cmp dword [ebp - 0x70], 0
+jne short loc_fffa5822 ; jne 0xfffa5822
+mov edx, dword [ebp + 8]
+mov edi, 0x3fff
+mov eax, dword [ebp + 8]
+mov dl, byte [edx + 0x191a]
+cmp word [eax + 0x1918], 0x3fff
+cmovbe di, word [eax + 0x1918]
+mov al, 3
+mov byte [ebp - 0x70], dl
+mov edx, dword [ebp + 8]
+and edi, 0x3fff
+cmp byte [edx + 0x191a], 3
+mov dl, byte [ebp - 0x70]
+cmovbe eax, edx
+and eax, 3
+shl eax, 0x15
+jmp short loc_fffa588c ; jmp 0xfffa588c
+
+loc_fffa5822: ; not directly referenced
+cmp al, 2
+jne short loc_fffa5849 ; jne 0xfffa5849
+test dl, dl
+je short loc_fffa5842 ; je 0xfffa5842
+mov al, byte [ebp - 0x78]
+cmp al, 4
+sete dl
+dec al
+sete al
+or dl, al
+je short loc_fffa5842 ; je 0xfffa5842
+mov edi, 0xd030c0
+jmp short loc_fffa5894 ; jmp 0xfffa5894
+
+loc_fffa5842: ; not directly referenced
+mov edi, 0x9030ce
+jmp short loc_fffa5894 ; jmp 0xfffa5894
+
+loc_fffa5849: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov edi, 0x3fff
+mov eax, dword [ebp + 8]
+mov dl, byte [edx + 0x191a]
+cmp word [eax + 0x1918], 0x3fff
+cmovbe di, word [eax + 0x1918]
+mov al, 7
+mov byte [ebp - 0x70], dl
+mov edx, dword [ebp + 8]
+and edi, 0x3fff
+cmp byte [edx + 0x191a], 7
+mov dl, byte [ebp - 0x70]
+cmovbe eax, edx
+and eax, 7
+shl eax, 0x14
+
+loc_fffa588c: ; not directly referenced
+or edi, 0x800000
+or edi, eax
+
+loc_fffa5894: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x2402], 0
+je short loc_fffa58d8 ; je 0xfffa58d8
+mov eax, dword [ebp - 0x24]
+cmp dword [ebp - 0x28], eax
+jne short loc_fffa58ce ; jne 0xfffa58ce
+mov eax, dword [ebp - 0x6c]
+mov ebx, ecx
+or edi, 0x800000
+or ebx, 0x40
+and ebx, 0xfffffc7f
+call fcn_fffaec34 ; call 0xfffaec34
+sub eax, 9
+and eax, 7
+shl eax, 7
+or ebx, eax
+jmp short loc_fffa58d8 ; jmp 0xfffa58d8
+
+loc_fffa58ce: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov byte [eax + 0x2402], 0
+
+loc_fffa58d8: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, edi
+mov edx, 0x5024
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+mov edx, 0x5000
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov ecx, esi
+mov edx, 0x5014
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x6c], 0x5004
+lea ebx, [eax + 0x48c9]
+
+loc_fffa5915: ; not directly referenced
+cmp dword [ebx - 0x1173], 2
+mov esi, ebx
+jne loc_fffa5aaf ; jne 0xfffa5aaf
+xor edx, edx
+cmp dword [ebx], 2
+jne short loc_fffa5931 ; jne 0xfffa5931
+mov edx, dword [ebx + 0xe1]
+
+loc_fffa5931: ; not directly referenced
+cmp dword [ebx + 0x128], 2
+lea eax, [ebx + 0x128]
+jne short loc_fffa5948 ; jne 0xfffa5948
+cmp dword [ebx + 0x209], edx
+ja short loc_fffa594e ; ja 0xfffa594e
+
+loc_fffa5948: ; not directly referenced
+mov edi, eax
+xor ecx, ecx
+jmp short loc_fffa5957 ; jmp 0xfffa5957
+
+loc_fffa594e: ; not directly referenced
+mov ecx, 0x10000
+mov edi, ebx
+mov esi, eax
+
+loc_fffa5957: ; not directly referenced
+mov al, byte [esi + 0xed]
+mov byte [ebp - 0x70], al
+test al, al
+je short loc_fffa59a6 ; je 0xfffa59a6
+cmp dword [esi], 2
+jne short loc_fffa59a6 ; jne 0xfffa59a6
+mov eax, dword [esi + 0xe1]
+mov edx, 0xff
+shr eax, 8
+cmp eax, 0xff
+cmova eax, edx
+xor edx, edx
+cmp byte [ebp - 0x70], 1
+mov cl, al
+setne dl
+and ecx, 0xfff5ffff
+shl edx, 0x11
+xor eax, eax
+cmp byte [esi + 0xf1], 0x10
+sete al
+or ecx, edx
+shl eax, 0x13
+or ecx, eax
+
+loc_fffa59a6: ; not directly referenced
+mov al, byte [edi + 0xed]
+mov byte [ebp - 0x70], al
+test al, al
+je short loc_fffa59f5 ; je 0xfffa59f5
+cmp dword [edi], 2
+jne short loc_fffa59f5 ; jne 0xfffa59f5
+mov eax, dword [edi + 0xe1]
+mov edx, 0xff
+shr eax, 8
+cmp eax, 0xff
+cmova eax, edx
+mov ch, al
+xor eax, eax
+cmp byte [ebp - 0x70], 1
+setne al
+and ecx, 0xffebffff
+shl eax, 0x12
+xor edx, edx
+cmp byte [edi + 0xf1], 0x10
+sete dl
+or ecx, eax
+shl edx, 0x14
+or ecx, edx
+
+loc_fffa59f5: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x1887]
+cmp eax, 0x306d0
+sete dl
+cmp eax, 0x40650
+sete al
+or dl, al
+je short loc_fffa5a22 ; je 0xfffa5a22
+lea eax, [ecx + ecx]
+and ecx, 0xffefffff
+and eax, 0x100000
+or ecx, eax
+
+loc_fffa5a22: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov eax, ecx
+or eax, 0x200000
+mov edx, dword [ebp - 0x6c]
+cmp byte [edi + 0x1908], 0
+cmovne ecx, eax
+mov eax, ecx
+or eax, 0x400000
+cmp byte [edi + 0x1909], 0
+cmovne ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+jne short loc_fffa5aaf ; jne 0xfffa5aaf
+cmp dword [eax + 0x1887], 0x40650
+jne short loc_fffa5a7e ; jne 0xfffa5a7e
+xor ecx, ecx
+cmp byte [esi + 0xf1], 0x20
+sete cl
+lea ecx, [ecx + ecx*2 + 0x200d00]
+jmp short loc_fffa5a9b ; jmp 0xfffa5a9b
+
+loc_fffa5a7e: ; not directly referenced
+mov al, byte [esi + 0xf1]
+mov ecx, 0x401a00
+cmp al, 0x10
+jne short loc_fffa5a91 ; jne 0xfffa5a91
+mov cl, 5
+jmp short loc_fffa5a9b ; jmp 0xfffa5a9b
+
+loc_fffa5a91: ; not directly referenced
+cmp al, 0x20
+mov eax, 0x401a0a
+cmove ecx, eax
+
+loc_fffa5a9b: ; not directly referenced
+mov edx, dword [ebp - 0x6c]
+mov eax, dword [ebp + 8]
+shl edx, 8
+sub edx, 0x4fc1f0
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa5aaf: ; not directly referenced
+add dword [ebp - 0x6c], 4
+add ebx, 0x13c3
+cmp dword [ebp - 0x6c], 0x500c
+jne loc_fffa5915 ; jne 0xfffa5915
+xor edx, edx
+jmp short loc_fffa5b40 ; jmp 0xfffa5b40
+
+loc_fffa5aca: ; not directly referenced
+mov eax, dword [ebp + 8]
+call fcn_fffa6828 ; call 0xfffa6828
+mov edx, 0x12
+test eax, eax
+jne short loc_fffa5b40 ; jne 0xfffa5b40
+sub esp, 0xc
+lea eax, [ebp - 0x58]
+push eax
+mov eax, dword [ebp + 8]
+lea edx, [ebp - 0x28]
+lea ecx, [ebp - 0x5b]
+call fcn_fffa77b4 ; call 0xfffa77b4
+mov edi, dword [ebp + 8]
+add esp, 0x10
+mov edx, 0x16
+mov dword [edi + 0x36d7], eax
+mov al, byte [edi + 0x36e7]
+cmp byte [ebp - 0x5b], al
+jne short loc_fffa5b40 ; jne 0xfffa5b40
+jmp near loc_fffa2dab ; jmp 0xfffa2dab
+
+loc_fffa5b11: ; not directly referenced
+mov edx, 7
+jmp short loc_fffa5b32 ; jmp 0xfffa5b32
+
+loc_fffa5b18: ; not directly referenced
+mov edx, 8
+jmp short loc_fffa5b32 ; jmp 0xfffa5b32
+
+loc_fffa5b1f: ; not directly referenced
+mov edx, 0xa
+jmp short loc_fffa5b32 ; jmp 0xfffa5b32
+
+loc_fffa5b26: ; not directly referenced
+mov edx, 0xb
+jmp short loc_fffa5b32 ; jmp 0xfffa5b32
+
+loc_fffa5b2d: ; not directly referenced
+mov edx, 0xc
+
+loc_fffa5b32: ; not directly referenced
+cmp ecx, 2
+jne loc_fffa5369 ; jne 0xfffa5369
+jmp near loc_fffa53d1 ; jmp 0xfffa53d1
+
+loc_fffa5b40: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, edx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa5b4a: ; not directly referenced
+push ebp
+mov eax, 0x80000003
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa5b54: ; not directly referenced
+push ebp
+mov eax, 0x80000003
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa5b5e: ; not directly referenced
+push ebp
+mov eax, 0x80000003
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa5b68: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+out dx, al
+pop ebp
+ret
+
+fcn_fffa5b74: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 8]
+in al, dx
+pop ebp
+ret
+
+fcn_fffa5b7d: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov ecx, dword [ebp + 8]
+wrmsr
+pop ebp
+ret
+
+fcn_fffa5b8d: ; not directly referenced
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 8]
+rdmsr
+pop ebp
+ret
+
+fcn_fffa5b97: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 8
+mov eax, dword [ebp + 8]
+cmp dword [ebp + 0xc], 0x41
+mov edx, dword [eax + 0x241b]
+mov edx, dword [edx + 0x1e]
+jne short loc_fffa5bbc ; jne 0xfffa5bbc
+sub esp, 0xc
+push eax
+call dword [edx + 0xcc] ; ucall
+add esp, 0x10
+
+loc_fffa5bbc: ; not directly referenced
+xor eax, eax
+leave
+ret
+
+fcn_fffa5bc0: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x14]
+pop ebp
+ret
+
+fcn_fffa5bc8: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa5bcf: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 0x18
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x18], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp - 0x14], eax
+mov eax, dword [ebp + 8]
+movq qword [ebp - 8], mm0
+movq mm0, qword [ebp - 0x18]
+movq qword [eax], mm0
+movq mm0, qword [ebp - 8]
+emms
+mov eax, dword [ebp - 0x18]
+mov edx, dword [ebp - 0x14]
+leave
+ret
+
+fcn_fffa5bfd: ; not directly referenced
+push ebp
+xor edx, edx
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+
+loc_fffa5c08: ; not directly referenced
+cmp edx, dword [ebp + 0xc]
+je short loc_fffa5c13 ; je 0xfffa5c13
+mov dword [eax + edx*4], ecx
+inc edx
+jmp short loc_fffa5c08 ; jmp 0xfffa5c08
+
+loc_fffa5c13: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffa5c15: ; not directly referenced
+push ebp
+xor edx, edx
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+
+loc_fffa5c20: ; not directly referenced
+cmp edx, dword [ebp + 0xc]
+je short loc_fffa5c2c ; je 0xfffa5c2c
+mov word [eax + edx*2], cx
+inc edx
+jmp short loc_fffa5c20 ; jmp 0xfffa5c20
+
+loc_fffa5c2c: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffa5c2e:
+push ebp
+mov ebp, esp
+push esi
+mov esi, dword [ebp + 0x10]
+push ebx
+mov ebx, dword [ebp + 0xc]
+add esi, ebx
+
+loc_fffa5c3b:
+cmp ebx, esi
+je short loc_fffa5c58 ; je 0xfffa5c58
+mov eax, dword [0xff7d0274]
+inc ebx
+movzx edx, byte [ebx - 1]
+test eax, eax
+je short loc_fffa5c3b ; je 0xfffa5c3b
+sub esp, 0xc
+push edx
+call eax
+add esp, 0x10
+jmp short loc_fffa5c3b ; jmp 0xfffa5c3b
+
+loc_fffa5c58:
+lea esp, [ebp - 8]
+or eax, 0xffffffff
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffa5c62: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffa5c69: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+pop ebp
+mov dword [0xff7d0080], eax
+xor eax, eax
+ret
+
+fcn_fffa5c78: ; not directly referenced
+push ebp
+mov edx, dword [0xff7d0080]
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov dword [eax], edx
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa5c8a: ; not directly referenced
+push ebp
+mov ebp, esp
+pop ebp
+jmp near loc_fffd2972 ; jmp 0xfffd2972
+
+fcn_fffa5c93: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov ecx, dword [eax + 0x5edc]
+lea edx, [ecx + 0x1b8]
+xor ecx, ecx
+mov dword [ebp + 8], edx
+mov edx, 1
+pop ebp
+jmp near fcn_fffae5b2 ; jmp 0xfffae5b2
+
+fcn_fffa5cb5: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x5edc]
+lea ecx, [eax + 0x1c]
+mov byte [eax + 0x247c], 1
+add edx, 0x1b8
+mov dword [edx], ecx
+xor ecx, ecx
+mov dword [ebp + 8], edx
+xor edx, edx
+pop ebp
+jmp near fcn_fffae5b2 ; jmp 0xfffae5b2
+
+fcn_fffa5ce0: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 8
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x5edc]
+cmp byte [edx + 0x1c4], 1
+jne short loc_fffa5d04 ; jne 0xfffa5d04
+sub esp, 0xc
+push eax
+call fcn_fffa5cb5 ; call 0xfffa5cb5
+add esp, 0x10
+
+loc_fffa5d04: ; not directly referenced
+xor eax, eax
+leave
+ret
+
+fcn_fffa5d08: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov ecx, dword [eax + 0x5edc]
+lea edx, [ecx + 0x1b8]
+mov ecx, 1
+mov dword [ebp + 8], edx
+mov edx, 1
+pop ebp
+jmp near fcn_fffae5b2 ; jmp 0xfffae5b2
+
+fcn_fffa5d2d: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x600
+mov edi, dword [ebp + 0x18]
+mov ebx, dword [ebp + 0x14]
+mov dword [ebp - 0x5c0], ecx
+mov ecx, dword [ebp + 0xc]
+mov dword [ebp - 0x5ac], edx
+mov esi, dword [ebp + 8]
+mov dword [ebp - 0x600], edi
+mov edi, dword [ebp + 0x20]
+mov byte [ebp - 0x5b0], bl
+mov dword [ebp - 0x5ec], ecx
+mov byte [ebp - 0x5e0], cl
+mov dword [ebp - 0x5f0], edi
+mov edi, dword [eax + 0x2443]
+lea eax, [ebp - 0x590]
+push 1
+push 5
+push eax
+mov dword [ebp - 0x5bc], edi
+call dword [edi + 0x64] ; ucall
+add esp, 0xc
+push 1
+push 5
+lea eax, [ebp - 0x57c]
+push eax
+call dword [edi + 0x64] ; ucall
+add esp, 0xc
+push 0xffffffffffffffff
+push 5
+lea eax, [ebp - 0x568]
+push eax
+call dword [edi + 0x64] ; ucall
+add esp, 0xc
+push 0
+push 5
+lea eax, [ebp - 0x554]
+push eax
+call dword [edi + 0x64] ; ucall
+add esp, 0xc
+push 0
+push 5
+lea eax, [ebp - 0x540]
+push eax
+call dword [edi + 0x64] ; ucall
+add esp, 0xc
+push 0
+push 5
+lea eax, [ebp - 0x52c]
+push eax
+call dword [edi + 0x64] ; ucall
+add esp, 0xc
+push 0
+push 5
+lea eax, [ebp - 0x59a]
+push eax
+call dword [edi + 0x60] ; ucall
+add esp, 0xc
+push 0
+push 0x500
+lea eax, [ebp - 0x518]
+push eax
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x50a
+push dword [ebp - 0x5ac]
+call dword [edi + 0x5c] ; ucall
+mov edi, dword [ebp - 0x5b0]
+mov al, 1
+mov dword [ebp - 0x5b8], 0
+mov byte [ebp - 0x5d9], 0
+add esp, 0x10
+test bl, bl
+cmove edi, eax
+xor ebx, ebx
+mov eax, edi
+mov byte [ebp - 0x5b0], al
+shr al, 1
+mov byte [ebp - 0x5d4], al
+mov eax, esi
+movzx eax, al
+mov dword [ebp - 0x5fc], eax
+movsx eax, byte [ebp - 0x5e0]
+mov dword [ebp - 0x5d0], eax
+add eax, 0x7fffffff
+mov dword [ebp - 0x604], eax
+
+loc_fffa5e6f: ; not directly referenced
+movzx eax, byte [ebp - 0x5b0]
+mov ecx, dword [ebp - 0x5c0]
+mov dword [ebp - 0x5c8], 0
+movzx esi, al
+mov dword [ebp - 0x5d8], esi
+mov esi, dword [ebp + 0x1c]
+imul ax, word [esi + ebx*2]
+mov esi, dword [ebp + 0x10]
+movzx edx, byte [esi + ebx]
+mov esi, dword [ebp - 0x5b8]
+imul eax, edx
+mov word [ebp + ebx*2 - 0x59a], ax
+mov eax, esi
+add eax, esi
+add eax, ecx
+mov dword [ebp - 0x5f4], eax
+mov eax, dword [ebp - 0x604]
+add eax, esi
+add eax, eax
+add eax, ecx
+mov ecx, ebx
+mov dword [ebp - 0x5f8], eax
+shl ecx, 6
+
+loc_fffa5ed2: ; not directly referenced
+mov esi, dword [ebp - 0x5c8]
+mov eax, esi
+mov byte [ebp - 0x5e8], al
+movzx eax, al
+cmp eax, dword [ebp - 0x5d0]
+jge loc_fffa6035 ; jge 0xfffa6035
+mov esi, dword [ebp + 0x10]
+cmp byte [esi + ebx], 0
+jne short loc_fffa5f16 ; jne 0xfffa5f16
+lea edx, [ecx + eax]
+mov dword [ebp + edx*4 - 0x518], 1
+mov dword [ebp + ebx*4 - 0x568], 1
+jmp near loc_fffa6005 ; jmp 0xfffa6005
+
+loc_fffa5f16: ; not directly referenced
+mov dl, byte [ebp - 0x5e8]
+lea edi, [ecx + eax]
+mov dword [ebp - 0x5c4], edi
+cmp dl, 1
+adc byte [ebp - 0x5d9], 0
+sub edx, dword [ebp - 0x5d4]
+mov esi, edx
+
+loc_fffa5f37: ; not directly referenced
+mov dl, byte [ebp - 0x5d4]
+sub edx, dword [ebp - 0x5e8]
+mov edi, edx
+add edi, esi
+mov edx, edi
+cmp dl, byte [ebp - 0x5b0]
+jae short loc_fffa5fa7 ; jae 0xfffa5fa7
+mov edx, esi
+test dl, dl
+jns short loc_fffa5f5f ; jns 0xfffa5f5f
+mov edi, dword [ebp - 0x5f4]
+jmp short loc_fffa5f6f ; jmp 0xfffa5f6f
+
+loc_fffa5f5f: ; not directly referenced
+mov edx, esi
+cmp dl, byte [ebp - 0x5e0]
+jl short loc_fffa5f74 ; jl 0xfffa5f74
+mov edi, dword [ebp - 0x5f8]
+
+loc_fffa5f6f: ; not directly referenced
+movzx edi, word [edi]
+jmp short loc_fffa5f97 ; jmp 0xfffa5f97
+
+loc_fffa5f74: ; not directly referenced
+mov edx, esi
+movsx edi, dl
+cmp eax, edi
+jne short loc_fffa5f87 ; jne 0xfffa5f87
+mov edi, dword [ebp - 0x5b8]
+add edi, eax
+jmp short loc_fffa5f8d ; jmp 0xfffa5f8d
+
+loc_fffa5f87: ; not directly referenced
+add edi, dword [ebp - 0x5b8]
+
+loc_fffa5f8d: ; not directly referenced
+mov edx, dword [ebp - 0x5c0]
+movzx edi, word [edx + edi*2]
+
+loc_fffa5f97: ; not directly referenced
+mov edx, dword [ebp - 0x5c4]
+inc esi
+add dword [ebp + edx*4 - 0x518], edi
+jmp short loc_fffa5f37 ; jmp 0xfffa5f37
+
+loc_fffa5fa7: ; not directly referenced
+lea edx, [ecx + eax]
+mov edx, dword [ebp + edx*4 - 0x518]
+cmp dword [ebp + ebx*4 - 0x590], edx
+jae short loc_fffa5fc1 ; jae 0xfffa5fc1
+mov dword [ebp + ebx*4 - 0x590], edx
+
+loc_fffa5fc1: ; not directly referenced
+cmp dword [ebp + ebx*4 - 0x568], edx
+jbe short loc_fffa5fdb ; jbe 0xfffa5fdb
+lea esi, [ecx + eax]
+mov esi, dword [ebp + esi*4 - 0x518]
+mov dword [ebp + ebx*4 - 0x568], esi
+
+loc_fffa5fdb: ; not directly referenced
+movzx esi, byte [ebp - 0x5c8]
+mov edi, dword [ebp - 0x5c0]
+add esi, dword [ebp - 0x5b8]
+movzx esi, word [edi + esi*2]
+imul esi, dword [ebp - 0x5d8]
+sub edx, esi
+imul edx, edx
+add dword [ebp + ebx*4 - 0x540], edx
+
+loc_fffa6005: ; not directly referenced
+imul edx, ebx, 0x29
+movzx edi, byte [ebp - 0x5b0]
+inc dword [ebp - 0x5c8]
+lea esi, [eax + edx + 0x74]
+add eax, ecx
+mov eax, dword [ebp + eax*4 - 0x518]
+xor edx, edx
+div edi
+mov edi, dword [ebp - 0x5ac]
+mov dword [edi + esi*4 + 6], eax
+jmp near loc_fffa5ed2 ; jmp 0xfffa5ed2
+
+loc_fffa6035: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov al, byte [eax + ebx]
+mov byte [ebp - 0x5c8], al
+test al, al
+je loc_fffa61bd ; je 0xfffa61bd
+mov edx, dword [ebp + ebx*4 - 0x590]
+mov ecx, dword [ebp + ebx*4 - 0x568]
+mov eax, edx
+sub eax, ecx
+add ecx, edx
+imul eax, eax, 0x4e20
+xor edx, edx
+div ecx
+xor edx, edx
+mov dword [ebp - 0x5c4], eax
+mov dword [ebp + ebx*4 - 0x554], eax
+mov eax, dword [ebp + ebx*4 - 0x540]
+div dword [ebp - 0x5d0]
+test eax, eax
+jne short loc_fffa6094 ; jne 0xfffa6094
+mov dword [ebp + ebx*4 - 0x540], 0
+jmp short loc_fffa6103 ; jmp 0xfffa6103
+
+loc_fffa6094: ; not directly referenced
+imul eax, eax, 0x64
+xor esi, esi
+call fcn_fffaebb7 ; call 0xfffaebb7
+mov ecx, eax
+mov eax, 1
+shr ecx, 1
+
+loc_fffa60a7: ; not directly referenced
+cmp ecx, 0x64
+jbe short loc_fffa60d2 ; jbe 0xfffa60d2
+imul eax, eax, 0xa9e
+mov edi, 0xa
+xor edx, edx
+sub ecx, 0x64
+div edi
+test esi, esi
+je short loc_fffa60cb ; je 0xfffa60cb
+mov esi, 0x64
+xor edx, edx
+div esi
+
+loc_fffa60cb: ; not directly referenced
+mov esi, 1
+jmp short loc_fffa60a7 ; jmp 0xfffa60a7
+
+loc_fffa60d2: ; not directly referenced
+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_fffa60fc ; je 0xfffa60fc
+mov cx, 0x64
+xor edx, edx
+div ecx
+
+loc_fffa60fc: ; not directly referenced
+mov dword [ebp + ebx*4 - 0x540], eax
+
+loc_fffa6103: ; not directly referenced
+mov ecx, dword [ebp + ebx*4 - 0x590]
+xor edx, edx
+mov edi, dword [ebp + ebx*4 - 0x568]
+imul eax, dword [ebp + ebx*4 - 0x540], 0xc8
+lea esi, [edi + ecx]
+div esi
+mov esi, eax
+mov dword [ebp + ebx*4 - 0x540], eax
+imul eax, dword [ebp - 0x5c4], 0x3e8
+test esi, esi
+je short loc_fffa613e ; je 0xfffa613e
+xor edx, edx
+div esi
+
+loc_fffa613e: ; not directly referenced
+mov edx, dword [ebp - 0x5ac]
+mov dword [ebp + ebx*4 - 0x52c], eax
+mov al, byte [ebp - 0x5c8]
+mov dword [ebp + ebx*4 - 0x57c], ecx
+mov byte [edx + ebx + 3], al
+mov eax, dword [ebp - 0x5c4]
+mov dword [edx + ebx*4 + 0x1c], esi
+movzx esi, byte [ebp - 0x5b0]
+mov dword [edx + ebx*4 + 8], eax
+mov eax, dword [ebp + ebx*4 - 0x52c]
+mov dword [edx + ebx*4 + 0x30], eax
+mov eax, ecx
+xor edx, edx
+sub ecx, edi
+div esi
+mov edx, dword [ebp - 0x5ac]
+mov dword [edx + ebx*4 + 0x44], eax
+mov eax, edi
+xor edx, edx
+div esi
+mov edx, dword [ebp - 0x5ac]
+mov esi, dword [ebp + 0x10]
+mov dword [edx + ebx*4 + 0x58], eax
+movzx eax, cx
+movzx esi, byte [esi + ebx]
+cdq
+idiv dword [ebp - 0x5d8]
+cdq
+idiv esi
+mov edx, dword [ebp - 0x5ac]
+mov word [edx + ebx*2 + 0x6c], ax
+
+loc_fffa61bd: ; not directly referenced
+mov eax, dword [ebp - 0x5fc]
+inc ebx
+add dword [ebp - 0x5b8], eax
+cmp ebx, 5
+jne loc_fffa5e6f ; jne 0xfffa5e6f
+mov eax, 5
+
+loc_fffa61d8: ; not directly referenced
+dec eax
+je short loc_fffa6205 ; je 0xfffa6205
+xor edx, edx
+
+loc_fffa61dd: ; not directly referenced
+movzx ecx, dl
+cmp ecx, eax
+jge short loc_fffa61d8 ; jge 0xfffa61d8
+shl ecx, 2
+lea esi, [ebp - 0x57c]
+add esi, ecx
+lea ecx, [ebp + ecx - 0x578]
+mov ebx, dword [esi]
+mov edi, dword [ecx]
+cmp ebx, edi
+jae short loc_fffa6202 ; jae 0xfffa6202
+mov dword [esi], edi
+mov dword [ecx], ebx
+
+loc_fffa6202: ; not directly referenced
+inc edx
+jmp short loc_fffa61dd ; jmp 0xfffa61dd
+
+loc_fffa6205: ; not directly referenced
+mov esi, dword [ebp - 0x56c]
+xor edi, edi
+xor ebx, ebx
+
+loc_fffa620f: ; not directly referenced
+cmp edi, 4
+je short loc_fffa621d ; je 0xfffa621d
+mov eax, dword [ebp + edi*4 - 0x57c]
+jmp short loc_fffa621f ; jmp 0xfffa621f
+
+loc_fffa621d: ; not directly referenced
+mov eax, esi
+
+loc_fffa621f: ; not directly referenced
+call fcn_fffaec34 ; call 0xfffaec34
+inc edi
+add ebx, eax
+cmp edi, 5
+jne short loc_fffa620f ; jne 0xfffa620f
+add ebx, 0xb
+cmp bl, 0x40
+ja short loc_fffa6259 ; ja 0xfffa6259
+
+loc_fffa6234: ; not directly referenced
+mov al, byte [ebp - 0x5ec]
+cmp byte [ebp - 0x600], 0
+mov byte [ebp - 0x5c8], 0
+mov byte [ebp - 0x5c0], al
+je loc_fffa62f4 ; je 0xfffa62f4
+jmp near loc_fffa631f ; jmp 0xfffa631f
+
+loc_fffa6259: ; not directly referenced
+movzx ecx, byte [ebp - 0x5d9]
+movzx ebx, bl
+lea eax, [ecx + ebx - 0x41]
+xor ebx, ebx
+cdq
+idiv ecx
+mov edx, 1
+movzx eax, al
+lea ecx, [eax - 1]
+shl edx, cl
+mov dword [ebp - 0x5b0], eax
+movzx eax, dl
+
+loc_fffa6282: ; not directly referenced
+mov edx, dword [ebp + ebx*4 - 0x590]
+mov esi, dword [ebp - 0x5b0]
+add edx, eax
+mov ecx, esi
+mov esi, ebx
+shr edx, cl
+mov dword [ebp + ebx*4 - 0x590], edx
+movzx edx, word [ebp + ebx*2 - 0x59a]
+shl esi, 6
+mov dword [ebp - 0x5b8], esi
+add edx, eax
+sar edx, cl
+mov word [ebp + ebx*2 - 0x59a], dx
+xor edx, edx
+
+loc_fffa62bd: ; not directly referenced
+movzx edi, dl
+cmp edi, dword [ebp - 0x5d0]
+jge short loc_fffa62e9 ; jge 0xfffa62e9
+add edi, dword [ebp - 0x5b8]
+inc edx
+mov cl, byte [ebp - 0x5b0]
+mov esi, dword [ebp + edi*4 - 0x518]
+add esi, eax
+shr esi, cl
+mov dword [ebp + edi*4 - 0x518], esi
+jmp short loc_fffa62bd ; jmp 0xfffa62bd
+
+loc_fffa62e9: ; not directly referenced
+inc ebx
+cmp ebx, 5
+jne short loc_fffa6282 ; jne 0xfffa6282
+jmp near loc_fffa6234 ; jmp 0xfffa6234
+
+loc_fffa62f4: ; not directly referenced
+mov eax, dword [ebp - 0x5d8]
+cmp dword [ebp - 0x5d0], eax
+jle short loc_fffa631f ; jle 0xfffa631f
+cmp byte [ebp - 0x5d4], 0
+je short loc_fffa631f ; je 0xfffa631f
+mov al, byte [ebp - 0x5ec]
+mov byte [ebp - 0x5c8], 1
+dec eax
+mov byte [ebp - 0x5c0], al
+
+loc_fffa631f: ; not directly referenced
+mov al, byte [ebp - 0x5c8]
+xor esi, esi
+xor edi, edi
+mov byte [ebp - 0x5b0], 0
+mov dword [ebp - 0x5b8], 0xffffffff
+mov dword [ebp - 0x5b4], 0xffffffff
+mov byte [ebp - 0x5c4], al
+
+loc_fffa634a: ; not directly referenced
+mov al, byte [ebp - 0x5c0]
+mov cl, byte [ebp - 0x5c4]
+cmp cl, al
+jae loc_fffa6500 ; jae 0xfffa6500
+movzx eax, cl
+xor ebx, ebx
+lea eax, [ebp + eax*4 - 0x518]
+mov dword [ebp - 0x5d8], eax
+mov dword [ebp - 0x5e8], 0
+mov dword [ebp - 0x5e4], 0
+mov dword [ebp - 0x5d4], 0xffffffff
+
+loc_fffa638e: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov byte [ebp - 0x5ec], bl
+cmp byte [eax + ebx], 0
+je loc_fffa645f ; je 0xfffa645f
+mov ecx, dword [ebp - 0x5d8]
+mov eax, ebx
+shl eax, 8
+mov dword [ebp - 0x5e0], eax
+mov dword [ebp - 0x5d0], 1
+mov eax, dword [ecx + eax]
+mov ecx, dword [ebp - 0x5d4]
+mov dword [ebp - 0x5cc], 0
+cmp ecx, eax
+cmovbe eax, ecx
+xor ecx, ecx
+mov dword [ebp - 0x5d4], eax
+
+loc_fffa63dc: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+cmp byte [eax + ecx], 0
+je short loc_fffa6425 ; je 0xfffa6425
+cmp byte [ebp - 0x5ec], cl
+je short loc_fffa6425 ; je 0xfffa6425
+push eax
+mov eax, dword [ebp - 0x5bc]
+push dword [ebp + ecx*4 - 0x590]
+push dword [ebp - 0x5cc]
+push dword [ebp - 0x5d0]
+mov dword [ebp - 0x5f4], ecx
+call dword [eax + 0x70] ; ucall
+mov ecx, dword [ebp - 0x5f4]
+add esp, 0x10
+mov dword [ebp - 0x5d0], eax
+mov dword [ebp - 0x5cc], edx
+
+loc_fffa6425: ; not directly referenced
+inc ecx
+cmp ecx, 5
+jne short loc_fffa63dc ; jne 0xfffa63dc
+mov ecx, dword [ebp - 0x5e0]
+push eax
+mov eax, dword [ebp - 0x5d8]
+push dword [eax + ecx]
+mov eax, dword [ebp - 0x5bc]
+push dword [ebp - 0x5cc]
+push dword [ebp - 0x5d0]
+call dword [eax + 0x70] ; ucall
+add dword [ebp - 0x5e8], eax
+adc dword [ebp - 0x5e4], edx
+add esp, 0x10
+
+loc_fffa645f: ; not directly referenced
+inc ebx
+cmp ebx, 5
+jne loc_fffa638e ; jne 0xfffa638e
+mov eax, 1
+xor edx, edx
+xor ebx, ebx
+
+loc_fffa6472: ; not directly referenced
+cmp bl, byte [ebp - 0x5d9]
+je short loc_fffa6492 ; je 0xfffa6492
+push ecx
+inc ebx
+push dword [ebp - 0x5d4]
+push edx
+push eax
+mov eax, dword [ebp - 0x5bc]
+call dword [eax + 0x70] ; ucall
+add esp, 0x10
+jmp short loc_fffa6472 ; jmp 0xfffa6472
+
+loc_fffa6492: ; not directly referenced
+mov ecx, dword [ebp - 0x5e8]
+mov ebx, dword [ebp - 0x5e4]
+add ecx, eax
+adc ebx, edx
+cmp dword [ebp - 0x5b4], ebx
+jb short loc_fffa64c0 ; jb 0xfffa64c0
+ja short loc_fffa64b4 ; ja 0xfffa64b4
+cmp dword [ebp - 0x5b8], ecx
+jbe short loc_fffa64c0 ; jbe 0xfffa64c0
+
+loc_fffa64b4: ; not directly referenced
+mov dword [ebp - 0x5b8], ecx
+mov dword [ebp - 0x5b4], ebx
+
+loc_fffa64c0: ; not directly referenced
+cmp ebx, edi
+ja short loc_fffa64ca ; ja 0xfffa64ca
+jb short loc_fffa64da ; jb 0xfffa64da
+cmp ecx, esi
+jbe short loc_fffa64da ; jbe 0xfffa64da
+
+loc_fffa64ca: ; not directly referenced
+mov al, byte [ebp - 0x5c4]
+mov esi, ecx
+mov edi, ebx
+mov byte [ebp - 0x5b0], al
+
+loc_fffa64da: ; not directly referenced
+movzx eax, byte [ebp - 0x5c4]
+mov edx, dword [ebp - 0x5ac]
+inc byte [ebp - 0x5c4]
+mov dword [edx + eax*8 + 0x8e], ecx
+mov dword [edx + eax*8 + 0x92], ebx
+jmp near loc_fffa634a ; jmp 0xfffa634a
+
+loc_fffa6500: ; not directly referenced
+mov ebx, dword [ebp - 0x5bc]
+mov eax, dword [ebx + 0x74]
+push edx
+mov edx, edi
+push 0x7d0
+mov dword [ebp - 0x5c4], eax
+mov eax, esi
+sub eax, dword [ebp - 0x5b8]
+sbb edx, dword [ebp - 0x5b4]
+push edx
+push eax
+call dword [ebx + 0x70] ; ucall
+mov ecx, dword [ebp - 0x5b8]
+mov ebx, dword [ebp - 0x5b4]
+mov dword [esp], 0
+add ecx, esi
+adc ebx, edi
+add ecx, 1
+adc ebx, 0
+push ebx
+push ecx
+push edx
+push eax
+mov eax, dword [ebp - 0x5c4]
+call eax
+mov ebx, dword [ebp - 0x5ac]
+add esp, 0x20
+movzx ecx, byte [ebp - 0x5b0]
+mov dword [ebx + 0x7e], esi
+mov word [ebx], cx
+mov ecx, dword [ebp - 0x5b8]
+mov dword [ebx + 0x76], eax
+mov eax, ebx
+mov dword [ebx + 0x7a], edx
+mov dword [ebx + 0x82], edi
+mov ebx, dword [ebp - 0x5b4]
+mov dword [eax + 0x86], ecx
+mov dword [eax + 0x8a], ebx
+mov eax, dword [ebp - 0x5f0]
+test al, al
+je loc_fffa6656 ; je 0xfffa6656
+movzx ebx, byte [ebp - 0x5b0]
+movsx eax, al
+jns short loc_fffa65be ; jns 0xfffa65be
+movzx edx, byte [ebp - 0x5c8]
+add ebx, eax
+mov esi, 1
+cmp ebx, edx
+cmovl ebx, edx
+jmp short loc_fffa65e5 ; jmp 0xfffa65e5
+
+loc_fffa65be: ; not directly referenced
+movzx edx, byte [ebp - 0x5c0]
+add ebx, eax
+cmp ebx, edx
+jl short loc_fffa65d4 ; jl 0xfffa65d4
+mov bl, byte [ebp - 0x5c0]
+dec ebx
+jmp short loc_fffa65e0 ; jmp 0xfffa65e0
+
+loc_fffa65d4: ; not directly referenced
+mov bl, byte [ebp - 0x5f0]
+add ebx, dword [ebp - 0x5b0]
+
+loc_fffa65e0: ; not directly referenced
+mov esi, 0xffffffff
+
+loc_fffa65e5: ; not directly referenced
+mov ecx, dword [ebp - 0x5ac]
+push eax
+movzx eax, byte [ebp - 0x5b0]
+mov edi, dword [ebp - 0x5bc]
+push 0x5a
+push dword [ecx + eax*8 + 0x92]
+push dword [ecx + eax*8 + 0x8e]
+call dword [edi + 0x70] ; ucall
+mov dword [esp], 0
+push 0
+push 0x64
+push edx
+push eax
+call dword [edi + 0x74] ; ucall
+add esp, 0x20
+
+loc_fffa661f: ; not directly referenced
+cmp bl, byte [ebp - 0x5b0]
+je short loc_fffa6641 ; je 0xfffa6641
+mov edi, dword [ebp - 0x5ac]
+movzx ecx, bl
+add ecx, 0x10
+cmp dword [edi + ecx*8 + 0x12], edx
+jb short loc_fffa6652 ; jb 0xfffa6652
+ja short loc_fffa6641 ; ja 0xfffa6641
+cmp dword [edi + ecx*8 + 0xe], eax
+jbe short loc_fffa6652 ; jbe 0xfffa6652
+
+loc_fffa6641: ; not directly referenced
+mov eax, dword [ebp - 0x5ac]
+sub ebx, dword [ebp - 0x5b0]
+mov byte [eax + 2], bl
+jmp short loc_fffa6656 ; jmp 0xfffa6656
+
+loc_fffa6652: ; not directly referenced
+add ebx, esi
+jmp short loc_fffa661f ; jmp 0xfffa661f
+
+loc_fffa6656: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa665e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+sub esp, 0x1c
+mov dword [ebp - 0x20], eax
+add eax, 0x3756
+mov dword [ebp - 0x28], edx
+mov dword [ebp - 0x1c], eax
+
+loc_fffa6677: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+cmp dword [eax], 2
+je short loc_fffa669c ; je 0xfffa669c
+
+loc_fffa667f: ; not directly referenced
+add esi, 0x400
+add dword [ebp - 0x1c], 0x13c3
+cmp esi, 0x800
+jne short loc_fffa6677 ; jne 0xfffa6677
+add esp, 0x1c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffa669c: ; not directly referenced
+mov edi, dword [ebp - 0x28]
+lea eax, [esi + 0x4060]
+mov dword [ebp - 0x24], eax
+lea ebx, [esi + 0x4054]
+sub edi, esi
+
+loc_fffa66b0: ; not directly referenced
+mov ecx, dword [edi + ebx - 0x4054]
+mov edx, ebx
+mov eax, dword [ebp - 0x20]
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [edi + ebx - 0x4054]
+lea edx, [ebx - 0xc]
+mov eax, dword [ebp - 0x20]
+add ebx, 4
+call fcn_fffae58c ; call 0xfffae58c
+cmp ebx, dword [ebp - 0x24]
+jne short loc_fffa66b0 ; jne 0xfffa66b0
+jmp short loc_fffa667f ; jmp 0xfffa667f
+
+fcn_fffa66dd: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x10
+mov dword [ebp - 0x18], eax
+cmp cl, 5
+ja short loc_fffa6700 ; ja 0xfffa6700
+cmp cl, 4
+jae short loc_fffa671a ; jae 0xfffa671a
+lea eax, [ecx - 1]
+cmp al, 1
+ja loc_fffa67f4 ; ja 0xfffa67f4
+jmp short loc_fffa671a ; jmp 0xfffa671a
+
+loc_fffa6700: ; not directly referenced
+cmp cl, 0x10
+jb loc_fffa67f4 ; jb 0xfffa67f4
+cmp cl, 0x11
+jbe short loc_fffa6721 ; jbe 0xfffa6721
+lea eax, [ecx - 0x20]
+cmp al, 1
+jbe short loc_fffa6721 ; jbe 0xfffa6721
+jmp near loc_fffa67f4 ; jmp 0xfffa67f4
+
+loc_fffa671a: ; not directly referenced
+mov edi, 0xa
+jmp short loc_fffa6726 ; jmp 0xfffa6726
+
+loc_fffa6721: ; not directly referenced
+mov edi, 7
+
+loc_fffa6726: ; not directly referenced
+xor ebx, ebx
+cmp cl, 0x21
+ja short loc_fffa6733 ; ja 0xfffa6733
+mov bl, byte [ecx + ref_fffd5f1c] ; mov bl, byte [ecx - 0x2a0e4]
+
+loc_fffa6733: ; not directly referenced
+cmp bl, 7
+mov al, 7
+cmovbe eax, ebx
+xor ebx, ebx
+movzx esi, al
+mov eax, dword [ebp - 0x18]
+imul esi, esi, 0x240
+add eax, 0x3756
+mov dword [ebp - 0x10], eax
+mov eax, edi
+add esi, edx
+movzx eax, al
+mov dword [ebp - 0x1c], eax
+
+loc_fffa675b: ; not directly referenced
+mov eax, dword [ebp - 0x10]
+cmp dword [eax], 2
+jne short loc_fffa67dd ; jne 0xfffa67dd
+mov byte [ebp - 0x11], 0
+
+loc_fffa6767: ; not directly referenced
+mov edi, dword [ebp - 0x18]
+movzx eax, byte [ebp - 0x11]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffa67b9 ; jae 0xfffa67b9
+add eax, ebx
+xor ecx, ecx
+lea eax, [esi + eax*8]
+
+loc_fffa677d: ; not directly referenced
+mov edi, dword [ebp - 0x10]
+mov edx, 1
+shl edx, cl
+test byte [edi + 0xc4], dl
+je short loc_fffa67ae ; je 0xfffa67ae
+imul edx, ecx, 0x90
+mov edi, dword [eax + edx]
+cmp dword [esi + ebx*8], edi
+jbe short loc_fffa67a0 ; jbe 0xfffa67a0
+mov dword [esi + ebx*8], edi
+
+loc_fffa67a0: ; not directly referenced
+mov edx, dword [eax + edx + 4]
+cmp dword [esi + ebx*8 + 4], edx
+jbe short loc_fffa67ae ; jbe 0xfffa67ae
+mov dword [esi + ebx*8 + 4], edx
+
+loc_fffa67ae: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffa677d ; jne 0xfffa677d
+inc byte [ebp - 0x11]
+jmp short loc_fffa6767 ; jmp 0xfffa6767
+
+loc_fffa67b9: ; not directly referenced
+mov edi, dword [ebp - 0x1c]
+mov ecx, 0xa
+xor edx, edx
+mov eax, dword [esi + ebx*8]
+imul eax, edi
+div ecx
+xor edx, edx
+mov dword [esi + ebx*8], eax
+mov eax, dword [esi + ebx*8 + 4]
+imul eax, edi
+div ecx
+mov dword [esi + ebx*8 + 4], eax
+
+loc_fffa67dd: ; not directly referenced
+add ebx, 9
+add dword [ebp - 0x10], 0x13c3
+cmp ebx, 0x12
+jne loc_fffa675b ; jne 0xfffa675b
+xor eax, eax
+jmp short loc_fffa67f9 ; jmp 0xfffa67f9
+
+loc_fffa67f4: ; not directly referenced
+mov eax, 2
+
+loc_fffa67f9: ; not directly referenced
+add esp, 0x10
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa6801:
+push ebp
+mov ebp, esp
+sub esp, 0x24
+lea edx, [ebp - 0xc]
+push edx
+lea edx, [ebp - 0x10]
+push edx
+lea edx, [ebp - 0x14]
+push edx
+lea eax, [ebp - 0x18]
+push eax
+push 1
+call fcn_fffd28d0 ; call 0xfffd28d0
+mov eax, dword [ebp - 0x18]
+leave
+and eax, 0xfff0ff0
+ret
+
+fcn_fffa6828: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0xc
+mov ebx, dword [eax + 0x2443]
+call dword [ebx + 0x54] ; ucall
+lea edi, [eax + 0x2710]
+
+loc_fffa6842: ; not directly referenced
+mov edx, 0x5084
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+test eax, 0x10000
+jne short loc_fffa6863 ; jne 0xfffa6863
+call dword [ebx + 0x54] ; ucall
+cmp edi, eax
+ja short loc_fffa6842 ; ja 0xfffa6842
+mov eax, 0x12
+jmp short loc_fffa6865 ; jmp 0xfffa6865
+
+loc_fffa6863: ; not directly referenced
+xor eax, eax
+
+loc_fffa6865: ; not directly referenced
+add esp, 0xc
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa686d: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, ecx
+push ebx
+sub esp, 0x3c
+mov ebx, dword [eax + 0x2443]
+mov dword [ebp - 0x30], edx
+call dword [ebx + 0x54] ; ucall
+lea ecx, [eax + 0x2710]
+push eax
+push 0
+push 4
+push dword [ebp + 0xc]
+mov dword [ebp - 0x34], ecx
+call dword [ebx + 0x5c] ; ucall
+mov eax, dword [ebp - 0x30]
+add esp, 0x10
+shl eax, 0xa
+mov dword [ebp - 0x38], eax
+add eax, 0x4214
+mov dword [ebp - 0x2c], eax
+
+loc_fffa68ae: ; not directly referenced
+mov edx, dword [ebp - 0x2c]
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, eax
+shr edx, 0x18
+test dl, dl
+jns short loc_fffa68d3 ; jns 0xfffa68d3
+call dword [ebx + 0x54] ; ucall
+cmp dword [ebp - 0x34], eax
+ja short loc_fffa68ae ; ja 0xfffa68ae
+
+loc_fffa68c9: ; not directly referenced
+mov eax, 0x12
+jmp near loc_fffa69e2 ; jmp 0xfffa69e2
+
+loc_fffa68d3: ; not directly referenced
+mov al, byte [ebp + 8]
+and esi, 3
+mov edx, dword [ebp - 0x2c]
+shl esi, 0x10
+and eax, 0xfff000ff
+mov ecx, eax
+mov eax, edi
+or ecx, esi
+or ecx, 0x80000000
+call fcn_fffae58c ; call 0xfffae58c
+call dword [ebx + 0x54] ; ucall
+lea esi, [eax + 0x2710]
+
+loc_fffa68fe: ; not directly referenced
+mov edx, dword [ebp - 0x2c]
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+shr eax, 0x18
+test al, al
+jns short loc_fffa6918 ; jns 0xfffa6918
+call dword [ebx + 0x54] ; ucall
+cmp esi, eax
+ja short loc_fffa68fe ; ja 0xfffa68fe
+jmp short loc_fffa68c9 ; jmp 0xfffa68c9
+
+loc_fffa6918: ; not directly referenced
+mov esi, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x38]
+imul eax, esi, 0x54a
+add edx, 0x4218
+imul esi, esi, 0x13c3
+lea eax, [edi + eax + 0x196b]
+mov dword [ebp - 0x2c], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+xor edx, edx
+mov dword [ebp - 0x3c], esi
+mov dword [ebp - 0x1c], eax
+xor eax, eax
+
+loc_fffa694b: ; not directly referenced
+mov ecx, dword [ebp - 0x3c]
+cmp byte [edi + ecx + 0x49ba], 0x20
+je short loc_fffa6969 ; je 0xfffa6969
+
+loc_fffa6958: ; not directly referenced
+movzx esi, byte [edi + 0x2488]
+lea ebx, [eax + eax]
+mov dword [ebp - 0x30], esi
+xor esi, esi
+jmp short loc_fffa698b ; jmp 0xfffa698b
+
+loc_fffa6969: ; not directly referenced
+test al, 1
+je short loc_fffa6958 ; je 0xfffa6958
+mov ebx, dword [ebp + 0xc]
+mov esi, edx
+mov cl, byte [ebx + eax - 1]
+mov byte [ebx + eax], cl
+jmp short loc_fffa69d3 ; jmp 0xfffa69d3
+
+loc_fffa697b: ; not directly referenced
+mov ecx, dword [ebp - 0x2c]
+movzx ecx, byte [ecx + esi + 0x4f6]
+cmp ebx, ecx
+je short loc_fffa6992 ; je 0xfffa6992
+inc esi
+
+loc_fffa698b: ; not directly referenced
+cmp esi, dword [ebp - 0x30]
+jb short loc_fffa697b ; jb 0xfffa697b
+mov esi, edx
+
+loc_fffa6992: ; not directly referenced
+mov ebx, eax
+xor edx, edx
+shl ebx, 4
+mov dword [ebp - 0x38], ebx
+movzx ebx, byte [ebp + eax - 0x1c]
+mov dword [ebp - 0x30], ebx
+mov ebx, dword [ebp - 0x2c]
+lea ecx, [ebx + esi*8]
+mov dword [ebp - 0x34], ecx
+
+loc_fffa69ad: ; not directly referenced
+mov ebx, dword [ebp - 0x30]
+mov cl, dl
+sar ebx, cl
+mov ecx, dword [ebp - 0x34]
+and ebx, 1
+movzx ecx, byte [ecx + edx + 0x4fe]
+inc edx
+sub ecx, dword [ebp - 0x38]
+shl ebx, cl
+mov ecx, dword [ebp + 0xc]
+or byte [ecx + eax], bl
+cmp edx, 8
+jne short loc_fffa69ad ; jne 0xfffa69ad
+
+loc_fffa69d3: ; not directly referenced
+inc eax
+cmp eax, 4
+je short loc_fffa69e0 ; je 0xfffa69e0
+mov edx, esi
+jmp near loc_fffa694b ; jmp 0xfffa694b
+
+loc_fffa69e0: ; not directly referenced
+xor al, al
+
+loc_fffa69e2: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa69ea: ; not directly referenced
+imul edx, edx, 0x13c3
+push ebp
+mov ebp, esp
+push esi
+mov esi, ecx
+lea edx, [eax + edx + 0x3756]
+push ebx
+mov ebx, eax
+mov eax, dword [edx + 0xc0]
+cmp eax, 1
+je short loc_fffa6a51 ; je 0xfffa6a51
+cmp eax, 2
+jne short loc_fffa6a85 ; jne 0xfffa6a85
+mov cl, byte [edx + 0x1260]
+cmp cl, 1
+jne short loc_fffa6a2b ; jne 0xfffa6a2b
+mov al, byte [edx + 0x1388]
+cmp al, 1
+je short loc_fffa6a71 ; je 0xfffa6a71
+cmp al, 2
+jne short loc_fffa6a85 ; jne 0xfffa6a85
+jmp short loc_fffa6a8c ; jmp 0xfffa6a8c
+
+loc_fffa6a2b: ; not directly referenced
+xor eax, eax
+cmp cl, 2
+jne loc_fffa6bcd ; jne 0xfffa6bcd
+mov dl, byte [edx + 0x1388]
+cmp dl, 1
+je short loc_fffa6a93 ; je 0xfffa6a93
+cmp dl, 2
+jne loc_fffa6bcd ; jne 0xfffa6bcd
+mov ecx, 5
+jmp short loc_fffa6a76 ; jmp 0xfffa6a76
+
+loc_fffa6a51: ; not directly referenced
+mov al, byte [edx + 0x1260]
+cmp al, 1
+je short loc_fffa6a9a ; je 0xfffa6a9a
+mov dl, byte [edx + 0x1388]
+cmp dl, 1
+je short loc_fffa6a9a ; je 0xfffa6a9a
+cmp al, 2
+je short loc_fffa6a9e ; je 0xfffa6a9e
+cmp dl, 2
+jne short loc_fffa6a85 ; jne 0xfffa6a85
+jmp short loc_fffa6a9e ; jmp 0xfffa6a9e
+
+loc_fffa6a71: ; not directly referenced
+mov ecx, 2
+
+loc_fffa6a76: ; not directly referenced
+cmp dword [ebx + 0x187f], 6
+mov edx, dword [ebx + 0x1887]
+jbe short loc_fffa6aa5 ; jbe 0xfffa6aa5
+
+loc_fffa6a85: ; not directly referenced
+xor eax, eax
+jmp near loc_fffa6bcd ; jmp 0xfffa6bcd
+
+loc_fffa6a8c: ; not directly referenced
+mov ecx, 3
+jmp short loc_fffa6a76 ; jmp 0xfffa6a76
+
+loc_fffa6a93: ; not directly referenced
+mov ecx, 4
+jmp short loc_fffa6a76 ; jmp 0xfffa6a76
+
+loc_fffa6a9a: ; not directly referenced
+xor ecx, ecx
+jmp short loc_fffa6a76 ; jmp 0xfffa6a76
+
+loc_fffa6a9e: ; not directly referenced
+mov ecx, 1
+jmp short loc_fffa6a76 ; jmp 0xfffa6a76
+
+loc_fffa6aa5: ; not directly referenced
+mov eax, dword [ebx + 0x187f]
+jmp dword [eax*4 + ref_fffd32ec] ; ujmp: jmp dword [eax*4 - 0x2cd14]
+
+loc_fffa6ab2: ; not directly referenced
+cmp edx, 0x40660
+sete bl
+cmp edx, 0x306c0
+sete al
+or bl, al
+jne short loc_fffa6ad6 ; jne 0xfffa6ad6
+xor eax, eax
+cmp edx, 0x40670
+jne loc_fffa6bcd ; jne 0xfffa6bcd
+
+loc_fffa6ad6: ; not directly referenced
+imul esi, esi, 6
+add ecx, esi
+lea eax, [ecx + ecx + ref_fffd339c] ; lea eax, [ecx + ecx - 0x2cc64]
+jmp near loc_fffa6bcd ; jmp 0xfffa6bcd
+
+loc_fffa6ae7: ; not directly referenced
+cmp edx, 0x306d0
+sete bl
+cmp edx, 0x40650
+sete al
+or bl, al
+je short loc_fffa6b12 ; je 0xfffa6b12
+cmp ecx, 1
+ja short loc_fffa6a85 ; ja 0xfffa6a85
+add esi, esi
+add ecx, esi
+lea eax, [ecx + ecx + ref_fffd3394] ; lea eax, [ecx + ecx - 0x2cc6c]
+jmp near loc_fffa6bcd ; jmp 0xfffa6bcd
+
+loc_fffa6b12: ; not directly referenced
+cmp edx, 0x40660
+sete bl
+cmp edx, 0x306c0
+sete al
+or bl, al
+jne short loc_fffa6b36 ; jne 0xfffa6b36
+xor eax, eax
+cmp edx, 0x40670
+jne loc_fffa6bcd ; jne 0xfffa6bcd
+
+loc_fffa6b36: ; not directly referenced
+imul esi, esi, 6
+add ecx, esi
+lea eax, [ecx + ecx + ref_fffd337c] ; lea eax, [ecx + ecx - 0x2cc84]
+jmp near loc_fffa6bcd ; jmp 0xfffa6bcd
+
+loc_fffa6b47: ; not directly referenced
+cmp edx, 0x40660
+sete bl
+cmp edx, 0x306c0
+sete al
+or bl, al
+jne short loc_fffa6b67 ; jne 0xfffa6b67
+xor eax, eax
+cmp edx, 0x40670
+jne short loc_fffa6bcd ; jne 0xfffa6bcd
+
+loc_fffa6b67: ; not directly referenced
+imul esi, esi, 6
+add ecx, esi
+lea eax, [ecx + ecx + ref_fffd3364] ; lea eax, [ecx + ecx - 0x2cc9c]
+jmp short loc_fffa6bcd ; jmp 0xfffa6bcd
+
+loc_fffa6b75: ; not directly referenced
+cmp edx, 0x306d0
+sete bl
+cmp edx, 0x40650
+sete al
+or bl, al
+je short loc_fffa6ba1 ; je 0xfffa6ba1
+cmp ecx, 1
+ja loc_fffa6a85 ; ja 0xfffa6a85
+add esi, esi
+add ecx, esi
+lea eax, [ecx + ecx + ref_fffd33cc] ; lea eax, [ecx + ecx - 0x2cc34]
+jmp short loc_fffa6bcd ; jmp 0xfffa6bcd
+
+loc_fffa6ba1: ; not directly referenced
+cmp edx, 0x40660
+sete bl
+cmp edx, 0x306c0
+sete al
+or bl, al
+jne short loc_fffa6bc1 ; jne 0xfffa6bc1
+xor eax, eax
+cmp edx, 0x40670
+jne short loc_fffa6bcd ; jne 0xfffa6bcd
+
+loc_fffa6bc1: ; not directly referenced
+imul esi, esi, 6
+add ecx, esi
+lea eax, [ecx + ecx + ref_fffd33b4] ; lea eax, [ecx + ecx - 0x2cc4c]
+
+loc_fffa6bcd: ; not directly referenced
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffa6bd1: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+test cl, cl
+je short loc_fffa6bf8 ; je 0xfffa6bf8
+cmp cl, 0x3c
+je short loc_fffa6bfc ; je 0xfffa6bfc
+cmp cl, 0x78
+je short loc_fffa6c02 ; je 0xfffa6c02
+cmp cl, 0x28
+je short loc_fffa6c08 ; je 0xfffa6c08
+cmp cl, 0x14
+je short loc_fffa6c10 ; je 0xfffa6c10
+cmp cl, 0x1e
+mov cl, 1
+setne bl
+jmp short loc_fffa6c0c ; jmp 0xfffa6c0c
+
+loc_fffa6bf8: ; not directly referenced
+xor ecx, ecx
+jmp short loc_fffa6c12 ; jmp 0xfffa6c12
+
+loc_fffa6bfc: ; not directly referenced
+xor ecx, ecx
+xor ebx, ebx
+jmp short loc_fffa6c0c ; jmp 0xfffa6c0c
+
+loc_fffa6c02: ; not directly referenced
+xor ecx, ecx
+mov bl, 1
+jmp short loc_fffa6c14 ; jmp 0xfffa6c14
+
+loc_fffa6c08: ; not directly referenced
+xor ecx, ecx
+mov bl, 1
+
+loc_fffa6c0c: ; not directly referenced
+mov dl, 1
+jmp short loc_fffa6c16 ; jmp 0xfffa6c16
+
+loc_fffa6c10: ; not directly referenced
+mov cl, 1
+
+loc_fffa6c12: ; not directly referenced
+xor ebx, ebx
+
+loc_fffa6c14: ; not directly referenced
+xor edx, edx
+
+loc_fffa6c16: ; not directly referenced
+and edx, 1
+and ebx, 1
+lea esi, [edx*4]
+mov edx, dword [ebp + 8]
+and ecx, 1
+shl ebx, 6
+shl ecx, 9
+and edx, 0xffffffbb
+or edx, esi
+or edx, ebx
+and dh, 0xfd
+or edx, ecx
+pop ebx
+mov word [eax], dx
+pop esi
+pop ebp
+ret
+
+fcn_fffa6c42: ; not directly referenced
+imul edx, edx, 0x13c3
+push ebp
+mov ebp, esp
+lea edx, [eax + edx + 0x3756]
+mov cl, byte [edx + 0x1260]
+cmp cl, 1
+je short loc_fffa6c81 ; je 0xfffa6c81
+mov dl, byte [edx + 0x1388]
+cmp dl, 1
+je short loc_fffa6c81 ; je 0xfffa6c81
+cmp cl, 2
+je short loc_fffa6c85 ; je 0xfffa6c85
+cmp dl, 2
+jne short loc_fffa6c7d ; jne 0xfffa6c7d
+jmp short loc_fffa6c85 ; jmp 0xfffa6c85
+
+loc_fffa6c74: ; not directly referenced
+cmp eax, 5
+je short loc_fffa6ca0 ; je 0xfffa6ca0
+test eax, eax
+je short loc_fffa6ca0 ; je 0xfffa6ca0
+
+loc_fffa6c7d: ; not directly referenced
+xor eax, eax
+jmp short loc_fffa6ca9 ; jmp 0xfffa6ca9
+
+loc_fffa6c81: ; not directly referenced
+xor edx, edx
+jmp short loc_fffa6c8a ; jmp 0xfffa6c8a
+
+loc_fffa6c85: ; not directly referenced
+mov edx, 1
+
+loc_fffa6c8a: ; not directly referenced
+mov eax, dword [eax + 0x187f]
+cmp eax, 2
+jne short loc_fffa6c74 ; jne 0xfffa6c74
+lea edx, [edx + edx*2]
+lea eax, [edx + ref_fffd334c] ; lea eax, [edx - 0x2ccb4]
+jmp short loc_fffa6ca9 ; jmp 0xfffa6ca9
+
+loc_fffa6ca0: ; not directly referenced
+lea edx, [edx + edx*2]
+lea eax, [edx + ref_fffd3358] ; lea eax, [edx - 0x2cca8]
+
+loc_fffa6ca9: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffa6cab: ; not directly referenced
+push ebp
+mov ebp, esp
+cmp cl, 0x3c
+je short loc_fffa6cdf ; je 0xfffa6cdf
+ja short loc_fffa6cc8 ; ja 0xfffa6cc8
+cmp cl, 0x28
+je short loc_fffa6ce3 ; je 0xfffa6ce3
+mov dl, 5
+cmp cl, 0x30
+je short loc_fffa6ce9 ; je 0xfffa6ce9
+mov dl, 7
+cmp cl, 0x22
+jmp short loc_fffa6cd9 ; jmp 0xfffa6cd9
+
+loc_fffa6cc8: ; not directly referenced
+cmp cl, 0x78
+je short loc_fffa6ce7 ; je 0xfffa6ce7
+mov dl, 4
+cmp cl, 0xf0
+je short loc_fffa6ce9 ; je 0xfffa6ce9
+mov dl, 6
+cmp cl, 0x50
+
+loc_fffa6cd9: ; not directly referenced
+je short loc_fffa6ce9 ; je 0xfffa6ce9
+xor edx, edx
+jmp short loc_fffa6ce9 ; jmp 0xfffa6ce9
+
+loc_fffa6cdf: ; not directly referenced
+mov dl, 1
+jmp short loc_fffa6ce9 ; jmp 0xfffa6ce9
+
+loc_fffa6ce3: ; not directly referenced
+mov dl, 3
+jmp short loc_fffa6ce9 ; jmp 0xfffa6ce9
+
+loc_fffa6ce7: ; not directly referenced
+mov dl, 2
+
+loc_fffa6ce9: ; not directly referenced
+mov ecx, dword [ebp + 8]
+and edx, 7
+shl edx, 6
+pop ebp
+and cx, 0xfe3f
+or ecx, edx
+mov word [eax], cx
+ret
+
+fcn_fffa6cfe: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov esi, dword [eax + 0x1887]
+movsx ebx, dl
+mov edi, dword [eax + 0x5edc]
+cmp esi, 0x306d0
+sete al
+cmp esi, 0x40650
+sete cl
+or eax, ecx
+cmp al, 1
+sbb ecx, ecx
+and ecx, 0xffffffce
+add ecx, 0x64
+cmp byte [edi + 0x1c5], 0
+jne short loc_fffa6d4d ; jne 0xfffa6d4d
+movzx eax, cl
+add ebx, 0x30
+imul eax, eax, 0x60
+movzx ecx, cl
+cdq
+idiv ebx
+sub eax, ecx
+jmp short loc_fffa6d5c ; jmp 0xfffa6d5c
+
+loc_fffa6d4d: ; not directly referenced
+mov eax, 0x3200
+lea ecx, [ebx + 0x20]
+cdq
+idiv ecx
+sub ax, 0xc8
+
+loc_fffa6d5c: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa6d61: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+movzx esi, word [ebp + 0x10]
+mov dword [ebp - 0x10], edx
+mov edx, dword [eax + 0x18a7]
+mov dword [ebp - 0x38], ecx
+mov dword [ebp - 0x30], esi
+add esi, 0xf
+mov ecx, dword [eax + edx*4 + 0x3735]
+movzx eax, word [ebp + 0xc]
+mov dword [ebp - 0x14], esi
+mov ebx, eax
+imul eax, esi
+mov dword [ebp - 0x28], ebx
+add ebx, esi
+cdq
+idiv ebx
+mov edi, eax
+mov eax, ecx
+shr ax, 1
+movzx eax, ax
+mov edx, eax
+movzx eax, byte [ebp + 8]
+mov dword [ebp - 0x20], edx
+add eax, 0xf
+mov dword [ebp - 0x24], eax
+lea ebx, [edi + eax]
+mov eax, edx
+xor edx, edx
+mov esi, dword [ebp - 0x24]
+div ebx
+movzx ebx, cx
+mov ecx, ebx
+mov dword [ebp - 0x18], ebx
+xor edx, edx
+imul esi, eax
+mov dword [ebp - 0x34], eax
+sub ecx, esi
+lea eax, [ecx + ecx]
+sub eax, ebx
+mov ebx, 0x3e8
+imul eax, eax
+imul esi, esi
+div ebx
+mov bx, 0x2710
+xor edx, edx
+imul eax, eax, 0xd2f0
+div ebx
+mov bx, 0x64
+xor edx, edx
+div ebx
+xor edx, edx
+mov ebx, eax
+imul eax, edi, 0x3e8
+add edi, 0x1e
+div edi
+mov edi, 0x3e8
+xor edx, edx
+imul ebx, eax
+mov eax, ebx
+mov ebx, ecx
+div edi
+mov edi, ecx
+imul edi, ecx
+mov dword [ebp - 0x1c], eax
+mov eax, edi
+mov edi, dword [ebp - 0x28]
+add eax, esi
+mov esi, edi
+add esi, edi
+imul edi, esi, 0x64
+xor edx, edx
+mov esi, dword [ebp - 0x10]
+sub ebx, dword [ebp - 0x20]
+div edi
+xor edx, edx
+mov edi, 0x64
+mov dword [ebp - 0x2c], eax
+mov dword [esi], eax
+mov eax, ebx
+mov esi, dword [ebp - 0x30]
+div dword [ebp - 0x14]
+mov ebx, dword [ebp - 0x18]
+imul edx, eax, 0xf
+imul eax, eax
+sub ecx, edx
+mov edx, esi
+add edx, esi
+sub ebx, ecx
+imul esi, edx, 0x64
+xor edx, edx
+imul eax, eax, 0xf
+imul ebx, ebx
+imul ecx, ecx
+mov dword [ebp - 0x28], esi
+mov esi, 0x64
+div esi
+mov esi, eax
+mov eax, dword [ebp - 0x34]
+mov edx, eax
+imul edx, eax
+mov eax, dword [ebp - 0x24]
+imul eax, edx
+xor edx, edx
+div edi
+xor edx, edx
+add esi, eax
+lea eax, [ebx + ecx]
+div dword [ebp - 0x28]
+add esi, eax
+mov ebx, esi
+mov esi, dword [ebp - 0x10]
+mov dword [ebp - 0x30], ebx
+mov edx, dword [ebp - 0x14]
+mov dword [esi + 4], ebx
+movzx ebx, word [ebp + 0x14]
+lea edi, [ebx + 0xf]
+mov ecx, edi
+imul edi, edx
+mov dword [ebp - 0x34], ecx
+add ecx, edx
+mov eax, edi
+movzx edi, word [ebp - 0x38]
+cdq
+idiv ecx
+xor edx, edx
+lea ecx, [eax + edi]
+mov esi, eax
+mov eax, dword [ebp - 0x20]
+div ecx
+mov ecx, dword [ebp - 0x18]
+mov edx, eax
+imul edx, edi
+imul eax, eax
+sub ecx, edx
+imul eax, edi
+mov edi, 0x64
+xor edx, edx
+div edi
+mov di, 0x3e8
+xor edx, edx
+mov dword [ebp - 0x24], eax
+lea eax, [ecx + ecx]
+sub eax, dword [ebp - 0x18]
+imul eax, eax
+div edi
+mov di, 0x2710
+xor edx, edx
+imul eax, eax, 0xd2f0
+div edi
+mov di, 0x64
+xor edx, edx
+div edi
+xor edx, edx
+mov edi, eax
+imul eax, esi, 0x3e8
+add esi, 0x1e
+div esi
+mov esi, 0x3e8
+xor edx, edx
+imul edi, eax
+mov eax, edi
+mov edi, dword [ebp - 0x24]
+div esi
+mov esi, dword [ebp - 0x10]
+xor edx, edx
+mov dword [esi + 8], edi
+mov esi, ecx
+mov edi, ecx
+sub esi, dword [ebp - 0x20]
+mov dword [ebp - 0x20], esi
+mov dword [ebp - 0x38], eax
+mov eax, esi
+div dword [ebp - 0x34]
+mov edx, dword [ebp - 0x18]
+mov esi, eax
+imul eax, eax, 0xf
+imul esi, esi
+sub edi, eax
+sub edx, edi
+mov eax, edx
+imul eax, edx
+xor edx, edx
+imul edi, edi
+add eax, edi
+lea edi, [ebx + ebx]
+mov ebx, 0x64
+imul edi, edi, 0x64
+div edi
+mov edi, eax
+imul eax, esi, 0xf
+xor edx, edx
+div ebx
+xor edx, edx
+lea esi, [edi + eax]
+mov eax, dword [ebp - 0x20]
+mov edi, dword [ebp - 0x10]
+div dword [ebp - 0x14]
+mov edx, dword [ebp - 0x18]
+mov dword [edi + 0x10], esi
+mov ebx, eax
+imul eax, eax, 0xf
+imul ebx, ebx
+sub ecx, eax
+sub edx, ecx
+mov eax, edx
+imul eax, edx
+xor edx, edx
+imul ecx, ecx
+add eax, ecx
+div dword [ebp - 0x28]
+xor edx, edx
+mov ecx, eax
+imul eax, ebx, 0xf
+mov ebx, 0x64
+div ebx
+mov edx, dword [ebp - 0x1c]
+mov dword [edi + 0x14], edx
+add ecx, eax
+mov eax, dword [ebp - 0x38]
+mov dword [edi + 0xc], ecx
+add ecx, esi
+mov dword [edi + 0x18], eax
+mov edi, dword [ebp - 0x30]
+mov esi, eax
+add edi, edx
+mov edx, ecx
+mov ecx, dword [ebp - 0x24]
+mov dword [ebp - 0x14], edx
+add ecx, eax
+mov ebx, ecx
+lea edx, [ecx + edx]
+mov ecx, dword [ebp - 0x2c]
+imul edx, edx, 0x28
+imul ebx, ebx, 0x28
+lea eax, [edi + ecx]
+mov ecx, 0x64
+imul eax, eax, 0x3c
+add eax, edx
+xor edx, edx
+div cx
+mov edx, dword [ebp - 0x10]
+mov word [edx + 0x34], ax
+imul edx, esi, 0x28
+mov esi, 0x64
+imul eax, dword [ebp - 0x1c], 0x3c
+add eax, edx
+xor edx, edx
+div esi
+mov esi, dword [ebp - 0x10]
+imul dx, word [ebp - 0x2c], 0x3c
+mov dword [esi + 0x1c], eax
+lea eax, [ebx + edx]
+xor edx, edx
+div cx
+mov ebx, esi
+xor edx, edx
+imul edi, edi, 0x3c
+mov word [esi + 0x30], ax
+imul si, word [ebp - 0x14], 0x28
+lea eax, [esi + edi]
+div cx
+mov word [ebx + 0x32], ax
+add esp, 0x2c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa7047: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+movzx esi, cl
+push ebx
+sub esp, 0xa4
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x97], dl
+mov byte [ebp - 0xa3], cl
+mov dword [ebp - 0x94], 0
+mov byte [ebp - 0xa4], al
+mov al, byte [ebp + 0xc]
+mov bl, al
+mov byte [ebp - 0xa5], al
+lea eax, [ecx - 1]
+mov byte [ebp - 0x98], al
+movzx eax, dl
+mov dword [ebp - 0x9c], eax
+lea eax, [eax + esi - 1]
+cdq
+idiv esi
+dec eax
+mov byte [ebp - 0x96], al
+movzx eax, bl
+dec eax
+mov dword [ebp - 0xb0], eax
+
+loc_fffa70ac: ; not directly referenced
+mov al, byte [ebp - 0x97]
+cmp byte [ebp - 0x94], al
+jae loc_fffa71dd ; jae 0xfffa71dd
+mov edx, dword [ebp - 0x94]
+mov ecx, dword [ebp - 0xb0]
+mov dword [ebp - 0x90], 0
+movzx eax, dl
+div byte [ebp - 0xa3]
+imul cx, word [edi + edx*2]
+movzx ebx, ah
+mov byte [ebp - 0xa1], al
+mov al, bl
+dec eax
+mov byte [ebp - 0xa6], al
+movzx eax, byte [ebp - 0x96]
+mov byte [ebp - 0x95], bl
+mov dword [ebp - 0xac], eax
+
+loc_fffa7107: ; not directly referenced
+mov al, byte [ebp - 0x95]
+xor ebx, ebx
+or al, byte [ebp - 0x90]
+je short loc_fffa7123 ; je 0xfffa7123
+mov bl, byte [ebp - 0xa6]
+add ebx, dword [ebp - 0x90]
+
+loc_fffa7123: ; not directly referenced
+mov al, byte [ebp - 0xa4]
+cmp bl, al
+setb dl
+cmp byte [ebp - 0x95], al
+setb al
+test dl, al
+mov al, byte [ebp - 0x95]
+cmovne ebx, eax
+mov al, byte [ebp - 0x98]
+cmp bl, al
+cmova ebx, eax
+mov al, byte [ebp - 0xa1]
+lea edx, [eax - 1]
+add eax, 2
+mov byte [ebp - 0xa2], al
+movzx eax, bl
+mov dword [ebp - 0xa0], eax
+
+loc_fffa7168: ; not directly referenced
+xor eax, eax
+test dl, dl
+cmovns eax, edx
+movsx ebx, al
+cmp ebx, dword [ebp - 0xac]
+mov bl, byte [ebp - 0x96]
+cmovg eax, ebx
+movsx ebx, al
+imul ebx, esi
+add ebx, dword [ebp - 0xa0]
+cmp dword [ebp - 0x9c], ebx
+setle bl
+inc edx
+sub eax, ebx
+movsx eax, al
+imul eax, esi
+add eax, dword [ebp - 0xa0]
+add cx, word [edi + eax*2]
+cmp dl, byte [ebp - 0xa2]
+jne short loc_fffa7168 ; jne 0xfffa7168
+inc dword [ebp - 0x90]
+cmp dword [ebp - 0x90], 3
+jne loc_fffa7107 ; jne 0xfffa7107
+mov eax, dword [ebp - 0x94]
+inc dword [ebp - 0x94]
+mov word [ebp + eax*2 - 0x8c], cx
+jmp near loc_fffa70ac ; jmp 0xfffa70ac
+
+loc_fffa71dd: ; not directly referenced
+movzx ebx, byte [ebp - 0xa5]
+xor ecx, ecx
+add ebx, 8
+
+loc_fffa71e9: ; not directly referenced
+cmp byte [ebp - 0x97], cl
+jbe short loc_fffa7203 ; jbe 0xfffa7203
+movzx eax, word [ebp + ecx*2 - 0x8c]
+cdq
+idiv ebx
+mov word [edi + ecx*2], ax
+inc ecx
+jmp short loc_fffa71e9 ; jmp 0xfffa71e9
+
+loc_fffa7203: ; not directly referenced
+add esp, 0xa4
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa720e: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, 0x3664
+cmp dl, 1
+ja short loc_fffa7239 ; ja 0xfffa7239
+cmp cl, 8
+movzx edx, dl
+jbe short loc_fffa722f ; jbe 0xfffa722f
+shl edx, 8
+lea ebx, [edx + 0x3064]
+jmp short loc_fffa7239 ; jmp 0xfffa7239
+
+loc_fffa722f: ; not directly referenced
+shl edx, 8
+shl ecx, 9
+lea ebx, [edx + ecx + 0x64]
+
+loc_fffa7239: ; not directly referenced
+cmp dword [eax + 0x188b], 1
+lea edx, [ebx + 0xc]
+cmove ebx, edx
+mov eax, ebx
+pop ebx
+pop ebp
+ret
+
+fcn_fffa724b: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, 0x3660
+cmp dl, 1
+ja short loc_fffa7276 ; ja 0xfffa7276
+cmp cl, 8
+movzx edx, dl
+jbe short loc_fffa726c ; jbe 0xfffa726c
+shl edx, 8
+lea ebx, [edx + 0x3060]
+jmp short loc_fffa7276 ; jmp 0xfffa7276
+
+loc_fffa726c: ; not directly referenced
+shl edx, 8
+shl ecx, 9
+lea ebx, [edx + ecx + 0x60]
+
+loc_fffa7276: ; not directly referenced
+cmp dword [eax + 0x188b], 1
+lea edx, [ebx + 0xc]
+cmove ebx, edx
+mov eax, ebx
+pop ebx
+pop ebp
+ret
+
+fcn_fffa7288: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, 0x3674
+cmp dl, 1
+ja short loc_fffa72b3 ; ja 0xfffa72b3
+cmp cl, 8
+movzx edx, dl
+jbe short loc_fffa72a9 ; jbe 0xfffa72a9
+shl edx, 8
+lea ebx, [edx + 0x3074]
+jmp short loc_fffa72b3 ; jmp 0xfffa72b3
+
+loc_fffa72a9: ; not directly referenced
+shl edx, 8
+shl ecx, 9
+lea ebx, [edx + ecx + 0x74]
+
+loc_fffa72b3: ; not directly referenced
+cmp dword [eax + 0x188b], 1
+lea edx, [ebx + 0xc]
+cmove ebx, edx
+mov eax, ebx
+pop ebx
+pop ebp
+ret
+
+fcn_fffa72c5: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+mov eax, edx
+sub esp, 0x2c
+mov edi, dword [ebp + 0x10]
+movzx eax, al
+mov dword [ebp - 0x1c], edx
+mov edx, dword [ebp + 0xc]
+mov dword [ebp - 0x20], ecx
+mov bl, byte [ebp + 8]
+mov dword [ebp - 0x24], edi
+mov edi, dword [ebp + 0x14]
+cmp edx, 1
+mov dword [ebp - 0x28], edi
+mov edi, dword [ebp + 0x18]
+mov dword [ebp - 0x2c], edi
+mov edi, dword [esi + 0x2443]
+je short loc_fffa730c ; je 0xfffa730c
+cmp edx, 2
+jne short loc_fffa7351 ; jne 0xfffa7351
+lea edx, [eax*8 + 0x48f8]
+jmp short loc_fffa7313 ; jmp 0xfffa7313
+
+loc_fffa730c: ; not directly referenced
+lea edx, [eax*8 + 0x48d8]
+
+loc_fffa7313: ; not directly referenced
+mov eax, esi
+call fcn_fffae548 ; call 0xfffae548
+xor ecx, ecx
+push eax
+and edx, 0x7000000
+push 0x38
+push edx
+push ecx
+call dword [edi + 0x6c] ; ucall
+mov ebx, eax
+mov eax, dword [ebp - 0x1c]
+movzx ebx, bl
+lea edx, [eax*4 + 0x4930]
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+lea ecx, [ebx*4]
+add esp, 0x10
+shr eax, cl
+mov bl, al
+and ebx, 3
+
+loc_fffa7351: ; not directly referenced
+cmp dword [ebp - 0x20], 0
+mov ecx, 0xff
+movzx edx, byte [ebp - 0x1c]
+jne short loc_fffa7364 ; jne 0xfffa7364
+movzx ecx, byte [ebp - 0x24]
+
+loc_fffa7364: ; not directly referenced
+mov eax, esi
+and ebx, 3
+call fcn_fffa7288 ; call 0xfffa7288
+shl ebx, 0x16
+mov edi, eax
+mov edx, eax
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x28]
+mov edx, dword [ebp - 0x2c]
+lea esp, [ebp - 0xc]
+and ecx, 1
+shl ecx, 0x14
+and edx, 1
+and eax, 0xffcfffff
+shl edx, 0x15
+or eax, ecx
+or eax, edx
+mov edx, edi
+and eax, 0xff3fffff
+or eax, ebx
+mov ecx, eax
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+fcn_fffa73b0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+movzx esi, dl
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x1c], eax
+mov eax, dword [ebp + 0xc]
+imul edx, esi, 0x13c3
+mov dword [ebp - 0x20], esi
+mov dword [ebp - 0x24], ebx
+movzx esi, bl
+movzx ebx, cl
+cmp al, 3
+lea edi, [edi + edx + 0x3756]
+jne short loc_fffa73e9 ; jne 0xfffa73e9
+mov ecx, dword [ebp + 0x10]
+jmp short loc_fffa745c ; jmp 0xfffa745c
+
+loc_fffa73e9: ; not directly referenced
+test al, al
+jne short loc_fffa73f2 ; jne 0xfffa73f2
+mov edx, dword [ebp + 0x10]
+jmp short loc_fffa7401 ; jmp 0xfffa7401
+
+loc_fffa73f2: ; not directly referenced
+lea edx, [ebx + ebx*8]
+lea edx, [edx + esi + 0xb0]
+mov dx, word [edi + edx*2 + 9]
+
+loc_fffa7401: ; not directly referenced
+and dx, 0x1ff
+and edx, 0x1ff
+mov dword [ebp - 0x28], edx
+cmp al, 1
+jne short loc_fffa7418 ; jne 0xfffa7418
+mov edx, dword [ebp + 0x10]
+jmp short loc_fffa742b ; jmp 0xfffa742b
+
+loc_fffa7418: ; not directly referenced
+movzx edx, byte [ebp - 0x24]
+lea ecx, [ecx + ecx*8]
+lea edx, [edx + ecx + 0x90]
+mov dx, word [edi + edx*2 + 1]
+
+loc_fffa742b: ; not directly referenced
+and dx, 0x1ff
+and edx, 0x1ff
+shl edx, 9
+or edx, dword [ebp - 0x28]
+cmp al, 2
+jne short loc_fffa7445 ; jne 0xfffa7445
+mov cl, byte [ebp + 0x10]
+jmp short loc_fffa7451 ; jmp 0xfffa7451
+
+loc_fffa7445: ; not directly referenced
+lea eax, [ebx + ebx*8]
+add edi, eax
+mov cl, byte [edi + esi + 0x24d]
+
+loc_fffa7451: ; not directly referenced
+and ecx, 0x3f
+and ecx, 0x3f
+shl ecx, 0x14
+or ecx, edx
+
+loc_fffa745c: ; not directly referenced
+mov edi, dword [ebp - 0x20]
+mov eax, edi
+shl eax, 8
+lea edx, [eax + ebx*4 + 0x20]
+mov eax, esi
+shl eax, 9
+add edx, eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae58c ; call 0xfffae58c
+sub esp, 0xc
+mov eax, dword [ebp - 0x1c]
+push 1
+mov edx, edi
+push 0
+xor ecx, ecx
+push esi
+push 0
+push ebx
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa7499: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x2c
+mov edi, dword [ebp + 0x10]
+mov ebx, dword [ebp + 0xc]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x1c], edi
+movzx edi, dl
+imul edx, edi, 0x13c3
+mov dword [ebp - 0x20], ebx
+mov dword [ebp - 0x30], edi
+lea esi, [esi + edx + 0x3756]
+test bl, bl
+jne short loc_fffa74d2 ; jne 0xfffa74d2
+mov ebx, dword [ebp - 0x1c]
+jmp short loc_fffa74e4 ; jmp 0xfffa74e4
+
+loc_fffa74d2: ; not directly referenced
+movzx ebx, al
+lea edx, [ecx + ecx*8]
+lea edx, [ebx + edx + 0xd8]
+mov bx, word [esi + edx*2 + 1]
+
+loc_fffa74e4: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+and bx, 0x1ff
+movzx edi, al
+and ebx, 0x1ff
+mov dword [ebp - 0x2c], edi
+cmp dl, 5
+sete byte [ebp - 0x31]
+and edx, 0xfffffffb
+dec dl
+jne short loc_fffa750b ; jne 0xfffa750b
+mov dl, byte [ebp - 0x1c]
+jmp short loc_fffa751a ; jmp 0xfffa751a
+
+loc_fffa750b: ; not directly referenced
+mov edi, dword [ebp - 0x2c]
+lea edx, [ecx + ecx*8]
+add edx, esi
+mov dl, byte [edx + edi + 0x104a]
+
+loc_fffa751a: ; not directly referenced
+and edx, 0x3f
+movzx edi, al
+and edx, 0x3f
+shl edx, 9
+or edx, ebx
+movzx ebx, cl
+cmp byte [ebp - 0x20], 2
+jne short loc_fffa7536 ; jne 0xfffa7536
+mov al, byte [ebp - 0x1c]
+jmp short loc_fffa7542 ; jmp 0xfffa7542
+
+loc_fffa7536: ; not directly referenced
+lea eax, [ebx + ebx*8]
+add eax, esi
+mov al, byte [eax + edi + 0x1026]
+
+loc_fffa7542: ; not directly referenced
+and eax, 0x1f
+and eax, 0x1f
+mov dword [ebp - 0x24], eax
+mov al, byte [ebp - 0x31]
+shl dword [ebp - 0x24], 0xf
+or dword [ebp - 0x24], edx
+cmp byte [ebp - 0x20], 3
+sete dl
+or al, dl
+je short loc_fffa7565 ; je 0xfffa7565
+mov dl, byte [ebp - 0x1c]
+jmp short loc_fffa7571 ; jmp 0xfffa7571
+
+loc_fffa7565: ; not directly referenced
+lea ecx, [ecx + ecx*8]
+add ecx, esi
+mov dl, byte [ecx + edi + 0x106e]
+
+loc_fffa7571: ; not directly referenced
+and edx, 0x3f
+and edx, 0x3f
+shl edx, 0x14
+or edx, dword [ebp - 0x24]
+cmp byte [ebp - 0x20], 4
+jne short loc_fffa7588 ; jne 0xfffa7588
+mov cl, byte [ebp - 0x1c]
+jmp short loc_fffa758f ; jmp 0xfffa758f
+
+loc_fffa7588: ; not directly referenced
+mov cl, byte [esi + edi + 0x101d]
+
+loc_fffa758f: ; not directly referenced
+mov edi, dword [ebp - 0x30]
+and ecx, 0x3f
+mov esi, dword [ebp - 0x2c]
+shl ecx, 0x1a
+or ecx, edx
+mov eax, edi
+shl eax, 6
+mov edx, eax
+mov eax, esi
+add edx, ebx
+shl eax, 7
+add edx, eax
+mov eax, dword [ebp - 0x28]
+shl edx, 2
+call fcn_fffae58c ; call 0xfffae58c
+sub esp, 0xc
+mov eax, dword [ebp - 0x28]
+push 0
+mov edx, edi
+push 1
+xor ecx, ecx
+push esi
+push 0
+push ebx
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa75da: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, 0x3658
+cmp dl, 1
+ja short loc_fffa7605 ; ja 0xfffa7605
+cmp cl, 8
+movzx edx, dl
+jbe short loc_fffa75fb ; jbe 0xfffa75fb
+shl edx, 8
+lea ebx, [edx + 0x3058]
+jmp short loc_fffa7605 ; jmp 0xfffa7605
+
+loc_fffa75fb: ; not directly referenced
+shl edx, 8
+shl ecx, 9
+lea ebx, [edx + ecx + 0x58]
+
+loc_fffa7605: ; not directly referenced
+cmp dword [eax + 0x188b], 1
+lea edx, [ebx + 0xc]
+cmove ebx, edx
+mov eax, ebx
+pop ebx
+pop ebp
+ret
+
+fcn_fffa7617: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, 0x3654
+cmp dl, 1
+ja short loc_fffa7642 ; ja 0xfffa7642
+cmp cl, 8
+movzx edx, dl
+jbe short loc_fffa7638 ; jbe 0xfffa7638
+shl edx, 8
+lea ebx, [edx + 0x3054]
+jmp short loc_fffa7642 ; jmp 0xfffa7642
+
+loc_fffa7638: ; not directly referenced
+shl edx, 8
+shl ecx, 9
+lea ebx, [edx + ecx + 0x54]
+
+loc_fffa7642: ; not directly referenced
+cmp dword [eax + 0x188b], 1
+lea edx, [ebx + 0xc]
+cmove ebx, edx
+mov eax, ebx
+pop ebx
+pop ebp
+ret
+
+fcn_fffa7654: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2443]
+mov dword [ebp - 0x30], eax
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 2
+lea edi, [eax + 0x3756]
+jne short loc_fffa76d9 ; jne 0xfffa76d9
+xor esi, esi
+
+loc_fffa767d: ; not directly referenced
+xor ebx, ebx
+
+loc_fffa767f: ; not directly referenced
+push edx
+push 0
+push 4
+lea eax, [ebp - 0x20]
+push eax
+mov eax, dword [ebp - 0x30]
+call dword [eax + 0x5c] ; ucall
+mov ax, word [edi + ebx*2 + 0x126b]
+mov ecx, ebx
+mov edx, esi
+mov word [ebp - 0x20], ax
+mov ax, word [edi + ebx*2 + 0x1283]
+inc ebx
+mov word [ebp - 0x1e], ax
+mov eax, dword [ebp + 8]
+call fcn_fffa7617 ; call 0xfffa7617
+mov ecx, dword [ebp - 0x20]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+cmp ebx, 7
+jne short loc_fffa767f ; jne 0xfffa767f
+inc esi
+add edi, 0x13c3
+cmp esi, 2
+jne short loc_fffa767d ; jne 0xfffa767d
+jmp near loc_fffa77aa ; jmp 0xfffa77aa
+
+loc_fffa76d9: ; not directly referenced
+mov dword [ebp - 0x38], edi
+xor edi, edi
+
+loc_fffa76de: ; not directly referenced
+mov dword [ebp - 0x2c], 0
+
+loc_fffa76e5: ; not directly referenced
+mov ebx, dword [ebp - 0x2c]
+xor edx, edx
+mov al, bl
+and eax, 1
+movzx esi, al
+lea ecx, [esi + 1]
+mov byte [ebp - 0x31], al
+push eax
+mov eax, 8
+div ecx
+push 0
+lea edx, [ebp - 0x20]
+push eax
+push edx
+mov edx, dword [ebp - 0x30]
+call dword [edx + 0x5c] ; ucall
+mov al, bl
+mov ecx, ebx
+shr al, 1
+mov edx, edi
+movzx ebx, al
+mov byte [ebp - 0x32], al
+imul ebx, ebx, 0x128
+imul eax, esi, 0x18
+add esi, 2
+add ebx, eax
+add ebx, dword [ebp - 0x38]
+mov ax, word [ebx + 0x126b]
+mov word [ebp - 0x20], ax
+mov ax, word [ebx + 0x126d]
+mov word [ebp - 0x1e], ax
+mov eax, dword [ebp + 8]
+call fcn_fffa7617 ; call 0xfffa7617
+mov ecx, dword [ebp - 0x20]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov ax, word [ebx + 0x126f]
+add esp, 0x10
+cmp byte [ebp - 0x31], 0
+mov word [ebp + esi*2 - 0x20], ax
+je short loc_fffa778c ; je 0xfffa778c
+mov cl, byte [ebp - 0x32]
+mov edx, edi
+mov eax, dword [ebp + 8]
+add ecx, 4
+movzx ecx, cl
+call fcn_fffa7617 ; call 0xfffa7617
+mov ecx, dword [ebp - 0x1c]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa778c: ; not directly referenced
+inc dword [ebp - 0x2c]
+cmp dword [ebp - 0x2c], 4
+jne loc_fffa76e5 ; jne 0xfffa76e5
+inc edi
+add dword [ebp - 0x38], 0x13c3
+cmp edi, 2
+jne loc_fffa76de ; jne 0xfffa76de
+
+loc_fffa77aa: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa77b4:
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov edx, 0x5e00
+push ebx
+mov ebx, eax
+sub esp, 0x1c
+mov eax, dword [ebp + 8]
+mov esi, ecx
+mov dword [ebp - 0x24], eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5e04
+mov dword [ebp - 0x1c], eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, eax
+mov dword [ebp - 0x20], eax
+test edi, edi
+je short loc_fffa780e ; je 0xfffa780e
+mov ecx, dword [ebp - 0x1c]
+sub esp, 0xc
+and edx, 0xf
+push dword [ebx + 0x187b]
+mov eax, ebx
+shr ecx, 4
+and ecx, 0xf
+call fcn_fffaed31 ; call 0xfffaed31
+add esp, 0x10
+mov dword [edi], eax
+
+loc_fffa780e:
+test esi, esi
+je short loc_fffa781a ; je 0xfffa781a
+mov al, byte [ebp - 0x20]
+and eax, 0xf
+mov byte [esi], al
+
+loc_fffa781a:
+mov esi, dword [ebp - 0x24]
+test esi, esi
+je short loc_fffa782c ; je 0xfffa782c
+mov eax, dword [ebp - 0x1c]
+shr eax, 4
+and eax, 0xf
+mov dword [esi], eax
+
+loc_fffa782c:
+mov eax, dword [ebx + 0x187b]
+mov ecx, dword [ebp - 0x1c]
+mov edx, dword [ebp - 0x20]
+mov dword [ebp + 8], eax
+lea esp, [ebp - 0xc]
+mov eax, ebx
+pop ebx
+pop esi
+and edx, 0xf
+pop edi
+pop ebp
+shr ecx, 4
+and ecx, 0xf
+jmp near fcn_fffaefe1 ; jmp 0xfffaefe1
+
+fcn_fffa7852: ; not directly referenced
+push ebp
+xor edx, edx
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+xor ebx, ebx
+sub esp, 0x98
+mov edi, dword [ebp + 8]
+push 0
+lea ecx, [ebp - 0x45]
+mov eax, edi
+call fcn_fffa77b4 ; call 0xfffa77b4
+lea eax, [edi + 0x2407]
+add esp, 0x10
+mov dword [ebp - 0x58], 0
+mov dword [ebp - 0x50], 0
+mov dword [ebp - 0x68], 0
+mov dword [ebp - 0x64], 0
+mov dword [ebp - 0x80], 0
+mov byte [ebp - 0x79], 0
+mov dword [ebp - 0x94], eax
+
+loc_fffa78a9: ; not directly referenced
+lea eax, [esi - 2]
+cmp eax, 1
+ja short loc_fffa78c7 ; ja 0xfffa78c7
+cmp byte [edi + 0x3749], 0
+je loc_fffa7d5e ; je 0xfffa7d5e
+mov dword [ebp - 0x70], 0
+jmp short loc_fffa78e2 ; jmp 0xfffa78e2
+
+loc_fffa78c7: ; not directly referenced
+mov dword [ebp - 0x70], 0
+cmp esi, 1
+jne short loc_fffa78e2 ; jne 0xfffa78e2
+xor eax, eax
+cmp dword [edi + 0x18a7], 1
+sete al
+mov dword [ebp - 0x70], eax
+
+loc_fffa78e2: ; not directly referenced
+mov al, byte [ebp - 0x45]
+lea ecx, [edi + esi*8 + 0x3756]
+mov dword [ebp - 0x78], ecx
+mov dword [ebp + esi*4 - 0x38], 0xffffffff
+mov dword [ebp + esi*4 - 0x28], 0
+mov byte [ebp - 0x7a], al
+lea eax, [edi + 0x49bf]
+mov dword [ebp - 0x88], eax
+lea eax, [edi + 0x1973]
+mov dword [ebp - 0x74], eax
+imul eax, esi, 0x2e
+mov dword [ebp - 0x60], 0x12
+mov dword [ebp - 0x5c], 4
+mov dword [ebp - 0x84], eax
+imul eax, esi, 0x23
+lea ecx, [eax + 0x18b]
+add eax, 0xbb
+mov dword [ebp - 0x8c], ecx
+mov dword [ebp - 0x90], eax
+
+loc_fffa7948: ; not directly referenced
+mov eax, dword [ebp - 0x88]
+mov ecx, dword [ebp - 0x74]
+mov dword [ebp - 0x6c], 0
+mov dword [ebp - 0x54], eax
+
+loc_fffa795b: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+cmp dword [eax - 0xf6], 2
+jne loc_fffa7b33 ; jne 0xfffa7b33
+mov ebx, dword [ebp - 0x84]
+mov edx, dword [ebp - 0x78]
+mov ebx, dword [eax + ebx - 0xf2]
+mov eax, dword [ebp - 0x6c]
+mov edx, dword [edx + eax + 0xc9]
+mov dword [ebp - 0x64], edx
+mov edx, dword [ebp - 0x78]
+mov edx, dword [edx + eax + 0xcd]
+mov dword [ebp - 0x68], edx
+cmp esi, 1
+je loc_fffa7a50 ; je 0xfffa7a50
+jb loc_fffa7a77 ; jb 0xfffa7a77
+cmp esi, 3
+ja loc_fffa7a77 ; ja 0xfffa7a77
+mov eax, dword [ebp - 0x54]
+cmp esi, 2
+mov al, byte [eax]
+jne short loc_fffa79c7 ; jne 0xfffa79c7
+test al, 1
+jne short loc_fffa79d6 ; jne 0xfffa79d6
+mov dword [ebp - 0x4c], 0
+jmp near loc_fffa7b04 ; jmp 0xfffa7b04
+
+loc_fffa79c7: ; not directly referenced
+mov dword [ebp - 0x4c], 0
+test al, 2
+je loc_fffa7b04 ; je 0xfffa7b04
+
+loc_fffa79d6: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+mov eax, dword [eax - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffa79fa ; jne 0xfffa79fa
+mov eax, dword [ebp - 0x90]
+mov dword [ebp - 0x60], 0x12
+mov dword [ebp - 0x5c], 4
+add eax, ecx
+jmp short loc_fffa7a10 ; jmp 0xfffa7a10
+
+loc_fffa79fa: ; not directly referenced
+mov eax, dword [ebp - 0x8c]
+mov dword [ebp - 0x60], 0x18
+mov dword [ebp - 0x5c], 7
+add eax, ecx
+
+loc_fffa7a10: ; not directly referenced
+movzx edx, byte [eax + 2]
+mov dword [ebp - 0x50], 0
+mov dword [ebp - 0x58], edx
+mov edx, dword [ebp - 0x54]
+cmp byte [edx + 1], 0x13
+jne short loc_fffa7a2e ; jne 0xfffa7a2e
+movsx edx, byte [eax + 0x1b]
+mov dword [ebp - 0x50], edx
+
+loc_fffa7a2e: ; not directly referenced
+mov ax, word [eax + 3]
+and eax, 0x7fff
+mov dword [ebp - 0x4c], eax
+xor eax, eax
+test ebx, ebx
+je loc_fffa7af7 ; je 0xfffa7af7
+mov eax, dword [ebp - 0x64]
+imul eax, dword [ebp - 0x58]
+jmp near loc_fffa7ae6 ; jmp 0xfffa7ae6
+
+loc_fffa7a50: ; not directly referenced
+movzx edx, word [ecx + 0x24e]
+test dx, dx
+je short loc_fffa7a77 ; je 0xfffa7a77
+mov eax, dword [ebp - 0x24]
+mov dword [ebp - 0x4c], 0xffffffff
+mov byte [ebp - 0x79], 1
+cmp edx, eax
+cmovae eax, edx
+mov dword [ebp - 0x24], eax
+jmp near loc_fffa7b04 ; jmp 0xfffa7b04
+
+loc_fffa7a77: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+mov eax, dword [eax - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffa7aad ; jne 0xfffa7aad
+movzx eax, byte [ecx + 0x58]
+mov dword [ebp - 0x60], 0x12
+mov dword [ebp - 0x5c], 4
+mov dword [ebp - 0x58], eax
+movsx eax, byte [ecx + 0x6b]
+mov dword [ebp - 0x50], eax
+mov ax, word [ecx + 0x56]
+and eax, 0x7fff
+mov dword [ebp - 0x4c], eax
+jmp short loc_fffa7ad9 ; jmp 0xfffa7ad9
+
+loc_fffa7aad: ; not directly referenced
+movzx eax, byte [ecx + 0x60]
+mov dword [ebp - 0x60], 0x18
+mov dword [ebp - 0x5c], 7
+mov dword [ebp - 0x58], eax
+movsx eax, byte [ecx + 0xc3]
+mov dword [ebp - 0x50], eax
+mov eax, dword [ecx + 0x5c]
+mov dword [ebp - 0x4c], eax
+and dword [ebp - 0x4c], 0x3ffff
+
+loc_fffa7ad9: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffa7af7 ; je 0xfffa7af7
+mov eax, dword [ebp - 0x58]
+imul eax, dword [ebp - 0x64]
+
+loc_fffa7ae6: ; not directly referenced
+lea edx, [ebx + eax - 1]
+mov eax, dword [ebp - 0x68]
+imul eax, dword [ebp - 0x50]
+add eax, edx
+xor edx, edx
+div ebx
+
+loc_fffa7af7: ; not directly referenced
+mov edx, dword [ebp + esi*4 - 0x28]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + esi*4 - 0x28], eax
+
+loc_fffa7b04: ; not directly referenced
+cmp dword [edi + 0x1872], 0x535
+jbe short loc_fffa7b1c ; jbe 0xfffa7b1c
+cmp dword [edi + 0x36d3], 0x535
+ja short loc_fffa7b2c ; ja 0xfffa7b2c
+
+loc_fffa7b1c: ; not directly referenced
+cmp byte [ebp - 0x7a], 5
+mov eax, 0xffff
+cmova eax, dword [ebp - 0x4c]
+mov dword [ebp - 0x4c], eax
+
+loc_fffa7b2c: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+and dword [ebp + esi*4 - 0x38], eax
+
+loc_fffa7b33: ; not directly referenced
+add dword [ebp - 0x6c], 0x20
+add ecx, 0x277
+add dword [ebp - 0x54], 0x128
+cmp dword [ebp - 0x6c], 0x40
+jne loc_fffa795b ; jne 0xfffa795b
+add dword [ebp - 0x74], 0x54a
+mov eax, dword [ebp - 0x94]
+add dword [ebp - 0x88], 0x13c3
+add dword [ebp - 0x78], 0x13c3
+cmp dword [ebp - 0x74], eax
+jne loc_fffa7948 ; jne 0xfffa7948
+cmp esi, 1
+seta cl
+test ebx, ebx
+sete al
+mov byte [ebp - 0x4c], cl
+test cl, al
+jne loc_fffa7d5c ; jne 0xfffa7d5c
+mov eax, dword [edi + 0x36e3]
+lea ecx, [ebp - 0x44]
+mov edx, ebx
+mov byte [ebp + esi - 0x3c], 0
+call fcn_fffaf08c ; call 0xfffaf08c
+cmp byte [ebp - 0x4c], 0
+je short loc_fffa7be4 ; je 0xfffa7be4
+cmp dword [edi + 0x36e3], 0
+jne short loc_fffa7be4 ; jne 0xfffa7be4
+cmp byte [edi + 0x247e], 0
+je short loc_fffa7be4 ; je 0xfffa7be4
+lea ecx, [ebp - 0x40]
+mov edx, ebx
+mov eax, 1
+call fcn_fffaf08c ; call 0xfffaf08c
+mov eax, dword [ebp - 0x40]
+cmp eax, dword [ebp - 0x44]
+jle short loc_fffa7be4 ; jle 0xfffa7be4
+mov dword [ebp - 0x44], eax
+cmp dword [edi + 0x18a7], esi
+jne short loc_fffa7be4 ; jne 0xfffa7be4
+mov dword [edi + 0x36e3], 1
+
+loc_fffa7be4: ; not directly referenced
+mov al, byte [ebp - 0x70]
+mov byte [ebp - 0x4c], al
+mov eax, dword [ebp - 0x64]
+imul eax, dword [ebp - 0x58]
+mov dword [ebp - 0x54], eax
+mov eax, dword [ebp - 0x50]
+imul eax, dword [ebp - 0x68]
+mov dword [ebp - 0x6c], eax
+mov eax, dword [ebp - 0x84]
+add eax, edi
+mov dword [ebp - 0x70], eax
+
+loc_fffa7c09: ; not directly referenced
+cmp byte [ebp + esi - 0x3c], 0
+jne loc_fffa7ccb ; jne 0xfffa7ccb
+mov edx, dword [ebp + esi*4 - 0x28]
+cmp edx, dword [ebp - 0x60]
+ja loc_fffa7ccb ; ja 0xfffa7ccb
+cmp byte [ebp - 0x4c], 0
+jne short loc_fffa7c45 ; jne 0xfffa7c45
+mov ecx, dword [ebp + esi*4 - 0x38]
+mov eax, edx
+sub eax, dword [ebp - 0x5c]
+bt ecx, eax
+jae loc_fffa7cc1 ; jae 0xfffa7cc1
+mov eax, ebx
+imul eax, edx
+cmp eax, 0x1312d00
+ja short loc_fffa7cc1 ; ja 0xfffa7cc1
+
+loc_fffa7c45: ; not directly referenced
+mov byte [ebp + esi - 0x3c], 1
+cmp esi, dword [edi + 0x18a7]
+jne short loc_fffa7c5f ; jne 0xfffa7c5f
+mov dword [edi + 0x36df], ebx
+mov dword [ebp - 0x80], 1
+
+loc_fffa7c5f: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+xor ecx, ecx
+
+loc_fffa7c64: ; not directly referenced
+cmp dword [edi + ecx + 0x48c9], 2
+jne short loc_fffa7c88 ; jne 0xfffa7c88
+mov word [eax + 0x48d3], dx
+mov word [eax + 0x3760], dx
+mov dword [eax + 0x48cd], ebx
+mov dword [eax + 0x375a], ebx
+
+loc_fffa7c88: ; not directly referenced
+cmp dword [edi + ecx + 0x49f1], 2
+jne short loc_fffa7cac ; jne 0xfffa7cac
+mov word [eax + 0x49fb], dx
+mov word [eax + 0x3760], dx
+mov dword [eax + 0x49f5], ebx
+mov dword [eax + 0x375a], ebx
+
+loc_fffa7cac: ; not directly referenced
+add ecx, 0x13c3
+add eax, 0x13c3
+cmp ecx, 0x2786
+jne short loc_fffa7c64 ; jne 0xfffa7c64
+jmp short loc_fffa7ccb ; jmp 0xfffa7ccb
+
+loc_fffa7cc1: ; not directly referenced
+inc edx
+mov dword [ebp + esi*4 - 0x28], edx
+jmp near loc_fffa7c09 ; jmp 0xfffa7c09
+
+loc_fffa7ccb: ; not directly referenced
+cmp byte [ebp + esi - 0x3c], 0
+jne loc_fffa7d5e ; jne 0xfffa7d5e
+cmp byte [ebp - 0x4c], 0
+je short loc_fffa7ceb ; je 0xfffa7ceb
+cmp byte [edi + 0x1876], 0
+jne short loc_fffa7d5e ; jne 0xfffa7d5e
+cmp byte [ebp - 0x79], 1
+je short loc_fffa7d5e ; je 0xfffa7d5e
+
+loc_fffa7ceb: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+
+loc_fffa7cee: ; not directly referenced
+dec eax
+test eax, eax
+jle short loc_fffa7d57 ; jle 0xfffa7d57
+lea edx, [eax + eax*8]
+mov dl, byte [edx + ref_fffd34b8] ; mov dl, byte [edx - 0x2cb48]
+cmp dl, 3
+jne short loc_fffa7d33 ; jne 0xfffa7d33
+
+loc_fffa7d01: ; not directly referenced
+mov dword [ebp - 0x44], eax
+lea eax, [eax + eax*8]
+mov ebx, dword [eax + ref_fffd34b0] ; mov ebx, dword [eax - 0x2cb50]
+lea ecx, [ebp - 0x44]
+mov eax, dword [edi + 0x36e3]
+mov edx, ebx
+call fcn_fffaf08c ; call 0xfffaf08c
+xor eax, eax
+test ebx, ebx
+je short loc_fffa7d51 ; je 0xfffa7d51
+mov eax, dword [ebp - 0x54]
+xor edx, edx
+lea eax, [ebx + eax - 1]
+add eax, dword [ebp - 0x6c]
+div ebx
+jmp short loc_fffa7d51 ; jmp 0xfffa7d51
+
+loc_fffa7d33: ; not directly referenced
+cmp dl, 1
+jne short loc_fffa7d41 ; jne 0xfffa7d41
+cmp dword [edi + 0x36e3], 0
+jmp short loc_fffa7d4d ; jmp 0xfffa7d4d
+
+loc_fffa7d41: ; not directly referenced
+cmp dl, 2
+jne short loc_fffa7cee ; jne 0xfffa7cee
+cmp dword [edi + 0x36e3], 1
+
+loc_fffa7d4d: ; not directly referenced
+jne short loc_fffa7cee ; jne 0xfffa7cee
+jmp short loc_fffa7d01 ; jmp 0xfffa7d01
+
+loc_fffa7d51: ; not directly referenced
+mov dword [ebp + esi*4 - 0x28], eax
+jmp short loc_fffa7d8c ; jmp 0xfffa7d8c
+
+loc_fffa7d57: ; not directly referenced
+mov dword [ebp - 0x44], eax
+jmp short loc_fffa7d8c ; jmp 0xfffa7d8c
+
+loc_fffa7d5c: ; not directly referenced
+xor ebx, ebx
+
+loc_fffa7d5e: ; not directly referenced
+inc esi
+cmp esi, 4
+jne loc_fffa78a9 ; jne 0xfffa78a9
+mov edx, dword [edi + 0x36df]
+xor ecx, ecx
+mov eax, dword [edi + 0x36e3]
+call fcn_fffaf08c ; call 0xfffaf08c
+mov dword [edi + 0x36d7], eax
+mov eax, dword [ebp - 0x80]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffa7d8c: ; not directly referenced
+cmp dword [ebp - 0x44], 0
+jg loc_fffa7c09 ; jg 0xfffa7c09
+jmp short loc_fffa7d5e ; jmp 0xfffa7d5e
+
+fcn_fffa7d98: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x14
+cmp cl, 0x20
+mov dword [ebp - 0x14], eax
+mov al, byte [ebp + 8]
+sete bl
+cmp cl, 0x10
+mov byte [ebp - 0xd], al
+sete al
+or bl, al
+jne short loc_fffa7dce ; jne 0xfffa7dce
+cmp cl, 0x21
+sete bl
+cmp cl, 0x11
+sete al
+or bl, al
+je loc_fffa7e62 ; je 0xfffa7e62
+
+loc_fffa7dce: ; not directly referenced
+xor ebx, ebx
+cmp cl, 0x21
+ja short loc_fffa7ddc ; ja 0xfffa7ddc
+movzx ebx, byte [ecx + ref_fffd5f1c] ; movzx ebx, byte [ecx - 0x2a0e4]
+
+loc_fffa7ddc: ; not directly referenced
+cmp bl, 7
+mov eax, 7
+cmovbe eax, ebx
+xor ebx, ebx
+imul eax, eax, 0x240
+lea edi, [edx + eax]
+movzx eax, byte [ebp - 0xd]
+imul eax, eax, 0x12
+mov dword [ebp - 0x20], eax
+
+loc_fffa7dfc: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov esi, dword [ebp - 0x14]
+cmp dword [esi + eax + 0x3756], 2
+je short loc_fffa7e17 ; je 0xfffa7e17
+
+loc_fffa7e0f: ; not directly referenced
+inc ebx
+cmp ebx, 2
+je short loc_fffa7e62 ; je 0xfffa7e62
+jmp short loc_fffa7dfc ; jmp 0xfffa7dfc
+
+loc_fffa7e17: ; not directly referenced
+lea eax, [ebx + ebx*8]
+add eax, dword [ebp - 0x20]
+mov byte [ebp - 0xd], 0
+mov dword [ebp - 0x1c], eax
+
+loc_fffa7e24: ; not directly referenced
+mov esi, dword [ebp - 0x14]
+mov al, byte [ebp - 0xd]
+cmp al, byte [esi + 0x2488]
+jae short loc_fffa7e0f ; jae 0xfffa7e0f
+movzx ecx, byte [ebp - 0xd]
+mov esi, 0xa
+xor edx, edx
+add ecx, dword [ebp - 0x1c]
+inc byte [ebp - 0xd]
+lea eax, [edi + ecx*8]
+mov dword [ebp - 0x18], eax
+imul eax, dword [edi + ecx*8], 0xf
+div esi
+xor edx, edx
+mov dword [edi + ecx*8], eax
+mov ecx, dword [ebp - 0x18]
+imul eax, dword [ecx + 4], 0xf
+div esi
+mov dword [ecx + 4], eax
+jmp short loc_fffa7e24 ; jmp 0xfffa7e24
+
+loc_fffa7e62: ; not directly referenced
+add esp, 0x14
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa7e6c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x28
+mov bl, byte [ebp + 0xc]
+mov dword [ebp - 0x24], eax
+movzx eax, byte [ebp + 8]
+mov byte [ebp - 0x1b], bl
+cmp cl, 0xd
+ja short loc_fffa7e9f ; ja 0xfffa7e9f
+cmp cl, 0xb
+jae short loc_fffa7eba ; jae 0xfffa7eba
+cmp cl, 2
+jbe short loc_fffa7eba ; jbe 0xfffa7eba
+lea ebx, [ecx - 4]
+cmp bl, 1
+ja loc_fffa7fd1 ; ja 0xfffa7fd1
+jmp short loc_fffa7eba ; jmp 0xfffa7eba
+
+loc_fffa7e9f: ; not directly referenced
+cmp cl, 0x10
+jb loc_fffa7fd1 ; jb 0xfffa7fd1
+cmp cl, 0x11
+jbe short loc_fffa7ec0 ; jbe 0xfffa7ec0
+lea ebx, [ecx - 0x20]
+cmp bl, 1
+jbe short loc_fffa7ec0 ; jbe 0xfffa7ec0
+jmp near loc_fffa7fd1 ; jmp 0xfffa7fd1
+
+loc_fffa7eba: ; not directly referenced
+mov byte [ebp - 0x1a], 0xa
+jmp short loc_fffa7ec4 ; jmp 0xfffa7ec4
+
+loc_fffa7ec0: ; not directly referenced
+mov byte [ebp - 0x1a], 7
+
+loc_fffa7ec4: ; not directly referenced
+xor ebx, ebx
+cmp cl, 0x21
+ja short loc_fffa7ed2 ; ja 0xfffa7ed2
+movzx ebx, byte [ecx + ref_fffd5f1c] ; movzx ebx, byte [ecx - 0x2a0e4]
+
+loc_fffa7ed2: ; not directly referenced
+cmp bl, 7
+mov ecx, 7
+mov esi, dword [ebp - 0x24]
+cmovbe ecx, ebx
+imul ecx, ecx, 0x240
+imul eax, eax, 0x12
+add esi, 0x3756
+mov dword [ebp - 0x14], esi
+lea edi, [edx + ecx]
+mov dword [ebp - 0x18], 0
+mov dword [ebp - 0x34], eax
+
+loc_fffa7eff: ; not directly referenced
+mov eax, dword [ebp - 0x14]
+cmp dword [eax], 2
+je short loc_fffa7f1e ; je 0xfffa7f1e
+
+loc_fffa7f07: ; not directly referenced
+inc dword [ebp - 0x18]
+add dword [ebp - 0x14], 0x13c3
+cmp dword [ebp - 0x18], 2
+jne short loc_fffa7eff ; jne 0xfffa7eff
+xor eax, eax
+jmp near loc_fffa7fd6 ; jmp 0xfffa7fd6
+
+loc_fffa7f1e: ; not directly referenced
+imul eax, dword [ebp - 0x18], 9
+mov esi, dword [ebp - 0x34]
+mov byte [ebp - 0x19], 0
+mov dword [ebp - 0x2c], eax
+add esi, eax
+movzx eax, byte [ebp - 0x1a]
+mov dword [ebp - 0x28], esi
+mov dword [ebp - 0x30], eax
+
+loc_fffa7f38: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+mov al, byte [ebp - 0x19]
+cmp al, byte [edx + 0x2488]
+jae short loc_fffa7f07 ; jae 0xfffa7f07
+movzx esi, al
+mov edx, dword [ebp - 0x2c]
+xor ecx, ecx
+mov eax, dword [ebp - 0x28]
+add edx, esi
+add eax, esi
+lea ebx, [edi + eax*8]
+lea edx, [edi + edx*8]
+mov dword [ebp - 0x10], ebx
+mov ebx, eax
+mov dword [ebp - 0x20], edx
+
+loc_fffa7f63: ; not directly referenced
+mov eax, dword [ebp - 0x14]
+mov edx, 1
+shl edx, cl
+and dl, byte [eax + 0xc4]
+test byte [ebp - 0x1b], dl
+je short loc_fffa7f9e ; je 0xfffa7f9e
+imul edx, ecx, 0x90
+mov eax, dword [ebp - 0x20]
+mov eax, dword [eax + edx]
+cmp dword [edi + ebx*8], eax
+jbe short loc_fffa7f8c ; jbe 0xfffa7f8c
+mov dword [edi + ebx*8], eax
+
+loc_fffa7f8c: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov edx, dword [eax + edx + 4]
+mov eax, dword [ebp - 0x10]
+cmp dword [eax + 4], edx
+jbe short loc_fffa7f9e ; jbe 0xfffa7f9e
+mov dword [eax + 4], edx
+
+loc_fffa7f9e: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffa7f63 ; jne 0xfffa7f63
+add esi, dword [ebp - 0x28]
+mov cl, 0xa
+mov ebx, dword [ebp - 0x30]
+xor edx, edx
+inc byte [ebp - 0x19]
+mov eax, dword [edi + esi*8]
+imul eax, ebx
+div ecx
+xor edx, edx
+mov dword [edi + esi*8], eax
+mov esi, dword [ebp - 0x10]
+mov eax, ebx
+imul eax, dword [esi + 4]
+div ecx
+mov dword [esi + 4], eax
+jmp near loc_fffa7f38 ; jmp 0xfffa7f38
+
+loc_fffa7fd1: ; not directly referenced
+mov eax, 2
+
+loc_fffa7fd6: ; not directly referenced
+add esp, 0x28
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa7fde: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0x6c
+movzx eax, byte [ebp + 8]
+mov dword [ebp - 0x4c], edx
+mov edx, dword [ebp + 0xc]
+mov dword [ebp - 0x50], ecx
+mov byte [ebp - 0x3c], 0xaa
+mov byte [ebp - 0x3b], 0xc0
+mov word [ebp - 0x58], dx
+mov byte [ebp - 0x3a], 0xcc
+mov byte [ebp - 0x39], 0xf0
+mov dword [ebp - 0x54], 0
+mov word [ebp - 0x6e], ax
+
+loc_fffa8015: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+mov bx, word [ebp - 0x6e]
+mov word [ebp - 0x68], ax
+cmp ax, bx
+jae loc_fffa819d ; jae 0xfffa819d
+mov eax, dword [ebp - 0x50]
+xor ecx, ecx
+or eax, dword [ebp - 0x4c]
+mov dword [ebp - 0x6c], eax
+
+loc_fffa8034: ; not directly referenced
+mov esi, 1
+mov ebx, dword [ebp - 0x4c]
+mov al, 1
+shl esi, cl
+test dword [ebp - 0x50], esi
+setne dl
+and ebx, esi
+setne byte [ebp - 0x56]
+test byte [ebp - 0x56], dl
+jne short loc_fffa8067 ; jne 0xfffa8067
+test ebx, ebx
+sete bl
+xor eax, eax
+test bl, dl
+jne short loc_fffa8067 ; jne 0xfffa8067
+and esi, dword [ebp - 0x6c]
+cmp esi, 1
+sbb eax, eax
+add eax, 3
+
+loc_fffa8067: ; not directly referenced
+movzx eax, al
+mov al, byte [ebp + eax - 0x3c]
+mov byte [ebp + ecx - 0x38], al
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffa8034 ; jne 0xfffa8034
+mov eax, dword [ebp - 0x68]
+xor esi, esi
+add eax, dword [ebp - 0x58]
+mov word [ebp - 0x56], ax
+
+loc_fffa8084: ; not directly referenced
+mov ecx, esi
+mov eax, 1
+shl eax, cl
+xor ebx, ebx
+mov dword [ebp - 0x68], eax
+xor ecx, ecx
+mov edx, 1
+
+loc_fffa8099: ; not directly referenced
+mov al, byte [ebp - 0x68]
+test byte [ebp + ecx - 0x38], al
+je short loc_fffa80a8 ; je 0xfffa80a8
+mov eax, edx
+shl eax, cl
+or ebx, eax
+
+loc_fffa80a8: ; not directly referenced
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffa8099 ; jne 0xfffa8099
+cmp dword [edi + 0x3756], 2
+lea eax, [esi + 0x10000]
+mov dword [ebp - 0x68], eax
+jne short loc_fffa8113 ; jne 0xfffa8113
+mov ecx, ebx
+mov edx, 0x42dc
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, ebx
+mov edx, 0x42e0
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0x68]
+mov edx, 0x42d4
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ax, word [ebp - 0x56]
+mov ecx, 0xfff
+mov edx, 0x42d0
+cmp ax, 0xfff
+cmovbe ecx, eax
+mov eax, edi
+and ecx, 0xfff
+or ecx, 0x8000000
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8113: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffa816f ; jne 0xfffa816f
+mov ecx, ebx
+mov edx, 0x46dc
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, ebx
+mov edx, 0x46e0
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0x68]
+mov edx, 0x46d4
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ax, word [ebp - 0x56]
+mov ecx, 0xfff
+mov edx, 0x46d0
+cmp ax, 0xfff
+cmovbe ecx, eax
+mov eax, edi
+and ecx, 0xfff
+or ecx, 0x8000000
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa816f: ; not directly referenced
+inc esi
+cmp esi, 8
+jne loc_fffa8084 ; jne 0xfffa8084
+mov ebx, dword [ebp - 0x50]
+mov esi, dword [ebp - 0x4c]
+add dword [ebp - 0x50], ebx
+add dword [ebp - 0x4c], esi
+mov eax, ebx
+shr eax, 0x1f
+or dword [ebp - 0x50], eax
+mov eax, esi
+shr eax, 0x1f
+inc dword [ebp - 0x54]
+or dword [ebp - 0x4c], eax
+jmp near loc_fffa8015 ; jmp 0xfffa8015
+
+loc_fffa819d: ; not directly referenced
+cmp dword [edi + 0x3756], 2
+jne short loc_fffa81b4 ; jne 0xfffa81b4
+xor ecx, ecx
+mov edx, 0x42d4
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa81b4: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffa81cb ; jne 0xfffa81cb
+xor ecx, ecx
+mov edx, 0x46d4
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa81cb: ; not directly referenced
+add esp, 0x6c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa81d3: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x2c
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x2c], edx
+mov dword [ebp - 0x30], ecx
+mov word [ebp - 0x22], ax
+movzx eax, byte [ebp + 8]
+mov dword [ebp - 0x34], eax
+
+loc_fffa81f4: ; not directly referenced
+mov dword [ebp - 0x20], 1
+mov ecx, edi
+mov esi, 0x46dc
+shl dword [ebp - 0x20], cl
+
+loc_fffa8205: ; not directly referenced
+lea eax, [esi*8 - 0x236e0]
+xor ecx, ecx
+mov dword [ebp - 0x28], eax
+mov dword [ebp - 0x1c], 0
+
+loc_fffa8218: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+add eax, ecx
+cdq
+idiv dword [ebp - 0x34]
+mov eax, dword [ebp - 0x30]
+movzx edx, dl
+movzx eax, byte [eax + edx]
+mov edx, dword [ebp - 0x2c]
+movzx eax, byte [edx + eax]
+test dword [ebp - 0x20], eax
+je short loc_fffa8241 ; je 0xfffa8241
+mov eax, 1
+shl eax, cl
+or dword [ebp - 0x1c], eax
+
+loc_fffa8241: ; not directly referenced
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffa8218 ; jne 0xfffa8218
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffa8260 ; jne 0xfffa8260
+mov ecx, dword [ebp - 0x1c]
+lea edx, [esi - 0x400]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8260: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffa8275 ; jne 0xfffa8275
+mov ecx, dword [ebp - 0x1c]
+mov edx, esi
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8275: ; not directly referenced
+add esi, 4
+cmp esi, 0x46e4
+jne short loc_fffa8205 ; jne 0xfffa8205
+cmp dword [ebx + 0x3756], 2
+lea esi, [edi + 0x10000]
+jne short loc_fffa82c5 ; jne 0xfffa82c5
+mov ecx, esi
+mov edx, 0x42d4
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ax, word [ebp - 0x22]
+mov ecx, 0xfff
+mov edx, 0x42d0
+cmp ax, 0xfff
+cmovbe ecx, eax
+mov eax, ebx
+and ecx, 0xfff
+or ecx, 0x8000000
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa82c5: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffa8304 ; jne 0xfffa8304
+mov ecx, esi
+mov edx, 0x46d4
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ax, word [ebp - 0x22]
+mov ecx, 0xfff
+mov edx, 0x46d0
+cmp ax, 0xfff
+cmovbe ecx, eax
+mov eax, ebx
+and ecx, 0xfff
+or ecx, 0x8000000
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8304: ; not directly referenced
+inc edi
+cmp edi, 8
+jne loc_fffa81f4 ; jne 0xfffa81f4
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffa8325 ; jne 0xfffa8325
+xor ecx, ecx
+mov edx, 0x42d4
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8325: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffa8343 ; jne 0xfffa8343
+add esp, 0x2c
+mov eax, ebx
+pop ebx
+xor ecx, ecx
+pop esi
+mov edx, 0x46d4
+pop edi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+loc_fffa8343: ; not directly referenced
+add esp, 0x2c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa834b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [eax + 0x2443]
+cmp edx, 0x4a
+ja short loc_fffa836a ; ja 0xfffa836a
+lea ebx, [edx + 1]
+xor esi, esi
+shr ebx, 1
+jmp short loc_fffa83ab ; jmp 0xfffa83ab
+
+loc_fffa836a: ; not directly referenced
+mov edi, dword [eax + 0x18d1]
+sub esp, 0xc
+mov dword [ebp - 0x2c], edx
+add edi, 0xf0
+push edi
+call dword [ebx + 0x20] ; ucall
+mov edx, dword [ebp - 0x2c]
+add esp, 0x10
+add edx, eax
+mov esi, eax
+mov dword [ebp - 0x1c], edx
+
+loc_fffa838d: ; not directly referenced
+sub esp, 0xc
+push edi
+call dword [ebx + 0x20] ; ucall
+mov edx, dword [ebp - 0x1c]
+add esp, 0x10
+cmp edx, esi
+ja short loc_fffa83a2 ; ja 0xfffa83a2
+cmp eax, esi
+jae short loc_fffa838d ; jae 0xfffa838d
+
+loc_fffa83a2: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+cmp eax, edx
+jae short loc_fffa83c1 ; jae 0xfffa83c1
+jmp short loc_fffa838d ; jmp 0xfffa838d
+
+loc_fffa83ab: ; not directly referenced
+cmp esi, ebx
+je short loc_fffa83c1 ; je 0xfffa83c1
+mov edx, 0x4ce0
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+inc esi
+mov dword [ebp - 0x1c], eax
+jmp short loc_fffa83ab ; jmp 0xfffa83ab
+
+loc_fffa83c1: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa83c9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0x2c
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x20], edx
+mov dword [ebp - 0x30], eax
+mov byte [ebp - 0x31], al
+mov eax, dword [edi + 0x5edc]
+mov dword [ebp - 0x1c], eax
+mov ebx, dword [eax + 0xc]
+mov esi, dword [eax + 0x10]
+cmp dl, 8
+ja loc_fffa850b ; ja 0xfffa850b
+jmp dword [edx*4 + ref_fffd3308] ; ujmp: jmp dword [edx*4 - 0x2ccf8]
+
+loc_fffa83ff: ; not directly referenced
+and ecx, 0x1f
+and ebx, 0xfff07bff
+shl ecx, 0xf
+jmp short loc_fffa8416 ; jmp 0xfffa8416
+
+loc_fffa840d: ; not directly referenced
+and ecx, 0xf
+and bh, 0x87
+shl ecx, 0xb
+
+loc_fffa8416: ; not directly referenced
+or ebx, ecx
+jmp near loc_fffa850b ; jmp 0xfffa850b
+
+loc_fffa841d: ; not directly referenced
+and ecx, 0xf
+and ebx, 0xf00fffff
+mov eax, ecx
+shl eax, 0x14
+shl ecx, 0x18
+or ebx, eax
+jmp short loc_fffa8416 ; jmp 0xfffa8416
+
+loc_fffa8432: ; not directly referenced
+shl ecx, 0x1c
+and ebx, 0xfffffff
+jmp short loc_fffa8416 ; jmp 0xfffa8416
+
+loc_fffa843d: ; not directly referenced
+mov eax, ecx
+and esi, 0xffffffe0
+and eax, 0xf
+and ecx, 0x10
+jmp short loc_fffa8492 ; jmp 0xfffa8492
+
+loc_fffa844a: ; not directly referenced
+mov eax, ecx
+and esi, 0xfffffc1f
+and eax, 0xf
+mov edx, eax
+shl edx, 5
+shr ecx, 4
+mov dword [ebp - 0x24], edx
+and ecx, 1
+or esi, dword [ebp - 0x24]
+mov edx, ecx
+shl edx, 9
+shl eax, 0xa
+or esi, edx
+and esi, 0xffff83ff
+shl ecx, 0xe
+jmp short loc_fffa8492 ; jmp 0xfffa8492
+
+loc_fffa847b: ; not directly referenced
+mov eax, ecx
+and esi, 0xfff07fff
+and eax, 0xf
+shl ecx, 0xf
+shl eax, 0xf
+and ecx, 0x80000
+
+loc_fffa8492: ; not directly referenced
+or esi, eax
+or esi, ecx
+jmp short loc_fffa850b ; jmp 0xfffa850b
+
+loc_fffa8498: ; not directly referenced
+and ecx, 1
+and ebx, 0xfffffff7
+lea eax, [ecx*8]
+or ebx, eax
+mov eax, dword [ebp - 0x1c]
+shl ecx, 0x1a
+mov dword [ebp - 0x28], 0
+mov dword [ebp - 0x38], ecx
+add eax, 0x1c
+mov dword [ebp - 0x2c], eax
+
+loc_fffa84bd: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov ecx, 0xff
+mov edx, dword [ebp - 0x28]
+mov eax, dword [eax]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x38]
+and dword [ebp - 0x24], 0xfbffffff
+or dword [ebp - 0x24], eax
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebp - 0x24]
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+cmp byte [ebp - 0x31], 0
+je short loc_fffa84fb ; je 0xfffa84fb
+mov eax, dword [ebp - 0x2c]
+mov ecx, dword [ebp - 0x24]
+mov dword [eax], ecx
+
+loc_fffa84fb: ; not directly referenced
+inc dword [ebp - 0x28]
+add dword [ebp - 0x2c], 0xcc
+cmp dword [ebp - 0x28], 2
+jne short loc_fffa84bd ; jne 0xfffa84bd
+
+loc_fffa850b: ; not directly referenced
+mov ecx, ebx
+mov edx, 0x3a14
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x3a18
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x30], 0
+je short loc_fffa8536 ; je 0xfffa8536
+mov eax, dword [ebp - 0x1c]
+mov dword [eax + 0xc], ebx
+mov dword [eax + 0x10], esi
+
+loc_fffa8536: ; not directly referenced
+mov ecx, 0x115
+mov edx, 0x5f08
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x78
+mov eax, edi
+call fcn_fffa834b ; call 0xfffa834b
+cmp byte [ebp - 0x20], 0
+jne loc_fffa8620 ; jne 0xfffa8620
+mov edx, 0x3a04
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+and eax, 0x3f
+lea edx, [eax - 0x10]
+cmp dl, 0x20
+jbe loc_fffa8636 ; jbe 0xfffa8636
+mov edx, ebx
+and ebx, 0xfffffff7
+or edx, 8
+cmp al, 0xf
+mov eax, dword [ebp - 0x1c]
+cmovbe ebx, edx
+mov dword [ebp - 0x20], 0
+lea esi, [eax + 0x1c]
+mov eax, ebx
+shr eax, 3
+and eax, 1
+mov byte [ebp - 0x24], al
+shl eax, 2
+mov byte [ebp - 0x28], al
+
+loc_fffa85a3: ; not directly referenced
+mov al, byte [esi + 3]
+mov ecx, 0xff
+add esi, 0xcc
+mov edx, dword [ebp - 0x20]
+and eax, 0xfffffffb
+or eax, dword [ebp - 0x28]
+mov byte [esi - 0xc9], al
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [esi - 0xcc]
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+inc dword [ebp - 0x20]
+cmp dword [ebp - 0x20], 2
+jne short loc_fffa85a3 ; jne 0xfffa85a3
+mov ecx, ebx
+mov eax, edi
+mov edx, 0x3a14
+call fcn_fffae58c ; call 0xfffae58c
+mov esi, dword [ebp - 0x1c]
+mov ecx, 0x115
+mov dl, byte [ebp - 0x24]
+mov al, byte [esi + 0xc]
+shl edx, 3
+and eax, 0xfffffff7
+or eax, edx
+mov edx, 0x5f08
+mov byte [esi + 0xc], al
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x78
+mov eax, edi
+call fcn_fffa834b ; call 0xfffa834b
+jmp short loc_fffa8636 ; jmp 0xfffa8636
+
+loc_fffa8620: ; not directly referenced
+mov al, byte [ebp - 0x20]
+dec eax
+cmp al, 7
+ja loc_fffa8702 ; ja 0xfffa8702
+movzx eax, al
+jmp dword [eax*4 + ref_fffd332c] ; ujmp: jmp dword [eax*4 - 0x2ccd4]
+
+loc_fffa8636: ; not directly referenced
+mov edx, 0x3a04
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov esi, eax
+and esi, 0x3f
+cmp dword [edi + 0x188b], 0
+jne short loc_fffa8658 ; jne 0xfffa8658
+shr eax, 9
+and eax, 0x3f
+jmp short loc_fffa865b ; jmp 0xfffa865b
+
+loc_fffa8658: ; not directly referenced
+shr eax, 0x1a
+
+loc_fffa865b: ; not directly referenced
+mov edx, esi
+and ebx, 0xfffffc0f
+sub eax, edx
+mov edx, 0x3a14
+and eax, 0x3f
+shl eax, 4
+or ebx, eax
+mov eax, edi
+or bh, 4
+mov ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x30], 0
+je short loc_fffa868a ; je 0xfffa868a
+mov eax, dword [ebp - 0x1c]
+mov dword [eax + 0xc], ebx
+
+loc_fffa868a: ; not directly referenced
+mov eax, esi
+movzx esi, al
+jmp short loc_fffa8704 ; jmp 0xfffa8704
+
+loc_fffa8691: ; not directly referenced
+mov edx, 0x3a00
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov dl, al
+and edx, 0x3f
+cmp dword [edi + 0x188b], 0
+jne short loc_fffa86b0 ; jne 0xfffa86b0
+shr eax, 0x1a
+jmp short loc_fffa86b3 ; jmp 0xfffa86b3
+
+loc_fffa86b0: ; not directly referenced
+shr eax, 0x14
+
+loc_fffa86b3: ; not directly referenced
+and eax, 0x1f
+movzx edx, dl
+cmp byte [ebp - 0x20], 1
+movzx esi, al
+cmove esi, edx
+jmp short loc_fffa8704 ; jmp 0xfffa8704
+
+loc_fffa86c5: ; not directly referenced
+mov edx, 0x3a08
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov esi, eax
+and esi, 0x3f
+shr eax, 0xc
+cmp byte [ebp - 0x20], 2
+jne short loc_fffa8704 ; jne 0xfffa8704
+jmp short loc_fffa86fb ; jmp 0xfffa86fb
+
+loc_fffa86e1: ; not directly referenced
+mov edx, 0x3a10
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov esi, eax
+and esi, 0x1f
+cmp byte [ebp - 0x20], 4
+jne short loc_fffa8704 ; jne 0xfffa8704
+shr eax, 0xb
+
+loc_fffa86fb: ; not directly referenced
+mov esi, eax
+and esi, 0x3f
+jmp short loc_fffa8704 ; jmp 0xfffa8704
+
+loc_fffa8702: ; not directly referenced
+xor esi, esi
+
+loc_fffa8704: ; not directly referenced
+add esp, 0x2c
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa870e: ; not directly referenced
+push ebp
+mov ecx, 0x10200
+mov ebp, esp
+push ebx
+mov ebx, eax
+push edx
+mov edx, 0x5060
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, ebx
+mov edx, 0xf
+pop ecx
+pop ebx
+pop ebp
+jmp near fcn_fffa834b ; jmp 0xfffa834b
+
+fcn_fffa8733: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov esi, eax
+mov eax, edx
+shl eax, 0xa
+add eax, 0x429c
+push ebx
+mov edx, eax
+sub esp, 0x1c
+mov dword [ebp - 0x1c], eax
+mov eax, esi
+mov dword [ebp - 0x20], ecx
+imul edi, edi, 0x13c3
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x20]
+mov ebx, eax
+imul eax, ecx, 0x128
+and ebx, 0xfffff8c0
+lea eax, [eax + edi + 0x48b0]
+lea edx, [esi + eax + 0x19]
+cmp byte [edx + 0xcf], 1
+jne short loc_fffa879d ; jne 0xfffa879d
+mov edi, ebx
+mov eax, 1
+shl eax, cl
+and bl, 0x3f
+shr edi, 6
+or edi, eax
+and edi, 3
+shl edi, 6
+or ebx, edi
+
+loc_fffa879d: ; not directly referenced
+and byte [ebp + 8], 0x3f
+or ebx, dword [ebp + 8]
+cmp byte [edx + 0xce], 1
+jne short loc_fffa87c6 ; jne 0xfffa87c6
+mov edx, ebx
+mov eax, 1
+shl eax, cl
+and bh, 0x3f
+shr edx, 0xe
+or edx, eax
+and edx, 3
+shl edx, 0xe
+or ebx, edx
+
+loc_fffa87c6: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+mov ecx, ebx
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x1c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa87da:
+mov eax, dword [0xff7d0270]
+push ebp
+mov ebp, esp
+lea edx, [eax + 4]
+mov eax, dword [ebp + 0xc]
+mov dword [eax], edx
+xor eax, eax
+pop ebp
+ret
+
+fcn_fffa87ee: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x18a7]
+mov esi, dword [ebx + 0x2443]
+mov edi, dword [ebx + 0x18c1]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebx + 0x188b]
+push 0xe4
+push 0
+push 0
+push 0
+mov dword [ebp - 0x30], eax
+call dword [esi + 0x4c] ; ucall
+add edi, eax
+mov dword [esp], edi
+add edi, 4
+call dword [esi + 0x20] ; ucall
+mov dword [esp], edi
+mov dword [ebp - 0x1c], eax
+call dword [esi + 0x20] ; ucall
+mov edx, dword [ebp - 0x1c]
+mov edi, dword [ebx + 0x18c1]
+mov dword [ebx + 0x10], edx
+mov dword [ebx + 0x14], eax
+push 0x54
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+mov edx, dword [ebp - 0x1c]
+add esp, 0x10
+movzx ecx, dh
+test cl, 8
+jne short loc_fffa8889 ; jne 0xfffa8889
+test al, 0x10
+je short loc_fffa8889 ; je 0xfffa8889
+mov eax, dword [ebx + 0x188f]
+mov dword [ebx + 0x246d], eax
+mov eax, dword [ebx + 0x1893]
+mov dword [ebx + 0x2471], eax
+jmp short loc_fffa889d ; jmp 0xfffa889d
+
+loc_fffa8889: ; not directly referenced
+mov dword [ebx + 0x246d], 0
+mov dword [ebx + 0x2471], 0
+
+loc_fffa889d: ; not directly referenced
+mov eax, edx
+shr eax, 0x13
+and eax, 3
+cmp eax, 1
+je short loc_fffa88c6 ; je 0xfffa88c6
+cmp eax, 2
+je short loc_fffa88d2 ; je 0xfffa88d2
+cmp eax, 1
+sbb eax, eax
+and eax, 0x3e00
+add eax, 0x200
+mov dword [ebx + 0x2484], eax
+jmp short loc_fffa88dc ; jmp 0xfffa88dc
+
+loc_fffa88c6: ; not directly referenced
+mov dword [ebx + 0x2484], 0x2000
+jmp short loc_fffa88dc ; jmp 0xfffa88dc
+
+loc_fffa88d2: ; not directly referenced
+mov dword [ebx + 0x2484], 0x800
+
+loc_fffa88dc: ; not directly referenced
+mov eax, ecx
+shl eax, 0x1b
+mov dword [ebp - 0x20], eax
+mov eax, ecx
+shl eax, 0x19
+sar dword [ebp - 0x20], 0x1f
+add dword [ebp - 0x20], 2
+mov dword [ebp - 0x1c], eax
+sar dword [ebp - 0x1c], 0x1f
+add dword [ebp - 0x1c], 2
+cmp byte [ebx + 0x241f], 1
+je short loc_fffa892b ; je 0xfffa892b
+mov eax, dword [ebx + 0x1887]
+cmp eax, 0x306d0
+sete cl
+cmp eax, 0x40650
+sete al
+or cl, al
+mov eax, 1
+cmove eax, dword [ebp - 0x1c]
+mov dword [ebp - 0x1c], eax
+jmp short loc_fffa8932 ; jmp 0xfffa8932
+
+loc_fffa892b: ; not directly referenced
+mov dword [ebp - 0x1c], 1
+
+loc_fffa8932: ; not directly referenced
+mov eax, edx
+shr eax, 0x10
+and eax, 2
+cmp al, 1
+sbb eax, eax
+mov dword [ebp - 0x24], eax
+mov eax, edx
+shr eax, 0x18
+add word [ebp - 0x24], 2
+and eax, 1
+mov dword [ebp - 0x34], eax
+je short loc_fffa8961 ; je 0xfffa8961
+mov byte [ebx + 0x3748], 1
+mov edi, 1
+jmp short loc_fffa8979 ; jmp 0xfffa8979
+
+loc_fffa8961: ; not directly referenced
+xor eax, eax
+and edx, 0x2000000
+jne short loc_fffa8977 ; jne 0xfffa8977
+xor eax, eax
+cmp byte [ebx + 0x3748], 0
+setne al
+
+loc_fffa8977: ; not directly referenced
+mov edi, eax
+
+loc_fffa8979: ; not directly referenced
+imul esi, dword [ebp - 0x2c], 0x2e
+lea eax, [ebx + 0x736b]
+lea ecx, [ebx + 0x4be5]
+mov dword [ebp - 0x28], eax
+
+loc_fffa898c: ; not directly referenced
+cmp dword [ecx - 0x148f], 2
+je short loc_fffa89d8 ; je 0xfffa89d8
+
+loc_fffa8995: ; not directly referenced
+add ecx, 0x13c3
+cmp ecx, dword [ebp - 0x28]
+jne short loc_fffa898c ; jne 0xfffa898c
+cmp byte [ebx + 0x3748], 1
+mov edi, 2
+mov dword [ebx + 0x3711], 0
+mov dword [ebp - 0x24], 0
+sete al
+xor esi, esi
+add eax, 8
+xor ecx, ecx
+mov byte [ebx + 0x2488], al
+lea eax, [ebx + 0x3812]
+jmp near loc_fffa8ad1 ; jmp 0xfffa8ad1
+
+loc_fffa89d8: ; not directly referenced
+cmp word [ebp - 0x24], 2
+je short loc_fffa8a05 ; je 0xfffa8a05
+cmp dword [ebx + 0x18a7], 0
+jne short loc_fffa8a24 ; jne 0xfffa8a24
+mov eax, dword [ebx + 0x36d7]
+cmp eax, 0x74b
+ja short loc_fffa8a05 ; ja 0xfffa8a05
+cmp dword [ecx - 0x13cf], 1
+jbe short loc_fffa8a24 ; jbe 0xfffa8a24
+cmp eax, 0x534
+jbe short loc_fffa8a24 ; jbe 0xfffa8a24
+
+loc_fffa8a05: ; not directly referenced
+cmp word [ecx + esi - 0x1487], 2
+mov eax, 2
+cmovae ax, word [ecx + esi - 0x1487]
+mov word [ecx + esi - 0x1487], ax
+
+loc_fffa8a24: ; not directly referenced
+lea eax, [ecx - 0x250]
+
+loc_fffa8a2a: ; not directly referenced
+cmp dword [eax - 0xcc], 2
+jne short loc_fffa8a81 ; jne 0xfffa8a81
+mov dx, word [ecx + esi - 0x1487]
+mov word [eax + esi - 0xc4], dx
+cmp edi, 1
+jne short loc_fffa8a70 ; jne 0xfffa8a70
+mov dl, byte [eax]
+test dl, dl
+jne short loc_fffa8a60 ; jne 0xfffa8a60
+cmp dword [ebp - 0x34], 1
+jne short loc_fffa8a73 ; jne 0xfffa8a73
+mov dword [eax - 0xcc], 1
+jmp short loc_fffa8a81 ; jmp 0xfffa8a81
+
+loc_fffa8a60: ; not directly referenced
+dec dl
+jne short loc_fffa8a73 ; jne 0xfffa8a73
+mov byte [eax], 1
+mov dword [eax + 0x11], 9
+jmp short loc_fffa8a81 ; jmp 0xfffa8a81
+
+loc_fffa8a70: ; not directly referenced
+mov byte [eax], 0
+
+loc_fffa8a73: ; not directly referenced
+mov dword [eax + 0x11], 8
+mov byte [ebx + 0x3748], 0
+
+loc_fffa8a81: ; not directly referenced
+add eax, 0x128
+cmp eax, ecx
+jne short loc_fffa8a2a ; jne 0xfffa8a2a
+jmp near loc_fffa8995 ; jmp 0xfffa8995
+
+loc_fffa8a8f: ; not directly referenced
+xor edx, edx
+cmp dword [eax + 0x10b7], 2
+jne short loc_fffa8aa0 ; jne 0xfffa8aa0
+mov edx, dword [eax + 0x1198]
+
+loc_fffa8aa0: ; not directly referenced
+cmp dword [eax + 0x11df], 2
+jne short loc_fffa8aaf ; jne 0xfffa8aaf
+add edx, dword [eax + 0x12c0]
+
+loc_fffa8aaf: ; not directly referenced
+mov dword [eax], edx
+cmp edx, dword [ebp - 0x24]
+jbe short loc_fffa8adc ; jbe 0xfffa8adc
+mov edi, dword [eax + 4]
+mov ecx, esi
+mov dword [ebp - 0x24], edx
+
+loc_fffa8abe: ; not directly referenced
+mov edx, dword [eax]
+inc esi
+add eax, 0x13c3
+add dword [ebx + 0x3711], edx
+cmp esi, 2
+je short loc_fffa8af9 ; je 0xfffa8af9
+
+loc_fffa8ad1: ; not directly referenced
+cmp dword [eax - 0xbc], 2
+jne short loc_fffa8abe ; jne 0xfffa8abe
+jmp short loc_fffa8a8f ; jmp 0xfffa8a8f
+
+loc_fffa8adc: ; not directly referenced
+sete byte [ebp - 0x28]
+cmp dword [ebp - 0x1c], 1
+sete dl
+test byte [ebp - 0x28], dl
+je short loc_fffa8abe ; je 0xfffa8abe
+mov edx, dword [eax + 4]
+cmp edx, edi
+jae short loc_fffa8abe ; jae 0xfffa8abe
+mov edi, edx
+mov ecx, esi
+jmp short loc_fffa8abe ; jmp 0xfffa8abe
+
+loc_fffa8af9: ; not directly referenced
+cmp dword [ebp - 0x20], 1
+je short loc_fffa8b0b ; je 0xfffa8b0b
+
+loc_fffa8aff: ; not directly referenced
+cmp dword [ebp - 0x1c], 1
+jne loc_fffa8b9b ; jne 0xfffa8b9b
+jmp short loc_fffa8b83 ; jmp 0xfffa8b83
+
+loc_fffa8b0b: ; not directly referenced
+lea eax, [ebx + 0x3756]
+xor edx, edx
+
+loc_fffa8b13: ; not directly referenced
+mov esi, dword [eax]
+cmp edx, ecx
+je short loc_fffa8b73 ; je 0xfffa8b73
+cmp esi, 2
+jne short loc_fffa8b73 ; jne 0xfffa8b73
+cmp dword [eax + 0x1173], 2
+mov dword [eax], 1
+mov byte [eax + 0xc4], 0
+jne short loc_fffa8b4f ; jne 0xfffa8b4f
+mov dword [eax + 0x1173], 1
+mov byte [eax + 0x1260], 0
+mov dword [eax + 0x1254], 0
+
+loc_fffa8b4f: ; not directly referenced
+cmp dword [eax + 0x129b], 2
+jne short loc_fffa8b73 ; jne 0xfffa8b73
+mov dword [eax + 0x129b], 1
+mov byte [eax + 0x1388], 0
+mov dword [eax + 0x137c], 0
+
+loc_fffa8b73: ; not directly referenced
+inc edx
+add eax, 0x13c3
+cmp edx, 2
+jne short loc_fffa8b13 ; jne 0xfffa8b13
+jmp near loc_fffa8aff ; jmp 0xfffa8aff
+
+loc_fffa8b83: ; not directly referenced
+xor eax, eax
+
+loc_fffa8b85: ; not directly referenced
+cmp dword [ebx + eax + 0x3756], 2
+je short loc_fffa8ba9 ; je 0xfffa8ba9
+
+loc_fffa8b8f: ; not directly referenced
+add eax, 0x13c3
+cmp eax, 0x2786
+jne short loc_fffa8b85 ; jne 0xfffa8b85
+
+loc_fffa8b9b: ; not directly referenced
+cmp byte [ebx + 0x190d], 0
+jne short loc_fffa8bde ; jne 0xfffa8bde
+jmp near loc_fffa8c91 ; jmp 0xfffa8c91
+
+loc_fffa8ba9: ; not directly referenced
+mov edx, dword [ebx + eax + 0x48c9]
+xor ecx, ecx
+cmp edx, 2
+jne short loc_fffa8bbe ; jne 0xfffa8bbe
+mov ecx, dword [ebx + eax + 0x49aa]
+
+loc_fffa8bbe: ; not directly referenced
+cmp dword [ebx + eax + 0x49f1], 2
+jne short loc_fffa8b8f ; jne 0xfffa8b8f
+cmp dword [ebx + eax + 0x4ad2], ecx
+ja short loc_fffa8c13 ; ja 0xfffa8c13
+mov dword [ebx + eax + 0x49f1], 1
+jmp short loc_fffa8b8f ; jmp 0xfffa8b8f
+
+loc_fffa8bde: ; not directly referenced
+mov eax, dword [ebx + 0x190e]
+mov dword [ebx + 0x36cb], eax
+test eax, eax
+jne short loc_fffa8c2c ; jne 0xfffa8c2c
+cmp dword [ebp - 0x30], 0
+jne short loc_fffa8bfe ; jne 0xfffa8bfe
+mov dword [ebx + 0x36cb], 1
+
+loc_fffa8bfe: ; not directly referenced
+cmp byte [ebx + 0x36ca], 0
+jne short loc_fffa8c2c ; jne 0xfffa8c2c
+mov dword [ebx + 0x36cb], 1
+jmp short loc_fffa8c2c ; jmp 0xfffa8c2c
+
+loc_fffa8c13: ; not directly referenced
+cmp edx, 2
+jne loc_fffa8b8f ; jne 0xfffa8b8f
+mov dword [ebx + eax + 0x48c9], 1
+jmp near loc_fffa8b8f ; jmp 0xfffa8b8f
+
+loc_fffa8c2c: ; not directly referenced
+cmp dword [ebx + 0x36cb], 1
+jne short loc_fffa8c91 ; jne 0xfffa8c91
+cmp dword [ebx + 0x374e], 2
+mov byte [ebx + 0x247f], 1
+jne short loc_fffa8c91 ; jne 0xfffa8c91
+lea eax, [ebx + 0x3756]
+lea edx, [ebx + 0x5edc]
+
+loc_fffa8c51: ; not directly referenced
+cmp dword [eax], 2
+jne short loc_fffa8c88 ; jne 0xfffa8c88
+cmp dword [eax + 0x1173], 2
+jne short loc_fffa8c6f ; jne 0xfffa8c6f
+cmp byte [eax + 0x1243], 0
+jne short loc_fffa8c6f ; jne 0xfffa8c6f
+mov byte [ebx + 0x247f], 0
+
+loc_fffa8c6f: ; not directly referenced
+cmp dword [eax + 0x129b], 2
+jne short loc_fffa8c88 ; jne 0xfffa8c88
+cmp byte [eax + 0x136b], 0
+jne short loc_fffa8c88 ; jne 0xfffa8c88
+mov byte [ebx + 0x247f], 0
+
+loc_fffa8c88: ; not directly referenced
+add eax, 0x13c3
+cmp eax, edx
+jne short loc_fffa8c51 ; jne 0xfffa8c51
+
+loc_fffa8c91: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa8c9b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x2480]
+cmp byte [ebx + 0x192b], 0
+mov dword [ebp - 0x1c], eax
+je short loc_fffa8ceb ; je 0xfffa8ceb
+movzx ecx, byte [ebx + 0x192c]
+mov edx, 0x5884
+mov eax, ebx
+and ecx, 7
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x192e]
+xor ecx, ecx
+mov cl, byte [ebx + 0x192d]
+mov edx, 0x5888
+mov ch, al
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8ceb: ; not directly referenced
+movzx ecx, byte [ebx + 0x1935]
+movzx edx, byte [ebx + 0x1936]
+movzx eax, byte [ebx + 0x1937]
+movzx esi, byte [ebx + 0x192f]
+and ecx, 3
+and edx, 0x1f
+shl edx, 0x11
+and eax, 1
+shl ecx, 0x16
+or ecx, edx
+movzx edx, word [ebx + 0x1938]
+shl eax, 0xf
+or ecx, eax
+movzx eax, byte [ebx + 0x1930]
+shl esi, 0x1f
+and edx, 0x7fff
+or ecx, edx
+movzx edx, byte [ebx + 0x1931]
+and eax, 3
+shl eax, 0x16
+or esi, eax
+movzx eax, byte [ebx + 0x1932]
+and edx, 0x1f
+shl edx, 0x11
+or esi, edx
+movzx edx, word [ebx + 0x1933]
+and eax, 1
+shl eax, 0xf
+or esi, eax
+mov eax, ebx
+and edx, 0x7fff
+or esi, edx
+mov edx, 0x58e0
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x58e4
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x193b]
+xor ecx, ecx
+mov edx, 0x5890
+mov ch, al
+mov cl, byte [ebx + 0x193a]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x193d]
+xor ecx, ecx
+mov edx, 0x5894
+mov ch, al
+mov cl, byte [ebx + 0x193c]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x193f]
+xor ecx, ecx
+mov edx, 0x5898
+mov ch, al
+mov cl, byte [ebx + 0x193e]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x1941]
+xor ecx, ecx
+mov edx, 0x589c
+mov ch, al
+mov cl, byte [ebx + 0x1940]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x1943]
+xor ecx, ecx
+mov edx, 0x58d0
+mov ch, al
+mov cl, byte [ebx + 0x1942]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x1945]
+xor ecx, ecx
+mov edx, 0x58d4
+xor esi, esi
+mov ch, al
+mov cl, byte [ebx + 0x1944]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x1947]
+xor ecx, ecx
+mov edx, 0x58d8
+mov ch, al
+mov cl, byte [ebx + 0x1946]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + 0x1949]
+xor ecx, ecx
+mov edx, 0x58dc
+mov ch, al
+mov cl, byte [ebx + 0x1948]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8e67: ; not directly referenced
+imul eax, esi, 0x13c3
+cmp dword [ebx + eax + 0x3756], 2
+jne loc_fffa8f7a ; jne 0xfffa8f7a
+cmp byte [ebx + 0x192b], 0
+je loc_fffa8f3a ; je 0xfffa8f3a
+movzx ecx, byte [ebx + esi*2 + 0x194b]
+mov edi, esi
+movzx eax, byte [ebx + esi*2 + 0x194a]
+shl edi, 0xa
+lea edx, [edi + 0x42ec]
+and ecx, 0x3f
+and eax, 0x3f
+shl ecx, 8
+or ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+movzx ecx, byte [ebx + esi*2 + 0x194f]
+lea edx, [edi + 0x42f0]
+movzx eax, byte [ebx + esi*2 + 0x194e]
+and ecx, 0x3f
+and eax, 0x3f
+shl ecx, 8
+or ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + esi*2 + 0x1953]
+xor ecx, ecx
+lea edx, [edi + 0x42f4]
+mov ch, al
+mov cl, byte [ebx + esi*2 + 0x1952]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + esi*2 + 0x1957]
+xor ecx, ecx
+lea edx, [edi + 0x42f8]
+mov ch, al
+mov cl, byte [ebx + esi*2 + 0x1956]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebx + esi*2 + 0x195b]
+xor ecx, ecx
+lea edx, [edi + 0x42fc]
+mov ch, al
+mov cl, byte [ebx + esi*2 + 0x195a]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8f3a: ; not directly referenced
+cmp dword [ebp - 0x1c], 3
+jne short loc_fffa8f55 ; jne 0xfffa8f55
+movzx ecx, byte [ebx + 0x1963]
+and ecx, 1
+shl ecx, 8
+mov cl, byte [ebx + 0x1964]
+jmp short loc_fffa8f68 ; jmp 0xfffa8f68
+
+loc_fffa8f55: ; not directly referenced
+movzx ecx, byte [ebx + 0x1961]
+and ecx, 1
+shl ecx, 8
+mov cl, byte [ebx + 0x1962]
+
+loc_fffa8f68: ; not directly referenced
+mov edx, esi
+mov eax, ebx
+shl edx, 0xa
+add edx, 0x4328
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffa8f7a: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffa8e67 ; jne 0xfffa8e67
+movzx ecx, byte [ebx + 0x195e]
+mov edx, 0x5060
+mov eax, ebx
+and ecx, 1
+shl ecx, 0x10
+mov cx, word [ebx + 0x195f]
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x5880
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+movzx ecx, byte [ebx + 0x1925]
+movzx edx, byte [ebx + 0x1924]
+and ecx, 1
+and edx, 1
+and eax, 0xfffffffc
+add edx, edx
+or eax, ecx
+movzx ecx, byte [ebx + 0x1928]
+or eax, edx
+movzx edx, byte [ebx + 0x1923]
+and eax, 0xffffffe3
+and ecx, 3
+and edx, 1
+shl edx, 4
+shl ecx, 2
+or eax, edx
+or eax, ecx
+cmp dword [ebp - 0x1c], 3
+jne short loc_fffa902d ; jne 0xfffa902d
+movzx edx, byte [ebx + 0x1927]
+and eax, 0xffffffbf
+and edx, 1
+shl edx, 6
+or eax, edx
+cmp byte [ebx + 0x190d], 0
+mov ecx, eax
+je short loc_fffa901a ; je 0xfffa901a
+cmp dword [ebx + 0x36cb], 1
+je short loc_fffa9041 ; je 0xfffa9041
+
+loc_fffa901a: ; not directly referenced
+xor edx, edx
+cmp byte [ebx + 0x1929], 0
+sete dl
+and al, 0x7f
+shl edx, 7
+jmp short loc_fffa903d ; jmp 0xfffa903d
+
+loc_fffa902d: ; not directly referenced
+movzx edx, byte [ebx + 0x1926]
+and eax, 0xffffffbf
+and edx, 1
+shl edx, 6
+
+loc_fffa903d: ; not directly referenced
+mov ecx, eax
+or ecx, edx
+
+loc_fffa9041: ; not directly referenced
+add esp, 0x1c
+mov eax, ebx
+pop ebx
+mov edx, 0x5880
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+fcn_fffa9054: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+movzx esi, dl
+push ebx
+sub esp, 0x2c
+mov bl, byte [ebp + 0xc]
+mov dword [ebp - 0x20], eax
+imul eax, esi, 0x13c3
+mov dword [ebp - 0x24], esi
+mov byte [ebp - 0x19], 0
+mov byte [ebp - 0x1a], bl
+mov bl, byte [ebp + 0x10]
+lea eax, [edi + eax + 0x3756]
+mov dword [ebp - 0x28], eax
+lea eax, [ecx + ecx*8]
+mov dword [ebp - 0x2c], ecx
+mov byte [ebp - 0x31], bl
+mov dword [ebp - 0x30], eax
+
+loc_fffa9091: ; not directly referenced
+mov edi, dword [ebp - 0x20]
+mov al, byte [ebp - 0x19]
+cmp al, byte [edi + 0x2488]
+jae loc_fffa9170 ; jae 0xfffa9170
+mov al, byte [ebp - 0x19]
+mov esi, dword [ebp + 8]
+movzx edi, al
+bt esi, eax
+jae loc_fffa9168 ; jae 0xfffa9168
+mov eax, dword [ebp - 0x30]
+lea ebx, [edi + eax]
+movsx ax, byte [ebp - 0x1a]
+add ebx, ebx
+add ebx, dword [ebp - 0x28]
+mov word [ebp - 0x1c], ax
+add ax, word [ebx + 0x1b1]
+js short loc_fffa90e0 ; js 0xfffa90e0
+mov esi, 0x1ff
+cmp ax, 0x1ff
+cmovbe esi, eax
+jmp short loc_fffa90e2 ; jmp 0xfffa90e2
+
+loc_fffa90e0: ; not directly referenced
+xor esi, esi
+
+loc_fffa90e2: ; not directly referenced
+push eax
+movzx eax, si
+mov ecx, dword [ebp - 0x2c]
+push eax
+mov edx, dword [ebp - 0x24]
+mov eax, dword [ebp - 0x20]
+push 0
+push edi
+call fcn_fffa7499 ; call 0xfffa7499
+mov eax, dword [ebp - 0x28]
+add esp, 0xc
+add eax, dword [ebp - 0x30]
+mov ecx, dword [ebp - 0x1c]
+movzx eax, byte [edi + eax + 0x24d]
+mov edx, ecx
+add dx, word [ebx + 0x121]
+add cx, word [ebx + 0x169]
+and eax, 0x3f
+shl eax, 0x14
+and edx, 0x1ff
+shl edx, 9
+and ecx, 0x1ff
+or eax, edx
+mov edx, dword [ebp - 0x24]
+or eax, ecx
+mov ecx, dword [ebp - 0x2c]
+push eax
+mov eax, dword [ebp - 0x20]
+push 3
+push edi
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0x10
+cmp byte [ebp - 0x31], 0
+je short loc_fffa9168 ; je 0xfffa9168
+mov eax, dword [ebp - 0x1c]
+add word [ebx + 0x121], ax
+add word [ebx + 0x169], ax
+mov word [ebx + 0x1b1], si
+
+loc_fffa9168: ; not directly referenced
+inc byte [ebp - 0x19]
+jmp near loc_fffa9091 ; jmp 0xfffa9091
+
+loc_fffa9170: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa9178: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov eax, dword [ebp + 8]
+mov ebx, dword [ebp + 0x18]
+mov edx, dword [ebp + 0x10]
+mov edi, eax
+mov dword [ebp - 0x1c], eax
+mov eax, dword [ebp + 0x1c]
+mov byte [ebp - 0x26], bl
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp + 0x20]
+mov esi, eax
+mov dword [ebp - 0x30], eax
+mov al, byte [ebp + 0x14]
+mov byte [ebp - 0x34], al
+mov eax, esi
+mov byte [ebp - 0x25], al
+movzx eax, byte [ebp + 0xc]
+mov dword [ebp - 0x20], eax
+imul eax, eax, 0x13c3
+cmp dword [edi + 0x2480], 3
+sete cl
+lea esi, [edi + eax + 0x3756]
+mov dword [ebp - 0x2c], ecx
+test dl, dl
+je short loc_fffa9227 ; je 0xfffa9227
+mov ecx, dword [ebp - 0x24]
+mov edi, 0x7f
+cmp ecx, 0x7f
+cmovg ecx, edi
+xor eax, eax
+test ecx, ecx
+cmovns eax, ecx
+cmp dl, 2
+je loc_fffa93cd ; je 0xfffa93cd
+ja short loc_fffa91ff ; ja 0xfffa91ff
+dec dl
+je loc_fffa938c ; je 0xfffa938c
+jmp near loc_fffa95bb ; jmp 0xfffa95bb
+
+loc_fffa91ff: ; not directly referenced
+cmp dl, 3
+je loc_fffa946a ; je 0xfffa946a
+cmp dl, 4
+jne loc_fffa95bb ; jne 0xfffa95bb
+cmp eax, 0x7f
+cmovg eax, edi
+movzx edi, byte [ebp - 0x34]
+xor edx, edx
+xor ebx, ebx
+mov dword [ebp - 0x24], edi
+jmp near loc_fffa94ce ; jmp 0xfffa94ce
+
+loc_fffa9227: ; not directly referenced
+cmp dword [ebp - 0x2c], 0
+je loc_fffa92fa ; je 0xfffa92fa
+mov ecx, dword [ebp - 0x1c]
+xor ebx, ebx
+xor edi, edi
+imul edx, dword [ebp - 0x20], 0x54a
+add eax, ecx
+add edx, ecx
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x3c], eax
+
+loc_fffa9249: ; not directly referenced
+movzx edx, byte [ebp - 0x26]
+imul eax, ebx, 7
+bt edx, ebx
+mov dword [ebp - 0x2c], eax
+movzx eax, byte [esi + ebx + 0x241]
+jae loc_fffa92e7 ; jae 0xfffa92e7
+add eax, dword [ebp - 0x24]
+mov ecx, 0x80
+cdq
+idiv ecx
+test dl, dl
+lea eax, [edx - 0x80]
+cmovns eax, edx
+cmp byte [ebp - 0x25], 0
+je short loc_fffa9284 ; je 0xfffa9284
+mov byte [esi + ebx + 0x241], al
+
+loc_fffa9284: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+movsx eax, al
+mov dword [ebp - 0x2c], 0
+shl eax, cl
+add edi, eax
+mov eax, dword [ebp - 0x34]
+movzx eax, byte [eax + ebx + 0x1ea9]
+mov dword [ebp - 0x30], eax
+movzx eax, byte [ebp - 0x25]
+mov dword [ebp - 0x38], eax
+
+loc_fffa92aa: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp - 0x3c]
+test byte [ecx + 0x381a], al
+je short loc_fffa92dc ; je 0xfffa92dc
+movsx eax, byte [ebp - 0x24]
+push edx
+mov ecx, dword [ebp - 0x2c]
+push dword [ebp - 0x38]
+mov edx, dword [ebp - 0x20]
+push eax
+mov eax, dword [ebp - 0x1c]
+push dword [ebp - 0x30]
+call fcn_fffa9054 ; call 0xfffa9054
+add esp, 0x10
+
+loc_fffa92dc: ; not directly referenced
+inc dword [ebp - 0x2c]
+cmp dword [ebp - 0x2c], 4
+jne short loc_fffa92aa ; jne 0xfffa92aa
+jmp short loc_fffa92ee ; jmp 0xfffa92ee
+
+loc_fffa92e7: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+shl eax, cl
+add edi, eax
+
+loc_fffa92ee: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffa9249 ; jne 0xfffa9249
+jmp short loc_fffa9379 ; jmp 0xfffa9379
+
+loc_fffa92fa: ; not directly referenced
+movzx eax, byte [ebp - 0x34]
+xor ebx, ebx
+xor edi, edi
+mov dword [ebp - 0x30], eax
+movzx eax, byte [ebp - 0x25]
+mov dword [ebp - 0x34], eax
+
+loc_fffa930c: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+imul eax, ebx, 7
+bt edx, ebx
+mov dword [ebp - 0x2c], eax
+movzx eax, byte [esi + ebx + 0x241]
+jae short loc_fffa936c ; jae 0xfffa936c
+add eax, dword [ebp - 0x24]
+mov ecx, 0x80
+cdq
+idiv ecx
+test dl, dl
+lea eax, [edx - 0x80]
+cmovns eax, edx
+cmp byte [ebp - 0x25], 0
+je short loc_fffa9342 ; je 0xfffa9342
+mov byte [esi + ebx + 0x241], al
+
+loc_fffa9342: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+movsx eax, al
+mov edx, dword [ebp - 0x20]
+shl eax, cl
+mov ecx, ebx
+add edi, eax
+push eax
+movsx eax, byte [ebp - 0x24]
+push dword [ebp - 0x34]
+push eax
+mov eax, dword [ebp - 0x1c]
+push 0x1ff
+call fcn_fffa9054 ; call 0xfffa9054
+add esp, 0x10
+jmp short loc_fffa9373 ; jmp 0xfffa9373
+
+loc_fffa936c: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+shl eax, cl
+add edi, eax
+
+loc_fffa9373: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffa930c ; jne 0xfffa930c
+
+loc_fffa9379: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+mov ecx, edi
+shl edx, 8
+add edx, 0x180c
+jmp near loc_fffa95ac ; jmp 0xfffa95ac
+
+loc_fffa938c: ; not directly referenced
+cmp eax, 0x7f
+mov edx, dword [ebp - 0x20]
+cmovle edi, eax
+mov eax, edi
+and eax, 0x7f
+mov ecx, eax
+shl ecx, 7
+or ecx, eax
+mov eax, dword [ebp - 0x1c]
+shl edx, 8
+add edx, 0x1408
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x30], 0
+je loc_fffa95bb ; je 0xfffa95bb
+mov dword [esi + 0x119], edi
+mov dword [esi + 0x11d], edi
+jmp near loc_fffa95bb ; jmp 0xfffa95bb
+
+loc_fffa93cd: ; not directly referenced
+cmp eax, 0x7f
+cmovle edi, eax
+cmp dword [ebp - 0x2c], 0
+je short loc_fffa940d ; je 0xfffa940d
+mov eax, edi
+test bl, 1
+jne short loc_fffa93e6 ; jne 0xfffa93e6
+mov al, byte [esi + 0x111]
+
+loc_fffa93e6: ; not directly referenced
+and eax, 0x7f
+and eax, 0x7f
+and bl, 2
+jne short loc_fffa93f8 ; jne 0xfffa93f8
+movzx edi, byte [esi + 0x115]
+
+loc_fffa93f8: ; not directly referenced
+and edi, 0x7f
+mov ebx, edi
+and ebx, 0x7f
+shl ebx, 7
+or ebx, eax
+cmp byte [ebp - 0x30], 0
+jne short loc_fffa9441 ; jne 0xfffa9441
+jmp short loc_fffa9457 ; jmp 0xfffa9457
+
+loc_fffa940d: ; not directly referenced
+mov eax, edi
+mov edx, dword [ebp - 0x20]
+and eax, 0x7f
+mov ebx, eax
+shl ebx, 7
+or ebx, eax
+mov eax, dword [ebp - 0x1c]
+shl edx, 8
+mov ecx, ebx
+add edx, 0x1208
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x30], 0
+je short loc_fffa9457 ; je 0xfffa9457
+mov dword [esi + 0x109], edi
+mov dword [esi + 0x10d], edi
+
+loc_fffa9441: ; not directly referenced
+mov eax, ebx
+and eax, 0x7f
+mov dword [esi + 0x111], eax
+mov eax, ebx
+shr eax, 7
+mov dword [esi + 0x115], eax
+
+loc_fffa9457: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+mov ecx, ebx
+shl edx, 8
+add edx, 0x1a08
+jmp near loc_fffa95ac ; jmp 0xfffa95ac
+
+loc_fffa946a: ; not directly referenced
+cmp eax, 0x7f
+mov edx, dword [ebp - 0x20]
+cmovle edi, eax
+mov eax, edi
+and eax, 0x7f
+mov ecx, eax
+shl ecx, 7
+or ecx, eax
+mov eax, dword [ebp - 0x1c]
+shl edx, 8
+add edx, 0x1208
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x30], 0
+je loc_fffa95bb ; je 0xfffa95bb
+mov dword [esi + 0x109], edi
+mov dword [esi + 0x10d], edi
+jmp near loc_fffa95bb ; jmp 0xfffa95bb
+
+loc_fffa94ab: ; not directly referenced
+imul ecx, edx, 7
+mov edi, eax
+shl edi, cl
+add ebx, edi
+cmp byte [ebp - 0x25], 0
+je short loc_fffa94c8 ; je 0xfffa94c8
+mov byte [esi + edx + 0x245], al
+mov byte [esi + edx + 0x249], al
+
+loc_fffa94c8: ; not directly referenced
+inc edx
+cmp edx, 4
+je short loc_fffa94e7 ; je 0xfffa94e7
+
+loc_fffa94ce: ; not directly referenced
+mov edi, dword [ebp - 0x24]
+bt edi, edx
+jb short loc_fffa94ab ; jb 0xfffa94ab
+movzx edi, byte [esi + edx + 0x245]
+imul ecx, edx, 7
+shl edi, cl
+add ebx, edi
+jmp short loc_fffa94c8 ; jmp 0xfffa94c8
+
+loc_fffa94e7: ; not directly referenced
+cmp dword [ebp - 0x2c], 0
+je short loc_fffa950e ; je 0xfffa950e
+mov eax, dword [ebp - 0x1c]
+cmp byte [eax + 0x240a], 0
+je short loc_fffa950e ; je 0xfffa950e
+movzx eax, byte [esi + 0x245]
+and ebx, 0xffe03fff
+and eax, 0x7f
+shl eax, 0xe
+or ebx, eax
+
+loc_fffa950e: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov ecx, ebx
+shl eax, 8
+mov dword [ebp - 0x24], eax
+lea edx, [eax + 0x1c18]
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x2c], 0
+je short loc_fffa959b ; je 0xfffa959b
+mov eax, dword [ebp - 0x1c]
+xor edi, edi
+mov ecx, dword [ebp - 0x20]
+mov dword [ebp - 0x20], 0
+movzx ebx, byte [eax + 0x240c]
+shl ecx, 2
+sar ebx, cl
+and ebx, 0xf
+
+loc_fffa954b: ; not directly referenced
+xor edx, edx
+
+loc_fffa954d: ; not directly referenced
+mov cl, dl
+mov eax, ebx
+shr eax, cl
+mov ecx, eax
+and ecx, 1
+cmp ecx, edi
+jne short loc_fffa956c ; jne 0xfffa956c
+movzx eax, byte [esi + edi + 0x249]
+imul ecx, edx, 7
+shl eax, cl
+add dword [ebp - 0x20], eax
+
+loc_fffa956c: ; not directly referenced
+inc edx
+cmp edx, 4
+jne short loc_fffa954d ; jne 0xfffa954d
+inc edi
+cmp edi, 4
+jne short loc_fffa954b ; jne 0xfffa954b
+mov eax, dword [ebp - 0x20]
+mov ecx, eax
+mov edx, eax
+shr ecx, 0xe
+and eax, 0xffe03fff
+shr edx, 0x15
+and ecx, 0x7f
+and edx, 0x7f
+mov ebx, eax
+add edx, ecx
+shr edx, 1
+shl edx, 0xe
+or ebx, edx
+
+loc_fffa959b: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+and ebx, 0xf01fffff
+mov ecx, ebx
+add edx, 0x1218
+
+loc_fffa95ac: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+loc_fffa95bb: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa95c3: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x5edc]
+mov edi, dword [ebx + 0x2443]
+mov esi, dword [ebx + 0x36e3]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebx + 0x188b]
+mov dword [ebp - 0x20], esi
+cmp eax, 1
+mov dword [ebp - 0x1c], eax
+mov eax, dword [ebx + 0x18c1]
+sbb esi, esi
+push 0xe4
+and esi, 0xfffffdeb
+push 0
+add esi, 0xc80
+push 0
+push 0
+mov dword [ebp - 0x24], eax
+call dword [edi + 0x4c] ; ucall
+mov edx, dword [ebp - 0x24]
+lea ecx, [eax + edx]
+mov dword [esp], ecx
+mov dword [ebp - 0x28], ecx
+call dword [edi + 0x20] ; ucall
+mov ecx, dword [ebp - 0x28]
+add ecx, 4
+mov dword [esp], ecx
+mov dword [ebp - 0x24], eax
+call dword [edi + 0x20] ; ucall
+add esp, 0x10
+test byte [ebp - 0x24], 8
+setne cl
+movzx edi, cl
+mov dword [ebp - 0x24], edi
+mov edi, dword [ebx + 0x1872]
+mov edx, eax
+shr eax, 4
+mov byte [ebp - 0x2d], cl
+mov cl, al
+mov eax, dword [ebx + 0x1877]
+shr edx, 0x15
+and ecx, 7
+dec edi
+cmp edi, 0x7ffffffd
+cmovbe esi, dword [ebx + 0x1872]
+mov dword [ebx + 0x36e3], eax
+mov dword [ebx + 0x36d3], esi
+and edx, 7
+je short loc_fffa968c ; je 0xfffa968c
+cmp eax, 2
+jne short loc_fffa9696 ; jne 0xfffa9696
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffa9696 ; jne 0xfffa9696
+
+loc_fffa968c: ; not directly referenced
+mov dword [ebx + 0x36e3], 0
+
+loc_fffa9696: ; not directly referenced
+cmp dword [ebp - 0x24], 0
+mov edi, dword [ebx + 0x36e3]
+je short loc_fffa96bb ; je 0xfffa96bb
+test edx, edx
+je short loc_fffa96f3 ; je 0xfffa96f3
+mov byte [ebx + 0x247e], 1
+mov edx, 7
+mov dword [ebp - 0x28], 0
+jmp short loc_fffa96c7 ; jmp 0xfffa96c7
+
+loc_fffa96bb: ; not directly referenced
+movzx eax, cl
+xor esi, esi
+mov dword [ebp - 0x28], eax
+test edx, edx
+je short loc_fffa96e3 ; je 0xfffa96e3
+
+loc_fffa96c7: ; not directly referenced
+sub esp, 0xc
+add edx, 6
+push 0x5f5e100
+mov ecx, 1
+mov eax, ebx
+call fcn_fffaefe1 ; call 0xfffaefe1
+add esp, 0x10
+mov esi, eax
+
+loc_fffa96e3: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+test eax, eax
+je short loc_fffa96f5 ; je 0xfffa96f5
+mov edx, 0xb
+sub edx, eax
+jmp short loc_fffa96fa ; jmp 0xfffa96fa
+
+loc_fffa96f3: ; not directly referenced
+xor esi, esi
+
+loc_fffa96f5: ; not directly referenced
+mov edx, 0xa
+
+loc_fffa96fa: ; not directly referenced
+sub esp, 0xc
+xor ecx, ecx
+push 0x5f5e100
+mov eax, ebx
+call fcn_fffaefe1 ; call 0xfffaefe1
+mov ecx, dword [ebp - 0x2c]
+add esp, 0x10
+mov dl, byte [ebp - 0x2d]
+mov dword [ecx + 0x1c6], esi
+mov byte [ecx + 0x1ca], dl
+cmp dword [ebx + 0x18a7], 0
+je short loc_fffa9745 ; je 0xfffa9745
+cmp dword [ebp - 0x24], 0
+je short loc_fffa9737 ; je 0xfffa9737
+cmp edi, 1
+cmove eax, esi
+jmp short loc_fffa9747 ; jmp 0xfffa9747
+
+loc_fffa9737: ; not directly referenced
+xor edi, edi
+cmp esi, eax
+jbe short loc_fffa9747 ; jbe 0xfffa9747
+mov eax, esi
+mov di, 1
+jmp short loc_fffa9747 ; jmp 0xfffa9747
+
+loc_fffa9745: ; not directly referenced
+xor edi, edi
+
+loc_fffa9747: ; not directly referenced
+cmp eax, dword [ebx + 0x36d3]
+jae short loc_fffa976a ; jae 0xfffa976a
+cmp dword [ebx + 0x1877], 2
+mov dword [ebx + 0x36d3], eax
+je short loc_fffa9764 ; je 0xfffa9764
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffa976a ; jne 0xfffa976a
+
+loc_fffa9764: ; not directly referenced
+mov dword [ebx + 0x36e3], edi
+
+loc_fffa976a: ; not directly referenced
+cmp dword [ebp - 0x20], 1
+jne short loc_fffa978e ; jne 0xfffa978e
+cmp dword [ebx + 0x1877], 2
+jne short loc_fffa978e ; jne 0xfffa978e
+cmp dword [ebx + 0x1887], 0x306d0
+jne short loc_fffa978e ; jne 0xfffa978e
+cmp dword [ebx + 0x1883], 4
+ja short loc_fffa9797 ; ja 0xfffa9797
+
+loc_fffa978e: ; not directly referenced
+cmp dword [ebx + 0x36e3], 2
+jne short loc_fffa97a0 ; jne 0xfffa97a0
+
+loc_fffa9797: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov dword [ebx + 0x36e3], eax
+
+loc_fffa97a0: ; not directly referenced
+mov ecx, dword [ebx + 0x36d3]
+mov edx, ref_fffd34b0 ; mov edx, 0xfffd34b0
+xor eax, eax
+
+loc_fffa97ad: ; not directly referenced
+add edx, 9
+cmp ecx, dword [edx - 5]
+jne short loc_fffa97c0 ; jne 0xfffa97c0
+lea eax, [eax + eax*8]
+mov eax, dword [eax + ref_fffd34b0] ; mov eax, dword [eax - 0x2cb50]
+jmp short loc_fffa97cb ; jmp 0xfffa97cb
+
+loc_fffa97c0: ; not directly referenced
+inc eax
+cmp eax, 0x15
+jne short loc_fffa97ad ; jne 0xfffa97ad
+mov eax, 0x2625a0
+
+loc_fffa97cb: ; not directly referenced
+mov dword [ebx + 0x36db], eax
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa97db: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x9c
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x88], 0
+mov dword [ebp - 0x94], 0
+mov dword [ebp - 0x90], 0
+mov byte [eax + 0x36ca], 8
+add eax, 0x1973
+mov dword [ebp - 0x9c], eax
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x7c], 0x17
+mov dword [ebp - 0x80], eax
+
+loc_fffa9827: ; not directly referenced
+mov eax, dword [ebp - 0x80]
+xor ebx, ebx
+add eax, 0x3756
+mov dword [ebp - 0x8c], eax
+mov eax, dword [ebp - 0x9c]
+mov dword [ebp - 0x84], eax
+mov dword [ebp - 0x98], eax
+mov eax, dword [ebp - 0x88]
+add eax, 0x48c9
+mov dword [ebp - 0xa0], eax
+
+loc_fffa985a: ; not directly referenced
+mov eax, dword [ebp - 0x98]
+cmp dword [eax], 1
+ja loc_fffa99f8 ; ja 0xfffa99f8
+mov eax, dword [ebp - 0x84]
+mov esi, ref_fffd33d4 ; mov esi, 0xfffd33d4
+mov ecx, 0xd
+lea edi, [ebp - 0x78]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [eax + 0x48]
+mov eax, dword [ebp - 0xa0]
+lea esi, [eax + ebx]
+mov eax, dword [ebp - 0x80]
+add esi, dword [ebp + 8]
+mov dword [eax + ebx + 0x48c9], 3
+xor eax, eax
+
+loc_fffa989d: ; not directly referenced
+inc eax
+cmp byte [edi + eax - 1], 0
+je short loc_fffa98ae ; je 0xfffa98ae
+xor edx, edx
+mov eax, 1
+jmp short loc_fffa98ba ; jmp 0xfffa98ba
+
+loc_fffa98ae: ; not directly referenced
+cmp eax, 0x200
+jne short loc_fffa989d ; jne 0xfffa989d
+jmp near loc_fffa99f8 ; jmp 0xfffa99f8
+
+loc_fffa98ba: ; not directly referenced
+cmp dl, 0xc
+setbe cl
+test cl, al
+je short loc_fffa98e6 ; je 0xfffa98e6
+push eax
+movzx eax, dl
+push esi
+push edi
+push dword [ebp + 8]
+mov dword [ebp - 0xa4], edx
+call dword [ebp + eax*4 - 0x78] ; ucall
+mov edx, dword [ebp - 0xa4]
+add esp, 0x10
+inc edx
+and eax, 1
+jmp short loc_fffa98ba ; jmp 0xfffa98ba
+
+loc_fffa98e6: ; not directly referenced
+test eax, eax
+mov eax, dword [ebp - 0x80]
+jne short loc_fffa98fd ; jne 0xfffa98fd
+mov dword [eax + ebx + 0x48c9], 1
+jmp near loc_fffa99f8 ; jmp 0xfffa99f8
+
+loc_fffa98fd: ; not directly referenced
+mov dword [eax + ebx + 0x48c9], 2
+mov eax, dword [ebp - 0x84]
+mov al, byte [eax + 0x4a]
+cmp al, 0xf1
+sete cl
+cmp al, 0xb
+sete dl
+or cl, dl
+je short loc_fffa9931 ; je 0xfffa9931
+mov eax, dword [ebp - 0x84]
+mov edx, 0xb
+add eax, 0xbd
+jmp short loc_fffa994b ; jmp 0xfffa994b
+
+loc_fffa9931: ; not directly referenced
+cmp al, 0xc
+jne short loc_fffa9947 ; jne 0xfffa9947
+mov eax, dword [ebp - 0x84]
+mov edx, 9
+add eax, 0x188
+jmp short loc_fffa994b ; jmp 0xfffa994b
+
+loc_fffa9947: ; not directly referenced
+xor edx, edx
+xor eax, eax
+
+loc_fffa994b: ; not directly referenced
+mov edi, dword [ebp - 0x88]
+lea ecx, [edi + ebx + 0x49b4]
+add ecx, dword [ebp + 8]
+call fcn_fffaf03f ; call 0xfffaf03f
+mov eax, dword [ebp - 0x84]
+cmp dword [eax], 1
+jne short loc_fffa9979 ; jne 0xfffa9979
+mov eax, dword [ebp - 0x80]
+mov dword [eax + ebx + 0x48c9], 1
+
+loc_fffa9979: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2480]
+test eax, eax
+jne short loc_fffa999e ; jne 0xfffa999e
+mov eax, dword [ebp - 0x8c]
+mov edi, dword [ebp + 8]
+mov eax, dword [eax + ebx + 0x1248]
+mov dword [edi + 0x2480], eax
+jmp short loc_fffa99b7 ; jmp 0xfffa99b7
+
+loc_fffa999e: ; not directly referenced
+mov esi, dword [ebp - 0x8c]
+cmp eax, dword [esi + ebx + 0x1248]
+mov eax, 0x1a
+cmove eax, dword [ebp - 0x7c]
+mov dword [ebp - 0x7c], eax
+
+loc_fffa99b7: ; not directly referenced
+cmp dword [ebp - 0x90], 0
+mov eax, dword [ebp - 0x8c]
+jne short loc_fffa99d5 ; jne 0xfffa99d5
+mov eax, dword [eax + ebx + 0x124c]
+mov dword [ebp - 0x90], eax
+jmp short loc_fffa99e8 ; jmp 0xfffa99e8
+
+loc_fffa99d5: ; not directly referenced
+mov edi, dword [ebp - 0x90]
+cmp edi, dword [eax + ebx + 0x124c]
+jne loc_fffa9b58 ; jne 0xfffa9b58
+
+loc_fffa99e8: ; not directly referenced
+cmp dword [ebp - 0x7c], 0x1a
+je loc_fffa9b81 ; je 0xfffa9b81
+inc dword [ebp - 0x94]
+
+loc_fffa99f8: ; not directly referenced
+add ebx, 0x128
+add dword [ebp - 0x98], 0x277
+add dword [ebp - 0x84], 0x277
+cmp ebx, 0x250
+jne loc_fffa985a ; jne 0xfffa985a
+add dword [ebp - 0x88], 0x13c3
+add dword [ebp - 0x9c], 0x54a
+add dword [ebp - 0x80], 0x13c3
+cmp dword [ebp - 0x88], 0x2786
+jne loc_fffa9827 ; jne 0xfffa9827
+cmp dword [ebp - 0x94], 0
+je loc_fffa9b81 ; je 0xfffa9b81
+lea edi, [ebp - 0x78]
+mov esi, ref_fffd3408 ; mov esi, 0xfffd3408
+mov ecx, 0x18
+xor ebx, ebx
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov eax, 1
+
+loc_fffa9a6c: ; not directly referenced
+cmp bl, 0x17
+setbe dl
+test dl, al
+je short loc_fffa9a8c ; je 0xfffa9a8c
+sub esp, 0xc
+movzx eax, bl
+push dword [ebp + 8]
+inc ebx
+call dword [ebp + eax*4 - 0x78] ; ucall
+add esp, 0x10
+and eax, 1
+jmp short loc_fffa9a6c ; jmp 0xfffa9a6c
+
+loc_fffa9a8c: ; not directly referenced
+test eax, eax
+je loc_fffa9b81 ; je 0xfffa9b81
+mov eax, dword [ebp + 8]
+mov esi, dword [ebp + 8]
+mov byte [eax + 0x3748], 1
+add eax, 0x48c9
+add esi, 0x704f
+
+loc_fffa9aac: ; not directly referenced
+mov edx, eax
+xor ecx, ecx
+
+loc_fffa9ab0: ; not directly referenced
+mov edi, dword [edx]
+lea ebx, [edi - 1]
+cmp ebx, 1
+ja short loc_fffa9ac0 ; ja 0xfffa9ac0
+inc dword [eax - 0x10b3]
+
+loc_fffa9ac0: ; not directly referenced
+cmp dword [edx], 2
+jne short loc_fffa9b16 ; jne 0xfffa9b16
+mov bl, byte [edx + 0xed]
+cmp bl, 1
+je short loc_fffa9adb ; je 0xfffa9adb
+cmp bl, 2
+sete bl
+lea ebx, [ebx + ebx*2]
+jmp short loc_fffa9add ; jmp 0xfffa9add
+
+loc_fffa9adb: ; not directly referenced
+mov bl, 1
+
+loc_fffa9add: ; not directly referenced
+mov edi, dword [ebp + 8]
+movzx ebx, bl
+shl ebx, cl
+or byte [eax - 0x10af], bl
+mov bl, byte [edx + 0xcc]
+and byte [edi + 0x3748], bl
+mov bl, byte [edi + 0x36ca]
+movzx edi, byte [edx + 0xf4]
+cmp byte [edx + 0xf4], bl
+cmovbe ebx, edi
+mov edi, dword [ebp + 8]
+mov byte [edi + 0x36ca], bl
+
+loc_fffa9b16: ; not directly referenced
+add ecx, 2
+add edx, 0x128
+cmp ecx, 4
+jne short loc_fffa9ab0 ; jne 0xfffa9ab0
+cmp dword [eax - 0x10b3], 0
+je short loc_fffa9b49 ; je 0xfffa9b49
+cmp byte [eax - 0x10af], 0
+je short loc_fffa9b49 ; je 0xfffa9b49
+mov ecx, dword [ebp + 8]
+inc byte [ecx + 0x3755]
+mov dword [eax - 0x1173], 2
+
+loc_fffa9b49: ; not directly referenced
+add eax, 0x13c3
+cmp eax, esi
+jne loc_fffa9aac ; jne 0xfffa9aac
+jmp short loc_fffa9b61 ; jmp 0xfffa9b61
+
+loc_fffa9b58: ; not directly referenced
+mov dword [ebp - 0x7c], 0x1a
+jmp short loc_fffa9b81 ; jmp 0xfffa9b81
+
+loc_fffa9b61: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3755], 0
+je short loc_fffa9b81 ; je 0xfffa9b81
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x7c], 0
+mov dword [eax + 0x374e], 2
+
+loc_fffa9b81: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffa9b8c: ; not directly referenced
+push ebp
+mov ecx, 3
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd3468 ; mov esi, 0xfffd3468
+push ebx
+mov ebx, eax
+sub esp, 0xc0
+lea edi, [ebp - 0x80]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x74]
+mov esi, ref_fffd3474 ; mov esi, 0xfffd3474
+mov dword [ebp - 0x8c], eax
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x68]
+mov esi, ref_fffd3480 ; mov esi, 0xfffd3480
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x5c]
+mov esi, ref_fffd348c ; mov esi, 0xfffd348c
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x50]
+mov esi, ref_fffd3498 ; mov esi, 0xfffd3498
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x44]
+mov esi, ref_fffd34a4 ; mov esi, 0xfffd34a4
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov edi, dword [eax + 0x5edc]
+mov edx, edi
+mov dword [ebp - 0x9c], edi
+mov edi, dword [eax + 0x2443]
+mov al, byte [eax + 0x2488]
+mov esi, edi
+mov dword [ebp - 0xa0], edi
+movzx edi, byte [ebx + 0x248e]
+mov byte [ebp - 0x95], al
+mov eax, edx
+push 0
+add eax, 0x1bc
+push 8
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+mov edx, 0x3a1c
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a1c
+mov ecx, eax
+mov esi, eax
+and ecx, 0xfffe003f
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x5f08
+mov eax, ebx
+mov dword [ebp - 0x8c], ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5f08
+mov ebx, eax
+mov eax, dword [ebp - 0x8c]
+or bh, 1
+mov ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x8c]
+mov edx, 0x78
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp - 0x8c]
+mov edx, 0x3a00
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, esi
+mov esi, dword [ebp - 0x8c]
+mov dword [ebp - 0x94], eax
+mov eax, dword [ebp - 0x8c]
+shr dword [ebp - 0x94], 0xf
+and dword [ebp - 0x94], 0x1f
+mov ax, word [eax + 0x1904]
+shr ax, 7
+movzx edx, ax
+mov eax, esi
+mov dword [ebp - 0xa8], edx
+mov edx, 0x3a1c
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, ebx
+mov edx, 0x5f08
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x78
+mov eax, esi
+call fcn_fffa834b ; call 0xfffa834b
+mov edx, 0x2008
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+add esp, 0x10
+test ah, 4
+mov eax, edi
+je short loc_fffa9d16 ; je 0xfffa9d16
+cmp al, 3
+je short loc_fffa9d2a ; je 0xfffa9d2a
+lea eax, [ebp - 0x74]
+mov edx, eax
+lea eax, [ebp - 0x68]
+jmp short loc_fffa9d22 ; jmp 0xfffa9d22
+
+loc_fffa9d16: ; not directly referenced
+cmp al, 3
+je short loc_fffa9d2f ; je 0xfffa9d2f
+lea eax, [ebp - 0x50]
+mov edx, eax
+lea eax, [ebp - 0x44]
+
+loc_fffa9d22: ; not directly referenced
+and edi, 1
+cmovne eax, edx
+jmp short loc_fffa9d32 ; jmp 0xfffa9d32
+
+loc_fffa9d2a: ; not directly referenced
+lea eax, [ebp - 0x80]
+jmp short loc_fffa9d32 ; jmp 0xfffa9d32
+
+loc_fffa9d2f: ; not directly referenced
+lea eax, [ebp - 0x5c]
+
+loc_fffa9d32: ; not directly referenced
+mov dword [ebp - 0x90], eax
+mov eax, dword [ebp - 0x9c]
+xor edi, edi
+add eax, 0x1c
+mov dword [ebp - 0xa4], eax
+mov esi, eax
+
+loc_fffa9d4b: ; not directly referenced
+imul eax, edi, 0x13c3
+mov edx, dword [ebp - 0x8c]
+xor ebx, ebx
+cmp dword [edx + eax + 0x3756], 2
+jne short loc_fffa9dc5 ; jne 0xfffa9dc5
+
+loc_fffa9d63: ; not directly referenced
+cmp byte [ebp - 0x95], bl
+jbe short loc_fffa9d9f ; jbe 0xfffa9d9f
+or byte [esi + ebx*4 + 0x28], 0x20
+mov ecx, ebx
+mov eax, dword [esi + ebx*4 + 0x28]
+mov edx, edi
+inc ebx
+mov dword [ebp - 0xac], eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0xac]
+mov edx, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffa9d63 ; jmp 0xfffa9d63
+
+loc_fffa9d9f: ; not directly referenced
+mov eax, dword [ebp - 0x8c]
+mov ecx, 0xff
+mov edx, edi
+mov ebx, dword [esi]
+call fcn_fffa7288 ; call 0xfffa7288
+or bh, 1
+mov ecx, ebx
+mov edx, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffa9dc5: ; not directly referenced
+inc edi
+add esi, 0xcc
+cmp edi, 2
+jne loc_fffa9d4b ; jne 0xfffa9d4b
+mov eax, dword [ebp - 0x90]
+lea ebx, [ebp - 0x38]
+inc eax
+mov dword [ebp - 0xbc], eax
+mov esi, eax
+
+loc_fffa9de7: ; not directly referenced
+mov edi, dword [ebp - 0x8c]
+add ebx, 4
+add esi, 3
+movzx edx, byte [esi - 4]
+movzx ecx, byte [esi - 3]
+mov eax, edi
+call fcn_fffa75da ; call 0xfffa75da
+mov edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [ebx - 4], eax
+lea eax, [ebp - 0x28]
+cmp ebx, eax
+jne short loc_fffa9de7 ; jne 0xfffa9de7
+imul eax, dword [ebp - 0x94], 0x1f0
+mov ecx, 0x3e8
+imul eax, dword [ebp - 0xa8]
+xor edx, edx
+mov byte [ebp - 0xa8], 1
+div ecx
+lea edi, [eax + 0x14a]
+add eax, 0x226
+mov dword [ebp - 0xb8], eax
+mov eax, dword [ebp - 0x9c]
+mov dword [ebp - 0xb4], edi
+add eax, 0x1bd
+mov dword [ebp - 0xac], eax
+
+loc_fffa9e5e: ; not directly referenced
+mov eax, dword [ebp - 0xa4]
+xor ebx, ebx
+mov dword [ebp - 0x94], eax
+mov eax, dword [ebp - 0xa8]
+and eax, 7
+mov dword [ebp - 0x9c], eax
+
+loc_fffa9e7b: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp - 0x8c]
+cmp dword [edi + eax + 0x3756], 2
+je short loc_fffa9eb0 ; je 0xfffa9eb0
+
+loc_fffa9e91: ; not directly referenced
+inc ebx
+add dword [ebp - 0x94], 0xcc
+cmp ebx, 2
+jne short loc_fffa9e7b ; jne 0xfffa9e7b
+mov dword [ebp - 0x94], 0
+jmp near loc_fffaa085 ; jmp 0xfffaa085
+
+loc_fffa9eb0: ; not directly referenced
+xor esi, esi
+
+loc_fffa9eb2: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0x95], al
+jbe short loc_fffa9e91 ; jbe 0xfffa9e91
+mov eax, dword [ebp - 0x94]
+mov ecx, esi
+mov edx, ebx
+mov edi, dword [eax + esi*4 + 4]
+inc esi
+mov eax, dword [ebp - 0x9c]
+and edi, 0xffffe3ff
+shl eax, 0xa
+or edi, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, edi
+mov edx, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffa9eb2 ; jmp 0xfffa9eb2
+
+loc_fffa9ef8: ; not directly referenced
+imul eax, edi, 0x13c3
+mov edx, dword [ebp - 0x8c]
+cmp dword [edx + eax + 0x3756], 2
+je loc_fffaa0c3 ; je 0xfffaa0c3
+
+loc_fffa9f12: ; not directly referenced
+inc edi
+add dword [ebp - 0x9c], 0xcc
+cmp edi, 2
+jne short loc_fffa9ef8 ; jne 0xfffa9ef8
+mov byte [ebp - 0x9c], 0
+
+loc_fffa9f29: ; not directly referenced
+mov esi, dword [ebp - 0x9c]
+lea edi, [ebp - 0x28]
+mov ebx, dword [ebp - 0x90]
+and esi, 1
+shl esi, 0x1d
+or esi, 0x2000000
+
+loc_fffa9f44: ; not directly referenced
+movzx eax, byte [ebx + 2]
+and esi, 0xefffffff
+movzx ecx, byte [ebx + 1]
+movzx edx, byte [ebx]
+and eax, 1
+shl eax, 0x1c
+or esi, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffa75da ; call 0xfffa75da
+mov ecx, esi
+mov edx, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0xa0]
+call dword [eax + 0x54] ; ucall
+add eax, 0x3e8
+mov dword [ebp - 0xb0], eax
+
+loc_fffa9f8b: ; not directly referenced
+mov esi, dword [ebp - 0x8c]
+movzx edx, byte [ebx]
+movzx ecx, byte [ebx + 1]
+mov eax, esi
+call fcn_fffa75da ; call 0xfffa75da
+mov edx, eax
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov esi, eax
+test eax, 0x40000000
+jne loc_fffaa108 ; jne 0xfffaa108
+mov eax, dword [ebp - 0xa0]
+call dword [eax + 0x54] ; ucall
+cmp dword [ebp - 0xb0], eax
+ja short loc_fffa9f8b ; ja 0xfffa9f8b
+
+loc_fffa9fc6: ; not directly referenced
+movzx ecx, byte [ebx + 1]
+add edi, 4
+add ebx, 3
+movzx edx, byte [ebx - 3]
+mov eax, dword [ebp - 0x8c]
+call fcn_fffa75da ; call 0xfffa75da
+xor ecx, ecx
+mov edx, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffae58c ; call 0xfffae58c
+lea eax, [ebp - 0x18]
+cmp edi, eax
+jne loc_fffa9f44 ; jne 0xfffa9f44
+inc byte [ebp - 0x9c]
+cmp byte [ebp - 0x9c], 2
+jne loc_fffa9f29 ; jne 0xfffa9f29
+mov ecx, dword [ebp - 0x28]
+mov ebx, dword [ebp - 0x1c]
+mov edx, dword [ebp - 0x20]
+mov eax, dword [ebp - 0x24]
+mov esi, ecx
+cmp ebx, ecx
+cmovbe esi, ebx
+cmp esi, edx
+cmova esi, edx
+cmp ebx, ecx
+cmovae ecx, ebx
+cmp ecx, edx
+cmovae edx, ecx
+cmp edx, eax
+cmovb edx, eax
+cmp esi, eax
+cmovbe eax, esi
+cmp dword [ebp - 0xb4], eax
+jbe short loc_fffaa055 ; jbe 0xfffaa055
+mov cl, byte [ebp - 0x94]
+mov eax, 1
+mov edi, dword [ebp - 0xac]
+shl eax, cl
+or byte [edi], al
+
+loc_fffaa055: ; not directly referenced
+cmp dword [ebp - 0xb8], edx
+jae short loc_fffaa072 ; jae 0xfffaa072
+mov cl, byte [ebp - 0x94]
+mov eax, 1
+mov edi, dword [ebp - 0xac]
+shl eax, cl
+or byte [edi], al
+
+loc_fffaa072: ; not directly referenced
+inc dword [ebp - 0x94]
+cmp dword [ebp - 0x94], 8
+je loc_fffaa126 ; je 0xfffaa126
+
+loc_fffaa085: ; not directly referenced
+push eax
+xor edi, edi
+push 0
+push 4
+lea eax, [ebp - 0x28]
+push eax
+mov eax, dword [ebp - 0xa0]
+call dword [eax + 0x64] ; ucall
+mov eax, dword [ebp - 0xa4]
+add esp, 0x10
+mov dword [ebp - 0x9c], eax
+mov eax, dword [ebp - 0x94]
+and eax, 7
+mov dword [ebp - 0xb0], eax
+shl dword [ebp - 0xb0], 0x1a
+jmp near loc_fffa9ef8 ; jmp 0xfffa9ef8
+
+loc_fffaa0c3: ; not directly referenced
+xor ebx, ebx
+
+loc_fffaa0c5: ; not directly referenced
+cmp byte [ebp - 0x95], bl
+jbe loc_fffa9f12 ; jbe 0xfffa9f12
+mov eax, dword [ebp - 0x9c]
+mov ecx, ebx
+mov edx, edi
+mov esi, dword [eax + ebx*4 + 0x28]
+inc ebx
+mov eax, dword [ebp - 0x8c]
+and esi, 0xe3ffffff
+call fcn_fffa720e ; call 0xfffa720e
+or esi, dword [ebp - 0xb0]
+mov ecx, esi
+mov edx, eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffaa0c5 ; jmp 0xfffaa0c5
+
+loc_fffaa108: ; not directly referenced
+shr eax, 0xf
+and eax, 0x3ff
+add eax, dword [edi]
+cmp byte [ebp - 0x9c], 1
+jne loc_fffaa215 ; jne 0xfffaa215
+shr eax, 1
+jmp near loc_fffaa215 ; jmp 0xfffaa215
+
+loc_fffaa126: ; not directly referenced
+inc byte [ebp - 0xa8]
+inc dword [ebp - 0xac]
+and byte [ebp - 0xa8], 7
+jne loc_fffa9e5e ; jne 0xfffa9e5e
+mov esi, dword [ebp - 0xa4]
+xor edi, edi
+
+loc_fffaa147: ; not directly referenced
+imul eax, edi, 0x13c3
+mov ecx, dword [ebp - 0x8c]
+xor ebx, ebx
+cmp dword [ecx + eax + 0x3756], 2
+jne short loc_fffaa1cc ; jne 0xfffaa1cc
+
+loc_fffaa15f: ; not directly referenced
+cmp byte [ebp - 0x95], bl
+jbe short loc_fffaa1ad ; jbe 0xfffaa1ad
+mov eax, dword [ebp - 0x8c]
+mov ecx, ebx
+mov edx, edi
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, dword [esi + ebx*4 + 4]
+mov edx, eax
+mov dword [ebp - 0x90], eax
+mov eax, dword [ebp - 0x8c]
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, dword [ebp - 0x90]
+and byte [esi + ebx*4 + 0x28], 0xdf
+mov ecx, dword [esi + ebx*4 + 0x28]
+inc ebx
+mov eax, dword [ebp - 0x8c]
+add edx, 4
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffaa15f ; jmp 0xfffaa15f
+
+loc_fffaa1ad: ; not directly referenced
+mov ebx, dword [ebp - 0x8c]
+mov ecx, 0xff
+mov edx, edi
+mov eax, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [esi]
+mov edx, eax
+mov eax, ebx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffaa1cc: ; not directly referenced
+inc edi
+add esi, 0xcc
+cmp edi, 2
+jne loc_fffaa147 ; jne 0xfffaa147
+mov esi, dword [ebp - 0xbc]
+lea ebx, [ebp - 0x38]
+
+loc_fffaa1e5: ; not directly referenced
+mov edi, dword [ebp - 0x8c]
+add ebx, 4
+add esi, 3
+movzx ecx, byte [esi - 3]
+movzx edx, byte [esi - 4]
+mov eax, edi
+call fcn_fffa75da ; call 0xfffa75da
+mov ecx, dword [ebx - 4]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+lea eax, [ebp - 0x28]
+cmp ebx, eax
+jne short loc_fffaa1e5 ; jne 0xfffaa1e5
+jmp short loc_fffaa21c ; jmp 0xfffaa21c
+
+loc_fffaa215: ; not directly referenced
+mov dword [edi], eax
+jmp near loc_fffa9fc6 ; jmp 0xfffa9fc6
+
+loc_fffaa21c: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa226: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0x1c
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x20], edx
+cmp eax, 1
+je short loc_fffaa252 ; je 0xfffaa252
+sbb ebx, ebx
+mov esi, 0
+mov byte [ebp - 0x1a], 1
+and ebx, 0x364c
+jmp short loc_fffaa260 ; jmp 0xfffaa260
+
+loc_fffaa252: ; not directly referenced
+mov byte [ebp - 0x1a], 4
+mov esi, 4
+mov ebx, 0x3650
+
+loc_fffaa260: ; not directly referenced
+mov byte [ebp - 0x19], 0
+
+loc_fffaa264: ; not directly referenced
+mov ecx, dword [ebp - 0x20]
+mov edx, ebx
+mov eax, edi
+add ebx, esi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov al, byte [ebp - 0x1a]
+inc byte [ebp - 0x19]
+cmp byte [ebp - 0x19], al
+jb short loc_fffaa264 ; jb 0xfffaa264
+add esp, 0x1c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa285: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x2c
+mov eax, dword [ebp + 8]
+mov ebx, dword [esi + 0x2443]
+shl edi, 0xa
+mov dword [ebp - 0x20], ecx
+add edi, 0x4214
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp - 0x2c], eax
+call dword [ebx + 0x54] ; ucall
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+
+loc_fffaa2c1: ; not directly referenced
+mov edx, edi
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+shr eax, 0x18
+test al, al
+jns short loc_fffaa2e0 ; jns 0xfffaa2e0
+call dword [ebx + 0x54] ; ucall
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffaa2c1 ; ja 0xfffaa2c1
+
+loc_fffaa2d9: ; not directly referenced
+mov eax, 0x12
+jmp short loc_fffaa340 ; jmp 0xfffaa340
+
+loc_fffaa2e0: ; not directly referenced
+mov ecx, dword [ebp - 0x28]
+mov edx, edi
+mov eax, dword [ebp - 0x24]
+shl ecx, 0xd
+and ax, 0x1fff
+or ecx, eax
+mov eax, dword [ebp - 0x20]
+movzx ecx, cx
+and eax, 3
+shl eax, 0x10
+or ecx, eax
+mov eax, dword [ebp - 0x2c]
+and eax, 0x1ff
+shl eax, 0x15
+or ecx, eax
+mov eax, esi
+or ecx, 0x80100000
+call fcn_fffae58c ; call 0xfffae58c
+call dword [ebx + 0x54] ; ucall
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+
+loc_fffaa324: ; not directly referenced
+mov edx, edi
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+shr eax, 0x18
+test al, al
+jns short loc_fffaa33e ; jns 0xfffaa33e
+call dword [ebx + 0x54] ; ucall
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffaa324 ; ja 0xfffaa324
+jmp short loc_fffaa2d9 ; jmp 0xfffaa2d9
+
+loc_fffaa33e: ; not directly referenced
+xor eax, eax
+
+loc_fffaa340: ; not directly referenced
+add esp, 0x2c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa348: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+cmp ecx, edx
+ja short loc_fffaa360 ; ja 0xfffaa360
+inc edi
+inc dword [ebx + 0xc]
+imul eax, edi, 0xa
+jmp short loc_fffaa3c3 ; jmp 0xfffaa3c3
+
+loc_fffaa360: ; not directly referenced
+mov esi, ecx
+sub esi, edx
+cmp ecx, 6
+ja short loc_fffaa38e ; ja 0xfffaa38e
+imul edi, eax, 0xa
+mov eax, 7
+sub eax, ecx
+xor edx, edx
+imul eax, eax, 0xa
+mov ecx, 0xa
+inc dword [ebx + 8]
+div esi
+cmp eax, 0xa
+cmovbe ecx, eax
+lea eax, [edi + ecx + 0x14]
+jmp short loc_fffaa3c3 ; jmp 0xfffaa3c3
+
+loc_fffaa38e: ; not directly referenced
+cmp edx, 7
+ja short loc_fffaa3ab ; ja 0xfffaa3ab
+inc dword [ebx + 4]
+test esi, esi
+je short loc_fffaa3ad ; je 0xfffaa3ad
+mov eax, 7
+inc edi
+sub eax, edx
+xor edx, edx
+imul eax, eax, 0xa
+div esi
+jmp short loc_fffaa3be ; jmp 0xfffaa3be
+
+loc_fffaa3ab: ; not directly referenced
+inc dword [ebx]
+
+loc_fffaa3ad: ; not directly referenced
+cmp esi, edx
+cmovb esi, edx
+xor eax, eax
+test esi, esi
+je short loc_fffaa3c3 ; je 0xfffaa3c3
+mov al, 0x46
+xor edx, edx
+div esi
+
+loc_fffaa3be: ; not directly referenced
+imul edi, edi, 0xa
+add eax, edi
+
+loc_fffaa3c3: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa3c8: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, edx
+sub esp, 0x2c
+mov esi, dword [eax + 0x2443]
+mov byte [ebp - 0x1b], cl
+mov cl, byte [ebp + 8]
+shl ebx, 0xa
+lea edx, [ebx + 0x41bc]
+mov dword [ebp - 0x20], eax
+mov dword [ebp - 0x28], esi
+mov byte [ebp - 0x1c], cl
+xor ecx, ecx
+call fcn_fffae566 ; call 0xfffae566
+lea eax, [ebx + 0x41c0]
+mov byte [ebp - 0x19], 0
+mov dword [ebp - 0x34], eax
+
+loc_fffaa405: ; not directly referenced
+mov cl, byte [ebp - 0x19]
+xor esi, esi
+xor edi, edi
+mov dword [ebp - 0x2c], 0
+mov al, cl
+and eax, 1
+mov byte [ebp - 0x1a], al
+mov al, cl
+xor ecx, ecx
+shr al, 1
+and eax, 1
+mov dword [ebp - 0x30], eax
+
+loc_fffaa427: ; not directly referenced
+movzx eax, cl
+div byte [ebp - 0x1b]
+movzx edx, ah
+lea eax, [ecx + 0x15]
+cmp cl, 0x12
+ja short loc_fffaa441 ; ja 0xfffaa441
+lea eax, [ecx + 8]
+cmp cl, 0x10
+cmovb eax, ecx
+
+loc_fffaa441: ; not directly referenced
+cmp dl, byte [ebp - 0x1c]
+movzx eax, al
+mov edx, dword [ebp - 0x28]
+mov dword [ebp - 0x38], ecx
+mov edx, dword [edx + 0x68]
+mov dword [ebp - 0x24], edx
+jne short loc_fffaa461 ; jne 0xfffaa461
+push ecx
+xor edx, edx
+push eax
+movzx eax, byte [ebp - 0x1a]
+push edx
+push eax
+jmp short loc_fffaa469 ; jmp 0xfffaa469
+
+loc_fffaa461: ; not directly referenced
+push edx
+push eax
+push dword [ebp - 0x2c]
+push dword [ebp - 0x30]
+
+loc_fffaa469: ; not directly referenced
+mov eax, dword [ebp - 0x24]
+call eax
+mov ecx, dword [ebp - 0x38]
+add esp, 0x10
+inc ecx
+or eax, esi
+or edx, edi
+mov esi, eax
+mov edi, edx
+cmp cl, 0x16
+jne short loc_fffaa427 ; jne 0xfffaa427
+push eax
+push eax
+mov eax, dword [ebp - 0x20]
+push edx
+mov edx, dword [ebp - 0x34]
+push esi
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+inc byte [ebp - 0x19]
+cmp byte [ebp - 0x19], 8
+jne loc_fffaa405 ; jne 0xfffaa405
+mov edi, dword [ebp - 0x20]
+lea edx, [ebx + 0x41a0]
+mov ecx, 0x222
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [ebx + 0x41b0]
+mov eax, edi
+mov ecx, 0x6010102
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [ebx + 0x41a4]
+mov eax, edi
+mov ecx, 0xea1
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [ebx + 0x41a8]
+mov eax, edi
+mov ecx, 0xbeef
+call fcn_fffae58c ; call 0xfffae58c
+lea esp, [ebp - 0xc]
+mov eax, edi
+lea edx, [ebx + 0x41ac]
+mov ecx, 0xdead
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+fcn_fffaa505: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x1c
+mov ebx, dword [eax + 0x2443]
+mov dword [ebp - 0x20], ecx
+shl edi, 0xa
+add edi, 0x4214
+call dword [ebx + 0x54] ; ucall
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+
+loc_fffaa52f: ; not directly referenced
+mov edx, edi
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, eax
+shr eax, 0x18
+test al, al
+jns short loc_fffaa550 ; jns 0xfffaa550
+call dword [ebx + 0x54] ; ucall
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffaa52f ; ja 0xfffaa52f
+
+loc_fffaa549: ; not directly referenced
+mov eax, 0x12
+jmp short loc_fffaa5ae ; jmp 0xfffaa5ae
+
+loc_fffaa550: ; not directly referenced
+mov cl, byte [ebp + 8]
+mov ch, byte [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov eax, dword [ebp - 0x20]
+or ecx, 0x40000
+and edx, 1
+and ecx, 0xfff4ffff
+shl edx, 0x13
+and eax, 3
+shl eax, 0x10
+or ecx, edx
+or ecx, eax
+mov edx, edi
+or ecx, 0x80000000
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+call dword [ebx + 0x54] ; ucall
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+
+loc_fffaa592: ; not directly referenced
+mov edx, edi
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+shr eax, 0x18
+test al, al
+jns short loc_fffaa5ac ; jns 0xfffaa5ac
+call dword [ebx + 0x54] ; ucall
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffaa592 ; ja 0xfffaa592
+jmp short loc_fffaa549 ; jmp 0xfffaa549
+
+loc_fffaa5ac: ; not directly referenced
+xor eax, eax
+
+loc_fffaa5ae: ; not directly referenced
+add esp, 0x1c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa5b6: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, ecx
+sub esp, 0x4c
+mov edi, dword [ebp + 8]
+mov esi, dword [ebp + 0x18]
+mov ecx, dword [eax + 0x2443]
+mov dword [ebp - 0x1c], eax
+mov eax, dword [eax + 0x1887]
+mov dword [ebp - 0x44], edi
+mov edi, dword [ebp + 0xc]
+mov dword [ebp - 0x34], esi
+mov esi, dword [ebp + 0x1c]
+mov dword [ebp - 0x28], edx
+mov dword [ebp - 0x24], ecx
+mov dword [ebp - 0x30], edi
+mov edi, dword [ebp + 0x10]
+mov dword [ebp - 0x20], edi
+mov edi, dword [ebp + 0x14]
+mov dword [ebp - 0x40], edi
+mov edi, dword [ebp + 0x20]
+cmp eax, 0x306d0
+je short loc_fffaa618 ; je 0xfffaa618
+cmp eax, 0x40670
+je short loc_fffaa618 ; je 0xfffaa618
+mov dword [ebp - 0x2c], 0x7f8
+mov dword [ebp - 0x38], 0xff
+jmp short loc_fffaa626 ; jmp 0xfffaa626
+
+loc_fffaa618: ; not directly referenced
+mov dword [ebp - 0x2c], 0xff8
+mov dword [ebp - 0x38], 0x1ff
+
+loc_fffaa626: ; not directly referenced
+test ebx, ebx
+je short loc_fffaa69e ; je 0xfffaa69e
+mov dword [ebp - 0x4c], esi
+push esi
+push 0x20
+movzx edx, word [ebx]
+movzx eax, word [ebx + 2]
+shl edx, 0x18
+shl eax, 0x10
+add eax, edx
+cdq
+push edx
+push eax
+mov eax, dword [ebp - 0x24]
+call dword [eax + 0x68] ; ucall
+add esp, 0xc
+mov ecx, dword [ebp - 0x24]
+push 0x18
+mov esi, eax
+movzx eax, word [ebx + 4]
+mov dword [ebp - 0x48], edx
+xor edx, edx
+push edx
+push eax
+call dword [ecx + 0x68] ; ucall
+movzx ebx, word [ebx + 6]
+pop ecx
+pop ecx
+and edx, dword [ebp - 0x38]
+mov dword [ebp - 0x3c], ebx
+mov ebx, dword [ebp - 0x2c]
+and dword [ebp - 0x3c], ebx
+or dword [ebp - 0x3c], esi
+and eax, 0xff000000
+mov esi, dword [ebp - 0x3c]
+or esi, eax
+mov eax, dword [ebp - 0x48]
+or eax, edx
+push eax
+mov eax, dword [ebp - 0x28]
+push esi
+lea edx, [eax*8 + 0x48d8]
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae7cf ; call 0xfffae7cf
+mov esi, dword [ebp - 0x4c]
+add esp, 0x10
+
+loc_fffaa69e: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+test eax, eax
+je short loc_fffaa715 ; je 0xfffaa715
+push edx
+mov ebx, dword [ebp - 0x24]
+push 0x20
+movzx edx, word [eax]
+mov dword [ebp - 0x44], esi
+mov esi, eax
+movzx eax, word [eax + 2]
+shl edx, 0x18
+shl eax, 0x10
+add eax, edx
+cdq
+push edx
+push eax
+call dword [ebx + 0x68] ; ucall
+add esp, 0xc
+mov ecx, dword [ebp - 0x24]
+push 0x18
+mov ebx, eax
+movzx eax, word [esi + 4]
+mov dword [ebp - 0x3c], edx
+xor edx, edx
+push edx
+push eax
+call dword [ecx + 0x68] ; ucall
+pop ecx
+pop ecx
+movzx ecx, word [esi + 6]
+and edx, dword [ebp - 0x38]
+and eax, 0xff000000
+mov esi, ecx
+mov ecx, dword [ebp - 0x2c]
+and esi, ecx
+or esi, ebx
+or esi, eax
+mov eax, dword [ebp - 0x3c]
+or eax, edx
+push eax
+mov eax, dword [ebp - 0x28]
+push esi
+lea edx, [eax*8 + 0x48e8]
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae7cf ; call 0xfffae7cf
+mov esi, dword [ebp - 0x44]
+add esp, 0x10
+
+loc_fffaa715: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+setne bl
+cmp dword [ebp - 0x34], 0
+setne al
+mov byte [ebp - 0x2c], al
+or al, bl
+jne short loc_fffaa73c ; jne 0xfffaa73c
+test esi, esi
+setne dl
+test edi, edi
+setne al
+or dl, al
+je loc_fffaa876 ; je 0xfffaa876
+
+loc_fffaa73c: ; not directly referenced
+mov ecx, dword [ebp - 0x28]
+xor eax, eax
+cmp dword [ebp - 0x30], 0
+lea ecx, [ecx*4 + 0x4908]
+mov dword [ebp - 0x24], ecx
+sete cl
+cmp dword [ebp - 0x34], 0
+sete dl
+or cl, dl
+jne short loc_fffaa7a1 ; jne 0xfffaa7a1
+test esi, esi
+sete cl
+test edi, edi
+sete dl
+or cl, dl
+jne short loc_fffaa7a1 ; jne 0xfffaa7a1
+
+loc_fffaa76b: ; not directly referenced
+mov ebx, dword [ebp - 0x30]
+and eax, 0xfffffff0
+movzx edx, byte [ebx + 3]
+movzx ecx, byte [ebx + 2]
+and edx, 3
+and ecx, 3
+or eax, edx
+movzx edx, byte [ebx + 1]
+shl ecx, 2
+or eax, ecx
+movzx ecx, byte [ebx]
+and al, 0xf
+and edx, 3
+shl edx, 4
+and ecx, 3
+or eax, edx
+shl ecx, 6
+or eax, ecx
+jmp short loc_fffaa7b0 ; jmp 0xfffaa7b0
+
+loc_fffaa7a1: ; not directly referenced
+mov edx, dword [ebp - 0x24]
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae52a ; call 0xfffae52a
+test bl, bl
+jne short loc_fffaa76b ; jne 0xfffaa76b
+
+loc_fffaa7b0: ; not directly referenced
+cmp byte [ebp - 0x2c], 0
+je short loc_fffaa7f2 ; je 0xfffaa7f2
+mov ebx, dword [ebp - 0x34]
+and eax, 0xfcffffff
+movzx ecx, byte [ebx + 3]
+movzx edx, byte [ebx + 2]
+and ecx, 1
+shl ecx, 0x18
+and edx, 1
+shl edx, 0x19
+or eax, ecx
+movzx ecx, byte [ebx]
+or eax, edx
+movzx edx, byte [ebx + 1]
+and eax, 0xf3ffffff
+and ecx, 1
+and edx, 1
+shl edx, 0x1a
+shl ecx, 0x1b
+or eax, edx
+or eax, ecx
+
+loc_fffaa7f2: ; not directly referenced
+test esi, esi
+je short loc_fffaa82c ; je 0xfffaa82c
+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_fffaa82c: ; not directly referenced
+test edi, edi
+je short loc_fffaa869 ; je 0xfffaa869
+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 ecx, 1
+and edx, 1
+shl edx, 0x16
+shl ecx, 0x17
+or eax, edx
+or eax, ecx
+
+loc_fffaa869: ; not directly referenced
+mov ecx, eax
+mov edx, dword [ebp - 0x24]
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaa876: ; not directly referenced
+mov edx, dword [ebp - 0x40]
+cmp dword [ebp - 0x20], 0
+setne cl
+test edx, edx
+setne al
+mov byte [ebp - 0x24], al
+or al, cl
+je loc_fffaa9e5 ; je 0xfffaa9e5
+mov eax, dword [ebp - 0x28]
+xor esi, esi
+xor ebx, ebx
+cmp dword [ebp - 0x20], 0
+lea edi, [eax*8 + 0x4910]
+sete al
+test edx, edx
+sete dl
+or al, dl
+jne short loc_fffaa8c3 ; jne 0xfffaa8c3
+
+loc_fffaa8ae: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov eax, dword [eax]
+cmp eax, 0x1f
+jbe short loc_fffaa8e1 ; jbe 0xfffaa8e1
+dec eax
+call fcn_fffaec34 ; call 0xfffaec34
+movzx eax, al
+jmp short loc_fffaa8e4 ; jmp 0xfffaa8e4
+
+loc_fffaa8c3: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+mov edx, edi
+mov dword [ebp - 0x28], ecx
+call fcn_fffae548 ; call 0xfffae548
+mov ecx, dword [ebp - 0x28]
+mov esi, eax
+mov ebx, edx
+test cl, cl
+je loc_fffaa990 ; je 0xfffaa990
+jmp short loc_fffaa8ae ; jmp 0xfffaa8ae
+
+loc_fffaa8e1: ; not directly referenced
+sub eax, 0xffffff80
+
+loc_fffaa8e4: ; not directly referenced
+mov edx, eax
+and ebx, 0x60ffffff
+and edx, 0x1f
+shl edx, 0x18
+shr eax, 7
+or ebx, edx
+shl eax, 0x1f
+or ebx, eax
+mov eax, dword [ebp - 0x20]
+mov edx, dword [eax + 4]
+lea eax, [edx + 0x80]
+cmp edx, 0x1f
+jbe short loc_fffaa918 ; jbe 0xfffaa918
+lea eax, [edx - 1]
+call fcn_fffaec34 ; call 0xfffaec34
+movzx eax, al
+
+loc_fffaa918: ; not directly referenced
+mov edx, eax
+and ebx, 0xfff60fff
+and edx, 0x1f
+shl edx, 0xc
+shl eax, 0xc
+or ebx, edx
+and eax, 0x80000
+or ebx, eax
+mov eax, dword [ebp - 0x20]
+mov edx, dword [eax + 8]
+lea eax, [edx + 0x20]
+cmp edx, 0xf
+jbe short loc_fffaa94b ; jbe 0xfffaa94b
+lea eax, [edx - 1]
+call fcn_fffaec34 ; call 0xfffaec34
+movzx eax, al
+
+loc_fffaa94b: ; not directly referenced
+mov edx, eax
+and ebx, 0xffffffd0
+and edx, 0xf
+and eax, 0x20
+or ebx, edx
+or ebx, eax
+mov eax, dword [ebp - 0x20]
+mov edx, dword [eax + 0xc]
+lea eax, [edx + 0x80]
+cmp edx, 0x1f
+jbe short loc_fffaa976 ; jbe 0xfffaa976
+lea eax, [edx - 1]
+call fcn_fffaec34 ; call 0xfffaec34
+movzx eax, al
+
+loc_fffaa976: ; not directly referenced
+mov edx, eax
+and esi, 0xfff60fff
+and edx, 0x1f
+shl edx, 0xc
+shl eax, 0xc
+or esi, edx
+and eax, 0x80000
+or esi, eax
+
+loc_fffaa990: ; not directly referenced
+cmp byte [ebp - 0x24], 0
+je short loc_fffaa9ce ; je 0xfffaa9ce
+mov ecx, dword [ebp - 0x40]
+and ebx, 0xff8ffc3f
+and esi, 0xff807
+movzx edx, byte [ecx]
+movzx eax, byte [ecx + 2]
+and edx, 7
+shl edx, 0x14
+and eax, 0xf
+shl eax, 6
+or ebx, edx
+movzx edx, byte [ecx + 6]
+or ebx, eax
+movzx eax, word [ecx + 4]
+shl edx, 3
+shl eax, 0x14
+or esi, eax
+or esi, edx
+
+loc_fffaa9ce: ; not directly referenced
+mov dword [ebp + 8], esi
+mov eax, dword [ebp - 0x1c]
+mov edx, edi
+mov dword [ebp + 0xc], ebx
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffae7cf ; jmp 0xfffae7cf
+
+loc_fffaa9e5: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaa9ed: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+push ebx
+mov ebx, edx
+sub esp, 0x3c
+mov cl, byte [ebp + 8]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x20], 0
+mov byte [ebp - 0x2d], cl
+mov dword [ebp - 0x3c], eax
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x1c], 0
+cmp dword [eax], 1
+jne loc_fffaab38 ; jne 0xfffaab38
+mov dword [edx + 0x1c], 3
+xor esi, esi
+mov word [edx + 0x2a], 0x20
+mov word [edx + 0x28], 0x400
+mov word [edx + 0xe], 0x18
+mov word [edx + 2], 1
+mov word [edx + 0xa], 1
+
+loc_fffaaa54: ; not directly referenced
+imul eax, esi, 0x13c3
+mov ecx, dword [ebp - 0x2c]
+cmp dword [ecx + eax + 0x3756], 2
+jne loc_fffaab25 ; jne 0xfffaab25
+lea eax, [ebp - 0x1c]
+mov ecx, ebx
+push edx
+mov edx, esi
+push eax
+lea eax, [ebp - 0x24]
+push eax
+lea eax, [ebp - 0x20]
+push eax
+lea eax, [ebx + 0x24]
+push eax
+lea eax, [ebx + 0x14]
+push eax
+lea eax, [ebx + 0x10]
+push eax
+mov eax, dword [ebp - 0x2c]
+push 0
+call fcn_fffaa5b6 ; call 0xfffaa5b6
+xor edx, edx
+mov eax, 0x1800
+mov dword [ebp - 0x38], eax
+mov eax, edx
+add esp, 0x20
+and eax, 0xfffffc00
+mov ecx, 1
+or eax, 2
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp - 0x38]
+lea edx, [esi*4 + 0x4980]
+and eax, 0x8fffffff
+or eax, 0x10000000
+cmp dword [ebp - 0x3c], 1
+mov dword [ebp - 0x38], eax
+lea eax, [edx + 0x20]
+cmove edx, eax
+mov eax, dword [ebp - 0x2c]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x2c]
+lea edx, [esi*8 + 0x48a8]
+push ecx
+push ecx
+push dword [ebp - 0x34]
+push dword [ebp - 0x38]
+call fcn_fffae7cf ; call 0xfffae7cf
+mov eax, esi
+mov ecx, 0x20
+shl eax, 0xa
+lea edx, [eax + 0x4200]
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x2c]
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0x38]
+mov eax, dword [ebp - 0x2c]
+lea edx, [ecx + 0x4040]
+mov ecx, 0x8092
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+
+loc_fffaab25: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffaaa54 ; jne 0xfffaaa54
+mov eax, dword [ebp + 0xc]
+mov dword [eax], 0
+
+loc_fffaab38: ; not directly referenced
+mov esi, dword [ebp - 0x2c]
+movzx eax, byte [esi + 0x248d]
+bt eax, edi
+jae loc_fffaac3b ; jae 0xfffaac3b
+mov eax, edi
+shr eax, 1
+imul eax, eax, 0x128
+mov dword [ebp - 0x38], 0
+lea edi, [esi + eax + 0x49ae]
+lea eax, [ebx + 0x14]
+mov dword [ebp - 0x40], eax
+movzx eax, byte [ebp - 0x2d]
+mov dword [ebp - 0x44], eax
+
+loc_fffaab70: ; not directly referenced
+imul eax, dword [ebp - 0x38], 0x13c3
+mov esi, dword [ebp - 0x2c]
+cmp dword [esi + eax + 0x3756], 2
+jne loc_fffaac28 ; jne 0xfffaac28
+mov ax, word [ebx + 0x2a]
+xor edx, edx
+lea ecx, [eax*8]
+mov ax, word [edi + 4]
+div cx
+mov edx, dword [ebp - 0x38]
+movzx esi, ax
+mov eax, dword [edi]
+dec eax
+mov word [ebx + 0xc], ax
+mov ax, word [edi + 4]
+sub eax, ecx
+xor ecx, ecx
+mov word [ebx + 0xe], ax
+lea eax, [esi - 1]
+mov dword [ebx + 0x1c], eax
+push eax
+push 0
+push 0
+push 0
+push 0
+push dword [ebp - 0x40]
+lea eax, [ebx + 8]
+push 0
+push eax
+mov eax, dword [ebp - 0x2c]
+call fcn_fffaa5b6 ; call 0xfffaa5b6
+add esp, 0x20
+cmp byte [ebp - 0x2d], 0
+je short loc_fffaabe3 ; je 0xfffaabe3
+mov eax, dword [ebp - 0x44]
+jmp short loc_fffaabeb ; jmp 0xfffaabeb
+
+loc_fffaabe3: ; not directly referenced
+mov eax, dword [edi]
+shr eax, 0xa
+imul eax, esi
+
+loc_fffaabeb: ; not directly referenced
+dec eax
+call fcn_fffaec34 ; call 0xfffaec34
+imul esi, dword [ebp - 0x38], 0x28
+lea edx, [esi + 0x4808]
+and eax, 0x7f
+mov dword [ebp - 0x3c], eax
+mov ecx, eax
+mov eax, dword [ebp - 0x2c]
+or ecx, 0x400000
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0x3c]
+lea edx, [esi + 0x480c]
+mov eax, dword [ebp - 0x2c]
+or ecx, 0x8000000
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaac28: ; not directly referenced
+inc dword [ebp - 0x38]
+add edi, 0x13c3
+cmp dword [ebp - 0x38], 2
+jne loc_fffaab70 ; jne 0xfffaab70
+
+loc_fffaac3b: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaac43: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+movzx esi, dl
+push ebx
+mov ebx, eax
+imul eax, esi, 0x13c3
+sub esp, 0x1c
+and cl, byte [ebx + eax + 0x381a]
+mov edi, ecx
+and edi, 0xf
+jne short loc_fffaac95 ; jne 0xfffaac95
+xor ecx, ecx
+mov eax, ebx
+lea edx, [esi*4 + 0x4930]
+lea esi, [esi*8 + 0x48a8]
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, esi
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, esi
+and ah, 0xf7
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffaad12 ; jmp 0xfffaad12
+
+loc_fffaac95: ; not directly referenced
+movzx edx, cl
+xor eax, eax
+xor edi, edi
+mov byte [ebp - 0x19], 0
+mov dword [ebp - 0x20], edx
+
+loc_fffaaca3: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+bt edx, eax
+jae short loc_fffaacbb ; jae 0xfffaacbb
+movzx ecx, byte [ebp - 0x19]
+mov edx, eax
+inc byte [ebp - 0x19]
+shl ecx, 2
+shl edx, cl
+or edi, edx
+
+loc_fffaacbb: ; not directly referenced
+inc eax
+cmp eax, 4
+jne short loc_fffaaca3 ; jne 0xfffaaca3
+mov ecx, edi
+mov eax, ebx
+lea edx, [esi*4 + 0x4930]
+call fcn_fffae58c ; call 0xfffae58c
+mov cl, byte [ebp - 0x19]
+lea edi, [esi*8]
+lea edx, [edi + 0x48ef]
+mov eax, ebx
+add edi, 0x48a8
+dec ecx
+movzx ecx, cl
+call fcn_fffae566 ; call 0xfffae566
+mov edx, edi
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+mov edi, 1
+or ah, 8
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+shl edi, cl
+
+loc_fffaad12: ; not directly referenced
+add esp, 0x1c
+mov eax, edi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaad1c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x70
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x50], 0
+mov byte [ebp - 0x4c], 0
+mov byte [ebp - 0x4b], 0
+mov eax, dword [ebx + 0x2443]
+mov byte [ebp - 0x4a], 1
+mov byte [ebp - 0x49], 0
+mov dword [ebp - 0x48], 0
+mov edi, eax
+mov dword [ebp - 0x68], eax
+mov eax, dword [ebx + 0x188b]
+push 0
+push 0x2c
+mov dword [ebp - 0x5c], eax
+lea eax, [ebp - 0x44]
+push eax
+mov eax, edi
+mov byte [ebp - 0x52], 0
+mov byte [ebp - 0x51], 0
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+cmp byte [ebx + 0x3748], 1
+je short loc_fffaad8a ; je 0xfffaad8a
+xor esi, esi
+cmp byte [ebx + 0x2407], 1
+jne loc_fffaafaa ; jne 0xfffaafaa
+
+loc_fffaad8a: ; not directly referenced
+push esi
+mov eax, ebx
+push esi
+xor esi, esi
+push 0
+push 1
+lea ecx, [ebp - 0x51]
+lea edx, [ebp - 0x52]
+mov word [ebp - 0x1a], 1
+mov word [ebp - 0x1c], 1
+call fcn_fffa81d3 ; call 0xfffa81d3
+add esp, 0x10
+
+loc_fffaadae: ; not directly referenced
+imul eax, esi, 0x13c3
+cmp dword [ebx + eax + 0x3756], 2
+jne loc_fffaae62 ; jne 0xfffaae62
+lea eax, [ebp - 0x48]
+mov edx, esi
+push ecx
+push eax
+lea eax, [ebp - 0x50]
+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
+lea ecx, [ebp - 0x44]
+call fcn_fffaa5b6 ; call 0xfffaa5b6
+xor edx, edx
+mov eax, 0x1800
+mov ecx, edx
+add esp, 0x18
+and ecx, 0xfffffc00
+or ecx, 2
+mov edx, ecx
+mov ecx, eax
+or ecx, 0x28
+push edx
+mov eax, ecx
+lea ecx, [esi*8 + 0x48a8]
+push eax
+mov edx, ecx
+mov eax, ebx
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+cmp dword [ebp - 0x5c], 1
+lea edx, [esi*4 + 0x4980]
+lea eax, [edx + 0x20]
+cmove edx, eax
+xor ecx, ecx
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+imul edx, esi, 0x28
+mov ecx, 0x400000
+mov eax, ebx
+add edx, 0x4808
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, esi
+mov ecx, 0x20
+shl edx, 0xa
+mov eax, ebx
+add edx, 0x4200
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaae62: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffaadae ; jne 0xfffaadae
+mov dword [ebp - 0x5c], 0
+
+loc_fffaae73: ; not directly referenced
+movzx eax, byte [ebx + 0x248d]
+mov edi, dword [ebp - 0x5c]
+bt eax, edi
+jb short loc_fffaae92 ; jb 0xfffaae92
+
+loc_fffaae82: ; not directly referenced
+inc dword [ebp - 0x5c]
+cmp dword [ebp - 0x5c], 4
+jne short loc_fffaae73 ; jne 0xfffaae73
+xor esi, esi
+jmp near loc_fffaaf5e ; jmp 0xfffaaf5e
+
+loc_fffaae92: ; not directly referenced
+mov cl, byte [ebp - 0x5c]
+mov esi, 1
+xor edx, edx
+mov eax, ebx
+shl esi, cl
+mov ecx, esi
+call fcn_fffaac43 ; call 0xfffaac43
+mov edx, 1
+mov ecx, esi
+mov edi, eax
+mov eax, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+mov dl, byte [ebp - 0x5c]
+mov dword [ebp - 0x60], 0
+shr dl, 1
+movzx edx, dl
+imul edx, edx, 0x128
+or eax, edi
+movzx eax, al
+mov dword [ebp - 0x64], eax
+lea edi, [ebx + edx + 0x49ae]
+mov dword [ebp - 0x6c], edi
+
+loc_fffaaede: ; not directly referenced
+mov eax, dword [ebp - 0x60]
+xor esi, esi
+mov edi, dword [ebp - 0x6c]
+mov word [ebp - 0x42], ax
+mov word [ebp - 0x3a], ax
+
+loc_fffaaeee: ; not directly referenced
+mov eax, dword [ebp - 0x64]
+bt eax, esi
+jae short loc_fffaaf34 ; jae 0xfffaaf34
+mov eax, dword [edi]
+lea ecx, [ebp - 0x44]
+dec eax
+mov word [ebp - 0x38], ax
+mov ax, word [edi + 4]
+lea edx, [eax - 8]
+mov word [ebp - 0x36], dx
+shr ax, 3
+push edx
+movzx eax, ax
+push 0
+mov edx, esi
+push 0
+push 0
+push 0
+mov dword [ebp - 0x28], eax
+lea eax, [ebp - 0x30]
+push eax
+push 0
+lea eax, [ebp - 0x3c]
+push eax
+mov eax, ebx
+call fcn_fffaa5b6 ; call 0xfffaa5b6
+add esp, 0x20
+
+loc_fffaaf34: ; not directly referenced
+inc esi
+add edi, 0x13c3
+cmp esi, 2
+jne short loc_fffaaeee ; jne 0xfffaaeee
+mov edx, dword [ebp - 0x64]
+mov eax, ebx
+call fcn_fffae670 ; call 0xfffae670
+mov esi, eax
+test eax, eax
+jne short loc_fffaaf5e ; jne 0xfffaaf5e
+inc dword [ebp - 0x60]
+cmp dword [ebp - 0x60], 8
+jne short loc_fffaaede ; jne 0xfffaaede
+jmp near loc_fffaae82 ; jmp 0xfffaae82
+
+loc_fffaaf5e: ; not directly referenced
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffaaf78 ; jne 0xfffaaf78
+mov ecx, 0x3000
+mov edx, 0x48a8
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaaf78: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffaaf92 ; jne 0xfffaaf92
+mov ecx, 0x3000
+mov edx, 0x48b0
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaaf92: ; not directly referenced
+test esi, esi
+je short loc_fffaafaa ; je 0xfffaafaa
+push eax
+push eax
+mov eax, dword [ebp - 0x68]
+push 0xdddc
+push ebx
+call dword [eax + 0x94] ; ucall
+add esp, 0x10
+
+loc_fffaafaa: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaafb4: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+xor edx, edx
+pop ebp
+ret
+
+fcn_fffaafbd: ; not directly referenced
+push ebp
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffaafc2: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 8]
+in eax, dx
+pop ebp
+ret
+
+fcn_fffaafcb: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffaafc2 ; jmp 0xfffaafc2
+
+fcn_fffaafda: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+out dx, eax
+pop ebp
+ret
+
+fcn_fffaafe6: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x18]
+mov dword [ebp + 0xc], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffaafda ; jmp 0xfffaafda
+
+fcn_fffaaffb: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov dl, al
+mov cl, al
+sar dl, 7
+and eax, 0x7f
+sar cl, 7
+and edx, 2
+and ecx, 2
+add edx, 0x74
+add ecx, 0x75
+movzx edx, dl
+out dx, al
+movzx edx, cl
+in al, dx
+pop ebp
+ret
+
+fcn_fffab024: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+in al, dx
+pop ebp
+ret
+
+fcn_fffab02d: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+mov eax, dword [ebp + 0x18]
+out dx, al
+pop ebp
+ret
+
+fcn_fffab039: ; not directly referenced
+push ebp
+mov edx, 0x186a0
+mov ebp, esp
+xor eax, eax
+push ebx
+sub esp, 0x10
+
+loc_fffab047: ; not directly referenced
+test eax, eax
+sete bl
+test edx, edx
+setne cl
+test bl, cl
+je short loc_fffab064 ; je 0xfffab064
+clc
+
+loc_fffab056: ; not directly referenced
+rdrand eax
+mov dword [ebp - 8], eax
+jae short loc_fffab056 ; jae 0xfffab056
+mov eax, dword [ebp - 8]
+dec edx
+jmp short loc_fffab047 ; jmp 0xfffab047
+
+loc_fffab064: ; not directly referenced
+add esp, 0x10
+pop ebx
+pop ebp
+ret
+
+fcn_fffab06a: ; not directly referenced
+push ebp
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffab06f: ; not directly referenced
+push ebp
+mov ebp, esp
+push eax
+mov eax, 0x1000
+in al, 0x99
+pop eax
+pop ebp
+ret
+
+fcn_fffab07d:
+mov edx, dword [0xff7d026c]
+xor eax, eax
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+imul ebx, edx, 0xc
+
+loc_fffab08e:
+cmp edx, 0x13
+ja short loc_fffab0be ; ja 0xfffab0be
+mov esi, dword [ebp + 0xc]
+inc edx
+mov ecx, 3
+mov dword [0xff7d026c], edx
+lea edi, [ebx + eax - 0x82fe84]
+add esi, eax
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov edi, dword [ebp + 0xc]
+mov ecx, dword [edi + eax]
+add eax, 0xc
+test ecx, ecx
+jns short loc_fffab08e ; jns 0xfffab08e
+xor eax, eax
+jmp short loc_fffab0c3 ; jmp 0xfffab0c3
+
+loc_fffab0be:
+mov eax, 0x80000009
+
+loc_fffab0c3:
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffab0c8: ; not directly referenced
+push ebp
+mov ebp, esp
+pop ebp
+jmp near loc_fffd2984 ; jmp 0xfffd2984
+
+fcn_fffab0d1:
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0xc]
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+test edx, edx
+je short loc_fffab0ed ; je 0xfffab0ed
+movzx ecx, cl
+mov dword [ebp + 0x10], ecx
+pop ebp
+jmp near loc_fffd2932 ; jmp 0xfffd2932
+
+loc_fffab0ed:
+pop ebp
+ret
+
+fcn_fffab0ef:
+push ebp
+mov ebp, esp
+pop ebp
+jmp near loc_fffd2917 ; jmp 0xfffd2917
+
+fcn_fffab0f8: ; not directly referenced
+push ebp
+mov ebp, esp
+pop ebp
+jmp near loc_fffd28fc ; jmp 0xfffd28fc
+
+fcn_fffab101:
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 0x10]
+mov eax, dword [ebp + 8]
+mov edx, dword [ebp + 0xc]
+test ecx, ecx
+je short loc_fffab11b ; je 0xfffab11b
+cmp eax, edx
+je short loc_fffab11b ; je 0xfffab11b
+pop ebp
+jmp near loc_fffd2836 ; jmp 0xfffd2836
+
+loc_fffab11b:
+pop ebp
+ret
+
+fcn_fffab11d: ; not directly referenced
+push ebp
+mov ebp, esp
+pop ebp
+jmp near fcn_fffab101 ; jmp 0xfffab101
+
+fcn_fffab126: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x6c
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x68], 0
+mov dword [ebp - 0x4c], 0
+mov dword [ebp - 0x60], 0
+mov eax, dword [ebx + 0x2480]
+mov dword [ebp - 0x58], eax
+mov eax, dword [ebx + 0x1887]
+mov dword [ebp - 0x6c], eax
+mov eax, dword [ebx + 0x188b]
+mov dword [ebp - 0x5c], eax
+lea eax, [ebx + 0x3756]
+mov dword [ebp - 0x50], eax
+mov eax, dword [ebx + 0x5edc]
+lea esi, [eax + 0x1c]
+
+loc_fffab174: ; not directly referenced
+mov eax, dword [ebp - 0x50]
+cmp dword [eax], 2
+jne loc_fffab348 ; jne 0xfffab348
+cmp dword [ebp - 0x5c], 1
+jne short loc_fffab1b7 ; jne 0xfffab1b7
+mov dl, byte [esi + 3]
+mov ecx, 0xff
+mov al, dl
+and edx, 0xffffffbf
+mov byte [esi + 3], dl
+mov edx, dword [ebp - 0x4c]
+shr al, 6
+and eax, 1
+mov byte [esi + 0xcb], al
+mov eax, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [esi]
+mov edx, eax
+mov eax, ebx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffab1b7: ; not directly referenced
+cmp dword [ebp - 0x58], 3
+je loc_fffab30b ; je 0xfffab30b
+mov eax, dword [ebp - 0x50]
+mov dword [ebp - 0x54], 0
+mov dword [ebp - 0x64], eax
+
+loc_fffab1ce: ; not directly referenced
+mov ecx, dword [ebp - 0x54]
+mov eax, 1
+mov dl, cl
+shl eax, cl
+mov ecx, dword [ebp - 0x50]
+test byte [ecx + 0xc4], al
+jne short loc_fffab1f7 ; jne 0xfffab1f7
+
+loc_fffab1e5: ; not directly referenced
+inc dword [ebp - 0x54]
+add dword [ebp - 0x64], 9
+cmp dword [ebp - 0x54], 4
+jne short loc_fffab1ce ; jne 0xfffab1ce
+jmp near loc_fffab27c ; jmp 0xfffab27c
+
+loc_fffab1f7: ; not directly referenced
+cmp dword [ebp - 0x58], 2
+sete cl
+cmp dword [ebp - 0x6c], 0x306d0
+sete al
+test cl, al
+je short loc_fffab1e5 ; je 0xfffab1e5
+mov eax, edx
+shr dl, 1
+and eax, 1
+movzx edx, dl
+imul eax, eax, 0x18
+imul edx, edx, 0x128
+add edx, eax
+mov eax, dword [ebp - 0x50]
+test word [eax + edx + 0x126f], 0x600
+je short loc_fffab1e5 ; je 0xfffab1e5
+xor edi, edi
+
+loc_fffab232: ; not directly referenced
+mov eax, dword [ebp - 0x64]
+mov edx, dword [ebp - 0x4c]
+mov byte [eax + edi + 0x24d], 0x3f
+mov eax, ebx
+push ecx
+mov ecx, dword [ebp - 0x54]
+push 0x3f
+push 2
+push edi
+call fcn_fffa73b0 ; call 0xfffa73b0
+mov ecx, edi
+mov eax, ebx
+or byte [esi + edi*4 + 0x2a], 0x80
+mov edx, dword [ebp - 0x4c]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [esi + edi*4 + 0x28]
+inc edi
+mov edx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+cmp edi, 9
+jne short loc_fffab232 ; jne 0xfffab232
+jmp near loc_fffab1e5 ; jmp 0xfffab1e5
+
+loc_fffab27c: ; not directly referenced
+cmp dword [ebp - 0x5c], 1
+jne loc_fffab30b ; jne 0xfffab30b
+cmp dword [ebp - 0x68], 0
+jne short loc_fffab30b ; jne 0xfffab30b
+mov eax, dword [esi + 0x28]
+mov edx, 0x3a28
+mov edi, eax
+mov dword [ebp - 0x68], eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, edi
+mov edx, edi
+shr ecx, 0x15
+and ecx, 1
+shr edx, 0x15
+and edx, 2
+and eax, 0xfffffffc
+or eax, ecx
+or eax, edx
+mov edx, edi
+mov edi, dword [ebp - 0x60]
+shr edx, 9
+and eax, 0xff01ffff
+and edx, 0xe0000
+or eax, edx
+mov edx, 0x3a28
+or eax, 0x800000
+cmp dword [ebp - 0x58], 2
+mov ecx, eax
+cmove edi, dword [ebp - 0x5c]
+mov eax, ebx
+mov dword [ebp - 0x60], edi
+call fcn_fffae58c ; call 0xfffae58c
+test edi, edi
+je short loc_fffab30b ; je 0xfffab30b
+mov edx, 0x5f09
+mov eax, ebx
+mov ecx, 1
+call fcn_fffae566 ; call 0xfffae566
+mov edx, 0x96
+mov eax, ebx
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffab30b: ; not directly referenced
+cmp byte [ebx + 0x3748], 1
+jne short loc_fffab348 ; jne 0xfffab348
+mov eax, dword [ebp - 0x4c]
+lea edi, [eax*4 + 0x5004]
+mov eax, ebx
+mov edx, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+and eax, 0xfcffffff
+or eax, 0x1000000
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x3c
+mov eax, ebx
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffab348: ; not directly referenced
+inc dword [ebp - 0x4c]
+add esi, 0xcc
+add dword [ebp - 0x50], 0x13c3
+cmp dword [ebp - 0x4c], 2
+jne loc_fffab174 ; jne 0xfffab174
+lea edi, [ebp - 0x3c]
+mov esi, ref_fffd3570 ; mov esi, 0xfffd3570
+mov ecx, 9
+mov eax, ebx
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x48]
+mov esi, ref_fffd3594 ; mov esi, 0xfffd3594
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov ecx, 0x1010101
+mov esi, 8
+push edx
+push edx
+xor edx, edx
+push 0
+push 8
+call fcn_fffa7fde ; call 0xfffa7fde
+lea edi, [ebp - 0x3c]
+add esp, 0x10
+
+loc_fffab39c: ; 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_fffa7fde ; call 0xfffa7fde
+add esp, 0x10
+cmp esi, 0x3e
+jne short loc_fffab39c ; jne 0xfffab39c
+lea edx, [ebp - 0x48]
+mov eax, ebx
+call fcn_fffa665e ; call 0xfffa665e
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffab3e1 ; jne 0xfffab3e1
+mov ecx, 0xa010102
+mov edx, 0x4078
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffab3e1: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffab3fb ; jne 0xfffab3fb
+mov ecx, 0xa010102
+mov edx, 0x4478
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffab3fb: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffab405:
+push ebp
+mov eax, dword [0xff7d0000]
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffab40f:
+push ebp
+mov ebp, esp
+sub esp, 8
+call fcn_fffab405 ; call 0xfffab405
+sub esp, 0xc
+mov edx, dword [eax]
+push dword [ebp + 0x14]
+push 0
+push dword [ebp + 0xc]
+push dword [ebp + 8]
+push eax
+call dword [edx + 0x20] ; ucall
+leave
+ret
+
+fcn_fffab430: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+mov ebx, edx
+sub esp, 0x2c
+mov esi, dword [ebp + 0xc]
+lea eax, [ebp - 0x1c]
+push eax
+push 0
+push 0
+push ref_fffd662c ; push 0xfffd662c
+mov dword [ebp - 0x2c], ecx
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0xc
+mov edx, dword [ebp - 0x1c]
+push dword [ebp + 8]
+mov ecx, ebx
+lea eax, [ebp - 0x2c]
+shr ecx, 1
+and ecx, 0x7f
+push eax
+mov eax, ebx
+shr eax, 0x16
+movzx ebx, bh
+and eax, 1
+push eax
+push edi
+push ebx
+push ecx
+push edx
+call dword [edx] ; ucall
+add esp, 0x20
+test esi, esi
+je short loc_fffab484 ; je 0xfffab484
+mov dword [esi], eax
+
+loc_fffab484: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffab48f: ; not directly referenced
+push ebp
+mov ecx, 1
+mov ebp, esp
+sub esp, 0x20
+push dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+lea eax, [ebp - 9]
+push eax
+mov eax, 4
+call fcn_fffab430 ; call 0xfffab430
+mov al, byte [ebp - 9]
+leave
+ret
+
+fcn_fffab4b3: ; not directly referenced
+push ebp
+mov ecx, 1
+mov ebp, esp
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0xc]
+push dword [ebp + 0x10]
+mov edx, dword [ebp + 8]
+lea eax, [ebp - 9]
+mov byte [ebp - 9], bl
+push eax
+mov eax, 5
+call fcn_fffab430 ; call 0xfffab430
+mov al, bl
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffab4e0: ; not directly referenced
+push ebp
+mov ecx, 2
+mov ebp, esp
+sub esp, 0x20
+push dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+lea eax, [ebp - 0xa]
+push eax
+mov eax, 6
+call fcn_fffab430 ; call 0xfffab430
+mov ax, word [ebp - 0xa]
+leave
+ret
+
+fcn_fffab505:
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, edx
+sub esp, 0x14
+mov dword [edx + 4], eax
+lea eax, [ebp - 0xc]
+mov dword [edx], 0x626d7370
+push eax
+push 0
+push 0
+push ref_fffd6584 ; push 0xfffd6584
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [ebp - 0xc]
+add esp, 0x10
+movzx edx, word [eax + 0x388]
+add eax, 0x38e
+mov dword [ebx + 8], edx
+mov dl, byte [eax - 1]
+mov dword [ebx + 0xce], eax
+lea eax, [ebx + 0x18]
+mov dword [ebx + 0xc], 0x80000010
+mov dword [ebx + 0x10], ref_fffd662c ; mov dword [ebx + 0x10], 0xfffd662c
+mov byte [ebx + 0xcd], dl
+mov dword [ebx + 0x14], eax
+mov dword [ebx + 0x18], fcn_fffb51f9 ; mov dword [ebx + 0x18], 0xfffb51f9
+mov dword [ebx + 0x1c], fcn_fffa5b5e ; mov dword [ebx + 0x1c], 0xfffa5b5e
+mov dword [ebx + 0x20], fcn_fffa5b54 ; mov dword [ebx + 0x20], 0xfffa5b54
+mov dword [ebx + 0x24], fcn_fffa5b4a ; mov dword [ebx + 0x24], 0xfffa5b4a
+mov dword [ebx + 0x38], 0x80000020
+mov dword [ebx + 0x3c], ref_fffd65b0 ; mov dword [ebx + 0x3c], 0xfffd65b0
+mov dword [ebx + 0x40], fcn_fffab5a2 ; mov dword [ebx + 0x40], 0xfffab5a2
+mov byte [ebx + 0x44], 0
+mov byte [ebx + 0xd2], 0
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffab5a2: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 8
+mov eax, dword [ebp + 0xc]
+lea edx, [eax - 0x38]
+mov eax, dword [ebp + 8]
+call fcn_fffab505 ; call 0xfffab505
+xor eax, eax
+leave
+ret
+
+fcn_fffab5ba:
+push ebp
+mov ebp, esp
+push ebx
+push eax
+mov ebx, dword [ebp + 0xc]
+call fcn_fffab405 ; call 0xfffab405
+movzx ebx, bx
+mov edx, dword [eax]
+push dword [ebp + 0x10]
+push ebx
+push 4
+push eax
+call dword [edx + 0x34] ; ucall
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffab5db:
+push ebp
+mov ebp, esp
+sub esp, 8
+call fcn_fffab405 ; call 0xfffab405
+push edx
+push edx
+mov edx, dword [eax]
+push dword [ebp + 8]
+push eax
+call dword [edx + 0x18] ; ucall
+leave
+ret
+
+fcn_fffab5f3:
+push ebp
+mov ebp, esp
+sub esp, 0x18
+call fcn_fffab405 ; call 0xfffab405
+lea ecx, [ebp - 0xc]
+push edx
+push edx
+mov edx, dword [eax]
+push ecx
+push eax
+call dword [edx + 0x30] ; ucall
+mov eax, dword [ebp - 0xc]
+leave
+ret
+
+fcn_fffab60f:
+push ebp
+mov ebp, esp
+sub esp, 8
+call fcn_fffab405 ; call 0xfffab405
+push edx
+mov edx, dword [eax]
+push dword [ebp + 0xc]
+push dword [ebp + 8]
+push eax
+call dword [edx + 0x4c] ; ucall
+leave
+ret
+
+fcn_fffab629: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+mov esi, dword [ebp + 0xc]
+push ebx
+mov ebx, dword [ebp + 8]
+push ebx
+call fcn_fffaafc2 ; call 0xfffaafc2
+mov dword [ebp + 8], ebx
+pop edx
+or eax, esi
+mov dword [ebp + 0xc], eax
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+jmp near fcn_fffaafda ; jmp 0xfffaafda
+
+fcn_fffab64e: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+mov esi, dword [ebp + 0xc]
+push ebx
+mov ebx, dword [ebp + 8]
+push ebx
+call fcn_fffaafc2 ; call 0xfffaafc2
+mov dword [ebp + 8], ebx
+pop edx
+and eax, esi
+mov dword [ebp + 0xc], eax
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+jmp near fcn_fffaafda ; jmp 0xfffaafda
+
+fcn_fffab673:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, ecx
+sub esp, 0x4c
+mov edi, dword [ebp + 0xc]
+lea ecx, [ecx + 0x186e]
+mov dword [ebp - 0x3c], ecx
+mov dword [ebp - 0x44], edx
+mov edx, dword [ebp + 0x10]
+mov ecx, dword [edi + 0x1e]
+mov esi, dword [edi + 9]
+mov dword [ebx + 0x18bd], 0x102
+mov dword [ebx + 0x1877], 2
+mov dword [ebp - 0x40], ecx
+mov ecx, dword [ebx + 0x2443]
+mov dword [ebx + 0x18b9], esi
+mov byte [ebx + 0x1876], 0
+mov dword [ebx + 0x18a3], 0
+mov dword [ebp - 0x30], ecx
+mov cl, byte [esi + 0xf2]
+mov byte [ebx + 0x2407], cl
+mov ecx, dword [esi + 4]
+cmp ecx, 2
+je short loc_fffab6eb ; je 0xfffab6eb
+cmp ecx, 3
+je short loc_fffab6f8 ; je 0xfffab6f8
+dec ecx
+jne short loc_fffab73a ; jne 0xfffab73a
+jmp short loc_fffab70c ; jmp 0xfffab70c
+
+loc_fffab6eb:
+cmp eax, 4
+setne al
+movzx eax, al
+add eax, eax
+jmp short loc_fffab704 ; jmp 0xfffab704
+
+loc_fffab6f8:
+cmp eax, 4
+setne al
+movzx eax, al
+lea eax, [eax + eax*2]
+
+loc_fffab704:
+mov dword [ebx + 0x18a7], eax
+jmp short loc_fffab744 ; jmp 0xfffab744
+
+loc_fffab70c:
+cmp eax, 4
+je short loc_fffab73a ; je 0xfffab73a
+mov dword [ebx + 0x18a7], 1
+movzx eax, byte [esi + 0x53]
+mov dword [ebx + 0x1877], eax
+mov al, byte [esi + 0x54]
+mov byte [ebx + 0x1876], al
+movzx eax, word [esi + 0x4c]
+mov dword [ebx + 0x18a3], eax
+jmp short loc_fffab744 ; jmp 0xfffab744
+
+loc_fffab73a:
+mov dword [ebx + 0x18a7], 0
+
+loc_fffab744:
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 4]
+mov dword [ebx + 0x18c5], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x10]
+mov dword [ebx + 0x18c1], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x14]
+mov dword [ebx + 0x18c9], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x18]
+mov dword [ebx + 0x18d1], 0xfed00000
+mov dword [ebx + 0x18cd], eax
+mov eax, dword [edi + 5]
+movzx eax, word [eax]
+mov dword [ebx + 0x18d9], eax
+movzx eax, word [esi + 1]
+mov dword [ebx + 0x1872], eax
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x1c]
+shr eax, 0x14
+cmp edx, 0x40650
+sete cl
+cmp edx, 0x306c0
+mov dword [ebx + 0x18dd], eax
+sete al
+or cl, al
+mov eax, dword [edi + 5]
+jne short loc_fffab7c4 ; jne 0xfffab7c4
+cmp edx, 0x40660
+jne short loc_fffab7ca ; jne 0xfffab7ca
+
+loc_fffab7c4:
+movzx eax, word [eax + 2]
+jmp short loc_fffab7d5 ; jmp 0xfffab7d5
+
+loc_fffab7ca:
+movzx ecx, word [eax + 2]
+mov eax, 1
+shl eax, cl
+
+loc_fffab7d5:
+mov dword [ebx + 0x1893], eax
+mov eax, dword [edi + 5]
+movzx eax, byte [eax + 4]
+mov byte [ebx + 0x18b3], 0
+shl eax, 5
+mov dword [ebx + 0x188f], eax
+push eax
+push eax
+lea eax, [ebx + 0x189c]
+push eax
+lea eax, [ebx + 0x189b]
+push eax
+lea eax, [ebx + 0x189a]
+push eax
+lea eax, [ebx + 0x1899]
+push eax
+lea eax, [ebx + 0x1898]
+push eax
+lea eax, [ebx + 0x1897]
+push eax
+mov eax, dword [ebp - 0x30]
+call dword [eax + 0x50] ; ucall
+mov eax, dword [edi + 1]
+movzx eax, byte [eax + 0x20]
+mov dword [ebx + 0x187f], eax
+mov eax, dword [edi + 9]
+mov al, byte [eax + 0xc6]
+mov byte [ebx + 0x18b0], al
+mov eax, dword [esi + 0x4e]
+mov word [ebx + 0x1902], 0x3e8
+mov word [ebx + 0x1904], 0x3e8
+mov byte [ebx + 0x18b2], 0
+mov dword [ebx + 0x18ee], eax
+mov al, byte [esi + 0x2e]
+mov byte [ebx + 0x2442], 0
+mov byte [ebx + 0x18b5], al
+mov al, byte [esi + 0x2f]
+mov byte [ebx + 0x23ff], al
+mov al, byte [esi + 0x30]
+mov byte [ebx + 0x2400], al
+mov al, byte [esi + 0x31]
+mov byte [ebx + 0x2401], al
+mov al, byte [esi + 0x6b]
+mov byte [ebx + 0x2402], al
+mov al, byte [ebx + 0x2403]
+mov dl, byte [esi + 0x32]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x33]
+and eax, 0xfffffffd
+and edx, 1
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x34]
+and eax, 0xfffffffb
+and edx, 1
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x35]
+and eax, 0xfffffff7
+and edx, 1
+shl edx, 3
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x36]
+and eax, 0xffffffef
+and edx, 1
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x37]
+and eax, 0xffffffdf
+and edx, 1
+shl edx, 5
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x38]
+and eax, 0xffffffbf
+and edx, 1
+shl edx, 6
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov dl, byte [esi + 0x39]
+and eax, 0x7f
+shl edx, 7
+or eax, edx
+mov byte [ebx + 0x2403], al
+mov al, byte [ebx + 0x2404]
+mov dl, byte [esi + 0x3a]
+and edx, 1
+and eax, 0xfffffffe
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov dl, byte [esi + 0x3b]
+and eax, 0xfffffffd
+and edx, 1
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov dl, byte [esi + 0x3c]
+and eax, 0xfffffffb
+and edx, 1
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov dl, byte [esi + 0x3e]
+and eax, 0xffffffef
+and edx, 1
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov dl, byte [esi + 0x3f]
+and eax, 0xffffffdf
+and edx, 1
+shl edx, 5
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov dl, byte [esi + 0x40]
+and eax, 0xffffffbf
+and edx, 1
+shl edx, 6
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov dl, byte [esi + 0x41]
+and eax, 0x7f
+shl edx, 7
+or eax, edx
+mov byte [ebx + 0x2404], al
+mov al, byte [ebx + 0x2405]
+mov dl, byte [esi + 0x42]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x2405], al
+mov dl, byte [esi + 0x43]
+and eax, 0xfffffffb
+and edx, 1
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x2405], al
+mov dl, byte [esi + 0x44]
+and edx, 1
+shl edx, 3
+and eax, 0xfffffff7
+or eax, edx
+add esp, 0x20
+mov byte [ebx + 0x2405], al
+mov dl, byte [esi + 0x47]
+and eax, 0xffffffbf
+and edx, 1
+shl edx, 6
+or eax, edx
+mov byte [ebx + 0x2405], al
+mov dl, byte [esi + 0x48]
+and eax, 0x7f
+shl edx, 7
+or eax, edx
+mov byte [ebx + 0x2405], al
+mov al, byte [ebx + 0x2406]
+mov dl, byte [esi + 0x49]
+and eax, 0xfffffffe
+and edx, 1
+or eax, edx
+mov byte [ebx + 0x2406], al
+mov dl, byte [esi + 0x4a]
+and eax, 0xfffffffd
+and edx, 1
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x2406], al
+mov dl, byte [esi + 0x4b]
+and eax, 0xfffffffb
+and edx, 1
+shl edx, 2
+or eax, edx
+mov byte [ebx + 0x2406], al
+cmp byte [edi], 1
+jbe short loc_fffabaa2 ; jbe 0xfffabaa2
+mov dl, byte [esi + 0x58]
+and eax, 0xfffffff7
+and edx, 1
+shl edx, 3
+or eax, edx
+mov byte [ebx + 0x2406], al
+mov dl, byte [esi + 0x59]
+and eax, 0xffffffef
+and edx, 1
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x2406], al
+mov dl, byte [esi + 0x5a]
+and eax, 0xffffffdf
+and edx, 1
+shl edx, 5
+or eax, edx
+jmp short loc_fffabaa8 ; jmp 0xfffabaa8
+
+loc_fffabaa2:
+and eax, 0xffffffe7
+or eax, 0x20
+
+loc_fffabaa8:
+mov byte [ebx + 0x2406], al
+mov al, byte [ebx + 0x2405]
+cmp byte [edi], 3
+jbe short loc_fffabb0d ; jbe 0xfffabb0d
+mov dl, byte [esi + 0x5c]
+and eax, 0xfffffffd
+and edx, 1
+add edx, edx
+or eax, edx
+mov byte [ebx + 0x2405], al
+mov al, byte [esi + 0x5d]
+mov byte [ebx + 0x1906], al
+mov al, byte [esi + 0x5e]
+mov byte [ebx + 0x1907], al
+mov al, byte [esi + 0x5f]
+mov byte [ebx + 0x1908], al
+mov al, byte [esi + 0x60]
+mov byte [ebx + 0x1909], al
+mov al, byte [esi + 0x61]
+mov byte [ebx + 0x190a], al
+mov al, byte [esi + 0x62]
+mov byte [ebx + 0x190b], al
+mov al, byte [esi + 0x63]
+mov byte [ebx + 0x190c], al
+jmp short loc_fffabb47 ; jmp 0xfffabb47
+
+loc_fffabb0d:
+or eax, 2
+mov byte [ebx + 0x2405], al
+mov byte [ebx + 0x1906], 0xff
+mov byte [ebx + 0x1907], 0x40
+mov byte [ebx + 0x1908], 1
+mov byte [ebx + 0x1909], 1
+mov byte [ebx + 0x190a], 0
+mov byte [ebx + 0x190b], 7
+mov byte [ebx + 0x190c], 0
+
+loc_fffabb47:
+cmp byte [edi], 4
+jbe short loc_fffabb72 ; jbe 0xfffabb72
+mov eax, dword [esi + 0x64]
+mov edx, 0x5f5e100
+cmp eax, 0x55d4a7f
+jbe short loc_fffabb6a ; jbe 0xfffabb6a
+mov ecx, 0xf4240
+xor edx, edx
+div ecx
+imul edx, eax, 0xf4240
+
+loc_fffabb6a:
+mov dword [ebx + 0x187b], edx
+jmp short loc_fffabb7c ; jmp 0xfffabb7c
+
+loc_fffabb72:
+mov dword [ebx + 0x187b], 0x5f5e100
+
+loc_fffabb7c:
+cmp byte [edi], 5
+mov dl, byte [ebx + 0x2406]
+jbe short loc_fffabb97 ; jbe 0xfffabb97
+mov al, byte [esi + 0x6a]
+and edx, 0xffffffbf
+and eax, 1
+shl eax, 6
+or edx, eax
+jmp short loc_fffabb9a ; jmp 0xfffabb9a
+
+loc_fffabb97:
+or edx, 0x40
+
+loc_fffabb9a:
+mov byte [ebx + 0x2406], dl
+cmp byte [edi], 8
+jbe short loc_fffabbd3 ; jbe 0xfffabbd3
+mov eax, dword [edi + 1]
+mov eax, dword [eax + 0x2b]
+shr eax, 0x14
+mov dword [ebx + 0x18e1], eax
+mov al, byte [esi + 0x6d]
+mov byte [ebx + 0x1917], al
+mov ax, word [esi + 0x6e]
+mov word [ebx + 0x1918], ax
+mov al, byte [esi + 0x70]
+mov byte [ebx + 0x191a], al
+jmp short loc_fffabbf4 ; jmp 0xfffabbf4
+
+loc_fffabbd3:
+mov dword [ebx + 0x18e1], 4
+mov byte [ebx + 0x1917], 2
+mov word [ebx + 0x1918], 0x30ce
+mov byte [ebx + 0x191a], 1
+
+loc_fffabbf4:
+cmp byte [edi], 9
+jbe loc_fffabef9 ; jbe 0xfffabef9
+mov al, byte [esi + 0x71]
+mov byte [ebx + 0x1923], al
+mov al, byte [esi + 0x72]
+mov byte [ebx + 0x1924], al
+mov al, byte [esi + 0x73]
+mov byte [ebx + 0x1925], al
+mov al, byte [esi + 0x74]
+mov byte [ebx + 0x1926], al
+mov eax, dword [ebx + 0x1887]
+cmp eax, 0x40650
+je short loc_fffabc37 ; je 0xfffabc37
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffabc40 ; jne 0xfffabc40
+
+loc_fffabc37:
+mov dl, byte [esi + 0x75]
+mov byte [ebx + 0x1927], dl
+
+loc_fffabc40:
+mov dl, byte [esi + 0x76]
+mov byte [ebx + 0x1928], dl
+mov dl, byte [esi + 0x77]
+mov byte [ebx + 0x1929], dl
+mov dl, byte [esi + 0x78]
+mov byte [ebx + 0x192a], dl
+mov dl, byte [esi + 0x79]
+mov byte [ebx + 0x192b], dl
+mov dl, byte [esi + 0x7a]
+mov byte [ebx + 0x192c], dl
+mov dl, byte [esi + 0x7b]
+mov byte [ebx + 0x192e], dl
+mov dl, byte [esi + 0x7c]
+mov byte [ebx + 0x192d], dl
+mov dl, byte [esi + 0x7d]
+mov byte [ebx + 0x192f], dl
+mov dl, byte [esi + 0x7e]
+mov byte [ebx + 0x1930], dl
+mov dl, byte [esi + 0x7f]
+mov byte [ebx + 0x1931], dl
+mov dl, byte [esi + 0x80]
+mov byte [ebx + 0x1932], dl
+mov dx, word [esi + 0x81]
+mov word [ebx + 0x1933], dx
+mov dl, byte [esi + 0x83]
+mov byte [ebx + 0x1935], dl
+mov dl, byte [esi + 0x84]
+mov byte [ebx + 0x1936], dl
+mov dl, byte [esi + 0x85]
+mov byte [ebx + 0x1937], dl
+mov dx, word [esi + 0x86]
+mov word [ebx + 0x1938], dx
+mov dl, byte [esi + 0x88]
+mov byte [ebx + 0x193a], dl
+mov dl, byte [esi + 0x89]
+mov byte [ebx + 0x193b], dl
+mov dl, byte [esi + 0x8a]
+mov byte [ebx + 0x193c], dl
+mov dl, byte [esi + 0x8b]
+mov byte [ebx + 0x193d], dl
+mov dl, byte [esi + 0x8c]
+mov byte [ebx + 0x193e], dl
+mov dl, byte [esi + 0x8d]
+mov byte [ebx + 0x193f], dl
+mov dl, byte [esi + 0x8e]
+mov byte [ebx + 0x1940], dl
+mov dl, byte [esi + 0x8f]
+mov byte [ebx + 0x1941], dl
+mov dl, byte [esi + 0x90]
+mov byte [ebx + 0x1942], dl
+mov dl, byte [esi + 0x91]
+mov byte [ebx + 0x1943], dl
+mov dl, byte [esi + 0x92]
+mov byte [ebx + 0x1944], dl
+mov dl, byte [esi + 0x93]
+mov byte [ebx + 0x1945], dl
+mov dl, byte [esi + 0x94]
+mov byte [ebx + 0x1946], dl
+mov dl, byte [esi + 0x95]
+mov byte [ebx + 0x1947], dl
+mov dl, byte [esi + 0x96]
+mov byte [ebx + 0x1948], dl
+mov dl, byte [esi + 0x97]
+mov byte [ebx + 0x1949], dl
+mov dl, byte [esi + 0x98]
+mov byte [ebx + 0x194b], dl
+mov dl, byte [esi + 0x99]
+mov byte [ebx + 0x194a], dl
+mov dl, byte [esi + 0xa2]
+mov byte [ebx + 0x194d], dl
+mov dl, byte [esi + 0xa3]
+mov byte [ebx + 0x194c], dl
+mov dl, byte [esi + 0x9a]
+mov byte [ebx + 0x194f], dl
+mov dl, byte [esi + 0x9b]
+mov byte [ebx + 0x194e], dl
+mov dl, byte [esi + 0xa4]
+mov byte [ebx + 0x1951], dl
+mov dl, byte [esi + 0xa5]
+mov byte [ebx + 0x1950], dl
+mov dl, byte [esi + 0x9c]
+mov byte [ebx + 0x1953], dl
+mov dl, byte [esi + 0x9d]
+mov byte [ebx + 0x1952], dl
+mov dl, byte [esi + 0xa6]
+mov byte [ebx + 0x1955], dl
+mov dl, byte [esi + 0xa7]
+mov byte [ebx + 0x1954], dl
+mov dl, byte [esi + 0x9e]
+mov byte [ebx + 0x1957], dl
+mov dl, byte [esi + 0x9f]
+mov byte [ebx + 0x1956], dl
+mov dl, byte [esi + 0xa8]
+mov byte [ebx + 0x1959], dl
+mov dl, byte [esi + 0xa9]
+mov byte [ebx + 0x1958], dl
+mov dl, byte [esi + 0xa0]
+mov byte [ebx + 0x195b], dl
+mov dl, byte [esi + 0xa1]
+mov byte [ebx + 0x195a], dl
+mov dl, byte [esi + 0xaa]
+mov byte [ebx + 0x195d], dl
+mov dl, byte [esi + 0xab]
+mov byte [ebx + 0x195c], dl
+mov dl, byte [esi + 0xac]
+mov byte [ebx + 0x195e], dl
+mov dx, word [esi + 0xad]
+mov word [ebx + 0x195f], dx
+mov dl, byte [esi + 0xaf]
+mov byte [ebx + 0x1961], dl
+mov dl, byte [esi + 0xb0]
+mov byte [ebx + 0x1962], dl
+cmp eax, 0x40650
+je short loc_fffabedc ; je 0xfffabedc
+cmp dword [ebx + 0x188b], 1
+jne loc_fffac030 ; jne 0xfffac030
+
+loc_fffabedc:
+mov al, byte [esi + 0xb1]
+mov byte [ebx + 0x1963], al
+mov al, byte [esi + 0xb2]
+mov byte [ebx + 0x1964], al
+jmp near loc_fffac030 ; jmp 0xfffac030
+
+loc_fffabef9:
+mov ecx, dword [ebx + 0x1887]
+mov byte [ebx + 0x1923], 0
+mov byte [ebx + 0x1924], 0
+mov byte [ebx + 0x1925], 0
+mov byte [ebx + 0x1926], 1
+cmp ecx, 0x40650
+je short loc_fffabf2c ; je 0xfffabf2c
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffabf33 ; jne 0xfffabf33
+
+loc_fffabf2c:
+mov byte [ebx + 0x1927], 0
+
+loc_fffabf33:
+mov byte [ebx + 0x1928], 0
+lea eax, [ebx + 0x193a]
+xor edx, edx
+mov byte [ebx + 0x1929], 1
+mov byte [ebx + 0x192a], 0
+mov byte [ebx + 0x192c], 3
+mov byte [ebx + 0x192f], 0
+mov byte [ebx + 0x1930], 0
+mov byte [ebx + 0x1931], 0
+mov byte [ebx + 0x1932], 0
+mov word [ebx + 0x1933], 0
+mov byte [ebx + 0x1935], 0
+mov byte [ebx + 0x1936], 0
+mov byte [ebx + 0x1937], 0
+mov word [ebx + 0x1938], 0
+
+loc_fffabf9a:
+mov byte [ebx + edx + 0x192d], 0
+inc edx
+add eax, 2
+mov byte [eax - 2], 0xff
+mov byte [eax + 2], 0xff
+mov byte [eax + 6], 0xff
+mov byte [eax + 0xa], 0xff
+mov byte [eax + 0xe], 0
+mov byte [eax + 0x12], 0
+mov byte [eax + 0x16], 0
+mov byte [eax + 0x1a], 0
+mov byte [eax + 0x1e], 0
+mov byte [eax - 1], 0xff
+mov byte [eax + 3], 0xff
+mov byte [eax + 7], 0xff
+mov byte [eax + 0xb], 0xff
+mov byte [eax + 0xf], 0
+mov byte [eax + 0x13], 0
+mov byte [eax + 0x17], 0
+mov byte [eax + 0x1b], 0
+mov byte [eax + 0x1f], 0
+cmp edx, 2
+jne short loc_fffabf9a ; jne 0xfffabf9a
+mov byte [ebx + 0x195e], 1
+mov word [ebx + 0x195f], 0x200
+mov byte [ebx + 0x1961], 0
+mov byte [ebx + 0x1962], 0x30
+cmp ecx, 0x40650
+je short loc_fffac022 ; je 0xfffac022
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffac030 ; jne 0xfffac030
+
+loc_fffac022:
+mov byte [ebx + 0x1963], 1
+mov byte [ebx + 0x1964], 0x40
+
+loc_fffac030:
+cmp byte [edi], 0xa
+jbe short loc_fffac05b ; jbe 0xfffac05b
+mov al, byte [esi + 0xc2]
+mov byte [ebx + 0x18b7], al
+mov al, byte [esi + 0xc3]
+mov byte [ebx + 0x18b8], al
+mov al, byte [esi + 0xc4]
+mov byte [ebx + 0x2411], al
+jmp short loc_fffac070 ; jmp 0xfffac070
+
+loc_fffac05b:
+mov byte [ebx + 0x18b7], 1
+mov byte [ebx + 0x18b8], 1
+mov byte [ebx + 0x2411], 0
+
+loc_fffac070:
+cmp byte [edi], 0xb
+mov al, byte [ebx + 0x2404]
+jbe short loc_fffac08e ; jbe 0xfffac08e
+mov dl, byte [esi + 0xc5]
+and eax, 0xfffffff7
+and edx, 1
+shl edx, 3
+or eax, edx
+jmp short loc_fffac091 ; jmp 0xfffac091
+
+loc_fffac08e:
+or eax, 8
+
+loc_fffac091:
+mov byte [ebx + 0x2404], al
+mov cl, byte [ebx + 0x2405]
+cmp byte [edi], 0xe
+jbe loc_fffac149 ; jbe 0xfffac149
+mov al, byte [esi + 0xf3]
+and ecx, 0xffffffef
+mov dl, cl
+xor ecx, ecx
+mov byte [ebx + 0x1965], al
+mov al, byte [esi + 0xce]
+and eax, 1
+shl eax, 4
+or edx, eax
+mov byte [ebx + 0x2405], dl
+mov al, byte [esi + 0xcf]
+mov byte [ebx + 0x190d], al
+mov al, byte [esi + 0xd1]
+mov byte [ebx + 0x2420], al
+
+loc_fffac0e5:
+mov eax, dword [esi + ecx + 0xd2]
+mov edx, dword [esi + ecx + 0xd6]
+mov dword [ebx + ecx + 0x2421], eax
+mov dword [ebx + ecx + 0x2425], edx
+add ecx, 8
+cmp ecx, 0x20
+jne short loc_fffac0e5 ; jne 0xfffac0e5
+mov al, byte [esi + 0xd0]
+mov byte [ebx + 0x240f], al
+mov al, byte [esi + 0xf4]
+mov byte [ebx + 0x191b], al
+mov eax, dword [esi + 0xf5]
+mov dword [ebx + 0x191c], eax
+mov ax, word [esi + 0xf9]
+mov word [ebx + 0x1920], ax
+mov al, byte [esi + 0xfb]
+mov byte [ebx + 0x1922], al
+jmp short loc_fffac1a0 ; jmp 0xfffac1a0
+
+loc_fffac149:
+cmp dword [ebx + 0x188b], 1
+mov al, cl
+mov byte [ebx + 0x1965], 1
+mov byte [ebx + 0x190d], 0
+setne dl
+and eax, 0xffffffef
+shl edx, 4
+or eax, edx
+mov byte [ebx + 0x2405], al
+mov byte [ebx + 0x2420], 0
+mov byte [ebx + 0x240f], 0
+mov byte [ebx + 0x191b], 1
+mov dword [ebx + 0x191c], 0x320
+mov word [ebx + 0x1920], 0x118
+mov byte [ebx + 0x1922], 7
+
+loc_fffac1a0:
+cmp byte [edi], 0xf
+mov dl, byte [ebx + 0x2405]
+jbe short loc_fffac1ca ; jbe 0xfffac1ca
+mov al, byte [esi + 0xfc]
+and edx, 0xffffffdf
+mov byte [ebx + 0x2410], al
+mov al, byte [esi + 0xfd]
+and eax, 1
+shl eax, 5
+or edx, eax
+jmp short loc_fffac1d4 ; jmp 0xfffac1d4
+
+loc_fffac1ca:
+mov byte [ebx + 0x2410], 0
+and edx, 0xffffffdf
+
+loc_fffac1d4:
+mov byte [ebx + 0x2405], dl
+cmp byte [edi], 0x11
+jbe short loc_fffac207 ; jbe 0xfffac207
+movzx eax, byte [esi + 0xfe]
+mov dword [ebx + 0x190e], eax
+movzx eax, byte [esi + 0xff]
+mov dword [ebx + 0x1912], eax
+mov al, byte [esi + 0x100]
+mov byte [ebx + 0x1916], al
+jmp short loc_fffac222 ; jmp 0xfffac222
+
+loc_fffac207:
+mov dword [ebx + 0x190e], 0
+mov dword [ebx + 0x1912], 0xe
+mov byte [ebx + 0x1916], 0
+
+loc_fffac222:
+cmp byte [edi], 0x12
+mov byte [ebp - 0x45], 0xff
+jbe short loc_fffac234 ; jbe 0xfffac234
+mov al, byte [esi + 0x101]
+mov byte [ebp - 0x45], al
+
+loc_fffac234:
+mov dword [ebx + 0x189f], 0
+mov byte [ebx + 0x189e], 0
+mov al, byte [esi + 0xc7]
+mov byte [ebx + 0x241f], al
+mov al, byte [esi + 0xcc]
+mov byte [ebx + 0x2441], 0
+mov byte [ebx + 0x240c], al
+mov al, byte [esi + 0x11]
+mov byte [ebx + 0x18b4], al
+mov al, byte [esi + 0x2c]
+mov byte [ebx + 0x18b6], al
+mov al, byte [esi]
+mov byte [ebx + 0x18b1], al
+mov al, byte [edi + 0x22]
+mov byte [ebx + 0x2408], al
+mov eax, dword [ebx + 0x1887]
+cmp eax, 0x40650
+je short loc_fffac2a1 ; je 0xfffac2a1
+cmp dword [ebx + 0x188b], 1
+jne loc_fffac354 ; jne 0xfffac354
+
+loc_fffac2a1:
+mov dl, byte [esi + 0x57]
+mov byte [ebx + 0x2409], dl
+cmp eax, 0x40670
+je short loc_fffac2b8 ; je 0xfffac2b8
+mov byte [ebx + 0x240a], 0
+
+loc_fffac2b8:
+cmp dword [ebx + 0x188b], 1
+jne loc_fffac354 ; jne 0xfffac354
+mov eax, dword [ebp - 0x30]
+mov byte [ebx + 0x240b], 0
+mov eax, dword [eax + 0x80]
+test eax, eax
+je short loc_fffac2ec ; je 0xfffac2ec
+lea edx, [ebp - 0x20]
+push edx
+lea edx, [ebp - 0x1c]
+push edx
+push 0x1b
+push 1
+call eax
+add esp, 0x10
+jmp short loc_fffac2f3 ; jmp 0xfffac2f3
+
+loc_fffac2ec:
+mov dword [ebp - 0x1c], 0
+
+loc_fffac2f3:
+cmp dword [ebp - 0x1c], 0
+je short loc_fffac344 ; je 0xfffac344
+mov dx, word [ebp - 0x1a]
+mov ecx, 0xb
+xor eax, eax
+mov word [ebp - 0x2c], 0x4e20
+and edx, 0xfff
+mov dword [ebp - 0x38], edx
+
+loc_fffac313:
+mov edx, dword [ebp - 0x38]
+sar edx, cl
+mov dword [ebp - 0x34], edx
+mov edx, dword [ebp - 0x2c]
+add edx, eax
+test byte [ebp - 0x34], 1
+cmovne eax, edx
+dec ecx
+shr word [ebp - 0x2c], 1
+cmp ecx, 0xffffffff
+jne short loc_fffac313 ; jne 0xfffac313
+mov ecx, 0xa
+xor edx, edx
+div cx
+mov word [ebx + 0x1902], ax
+jmp short loc_fffac34d ; jmp 0xfffac34d
+
+loc_fffac344:
+mov word [ebx + 0x1902], 0x352
+
+loc_fffac34d:
+mov byte [ebx + 0x240d], 0
+
+loc_fffac354:
+movzx eax, byte [ebp - 0x44]
+lea ecx, [ebx + 0x19bb]
+mov byte [ebx + 0x196a], 0
+mov dword [ebp - 0x2c], 0
+mov dword [ebp - 0x50], eax
+
+loc_fffac36f:
+mov edx, dword [ebp - 0x2c]
+mov al, byte [ebp - 0x45]
+mov byte [ebp - 0x34], dl
+cmp dl, al
+je short loc_fffac3c9 ; je 0xfffac3c9
+mov eax, dword [ebp - 0x2c]
+mov al, byte [esi + eax + 0x2a]
+cmp al, 2
+je short loc_fffac3a2 ; je 0xfffac3a2
+cmp al, 3
+je short loc_fffac3c9 ; je 0xfffac3c9
+dec al
+jne short loc_fffac3ea ; jne 0xfffac3ea
+mov dword [ecx - 0x48], 1
+mov dword [ecx + 0x22f], 0
+jmp short loc_fffac3b3 ; jmp 0xfffac3b3
+
+loc_fffac3a2:
+mov dword [ecx - 0x48], 0
+mov dword [ecx + 0x22f], 1
+
+loc_fffac3b3:
+mov dword [ecx - 0x50], 2
+inc byte [ebx + 0x196a]
+mov dword [ecx - 0x4c], 1
+jmp short loc_fffac40f ; jmp 0xfffac40f
+
+loc_fffac3c9:
+mov dword [ecx - 0x48], 1
+mov dword [ecx + 0x22f], 1
+mov dword [ecx - 0x50], 1
+mov dword [ecx - 0x4c], 0
+jmp short loc_fffac40f ; jmp 0xfffac40f
+
+loc_fffac3ea:
+mov dword [ecx - 0x48], 0
+mov dword [ecx + 0x22f], 0
+mov dword [ecx - 0x50], 2
+inc byte [ebx + 0x196a]
+mov dword [ecx - 0x4c], 2
+
+loc_fffac40f:
+mov edx, dword [ebp - 0x40]
+push eax
+imul eax, dword [ebp - 0x2c], 0xc
+push 0xc
+add eax, dword [edx + 0xd4]
+mov dword [ebp - 0x38], ecx
+push eax
+lea eax, [ecx + 0x4ee]
+push eax
+mov eax, dword [ebp - 0x30]
+call dword [eax + 0x58] ; ucall
+mov edx, dword [ebp - 0x40]
+add esp, 0xc
+push 8
+mov ecx, dword [ebp - 0x2c]
+mov eax, dword [edx + 0xd8]
+lea eax, [eax + ecx*8]
+mov ecx, dword [ebp - 0x38]
+push eax
+lea eax, [ecx + 0x4a6]
+push eax
+mov eax, dword [ebp - 0x30]
+call dword [eax + 0x58] ; ucall
+mov al, byte [ebp - 0x34]
+add esp, 0x10
+mov ecx, dword [ebp - 0x38]
+mov dword [ebp - 0x38], 0
+add eax, eax
+mov byte [ebp - 0x47], al
+mov al, byte [ebp - 0x2c]
+mov dword [ebp - 0x34], ecx
+and eax, 7
+mov byte [ebp - 0x46], al
+shl byte [ebp - 0x46], 4
+
+loc_fffac47a:
+mov dword [ebp - 0x54], ecx
+mov ecx, dword [ebp - 0x34]
+mov edx, dword [edi + 1]
+mov eax, ecx
+sub eax, 0x48
+mov dword [ebp - 0x4c], eax
+mov al, byte [ebp - 0x47]
+add eax, dword [ebp - 0x38]
+movzx eax, al
+mov al, byte [edx + eax]
+mov edx, dword [ebp - 0x30]
+mov byte [ecx + 0x22e], al
+push eax
+push 3
+push ref_fffd3620 ; push 0xfffd3620
+lea eax, [ecx - 4]
+push eax
+call dword [edx + 0x58] ; ucall
+mov ecx, dword [ebp - 0x34]
+add esp, 0x10
+mov al, byte [ebp - 0x38]
+mov cl, byte [ecx + 0x22e]
+and eax, 0xf
+test cl, cl
+setne dl
+or al, byte [ebp - 0x46]
+mov byte [ebp - 0x48], cl
+mov cl, dl
+shl ecx, 7
+or eax, ecx
+mov ecx, dword [ebp - 0x4c]
+mov byte [ecx + 0x47], al
+mov ecx, dword [ebp - 0x34]
+cmp dword [ecx - 0x48], 1
+mov ecx, dword [ebp - 0x54]
+ja short loc_fffac552 ; ja 0xfffac552
+test dl, dl
+je short loc_fffac523 ; je 0xfffac523
+mov eax, dword [ebp - 0x44]
+cmp eax, 3
+sete dl
+test eax, eax
+sete al
+or dl, al
+je short loc_fffac552 ; je 0xfffac552
+push edx
+movzx eax, byte [ebp - 0x48]
+push 0x41
+push ref_fffd35a0 ; push 0xfffd35a0
+push 0x3c
+push ref_fffd35e4 ; push 0xfffd35e4
+push dword [ebp - 0x34]
+mov dword [ebp - 0x4c], ecx
+push eax
+mov eax, dword [ebp - 0x30]
+push dword [ebp - 0x50]
+call dword [eax + 0x78] ; ucall
+add esp, 0x20
+jmp short loc_fffac54f ; jmp 0xfffac54f
+
+loc_fffac523:
+mov dword [ebp - 0x4c], ecx
+mov ecx, dword [ebp - 0x2c]
+push eax
+push 0x200
+mov eax, ecx
+add eax, ecx
+mov ecx, dword [ebp - 0x40]
+add eax, dword [ebp - 0x38]
+shl eax, 9
+add eax, dword [ecx + 0xd0]
+push eax
+mov eax, dword [ebp - 0x30]
+push dword [ebp - 0x34]
+call dword [eax + 0x58] ; ucall
+add esp, 0x10
+
+loc_fffac54f:
+mov ecx, dword [ebp - 0x4c]
+
+loc_fffac552:
+inc dword [ebp - 0x38]
+add dword [ebp - 0x34], 0x277
+cmp dword [ebp - 0x38], 2
+jne loc_fffac47a ; jne 0xfffac47a
+inc dword [ebp - 0x2c]
+add ecx, 0x54a
+cmp dword [ebp - 0x2c], 2
+jne loc_fffac36f ; jne 0xfffac36f
+mov eax, dword [ebp - 0x44]
+mov edx, edi
+cmp eax, 2
+je short loc_fffac59a ; je 0xfffac59a
+cmp eax, 3
+je short loc_fffac5a9 ; je 0xfffac5a9
+dec eax
+mov eax, dword [ebp - 0x3c]
+jne short loc_fffac5b8 ; jne 0xfffac5b8
+call fcn_fffc3e29 ; call 0xfffc3e29
+mov eax, 1
+jmp short loc_fffac5bf ; jmp 0xfffac5bf
+
+loc_fffac59a:
+mov eax, dword [ebp - 0x3c]
+call fcn_fffc3e29 ; call 0xfffc3e29
+mov eax, 2
+jmp short loc_fffac5bf ; jmp 0xfffac5bf
+
+loc_fffac5a9:
+mov eax, dword [ebp - 0x3c]
+call fcn_fffc3e29 ; call 0xfffc3e29
+mov eax, 3
+jmp short loc_fffac5bf ; jmp 0xfffac5bf
+
+loc_fffac5b8:
+call fcn_fffc3e29 ; call 0xfffc3e29
+xor eax, eax
+
+loc_fffac5bf:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffac5c7: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov esi, 1
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 8]
+lea ecx, [edx - 4]
+cmp ecx, 3
+cmova esi, dword [ebp + 0x10]
+and edi, 3
+mov dword [ebp - 0x1c], ebx
+mov ebx, dword [ebp + 0xc]
+cmp edi, 3
+sete cl
+test al, al
+sete dl
+mov dword [ebp - 0x20], ebx
+test cl, dl
+jne short loc_fffac666 ; jne 0xfffac666
+mov ecx, 0xffff
+xor ebx, ebx
+test al, al
+je short loc_fffac60f ; je 0xfffac60f
+or ecx, 0xffffffff
+xor ebx, ebx
+
+loc_fffac60f: ; not directly referenced
+test esi, esi
+jne short loc_fffac62a ; jne 0xfffac62a
+cmp dword [ebp - 0x20], ebx
+jb short loc_fffac626 ; jb 0xfffac626
+ja short loc_fffac61f ; ja 0xfffac61f
+cmp dword [ebp - 0x1c], ecx
+
+loc_fffac61d: ; not directly referenced
+jbe short loc_fffac626 ; jbe 0xfffac626
+
+loc_fffac61f: ; not directly referenced
+mov eax, 0x80000003
+jmp short loc_fffac66b ; jmp 0xfffac66b
+
+loc_fffac626: ; not directly referenced
+xor eax, eax
+jmp short loc_fffac66b ; jmp 0xfffac66b
+
+loc_fffac62a: ; not directly referenced
+push eax
+push edi
+push ebx
+push ecx
+call fcn_fffab0ef ; call 0xfffab0ef
+lea ecx, [esi - 1]
+add esp, 0x10
+cmp edx, 0
+ja short loc_fffac642 ; ja 0xfffac642
+cmp eax, ecx
+jb short loc_fffac61f ; jb 0xfffac61f
+
+loc_fffac642: ; not directly referenced
+push ecx
+push edi
+xor edi, edi
+sub eax, esi
+sbb edx, edi
+add eax, 1
+adc edx, 0
+push edx
+push eax
+call fcn_fffab0f8 ; call 0xfffab0f8
+add esp, 0x10
+cmp dword [ebp - 0x20], edx
+ja short loc_fffac61f ; ja 0xfffac61f
+jb short loc_fffac626 ; jb 0xfffac626
+cmp dword [ebp - 0x1c], eax
+jmp short loc_fffac61d ; jmp 0xfffac61d
+
+loc_fffac666: ; not directly referenced
+mov eax, 0x80000002
+
+loc_fffac66b: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffac673:
+push ebp
+mov ebp, esp
+pop ebp
+jmp near loc_fffd286c ; jmp 0xfffd286c
+
+fcn_fffac67c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+xor eax, eax
+push ebx
+lea esi, [edi + 0x374e]
+sub esp, 0x3c
+mov byte [ebp - 0x29], 0
+mov dword [ebp - 0x3c], esi
+
+loc_fffac696: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x29], 1
+setbe dl
+test cl, dl
+je loc_fffac7df ; je 0xfffac7df
+movzx eax, byte [ebp - 0x29]
+imul edx, eax, 0x13c3
+mov dword [ebp - 0x30], eax
+lea eax, [edi + edx]
+cmp dword [eax + 0x3756], 2
+jne loc_fffac7d0 ; jne 0xfffac7d0
+mov ebx, dword [ebp - 0x3c]
+xor ecx, ecx
+mov dword [ebp - 0x38], eax
+lea esi, [ebx + edx + 8]
+mov dword [ebp - 0x34], esi
+mov esi, 1
+
+loc_fffac6db: ; not directly referenced
+mov edx, dword [ebp - 0x38]
+mov eax, 1
+mov bl, cl
+shl eax, cl
+test byte [edx + 0x381a], al
+je loc_fffac7ac ; je 0xfffac7ac
+cmp byte [edi + 0x247b], 0
+je short loc_fffac719 ; je 0xfffac719
+mov al, cl
+mov esi, dword [ebp - 0x34]
+shr al, 1
+movzx eax, al
+imul eax, eax, 0x128
+mov si, word [esi + eax + 0x126d]
+jmp near loc_fffac7a2 ; jmp 0xfffac7a2
+
+loc_fffac719: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+mov eax, edi
+mov dword [ebp - 0x40], ecx
+call fcn_fffa6c42 ; call 0xfffa6c42
+test eax, eax
+je loc_fffac7da ; je 0xfffac7da
+mov dl, byte [eax + 1]
+xor eax, eax
+mov ecx, dword [ebp - 0x40]
+test dl, dl
+je short loc_fffac77a ; je 0xfffac77a
+cmp dl, 0x3c
+je short loc_fffac764 ; je 0xfffac764
+cmp dl, 0x78
+je short loc_fffac768 ; je 0xfffac768
+cmp dl, 0x28
+je short loc_fffac76c ; je 0xfffac76c
+cmp dl, 0xf0
+je short loc_fffac770 ; je 0xfffac770
+cmp dl, 0x30
+je short loc_fffac774 ; je 0xfffac774
+cmp dl, 0x50
+je short loc_fffac778 ; je 0xfffac778
+cmp dl, 0x22
+mov al, 7
+mov dl, 0
+cmovne eax, edx
+jmp short loc_fffac77a ; jmp 0xfffac77a
+
+loc_fffac764: ; not directly referenced
+mov al, 1
+jmp short loc_fffac77a ; jmp 0xfffac77a
+
+loc_fffac768: ; not directly referenced
+mov al, 2
+jmp short loc_fffac77a ; jmp 0xfffac77a
+
+loc_fffac76c: ; not directly referenced
+mov al, 3
+jmp short loc_fffac77a ; jmp 0xfffac77a
+
+loc_fffac770: ; not directly referenced
+mov al, 4
+jmp short loc_fffac77a ; jmp 0xfffac77a
+
+loc_fffac774: ; not directly referenced
+mov al, 5
+jmp short loc_fffac77a ; jmp 0xfffac77a
+
+loc_fffac778: ; not directly referenced
+mov al, 6
+
+loc_fffac77a: ; not directly referenced
+shl eax, 8
+and si, 0xf8ff
+or esi, eax
+mov al, bl
+shr al, 1
+movzx eax, al
+imul eax, eax, 0x128
+add eax, dword [ebp - 0x34]
+mov word [eax + 0x126d], si
+mov word [eax + 0x1285], si
+
+loc_fffac7a2: ; not directly referenced
+shr bl, 1
+movzx ebx, bl
+mov word [ebp + ebx*2 - 0x1c], si
+
+loc_fffac7ac: ; not directly referenced
+add ecx, 2
+cmp ecx, 4
+jne loc_fffac6db ; jne 0xfffac6db
+mov edx, dword [ebp - 0x30]
+sub esp, 0xc
+mov cl, 1
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, edi
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+jmp short loc_fffac7d2 ; jmp 0xfffac7d2
+
+loc_fffac7d0: ; not directly referenced
+xor eax, eax
+
+loc_fffac7d2: ; not directly referenced
+inc byte [ebp - 0x29]
+jmp near loc_fffac696 ; jmp 0xfffac696
+
+loc_fffac7da: ; not directly referenced
+mov eax, 1
+
+loc_fffac7df: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffac7e7: ; not directly referenced
+push ebp
+mov eax, 1
+mov ebp, esp
+movzx ecx, byte [ebp + 0x10]
+push esi
+movzx esi, byte [ebp + 0xc]
+mov edx, dword [ebp + 8]
+push ebx
+sub ecx, esi
+shl eax, cl
+mov ecx, esi
+dec eax
+movzx ebx, dl
+shl eax, cl
+lea ecx, [esi - 1]
+sar ebx, cl
+test ebx, ebx
+je short loc_fffac815 ; je 0xfffac815
+or eax, edx
+jmp short loc_fffac819 ; jmp 0xfffac819
+
+loc_fffac815: ; not directly referenced
+not eax
+and eax, edx
+
+loc_fffac819: ; not directly referenced
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffac81d: ; not directly referenced
+push ebp
+mov ebp, esp
+movzx eax, byte [ebp + 0xc]
+imul eax, eax, 0x13c3
+add eax, dword [ebp + 8]
+pop ebp
+cmp dword [eax + 0x130b], 2
+sete al
+movzx eax, al
+ret
+
+fcn_fffac83c: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov ecx, dword [ebp + 0xc]
+mov edx, dword [eax + 0xd5]
+and edx, 0xfffffffd
+dec edx
+jne short loc_fffac856 ; jne 0xfffac856
+mov dl, byte [ecx + 0x3e]
+jmp short loc_fffac85c ; jmp 0xfffac85c
+
+loc_fffac856: ; not directly referenced
+mov dl, byte [ecx + 0x82]
+
+loc_fffac85c: ; not directly referenced
+mov cl, dl
+and edx, 0x1f
+shr cl, 7
+movzx ecx, cl
+shl ecx, 5
+or edx, ecx
+mov byte [eax + 0xf5], dl
+mov eax, 1
+pop ebp
+ret
+
+fcn_fffac879: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x3c], 0
+mov dword [ebp - 0x20], 0
+mov edi, dword [eax + 0x1887]
+mov dword [ebp - 0x2c], edi
+lea edi, [eax + 0x2407]
+mov dword [ebp - 0x48], edi
+
+loc_fffac8a5: ; not directly referenced
+mov edi, dword [ebp - 0x20]
+mov edx, 0x4b0
+lea ecx, [edi - 2]
+cmp ecx, 1
+ja short loc_fffac8d7 ; ja 0xfffac8d7
+cmp byte [eax + 0x3749], 0
+jne short loc_fffac8d5 ; jne 0xfffac8d5
+
+loc_fffac8be: ; not directly referenced
+inc dword [ebp - 0x20]
+add dword [ebp - 0x3c], 0x23
+cmp dword [ebp - 0x20], 4
+jne short loc_fffac8a5 ; jne 0xfffac8a5
+mov edx, 0xfffffffe
+jmp near loc_fffacb46 ; jmp 0xfffacb46
+
+loc_fffac8d5: ; not directly referenced
+xor edx, edx
+
+loc_fffac8d7: ; not directly referenced
+mov edi, dword [ebp - 0x20]
+mov dword [ebp + edi*4 - 0x1c], edx
+mov edi, dword [ebp - 0x3c]
+lea edx, [eax + 0x1973]
+mov dword [ebp - 0x30], edx
+lea edx, [eax + 0x3756]
+mov dword [ebp - 0x28], edx
+lea ebx, [edi + 0x18b]
+add edi, 0xbb
+mov dword [ebp - 0x40], ebx
+mov dword [ebp - 0x44], edi
+
+loc_fffac905: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x38], edx
+
+loc_fffac912: ; not directly referenced
+mov ebx, dword [ebp - 0x28]
+mov edi, dword [ebp - 0x24]
+cmp dword [ebx + edi + 0x1173], 2
+jne loc_fffacb0c ; jne 0xfffacb0c
+mov edi, dword [ebp - 0x20]
+cmp edi, 1
+je loc_fffac9d2 ; je 0xfffac9d2
+jb loc_fffac9e0 ; jb 0xfffac9e0
+cmp edi, 3
+ja loc_fffac9e0 ; ja 0xfffac9e0
+mov edx, ebx
+mov ebx, dword [ebp - 0x24]
+cmp edi, 2
+mov dl, byte [edx + ebx + 0x1269]
+jne short loc_fffac95f ; jne 0xfffac95f
+and dl, 1
+jne short loc_fffac96a ; jne 0xfffac96a
+xor di, di
+jmp near loc_fffacafc ; jmp 0xfffacafc
+
+loc_fffac95f: ; not directly referenced
+xor edi, edi
+and dl, 2
+je loc_fffacafc ; je 0xfffacafc
+
+loc_fffac96a: ; not directly referenced
+mov edi, dword [ebp - 0x28]
+mov edx, dword [ebp - 0x24]
+mov ecx, dword [ebp - 0x44]
+mov ebx, dword [ebp - 0x40]
+mov edx, dword [edi + edx + 0x1248]
+mov edi, dword [ebp - 0x38]
+and edx, 0xfffffffd
+add ebx, edi
+add ecx, edi
+dec edx
+mov edx, 0x3e7
+cmovne ecx, ebx
+mov edi, 0x672
+mov cl, byte [ecx]
+mov ebx, ecx
+and ebx, 0x1f
+imul ebx, ebx, 0x32
+cmp ebx, 0x3e7
+cmovbe edx, ebx
+mov ebx, 0x4b0
+shr cl, 5
+and ecx, 3
+imul ecx, ecx, 0x3e8
+add edx, ecx
+cmp edx, 0x4b0
+cmovae ebx, edx
+cmp ebx, 0x672
+cmovbe edi, ebx
+jmp near loc_fffacafc ; jmp 0xfffacafc
+
+loc_fffac9d2: ; not directly referenced
+mov edi, dword [eax + 0x18a3]
+test edi, edi
+jne loc_fffacafc ; jne 0xfffacafc
+
+loc_fffac9e0: ; not directly referenced
+mov edi, dword [ebp - 0x24]
+mov ebx, dword [ebp - 0x28]
+mov edx, dword [ebx + edi + 0x1248]
+mov edi, 0x4b0
+and edx, 0xfffffffd
+dec edx
+jne loc_fffacafc ; jne 0xfffacafc
+mov edx, dword [ebp - 0x38]
+mov edi, dword [ebp - 0x2c]
+mov cl, byte [edx + 0x4e]
+mov dl, cl
+mov bl, cl
+and edx, 1
+shr bl, 1
+xor edx, 1
+shr cl, 2
+mov byte [ebp - 0x31], bl
+mov byte [ebp - 0x32], cl
+and byte [ebp - 0x31], 1
+and byte [ebp - 0x32], 1
+cmp edi, 0x40650
+je short loc_fffaca56 ; je 0xfffaca56
+cmp edi, 0x40660
+sete bl
+cmp edi, 0x306c0
+sete cl
+or bl, cl
+jne short loc_fffaca56 ; jne 0xfffaca56
+cmp edi, 0x40670
+sete bl
+cmp edi, 0x306d0
+sete cl
+or bl, cl
+je short loc_fffaca9b ; je 0xfffaca9b
+
+loc_fffaca56: ; not directly referenced
+mov bl, byte [ebp - 0x32]
+and esi, 0xfffffff9
+mov cl, byte [ebp - 0x31]
+and ebx, 1
+add ebx, ebx
+and ecx, 1
+shl ecx, 2
+or esi, ebx
+or esi, ecx
+and esi, 0xfffffff7
+lea ecx, [edx*8]
+or esi, ecx
+mov ecx, esi
+and ecx, 4
+cmp cl, 1
+sbb edi, edi
+and edi, 0x96
+add edi, 0x546
+cmp dword [ebp - 0x2c], 0x40650
+jne short loc_fffacaa0 ; jne 0xfffacaa0
+jmp short loc_fffacab9 ; jmp 0xfffacab9
+
+loc_fffaca9b: ; not directly referenced
+mov edi, 0x5dc
+
+loc_fffacaa0: ; not directly referenced
+mov ecx, dword [ebp - 0x2c]
+cmp ecx, 0x40670
+sete bl
+cmp ecx, 0x306d0
+sete cl
+or bl, cl
+je short loc_fffacae7 ; je 0xfffacae7
+
+loc_fffacab9: ; not directly referenced
+mov cl, byte [ebp - 0x32]
+and esi, 0xfffffff9
+mov bl, byte [ebp - 0x31]
+shl edx, 3
+and ecx, 1
+add ecx, ecx
+and ebx, 1
+shl ebx, 2
+or esi, ecx
+or esi, ebx
+and esi, 0xfffffff7
+or esi, edx
+mov edx, 0x4b0
+test esi, 2
+cmovne edi, edx
+
+loc_fffacae7: ; not directly referenced
+cmp dword [ebp - 0x20], 0
+jne short loc_fffacafc ; jne 0xfffacafc
+cmp dword [eax + 0x187f], 1
+mov ebx, 0x5dc
+cmove edi, ebx
+
+loc_fffacafc: ; not directly referenced
+mov ebx, dword [ebp - 0x20]
+mov edx, dword [ebp + ebx*4 - 0x1c]
+cmp edi, edx
+cmovb edi, edx
+mov dword [ebp + ebx*4 - 0x1c], edi
+
+loc_fffacb0c: ; not directly referenced
+add dword [ebp - 0x24], 0x128
+add dword [ebp - 0x38], 0x277
+cmp dword [ebp - 0x24], 0x250
+jne loc_fffac912 ; jne 0xfffac912
+add dword [ebp - 0x30], 0x54a
+mov edi, dword [ebp - 0x48]
+add dword [ebp - 0x28], 0x13c3
+cmp dword [ebp - 0x30], edi
+jne loc_fffac905 ; jne 0xfffac905
+jmp near loc_fffac8be ; jmp 0xfffac8be
+
+loc_fffacb46: ; not directly referenced
+cmp edx, 1
+ja short loc_fffacb54 ; ja 0xfffacb54
+cmp byte [eax + 0x3749], 0
+je short loc_fffacb7b ; je 0xfffacb7b
+
+loc_fffacb54: ; not directly referenced
+mov ecx, dword [ebp + edx*4 - 0x14]
+mov dword [eax + edx*4 + 0x373d], ecx
+mov dword [eax + edx*4 + 0x498d], ecx
+mov dword [eax + edx*4 + 0x4ab5], ecx
+mov dword [eax + edx*4 + 0x5d50], ecx
+mov dword [eax + edx*4 + 0x5e78], ecx
+
+loc_fffacb7b: ; not directly referenced
+inc edx
+cmp edx, 2
+jne short loc_fffacb46 ; jne 0xfffacb46
+add esp, 0x3c
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffacb8e: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x34
+mov edi, dword [ebp + 8]
+
+loc_fffacb9c: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffacbc3 ; ja 0xfffacbc3
+cmp byte [edi + 0x3749], 0
+jne short loc_fffacbc3 ; jne 0xfffacbc3
+
+loc_fffacbad: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffacb9c ; jne 0xfffacb9c
+lea eax, [edi + 0x48d1]
+mov ecx, 0xfffffffe
+jmp near loc_fffacd00 ; jmp 0xfffacd00
+
+loc_fffacbc3: ; not directly referenced
+xor edx, edx
+cmp ecx, 1
+lea esi, [edi + 0x49bf]
+setbe dl
+mov dword [ebp - 0x2c], esi
+imul eax, eax, 0x23
+imul esi, ecx, 0x2e
+lea ebx, [ecx*8 - 0x1269]
+mov dword [ebp + ecx*4 - 0x1c], edx
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x40], ebx
+mov dword [ebp - 0x30], eax
+
+loc_fffacbf5: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+mov ebx, dword [ebp - 0x2c]
+mov dword [ebp - 0x28], 0
+add eax, ebx
+mov dword [ebp - 0x3c], eax
+mov eax, dword [ebp - 0x24]
+lea esi, [edi + eax + 0x1973]
+
+loc_fffacc11: ; not directly referenced
+cmp dword [ebx - 0xf6], 2
+jne loc_fffaccc6 ; jne 0xfffaccc6
+mov eax, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x28]
+mov eax, dword [ebx + eax - 0xf2]
+mov dword [ebp - 0x20], eax
+mov eax, dword [ebp - 0x3c]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x38], eax
+cmp ecx, 1
+je short loc_fffacc9d ; je 0xfffacc9d
+jb short loc_fffaccb4 ; jb 0xfffaccb4
+cmp ecx, 3
+ja short loc_fffaccb4 ; ja 0xfffaccb4
+cmp ecx, 2
+mov dl, byte [ebx]
+jne short loc_fffacc57 ; jne 0xfffacc57
+and dl, 1
+jne short loc_fffacc5e ; jne 0xfffacc5e
+xor eax, eax
+jmp short loc_fffaccb9 ; jmp 0xfffaccb9
+
+loc_fffacc57: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffaccb9 ; je 0xfffaccb9
+
+loc_fffacc5e: ; not directly referenced
+mov eax, dword [ebx - 0x21]
+and eax, 0xfffffffd
+dec eax
+mov eax, dword [ebp - 0x30]
+jne short loc_fffacc74 ; jne 0xfffacc74
+movzx edx, byte [esi + eax + 0x118]
+jmp short loc_fffacc7c ; jmp 0xfffacc7c
+
+loc_fffacc74: ; not directly referenced
+movzx edx, byte [esi + eax + 0x1e8]
+
+loc_fffacc7c: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffaccb9 ; je 0xfffaccb9
+imul edx, dword [ebp - 0x38]
+mov eax, dword [ebp - 0x20]
+lea eax, [eax + edx - 1]
+xor edx, edx
+div dword [ebp - 0x20]
+mov edx, 2
+test eax, eax
+jmp short loc_fffaccaf ; jmp 0xfffaccaf
+
+loc_fffacc9d: ; not directly referenced
+mov dx, word [esi + 0x24c]
+movzx eax, dx
+test dx, dx
+mov edx, 1
+
+loc_fffaccaf: ; not directly referenced
+cmove eax, edx
+jmp short loc_fffaccb9 ; jmp 0xfffaccb9
+
+loc_fffaccb4: ; not directly referenced
+mov eax, 1
+
+loc_fffaccb9: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffaccc6: ; not directly referenced
+add dword [ebp - 0x28], 0x20
+add ebx, 0x128
+add esi, 0x277
+cmp dword [ebp - 0x28], 0x40
+jne loc_fffacc11 ; jne 0xfffacc11
+add dword [ebp - 0x24], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x24], 0xa94
+jne loc_fffacbf5 ; jne 0xfffacbf5
+jmp near loc_fffacbad ; jmp 0xfffacbad
+
+loc_fffacd00: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffacd0e ; ja 0xfffacd0e
+cmp byte [edi + 0x3749], 0
+je short loc_fffacd38 ; je 0xfffacd38
+
+loc_fffacd0e: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffacd38: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffacd00 ; jne 0xfffacd00
+add esp, 0x34
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffacd4e: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x24
+mov edi, dword [ebp + 8]
+
+loc_fffacd5c: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffacd83 ; ja 0xfffacd83
+cmp byte [edi + 0x3749], 0
+jne short loc_fffacd83 ; jne 0xfffacd83
+
+loc_fffacd6d: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffacd5c ; jne 0xfffacd5c
+lea eax, [edi + 0x48f9]
+mov ecx, 0xfffffffe
+jmp near loc_ffface4e ; jmp 0xffface4e
+
+loc_fffacd83: ; not directly referenced
+lea eax, [edi + 0x48c9]
+mov dword [ebp - 0x28], eax
+imul eax, ecx, 0x2e
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x2c], eax
+
+loc_fffacda1: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov ebx, dword [ebp - 0x28]
+mov dword [ebp - 0x24], 0
+lea eax, [edi + eax + 0x196b]
+mov dword [ebp - 0x30], eax
+
+loc_fffacdb8: ; not directly referenced
+cmp dword [ebx], 2
+jne short loc_ffface18 ; jne 0xffface18
+mov eax, dword [ebp - 0x2c]
+mov esi, dword [ebx + eax + 4]
+cmp ecx, 1
+je short loc_fffacdd4 ; je 0xfffacdd4
+jb short loc_fffacde7 ; jb 0xfffacde7
+xor eax, eax
+cmp ecx, 3
+jbe short loc_ffface00 ; jbe 0xffface00
+jmp short loc_fffacde7 ; jmp 0xfffacde7
+
+loc_fffacdd4: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x24]
+movzx eax, word [eax + edx + 0x27a]
+test ax, ax
+jne short loc_ffface00 ; jne 0xffface00
+
+loc_fffacde7: ; not directly referenced
+xor eax, eax
+cmp dword [ebx + 0xd5], 2
+jne short loc_ffface00 ; jne 0xffface00
+test esi, esi
+je short loc_ffface00 ; je 0xffface00
+lea eax, [esi + 0x26259f]
+xor edx, edx
+div esi
+
+loc_ffface00: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 4
+mov esi, 4
+cmova eax, esi
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_ffface18: ; not directly referenced
+add dword [ebp - 0x24], 0x277
+add ebx, 0x128
+cmp dword [ebp - 0x24], 0x4ee
+jne short loc_fffacdb8 ; jne 0xfffacdb8
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x28], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffacda1 ; jne 0xfffacda1
+jmp near loc_fffacd6d ; jmp 0xfffacd6d
+
+loc_ffface4e: ; not directly referenced
+cmp ecx, 1
+ja short loc_ffface5c ; ja 0xffface5c
+cmp byte [edi + 0x3749], 0
+je short loc_ffface86 ; je 0xffface86
+
+loc_ffface5c: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_ffface86: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_ffface4e ; jne 0xffface4e
+add esp, 0x24
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_ffface9c: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x24
+mov edi, dword [ebp + 8]
+
+loc_fffaceaa: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffaced1 ; ja 0xfffaced1
+cmp byte [edi + 0x3749], 0
+jne short loc_fffaced1 ; jne 0xfffaced1
+
+loc_fffacebb: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffaceaa ; jne 0xfffaceaa
+lea eax, [edi + 0x48f7]
+mov ecx, 0xfffffffe
+jmp near loc_fffacf9c ; jmp 0xfffacf9c
+
+loc_fffaced1: ; not directly referenced
+lea eax, [edi + 0x48c9]
+mov dword [ebp - 0x28], eax
+imul eax, ecx, 0x2e
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x2c], eax
+
+loc_fffaceef: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov ebx, dword [ebp - 0x28]
+mov dword [ebp - 0x24], 0
+lea eax, [edi + eax + 0x196b]
+mov dword [ebp - 0x30], eax
+
+loc_fffacf06: ; not directly referenced
+cmp dword [ebx], 2
+jne short loc_fffacf66 ; jne 0xfffacf66
+mov eax, dword [ebp - 0x2c]
+mov esi, dword [ebx + eax + 4]
+cmp ecx, 1
+je short loc_fffacf22 ; je 0xfffacf22
+jb short loc_fffacf35 ; jb 0xfffacf35
+xor eax, eax
+cmp ecx, 3
+jbe short loc_fffacf4e ; jbe 0xfffacf4e
+jmp short loc_fffacf35 ; jmp 0xfffacf35
+
+loc_fffacf22: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x24]
+movzx eax, word [eax + edx + 0x27a]
+test ax, ax
+jne short loc_fffacf4e ; jne 0xfffacf4e
+
+loc_fffacf35: ; not directly referenced
+xor eax, eax
+cmp dword [ebx + 0xd5], 2
+jne short loc_fffacf4e ; jne 0xfffacf4e
+test esi, esi
+je short loc_fffacf4e ; je 0xfffacf4e
+lea eax, [esi + 0x7270df]
+xor edx, edx
+div esi
+
+loc_fffacf4e: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0xb
+mov esi, 0xb
+cmova eax, esi
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffacf66: ; not directly referenced
+add dword [ebp - 0x24], 0x277
+add ebx, 0x128
+cmp dword [ebp - 0x24], 0x4ee
+jne short loc_fffacf06 ; jne 0xfffacf06
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x28], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffaceef ; jne 0xfffaceef
+jmp near loc_fffacebb ; jmp 0xfffacebb
+
+loc_fffacf9c: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffacfaa ; ja 0xfffacfaa
+cmp byte [edi + 0x3749], 0
+je short loc_fffacfd4 ; je 0xfffacfd4
+
+loc_fffacfaa: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffacfd4: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffacf9c ; jne 0xfffacf9c
+add esp, 0x24
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffacfea: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+
+loc_fffacff5: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffad021 ; ja 0xfffad021
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x3749], 0
+jne short loc_fffad021 ; jne 0xfffad021
+
+loc_fffad009: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffacff5 ; jne 0xfffacff5
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48f5
+jmp near loc_fffad142 ; jmp 0xfffad142
+
+loc_fffad021: ; not directly referenced
+mov edi, dword [ebp + 8]
+imul esi, ecx, 0x2e
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x24], 0
+lea ebx, [edi + 0x49bf]
+mov dword [ebp - 0x2c], ebx
+lea ebx, [ecx*8 - 0x1269]
+mov dword [ebp - 0x30], esi
+mov dword [ebp - 0x38], ebx
+mov dword [ebp - 0x3c], eax
+
+loc_fffad052: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+mov esi, dword [ebp - 0x2c]
+mov edi, dword [ebp - 0x24]
+mov dword [ebp - 0x20], 0
+add eax, esi
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp + 8]
+lea edi, [eax + edi + 0x1973]
+
+loc_fffad071: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffad108 ; jne 0xfffad108
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x20]
+mov ebx, dword [esi + eax - 0xf2]
+mov eax, dword [ebp - 0x34]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x28], eax
+cmp ecx, 1
+je short loc_fffad0ce ; je 0xfffad0ce
+jb short loc_fffad0da ; jb 0xfffad0da
+cmp ecx, 3
+ja short loc_fffad0da ; ja 0xfffad0da
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffad0b4 ; jne 0xfffad0b4
+and dl, 1
+jne short loc_fffad0bb ; jne 0xfffad0bb
+xor eax, eax
+jmp short loc_fffad0f0 ; jmp 0xfffad0f0
+
+loc_fffad0b4: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffad0f0 ; je 0xfffad0f0
+
+loc_fffad0bb: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+movzx edx, byte [edi + eax + 0x115]
+xor eax, eax
+test ebx, ebx
+je short loc_fffad0f0 ; je 0xfffad0f0
+jmp short loc_fffad0e4 ; jmp 0xfffad0e4
+
+loc_fffad0ce: ; not directly referenced
+movzx eax, word [edi + 0x270]
+test ax, ax
+jne short loc_fffad0f0 ; jne 0xfffad0f0
+
+loc_fffad0da: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffad0f0 ; je 0xfffad0f0
+movzx edx, byte [edi + 0x62]
+
+loc_fffad0e4: ; not directly referenced
+imul edx, dword [ebp - 0x28]
+lea eax, [ebx + edx - 1]
+xor edx, edx
+div ebx
+
+loc_fffad0f0: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0xa
+mov ebx, 0xa
+cmova eax, ebx
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffad108: ; not directly referenced
+add dword [ebp - 0x20], 0x20
+add esi, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x20], 0x40
+jne loc_fffad071 ; jne 0xfffad071
+add dword [ebp - 0x24], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x24], 0xa94
+jne loc_fffad052 ; jne 0xfffad052
+jmp near loc_fffad009 ; jmp 0xfffad009
+
+loc_fffad142: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffad153 ; ja 0xfffad153
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffad17d ; je 0xfffad17d
+
+loc_fffad153: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffad17d: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffad142 ; jne 0xfffad142
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad193: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+mov dword [ebp - 0x20], 0x10
+
+loc_fffad1a5: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffad1bd ; ja 0xfffad1bd
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je loc_fffad312 ; je 0xfffad312
+
+loc_fffad1bd: ; not directly referenced
+imul esi, ecx, 0x2e
+imul eax, eax, 0x23
+lea edi, [ecx*8 + 0x3756]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x30], esi
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x38], edi
+mov dword [ebp - 0x3c], eax
+
+loc_fffad1e2: ; not directly referenced
+mov edi, dword [ebp - 0x24]
+mov esi, dword [ebp - 0x38]
+mov dword [ebp - 0x28], 0
+imul eax, edi, 0x13c3
+imul edx, edi, 0x54a
+mov edi, dword [ebp + 8]
+lea ebx, [esi + eax]
+mov esi, dword [ebp + 8]
+add ebx, dword [ebp + 8]
+lea edi, [edi + edx + 0x1973]
+mov dword [ebp - 0x34], ebx
+lea esi, [esi + eax + 0x49bf]
+
+loc_fffad218: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffad2eb ; jne 0xfffad2eb
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x28]
+mov ebx, dword [esi + eax - 0xf2]
+mov eax, dword [ebp - 0x34]
+mov eax, dword [eax + edx + 0xc9]
+mov edx, dword [esi - 0x21]
+mov dword [ebp - 0x2c], eax
+mov eax, 0x18
+cmp edx, 2
+cmovne eax, dword [ebp - 0x20]
+mov dword [ebp - 0x20], eax
+cmp ecx, 1
+je short loc_fffad28f ; je 0xfffad28f
+jb short loc_fffad29b ; jb 0xfffad29b
+cmp ecx, 3
+ja short loc_fffad29b ; ja 0xfffad29b
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffad26d ; jne 0xfffad26d
+and dl, 1
+jne short loc_fffad274 ; jne 0xfffad274
+xor eax, eax
+jmp short loc_fffad2c9 ; jmp 0xfffad2c9
+
+loc_fffad26d: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffad2c9 ; je 0xfffad2c9
+
+loc_fffad274: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+movzx edx, byte [edi + eax + 0x109]
+xor eax, eax
+test ebx, ebx
+je short loc_fffad2c9 ; je 0xfffad2c9
+imul edx, dword [ebp - 0x2c]
+lea eax, [ebx + edx - 1]
+jmp short loc_fffad2b2 ; jmp 0xfffad2b2
+
+loc_fffad28f: ; not directly referenced
+movzx eax, word [edi + 0x26e]
+test ax, ax
+jne short loc_fffad2c9 ; jne 0xfffad2c9
+
+loc_fffad29b: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffad2c9 ; je 0xfffad2c9
+movzx eax, byte [edi + 0x59]
+cmp edx, 2
+je short loc_fffad2b8 ; je 0xfffad2b8
+imul eax, dword [ebp - 0x2c]
+lea eax, [ebx + eax - 1]
+
+loc_fffad2b2: ; not directly referenced
+xor edx, edx
+div ebx
+jmp short loc_fffad2c9 ; jmp 0xfffad2c9
+
+loc_fffad2b8: ; not directly referenced
+xor edx, edx
+mov eax, 0xe4e1c0
+div ebx
+lea edx, [eax + 1]
+test al, 1
+cmovne eax, edx
+
+loc_fffad2c9: ; not directly referenced
+mov edx, eax
+and edx, 0xfffffff9
+cmp edx, 9
+jne short loc_fffad2d6 ; jne 0xfffad2d6
+inc eax
+jmp short loc_fffad2de ; jmp 0xfffad2de
+
+loc_fffad2d6: ; not directly referenced
+mov ebx, dword [ebp - 0x20]
+cmp eax, ebx
+cmova eax, ebx
+
+loc_fffad2de: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffad2eb: ; not directly referenced
+add dword [ebp - 0x28], 0x20
+add esi, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x28], 0x40
+jne loc_fffad218 ; jne 0xfffad218
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+jne loc_fffad1e2 ; jne 0xfffad1e2
+
+loc_fffad312: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne loc_fffad1a5 ; jne 0xfffad1a5
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48f3
+
+loc_fffad329: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffad33a ; ja 0xfffad33a
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x3749], 0
+je short loc_fffad364 ; je 0xfffad364
+
+loc_fffad33a: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffad364: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffad329 ; jne 0xfffad329
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad37a: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+mov dword [ebp - 0x20], 0xf
+
+loc_fffad38c: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffad3a4 ; ja 0xfffad3a4
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je loc_fffad4f8 ; je 0xfffad4f8
+
+loc_fffad3a4: ; not directly referenced
+imul esi, ecx, 0x2e
+imul eax, eax, 0x23
+lea edi, [ecx*8 + 0x3756]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x30], esi
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x38], edi
+mov dword [ebp - 0x3c], eax
+
+loc_fffad3c9: ; not directly referenced
+mov edi, dword [ebp - 0x24]
+mov esi, dword [ebp - 0x38]
+mov dword [ebp - 0x28], 0
+imul eax, edi, 0x13c3
+imul edx, edi, 0x54a
+mov edi, dword [ebp + 8]
+lea ebx, [esi + eax]
+mov esi, dword [ebp + 8]
+add ebx, dword [ebp + 8]
+lea edi, [edi + edx + 0x1973]
+mov dword [ebp - 0x34], ebx
+lea esi, [esi + eax + 0x49bf]
+
+loc_fffad3ff: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffad4d1 ; jne 0xfffad4d1
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x28]
+mov ebx, dword [esi + eax - 0xf2]
+mov eax, dword [ebp - 0x34]
+mov eax, dword [eax + edx + 0xc9]
+mov edx, dword [esi - 0x21]
+mov dword [ebp - 0x2c], eax
+mov eax, 0xc
+cmp edx, 2
+cmovne eax, dword [ebp - 0x20]
+mov dword [ebp - 0x20], eax
+cmp ecx, 1
+je short loc_fffad476 ; je 0xfffad476
+jb short loc_fffad482 ; jb 0xfffad482
+cmp ecx, 3
+ja short loc_fffad482 ; ja 0xfffad482
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffad454 ; jne 0xfffad454
+and dl, 1
+jne short loc_fffad45b ; jne 0xfffad45b
+xor eax, eax
+jmp short loc_fffad4bc ; jmp 0xfffad4bc
+
+loc_fffad454: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffad4bc ; je 0xfffad4bc
+
+loc_fffad45b: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+movzx edx, byte [edi + eax + 0x111]
+xor eax, eax
+test ebx, ebx
+je short loc_fffad4bc ; je 0xfffad4bc
+imul edx, dword [ebp - 0x2c]
+lea eax, [ebx + edx - 1]
+jmp short loc_fffad499 ; jmp 0xfffad499
+
+loc_fffad476: ; not directly referenced
+movzx eax, word [edi + 0x26c]
+test ax, ax
+jne short loc_fffad4bc ; jne 0xfffad4bc
+
+loc_fffad482: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffad4bc ; je 0xfffad4bc
+movzx eax, byte [edi + 0x63]
+cmp edx, 2
+je short loc_fffad49f ; je 0xfffad49f
+imul eax, dword [ebp - 0x2c]
+lea eax, [ebx + eax - 1]
+
+loc_fffad499: ; not directly referenced
+xor edx, edx
+div ebx
+jmp short loc_fffad4bc ; jmp 0xfffad4bc
+
+loc_fffad49f: ; not directly referenced
+mov eax, 0x7270e0
+xor edx, edx
+div ebx
+mov ebx, eax
+mov eax, 5
+cmp ebx, 4
+jbe short loc_fffad4bc ; jbe 0xfffad4bc
+cmp ebx, 0xb
+mov al, 0xc
+cmovne eax, ebx
+
+loc_fffad4bc: ; not directly referenced
+mov ebx, dword [ebp - 0x20]
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, ebx
+cmova eax, ebx
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffad4d1: ; not directly referenced
+add dword [ebp - 0x28], 0x20
+add esi, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x28], 0x40
+jne loc_fffad3ff ; jne 0xfffad3ff
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+jne loc_fffad3c9 ; jne 0xfffad3c9
+
+loc_fffad4f8: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne loc_fffad38c ; jne 0xfffad38c
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48f1
+
+loc_fffad50f: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffad520 ; ja 0xfffad520
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x3749], 0
+je short loc_fffad54a ; je 0xfffad54a
+
+loc_fffad520: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffad54a: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffad50f ; jne 0xfffad50f
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad560: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x34
+
+loc_fffad56b: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffad597 ; ja 0xfffad597
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffad597 ; jne 0xfffad597
+
+loc_fffad57f: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffad56b ; jne 0xfffad56b
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48ef
+jmp near loc_fffad6bc ; jmp 0xfffad6bc
+
+loc_fffad597: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+lea edi, [eax + 0x3756]
+lea eax, [ecx*8]
+mov dword [ebp - 0x30], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x2c], eax
+
+loc_fffad5bf: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+xor esi, esi
+mov ebx, dword [ebp - 0x20]
+add eax, edi
+mov dword [ebp - 0x40], eax
+mov eax, dword [ebp + 8]
+lea ebx, [eax + ebx + 0x1973]
+mov eax, dword [ebp - 0x30]
+add eax, edi
+mov dword [ebp - 0x28], eax
+
+loc_fffad5de: ; not directly referenced
+cmp dword [edi + esi + 0x1173], 2
+jne loc_fffad681 ; jne 0xfffad681
+mov eax, dword [ebp - 0x40]
+mov eax, dword [eax + esi + 0x1177]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x28]
+mov edx, dword [eax + 0xc9]
+mov eax, dword [eax + 0xcd]
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x38], eax
+cmp ecx, 1
+je short loc_fffad61e ; je 0xfffad61e
+jb short loc_fffad62a ; jb 0xfffad62a
+xor eax, eax
+cmp ecx, 3
+jbe short loc_fffad669 ; jbe 0xfffad669
+jmp short loc_fffad62a ; jmp 0xfffad62a
+
+loc_fffad61e: ; not directly referenced
+movzx eax, word [ebx + 0x26a]
+test ax, ax
+jne short loc_fffad669 ; jne 0xfffad669
+
+loc_fffad62a: ; not directly referenced
+xor eax, eax
+cmp dword [edi + esi + 0x1248], 2
+jne short loc_fffad669 ; jne 0xfffad669
+mov dl, byte [ebx + 0x6e]
+cmp dword [ebp - 0x24], 0
+mov byte [ebp - 0x39], dl
+mov dl, byte [ebx + 0xbf]
+mov byte [ebp - 0x3a], dl
+je short loc_fffad669 ; je 0xfffad669
+movzx edx, byte [ebp - 0x39]
+imul edx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x24]
+lea eax, [eax + edx - 1]
+movsx edx, byte [ebp - 0x3a]
+imul edx, dword [ebp - 0x38]
+add eax, edx
+xor edx, edx
+div dword [ebp - 0x24]
+
+loc_fffad669: ; not directly referenced
+cmp eax, 0xa
+mov edx, 0xa
+cmova eax, edx
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffad681: ; not directly referenced
+add esi, 0x128
+add ebx, 0x277
+add dword [ebp - 0x28], 0x20
+cmp esi, 0x250
+jne loc_fffad5de ; jne 0xfffad5de
+add dword [ebp - 0x20], 0x54a
+add edi, 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffad5bf ; jne 0xfffad5bf
+jmp near loc_fffad57f ; jmp 0xfffad57f
+
+loc_fffad6bc: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffad6cd ; ja 0xfffad6cd
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffad6f7 ; je 0xfffad6f7
+
+loc_fffad6cd: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffad6f7: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffad6bc ; jne 0xfffad6bc
+add esp, 0x34
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad70d: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x34
+
+loc_fffad718: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffad744 ; ja 0xfffad744
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffad744 ; jne 0xfffad744
+
+loc_fffad72c: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffad718 ; jne 0xfffad718
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48ed
+jmp near loc_fffad869 ; jmp 0xfffad869
+
+loc_fffad744: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+lea edi, [eax + 0x3756]
+lea eax, [ecx*8]
+mov dword [ebp - 0x30], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x2c], eax
+
+loc_fffad76c: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+xor esi, esi
+mov ebx, dword [ebp - 0x20]
+add eax, edi
+mov dword [ebp - 0x40], eax
+mov eax, dword [ebp + 8]
+lea ebx, [eax + ebx + 0x1973]
+mov eax, dword [ebp - 0x30]
+add eax, edi
+mov dword [ebp - 0x28], eax
+
+loc_fffad78b: ; not directly referenced
+cmp dword [edi + esi + 0x1173], 2
+jne loc_fffad82e ; jne 0xfffad82e
+mov eax, dword [ebp - 0x40]
+mov eax, dword [eax + esi + 0x1177]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x28]
+mov edx, dword [eax + 0xc9]
+mov eax, dword [eax + 0xcd]
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x38], eax
+cmp ecx, 1
+je short loc_fffad7cb ; je 0xfffad7cb
+jb short loc_fffad7d7 ; jb 0xfffad7d7
+xor eax, eax
+cmp ecx, 3
+jbe short loc_fffad816 ; jbe 0xfffad816
+jmp short loc_fffad7d7 ; jmp 0xfffad7d7
+
+loc_fffad7cb: ; not directly referenced
+movzx eax, word [ebx + 0x268]
+test ax, ax
+jne short loc_fffad816 ; jne 0xfffad816
+
+loc_fffad7d7: ; not directly referenced
+xor eax, eax
+cmp dword [edi + esi + 0x1248], 2
+jne short loc_fffad816 ; jne 0xfffad816
+mov dl, byte [ebx + 0x6f]
+cmp dword [ebp - 0x24], 0
+mov byte [ebp - 0x39], dl
+mov dl, byte [ebx + 0xbe]
+mov byte [ebp - 0x3a], dl
+je short loc_fffad816 ; je 0xfffad816
+movzx edx, byte [ebp - 0x39]
+imul edx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x24]
+lea eax, [eax + edx - 1]
+movsx edx, byte [ebp - 0x3a]
+imul edx, dword [ebp - 0x38]
+add eax, edx
+xor edx, edx
+div dword [ebp - 0x24]
+
+loc_fffad816: ; not directly referenced
+cmp eax, 0xf
+mov edx, 0xf
+cmova eax, edx
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffad82e: ; not directly referenced
+add esi, 0x128
+add ebx, 0x277
+add dword [ebp - 0x28], 0x20
+cmp esi, 0x250
+jne loc_fffad78b ; jne 0xfffad78b
+add dword [ebp - 0x20], 0x54a
+add edi, 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffad76c ; jne 0xfffad76c
+jmp near loc_fffad72c ; jmp 0xfffad72c
+
+loc_fffad869: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffad87a ; ja 0xfffad87a
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffad8a4 ; je 0xfffad8a4
+
+loc_fffad87a: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffad8a4: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffad869 ; jne 0xfffad869
+add esp, 0x34
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffad8ba: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+
+loc_fffad8c5: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffad8f1 ; ja 0xfffad8f1
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x3749], 0
+jne short loc_fffad8f1 ; jne 0xfffad8f1
+
+loc_fffad8d9: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffad8c5 ; jne 0xfffad8c5
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48eb
+jmp near loc_fffada12 ; jmp 0xfffada12
+
+loc_fffad8f1: ; not directly referenced
+mov edi, dword [ebp + 8]
+imul esi, ecx, 0x2e
+imul eax, eax, 0x23
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x24], 0
+lea ebx, [edi + 0x49bf]
+mov dword [ebp - 0x2c], ebx
+lea ebx, [ecx*8 - 0x1269]
+mov dword [ebp - 0x30], esi
+mov dword [ebp - 0x38], ebx
+mov dword [ebp - 0x3c], eax
+
+loc_fffad922: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+mov esi, dword [ebp - 0x2c]
+mov edi, dword [ebp - 0x24]
+mov dword [ebp - 0x20], 0
+add eax, esi
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp + 8]
+lea edi, [eax + edi + 0x1973]
+
+loc_fffad941: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffad9d8 ; jne 0xfffad9d8
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x20]
+mov ebx, dword [esi + eax - 0xf2]
+mov eax, dword [ebp - 0x34]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x28], eax
+cmp ecx, 1
+je short loc_fffad99e ; je 0xfffad99e
+jb short loc_fffad9aa ; jb 0xfffad9aa
+cmp ecx, 3
+ja short loc_fffad9aa ; ja 0xfffad9aa
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffad984 ; jne 0xfffad984
+and dl, 1
+jne short loc_fffad98b ; jne 0xfffad98b
+xor eax, eax
+jmp short loc_fffad9c0 ; jmp 0xfffad9c0
+
+loc_fffad984: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffad9c0 ; je 0xfffad9c0
+
+loc_fffad98b: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+movzx edx, byte [edi + eax + 0x112]
+xor eax, eax
+test ebx, ebx
+je short loc_fffad9c0 ; je 0xfffad9c0
+jmp short loc_fffad9b4 ; jmp 0xfffad9b4
+
+loc_fffad99e: ; not directly referenced
+movzx eax, word [edi + 0x266]
+test ax, ax
+jne short loc_fffad9c0 ; jne 0xfffad9c0
+
+loc_fffad9aa: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffad9c0 ; je 0xfffad9c0
+movzx edx, byte [edi + 0x5b]
+
+loc_fffad9b4: ; not directly referenced
+imul edx, dword [ebp - 0x28]
+lea eax, [ebx + edx - 1]
+xor edx, edx
+div ebx
+
+loc_fffad9c0: ; 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_fffad9d8: ; not directly referenced
+add dword [ebp - 0x20], 0x20
+add esi, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x20], 0x40
+jne loc_fffad941 ; jne 0xfffad941
+add dword [ebp - 0x24], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x24], 0xa94
+jne loc_fffad922 ; jne 0xfffad922
+jmp near loc_fffad8d9 ; jmp 0xfffad8d9
+
+loc_fffada12: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffada23 ; ja 0xfffada23
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffada4d ; je 0xfffada4d
+
+loc_fffada23: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffada4d: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffada12 ; jne 0xfffada12
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffada63: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x38
+mov edi, dword [ebp + 8]
+mov byte [ebp - 0x1d], 0
+lea eax, [edi + 0x3756]
+mov dword [ebp - 0x40], eax
+
+loc_fffada7e: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffada93 ; ja 0xfffada93
+cmp byte [edi + 0x3749], 0
+je loc_fffadbac ; je 0xfffadbac
+
+loc_fffada93: ; not directly referenced
+lea eax, [edi + 0x48c9]
+mov dword [ebp - 0x3c], eax
+imul eax, ecx, 0x2e
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x28], 0
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x40]
+mov dword [ebp - 0x34], eax
+
+loc_fffadab7: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+mov ebx, dword [ebp - 0x3c]
+mov dword [ebp - 0x2c], 0
+lea eax, [edi + eax + 0x1973]
+mov dword [ebp - 0x30], eax
+
+loc_fffadace: ; not directly referenced
+cmp dword [ebx], 2
+jne loc_fffadb6f ; jne 0xfffadb6f
+cmp dword [ebx + 0xd5], 3
+jne loc_fffadb6f ; jne 0xfffadb6f
+mov eax, dword [ebp - 0x38]
+mov esi, dword [ebp - 0x2c]
+mov eax, dword [ebx + eax + 4]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x34]
+mov edx, dword [eax + esi + 0xc9]
+mov eax, dword [eax + esi + 0xcd]
+mov dword [ebp - 0x44], eax
+cmp ecx, 1
+jne short loc_fffadb19 ; jne 0xfffadb19
+mov eax, dword [ebp - 0x30]
+movzx eax, word [eax + 0x264]
+test ax, ax
+jne short loc_fffadb3f ; jne 0xfffadb3f
+
+loc_fffadb19: ; not directly referenced
+cmp dword [ebp - 0x24], 0
+je short loc_fffadb62 ; je 0xfffadb62
+mov esi, dword [ebp - 0x30]
+movzx eax, byte [esi + 0x6f]
+imul edx, eax
+mov eax, dword [ebp - 0x24]
+lea edx, [eax + edx - 1]
+movsx eax, byte [esi + 0x70]
+imul eax, dword [ebp - 0x44]
+add eax, edx
+xor edx, edx
+div dword [ebp - 0x24]
+
+loc_fffadb3f: ; not directly referenced
+cmp eax, 3
+jbe short loc_fffadb62 ; jbe 0xfffadb62
+mov esi, dword [ebp - 0x38]
+movzx edx, word [ebx + esi + 0x1e]
+mov esi, eax
+sub esi, edx
+cmp esi, 3
+ja short loc_fffadb62 ; ja 0xfffadb62
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffadb62: ; not directly referenced
+mov dl, byte [ebp - 0x1d]
+mov al, 1
+test dl, dl
+cmove edx, eax
+mov byte [ebp - 0x1d], dl
+
+loc_fffadb6f: ; not directly referenced
+add dword [ebp - 0x2c], 0x20
+add ebx, 0x128
+add dword [ebp - 0x30], 0x277
+cmp dword [ebp - 0x2c], 0x40
+jne loc_fffadace ; jne 0xfffadace
+add dword [ebp - 0x28], 0x54a
+add dword [ebp - 0x3c], 0x13c3
+add dword [ebp - 0x34], 0x13c3
+cmp dword [ebp - 0x28], 0xa94
+jne loc_fffadab7 ; jne 0xfffadab7
+
+loc_fffadbac: ; not directly referenced
+inc ecx
+add dword [ebp - 0x40], 8
+cmp ecx, 4
+jne loc_fffada7e ; jne 0xfffada7e
+mov al, byte [ebp - 0x1d]
+test al, al
+je short loc_fffadc0d ; je 0xfffadc0d
+lea eax, [edi + 0x48e9]
+mov ecx, 0xfffffffe
+
+loc_fffadbcc: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffadbda ; ja 0xfffadbda
+cmp byte [edi + 0x3749], 0
+je short loc_fffadc04 ; je 0xfffadc04
+
+loc_fffadbda: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffadc04: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffadbcc ; jne 0xfffadbcc
+
+loc_fffadc0d: ; not directly referenced
+add esp, 0x38
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffadc1a: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x40
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x3c], 0
+add eax, 0x3756
+mov dword [ebp - 0x2c], eax
+
+loc_fffadc37: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffadc6b ; ja 0xfffadc6b
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffadc6b ; jne 0xfffadc6b
+
+loc_fffadc4b: ; not directly referenced
+inc ecx
+add dword [ebp - 0x3c], 0x23
+add dword [ebp - 0x2c], 8
+cmp ecx, 4
+jne short loc_fffadc37 ; jne 0xfffadc37
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48e7
+jmp near loc_fffaddd7 ; jmp 0xfffaddd7
+
+loc_fffadc6b: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x28], 0
+add eax, 0x49bf
+mov dword [ebp - 0x40], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x2c]
+mov dword [ebp - 0x30], eax
+mov eax, dword [ebp - 0x3c]
+lea esi, [eax + 0x18b]
+add eax, 0xbb
+mov dword [ebp - 0x48], esi
+mov dword [ebp - 0x4c], eax
+
+loc_fffadca5: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ebx, dword [ebp - 0x28]
+mov esi, dword [ebp - 0x40]
+mov dword [ebp - 0x24], 0
+lea ebx, [eax + ebx + 0x1973]
+
+loc_fffadcbc: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffadd96 ; jne 0xfffadd96
+mov eax, dword [ebp - 0x44]
+mov edi, dword [ebp - 0x24]
+mov eax, dword [esi + eax - 0xf2]
+mov dword [ebp - 0x20], eax
+mov eax, dword [ebp - 0x30]
+mov edx, dword [eax + edi + 0xc9]
+mov eax, dword [eax + edi + 0xcd]
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x38], eax
+cmp ecx, 1
+je short loc_fffadd41 ; je 0xfffadd41
+jb short loc_fffadd4d ; jb 0xfffadd4d
+cmp ecx, 3
+ja short loc_fffadd4d ; ja 0xfffadd4d
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffadd0c ; jne 0xfffadd0c
+and dl, 1
+jne short loc_fffadd13 ; jne 0xfffadd13
+xor eax, eax
+jmp short loc_fffadd89 ; jmp 0xfffadd89
+
+loc_fffadd0c: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffadd89 ; je 0xfffadd89
+
+loc_fffadd13: ; not directly referenced
+mov edx, dword [esi - 0x21]
+mov eax, dword [ebp - 0x4c]
+mov edi, dword [ebp - 0x48]
+and edx, 0xfffffffd
+add eax, ebx
+add edi, ebx
+dec edx
+cmovne eax, edi
+xor edi, edi
+cmp byte [esi + 1], 0x13
+movzx edx, byte [eax + 6]
+jne short loc_fffadd37 ; jne 0xfffadd37
+movsx edi, byte [eax + 0x1c]
+
+loc_fffadd37: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffadd89 ; je 0xfffadd89
+jmp short loc_fffadd73 ; jmp 0xfffadd73
+
+loc_fffadd41: ; not directly referenced
+movzx eax, word [ebx + 0x262]
+test ax, ax
+jne short loc_fffadd89 ; jne 0xfffadd89
+
+loc_fffadd4d: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffadd89 ; je 0xfffadd89
+mov eax, dword [esi - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffadd68 ; jne 0xfffadd68
+movzx edx, byte [ebx + 0x5c]
+movsx edi, byte [ebx + 0x6d]
+jmp short loc_fffadd73 ; jmp 0xfffadd73
+
+loc_fffadd68: ; not directly referenced
+movzx edx, byte [ebx + 0x62]
+movsx edi, byte [ebx + 0xc1]
+
+loc_fffadd73: ; not directly referenced
+imul edx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x20]
+imul edi, dword [ebp - 0x38]
+lea eax, [eax + edx - 1]
+xor edx, edx
+add eax, edi
+div dword [ebp - 0x20]
+
+loc_fffadd89: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffadd96: ; not directly referenced
+add dword [ebp - 0x24], 0x20
+add esi, 0x128
+add ebx, 0x277
+cmp dword [ebp - 0x24], 0x40
+jne loc_fffadcbc ; jne 0xfffadcbc
+add dword [ebp - 0x28], 0x54a
+add dword [ebp - 0x40], 0x13c3
+add dword [ebp - 0x30], 0x13c3
+cmp dword [ebp - 0x28], 0xa94
+jne loc_fffadca5 ; jne 0xfffadca5
+jmp near loc_fffadc4b ; jmp 0xfffadc4b
+
+loc_fffaddd7: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffadde8 ; ja 0xfffadde8
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffade12 ; je 0xfffade12
+
+loc_fffadde8: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffade12: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffaddd7 ; jne 0xfffaddd7
+add esp, 0x40
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffade28: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+mov esi, dword [ebp + 8]
+
+loc_fffade36: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffade5d ; ja 0xfffade5d
+cmp byte [esi + 0x3749], 0
+jne short loc_fffade5d ; jne 0xfffade5d
+
+loc_fffade47: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffade36 ; jne 0xfffade36
+lea eax, [esi + 0x48e5]
+mov ecx, 0xfffffffe
+jmp near loc_fffadf55 ; jmp 0xfffadf55
+
+loc_fffade5d: ; not directly referenced
+lea eax, [esi + 0x48c9]
+mov dword [ebp - 0x2c], eax
+imul eax, ecx, 0x2e
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x30], eax
+lea eax, [ecx*8 - 0x1173]
+mov dword [ebp - 0x3c], eax
+
+loc_fffade85: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+mov ebx, dword [ebp - 0x2c]
+mov dword [ebp - 0x28], 0
+add eax, ebx
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x20]
+lea edi, [esi + eax + 0x1973]
+
+loc_fffadea1: ; not directly referenced
+cmp dword [ebx], 2
+jne short loc_fffadf1b ; jne 0xfffadf1b
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x28]
+mov eax, dword [ebx + eax + 4]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x38]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x34], eax
+cmp ecx, 1
+je short loc_fffaded0 ; je 0xfffaded0
+jb short loc_fffadedc ; jb 0xfffadedc
+xor eax, eax
+cmp ecx, 3
+jbe short loc_fffadf01 ; jbe 0xfffadf01
+jmp short loc_fffadedc ; jmp 0xfffadedc
+
+loc_fffaded0: ; not directly referenced
+movzx eax, word [edi + 0x260]
+test ax, ax
+jne short loc_fffadf01 ; jne 0xfffadf01
+
+loc_fffadedc: ; not directly referenced
+xor eax, eax
+cmp dword [ebx + 0xd5], 2
+jne short loc_fffadf01 ; jne 0xfffadf01
+cmp dword [ebp - 0x24], 0
+movzx edx, word [edi + 0x6a]
+je short loc_fffadf01 ; je 0xfffadf01
+imul edx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x24]
+lea eax, [eax + edx - 1]
+xor edx, edx
+div dword [ebp - 0x24]
+
+loc_fffadf01: ; not directly referenced
+cmp eax, 0x1ff
+mov edx, 0x1ff
+cmova eax, edx
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffadf1b: ; not directly referenced
+add dword [ebp - 0x28], 0x20
+add ebx, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x28], 0x40
+jne loc_fffadea1 ; jne 0xfffadea1
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffade85 ; jne 0xfffade85
+jmp near loc_fffade47 ; jmp 0xfffade47
+
+loc_fffadf55: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffadf63 ; ja 0xfffadf63
+cmp byte [esi + 0x3749], 0
+je short loc_fffadf8d ; je 0xfffadf8d
+
+loc_fffadf63: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffadf8d: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffadf55 ; jne 0xfffadf55
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffadfa3: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+mov esi, dword [ebp + 8]
+
+loc_fffadfb1: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffadfd8 ; ja 0xfffadfd8
+cmp byte [esi + 0x3749], 0
+jne short loc_fffadfd8 ; jne 0xfffadfd8
+
+loc_fffadfc2: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffadfb1 ; jne 0xfffadfb1
+lea eax, [esi + 0x48e3]
+mov ecx, 0xfffffffe
+jmp near loc_fffae0d0 ; jmp 0xfffae0d0
+
+loc_fffadfd8: ; not directly referenced
+lea eax, [esi + 0x48c9]
+mov dword [ebp - 0x2c], eax
+imul eax, ecx, 0x2e
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x30], eax
+lea eax, [ecx*8 - 0x1173]
+mov dword [ebp - 0x3c], eax
+
+loc_fffae000: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+mov ebx, dword [ebp - 0x2c]
+mov dword [ebp - 0x28], 0
+add eax, ebx
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x20]
+lea edi, [esi + eax + 0x1973]
+
+loc_fffae01c: ; not directly referenced
+cmp dword [ebx], 2
+jne short loc_fffae096 ; jne 0xfffae096
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x28]
+mov eax, dword [ebx + eax + 4]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x38]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x34], eax
+cmp ecx, 1
+je short loc_fffae04b ; je 0xfffae04b
+jb short loc_fffae057 ; jb 0xfffae057
+xor eax, eax
+cmp ecx, 3
+jbe short loc_fffae07c ; jbe 0xfffae07c
+jmp short loc_fffae057 ; jmp 0xfffae057
+
+loc_fffae04b: ; not directly referenced
+movzx eax, word [edi + 0x25e]
+test ax, ax
+jne short loc_fffae07c ; jne 0xfffae07c
+
+loc_fffae057: ; not directly referenced
+xor eax, eax
+cmp dword [ebx + 0xd5], 2
+jne short loc_fffae07c ; jne 0xfffae07c
+cmp dword [ebp - 0x24], 0
+movzx edx, word [edi + 0x68]
+je short loc_fffae07c ; je 0xfffae07c
+imul edx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x24]
+lea eax, [eax + edx - 1]
+xor edx, edx
+div dword [ebp - 0x24]
+
+loc_fffae07c: ; not directly referenced
+cmp eax, 0x1ff
+mov edx, 0x1ff
+cmova eax, edx
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffae096: ; not directly referenced
+add dword [ebp - 0x28], 0x20
+add ebx, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x28], 0x40
+jne loc_fffae01c ; jne 0xfffae01c
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffae000 ; jne 0xfffae000
+jmp near loc_fffadfc2 ; jmp 0xfffadfc2
+
+loc_fffae0d0: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffae0de ; ja 0xfffae0de
+cmp byte [esi + 0x3749], 0
+je short loc_fffae108 ; je 0xfffae108
+
+loc_fffae0de: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffae108: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffae0d0 ; jne 0xfffae0d0
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffae11e: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+
+loc_fffae129: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffae155 ; ja 0xfffae155
+mov ebx, dword [ebp + 8]
+cmp byte [ebx + 0x3749], 0
+jne short loc_fffae155 ; jne 0xfffae155
+
+loc_fffae13d: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffae129 ; jne 0xfffae129
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48e1
+jmp near loc_fffae29a ; jmp 0xfffae29a
+
+loc_fffae155: ; not directly referenced
+mov ebx, dword [ebp + 8]
+imul eax, eax, 0x23
+lea esi, [ecx*8 - 0x1269]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+lea edi, [ebx + 0x49bf]
+mov dword [ebp - 0x2c], edi
+imul edi, ecx, 0x2e
+mov dword [ebp - 0x3c], esi
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x34], edi
+
+loc_fffae186: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+mov esi, dword [ebp - 0x2c]
+mov ebx, dword [ebp - 0x20]
+mov dword [ebp - 0x24], 0
+add eax, esi
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp + 8]
+lea edi, [eax + ebx + 0x1973]
+
+loc_fffae1a5: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffae260 ; jne 0xfffae260
+mov eax, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x24]
+mov ebx, dword [esi + eax - 0xf2]
+mov eax, dword [ebp - 0x38]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x28], eax
+cmp ecx, 1
+je short loc_fffae215 ; je 0xfffae215
+jb short loc_fffae221 ; jb 0xfffae221
+cmp ecx, 3
+ja short loc_fffae221 ; ja 0xfffae221
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffae1e8 ; jne 0xfffae1e8
+and dl, 1
+jne short loc_fffae1ef ; jne 0xfffae1ef
+xor eax, eax
+jmp short loc_fffae246 ; jmp 0xfffae246
+
+loc_fffae1e8: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffae246 ; je 0xfffae246
+
+loc_fffae1ef: ; not directly referenced
+mov eax, dword [esi - 0x21]
+and eax, 0xfffffffd
+dec eax
+mov eax, dword [ebp - 0x30]
+jne short loc_fffae205 ; jne 0xfffae205
+movzx edx, word [edi + eax + 0x10f]
+jmp short loc_fffae20d ; jmp 0xfffae20d
+
+loc_fffae205: ; not directly referenced
+movzx edx, word [edi + eax + 0x1df]
+
+loc_fffae20d: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffae246 ; je 0xfffae246
+jmp short loc_fffae23a ; jmp 0xfffae23a
+
+loc_fffae215: ; not directly referenced
+movzx eax, word [edi + 0x25c]
+test ax, ax
+jne short loc_fffae246 ; jne 0xfffae246
+
+loc_fffae221: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+je short loc_fffae246 ; je 0xfffae246
+mov eax, dword [esi - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffae236 ; jne 0xfffae236
+movzx edx, word [edi + 0x60]
+jmp short loc_fffae23a ; jmp 0xfffae23a
+
+loc_fffae236: ; not directly referenced
+movzx edx, word [edi + 0x66]
+
+loc_fffae23a: ; not directly referenced
+imul edx, dword [ebp - 0x28]
+lea eax, [ebx + edx - 1]
+xor edx, edx
+div ebx
+
+loc_fffae246: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0x1ff
+mov ebx, 0x1ff
+cmova eax, ebx
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffae260: ; not directly referenced
+add dword [ebp - 0x24], 0x20
+add esi, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x24], 0x40
+jne loc_fffae1a5 ; jne 0xfffae1a5
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffae186 ; jne 0xfffae186
+jmp near loc_fffae13d ; jmp 0xfffae13d
+
+loc_fffae29a: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffae2ab ; ja 0xfffae2ab
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x3749], 0
+je short loc_fffae2d5 ; je 0xfffae2d5
+
+loc_fffae2ab: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffae2d5: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffae29a ; jne 0xfffae29a
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffae2eb: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+push ebx
+sub esp, 0x4c
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2443]
+mov dword [ebp - 0x44], eax
+
+loc_fffae302: ; not directly referenced
+lea eax, [edi - 2]
+cmp eax, 1
+ja short loc_fffae32e ; ja 0xfffae32e
+mov ebx, dword [ebp + 8]
+cmp byte [ebx + 0x3749], 0
+jne short loc_fffae32e ; jne 0xfffae32e
+
+loc_fffae316: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffae302 ; jne 0xfffae302
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48df
+jmp near loc_fffae4d9 ; jmp 0xfffae4d9
+
+loc_fffae32e: ; not directly referenced
+mov ebx, dword [ebp + 8]
+imul eax, eax, 0x23
+lea esi, [edi*8 - 0x1269]
+mov dword [ebp + edi*4 - 0x28], 0
+mov dword [ebp - 0x34], 0
+add ebx, 0x49bf
+mov dword [ebp - 0x3c], ebx
+imul ebx, edi, 0x2e
+mov dword [ebp - 0x54], esi
+mov dword [ebp - 0x40], eax
+mov dword [ebp - 0x48], ebx
+
+loc_fffae35f: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+mov esi, dword [ebp - 0x3c]
+mov ebx, dword [ebp - 0x34]
+mov dword [ebp - 0x38], 0
+add eax, esi
+mov dword [ebp - 0x50], eax
+mov eax, dword [ebp + 8]
+lea eax, [eax + ebx + 0x1973]
+mov dword [ebp - 0x30], eax
+
+loc_fffae381: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffae49e ; jne 0xfffae49e
+mov eax, dword [ebp - 0x48]
+mov ebx, dword [ebp - 0x38]
+mov eax, dword [esi + eax - 0xf2]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebp - 0x50]
+mov ecx, dword [eax + ebx + 0xc9]
+cmp edi, 1
+je loc_fffae446 ; je 0xfffae446
+jb loc_fffae455 ; jb 0xfffae455
+cmp edi, 3
+ja loc_fffae455 ; ja 0xfffae455
+cmp edi, 2
+mov dl, byte [esi]
+jne short loc_fffae3d3 ; jne 0xfffae3d3
+and dl, 1
+jne short loc_fffae3de ; jne 0xfffae3de
+xor eax, eax
+jmp near loc_fffae484 ; jmp 0xfffae484
+
+loc_fffae3d3: ; not directly referenced
+xor eax, eax
+and dl, 2
+je loc_fffae484 ; je 0xfffae484
+
+loc_fffae3de: ; not directly referenced
+mov eax, dword [esi - 0x21]
+mov ebx, dword [ebp - 0x40]
+and eax, 0xfffffffd
+dec eax
+mov eax, dword [ebp - 0x30]
+jne short loc_fffae3f7 ; jne 0xfffae3f7
+movzx edx, word [eax + ebx + 0x10d]
+jmp short loc_fffae3ff ; jmp 0xfffae3ff
+
+loc_fffae3f7: ; not directly referenced
+movzx edx, word [eax + ebx + 0x1dd]
+
+loc_fffae3ff: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x2c], 0
+je short loc_fffae484 ; je 0xfffae484
+mov eax, dword [ebp - 0x44]
+imul edx, edx, 0x3e8
+mov ebx, dword [eax + 0x74]
+mov dword [ebp - 0x4c], ebx
+push ebx
+mov ebx, ecx
+push edx
+sar ebx, 0x1f
+push ebx
+xor ebx, ebx
+push ecx
+call dword [eax + 0x70] ; ucall
+mov ecx, dword [ebp - 0x2c]
+mov dword [esp], 0
+push ebx
+xor ebx, ebx
+push ecx
+mov ecx, dword [ebp - 0x2c]
+dec ecx
+add eax, ecx
+adc edx, ebx
+mov ebx, dword [ebp - 0x4c]
+push edx
+push eax
+call ebx
+add esp, 0x20
+jmp short loc_fffae484 ; jmp 0xfffae484
+
+loc_fffae446: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+movzx eax, word [eax + 0x25a]
+test ax, ax
+jne short loc_fffae484 ; jne 0xfffae484
+
+loc_fffae455: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x2c], 0
+je short loc_fffae484 ; je 0xfffae484
+cmp dword [esi - 0x21], 3
+mov eax, 0x3b8260
+mov ebx, 0x7704c0
+mov ecx, 0x3e8
+cmove ebx, eax
+mov eax, dword [ebp - 0x2c]
+xor edx, edx
+div ecx
+xor edx, edx
+mov ecx, eax
+lea eax, [ebx + eax - 1]
+div ecx
+
+loc_fffae484: ; not directly referenced
+cmp eax, 0xffff
+mov edx, 0xffff
+cmovbe edx, eax
+mov eax, dword [ebp + edi*4 - 0x28]
+cmp edx, eax
+cmovb edx, eax
+mov dword [ebp + edi*4 - 0x28], edx
+
+loc_fffae49e: ; not directly referenced
+add dword [ebp - 0x38], 0x20
+add esi, 0x128
+add dword [ebp - 0x30], 0x277
+cmp dword [ebp - 0x38], 0x40
+jne loc_fffae381 ; jne 0xfffae381
+add dword [ebp - 0x34], 0x54a
+add dword [ebp - 0x3c], 0x13c3
+cmp dword [ebp - 0x34], 0xa94
+jne loc_fffae35f ; jne 0xfffae35f
+jmp near loc_fffae316 ; jmp 0xfffae316
+
+loc_fffae4d9: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffae4ea ; ja 0xfffae4ea
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffae514 ; je 0xfffae514
+
+loc_fffae4ea: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x20]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffae514: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffae4d9 ; jne 0xfffae4d9
+lea esp, [ebp - 0xc]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffae52a:
+push ebp
+mov ebp, esp
+sub esp, 0x14
+mov ecx, dword [eax + 0x2443]
+add edx, dword [eax + 0x18c5]
+inc dword [eax + 0x36a4]
+push edx
+call dword [ecx + 0x20] ; ucall
+leave
+ret
+
+fcn_fffae548:
+push ebp
+mov ebp, esp
+sub esp, 0x14
+mov ecx, dword [eax + 0x2443]
+add edx, dword [eax + 0x18c5]
+inc dword [eax + 0x36a4]
+push edx
+call dword [ecx + 0x24] ; ucall
+leave
+ret
+
+fcn_fffae566: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+sub esp, 0xc
+mov ebx, dword [eax + 0x2443]
+inc dword [eax + 0x36a0]
+push ecx
+add edx, dword [eax + 0x18c5]
+push edx
+call dword [ebx + 0x28] ; ucall
+add esp, 0x10
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffae58c: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+sub esp, 0xc
+mov ebx, dword [eax + 0x2443]
+inc dword [eax + 0x36a0]
+push ecx
+add edx, dword [eax + 0x18c5]
+push edx
+call dword [ebx + 0x30] ; ucall
+add esp, 0x10
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffae5b2: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, ref_fffd363c ; mov ebx, 0xfffd363c
+sub esp, 0x1c
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x20], eax
+mov eax, dword [eax + 0x188b]
+mov byte [ebp - 0x21], cl
+mov dword [ebp - 0x28], edx
+mov esi, dword [edi]
+mov dword [ebp - 0x1c], eax
+
+loc_fffae5d7: ; not directly referenced
+mov al, byte [ebx + 4]
+and eax, 1
+cmp eax, dword [ebp - 0x28]
+jne short loc_fffae62b ; jne 0xfffae62b
+movzx edi, word [ebx]
+sub edi, esi
+
+loc_fffae5e7: ; not directly referenced
+movzx eax, word [ebx + 2]
+lea edx, [esi + edi]
+cmp edx, eax
+ja short loc_fffae62b ; ja 0xfffae62b
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffae5fe ; jne 0xfffae5fe
+test byte [ebx + 4], 2
+jmp short loc_fffae608 ; jmp 0xfffae608
+
+loc_fffae5fe: ; not directly referenced
+cmp dword [ebp - 0x1c], 1
+jne short loc_fffae626 ; jne 0xfffae626
+test byte [ebx + 4], 4
+
+loc_fffae608: ; not directly referenced
+je short loc_fffae626 ; je 0xfffae626
+cmp byte [ebp - 0x21], 1
+jne short loc_fffae61c ; jne 0xfffae61c
+mov eax, dword [ebp - 0x20]
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [esi], eax
+jmp short loc_fffae626 ; jmp 0xfffae626
+
+loc_fffae61c: ; not directly referenced
+mov ecx, dword [esi]
+mov eax, dword [ebp - 0x20]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffae626: ; not directly referenced
+add esi, 4
+jmp short loc_fffae5e7 ; jmp 0xfffae5e7
+
+loc_fffae62b: ; not directly referenced
+add ebx, 5
+cmp ebx, ref_fffd3e70 ; cmp ebx, 0xfffd3e70
+jne short loc_fffae5d7 ; jne 0xfffae5d7
+mov eax, dword [ebp + 8]
+mov dword [eax], esi
+add esp, 0x1c
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffae645: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x5edc]
+lea ecx, [eax + 0x1c]
+mov dword [edx + 0x1b8], ecx
+add edx, 0x1b8
+mov ecx, 1
+mov dword [ebp + 8], edx
+xor edx, edx
+pop ebp
+jmp near fcn_fffae5b2 ; jmp 0xfffae5b2
+
+fcn_fffae670: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x1c
+mov esi, dword [ebx + 0x2443]
+mov dword [ebp - 0x24], edx
+mov byte [ebp - 0x1d], dl
+call dword [esi + 0x54] ; ucall
+mov ecx, 5
+mov edx, 0x4800
+add eax, 0x2710
+mov dword [ebp - 0x1c], eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffae6a3: ; not directly referenced
+mov edx, 0x4804
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov cl, byte [ebp - 0x1d]
+mov edx, eax
+mov edi, eax
+shr edx, 0x10
+shr eax, 0x10
+and edx, 2
+and eax, 1
+or eax, edx
+and eax, ecx
+cmp al, cl
+jne short loc_fffae6ce ; jne 0xfffae6ce
+xor eax, eax
+jmp short loc_fffae6db ; jmp 0xfffae6db
+
+loc_fffae6ce: ; not directly referenced
+call dword [esi + 0x54] ; ucall
+cmp dword [ebp - 0x1c], eax
+ja short loc_fffae6a3 ; ja 0xfffae6a3
+mov eax, 0x12
+
+loc_fffae6db: ; not directly referenced
+mov edx, edi
+mov ecx, edi
+and edx, 2
+and ecx, 1
+or ecx, edx
+mov edx, 0x14
+test byte [ebp - 0x24], cl
+cmovne eax, edx
+add esp, 0x1c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffae6fa: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, 0x1ff
+push esi
+mov esi, 0x2800
+push ebx
+mov ebx, eax
+sub esp, 0x10
+mov dword [ebp - 0x1c], edx
+imul edx, dword [eax + 0x18a7], 0x2e
+imul eax, dword [ebp - 0x1c], 0x13c3
+lea eax, [edx + eax + 0x3740]
+lea edx, [ebx + eax + 0x1a]
+movzx eax, word [edx + 0x12]
+cmp word [edx + 0x14], 0x1ff
+cmovbe di, word [edx + 0x14]
+movzx ecx, ax
+imul eax, eax, 0x59
+and edi, 0x1ff
+shl edi, 0x10
+cdq
+idiv esi
+mov esi, dword [ebp - 0x1c]
+mov edx, 0x7f
+cmp eax, 0x7f
+cmovbe edx, eax
+add esp, 0x10
+shl edx, 0x19
+or ecx, edi
+shl esi, 0xa
+or ecx, edx
+mov eax, ebx
+lea edx, [esi + 0x4298]
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+fcn_fffae778: ; not directly referenced
+mov dl, byte [eax + 0x1907]
+push ebp
+mov ebp, esp
+push esi
+mov esi, 0x80
+test dl, dl
+movzx ecx, dl
+cmovne esi, ecx
+movzx ecx, byte [eax + 0x1906]
+push ebx
+cmp cl, 6
+sete bl
+cmp cl, 1
+setbe dl
+or bl, dl
+jne short loc_fffae7ba ; jne 0xfffae7ba
+xor ecx, ecx
+cmp dword [eax + 0x2480], 3
+setne cl
+lea ecx, [ecx*4 + 2]
+
+loc_fffae7ba: ; not directly referenced
+and ecx, 0xf
+mov edx, 0x4cb0
+shl ecx, 0xc
+pop ebx
+or ecx, esi
+pop esi
+pop ebp
+jmp near fcn_fffae58c ; jmp 0xfffae58c
+
+fcn_fffae7cf: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 0xc
+mov ecx, dword [eax + 0x2443]
+inc dword [eax + 0x36a0]
+push dword [ebp + 0xc]
+push dword [ebp + 8]
+add edx, dword [eax + 0x18c5]
+push edx
+call dword [ecx + 0x34] ; ucall
+add esp, 0x10
+leave
+ret
+
+fcn_fffae7f6: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x2443]
+cmp dword [ebx + 0x188b], 1
+mov dword [ebp - 0x24], eax
+je loc_fffae9e4 ; je 0xfffae9e4
+
+loc_fffae818: ; not directly referenced
+mov edx, 0x5030
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5030
+or al, 0x89
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, 0x8f
+mov edx, 0x50fc
+mov eax, ebx
+mov esi, dword [ebx + 0x2443]
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebx + 0x18b5], 0
+je loc_fffaeac9 ; je 0xfffaeac9
+mov edi, dword [ebx + 0x18c1]
+push 0xa0
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add edi, eax
+mov dword [esp], edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0xbc
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0xa8
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0x90
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0x98
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0xb0
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0xb4
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0x78
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or ah, 4
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edi, dword [ebx + 0x18c1]
+push 0x50
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [esi + 0x20] ; ucall
+pop edx
+pop ecx
+or eax, 1
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+mov edx, 0x5880
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+movzx edx, byte [ebx + 0x192a]
+and edx, 1
+shl edx, 5
+and eax, 0xffffffdf
+or eax, edx
+mov edx, 0x5880
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+jmp near loc_fffaeac9 ; jmp 0xfffaeac9
+
+loc_fffae9e4: ; not directly referenced
+cmp byte [ebx + 0x36a8], 0
+je loc_fffae818 ; je 0xfffae818
+cmp byte [ebx + 0x3704], 0
+je short loc_fffaea2e ; je 0xfffaea2e
+push eax
+mov esi, dword [ebp - 0x24]
+xor edx, edx
+push 0x14
+mov eax, dword [ebx + 0x3711]
+push edx
+push eax
+call dword [esi + 0x68] ; ucall
+add esp, 0xc
+push 0x14
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebx + 0x3705]
+mov dword [ebp - 0x2c], edx
+xor edx, edx
+push edx
+push eax
+call dword [esi + 0x68] ; ucall
+add esp, 0x10
+mov ecx, eax
+mov edi, edx
+jmp short loc_fffaea40 ; jmp 0xfffaea40
+
+loc_fffaea2e: ; not directly referenced
+xor ecx, ecx
+xor edi, edi
+mov dword [ebp - 0x28], 0
+mov dword [ebp - 0x2c], 0
+
+loc_fffaea40: ; not directly referenced
+xor esi, esi
+
+loc_fffaea42: ; not directly referenced
+movzx eax, byte [ebx + 0x36a8]
+cmp esi, eax
+jae loc_fffae818 ; jae 0xfffae818
+mov eax, dword [ebx + esi*8 + 0x36a9]
+mov edx, dword [ebx + esi*8 + 0x36ad]
+cmp byte [ebx + 0x3704], 0
+mov dword [ebp - 0x20], eax
+mov dword [ebp - 0x1c], edx
+je short loc_fffaea8e ; je 0xfffaea8e
+cmp edx, dword [ebp - 0x2c]
+ja short loc_fffaea8e ; ja 0xfffaea8e
+jb short loc_fffaea7a ; jb 0xfffaea7a
+cmp eax, dword [ebp - 0x28]
+jae short loc_fffaea8e ; jae 0xfffaea8e
+
+loc_fffaea7a: ; not directly referenced
+cmp edx, edi
+jb short loc_fffaea8e ; jb 0xfffaea8e
+ja short loc_fffaea84 ; ja 0xfffaea84
+cmp eax, ecx
+jb short loc_fffaea8e ; jb 0xfffaea8e
+
+loc_fffaea84: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+or eax, 0x40000000
+jmp short loc_fffaea96 ; jmp 0xfffaea96
+
+loc_fffaea8e: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+and eax, 0xbfffffff
+
+loc_fffaea96: ; not directly referenced
+mov dword [ebp - 0x1c], eax
+mov eax, dword [ebp - 0x1c]
+lea edx, [esi*8 + 0x50b0]
+mov dword [ebp - 0x30], ecx
+inc esi
+or eax, 0x80000000
+mov dword [ebp - 0x1c], eax
+push eax
+push eax
+mov eax, ebx
+push dword [ebp - 0x1c]
+push dword [ebp - 0x20]
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+mov ecx, dword [ebp - 0x30]
+jmp near loc_fffaea42 ; jmp 0xfffaea42
+
+loc_fffaeac9: ; not directly referenced
+mov eax, dword [ebp - 0x24]
+call dword [eax + 0x54] ; ucall
+lea esi, [eax + 0x2710]
+
+loc_fffaead5: ; not directly referenced
+mov edx, 0x5030
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+test al, 0x20
+jne short loc_fffaeaf6 ; jne 0xfffaeaf6
+mov eax, dword [ebp - 0x24]
+call dword [eax + 0x54] ; ucall
+cmp esi, eax
+ja short loc_fffaead5 ; ja 0xfffaead5
+mov eax, 1
+jmp short loc_fffaeb74 ; jmp 0xfffaeb74
+
+loc_fffaeaf6: ; not directly referenced
+xor eax, eax
+cmp dword [ebx + 0x1887], 0x306d0
+je short loc_fffaeb30 ; je 0xfffaeb30
+mov ecx, eax
+mov edx, 0x14000000
+and ecx, 0xe00fffff
+mov dl, 0xa0
+or ecx, 0x5a00000
+and ecx, 0xfff00fff
+or ecx, 0x24000
+and ecx, 0xfffff00f
+or ecx, 0x4f
+jmp short loc_fffaeb5d ; jmp 0xfffaeb5d
+
+loc_fffaeb30: ; not directly referenced
+mov ecx, eax
+mov edx, 0x14000000
+and ecx, 0xe00fffff
+mov dl, 0xa0
+or ecx, 0x8200000
+and ecx, 0xfff00fff
+or ecx, 0x5a000
+and ecx, 0xfffff00f
+or ecx, 0x32f
+
+loc_fffaeb5d: ; not directly referenced
+mov eax, ecx
+push ecx
+push ecx
+push edx
+mov edx, 0x5d10
+push eax
+mov eax, ebx
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+xor eax, eax
+
+loc_fffaeb74: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaeb7c: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+sub esp, 0xc
+mov ebx, dword [eax + 0x2443]
+inc dword [eax + 0x36a0]
+push ecx
+add edx, dword [eax + 0x18c5]
+push edx
+call dword [ebx + 0x30] ; ucall
+add esp, 0x10
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffaeba2: ; not directly referenced
+push ebp
+mov edx, eax
+mov ebp, esp
+xor eax, eax
+
+loc_fffaeba9: ; not directly referenced
+test edx, edx
+je short loc_fffaebb5 ; je 0xfffaebb5
+lea ecx, [edx - 1]
+inc eax
+and edx, ecx
+jmp short loc_fffaeba9 ; jmp 0xfffaeba9
+
+loc_fffaebb5: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffaebb7: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push ebx
+mov ebx, 0xa9e
+
+loc_fffaebc2: ; not directly referenced
+cmp eax, 0x10f
+jbe short loc_fffaebd8 ; jbe 0xfffaebd8
+imul eax, eax, 0x3e8
+xor edx, edx
+add ecx, 0x64
+div ebx
+jmp short loc_fffaebc2 ; jmp 0xfffaebc2
+
+loc_fffaebd8: ; not directly referenced
+imul edx, eax, 0xfffffff0
+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_fffaebf8: ; not directly referenced
+push ebp
+mov ecx, 0x12
+mov ebp, esp
+xor edx, edx
+push edi
+push esi
+mov esi, ref_fffd3628 ; mov esi, 0xfffd3628
+sub esp, 0x20
+lea edi, [ebp - 0x1a]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea ecx, [eax + eax]
+
+loc_fffaec14: ; not directly referenced
+cmp eax, 8
+jbe short loc_fffaec26 ; jbe 0xfffaec26
+mov ecx, eax
+add edx, 0xa
+shr ecx, 2
+shr eax, 3
+jmp short loc_fffaec14 ; jmp 0xfffaec14
+
+loc_fffaec26: ; not directly referenced
+movzx eax, byte [ebp + ecx - 0x1a]
+add esp, 0x20
+pop esi
+pop edi
+pop ebp
+add eax, edx
+ret
+
+fcn_fffaec34: ; not directly referenced
+cmp eax, 0xffffffff
+je short loc_fffaec5c ; je 0xfffaec5c
+push ebp
+xor ecx, ecx
+mov ebp, esp
+xor edx, edx
+push edi
+push esi
+push ebx
+mov ebx, 1
+
+loc_fffaec48: ; not directly referenced
+mov edi, ebx
+shl edi, cl
+lea esi, [ecx + 1]
+test edi, eax
+cmovne edx, esi
+inc ecx
+cmp ecx, 0x20
+jne short loc_fffaec48 ; jne 0xfffaec48
+jmp short loc_fffaec61 ; jmp 0xfffaec61
+
+loc_fffaec5c: ; not directly referenced
+xor edx, edx
+mov al, dl
+ret
+
+loc_fffaec61: ; not directly referenced
+pop ebx
+mov al, dl
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaec68: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x10
+mov bl, byte [ebp + 8]
+mov byte [ebp - 0xe], bl
+mov bl, byte [ebp + 0xc]
+mov byte [ebp - 0xf], bl
+mov bl, byte [ebp + 0x10]
+cmp cl, 0xff
+je short loc_fffaec8d ; je 0xfffaec8d
+lea edi, [ecx + 1]
+mov byte [ebp - 0xd], cl
+jmp short loc_fffaec96 ; jmp 0xfffaec96
+
+loc_fffaec8d: ; not directly referenced
+mov edi, 4
+mov byte [ebp - 0xd], 0
+
+loc_fffaec96: ; not directly referenced
+imul edx, edx, 0x13c3
+lea esi, [eax + edx + 0x3756]
+add eax, edx
+mov dword [ebp - 0x14], esi
+mov dword [ebp - 0x1c], eax
+
+loc_fffaecab: ; not directly referenced
+mov eax, edi
+cmp byte [ebp - 0xd], al
+jae short loc_fffaed27 ; jae 0xfffaed27
+mov cl, byte [ebp - 0xd]
+mov eax, 1
+mov esi, dword [ebp - 0x1c]
+movzx edx, cl
+shl eax, cl
+test byte [esi + 0x381a], al
+je short loc_fffaed22 ; je 0xfffaed22
+movzx eax, byte [ebp - 0xe]
+lea edx, [edx + edx*8]
+add edx, dword [ebp - 0x14]
+add eax, edx
+cmp byte [ebp - 0xf], 0
+mov dl, byte [eax + 0x104a]
+mov al, byte [eax + 0x106e]
+jne short loc_fffaecf4 ; jne 0xfffaecf4
+cmp al, dl
+cmova eax, edx
+cmp bl, al
+cmova ebx, eax
+jmp short loc_fffaed22 ; jmp 0xfffaed22
+
+loc_fffaecf4: ; not directly referenced
+movzx ecx, dl
+movzx esi, bl
+mov dword [ebp - 0x18], ecx
+mov ecx, 0x3f
+sub ecx, dword [ebp - 0x18]
+cmp esi, ecx
+jle short loc_fffaed0d ; jle 0xfffaed0d
+mov bl, 0x3f
+sub ebx, edx
+
+loc_fffaed0d: ; not directly referenced
+movzx esi, al
+mov edx, 0x3f
+movzx ecx, bl
+sub edx, esi
+cmp ecx, edx
+jle short loc_fffaed22 ; jle 0xfffaed22
+mov bl, 0x3f
+sub ebx, eax
+
+loc_fffaed22: ; not directly referenced
+inc byte [ebp - 0xd]
+jmp short loc_fffaecab ; jmp 0xfffaecab
+
+loc_fffaed27: ; not directly referenced
+add esp, 0x10
+mov al, bl
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaed31:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, edx
+sub esp, 0x10
+mov edi, dword [ebp + 8]
+mov esi, dword [eax + 0x2443]
+mov eax, 0x5f5e100
+test edi, edi
+cmovne eax, edi
+xor edx, edx
+mov edi, 0x186a0
+div edi
+dec ecx
+mov edx, 0x3b9aca00
+mov ecx, 0x4f790d55
+cmovne edx, ecx
+push edx
+xor edx, edx
+push edx
+push eax
+call dword [esi + 0x70] ; ucall
+add esp, 0xc
+push ebx
+push edx
+push eax
+call dword [esi + 0x70] ; ucall
+add esp, 0x10
+xor ecx, ecx
+mov ebx, edx
+or ebx, eax
+je short loc_fffaed9b ; je 0xfffaed9b
+sub esp, 0xc
+push 0
+push edx
+push eax
+push 0x8ac72304
+push 0x89e80000
+call dword [esi + 0x74] ; ucall
+add esp, 0x20
+mov ecx, eax
+
+loc_fffaed9b:
+lea esp, [ebp - 0xc]
+mov eax, ecx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaeda5: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+sub esp, 0x4c
+mov ebx, dword [ebp + 8]
+lea eax, [ebx + 0x3756]
+mov dword [ebp - 0x4c], eax
+lea eax, [ebx + 0x2407]
+mov dword [ebp - 0x58], eax
+
+loc_fffaedc5: ; not directly referenced
+lea eax, [esi - 2]
+cmp eax, 1
+ja short loc_fffaedf0 ; ja 0xfffaedf0
+cmp byte [ebx + 0x3749], 0
+jne short loc_fffaedf0 ; jne 0xfffaedf0
+
+loc_fffaedd6: ; not directly referenced
+inc esi
+add dword [ebp - 0x4c], 8
+cmp esi, 4
+jne short loc_fffaedc5 ; jne 0xfffaedc5
+lea eax, [ebx + 0x48cd]
+mov ecx, 0xfffffffe
+jmp near loc_fffaef89 ; jmp 0xfffaef89
+
+loc_fffaedf0: ; not directly referenced
+lea eax, [ebx + 0x49bf]
+mov edi, dword [ebp - 0x4c]
+mov dword [ebp - 0x44], eax
+lea eax, [ebx + 0x1973]
+mov dword [ebp - 0x34], eax
+imul eax, esi, 0x23
+mov dword [ebp + esi*4 - 0x28], 0
+mov dword [ebp - 0x48], edi
+lea edi, [eax + 0x18b]
+add eax, 0xbb
+mov dword [ebp - 0x50], edi
+mov dword [ebp - 0x54], eax
+
+loc_fffaee24: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edi, dword [ebp - 0x34]
+mov dword [ebp - 0x38], 0
+mov dword [ebp - 0x2c], eax
+
+loc_fffaee34: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+cmp dword [eax - 0xf6], 2
+jne loc_fffaef48 ; jne 0xfffaef48
+mov eax, dword [ebp - 0x48]
+mov ecx, dword [ebp - 0x38]
+mov edx, dword [eax + ecx + 0xc9]
+mov eax, dword [eax + ecx + 0xcd]
+mov dword [ebp - 0x3c], edx
+mov dword [ebp - 0x40], eax
+cmp esi, 1
+je short loc_fffaeed2 ; je 0xfffaeed2
+jb loc_fffaef03 ; jb 0xfffaef03
+cmp esi, 3
+ja loc_fffaef03 ; ja 0xfffaef03
+mov eax, dword [ebp - 0x2c]
+cmp esi, 2
+mov dl, byte [eax]
+jne short loc_fffaee88 ; jne 0xfffaee88
+and dl, 1
+jne short loc_fffaee93 ; jne 0xfffaee93
+xor eax, eax
+jmp near loc_fffaef3b ; jmp 0xfffaef3b
+
+loc_fffaee88: ; not directly referenced
+xor eax, eax
+and dl, 2
+je loc_fffaef3b ; je 0xfffaef3b
+
+loc_fffaee93: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov ecx, dword [ebp - 0x54]
+mov edx, dword [eax - 0x21]
+add ecx, edi
+mov dword [ebp - 0x30], ecx
+mov ecx, dword [ebp - 0x50]
+and edx, 0xfffffffd
+add ecx, edi
+dec edx
+cmove ecx, dword [ebp - 0x30]
+xor edx, edx
+cmp byte [eax + 1], 0x13
+mov dword [ebp - 0x30], ecx
+movzx ecx, byte [ecx + 1]
+jne short loc_fffaeec4 ; jne 0xfffaeec4
+mov eax, dword [ebp - 0x30]
+movsx edx, byte [eax + 0x1a]
+
+loc_fffaeec4: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+imul ecx, dword [ebp - 0x3c]
+imul eax, edx
+add eax, ecx
+jmp short loc_fffaef2e ; jmp 0xfffaef2e
+
+loc_fffaeed2: ; not directly referenced
+movzx edx, byte [ebx + 0x1876]
+test dl, dl
+je short loc_fffaef03 ; je 0xfffaef03
+sub esp, 0xc
+mov ecx, dword [ebx + 0x36e3]
+mov eax, ebx
+push dword [ebx + 0x187b]
+call fcn_fffaed31 ; call 0xfffaed31
+mov edx, dword [ebx + 0x36db]
+add esp, 0x10
+cmp eax, edx
+cmovb eax, edx
+jmp short loc_fffaef3b ; jmp 0xfffaef3b
+
+loc_fffaef03: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov eax, dword [eax - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffaef19 ; jne 0xfffaef19
+movzx eax, byte [edi + 0x54]
+movsx edx, byte [edi + 0x6a]
+jmp short loc_fffaef24 ; jmp 0xfffaef24
+
+loc_fffaef19: ; not directly referenced
+movzx eax, byte [edi + 0x5a]
+movsx edx, byte [edi + 0xc5]
+
+loc_fffaef24: ; not directly referenced
+imul eax, dword [ebp - 0x3c]
+imul edx, dword [ebp - 0x40]
+add eax, edx
+
+loc_fffaef2e: ; not directly referenced
+cmp eax, dword [ebx + 0x36db]
+cmovb eax, dword [ebx + 0x36db]
+
+loc_fffaef3b: ; not directly referenced
+mov edx, dword [ebp + esi*4 - 0x28]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + esi*4 - 0x28], eax
+
+loc_fffaef48: ; not directly referenced
+add dword [ebp - 0x38], 0x20
+add edi, 0x277
+add dword [ebp - 0x2c], 0x128
+cmp dword [ebp - 0x38], 0x40
+jne loc_fffaee34 ; jne 0xfffaee34
+add dword [ebp - 0x34], 0x54a
+mov eax, dword [ebp - 0x58]
+add dword [ebp - 0x44], 0x13c3
+add dword [ebp - 0x48], 0x13c3
+cmp dword [ebp - 0x34], eax
+jne loc_fffaee24 ; jne 0xfffaee24
+jmp near loc_fffaedd6 ; jmp 0xfffaedd6
+
+loc_fffaef89: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffaef97 ; ja 0xfffaef97
+cmp byte [ebx + 0x3749], 0
+je short loc_fffaefbb ; je 0xfffaefbb
+
+loc_fffaef97: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x20]
+mov dword [eax], edx
+mov dword [eax - 0x1173], edx
+mov dword [eax + 0x128], edx
+mov dword [eax + 0x13c3], edx
+mov dword [eax + 0x250], edx
+mov dword [eax + 0x14eb], edx
+
+loc_fffaefbb: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffaef89 ; jne 0xfffaef89
+mov eax, dword [ebx + 0x18a7]
+mov eax, dword [ebp + eax*4 - 0x28]
+mov dword [ebx + 0x36df], eax
+lea esp, [ebp - 0xc]
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaefe1:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, 0x5f5e100
+sub esp, 0x10
+mov edi, dword [ebp + 8]
+mov esi, dword [eax + 0x2443]
+mov eax, 0xbebc200
+test edi, edi
+cmovne ebx, edi
+dec ecx
+mov ecx, 0xfe502ab
+cmovne eax, ecx
+imul ebx, edx
+xor edx, edx
+push ebx
+push edx
+push eax
+call dword [esi + 0x70] ; ucall
+mov dword [esp], 0
+push 0x5af3
+push 0x107a4000
+add eax, 0x883d2000
+adc edx, 0x2d79
+push edx
+push eax
+call dword [esi + 0x74] ; ucall
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaf03f:
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+xor ebx, ebx
+sub esp, 8
+mov dword [ebp - 0x14], eax
+
+loc_fffaf04f:
+cmp esi, edx
+je short loc_fffaf07d ; je 0xfffaf07d
+mov eax, dword [ebp - 0x14]
+mov byte [ebp - 0xd], 8
+movzx edi, byte [eax + esi]
+shl edi, 8
+xor ebx, edi
+
+loc_fffaf063:
+lea edi, [ebx + ebx]
+mov eax, edi
+xor eax, 0x1021
+and bh, 0x80
+mov ebx, eax
+cmove ebx, edi
+dec byte [ebp - 0xd]
+jne short loc_fffaf063 ; jne 0xfffaf063
+inc esi
+jmp short loc_fffaf04f ; jmp 0xfffaf04f
+
+loc_fffaf07d:
+mov word [ecx], bx
+mov eax, 1
+pop edx
+pop ecx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaf08c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+mov esi, eax
+push ebx
+mov eax, ref_fffd34b0 ; mov eax, 0xfffd34b0
+xor ebx, ebx
+
+loc_fffaf09d: ; not directly referenced
+cmp edx, dword [eax]
+ja short loc_fffaf0b1 ; ja 0xfffaf0b1
+cmp edx, dword [eax + 9]
+jbe short loc_fffaf0b1 ; jbe 0xfffaf0b1
+lea eax, [ebx + ebx*8]
+mov eax, dword [eax + ref_fffd34b4] ; mov eax, dword [eax - 0x2cb4c]
+jmp short loc_fffaf0bc ; jmp 0xfffaf0bc
+
+loc_fffaf0b1: ; not directly referenced
+inc ebx
+add eax, 9
+cmp ebx, 0x14
+jne short loc_fffaf09d ; jne 0xfffaf09d
+xor eax, eax
+
+loc_fffaf0bc: ; not directly referenced
+mov ecx, esi
+mov edx, 1
+shl edx, cl
+lea ecx, [ebx + ebx*8]
+add ecx, ref_fffd34b0 ; add ecx, 0xfffd34b0
+jmp short loc_fffaf0df ; jmp 0xfffaf0df
+
+loc_fffaf0d0: ; not directly referenced
+movzx esi, byte [ecx + 8]
+sub ecx, 9
+test esi, edx
+jne short loc_fffaf0e3 ; jne 0xfffaf0e3
+mov eax, dword [ecx + 4]
+dec ebx
+
+loc_fffaf0df: ; not directly referenced
+test ebx, ebx
+jne short loc_fffaf0d0 ; jne 0xfffaf0d0
+
+loc_fffaf0e3: ; not directly referenced
+test edi, edi
+je short loc_fffaf0e9 ; je 0xfffaf0e9
+mov dword [edi], ebx
+
+loc_fffaf0e9: ; not directly referenced
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaf0ee: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov eax, dword [ebp + 8]
+mov esi, dword [eax + 0x188b]
+mov ebx, dword [eax + 0x18a7]
+mov al, byte [eax + 0x36c9]
+test esi, esi
+sete cl
+test al, al
+sete dl
+test cl, dl
+jne loc_fffaf36d ; jne 0xfffaf36d
+dec esi
+sete dl
+dec al
+sete al
+test dl, al
+jne loc_fffaf36d ; jne 0xfffaf36d
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x2c], 0
+lea edi, [eax + 0x3756]
+imul eax, ebx, 0x2e
+mov dword [ebp - 0x38], eax
+
+loc_fffaf145: ; not directly referenced
+cmp dword [edi], 2
+jne loc_fffaf35a ; jne 0xfffaf35a
+mov eax, dword [ebp - 0x38]
+mov ecx, dword [ebp - 0x2c]
+mov byte [ebp - 0x1c], 0
+mov byte [ebp - 0x1b], 2
+cmp word [edi + eax + 8], 2
+mov byte [ebp - 0x1a], 3
+mov byte [ebp - 0x19], 2
+sete al
+movzx eax, al
+add eax, eax
+mov byte [ebp - 0x31], al
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x5edc]
+imul eax, ecx, 0xcc
+lea ebx, [edx + eax + 0x1c]
+mov eax, dword [ebp + 8]
+mov esi, dword [eax + 0x18a7]
+mov eax, ecx
+shl eax, 0xa
+lea ecx, [eax + 0x4004]
+mov dword [ebp - 0x30], eax
+mov eax, dword [ebp + 8]
+mov edx, ecx
+mov dword [ebp - 0x48], ecx
+imul esi, esi, 0x2e
+call fcn_fffae52a ; call 0xfffae52a
+add esi, edi
+mov dword [ebx + 0xa0], eax
+movzx eax, word [esi + 8]
+mov dl, byte [ebp + eax - 0x1d]
+mov al, byte [ebx + 0xa3]
+shl edx, 6
+and eax, 0x3f
+or eax, edx
+mov edx, dword [ebp - 0x48]
+mov byte [ebx + 0xa3], al
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebx + 0xa0]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x30]
+add eax, 0x400c
+mov edx, eax
+mov dword [ebp - 0x48], eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [ebx + 0xa8], eax
+mov ax, word [esi + 8]
+mov esi, dword [ebp + 8]
+mov ecx, dword [esi + 0x2480]
+mov edx, dword [esi + 0x36d7]
+cmp ecx, 3
+jne short loc_fffaf224 ; jne 0xfffaf224
+cmp edx, 0x536
+sbb eax, eax
+add eax, 6
+jmp short loc_fffaf26e ; jmp 0xfffaf26e
+
+loc_fffaf224: ; not directly referenced
+cmp ecx, 2
+jne short loc_fffaf242 ; jne 0xfffaf242
+mov eax, 5
+cmp edx, 0x640
+jbe short loc_fffaf26e ; jbe 0xfffaf26e
+mov al, 6
+cmp edx, 0x74b
+jbe short loc_fffaf26e ; jbe 0xfffaf26e
+jmp short loc_fffaf263 ; jmp 0xfffaf263
+
+loc_fffaf242: ; not directly referenced
+cmp edx, 0x640
+ja short loc_fffaf252 ; ja 0xfffaf252
+movzx eax, al
+add eax, 4
+jmp short loc_fffaf26e ; jmp 0xfffaf26e
+
+loc_fffaf252: ; not directly referenced
+cmp edx, 0x74b
+ja short loc_fffaf263 ; ja 0xfffaf263
+cmp al, 3
+sbb eax, eax
+add eax, 7
+jmp short loc_fffaf26e ; jmp 0xfffaf26e
+
+loc_fffaf263: ; not directly referenced
+cmp edx, 0x856
+sbb eax, eax
+add eax, 8
+
+loc_fffaf26e: ; not directly referenced
+cmp eax, 0xf
+mov edx, 0xf
+cmovbe edx, eax
+mov al, byte [ebx + 0xa8]
+xor esi, esi
+mov cl, dl
+shl ecx, 6
+shr edx, 2
+and eax, 0x3f
+and edx, 3
+or eax, ecx
+mov byte [ebx + 0xa8], al
+mov al, byte [ebx + 0xa9]
+and eax, 0xfffffffc
+or eax, edx
+mov byte [ebx + 0xa9], al
+mov ecx, dword [ebx + 0xa8]
+xor ebx, ebx
+mov edx, dword [ebp - 0x48]
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov al, byte [ebp - 0x31]
+xor ecx, ecx
+mov dl, byte [edi + 0xc4]
+mov byte [ebp - 0x48], 0
+sub eax, 4
+test dl, 1
+je short loc_fffaf2e3 ; je 0xfffaf2e3
+mov cl, al
+add cl, byte [edi + 0x1015]
+mov byte [edi + 0x1015], cl
+and ecx, 0x7f
+
+loc_fffaf2e3: ; not directly referenced
+and dl, 2
+je short loc_fffaf2fb ; je 0xfffaf2fb
+mov dl, al
+add dl, byte [edi + 0x1016]
+mov esi, edx
+mov byte [edi + 0x1016], dl
+and esi, 0x7f
+
+loc_fffaf2fb: ; not directly referenced
+mov dl, byte [edi + 0xc4]
+test dl, 4
+je short loc_fffaf317 ; je 0xfffaf317
+mov bl, al
+add bl, byte [edi + 0x1017]
+mov byte [edi + 0x1017], bl
+and ebx, 0x7f
+
+loc_fffaf317: ; not directly referenced
+and dl, 8
+je short loc_fffaf32e ; je 0xfffaf32e
+add al, byte [edi + 0x1018]
+mov byte [edi + 0x1018], al
+and eax, 0x7f
+mov byte [ebp - 0x48], al
+
+loc_fffaf32e: ; not directly referenced
+mov eax, dword [ebp - 0x48]
+and esi, 0x7f
+and ecx, 0x7f
+shl esi, 8
+and ebx, 0x7f
+mov edx, dword [ebp - 0x30]
+shl ebx, 0x10
+or ecx, esi
+or ecx, ebx
+shl eax, 0x18
+or ecx, eax
+mov eax, dword [ebp + 8]
+add edx, 0x4024
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf35a: ; not directly referenced
+inc dword [ebp - 0x2c]
+add edi, 0x13c3
+cmp dword [ebp - 0x2c], 2
+jne loc_fffaf145 ; jne 0xfffaf145
+
+loc_fffaf36d: ; not directly referenced
+add esp, 0x3c
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaf377: ; not directly referenced
+push ebp
+mov ecx, 4
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd3e70 ; mov esi, 0xfffd3e70
+push ebx
+sub esp, 0x6c
+mov ebx, dword [ebp + 8]
+lea edi, [ebp - 0x54]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov byte [ebp - 0x5d], 0
+mov eax, dword [ebx + 0x2443]
+mov dword [ebp - 0x5c], 0
+mov dword [ebp - 0x64], eax
+lea eax, [ebx + 0x381a]
+
+loc_fffaf3ac: ; not directly referenced
+mov cl, byte [eax]
+mov byte [ebp - 0x5e], cl
+and cl, 1
+jne short loc_fffaf41a ; jne 0xfffaf41a
+
+loc_fffaf3b6: ; not directly referenced
+test byte [ebp - 0x5e], 4
+je loc_fffaf46d ; je 0xfffaf46d
+movzx edx, word [eax + 0x12c0]
+mov ecx, 1
+imul edx, dword [eax + 0x12bc]
+movzx edi, byte [eax + 0x12c6]
+movzx esi, byte [eax + 0x12c5]
+shr edx, 0x14
+cmp byte [eax + 0x12c6], 0
+cmovne ecx, edi
+movzx edi, byte [eax + 0x12c8]
+imul edi, esi
+imul edi, edx
+movzx edx, byte [eax + 0x12ca]
+imul edi, ecx
+movzx edx, word [ebp + edx*2 - 0x54]
+cmp edx, edi
+mov edx, 1
+cmove edx, dword [ebp - 0x5c]
+mov dword [ebp - 0x5c], edx
+jmp short loc_fffaf46d ; jmp 0xfffaf46d
+
+loc_fffaf41a: ; not directly referenced
+movzx edx, word [eax + 0x1198]
+imul edx, dword [eax + 0x1194]
+movzx ecx, byte [eax + 0x119e]
+movzx esi, byte [eax + 0x119d]
+shr edx, 0x14
+test cl, cl
+jne short loc_fffaf442 ; jne 0xfffaf442
+mov ecx, 1
+
+loc_fffaf442: ; not directly referenced
+movzx edi, byte [eax + 0x11a0]
+imul esi, edi
+imul esi, edx
+movzx edx, byte [eax + 0x11a2]
+imul esi, ecx
+movzx edx, word [ebp + edx*2 - 0x54]
+cmp edx, esi
+je loc_fffaf3b6 ; je 0xfffaf3b6
+mov dword [ebp - 0x5c], 1
+
+loc_fffaf46d: ; not directly referenced
+inc byte [ebp - 0x5d]
+add eax, 0x13c3
+cmp byte [ebp - 0x5d], 2
+jne loc_fffaf3ac ; jne 0xfffaf3ac
+cmp dword [ebp - 0x5c], 1
+je loc_fffaf5ed ; je 0xfffaf5ed
+push edx
+push 0
+push 0x2c
+lea eax, [ebp - 0x44]
+push eax
+mov eax, dword [ebp - 0x64]
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+cmp byte [ebx + 0x3748], 1
+mov dword [ebp - 0x58], 1
+je short loc_fffaf4af ; je 0xfffaf4af
+
+loc_fffaf4ab: ; not directly referenced
+xor esi, esi
+jmp short loc_fffaf509 ; jmp 0xfffaf509
+
+loc_fffaf4af: ; not directly referenced
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffaf4db ; jne 0xfffaf4db
+mov edx, 0x5004
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5004
+mov ecx, eax
+mov dword [ebp - 0x68], eax
+and ecx, 0xfcffffff
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf4db: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffaf4ab ; jne 0xfffaf4ab
+mov edx, 0x5008
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5008
+mov ecx, eax
+mov dword [ebp - 0x6c], eax
+and ecx, 0xfcffffff
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffaf4ab ; jmp 0xfffaf4ab
+
+loc_fffaf509: ; not directly referenced
+movzx eax, byte [ebx + 0x248d]
+bt eax, esi
+jb short loc_fffaf521 ; jb 0xfffaf521
+
+loc_fffaf515: ; not directly referenced
+add esi, 2
+cmp esi, 4
+jne short loc_fffaf509 ; jne 0xfffaf509
+xor edi, edi
+jmp short loc_fffaf570 ; jmp 0xfffaf570
+
+loc_fffaf521: ; not directly referenced
+push eax
+mov ecx, esi
+push eax
+mov edi, 1
+lea eax, [ebp - 0x58]
+push eax
+mov eax, ebx
+push 0
+lea edx, [ebp - 0x44]
+call fcn_fffaa9ed ; call 0xfffaa9ed
+mov ecx, esi
+xor edx, edx
+shl edi, cl
+mov eax, ebx
+mov ecx, edi
+call fcn_fffaac43 ; call 0xfffaac43
+mov ecx, edi
+mov edx, 1
+mov byte [ebp - 0x5c], al
+mov eax, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+or eax, dword [ebp - 0x5c]
+movzx edx, al
+mov eax, ebx
+call fcn_fffae670 ; call 0xfffae670
+add esp, 0x10
+mov edi, eax
+test eax, eax
+je short loc_fffaf515 ; je 0xfffaf515
+
+loc_fffaf570: ; not directly referenced
+cmp byte [ebx + 0x3748], 1
+jne short loc_fffaf5a9 ; jne 0xfffaf5a9
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffaf591 ; jne 0xfffaf591
+mov ecx, dword [ebp - 0x68]
+mov edx, 0x5004
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf591: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffaf5a9 ; jne 0xfffaf5a9
+mov ecx, dword [ebp - 0x6c]
+mov edx, 0x5008
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf5a9: ; not directly referenced
+mov edx, 0x3c
+mov eax, ebx
+call fcn_fffa834b ; call 0xfffa834b
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffaf5cf ; jne 0xfffaf5cf
+mov ecx, 0x3000
+mov edx, 0x48a8
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf5cf: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffaf5e9 ; jne 0xfffaf5e9
+mov ecx, 0x3000
+mov edx, 0x48b0
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf5e9: ; not directly referenced
+test edi, edi
+je short loc_fffaf5f7 ; je 0xfffaf5f7
+
+loc_fffaf5ed: ; not directly referenced
+mov dword [ebx + 0x374a], 1
+
+loc_fffaf5f7: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffaf601: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov edi, dword [ebp + 8]
+mov eax, dword [edi + 0x2443]
+cmp byte [edi + 0x190d], 0
+mov edx, dword [edi + 0x18a7]
+mov esi, dword [edi + 0x2480]
+mov dword [ebp - 0x30], eax
+je loc_fffafafc ; je 0xfffafafc
+cmp esi, 3
+sete al
+mov byte [ebp - 0x2c], al
+movzx eax, al
+mov dword [ebp - 0x38], eax
+mov eax, dword [edi + 0x36cb]
+test eax, eax
+je loc_fffaf79d ; je 0xfffaf79d
+dec eax
+jne loc_fffafafc ; jne 0xfffafafc
+movzx ebx, byte [edi + 0x247f]
+test ebx, ebx
+sete al
+or al, byte [ebp - 0x2c]
+je short loc_fffaf6d5 ; je 0xfffaf6d5
+mov ecx, dword [ebp - 0x30]
+xor eax, eax
+cmp dword [edi + 0x188b], 1
+mov edx, dword [ecx + 0x80]
+sete al
+mov esi, eax
+lea esi, [esi + esi + 0x18]
+lea eax, [eax + eax + 0x17]
+test edx, edx
+je short loc_fffaf6d5 ; je 0xfffaf6d5
+lea ecx, [ebp - 0x20]
+push ecx
+lea ecx, [ebp - 0x1c]
+push ecx
+push eax
+push 1
+call edx
+mov al, byte [ebp - 0x19]
+add esp, 0x10
+test al, al
+js short loc_fffaf6d5 ; js 0xfffaf6d5
+or eax, 0xffffff80
+mov byte [ebp - 0x19], al
+mov al, byte [ebp - 0x1c]
+or eax, 1
+cmp dword [edi + 0x2480], 3
+mov byte [ebp - 0x1c], al
+jne short loc_fffaf6bf ; jne 0xfffaf6bf
+and eax, 0xfffffff1
+or eax, 8
+mov byte [ebp - 0x1c], al
+
+loc_fffaf6bf: ; not directly referenced
+lea eax, [ebp - 0x20]
+push eax
+mov eax, dword [ebp - 0x30]
+push dword [ebp - 0x1c]
+push esi
+push 1
+call dword [eax + 0x84] ; ucall
+add esp, 0x10
+
+loc_fffaf6d5: ; not directly referenced
+cmp ebx, 1
+mov edx, 0x64
+mov eax, 0x32
+cmove edx, eax
+cmp dword [ebp - 0x38], 1
+jne short loc_fffaf70c ; jne 0xfffaf70c
+mov edx, 0x5880
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5880
+and al, 0x7f
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x61
+
+loc_fffaf70c: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+dec ebx
+sete al
+or cl, al
+je loc_fffafafc ; je 0xfffafafc
+movzx eax, dx
+xor esi, esi
+lea ebx, [edi + 0x4a07]
+mov dword [ebp - 0x2c], eax
+
+loc_fffaf729: ; not directly referenced
+cmp dword [ebx - 0x12b1], 2
+jne short loc_fffaf782 ; jne 0xfffaf782
+movzx eax, word [ebx - 0x129b]
+mov ecx, 0x64
+imul eax, dword [ebp - 0x2c]
+cdq
+idiv ecx
+cmp dword [ebx - 0x13e], 2
+mov word [ebx - 0x129b], ax
+jne short loc_fffaf76a ; jne 0xfffaf76a
+movzx eax, word [ebx - 0x128]
+imul eax, dword [ebp - 0x2c]
+cdq
+idiv ecx
+mov word [ebx - 0x128], ax
+
+loc_fffaf76a: ; not directly referenced
+cmp dword [ebx - 0x16], 2
+jne short loc_fffaf782 ; jne 0xfffaf782
+movzx eax, word [ebx]
+mov ecx, 0x64
+imul eax, dword [ebp - 0x2c]
+cdq
+idiv ecx
+mov word [ebx], ax
+
+loc_fffaf782: ; not directly referenced
+mov edx, esi
+mov eax, edi
+inc esi
+add ebx, 0x13c3
+call fcn_fffae6fa ; call 0xfffae6fa
+cmp esi, 2
+je loc_fffafafc ; je 0xfffafafc
+jmp short loc_fffaf729 ; jmp 0xfffaf729
+
+loc_fffaf79d: ; not directly referenced
+cmp dword [edi + 0x36e8], 0
+je short loc_fffaf7b3 ; je 0xfffaf7b3
+cmp byte [edi + 0x1916], 0
+jne loc_fffafafc ; jne 0xfffafafc
+
+loc_fffaf7b3: ; not directly referenced
+test byte [edi + 0x36ca], 0xf7
+je loc_fffafafc ; je 0xfffafafc
+cmp dword [edi + 0x3756], 2
+mov dword [ebp - 0x40], 0
+mov dword [ebp - 0x44], 0
+mov dword [ebp - 0x34], 0
+je short loc_fffaf7f2 ; je 0xfffaf7f2
+cmp dword [edi + 0x4b19], 2
+mov eax, 1
+jne loc_fffaf892 ; jne 0xfffaf892
+jmp short loc_fffaf7f4 ; jmp 0xfffaf7f4
+
+loc_fffaf7f2: ; not directly referenced
+xor eax, eax
+
+loc_fffaf7f4: ; not directly referenced
+imul eax, eax, 0x13c3
+lea ecx, [edi + eax + 0x3756]
+imul eax, edx, 0x2e
+lea eax, [ecx + eax + 4]
+movzx ecx, word [eax + 0x1a]
+movzx edx, word [eax + 0x10]
+movzx eax, word [eax + 0xc]
+lea edx, [ecx + edx + 1]
+mov cl, 0x7f
+mov bl, dl
+and ebx, 0x7f
+cmp edx, 0x7f
+cmovbe ecx, ebx
+mov ebx, 0xa
+imul eax, eax, 0xf
+xor edx, edx
+and ecx, 0x7f
+div ebx
+mov bl, 0x7f
+cmp dl, 1
+mov edx, 0x4e44
+sbb eax, 0xffffffff
+cmp eax, 0x7f
+cmovbe ebx, eax
+mov eax, edi
+and ebx, 0x7f
+shl ecx, 8
+or ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf856: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+call dword [eax + 0x7c] ; ucall
+mov ebx, eax
+xor ax, ax
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov dl, al
+movzx eax, bx
+mov dword [ebp - 0x2c], edx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov edx, dword [ebp - 0x2c]
+test al, al
+sete al
+test dl, dl
+sete dl
+or al, dl
+jne short loc_fffaf856 ; jne 0xfffaf856
+mov ecx, ebx
+mov edx, 0x2bb8
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffaf892: ; not directly referenced
+cmp esi, 2
+je loc_fffafafc ; je 0xfffafafc
+mov ecx, dword [edi + 0x1912]
+mov eax, 0x800
+mov dl, 0xb
+
+loc_fffaf8a8: ; not directly referenced
+movzx ebx, dl
+cmp ebx, ecx
+lea eax, [eax + eax]
+jae short loc_fffaf8b5 ; jae 0xfffaf8b5
+inc edx
+jmp short loc_fffaf8a8 ; jmp 0xfffaf8a8
+
+loc_fffaf8b5: ; not directly referenced
+call fcn_fffaec34 ; call 0xfffaec34
+mov byte [ebp - 0x2c], 0x11
+sub byte [ebp - 0x2c], al
+movzx eax, byte [ebp - 0x2c]
+mov word [ebp - 0x48], ax
+
+loc_fffaf8c9: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+xor ebx, ebx
+mov esi, 1
+call dword [eax + 0x7c] ; ucall
+xor edx, edx
+mov dword [ebp - 0x3c], eax
+
+loc_fffaf8db: ; not directly referenced
+mov cl, dl
+cmp bx, word [ebp - 0x48]
+je short loc_fffaf8fb ; je 0xfffaf8fb
+mov eax, esi
+shl eax, cl
+mov ecx, dword [ebp - 0x3c]
+and ecx, eax
+cmp ecx, 1
+sbb bx, 0xffff
+inc edx
+cmp edx, 0x10
+jne short loc_fffaf8db ; jne 0xfffaf8db
+mov cl, 0x10
+
+loc_fffaf8fb: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+dec ebx
+and ebx, dword [ebp - 0x3c]
+movzx eax, bx
+call fcn_fffaeba2 ; call 0xfffaeba2
+cmp al, byte [ebp - 0x2c]
+jne short loc_fffaf8c9 ; jne 0xfffaf8c9
+mov edx, ebx
+xor esi, esi
+mov word [ebp - 0x40], bx
+not edx
+
+loc_fffaf91d: ; not directly referenced
+mov ecx, esi
+mov eax, 0xfffffffe
+rol eax, cl
+and eax, edx
+movzx ecx, ax
+mov edx, eax
+mov word [ebp - 0x30], ax
+mov eax, ecx
+mov dword [ebp - 0x48], edx
+mov dword [ebp - 0x3c], ecx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov ecx, dword [ebp - 0x3c]
+mov edx, dword [ebp - 0x48]
+cmp al, byte [ebp - 0x2c]
+jne short loc_fffaf971 ; jne 0xfffaf971
+
+loc_fffaf949: ; not directly referenced
+shl ecx, 0x10
+mov eax, edi
+mov edx, ecx
+movzx ecx, word [ebp - 0x40]
+xor esi, esi
+or ebx, dword [ebp - 0x30]
+or ecx, edx
+mov edx, 0x4e38
+mov word [ebp - 0x3c], bx
+not ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov word [ebp - 0x30], bx
+jmp short loc_fffaf97f ; jmp 0xfffaf97f
+
+loc_fffaf971: ; not directly referenced
+inc esi
+cmp esi, 0x10
+jne short loc_fffaf91d ; jne 0xfffaf91d
+jmp short loc_fffaf949 ; jmp 0xfffaf949
+
+loc_fffaf979: ; not directly referenced
+inc esi
+cmp esi, 0x10
+je short loc_fffaf99e ; je 0xfffaf99e
+
+loc_fffaf97f: ; not directly referenced
+mov ebx, dword [ebp - 0x30]
+mov edx, 0xfffffffe
+mov ecx, esi
+rol edx, cl
+and ebx, edx
+movzx eax, bx
+mov word [ebp - 0x30], ax
+call fcn_fffaeba2 ; call 0xfffaeba2
+cmp al, byte [ebp - 0x2c]
+jne short loc_fffaf979 ; jne 0xfffaf979
+
+loc_fffaf99e: ; not directly referenced
+mov word [ebp - 0x44], bx
+xor esi, esi
+or ebx, dword [ebp - 0x3c]
+not ebx
+jmp short loc_fffaf9bc ; jmp 0xfffaf9bc
+
+loc_fffaf9ab: ; not directly referenced
+mov ecx, esi
+mov eax, 0xfffffffe
+rol eax, cl
+inc esi
+and ebx, eax
+cmp esi, 0x10
+je short loc_fffaf9c9 ; je 0xfffaf9c9
+
+loc_fffaf9bc: ; not directly referenced
+movzx eax, bx
+call fcn_fffaeba2 ; call 0xfffaeba2
+cmp al, byte [ebp - 0x2c]
+jne short loc_fffaf9ab ; jne 0xfffaf9ab
+
+loc_fffaf9c9: ; not directly referenced
+movzx ecx, word [ebp - 0x44]
+shl ebx, 0x10
+mov edx, 0x4e3c
+mov eax, edi
+or ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov dword [ebp - 0x2c], 0
+
+loc_fffaf9e5: ; not directly referenced
+imul esi, dword [ebp - 0x2c], 0x13c3
+cmp dword [edi + esi + 0x3756], 2
+jne loc_fffafaef ; jne 0xfffafaef
+xor ebx, ebx
+test byte [edi + esi + 0x381a], 1
+je short loc_fffafa5b ; je 0xfffafa5b
+cmp dword [ebp - 0x38], 0
+jne short loc_fffafa2d ; jne 0xfffafa2d
+imul eax, dword [ebp - 0x2c], 0x54a
+mov ax, word [edi + eax + 0x1a4f]
+cmp ax, 0xce00
+sete bl
+cmp ax, 0xfe02
+sete al
+or ebx, eax
+jmp short loc_fffafa5b ; jmp 0xfffafa5b
+
+loc_fffafa2d: ; not directly referenced
+push edx
+xor ecx, ecx
+push edx
+mov edx, dword [ebp - 0x2c]
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, edi
+push 5
+call fcn_fffa686d ; call 0xfffa686d
+lea eax, [ebp - 0x1c]
+add esp, 0x10
+mov cl, 1
+
+loc_fffafa49: ; not directly referenced
+mov dl, byte [eax]
+and edx, 0xfffffffd
+dec dl
+cmove ebx, ecx
+inc eax
+lea edx, [ebp - 0x18]
+cmp eax, edx
+jne short loc_fffafa49 ; jne 0xfffafa49
+
+loc_fffafa5b: ; not directly referenced
+test byte [edi + esi + 0x381a], 4
+je short loc_fffafac5 ; je 0xfffafac5
+cmp dword [ebp - 0x38], 0
+je short loc_fffafaa1 ; je 0xfffafaa1
+mov edx, dword [ebp - 0x2c]
+mov ecx, 2
+push eax
+push eax
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, edi
+push 5
+call fcn_fffa686d ; call 0xfffa686d
+lea eax, [ebp - 0x1c]
+add esp, 0x10
+lea ecx, [ebp - 0x18]
+
+loc_fffafa8b: ; not directly referenced
+mov dl, byte [eax]
+mov esi, ebx
+or esi, 2
+and edx, 0xfffffffd
+dec dl
+cmove ebx, esi
+inc eax
+cmp eax, ecx
+jne short loc_fffafa8b ; jne 0xfffafa8b
+jmp short loc_fffafac5 ; jmp 0xfffafac5
+
+loc_fffafaa1: ; not directly referenced
+imul eax, dword [ebp - 0x2c], 0x54a
+mov ax, word [edi + eax + 0x1cc6]
+cmp ax, 0xfe02
+sete dl
+cmp ax, 0xce00
+sete al
+or dl, al
+je short loc_fffafac5 ; je 0xfffafac5
+or ebx, 2
+
+loc_fffafac5: ; not directly referenced
+and dword [ebp - 0x34], 0xffffff9f
+and ebx, 3
+shl ebx, 5
+mov edx, dword [ebp - 0x2c]
+mov eax, edi
+or dword [ebp - 0x34], ebx
+or dword [ebp - 0x34], 0x80000000
+mov ecx, dword [ebp - 0x34]
+shl edx, 0xa
+add edx, 0x4240
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffafaef: ; not directly referenced
+inc dword [ebp - 0x2c]
+cmp dword [ebp - 0x2c], 2
+jne loc_fffaf9e5 ; jne 0xfffaf9e5
+
+loc_fffafafc: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffafb06: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+movzx edi, dl
+push esi
+push ebx
+sub esp, 0x4c
+mov esi, dword [ebp + 0x14]
+mov byte [ebp - 0x27], cl
+mov cl, byte [ebp + 8]
+mov ebx, dword [ebp + 0xc]
+mov byte [ebp - 0x26], dl
+mov edx, 0x4c31
+mov dword [ebp - 0x38], esi
+imul esi, edi, 0x13c3
+mov byte [ebp - 0x48], cl
+xor ecx, ecx
+mov dword [ebp - 0x20], edi
+mov byte [ebp - 0x34], bl
+lea edi, [eax + esi + 0x3756]
+mov dword [ebp - 0x1c], eax
+call fcn_fffae566 ; call 0xfffae566
+cmp byte [edi + 0x1241], 1
+sete al
+mov dl, al
+mov cl, al
+mov eax, dword [ebp - 0x20]
+or edx, 2
+cmp byte [edi + 0x1369], 1
+cmove ecx, edx
+shl eax, 0xa
+mov edi, ecx
+lea edx, [eax + 0x41bc]
+xor ecx, ecx
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae566 ; call 0xfffae566
+mov eax, ebx
+and eax, 1
+lea edx, [eax + eax]
+mov al, bl
+and eax, 2
+and ebx, 4
+shr al, 1
+or eax, ebx
+or eax, edx
+mov ebx, eax
+movzx eax, byte [ebp - 0x34]
+add esi, dword [ebp - 0x1c]
+shl ebx, 0x18
+mov dword [ebp - 0x30], ebx
+mov dword [ebp - 0x24], 0
+mov byte [ebp - 0x25], 0
+mov dword [ebp - 0x4c], esi
+mov dword [ebp - 0x34], eax
+
+loc_fffafbb5: ; not directly referenced
+mov cl, byte [ebp - 0x24]
+mov ebx, 1
+mov esi, dword [ebp - 0x4c]
+shl ebx, cl
+mov al, bl
+and al, byte [esi + 0x381a]
+test byte [ebp - 0x27], al
+je loc_fffafc5d ; je 0xfffafc5d
+mov ecx, dword [ebp - 0x34]
+xor edx, edx
+mov esi, dword [ebp + 0x10]
+and ecx, 0xf
+shl ecx, 0x18
+mov eax, ecx
+mov cl, byte [ebp - 0x24]
+shr cl, 1
+movzx ecx, cl
+mov si, word [esi + ecx*2]
+mov ax, si
+test byte [ebp - 0x24], 1
+je short loc_fffafc1e ; je 0xfffafc1e
+inc ecx
+test ecx, edi
+je short loc_fffafc1e ; je 0xfffafc1e
+mov edx, esi
+and ax, 0x150
+and dx, 0xfe07
+and esi, 0xa8
+shr ax, 1
+add esi, esi
+or eax, edx
+or eax, esi
+movzx eax, ax
+add eax, dword [ebp - 0x30]
+cdq
+
+loc_fffafc1e: ; not directly referenced
+mov esi, dword [ebp - 0x48]
+mov ecx, edx
+not ebx
+or ecx, 0xf000000
+and ebx, 0xf
+and ch, 0xf0
+and esi, 0xf
+shl esi, 8
+or ecx, esi
+and ecx, 0xfffffff0
+or ecx, ebx
+mov ebx, dword [ebp - 0x2c]
+mov edx, ecx
+push ecx
+push ecx
+push edx
+push eax
+mov eax, dword [ebp - 0x1c]
+lea ecx, [ebx + 0x41c0]
+mov edx, ecx
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+inc byte [ebp - 0x25]
+
+loc_fffafc5d: ; not directly referenced
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 4
+jne loc_fffafbb5 ; jne 0xfffafbb5
+cmp byte [ebp - 0x25], 0
+jne short loc_fffafc7a ; jne 0xfffafc7a
+
+loc_fffafc70: ; not directly referenced
+mov eax, 1
+jmp near loc_fffafd4a ; jmp 0xfffafd4a
+
+loc_fffafc7a: ; not directly referenced
+mov edi, dword [ebp - 0x38]
+mov cl, 3
+mov edx, dword [ebp - 0x2c]
+mov ebx, edi
+mov eax, edi
+mov edi, dword [ebp - 0x1c]
+add edx, 0x419c
+and eax, 7
+test bl, bl
+cmovne ecx, eax
+mov al, byte [ebp - 0x25]
+and ecx, 7
+dec eax
+and eax, 7
+shl eax, 0x10
+or ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x20]
+lea ebx, [eax*8 + 0x48a8]
+mov eax, edi
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, ebx
+mov dword [ebp - 0x1c], edi
+mov ecx, eax
+mov esi, eax
+and ch, 0xc7
+mov eax, edi
+or ch, 0x20
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, dword [ebp - 0x20]
+mov ecx, 5
+mov eax, dword [ebp - 0x1c]
+lea edi, [edx*4 + 0x48b8]
+mov edx, edi
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffafcef: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+mov edx, 0x4804
+call fcn_fffae52a ; call 0xfffae52a
+cmp byte [ebp - 0x26], 0
+jne short loc_fffafd15 ; jne 0xfffafd15
+test al, 1
+jne loc_fffafc70 ; jne 0xfffafc70
+shr eax, 0x10
+and eax, 1
+xor eax, 1
+jmp short loc_fffafd28 ; jmp 0xfffafd28
+
+loc_fffafd15: ; not directly referenced
+test al, 2
+jne loc_fffafc70 ; jne 0xfffafc70
+shr eax, 0x10
+shr al, 1
+xor eax, 1
+and eax, 1
+
+loc_fffafd28: ; not directly referenced
+test al, al
+jne short loc_fffafcef ; jne 0xfffafcef
+mov edx, edi
+mov edi, dword [ebp - 0x1c]
+mov ecx, 4
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+mov eax, edi
+mov ecx, esi
+mov edx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+xor eax, eax
+
+loc_fffafd4a: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffafd52: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov esi, dword [ebp + 8]
+mov ebx, dword [ebp + 0xc]
+cmp cl, 3
+ja short loc_fffafd72 ; ja 0xfffafd72
+mov word [ebp - 0x1c], bx
+mov word [ebp - 0x1a], 0
+jmp short loc_fffafd7c ; jmp 0xfffafd7c
+
+loc_fffafd72: ; not directly referenced
+mov word [ebp - 0x1c], 0
+mov word [ebp - 0x1a], bx
+
+loc_fffafd7c: ; not directly referenced
+cmp dword [eax + 0x2480], 2
+movzx edi, dl
+mov edx, esi
+movzx ecx, cl
+push 0
+movzx esi, dl
+sete bl
+mov dword [ebp - 0x2c], edi
+lea edi, [ebp - 0x1c]
+mov edx, dword [ebp - 0x2c]
+push edi
+shl ebx, 3
+push esi
+movzx ebx, bl
+push ebx
+call fcn_fffafb06 ; call 0xfffafb06
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffafdb2: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0xe0
+mov esi, dword [ebp + 8]
+mov edi, dword [ebp + 0x14]
+mov byte [ebp - 0x9f], cl
+mov ebx, dword [ebp + 0x10]
+mov dword [ebp - 0x80], eax
+mov eax, dword [ebp + 0xc]
+mov ecx, esi
+mov dword [ebp - 0xd8], esi
+mov esi, ref_fffd3e80 ; mov esi, 0xfffd3e80
+mov dword [ebp - 0xac], edi
+mov dword [ebp - 0xb8], edx
+mov byte [ebp - 0xdc], dl
+mov edx, edi
+mov byte [ebp - 0xc8], cl
+lea edi, [ebp - 0x50]
+mov ecx, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x38]
+mov esi, ref_fffd3e8c ; mov esi, 0xfffd3e8c
+mov dword [ebp - 0x88], eax
+mov byte [ebp - 0xa0], al
+mov byte [ebp - 0x9d], dl
+mov word [ebp - 0x7c], bx
+mov word [ebp - 0x60], 0
+mov word [ebp - 0x5e], 2
+mov cl, 4
+mov word [ebp - 0x5c], 1
+mov word [ebp - 0x5a], 3
+mov word [ebp - 0x64], 0
+mov word [ebp - 0x62], 2
+mov byte [ebp - 0x6a], 1
+mov byte [ebp - 0x69], 2
+mov byte [ebp - 0x68], 3
+mov byte [ebp - 0x67], 0
+mov byte [ebp - 0x66], 2
+mov byte [ebp - 0x65], 3
+movzx edx, byte [ebp - 0xb8]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov edi, dword [ebp - 0x80]
+imul eax, edx, 0x13c3
+mov dword [ebp - 0x84], edx
+mov esi, dword [edi + 0x5edc]
+lea eax, [edi + eax + 0x3756]
+mov dword [ebp - 0xa8], eax
+imul eax, edx, 0xcc
+mov ecx, esi
+mov dword [ebp - 0xa4], esi
+mov esi, dword [edi + 0x2443]
+lea edx, [ecx + eax + 0x1c]
+mov dword [ebp - 0x9c], edx
+mov edx, dword [edi + 0x188b]
+lea eax, [ebp - 0x50]
+push 0xc
+push eax
+lea eax, [ebp - 0x44]
+push eax
+mov dword [ebp - 0x98], edx
+call dword [esi + 0x58] ; ucall
+add esp, 0xc
+push 8
+lea eax, [ebp - 0x60]
+push eax
+lea eax, [ebp - 0x58]
+push eax
+call dword [esi + 0x58] ; ucall
+mov eax, dword [edi + 0x2480]
+add esp, 0xc
+xor edx, edx
+push 0x10
+cmp eax, 3
+sete dl
+mov dword [ebp - 0xb4], edx
+xor edx, edx
+cmp eax, 2
+lea eax, [ebp - 0x38]
+sete dl
+push eax
+lea eax, [ebp - 0x28]
+mov dword [ebp - 0xb0], edx
+push eax
+call dword [esi + 0x58] ; ucall
+mov ecx, dword [ebp - 0x88]
+add esp, 0x10
+cmp cl, 3
+sete al
+cmp cl, 1
+setbe dl
+or dl, al
+jne short loc_fffaff33 ; jne 0xfffaff33
+mov edx, ecx
+cmp cl, 0x11
+sete cl
+cmp dl, 2
+sete dl
+or cl, dl
+je loc_fffaffe5 ; je 0xfffaffe5
+
+loc_fffaff33: ; not directly referenced
+mov ecx, dword [ebp - 0x88]
+cmp cl, 1
+sbb esi, esi
+and esi, 0x10
+add esi, 0xf
+cmp cl, 1
+sbb edx, edx
+and edx, 0xfffffff0
+sub edx, 0x10
+cmp bx, si
+jg short loc_fffaff5c ; jg 0xfffaff5c
+cmp dx, bx
+mov esi, ebx
+cmovge esi, edx
+
+loc_fffaff5c: ; not directly referenced
+mov ebx, dword [ebp - 0x9c]
+movzx ecx, byte [ebp - 0xd8]
+cmp byte [ebp - 0x88], 0
+lea edi, [ebx + ecx*4]
+mov ebx, dword [edi + 0x78]
+jne loc_fffb0a8d ; jne 0xfffb0a8d
+mov eax, esi
+and ebx, 0xfffff000
+and eax, 0x3f
+mov edx, eax
+or ebx, eax
+shl edx, 6
+or ebx, edx
+
+loc_fffaff90: ; not directly referenced
+cmp byte [ebp - 0xb8], 1
+mov edx, 0x365c
+jbe loc_fffb0ae0 ; jbe 0xfffb0ae0
+
+loc_fffaffa2: ; not directly referenced
+mov ecx, dword [ebp - 0x80]
+lea eax, [edx + 0xc]
+cmp dword [ecx + 0x188b], 1
+mov ecx, ebx
+cmove edx, eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0xac], 0
+je short loc_fffaffc8 ; je 0xfffaffc8
+mov dword [edi + 0x78], ebx
+
+loc_fffaffc8: ; not directly referenced
+mov eax, dword [ebp - 0xa4]
+mov edx, 0x2008
+mov ecx, dword [eax + 0x18]
+mov eax, dword [ebp - 0x80]
+or ecx, 0x20
+call fcn_fffae58c ; call 0xfffae58c
+mov word [ebp - 0x7c], si
+
+loc_fffaffe5: ; not directly referenced
+mov eax, dword [ebp - 0x88]
+cmp al, 0x11
+sete cl
+sub eax, 4
+cmp al, 1
+setbe al
+or al, cl
+mov byte [ebp - 0x9e], cl
+je loc_fffb0219 ; je 0xfffb0219
+mov eax, dword [ebp - 0xa8]
+xor edi, edi
+lea esi, [eax + 0x24d]
+imul eax, dword [ebp - 0x84], 0x13c3
+add eax, dword [ebp - 0x80]
+mov dword [ebp - 0xe4], eax
+movzx eax, byte [ebp - 0x9f]
+mov dword [ebp - 0xe8], eax
+
+loc_fffb0034: ; not directly referenced
+mov ebx, dword [ebp - 0xe4]
+mov eax, 1
+mov ecx, edi
+shl eax, cl
+test byte [ebx + 0x381a], al
+je loc_fffb020c ; je 0xfffb020c
+mov eax, dword [ebp - 0xe8]
+bt eax, edi
+jae loc_fffb020c ; jae 0xfffb020c
+cmp byte [ebp - 0xa0], 4
+jne loc_fffb0103 ; jne 0xfffb0103
+cmp dword [ebp - 0x98], 0
+jne short loc_fffb0085 ; jne 0xfffb0085
+mov ebx, dword [ebp - 0x7c]
+mov eax, 0xb
+cmp bx, 0xb
+cmovle eax, ebx
+jmp short loc_fffb00a8 ; jmp 0xfffb00a8
+
+loc_fffb0085: ; not directly referenced
+cmp dword [ebp - 0x98], 1
+jne short loc_fffb00ac ; jne 0xfffb00ac
+mov ecx, dword [ebp - 0x7c]
+mov eax, 0xf
+cmp cx, 0xf
+cmovle eax, ecx
+mov ecx, eax
+or eax, 0x10
+test byte [esi], 0x10
+cmove eax, ecx
+
+loc_fffb00a8: ; not directly referenced
+mov word [ebp - 0x7c], ax
+
+loc_fffb00ac: ; not directly referenced
+mov ebx, dword [ebp - 0x7c]
+mov eax, 0
+mov ecx, edi
+push edx
+mov edx, dword [ebp - 0x84]
+test bx, bx
+cmovns eax, ebx
+movzx ebx, byte [ebp - 0xc8]
+mov word [ebp - 0x7c], ax
+or eax, 0x30
+mov word [ebp - 0xe0], ax
+cwde
+push eax
+mov eax, dword [ebp - 0x80]
+push 2
+push ebx
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je loc_fffb020c ; je 0xfffb020c
+mov al, byte [ebp - 0xe0]
+mov byte [esi + ebx], al
+jmp near loc_fffb020c ; jmp 0xfffb020c
+
+loc_fffb0103: ; not directly referenced
+cmp byte [ebp - 0xa0], 5
+jne loc_fffb01c5 ; jne 0xfffb01c5
+cmp dword [ebp - 0x98], 0
+jne short loc_fffb0150 ; jne 0xfffb0150
+cmp word [ebp - 0x7c], 0x13
+jg short loc_fffb0134 ; jg 0xfffb0134
+mov ecx, dword [ebp - 0x7c]
+mov eax, 0
+test cx, cx
+cmovns eax, ecx
+mov word [ebp - 0x7c], ax
+jmp short loc_fffb013a ; jmp 0xfffb013a
+
+loc_fffb0134: ; not directly referenced
+mov word [ebp - 0x7c], 0x13
+
+loc_fffb013a: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+mov ecx, 5
+mov edx, eax
+sar dx, 0xf
+idiv cx
+lea ebx, [edx + eax*8]
+jmp short loc_fffb0185 ; jmp 0xfffb0185
+
+loc_fffb0150: ; not directly referenced
+xor ebx, ebx
+cmp dword [ebp - 0x98], 1
+jne short loc_fffb0185 ; jne 0xfffb0185
+mov eax, dword [ebp - 0x7c]
+test ax, ax
+jle short loc_fffb0185 ; jle 0xfffb0185
+movsx ebx, ax
+mov eax, 0x10
+cmp bx, 0x10
+cmovle eax, ebx
+mov word [ebp - 0x7c], ax
+dec eax
+mov ebx, eax
+and eax, 3
+sar ebx, 2
+add eax, eax
+lea ebx, [eax + ebx*8 + 1]
+
+loc_fffb0185: ; not directly referenced
+push eax
+movzx eax, bl
+mov edx, dword [ebp - 0x84]
+push eax
+movzx eax, byte [ebp - 0xc8]
+mov ecx, edi
+push 2
+push eax
+mov dword [ebp - 0xe0], eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je short loc_fffb020c ; je 0xfffb020c
+mov eax, dword [ebp - 0xe0]
+mov byte [esi + eax + 0xdd9], bl
+jmp short loc_fffb020c ; jmp 0xfffb020c
+
+loc_fffb01c5: ; not directly referenced
+cmp byte [ebp - 0x9e], 0
+je short loc_fffb020c ; je 0xfffb020c
+movzx ebx, byte [ebp - 0xc8]
+mov ecx, edi
+push eax
+mov edx, dword [ebp - 0x84]
+mov eax, dword [ebp - 0x80]
+push 0
+push 0xff
+push ebx
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0xc
+mov edx, dword [ebp - 0x84]
+mov eax, dword [ebp - 0x80]
+mov ecx, edi
+push 0
+push 0xff
+push ebx
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffb020c: ; not directly referenced
+inc edi
+add esi, 9
+cmp edi, 4
+jne loc_fffb0034 ; jne 0xfffb0034
+
+loc_fffb0219: ; not directly referenced
+cmp byte [ebp - 0x88], 6
+mov cl, byte [ebp - 0x9e]
+sete al
+or cl, al
+je loc_fffb0378 ; je 0xfffb0378
+cmp dword [ebp - 0x98], 1
+jne short loc_fffb0247 ; jne 0xfffb0247
+cmp word [ebp - 0x7c], 0x3f
+jg loc_fffb0b12 ; jg 0xfffb0b12
+jmp short loc_fffb0252 ; jmp 0xfffb0252
+
+loc_fffb0247: ; not directly referenced
+cmp word [ebp - 0x7c], 7
+jg loc_fffb0b1d ; jg 0xfffb0b1d
+
+loc_fffb0252: ; not directly referenced
+mov edi, dword [ebp - 0x7c]
+mov edx, 0
+test di, di
+cmovns edx, edi
+mov word [ebp - 0x7c], dx
+
+loc_fffb0264: ; not directly referenced
+movzx edi, byte [ebp - 0xd8]
+mov ecx, dword [ebp - 0x9c]
+mov dword [ebp - 0xc8], edi
+lea edi, [ecx + edi*4]
+mov ebx, dword [edi + 4]
+mov esi, dword [edi + 0x28]
+test al, al
+je short loc_fffb02c1 ; je 0xfffb02c1
+cmp dword [ebp - 0x98], 1
+jne short loc_fffb02b3 ; jne 0xfffb02b3
+mov ecx, dword [ebp - 0x7c]
+and bh, 0xe3
+and esi, 0xe3ffffff
+mov eax, ecx
+sar ax, 3
+and eax, 7
+shl eax, 0xa
+or ebx, eax
+mov eax, ecx
+and eax, 7
+shl eax, 0x1a
+or esi, eax
+jmp short loc_fffb02c1 ; jmp 0xfffb02c1
+
+loc_fffb02b3: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+and bh, 0xe3
+and eax, 7
+shl eax, 0xa
+or ebx, eax
+
+loc_fffb02c1: ; not directly referenced
+mov ecx, dword [ebp - 0xc8]
+mov edx, dword [ebp - 0x84]
+mov eax, dword [ebp - 0x80]
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, ebx
+mov edx, eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x98], 1
+jne short loc_fffb030a ; jne 0xfffb030a
+mov ecx, dword [ebp - 0xc8]
+mov edx, dword [ebp - 0x84]
+mov eax, dword [ebp - 0x80]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, esi
+mov edx, eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb030a: ; not directly referenced
+cmp byte [ebp - 0xac], 0
+je short loc_fffb0378 ; je 0xfffb0378
+cmp dword [ebp - 0x98], 1
+mov dword [edi + 4], ebx
+jne short loc_fffb0378 ; jne 0xfffb0378
+mov ebx, dword [ebp - 0x80]
+mov edx, 0x3a28
+mov dword [edi + 0x28], esi
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+movzx ecx, byte [ebx + 0x2488]
+xor edx, edx
+mov esi, eax
+xor eax, eax
+
+loc_fffb033e: ; not directly referenced
+cmp cl, dl
+jbe short loc_fffb0357 ; jbe 0xfffb0357
+mov edi, dword [ebp - 0x9c]
+mov bl, byte [edi + edx*4 + 0x2b]
+inc edx
+shr bl, 2
+and ebx, 7
+add eax, ebx
+jmp short loc_fffb033e ; jmp 0xfffb033e
+
+loc_fffb0357: ; not directly referenced
+xor edx, edx
+and esi, 0xfff1ffff
+div ecx
+mov ecx, esi
+mov edx, 0x3a28
+and eax, 7
+shl eax, 0x11
+or ecx, eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb0378: ; not directly referenced
+cmp byte [ebp - 0x88], 9
+je short loc_fffb0397 ; je 0xfffb0397
+
+loc_fffb0381: ; not directly referenced
+mov al, byte [ebp - 0x88]
+sub eax, 7
+cmp al, 1
+ja loc_fffb060b ; ja 0xfffb060b
+jmp near loc_fffb062a ; jmp 0xfffb062a
+
+loc_fffb0397: ; not directly referenced
+cmp dword [ebp - 0xb4], 0
+je loc_fffb0463 ; je 0xfffb0463
+mov edi, dword [ebp - 0x7c]
+mov al, 2
+mov ecx, edi
+mov ebx, edi
+cmp cl, 2
+cmovbe eax, ebx
+xor ebx, ebx
+imul edx, dword [ebp - 0x84], 0x13c3
+movzx eax, al
+add edx, dword [ebp - 0x80]
+mov dword [ebp - 0xc8], eax
+mov dword [ebp - 0x98], edx
+
+loc_fffb03d1: ; not directly referenced
+mov esi, dword [ebp - 0x98]
+mov eax, 1
+mov cl, bl
+mov dl, bl
+shl eax, cl
+test byte [esi + 0x381a], al
+je short loc_fffb0454 ; je 0xfffb0454
+test byte [ebp - 0x9f], al
+je short loc_fffb0454 ; je 0xfffb0454
+mov eax, edx
+mov edi, dword [ebp - 0xa8]
+shr dl, 1
+and eax, 1
+movzx edx, dl
+imul edx, edx, 0x128
+imul eax, eax, 0x18
+lea eax, [eax + edx + 0x1260]
+movzx edx, byte [ebp - 0xdc]
+lea edi, [edi + eax + 0xb]
+mov eax, dword [ebp - 0xc8]
+movzx esi, byte [ebp + eax - 0x6a]
+mov ax, word [edi + 6]
+push ecx
+mov ecx, ebx
+push 0
+and eax, 0xfffffff0
+or esi, eax
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x80]
+push 3
+call fcn_fffaa505 ; call 0xfffaa505
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je short loc_fffb0454 ; je 0xfffb0454
+mov word [edi + 6], si
+
+loc_fffb0454: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffb03d1 ; jne 0xfffb03d1
+jmp near loc_fffb0381 ; jmp 0xfffb0381
+
+loc_fffb0463: ; not directly referenced
+cmp dword [ebp - 0xb0], 1
+mov dword [ebp - 0x98], 0
+sbb ebx, ebx
+xor eax, eax
+and ebx, 0xffffffe4
+sub ebx, 7
+cmp byte [ebp - 0x7c], 0
+setne al
+mov ax, word [ebp + eax*2 - 0x64]
+mov word [ebp - 0xc8], ax
+imul eax, dword [ebp - 0x84], 0x13c3
+add eax, dword [ebp - 0x80]
+mov dword [ebp - 0xd8], eax
+
+loc_fffb04a4: ; not directly referenced
+mov edi, dword [ebp - 0x98]
+mov eax, 1
+mov ecx, edi
+mov edx, edi
+shl eax, cl
+mov ecx, dword [ebp - 0xd8]
+test byte [ecx + 0x381a], al
+je short loc_fffb0523 ; je 0xfffb0523
+test byte [ebp - 0x9f], al
+je short loc_fffb0523 ; je 0xfffb0523
+mov ecx, edx
+mov esi, dword [ebp - 0xa8]
+shr dl, 1
+and ecx, 1
+movzx edx, dl
+imul ecx, ecx, 0x18
+imul edx, edx, 0x128
+lea edx, [ecx + edx + 0x1260]
+mov ecx, eax
+mov eax, dword [ebp - 0x80]
+lea edi, [esi + edx + 0xb]
+mov esi, ebx
+and si, word [edi + 2]
+or esi, dword [ebp - 0xc8]
+push edx
+push edx
+movzx edx, si
+push edx
+mov edx, dword [ebp - 0x84]
+push 1
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je short loc_fffb0523 ; je 0xfffb0523
+mov word [edi + 2], si
+
+loc_fffb0523: ; not directly referenced
+inc dword [ebp - 0x98]
+cmp dword [ebp - 0x98], 4
+jne loc_fffb04a4 ; jne 0xfffb04a4
+jmp near loc_fffb0381 ; jmp 0xfffb0381
+
+loc_fffb053b: ; not directly referenced
+mov esi, dword [ebp - 0xb0]
+mov dword [ebp - 0xb4], 0
+cmp esi, 1
+sbb eax, eax
+mov dword [ebp - 0xd8], eax
+add eax, 3
+and word [ebp - 0xd8], 0x4bc
+sub word [ebp - 0xd8], 0x701
+cmp esi, 1
+mov esi, dword [ebp - 0x7c]
+sbb ebx, ebx
+mov dword [ebp - 0xc8], ebx
+mov dword [ebp - 0x98], ebx
+and byte [ebp - 0xc8], 0xfe
+and byte [ebp - 0x98], 0xfa
+mov edx, esi
+sar dx, 4
+mov ecx, esi
+add byte [ebp - 0xc8], 7
+add byte [ebp - 0x98], 8
+cmp byte [ebp - 0x88], 7
+cmovne edx, ecx
+cmp al, dl
+cmova eax, edx
+movzx eax, al
+mov dword [ebp - 0xdc], eax
+imul eax, dword [ebp - 0x84], 0x13c3
+add eax, dword [ebp - 0x80]
+mov dword [ebp - 0xe0], eax
+mov eax, esi
+and eax, 0xf
+mov byte [ebp - 0xe4], al
+
+loc_fffb05d9: ; not directly referenced
+mov edi, dword [ebp - 0xb4]
+mov ebx, 1
+mov esi, dword [ebp - 0xe0]
+mov ecx, edi
+mov eax, edi
+shl ebx, cl
+test byte [esi + 0x381a], bl
+jne loc_fffb06ea ; jne 0xfffb06ea
+
+loc_fffb05fc: ; not directly referenced
+inc dword [ebp - 0xb4]
+cmp dword [ebp - 0xb4], 4
+jne short loc_fffb05d9 ; jne 0xfffb05d9
+
+loc_fffb060b: ; not directly referenced
+mov al, byte [ebp - 0x88]
+sub eax, 0xa
+cmp al, 1
+setbe al
+or al, byte [ebp - 0x9e]
+jne loc_fffb07d8 ; jne 0xfffb07d8
+jmp near loc_fffb08df ; jmp 0xfffb08df
+
+loc_fffb062a: ; not directly referenced
+cmp dword [ebp - 0xb4], 0
+je loc_fffb053b ; je 0xfffb053b
+mov ebx, dword [ebp - 0x7c]
+mov al, 2
+cmp bl, 2
+cmovbe eax, ebx
+xor ebx, ebx
+imul esi, dword [ebp - 0x84], 0x13c3
+movzx eax, al
+add esi, dword [ebp - 0x80]
+mov dword [ebp - 0x84], eax
+mov dword [ebp - 0x7c], esi
+
+loc_fffb065d: ; not directly referenced
+mov edi, dword [ebp - 0x7c]
+mov eax, 1
+mov cl, bl
+mov dl, bl
+shl eax, cl
+test byte [edi + 0x381a], al
+je short loc_fffb06db ; je 0xfffb06db
+test byte [ebp - 0x9f], al
+je short loc_fffb06db ; je 0xfffb06db
+mov al, bl
+and edx, 1
+mov ecx, dword [ebp - 0xa8]
+shr al, 1
+mov esi, dword [ebp - 0x84]
+movzx eax, al
+imul edx, edx, 0x18
+imul eax, eax, 0x128
+movzx esi, byte [ebp + esi - 0x67]
+add eax, edx
+movzx edx, byte [ebp - 0xdc]
+lea edi, [ecx + eax + 0x1260]
+mov ax, word [edi + 0x19]
+push ecx
+mov ecx, ebx
+push 0
+and eax, 0xfffffffc
+or esi, eax
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x80]
+push 0xb
+call fcn_fffaa505 ; call 0xfffaa505
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je short loc_fffb06db ; je 0xfffb06db
+mov word [edi + 0x19], si
+
+loc_fffb06db: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffb065d ; jne 0xfffb065d
+jmp near loc_fffb0b28 ; jmp 0xfffb0b28
+
+loc_fffb06ea: ; not directly referenced
+test byte [ebp - 0x9f], bl
+je loc_fffb05fc ; je 0xfffb05fc
+mov edx, eax
+mov edi, dword [ebp - 0xa8]
+mov ecx, ebx
+shr al, 1
+and edx, 1
+movzx eax, al
+imul edx, edx, 0x18
+imul eax, eax, 0x128
+lea eax, [edx + eax + 0x1260]
+lea edi, [edi + eax + 0xb]
+mov eax, dword [ebp - 0xdc]
+mov si, word [ebp + eax*2 - 0x58]
+mov ax, word [edi + 4]
+push edx
+push edx
+mov edx, dword [ebp - 0x84]
+shl esi, 9
+and ah, 0xf9
+or esi, eax
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x80]
+push 2
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je short loc_fffb0759 ; je 0xfffb0759
+mov word [edi + 4], si
+
+loc_fffb0759: ; not directly referenced
+cmp byte [ebp - 0xa0], 8
+je loc_fffb05fc ; je 0xfffb05fc
+mov esi, dword [ebp - 0xc8]
+mov al, byte [ebp - 0xe4]
+mov ecx, esi
+cmp cl, al
+cmova esi, eax
+cmp dword [ebp - 0xb0], 0
+mov eax, esi
+movzx eax, al
+je short loc_fffb078e ; je 0xfffb078e
+movzx eax, word [ebp + eax*2 - 0x28]
+jmp short loc_fffb0793 ; jmp 0xfffb0793
+
+loc_fffb078e: ; not directly referenced
+movzx eax, word [ebp + eax*2 - 0x44]
+
+loc_fffb0793: ; not directly referenced
+mov cl, byte [ebp - 0x98]
+mov esi, dword [ebp - 0xd8]
+and si, word [edi + 2]
+mov edx, dword [ebp - 0x84]
+shl eax, cl
+mov ecx, ebx
+or esi, eax
+push eax
+push eax
+movzx eax, si
+push eax
+mov eax, dword [ebp - 0x80]
+push 1
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+cmp byte [ebp - 0x9d], 0
+je loc_fffb05fc ; je 0xfffb05fc
+mov word [edi + 2], si
+jmp near loc_fffb05fc ; jmp 0xfffb05fc
+
+loc_fffb07d8: ; not directly referenced
+mov ecx, dword [ebp - 0x88]
+cmp cl, 0xb
+sete al
+movzx edi, al
+setne al
+movzx eax, al
+lea edi, [edi*8 + 7]
+lea eax, [eax*8 - 0x10]
+cmp word [ebp - 0x7c], di
+jg short loc_fffb080a ; jg 0xfffb080a
+mov edi, dword [ebp - 0x7c]
+cmp ax, di
+cmovge edi, eax
+
+loc_fffb080a: ; not directly referenced
+mov eax, dword [ebp - 0x9c]
+cmp byte [ebp - 0x88], 0xa
+mov ebx, dword [eax + 0x4c]
+mov esi, dword [eax + 0x50]
+jne short loc_fffb0840 ; jne 0xfffb0840
+mov eax, edi
+and ebx, 0xfffe01ff
+and eax, 0xf
+and esi, 0xfffe01ff
+mov edx, eax
+shl edx, 9
+shl eax, 0xd
+or ebx, edx
+or ebx, eax
+or esi, edx
+jmp short loc_fffb0856 ; jmp 0xfffb0856
+
+loc_fffb0840: ; not directly referenced
+cmp byte [ebp - 0x88], 0xb
+jne short loc_fffb0858 ; jne 0xfffb0858
+mov eax, edi
+and ebx, 0xffffffe0
+and eax, 0x1f
+and esi, 0xffffffe0
+or ebx, eax
+
+loc_fffb0856: ; not directly referenced
+or esi, eax
+
+loc_fffb0858: ; not directly referenced
+cmp byte [ebp - 0xac], 0
+je short loc_fffb086d ; je 0xfffb086d
+mov eax, dword [ebp - 0x9c]
+mov dword [eax + 0x4c], ebx
+mov dword [eax + 0x50], esi
+
+loc_fffb086d: ; not directly referenced
+mov eax, dword [ebp - 0x84]
+mov ecx, ebx
+shl eax, 8
+lea edx, [eax + 0x1404]
+mov dword [ebp - 0x7c], eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x7c]
+mov ecx, ebx
+lea edx, [eax + 0x1a04]
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x7c]
+mov ecx, ebx
+mov ebx, dword [ebp - 0x80]
+lea edx, [eax + 0x1204]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x7c]
+mov ecx, esi
+lea edx, [eax + 0x3414]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0xa4]
+mov edx, 0x2008
+mov ecx, dword [eax + 0x18]
+mov eax, ebx
+or ecx, 0x20
+call fcn_fffae58c ; call 0xfffae58c
+mov word [ebp - 0x7c], di
+
+loc_fffb08df: ; not directly referenced
+cmp byte [ebp - 0x88], 0xf
+mov al, byte [ebp - 0x9e]
+sete dl
+or al, dl
+je loc_fffb09b9 ; je 0xfffb09b9
+mov ecx, dword [ebp - 0x7c]
+mov eax, 0xfffffff8
+mov ebx, 7
+cmp cx, 0xfff8
+cmovge eax, ecx
+cmp ax, 7
+cmovg eax, ebx
+mov word [ebp - 0x7c], ax
+mov eax, dword [ebp - 0xa4]
+mov ebx, dword [eax + 0xc]
+test dl, dl
+je short loc_fffb096d ; je 0xfffb096d
+cmp byte [ebp - 0xb8], 1
+jne short loc_fffb0955 ; jne 0xfffb0955
+mov eax, dword [ebp - 0x80]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffb0955 ; jne 0xfffb0955
+mov edx, 0x3a14
+call fcn_fffae52a ; call 0xfffae52a
+mov esi, dword [ebp - 0x7c]
+shr eax, 0x14
+and eax, 0xf
+cmp si, ax
+cmovge eax, esi
+mov word [ebp - 0x7c], ax
+
+loc_fffb0955: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+and ebx, 0xf00fffff
+and eax, 0xf
+mov edx, eax
+shl edx, 0x14
+shl eax, 0x18
+or ebx, edx
+or ebx, eax
+
+loc_fffb096d: ; not directly referenced
+cmp byte [ebp - 0xac], 0
+je short loc_fffb097f ; je 0xfffb097f
+mov eax, dword [ebp - 0xa4]
+mov dword [eax + 0xc], ebx
+
+loc_fffb097f: ; not directly referenced
+mov edi, dword [ebp - 0x80]
+mov ecx, ebx
+mov edx, 0x3a14
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x5f08
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5f08
+or ah, 1
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x78
+mov eax, edi
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffb09b9: ; not directly referenced
+cmp byte [ebp - 0x88], 0xc
+mov cl, byte [ebp - 0x9e]
+sete al
+or cl, al
+je loc_fffb0b28 ; je 0xfffb0b28
+test al, al
+je short loc_fffb09dd ; je 0xfffb09dd
+mov bl, byte [ebp - 0x7c]
+and ebx, 3
+jmp short loc_fffb09e9 ; jmp 0xfffb09e9
+
+loc_fffb09dd: ; not directly referenced
+mov eax, dword [ebp - 0x9c]
+mov bl, byte [eax + 0xb4]
+
+loc_fffb09e9: ; not directly referenced
+cmp byte [ebp - 0xac], 0
+je short loc_fffb09fe ; je 0xfffb09fe
+mov eax, dword [ebp - 0x9c]
+mov byte [eax + 0xb4], bl
+
+loc_fffb09fe: ; not directly referenced
+mov esi, dword [ebp - 0x84]
+and ebx, 3
+mov eax, dword [ebp - 0x80]
+shl ebx, 0xd
+shl esi, 8
+lea edi, [esi + 0x140c]
+mov edx, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+lea edi, [esi + 0x1a0c]
+add esi, 0x121c
+and ah, 0x9f
+or eax, ebx
+mov ecx, eax
+mov eax, dword [ebp - 0x80]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x80]
+mov edx, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+mov edi, dword [ebp - 0x80]
+and ah, 0x9f
+or eax, ebx
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, esi
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, esi
+and ah, 0x9f
+or eax, ebx
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0xa4]
+mov edx, 0x2008
+mov ecx, dword [eax + 0x18]
+mov eax, edi
+or ecx, 0x20
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffb0b28 ; jmp 0xfffb0b28
+
+loc_fffb0a8d: ; not directly referenced
+cmp byte [ebp - 0x88], 1
+jne short loc_fffb0aad ; jne 0xfffb0aad
+mov eax, esi
+and ebx, 0xffc00fff
+and eax, 0x1f
+mov edx, eax
+shl edx, 0xc
+shl eax, 0x11
+or ebx, edx
+jmp short loc_fffb0ad9 ; jmp 0xfffb0ad9
+
+loc_fffb0aad: ; not directly referenced
+test al, al
+je short loc_fffb0ac1 ; je 0xfffb0ac1
+mov eax, esi
+and ebx, 0xf83fffff
+and eax, 0x1f
+shl eax, 0x16
+jmp short loc_fffb0ad9 ; jmp 0xfffb0ad9
+
+loc_fffb0ac1: ; not directly referenced
+cmp byte [ebp - 0x88], 2
+jne loc_fffaff90 ; jne 0xfffaff90
+mov eax, esi
+and ebx, 0x7ffffff
+shl eax, 0x1b
+
+loc_fffb0ad9: ; not directly referenced
+or ebx, eax
+jmp near loc_fffaff90 ; jmp 0xfffaff90
+
+loc_fffb0ae0: ; not directly referenced
+cmp byte [ebp - 0xd8], 8
+jbe short loc_fffb0afd ; jbe 0xfffb0afd
+mov edx, dword [ebp - 0x84]
+shl edx, 8
+add edx, 0x305c
+jmp near loc_fffaffa2 ; jmp 0xfffaffa2
+
+loc_fffb0afd: ; not directly referenced
+mov eax, dword [ebp - 0x84]
+shl ecx, 9
+shl eax, 8
+lea edx, [eax + ecx + 0x5c]
+jmp near loc_fffaffa2 ; jmp 0xfffaffa2
+
+loc_fffb0b12: ; not directly referenced
+mov word [ebp - 0x7c], 0x3f
+jmp near loc_fffb0264 ; jmp 0xfffb0264
+
+loc_fffb0b1d: ; not directly referenced
+mov word [ebp - 0x7c], 7
+jmp near loc_fffb0264 ; jmp 0xfffb0264
+
+loc_fffb0b28: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0b30: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+lea esi, [eax + 0x3756]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [eax + 0x5edc]
+mov byte [ebp - 0x1f], dl
+mov dword [ebp - 0x28], esi
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x1c], eax
+add eax, 0x1c
+mov dword [ebp - 0x30], eax
+movzx eax, dl
+mov dword [ebp - 0x34], eax
+
+loc_fffb0b64: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+cmp dword [eax], 2
+je short loc_fffb0b8b ; je 0xfffb0b8b
+
+loc_fffb0b6c: ; not directly referenced
+inc dword [ebp - 0x24]
+add dword [ebp - 0x28], 0x13c3
+add dword [ebp - 0x30], 0xcc
+cmp dword [ebp - 0x24], 2
+jne short loc_fffb0b64 ; jne 0xfffb0b64
+add esp, 0x2c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffb0b8b: ; not directly referenced
+mov byte [ebp - 0x1c], 0
+
+loc_fffb0b8f: ; not directly referenced
+mov esi, dword [ebp - 0x2c]
+mov cl, byte [ebp - 0x1c]
+cmp cl, byte [esi + 0x2488]
+jae short loc_fffb0b6c ; jae 0xfffb0b6c
+mov esi, dword [ebp - 0x28]
+movzx edx, cl
+mov ebx, 0x200
+xor ecx, ecx
+mov word [ebp - 0x1e], 0
+mov al, byte [esi + 0xc4]
+lea esi, [esi + edx*2]
+
+loc_fffb0bb9: ; not directly referenced
+mov edi, 1
+shl edi, cl
+mov edx, edi
+test al, dl
+je short loc_fffb0be5 ; je 0xfffb0be5
+imul edi, ecx, 0x12
+mov dx, word [ebp - 0x1e]
+movzx edi, word [esi + edi + 0x1b1]
+cmp dx, di
+cmovb edx, edi
+cmp bx, di
+mov word [ebp - 0x1e], dx
+cmova ebx, edi
+
+loc_fffb0be5: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffb0bb9 ; jne 0xfffb0bb9
+mov eax, dword [ebp - 0x2c]
+mov dx, word [ebp - 0x1e]
+movzx ecx, word [eax + 0x2489]
+mov eax, 0x13880
+shr dx, 6
+lea edi, [edx + 1]
+xor edx, edx
+movzx edi, di
+div ecx
+mov edx, 0x80
+mov ecx, dword [ebp - 0x34]
+cmp eax, 0x7f
+cmova edx, eax
+mov al, 6
+sub ebx, edx
+mov dl, 0xfc
+shr ebx, 6
+sub bl, byte [ebp - 0x1f]
+cmp bl, 6
+cmovle eax, ebx
+mov ebx, 7
+cmp al, 0xfc
+cmovge edx, eax
+movsx eax, dl
+sub edi, eax
+lea eax, [edi + ecx - 1]
+movzx ecx, byte [ebp - 0x1c]
+mov edi, dword [ebp - 0x30]
+cmp eax, 7
+cmovle ebx, eax
+and edx, 0xf
+mov esi, edx
+shl edx, 5
+lea edi, [edi + ecx*4]
+mov byte [ebp - 0x1e], dl
+mov dl, byte [edi + 5]
+and edx, 0x1f
+or dl, byte [ebp - 0x1e]
+mov byte [edi + 5], dl
+mov edx, esi
+shr dl, 3
+mov byte [ebp - 0x1e], dl
+xor edx, edx
+test ebx, ebx
+cmovns edx, ebx
+mov bl, dl
+and ebx, 7
+lea edx, [ebx + ebx]
+or dl, byte [ebp - 0x1e]
+shl esi, 4
+or edx, esi
+mov esi, dword [ebp - 0x2c]
+mov byte [edi + 6], dl
+mov dl, byte [edi + 7]
+mov eax, esi
+and edx, 0xfffffff8
+or edx, ebx
+mov byte [edi + 7], dl
+mov edx, dword [ebp - 0x24]
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, dword [edi + 4]
+mov edx, eax
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x1c]
+jmp near loc_fffb0b8f ; jmp 0xfffb0b8f
+
+fcn_fffb0cb4: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+movzx ebx, dl
+sub esp, 0x2c
+mov eax, dword [ebp + 0x10]
+imul edx, ebx, 0x13c3
+cmp dword [ebp + 8], 0
+mov byte [ebp - 0x20], cl
+mov dword [ebp - 0x2c], eax
+mov cl, al
+lea eax, [esi + edx + 0x3756]
+mov dword [ebp - 0x1c], eax
+je short loc_fffb0cec ; je 0xfffb0cec
+mov al, byte [eax + 0xc4]
+mov byte [ebp - 0x20], al
+
+loc_fffb0cec: ; not directly referenced
+cmp dword [esi + 0x2480], 3
+sete byte [ebp - 0x24]
+xor edi, edi
+imul edx, ebx, 0x13c3
+lea eax, [esi + edx]
+mov dword [ebp - 0x30], eax
+movzx eax, cl
+mov dword [ebp - 0x28], eax
+
+loc_fffb0d0b: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+mov edx, 1
+mov ecx, edi
+shl edx, cl
+test byte [eax + 0x381a], dl
+je short loc_fffb0d7a ; je 0xfffb0d7a
+mov al, byte [ebp - 0x24]
+cmp dword [ebp + 8], 0
+setne cl
+xor eax, 1
+test cl, al
+je short loc_fffb0d4d ; je 0xfffb0d4d
+push eax
+push dword [ebp - 0x28]
+push dword [ebp + 0xc]
+mov dword [ebp - 0x34], edx
+push edx
+push edx
+push 0
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+mov edx, dword [ebp - 0x34]
+jmp short loc_fffb0d58 ; jmp 0xfffb0d58
+
+loc_fffb0d4d: ; not directly referenced
+cmp dword [ebp + 8], 0
+jne short loc_fffb0d58 ; jne 0xfffb0d58
+test byte [ebp - 0x20], dl
+je short loc_fffb0d7a ; je 0xfffb0d7a
+
+loc_fffb0d58: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+push ecx
+push dword [ebp - 0x28]
+movzx ecx, byte [eax + edi + 0x245]
+add ecx, dword [ebp + 0xc]
+push ecx
+push 1
+push edx
+push 4
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffb0d7a: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffb0d0b ; jne 0xfffb0d0b
+movzx edi, byte [ebp - 0x2c]
+mov ecx, dword [ebp - 0x1c]
+push edx
+mov edx, dword [ebp + 0xc]
+movzx eax, byte [ebp - 0x20]
+push edi
+add edx, dword [ecx + 0x111]
+mov dword [ebp - 0x20], eax
+push edx
+push 1
+push eax
+push 2
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+cmp byte [ebp - 0x24], 0
+je loc_fffb0e62 ; je 0xfffb0e62
+imul edx, ebx, 0x54a
+xor eax, eax
+lea ecx, [edx + 0xf0]
+mov dword [ebp - 0x24], ecx
+
+loc_fffb0dc4: ; not directly referenced
+cmp al, 1
+setbe cl
+cmp dword [ebp + 8], 0
+setne dl
+test cl, dl
+je short loc_fffb0e11 ; je 0xfffb0e11
+mov ecx, dword [ebp - 0x24]
+movzx edx, al
+lea edx, [esi + edx + 0x186e]
+cmp byte [edx + ecx + 0x54b], 0
+je short loc_fffb0e0e ; je 0xfffb0e0e
+push ecx
+mov edx, 1
+push edi
+mov cl, al
+push dword [ebp + 0xc]
+shl edx, cl
+mov dword [ebp - 0x28], eax
+push edx
+push 0
+push 0
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp - 0x28]
+add esp, 0x20
+
+loc_fffb0e0e: ; not directly referenced
+inc eax
+jmp short loc_fffb0dc4 ; jmp 0xfffb0dc4
+
+loc_fffb0e11: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+push edx
+mov edx, dword [ebp + 0xc]
+push edi
+add edx, dword [eax + 0x109]
+push edx
+push 1
+push dword [ebp - 0x20]
+push 3
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp - 0x1c]
+add esp, 0x1c
+mov edx, dword [ebp + 0xc]
+push edi
+add edx, dword [eax + 0x115]
+push edx
+push 2
+push dword [ebp - 0x20]
+push 2
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp - 0x1c]
+add esp, 0x1c
+mov edx, dword [ebp + 0xc]
+push edi
+add edx, dword [eax + 0x11d]
+push edx
+push 2
+jmp short loc_fffb0e73 ; jmp 0xfffb0e73
+
+loc_fffb0e62: ; not directly referenced
+push eax
+mov eax, dword [ebp - 0x1c]
+mov edx, dword [ebp + 0xc]
+push edi
+add edx, dword [eax + 0x119]
+push edx
+push 1
+
+loc_fffb0e73: ; not directly referenced
+push dword [ebp - 0x20]
+push 1
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0e8a: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+mov ebx, eax
+sub esp, 0x2c
+mov edi, dword [eax + 0x2443]
+call dword [edi + 0x54] ; ucall
+add eax, 0x2710
+mov dword [ebp - 0x2c], eax
+
+loc_fffb0ea8: ; not directly referenced
+imul eax, esi, 0x13c3
+mov dword [ebp + esi*4 - 0x28], 0
+cmp dword [ebx + eax + 0x3756], 2
+jne short loc_fffb0f12 ; jne 0xfffb0f12
+cmp dword [ebx + 0x188b], 0
+je short loc_fffb0f12 ; je 0xfffb0f12
+xor ecx, ecx
+mov edx, esi
+mov eax, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov edx, eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [ebp + esi*4 - 0x20], eax
+test eax, 0x1000000
+je short loc_fffb0f12 ; je 0xfffb0f12
+and eax, 0xfeffffff
+mov ecx, 0xff
+mov dword [ebp - 0x30], eax
+mov edx, esi
+mov eax, ebx
+mov dword [ebp + esi*4 - 0x28], 1
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebp - 0x30]
+mov edx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb0f12: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffb0ea8 ; jne 0xfffb0ea8
+mov edx, 0x5030
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5030
+or eax, 0x800000
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb0f37: ; not directly referenced
+mov edx, 0x5030
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+shr eax, 0x10
+test al, al
+jns short loc_fffb0f59 ; jns 0xfffb0f59
+call dword [edi + 0x54] ; ucall
+cmp dword [ebp - 0x2c], eax
+ja short loc_fffb0f37 ; ja 0xfffb0f37
+mov edi, 1
+jmp short loc_fffb0f5b ; jmp 0xfffb0f5b
+
+loc_fffb0f59: ; not directly referenced
+xor edi, edi
+
+loc_fffb0f5b: ; not directly referenced
+xor esi, esi
+
+loc_fffb0f5d: ; not directly referenced
+cmp dword [ebp + esi*4 - 0x28], 0
+je short loc_fffb0f7f ; je 0xfffb0f7f
+mov ecx, 0xff
+mov edx, esi
+mov eax, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebp + esi*4 - 0x20]
+mov edx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb0f7f: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffb0f5d ; jne 0xfffb0f5d
+mov eax, edi
+add esp, 0x2c
+neg eax
+pop ebx
+and eax, 0x12
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb0f94: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+add esp, 0xffffff80
+mov al, byte [ebp + 0xc]
+mov ebx, dword [edi + 0x2443]
+push 1
+mov esi, dword [edi + 0x5edc]
+push 8
+mov byte [ebp - 0x6a], al
+mov eax, dword [edi + 0x188b]
+mov dword [ebp - 0x64], edx
+mov dword [ebp - 0x54], ecx
+mov byte [ebp - 0x50], dl
+mov dword [ebp - 0x78], eax
+lea eax, [ebp - 0x38]
+push eax
+mov byte [ebp - 0x4e], cl
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0x30]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 9
+push 8
+lea eax, [ebp - 0x28]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x20]
+push eax
+call dword [ebx + 0x64] ; ucall
+add esp, 0x10
+cmp byte [ebp - 0x54], 1
+jne short loc_fffb1029 ; jne 0xfffb1029
+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_fffb10b1 ; jmp 0xfffb10b1
+
+loc_fffb1029: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+cmp al, 2
+je short loc_fffb10ab ; je 0xfffb10ab
+cmp al, 5
+jne short loc_fffb103a ; jne 0xfffb103a
+
+loc_fffb1034: ; not directly referenced
+mov byte [ebp - 0x4d], 8
+jmp short loc_fffb10b5 ; jmp 0xfffb10b5
+
+loc_fffb103a: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+cmp al, 6
+je short loc_fffb10b1 ; je 0xfffb10b1
+cmp al, 9
+jne short loc_fffb106c ; jne 0xfffb106c
+mov ebx, dword [ebp - 0x64]
+movzx eax, bl
+and bl, 1
+je short loc_fffb1059 ; je 0xfffb1059
+mov edx, dword [esi + 0xbc]
+mov dword [ebp - 0x20], edx
+
+loc_fffb1059: ; not directly referenced
+mov byte [ebp - 0x4d], 2
+test al, 2
+je short loc_fffb10b5 ; je 0xfffb10b5
+mov eax, dword [esi + 0x188]
+mov dword [ebp - 0x1c], eax
+jmp short loc_fffb10b5 ; jmp 0xfffb10b5
+
+loc_fffb106c: ; not directly referenced
+cmp byte [ebp - 0x54], 0xa
+mov byte [ebp - 0x4d], 1
+jne short loc_fffb10b5 ; jne 0xfffb10b5
+mov eax, dword [ebp - 0x64]
+movzx edx, al
+test al, 1
+je short loc_fffb1092 ; je 0xfffb1092
+mov eax, dword [esi + 0xbc]
+mov dword [ebp - 0x20], eax
+shr eax, 0xf
+and eax, 0xf
+mov byte [ebp - 0x3a], al
+
+loc_fffb1092: ; not directly referenced
+and dl, 2
+je short loc_fffb1034 ; je 0xfffb1034
+mov eax, dword [esi + 0x188]
+mov dword [ebp - 0x1c], eax
+shr eax, 0xf
+and eax, 0xf
+mov byte [ebp - 0x39], al
+jmp short loc_fffb1034 ; jmp 0xfffb1034
+
+loc_fffb10ab: ; not directly referenced
+mov byte [ebp - 0x4d], 7
+jmp short loc_fffb10b5 ; jmp 0xfffb10b5
+
+loc_fffb10b1: ; not directly referenced
+mov byte [ebp - 0x4d], 4
+
+loc_fffb10b5: ; not directly referenced
+movzx eax, byte [ebp - 0x50]
+mov dword [ebp - 0x4c], 0
+mov byte [ebp - 0x69], 0
+mov dword [ebp - 0x68], eax
+movzx eax, byte [ebp - 0x4d]
+mov dword [ebp - 0x80], eax
+
+loc_fffb10ce: ; not directly referenced
+mov ebx, dword [ebp - 0x4c]
+mov byte [ebp - 0x4f], bl
+mov bl, byte [ebp + ebx - 0x38]
+movzx eax, bl
+dec eax
+call fcn_fffaec34 ; call 0xfffaec34
+cmp bl, 0x1f
+jbe short loc_fffb112f ; jbe 0xfffb112f
+mov ebx, dword [ebp - 0x4c]
+mov byte [ebp + ebx - 0x38], al
+
+loc_fffb10ed: ; not directly referenced
+mov cl, byte [ebp - 0x4f]
+mov dword [ebp - 0x58], 0x4004
+mov dword [ebp - 0x60], 0x4917
+mov al, cl
+shl eax, 4
+add eax, ecx
+cmp cl, 4
+movzx eax, al
+mov dword [ebp - 0x7c], eax
+sbb eax, eax
+xor ebx, ebx
+and eax, 0x1f
+mov dword [ebp - 0x70], eax
+mov al, cl
+and eax, 3
+mov byte [ebp - 0x6b], al
+add eax, 4
+or dword [ebp - 0x70], 0x80
+mov byte [ebp - 0x6c], al
+jmp short loc_fffb113b ; jmp 0xfffb113b
+
+loc_fffb112f: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+add ebx, 0x20
+mov byte [ebp + eax - 0x38], bl
+jmp short loc_fffb10ed ; jmp 0xfffb10ed
+
+loc_fffb113b: ; not directly referenced
+mov eax, dword [ebp - 0x68]
+bt eax, ebx
+jae loc_fffb12f7 ; jae 0xfffb12f7
+mov eax, dword [ebp - 0x58]
+lea edx, [eax + 0x94]
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+shr eax, 0xc
+and eax, 1
+cmp byte [ebp - 0x4e], 1
+mov byte [ebp - 0x69], al
+jne short loc_fffb11d6 ; jne 0xfffb11d6
+mov edx, dword [ebp - 0x4c]
+mov dword [ebp - 0x5c], ebx
+movzx ecx, byte [ebp + edx - 0x30]
+movzx eax, byte [ebp + edx - 0x28]
+mov dl, byte [ebp + edx - 0x38]
+and ecx, 0x3f
+and eax, 0x3f
+shl eax, 0x10
+mov ebx, edx
+shl ecx, 8
+and ebx, 0x1f
+or ecx, eax
+mov eax, dword [ebp - 0x58]
+shr dl, 5
+or ecx, ebx
+and edx, 1
+shl edx, 5
+or ecx, edx
+lea edx, [eax + 0x1fc]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, dword [ebp - 0x4c]
+mov eax, 1
+mov ecx, dword [ebp + 8]
+mov ebx, dword [ebp - 0x5c]
+movzx ecx, byte [ecx + edx]
+lea edx, [ebx*4 + 0x4980]
+shl eax, cl
+cmp dword [ebp - 0x78], 1
+lea ecx, [edx + 0x20]
+cmove edx, ecx
+mov ecx, eax
+jmp near loc_fffb1273 ; jmp 0xfffb1273
+
+loc_fffb11d6: ; not directly referenced
+cmp byte [ebp - 0x4e], 2
+jne short loc_fffb11f6 ; jne 0xfffb11f6
+sub esp, 0xc
+mov ecx, dword [ebp - 0x80]
+mov edx, ebx
+push dword [ebp - 0x4c]
+mov eax, edi
+call fcn_fffaa3c8 ; call 0xfffaa3c8
+add esp, 0x10
+jmp near loc_fffb12f7 ; jmp 0xfffb12f7
+
+loc_fffb11f6: ; not directly referenced
+mov al, byte [ebp - 0x4e]
+sub eax, 5
+cmp al, 1
+ja short loc_fffb127c ; ja 0xfffb127c
+mov eax, dword [ebp - 0x60]
+mov ecx, dword [ebp - 0x7c]
+lea edx, [eax - 0x6c]
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+cmp byte [ebp - 0x4e], 5
+jne short loc_fffb122f ; jne 0xfffb122f
+mov cl, byte [ebp - 0x4f]
+cmp cl, 7
+setne al
+test cl, cl
+setne cl
+movzx ecx, cl
+mov dword [ebp - 0x5c], ecx
+and dword [ebp - 0x5c], eax
+jmp short loc_fffb123b ; jmp 0xfffb123b
+
+loc_fffb122f: ; not directly referenced
+xor eax, eax
+test byte [ebp - 0x4f], 0xfd
+setne al
+mov dword [ebp - 0x5c], eax
+
+loc_fffb123b: ; not directly referenced
+mov edx, dword [ebp - 0x60]
+mov eax, edx
+sub eax, 7
+mov dword [ebp - 0x74], eax
+mov al, byte [ebp - 0x5c]
+lea ecx, [eax - 0x80]
+mov eax, edi
+movzx ecx, cl
+call fcn_fffae566 ; call 0xfffae566
+mov edx, dword [ebp - 0x74]
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x5c]
+mov edx, dword [ebp - 0x74]
+sub ecx, 0xffffff80
+shl ecx, 0xc
+and eax, 0xfff00fff
+or ecx, eax
+
+loc_fffb1273: ; not directly referenced
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb12f7 ; jmp 0xfffb12f7
+
+loc_fffb127c: ; not directly referenced
+cmp byte [ebp - 0x4e], 9
+jne short loc_fffb12a7 ; jne 0xfffb12a7
+cmp byte [ebp - 0x4f], 1
+mov al, byte [ebp + ebx*4 - 0x1f]
+sbb edx, edx
+add edx, 5
+and edx, 7
+and eax, 0xffffff8f
+shl edx, 4
+or eax, edx
+mov edx, dword [ebp - 0x58]
+mov byte [ebp + ebx*4 - 0x1f], al
+mov ecx, dword [ebp + ebx*4 - 0x20]
+jmp short loc_fffb1273 ; jmp 0xfffb1273
+
+loc_fffb12a7: ; not directly referenced
+cmp byte [ebp - 0x4e], 0xa
+jne short loc_fffb12f7 ; jne 0xfffb12f7
+mov dl, byte [ebp - 0x6c]
+mov al, byte [ebp + ebx*4 - 0x1f]
+and edx, 7
+shl edx, 4
+and eax, 0xffffff8f
+or eax, edx
+mov byte [ebp + ebx*4 - 0x1f], al
+mov al, byte [ebp - 0x6b]
+add al, byte [ebp + ebx - 0x3a]
+mov ecx, dword [ebp + ebx*4 - 0x20]
+and eax, 0xf
+shl eax, 0xf
+and ecx, 0xfff87fff
+or ecx, eax
+mov eax, edi
+mov dword [ebp + ebx*4 - 0x20], ecx
+mov edx, dword [ebp - 0x58]
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0x70]
+mov eax, edi
+mov edx, dword [ebp - 0x60]
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffb12f7: ; not directly referenced
+inc ebx
+add dword [ebp - 0x60], 8
+add dword [ebp - 0x58], 0x400
+cmp ebx, 2
+jne loc_fffb113b ; jne 0xfffb113b
+mov eax, edi
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov ecx, 1
+cmp byte [ebp - 0x4f], 0
+sete dl
+cmp byte [ebp - 0x6a], 0
+setne al
+test dl, al
+mov eax, 5
+cmovne ecx, eax
+mov edx, 0x4800
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb133c: ; not directly referenced
+mov edx, 0x4804
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov cl, byte [ebp - 0x50]
+mov edx, eax
+mov ebx, eax
+shr edx, 0x10
+shr eax, 0x10
+and edx, 2
+and eax, 1
+or eax, edx
+and eax, ecx
+cmp al, cl
+jne short loc_fffb133c ; jne 0xfffb133c
+mov edx, ebx
+mov al, bl
+and edx, 2
+and eax, 1
+or eax, edx
+test cl, al
+je short loc_fffb1379 ; je 0xfffb1379
+cmp byte [ebp - 0x69], 0
+jne short loc_fffb13c2 ; jne 0xfffb13c2
+
+loc_fffb1379: ; not directly referenced
+inc dword [ebp - 0x4c]
+mov al, byte [ebp - 0x4c]
+cmp byte [ebp - 0x4d], al
+ja loc_fffb10ce ; ja 0xfffb10ce
+mov al, byte [ebp - 0x54]
+sub eax, 9
+cmp al, 1
+ja short loc_fffb13c2 ; ja 0xfffb13c2
+test byte [ebp - 0x68], 1
+je short loc_fffb13aa ; je 0xfffb13aa
+mov ecx, dword [esi + 0xbc]
+mov edx, 0x4004
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb13aa: ; not directly referenced
+test byte [ebp - 0x68], 2
+je short loc_fffb13c2 ; je 0xfffb13c2
+mov ecx, dword [esi + 0x188]
+mov edx, 0x4404
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb13c2: ; not directly referenced
+mov al, byte [ebp - 0x64]
+lea esp, [ebp - 0xc]
+and eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb13cf: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0xc
+mov eax, dword [eax + 0x5edc]
+mov esi, dword [ebx + 0x1887]
+mov dword [ebp - 0x14], edx
+mov dword [ebp - 0x10], ecx
+mov edx, dword [eax + 4]
+xor eax, eax
+
+loc_fffb13f3: ; not directly referenced
+lea ecx, [edx + eax]
+mov dword [ebp - 0x18], ecx
+mov ecx, edi
+cmp cl, byte [edx + eax]
+jne short loc_fffb140d ; jne 0xfffb140d
+mov eax, dword [ebp - 0x10]
+mov edi, dword [ebp - 0x18]
+mov ax, word [edi + eax*2 + 1]
+jmp short loc_fffb1417 ; jmp 0xfffb1417
+
+loc_fffb140d: ; not directly referenced
+add eax, 7
+cmp eax, 0x4d
+jne short loc_fffb13f3 ; jne 0xfffb13f3
+xor al, al
+
+loc_fffb1417: ; not directly referenced
+cmp esi, 0x306d0
+sete cl
+cmp esi, 0x40650
+sete dl
+or cl, dl
+je short loc_fffb1472 ; je 0xfffb1472
+cmp dword [ebx + 0x2480], 1
+jne short loc_fffb1472 ; jne 0xfffb1472
+cmp byte [ebp - 0x14], 5
+sete cl
+cmp byte [ebp - 0x10], 2
+setne dl
+test cl, dl
+je short loc_fffb1472 ; je 0xfffb1472
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffb145a ; jne 0xfffb145a
+cmp byte [ebx + 0x49be], 5
+je short loc_fffb146c ; je 0xfffb146c
+
+loc_fffb145a: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffb14ab ; jne 0xfffb14ab
+cmp byte [ebx + 0x5d81], 5
+jne short loc_fffb14ab ; jne 0xfffb14ab
+
+loc_fffb146c: ; not directly referenced
+add ax, 0xc8
+jmp short loc_fffb14ab ; jmp 0xfffb14ab
+
+loc_fffb1472: ; not directly referenced
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffb14ab ; jne 0xfffb14ab
+cmp dword [ebx + 0x2480], 1
+jne short loc_fffb14ab ; jne 0xfffb14ab
+mov edi, dword [ebp - 0x10]
+cmp byte [ebp - 0x14], 0xc
+mov ebx, edi
+sete cl
+cmp bl, 2
+setne dl
+test cl, dl
+je short loc_fffb14ab ; je 0xfffb14ab
+dec bl
+mov edx, 0x78
+mov ecx, 0x50
+cmovne edx, ecx
+add eax, edx
+
+loc_fffb14ab: ; not directly referenced
+add esp, 0xc
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb14b3: ; not directly referenced
+push ebp
+movzx edx, dl
+mov ebp, esp
+push ebx
+push ebx
+cmp dword [eax + 0x2480], 2
+push 0
+push dword [ebp + 8]
+sete bl
+shl ebx, 3
+movzx ebx, bl
+push ecx
+mov ecx, 0xf
+push ebx
+call fcn_fffafb06 ; call 0xfffafb06
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb14e1: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x3c
+test dl, dl
+setne bl
+xor eax, eax
+imul edi, dword [esi + 0x18a7], 0x2e
+and ebx, 1
+lea edx, [esi + 0x374e]
+shl ebx, 8
+mov byte [ebp - 0x2d], 0
+mov dword [ebp - 0x3c], edx
+mov dword [ebp - 0x40], edi
+
+loc_fffb1510: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x2d], 1
+setbe dl
+test cl, dl
+je loc_fffb16e7 ; je 0xfffb16e7
+movzx eax, byte [ebp - 0x2d]
+mov dword [ebp - 0x34], eax
+imul eax, eax, 0x13c3
+cmp dword [esi + eax + 0x3756], 2
+jne loc_fffb16d1 ; jne 0xfffb16d1
+mov edx, dword [ebp - 0x3c]
+lea eax, [edx + eax + 8]
+mov dword [ebp - 0x2c], eax
+add eax, dword [ebp - 0x40]
+mov cx, word [eax + 0x2a]
+add eax, 0x20
+movzx edi, word [eax - 0x16]
+mov ax, word [eax + 8]
+cmp cx, 0xc
+setne dl
+cmp cx, 0xa
+mov word [ebp - 0x38], ax
+setne al
+test dl, al
+je short loc_fffb159f ; je 0xfffb159f
+cmp cx, 0x10
+setne dl
+cmp cx, 0xe
+setne al
+test dl, al
+je short loc_fffb159f ; je 0xfffb159f
+cmp cx, 0x14
+setne dl
+cmp cx, 0x12
+setne al
+test dl, al
+je short loc_fffb159f ; je 0xfffb159f
+cmp cx, 0x18
+jne loc_fffb16db ; jne 0xfffb16db
+
+loc_fffb159f: ; not directly referenced
+movzx eax, word [ebp - 0x38]
+add eax, eax
+mov edx, eax
+mov dword [ebp - 0x38], eax
+movzx eax, cx
+cmp edx, eax
+jne loc_fffb16e2 ; jne 0xfffb16e2
+cmp di, 0x10
+ja short loc_fffb15c4 ; ja 0xfffb15c4
+xor eax, eax
+test di, 1
+jne short loc_fffb15d3 ; jne 0xfffb15d3
+
+loc_fffb15c4: ; not directly referenced
+mov eax, edi
+and eax, 0xfffffffb
+cmp ax, 0x12
+setne al
+movzx eax, al
+
+loc_fffb15d3: ; not directly referenced
+shl eax, 2
+and ebx, 0xfffffffb
+or ebx, eax
+cmp di, 0x10
+ja short loc_fffb15f9 ; ja 0xfffb15f9
+lea eax, [edi - 9]
+mov edi, 2
+cdq
+and ebx, 0xffffff8f
+idiv edi
+and eax, 7
+shl eax, 4
+or ebx, eax
+jmp short loc_fffb160a ; jmp 0xfffb160a
+
+loc_fffb15f9: ; not directly referenced
+sub edi, 2
+and ebx, 0xffffff8f
+sar edi, 2
+and edi, 7
+shl edi, 4
+or ebx, edi
+
+loc_fffb160a: ; not directly referenced
+cmp cx, 0x14
+ja loc_fffb16bf ; ja 0xfffb16bf
+mov eax, dword [ebp - 0x38]
+mov ecx, 2
+and bh, 0xf1
+sub eax, 0xa
+cdq
+idiv ecx
+and eax, 7
+shl eax, 9
+or ebx, eax
+
+loc_fffb162d: ; not directly referenced
+imul eax, dword [ebp - 0x34], 0x13c3
+test byte [esi + eax + 0x381a], 1
+je short loc_fffb166a ; je 0xfffb166a
+cmp byte [esi + 0x247b], 0
+jne short loc_fffb165e ; jne 0xfffb165e
+mov eax, dword [ebp - 0x2c]
+mov word [eax + 0x126b], bx
+mov word [eax + 0x1283], bx
+
+loc_fffb1658: ; not directly referenced
+mov word [ebp - 0x1c], bx
+jmp short loc_fffb166a ; jmp 0xfffb166a
+
+loc_fffb165e: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov bx, word [eax + 0x126b]
+jmp short loc_fffb1658 ; jmp 0xfffb1658
+
+loc_fffb166a: ; not directly referenced
+imul eax, dword [ebp - 0x34], 0x13c3
+test byte [esi + eax + 0x381a], 4
+je short loc_fffb16a7 ; je 0xfffb16a7
+cmp byte [esi + 0x247b], 0
+jne short loc_fffb169b ; jne 0xfffb169b
+mov eax, dword [ebp - 0x2c]
+mov word [eax + 0x1393], bx
+mov word [eax + 0x13ab], bx
+
+loc_fffb1695: ; not directly referenced
+mov word [ebp - 0x1a], bx
+jmp short loc_fffb16a7 ; jmp 0xfffb16a7
+
+loc_fffb169b: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov bx, word [eax + 0x1393]
+jmp short loc_fffb1695 ; jmp 0xfffb1695
+
+loc_fffb16a7: ; not directly referenced
+mov edx, dword [ebp - 0x34]
+sub esp, 0xc
+xor ecx, ecx
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, esi
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+jmp short loc_fffb16d3 ; jmp 0xfffb16d3
+
+loc_fffb16bf: ; not directly referenced
+shl ecx, 7
+and bh, 0xf1
+and cx, 0xe00
+or ebx, ecx
+jmp near loc_fffb162d ; jmp 0xfffb162d
+
+loc_fffb16d1: ; not directly referenced
+xor eax, eax
+
+loc_fffb16d3: ; not directly referenced
+inc byte [ebp - 0x2d]
+jmp near loc_fffb1510 ; jmp 0xfffb1510
+
+loc_fffb16db: ; not directly referenced
+mov eax, 0xd
+jmp short loc_fffb16e7 ; jmp 0xfffb16e7
+
+loc_fffb16e2: ; not directly referenced
+mov eax, 0x1d
+
+loc_fffb16e7: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb16ef: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, 0x100
+sub esp, 0x90
+mov esi, dword [ebp + 8]
+lea edx, [ebp - 0x44]
+mov dword [ebp - 0x48], 1
+mov eax, dword [esi + 0x2443]
+push 0
+push 0x2c
+push edx
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+cmp dword [esi + 0x3756], 2
+jne short loc_fffb1753 ; jne 0xfffb1753
+xor edi, edi
+
+loc_fffb1729: ; not directly referenced
+mov eax, edi
+cmp al, byte [esi + 0x2488]
+jae short loc_fffb1753 ; jae 0xfffb1753
+movzx eax, al
+and ebx, 0xffffff80
+mov edx, eax
+inc edi
+and edx, 0x7f
+or ebx, edx
+mov ecx, ebx
+lea edx, [eax*4 + 0x40f0]
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb1729 ; jmp 0xfffb1729
+
+loc_fffb1753: ; not directly referenced
+xor edi, edi
+cmp dword [esi + 0x4b19], 2
+je short loc_fffb1769 ; je 0xfffb1769
+
+loc_fffb175e: ; not directly referenced
+mov byte [ebp - 0x65], 0
+xor edi, edi
+jmp near loc_fffb1900 ; jmp 0xfffb1900
+
+loc_fffb1769: ; not directly referenced
+mov eax, edi
+cmp al, byte [esi + 0x2488]
+jae short loc_fffb175e ; jae 0xfffb175e
+mov eax, edi
+and ebx, 0xffffff80
+movzx eax, al
+inc edi
+mov edx, eax
+and edx, 0x7f
+or ebx, edx
+mov ecx, ebx
+lea edx, [eax*4 + 0x44f0]
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb1769 ; jmp 0xfffb1769
+
+loc_fffb1795: ; not directly referenced
+mov cl, byte [ebp - 0x65]
+xor edi, edi
+mov dword [ebp - 0x5c], 1
+shl dword [ebp - 0x5c], cl
+movzx eax, cl
+mov dword [ebp - 0x7c], eax
+mov al, byte [ebp - 0x5c]
+test byte [esi + 0x248d], al
+je loc_fffb18fd ; je 0xfffb18fd
+mov ecx, dword [ebp - 0x5c]
+xor edx, edx
+mov eax, esi
+call fcn_fffaac43 ; call 0xfffaac43
+mov ecx, dword [ebp - 0x5c]
+mov edx, 1
+mov byte [ebp - 0x4a], 0
+mov bl, al
+mov eax, esi
+call fcn_fffaac43 ; call 0xfffaac43
+imul ecx, dword [ebp - 0x7c], 0x18
+mov byte [ebp - 0x49], 0
+mov dword [ebp - 0x80], 0
+mov dword [ebp - 0x8c], ecx
+lea ecx, [esi + ecx + 0x49c1]
+or eax, ebx
+movzx eax, al
+mov dword [ebp - 0x90], ecx
+mov dword [ebp - 0x64], eax
+
+loc_fffb1804: ; not directly referenced
+mov ecx, dword [ebp - 0x7c]
+lea eax, [ebp - 0x48]
+push ebx
+push ebx
+mov ebx, edi
+push eax
+mov eax, esi
+push 1
+xor edi, edi
+lea edx, [ebp - 0x44]
+call fcn_fffaa9ed ; call 0xfffaa9ed
+mov cl, byte [ebp - 0x80]
+add esp, 0x10
+mov eax, dword [ebp - 0x90]
+mov dword [ebp - 0x84], 1
+shl dword [ebp - 0x84], cl
+mov dword [ebp - 0x60], eax
+
+loc_fffb183c: ; not directly referenced
+mov eax, dword [ebp - 0x64]
+bt eax, edi
+jb loc_fffb1919 ; jb 0xfffb1919
+
+loc_fffb1848: ; not directly referenced
+inc edi
+add dword [ebp - 0x60], 0x13c3
+cmp edi, 2
+jne short loc_fffb183c ; jne 0xfffb183c
+mov edx, dword [ebp - 0x64]
+mov eax, esi
+call fcn_fffae670 ; call 0xfffae670
+test eax, eax
+mov edi, eax
+lea eax, [esi + 0x49ba]
+cmove edi, ebx
+mov dword [ebp - 0x84], eax
+mov eax, dword [ebp - 0x8c]
+xor ebx, ebx
+add eax, 7
+mov dword [ebp - 0x94], eax
+
+loc_fffb1883: ; not directly referenced
+mov eax, dword [ebp - 0x64]
+bt eax, ebx
+jae short loc_fffb18bc ; jae 0xfffb18bc
+mov eax, ebx
+shl eax, 0xa
+add eax, 0x4114
+mov dword [ebp - 0x88], eax
+mov byte [ebp - 0x60], 0
+mov byte [ebp - 0x78], 0
+
+loc_fffb18a3: ; not directly referenced
+mov al, byte [ebp - 0x78]
+cmp al, byte [esi + 0x2488]
+jb loc_fffb19ab ; jb 0xfffb19ab
+cmp byte [ebp - 0x60], 0
+jne loc_fffb19ed ; jne 0xfffb19ed
+
+loc_fffb18bc: ; not directly referenced
+inc ebx
+add dword [ebp - 0x84], 0x13c3
+cmp ebx, 2
+jne short loc_fffb1883 ; jne 0xfffb1883
+inc dword [ebp - 0x80]
+cmp dword [ebp - 0x80], 8
+jne loc_fffb1804 ; jne 0xfffb1804
+test byte [ebp - 0x64], 1
+je short loc_fffb18eb ; je 0xfffb18eb
+cmp byte [ebp - 0x4a], 0xff
+mov eax, 0x1f
+cmovne edi, eax
+
+loc_fffb18eb: ; not directly referenced
+test byte [ebp - 0x64], 2
+je short loc_fffb18fd ; je 0xfffb18fd
+cmp byte [ebp - 0x49], 0xff
+mov eax, 0x1f
+cmovne edi, eax
+
+loc_fffb18fd: ; not directly referenced
+inc byte [ebp - 0x65]
+
+loc_fffb1900: ; not directly referenced
+test edi, edi
+sete dl
+cmp byte [ebp - 0x65], 1
+setbe al
+test dl, al
+jne loc_fffb1795 ; jne 0xfffb1795
+jmp near loc_fffb1a4d ; jmp 0xfffb1a4d
+
+loc_fffb1919: ; not directly referenced
+cmp byte [ebp + edi - 0x4a], 0xff
+je loc_fffb1848 ; je 0xfffb1848
+mov eax, dword [ebp - 0x60]
+mov edx, edi
+mov cx, word [eax + 6]
+push eax
+push eax
+mov word [ebp - 0x78], cx
+mov ecx, dword [ebp - 0x5c]
+or word [ebp - 0x78], 0x10
+movzx eax, word [ebp - 0x78]
+push eax
+mov eax, esi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0xc
+mov ecx, dword [ebp - 0x7c]
+mov edx, edi
+test eax, eax
+cmovne ebx, eax
+mov eax, dword [ebp - 0x60]
+mov ax, word [eax]
+push dword [ebp - 0x84]
+and eax, 0xfffc
+push 0
+or eax, 2
+push eax
+mov eax, esi
+call fcn_fffaa285 ; call 0xfffaa285
+pop edx
+mov edx, edi
+pop ecx
+mov ecx, dword [ebp - 0x5c]
+test eax, eax
+cmovne ebx, eax
+mov eax, dword [ebp - 0x78]
+mov dword [ebp - 0x88], ebx
+and eax, 0xffef
+push eax
+mov eax, esi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+cmove ebx, dword [ebp - 0x88]
+jmp near loc_fffb1848 ; jmp 0xfffb1848
+
+loc_fffb19ab: ; not directly referenced
+mov dl, byte [ebp - 0x78]
+movzx eax, byte [ebp + ebx - 0x4a]
+movzx ecx, dl
+bt eax, edx
+jb short loc_fffb19e5 ; jb 0xfffb19e5
+mov eax, dword [ebp - 0x88]
+mov dword [ebp - 0x98], ecx
+lea edx, [eax + ecx*4]
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x98]
+test eax, eax
+je short loc_fffb19e5 ; je 0xfffb19e5
+mov eax, 1
+shl eax, cl
+or byte [ebp - 0x60], al
+
+loc_fffb19e5: ; not directly referenced
+inc byte [ebp - 0x78]
+jmp near loc_fffb18a3 ; jmp 0xfffb18a3
+
+loc_fffb19ed: ; not directly referenced
+movzx eax, byte [ebp - 0x60]
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov ecx, dword [ebp - 0x84]
+cmp byte [ecx], 8
+movzx eax, al
+jne short loc_fffb1a07 ; jne 0xfffb1a07
+dec eax
+jmp short loc_fffb1a0a ; jmp 0xfffb1a0a
+
+loc_fffb1a07: ; not directly referenced
+cmp eax, 2
+
+loc_fffb1a0a: ; not directly referenced
+sete al
+mov edx, dword [ebp - 0x94]
+movzx eax, al
+test eax, eax
+mov eax, 0x1f
+cmove edi, eax
+mov al, byte [ebp - 0x60]
+add edx, dword [ebp - 0x84]
+or byte [ebp + ebx - 0x4a], al
+xor eax, eax
+
+loc_fffb1a2f: ; not directly referenced
+cmp byte [edx + eax + 0x10], 0
+jne short loc_fffb1a42 ; jne 0xfffb1a42
+mov cl, byte [ebp - 0x60]
+mov byte [edx + eax + 0x10], cl
+jmp near loc_fffb18bc ; jmp 0xfffb18bc
+
+loc_fffb1a42: ; not directly referenced
+inc eax
+cmp eax, 8
+jne short loc_fffb1a2f ; jne 0xfffb1a2f
+jmp near loc_fffb18bc ; jmp 0xfffb18bc
+
+loc_fffb1a4d: ; not directly referenced
+mov cl, byte [esi + 0x247b]
+xor edx, edx
+mov eax, esi
+mov byte [esi + 0x247b], 1
+mov dword [ebp - 0x5c], ecx
+call fcn_fffb14e1 ; call 0xfffb14e1
+mov ecx, dword [ebp - 0x5c]
+mov byte [esi + 0x247b], cl
+test eax, eax
+mov ebx, eax
+mov eax, esi
+cmove ebx, edi
+call fcn_fffb0e8a ; call 0xfffb0e8a
+lea esp, [ebp - 0xc]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb1a87: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+lea esi, [ebx + 0x374e]
+sub esp, 0x3c
+xor eax, eax
+mov byte [ebp - 0x2b], 0
+mov dword [ebp - 0x40], esi
+
+loc_fffb1aa1: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x2b], 1
+setbe dl
+test cl, dl
+je loc_fffb1be5 ; je 0xfffb1be5
+movzx eax, byte [ebp - 0x2b]
+imul edx, eax, 0x13c3
+mov dword [ebp - 0x34], eax
+lea eax, [ebx + edx]
+cmp dword [eax + 0x3756], 2
+jne loc_fffb1bd6 ; jne 0xfffb1bd6
+mov esi, dword [ebp - 0x40]
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x3c], eax
+lea esi, [esi + edx + 8]
+mov dword [ebp - 0x38], esi
+xor esi, esi
+
+loc_fffb1ae8: ; not directly referenced
+mov edi, dword [ebp - 0x30]
+mov eax, edi
+mov ecx, edi
+mov edi, dword [ebp - 0x3c]
+mov byte [ebp - 0x2c], al
+mov eax, 1
+shl eax, cl
+test byte [edi + 0x381a], al
+je loc_fffb1bad ; je 0xfffb1bad
+cmp byte [ebx + 0x247b], 0
+je short loc_fffb1b2b ; je 0xfffb1b2b
+mov al, cl
+mov edx, dword [ebp - 0x38]
+shr al, 1
+movzx eax, al
+imul eax, eax, 0x128
+mov si, word [edx + eax + 0x126d]
+jmp short loc_fffb1ba0 ; jmp 0xfffb1ba0
+
+loc_fffb1b2b: ; 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_fffa69ea ; call 0xfffa69ea
+test eax, eax
+je loc_fffb1be0 ; je 0xfffb1be0
+mov edx, dword [ebx + 0x1887]
+cmp edx, 0x306d0
+sete cl
+cmp edx, 0x40650
+sete dl
+or cl, dl
+je short loc_fffb1b6c ; je 0xfffb1b6c
+cmp dword [ebx + 0x2480], 1
+je short loc_fffb1b72 ; je 0xfffb1b72
+
+loc_fffb1b6c: ; not directly referenced
+movzx ecx, byte [eax + 1]
+jmp short loc_fffb1b74 ; jmp 0xfffb1b74
+
+loc_fffb1b72: ; not directly referenced
+xor ecx, ecx
+
+loc_fffb1b74: ; not directly referenced
+sub esp, 0xc
+mov edx, ebx
+push esi
+lea eax, [ebp - 0x2a]
+call fcn_fffa6bd1 ; call 0xfffa6bd1
+imul edi, edi, 0x128
+mov si, word [ebp - 0x2a]
+add edi, dword [ebp - 0x38]
+add esp, 0x10
+mov word [edi + 0x126d], si
+mov word [edi + 0x1285], si
+
+loc_fffb1ba0: ; not directly referenced
+mov al, byte [ebp - 0x2c]
+shr al, 1
+movzx eax, al
+mov word [ebp + eax*2 - 0x1c], si
+
+loc_fffb1bad: ; not directly referenced
+add dword [ebp - 0x30], 2
+cmp dword [ebp - 0x30], 4
+jne loc_fffb1ae8 ; jne 0xfffb1ae8
+mov edx, dword [ebp - 0x34]
+sub esp, 0xc
+mov ecx, 1
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, ebx
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+jmp short loc_fffb1bd8 ; jmp 0xfffb1bd8
+
+loc_fffb1bd6: ; not directly referenced
+xor eax, eax
+
+loc_fffb1bd8: ; not directly referenced
+inc byte [ebp - 0x2b]
+jmp near loc_fffb1aa1 ; jmp 0xfffb1aa1
+
+loc_fffb1be0: ; not directly referenced
+mov eax, 1
+
+loc_fffb1be5: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb1bed: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x3c
+mov edi, dword [esi + 0x2480]
+mov dword [ebp - 0x3c], ecx
+mov dword [ebp - 0x38], edi
+cmp ecx, 1
+je short loc_fffb1c30 ; je 0xfffb1c30
+jb short loc_fffb1c20 ; jb 0xfffb1c20
+cmp ecx, 2
+je short loc_fffb1c27 ; je 0xfffb1c27
+cmp ecx, 3
+jne loc_fffb1d20 ; jne 0xfffb1d20
+mov edi, 0xc3
+jmp short loc_fffb1c2c ; jmp 0xfffb1c2c
+
+loc_fffb1c20: ; not directly referenced
+mov edi, 0xff
+jmp short loc_fffb1c35 ; jmp 0xfffb1c35
+
+loc_fffb1c27: ; not directly referenced
+mov edi, 0x56
+
+loc_fffb1c2c: ; not directly referenced
+xor eax, eax
+jmp short loc_fffb1c3a ; jmp 0xfffb1c3a
+
+loc_fffb1c30: ; not directly referenced
+mov edi, 0xab
+
+loc_fffb1c35: ; not directly referenced
+mov eax, 0x400
+
+loc_fffb1c3a: ; not directly referenced
+mov word [ebp - 0x1c], ax
+movzx ecx, dl
+xor ebx, ebx
+mov word [ebp - 0x1a], ax
+lea eax, [esi + 0x3756]
+mov dword [ebp - 0x34], eax
+xor eax, eax
+mov byte [ebp - 0x2d], 1
+mov dword [ebp - 0x40], ecx
+
+loc_fffb1c59: ; not directly referenced
+mov ecx, dword [ebp - 0x34]
+cmp dword [ecx], 2
+jne loc_fffb1cf9 ; jne 0xfffb1cf9
+mov ecx, dword [ebp - 0x40]
+bt ecx, ebx
+jae loc_fffb1cf9 ; jae 0xfffb1cf9
+lea edx, [ebx + 1]
+bt ecx, edx
+jb short loc_fffb1c88 ; jb 0xfffb1c88
+mov cl, byte [ebp - 0x2d]
+mov dl, 7
+cmp dword [ebp - 0x3c], 2
+cmove ecx, edx
+mov byte [ebp - 0x2d], cl
+
+loc_fffb1c88: ; not directly referenced
+cmp dword [ebp - 0x38], 3
+jne short loc_fffb1cca ; jne 0xfffb1cca
+mov dword [ebp - 0x2c], 0
+
+loc_fffb1c95: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+mov edx, 1
+shl edx, cl
+mov ecx, dword [ebp - 0x34]
+test byte [ecx + 0xc4], dl
+je short loc_fffb1cbf ; je 0xfffb1cbf
+mov ecx, dword [ebp - 0x2c]
+mov edx, ebx
+push eax
+mov eax, esi
+push 0
+push edi
+push 0xa
+call fcn_fffaa505 ; call 0xfffaa505
+add esp, 0x10
+
+loc_fffb1cbf: ; not directly referenced
+inc dword [ebp - 0x2c]
+cmp dword [ebp - 0x2c], 4
+jne short loc_fffb1c95 ; jne 0xfffb1c95
+jmp short loc_fffb1cf9 ; jmp 0xfffb1cf9
+
+loc_fffb1cca: ; not directly referenced
+cmp dword [ebp - 0x38], 2
+movzx eax, byte [ebp - 0x2d]
+jne short loc_fffb1cdf ; jne 0xfffb1cdf
+push eax
+lea eax, [ebp - 0x1c]
+push eax
+push 0
+push 0xe
+jmp short loc_fffb1ce8 ; jmp 0xfffb1ce8
+
+loc_fffb1cdf: ; not directly referenced
+push eax
+lea eax, [ebp - 0x1c]
+push eax
+push 0
+push 6
+
+loc_fffb1ce8: ; not directly referenced
+mov ecx, 0xf
+mov edx, ebx
+mov eax, esi
+call fcn_fffafb06 ; call 0xfffafb06
+add esp, 0x10
+
+loc_fffb1cf9: ; not directly referenced
+inc ebx
+add dword [ebp - 0x34], 0x13c3
+cmp ebx, 2
+jne loc_fffb1c59 ; jne 0xfffb1c59
+cmp dword [ebp - 0x3c], 1
+mov ebx, eax
+ja short loc_fffb1d25 ; ja 0xfffb1d25
+mov edx, 0x13
+mov eax, esi
+call fcn_fffa834b ; call 0xfffa834b
+jmp short loc_fffb1d25 ; jmp 0xfffb1d25
+
+loc_fffb1d20: ; not directly referenced
+mov ebx, 2
+
+loc_fffb1d25: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb1d2f: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+sub esp, 0x4c
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x28], 2
+mov byte [ebp - 0x27], 0x40
+mov byte [ebp - 0x26], 1
+mov byte [ebp - 0x25], 0x43
+mov byte [ebp - 0x24], 3
+mov byte [ebp - 0x23], 1
+mov byte [ebp - 0x22], 0xb
+mov byte [ebp - 0x21], 3
+mov dword [ebp - 0x50], 0
+
+loc_fffb1d64: ; not directly referenced
+imul eax, esi, 0x13c3
+cmp dword [ebx + eax + 0x3756], 2
+jne short loc_fffb1daf ; jne 0xfffb1daf
+mov edi, esi
+mov eax, ebx
+shl edi, 0xa
+add edi, 0x4004
+mov edx, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [ebp + esi*4 - 0x20], eax
+mov al, byte [ebp + esi*4 - 0x1d]
+test al, 0x20
+jne short loc_fffb1daf ; jne 0xfffb1daf
+or eax, 0x20
+mov edx, edi
+mov byte [ebp + esi*4 - 0x1d], al
+mov ecx, dword [ebp + esi*4 - 0x20]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov dword [ebp - 0x50], 1
+
+loc_fffb1daf: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffb1d64 ; jne 0xfffb1d64
+xor ecx, ecx
+mov edx, 3
+mov eax, ebx
+call fcn_fffb1bed ; call 0xfffb1bed
+test eax, eax
+jne loc_fffb1fe8 ; jne 0xfffb1fe8
+mov edx, dword [ebx + 0x36d7]
+cmp edx, 0x320
+jbe short loc_fffb1e0b ; jbe 0xfffb1e0b
+cmp edx, 0x42b
+jbe short loc_fffb1e0f ; jbe 0xfffb1e0f
+cmp edx, 0x4b0
+jbe short loc_fffb1e13 ; jbe 0xfffb1e13
+cmp edx, 0x535
+jbe short loc_fffb1e17 ; jbe 0xfffb1e17
+cmp edx, 0x640
+jbe short loc_fffb1e1b ; jbe 0xfffb1e1b
+mov al, 0x16
+cmp edx, 0x74b
+ja loc_fffb1fe8 ; ja 0xfffb1fe8
+mov al, 0x1c
+jmp short loc_fffb1e1d ; jmp 0xfffb1e1d
+
+loc_fffb1e0b: ; not directly referenced
+mov al, 0x14
+jmp short loc_fffb1e1d ; jmp 0xfffb1e1d
+
+loc_fffb1e0f: ; not directly referenced
+mov al, 0x16
+jmp short loc_fffb1e1d ; jmp 0xfffb1e1d
+
+loc_fffb1e13: ; not directly referenced
+mov al, 0x17
+jmp short loc_fffb1e1d ; jmp 0xfffb1e1d
+
+loc_fffb1e17: ; not directly referenced
+mov al, 0x18
+jmp short loc_fffb1e1d ; jmp 0xfffb1e1d
+
+loc_fffb1e1b: ; not directly referenced
+mov al, 0x1a
+
+loc_fffb1e1d: ; not directly referenced
+mov byte [ebp - 0x27], al
+lea eax, [ebx + 0x3756]
+xor edi, edi
+mov dword [ebp - 0x2c], eax
+
+loc_fffb1e2b: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+cmp dword [eax], 2
+jne loc_fffb1fc7 ; jne 0xfffb1fc7
+mov dword [ebp - 0x34], 0
+
+loc_fffb1e3e: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov ecx, dword [ebp - 0x34]
+mov al, byte [eax + 0xc4]
+mov dl, cl
+mov esi, eax
+mov eax, 1
+shl eax, cl
+mov ecx, esi
+test cl, al
+jne short loc_fffb1e69 ; jne 0xfffb1e69
+
+loc_fffb1e5b: ; not directly referenced
+inc dword [ebp - 0x34]
+cmp dword [ebp - 0x34], 4
+jne short loc_fffb1e3e ; jne 0xfffb1e3e
+jmp near loc_fffb1f5b ; jmp 0xfffb1f5b
+
+loc_fffb1e69: ; not directly referenced
+cmp byte [ebp - 0x34], 0
+mov byte [ebp - 0x48], 0
+jne short loc_fffb1e93 ; jne 0xfffb1e93
+cmp byte [ebx + 0x240a], 0
+mov byte [ebp - 0x48], dl
+je short loc_fffb1e93 ; je 0xfffb1e93
+mov eax, esi
+and eax, 2
+cmp al, 1
+sbb eax, eax
+mov dword [ebp - 0x48], eax
+and byte [ebp - 0x48], 0xfc
+add byte [ebp - 0x48], 7
+
+loc_fffb1e93: ; not directly referenced
+mov eax, edx
+and eax, 1
+mov dword [ebp - 0x38], 0
+mov dword [ebp - 0x4c], eax
+
+loc_fffb1ea2: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+cmp byte [ebx + 0x247b], 0
+movzx edx, byte [ebp + eax*2 - 0x28]
+je short loc_fffb1edf ; je 0xfffb1edf
+cmp edx, 6
+ja short loc_fffb1ecc ; ja 0xfffb1ecc
+imul eax, dword [ebp - 0x4c], 0xc
+mov ecx, dword [ebp - 0x2c]
+lea eax, [edx + eax + 0x930]
+mov al, byte [ecx + eax*2 + 0xb]
+jmp short loc_fffb1eda ; jmp 0xfffb1eda
+
+loc_fffb1ecc: ; not directly referenced
+imul eax, dword [ebp - 0x4c], 0x18
+mov ecx, dword [ebp - 0x2c]
+mov al, byte [ecx + eax + 0x1279]
+
+loc_fffb1eda: ; not directly referenced
+mov byte [ebp - 0x2d], al
+jmp short loc_fffb1f29 ; jmp 0xfffb1f29
+
+loc_fffb1edf: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+cmp eax, 3
+je short loc_fffb1eed ; je 0xfffb1eed
+mov al, byte [ebp + eax*2 - 0x27]
+jmp short loc_fffb1ef0 ; jmp 0xfffb1ef0
+
+loc_fffb1eed: ; not directly referenced
+mov al, byte [ebp - 0x48]
+
+loc_fffb1ef0: ; not directly referenced
+mov byte [ebp - 0x2d], al
+cmp edx, 6
+ja short loc_fffb1f11 ; ja 0xfffb1f11
+imul ecx, dword [ebp - 0x4c], 0xc
+movzx esi, byte [ebp - 0x2d]
+mov eax, dword [ebp - 0x2c]
+lea ecx, [edx + ecx + 0x930]
+mov word [eax + ecx*2 + 0xb], si
+jmp short loc_fffb1f29 ; jmp 0xfffb1f29
+
+loc_fffb1f11: ; not directly referenced
+cmp edx, 0xb
+jne short loc_fffb1f29 ; jne 0xfffb1f29
+imul ecx, dword [ebp - 0x4c], 0x18
+movzx esi, byte [ebp - 0x2d]
+mov eax, dword [ebp - 0x2c]
+mov word [eax + ecx + 0x1279], si
+
+loc_fffb1f29: ; not directly referenced
+push eax
+movzx eax, byte [ebp - 0x2d]
+mov ecx, dword [ebp - 0x34]
+push 0
+push eax
+mov eax, ebx
+push edx
+mov edx, edi
+call fcn_fffaa505 ; call 0xfffaa505
+add esp, 0x10
+test eax, eax
+jne loc_fffb1fe8 ; jne 0xfffb1fe8
+inc dword [ebp - 0x38]
+cmp dword [ebp - 0x38], 4
+jne loc_fffb1ea2 ; jne 0xfffb1ea2
+jmp near loc_fffb1e5b ; jmp 0xfffb1e5b
+
+loc_fffb1f5b: ; not directly referenced
+cmp byte [ebx + 0x247d], 0
+jne short loc_fffb1fa6 ; jne 0xfffb1fa6
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffb1fa6 ; jne 0xfffb1fa6
+mov eax, edi
+shl eax, 8
+add eax, 0x1c20
+mov edx, eax
+mov esi, eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+cmp byte [ebx + 0x240a], 1
+sbb edx, edx
+not edx
+add edx, 3
+and eax, 0xffffffcf
+and edx, 3
+shl edx, 4
+or eax, edx
+mov edx, esi
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb1fa6: ; not directly referenced
+cmp dword [ebp - 0x50], 0
+je short loc_fffb1fc7 ; je 0xfffb1fc7
+and byte [ebp + edi*4 - 0x1d], 0xdf
+mov edx, edi
+mov ecx, dword [ebp + edi*4 - 0x20]
+shl edx, 0xa
+mov eax, ebx
+add edx, 0x4004
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb1fc7: ; not directly referenced
+inc edi
+add dword [ebp - 0x2c], 0x13c3
+cmp edi, 2
+jne loc_fffb1e2b ; jne 0xfffb1e2b
+mov byte [ebx + 0x247d], 1
+xor eax, eax
+mov byte [ebx + 0x247b], 1
+
+loc_fffb1fe8: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb1ff0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x20], 0
+lea edi, [ebx + 0x3756]
+
+loc_fffb2009: ; not directly referenced
+cmp dword [edi], 2
+je short loc_fffb201f ; je 0xfffb201f
+
+loc_fffb200e: ; not directly referenced
+inc dword [ebp - 0x20]
+add edi, 0x13c3
+cmp dword [ebp - 0x20], 2
+jne short loc_fffb2009 ; jne 0xfffb2009
+jmp short loc_fffb2092 ; jmp 0xfffb2092
+
+loc_fffb201f: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+xor ecx, ecx
+mov eax, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov edx, eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, dword [ebp - 0x20]
+mov ecx, 0xff
+mov esi, eax
+mov eax, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+or esi, 0x100000
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x24], eax
+
+loc_fffb2055: ; not directly referenced
+mov cl, byte [ebp - 0x1c]
+mov eax, 1
+shl eax, cl
+test byte [edi + 0xc4], al
+je short loc_fffb2084 ; je 0xfffb2084
+mov eax, dword [ebp - 0x1c]
+and esi, 0xff3fffff
+mov edx, dword [ebp - 0x24]
+and eax, 3
+shl eax, 0x16
+or esi, eax
+mov eax, ebx
+mov ecx, esi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffb2084: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 4
+jne short loc_fffb2055 ; jne 0xfffb2055
+jmp near loc_fffb200e ; jmp 0xfffb200e
+
+loc_fffb2092: ; not directly referenced
+cmp dword [ebx + 0x3756], 2
+jne short loc_fffb20ae ; jne 0xfffb20ae
+movzx ecx, byte [ebx + 0x381a]
+mov edx, 0x4192
+mov eax, ebx
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffb20ae: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffb20ca ; jne 0xfffb20ca
+movzx ecx, byte [ebx + 0x4bdd]
+mov edx, 0x4592
+mov eax, ebx
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffb20ca: ; not directly referenced
+mov eax, ebx
+mov ecx, 1
+mov edx, 3
+call fcn_fffb1bed ; call 0xfffb1bed
+add esp, 0x1c
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb20e5: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0xdc
+mov edi, dword [ebp + 0x20]
+mov byte [ebp - 0x51], cl
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x5c], ecx
+mov cl, byte [ebp + 0x14]
+mov dword [ebp - 0x4c], eax
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x50], edi
+mov edi, dword [ebp + 0x24]
+mov byte [ebp - 0xad], dl
+mov esi, dword [ebp + 0xc]
+mov byte [ebp - 0xe8], cl
+mov cl, byte [ebp + 0x1c]
+mov dword [ebp - 0x60], eax
+movzx eax, bx
+dec eax
+mov dword [ebp - 0x58], edi
+inc esi
+mov byte [ebp - 0x98], cl
+mov word [ebp - 0xb0], bx
+mov dword [ebp - 0x45], 0
+mov dword [ebp - 0x41], 0
+mov dword [ebp - 0x3d], 0
+call fcn_fffaec34 ; call 0xfffaec34
+mov ecx, esi
+sub ecx, eax
+test cl, cl
+mov esi, ecx
+mov ecx, dword [ebp - 0x5c]
+setle dl
+mov byte [ebp - 0x61], al
+cmp cl, 4
+sete al
+or dl, al
+jne short loc_fffb2178 ; jne 0xfffb2178
+cmp cl, 5
+mov al, 1
+cmove esi, eax
+jmp short loc_fffb217d ; jmp 0xfffb217d
+
+loc_fffb2178: ; not directly referenced
+mov esi, 1
+
+loc_fffb217d: ; not directly referenced
+lea ecx, [esi - 1]
+movzx esi, byte [ebp - 0x61]
+lea eax, [ebx - 0x80]
+mov dword [ebp - 0x68], 1
+shl dword [ebp - 0x68], cl
+cmp bx, 0x7f
+cmova eax, esi
+add ebx, ebx
+mov byte [ebp - 0x88], al
+lea eax, [ebx - 0x80]
+mov byte [ebp - 0x78], al
+cmp bx, 0x7f
+jbe short loc_fffb21ba ; jbe 0xfffb21ba
+movzx ebx, bx
+lea eax, [ebx - 1]
+call fcn_fffaec34 ; call 0xfffaec34
+mov byte [ebp - 0x78], al
+
+loc_fffb21ba: ; not directly referenced
+mov eax, dword [ebp + 0x18]
+mov bx, word [eax]
+movzx eax, bx
+dec eax
+call fcn_fffaec34 ; call 0xfffaec34
+cmp bx, 0x1f
+jbe short loc_fffb21da ; jbe 0xfffb21da
+mov esi, dword [ebp + 0x18]
+movzx eax, al
+mov word [esi], ax
+jmp short loc_fffb21e3 ; jmp 0xfffb21e3
+
+loc_fffb21da: ; not directly referenced
+mov eax, dword [ebp + 0x18]
+add ebx, 0x20
+mov word [eax], bx
+
+loc_fffb21e3: ; not directly referenced
+cmp byte [ebp - 0x50], 0
+je short loc_fffb2209 ; je 0xfffb2209
+mov eax, dword [ebp - 0x4c]
+mov edx, 0x4cb0
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, eax
+mov eax, dword [ebp - 0x58]
+and di, 0xfff
+add edi, 0x10
+cmp ax, di
+cmovae edi, eax
+
+loc_fffb2209: ; not directly referenced
+cmp di, 0xff
+mov eax, 0xff
+cmova edi, eax
+mov al, byte [ebp - 0x88]
+mov word [ebp - 0xa8], di
+mov dword [ebp - 0x50], 0x4960
+mov dword [ebp - 0x5c], 0x4040
+shr al, 7
+mov byte [ebp - 0xc8], al
+mov al, byte [ebp - 0x78]
+mov dword [ebp - 0x58], 0
+shr al, 7
+mov byte [ebp - 0xd8], al
+mov eax, dword [ebp - 0x98]
+and eax, 1
+mov dword [ebp - 0xb4], eax
+
+loc_fffb225c: ; not directly referenced
+movzx eax, byte [ebp - 0xad]
+mov esi, dword [ebp - 0x58]
+mov dword [ebp - 0xac], eax
+bt eax, esi
+jb short loc_fffb2282 ; jb 0xfffb2282
+mov eax, dword [ebp - 0x50]
+xor ecx, ecx
+lea edx, [eax + eax - 0x4a18]
+jmp near loc_fffb268f ; jmp 0xfffb268f
+
+loc_fffb2282: ; not directly referenced
+mov eax, dword [ebp - 0x5c]
+movzx ecx, byte [ebp - 0xb4]
+lea edx, [eax + 0x158]
+mov eax, dword [ebp - 0x4c]
+call fcn_fffae566 ; call 0xfffae566
+cmp byte [ebp - 0x98], 0
+je short loc_fffb22bb ; je 0xfffb22bb
+mov edx, dword [ebp - 0x58]
+sub esp, 0xc
+mov ecx, 7
+mov eax, dword [ebp - 0x4c]
+push 8
+call fcn_fffaa3c8 ; call 0xfffaa3c8
+add esp, 0x10
+
+loc_fffb22bb: ; not directly referenced
+cmp byte [ebp - 0x51], 5
+ja short loc_fffb22d3 ; ja 0xfffb22d3
+movzx eax, byte [ebp - 0x51]
+mov dl, byte [eax + ref_fffd3ed8] ; mov dl, byte [eax - 0x2c128]
+mov al, byte [eax + ref_fffd3ed0] ; mov al, byte [eax - 0x2c130]
+jmp short loc_fffb22d7 ; jmp 0xfffb22d7
+
+loc_fffb22d3: ; not directly referenced
+xor eax, eax
+xor edx, edx
+
+loc_fffb22d7: ; not directly referenced
+and edx, 7
+and eax, 7
+mov bl, byte [ebp - 0x51]
+shl edx, 0x18
+xor edi, edi
+mov ecx, dword [ebp - 0x50]
+shl eax, 0x1c
+or eax, edx
+and ah, 0xcf
+mov edx, eax
+mov eax, dword [ebp - 0x4c]
+or dh, 0x18
+cmp byte [eax + 0x247a], 0
+setne al
+movzx eax, al
+shl eax, 7
+or eax, edx
+mov edx, eax
+or edx, 0x20
+cmp bl, 6
+mov ebx, dword [ebp - 0x4c]
+cmove eax, edx
+mov esi, eax
+mov eax, edi
+and eax, 0xfffffc00
+or eax, 2
+mov edi, eax
+cmp dword [ebp - 0x60], 1
+lea eax, [ecx + 0x20]
+lea edx, [ecx + 0x40]
+mov ecx, dword [ebp - 0x68]
+cmovne edx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, ebx
+push ecx
+push ecx
+mov ecx, dword [ebp - 0x50]
+push edi
+push esi
+lea edx, [ecx + ecx - 0x4a18]
+call fcn_fffae7cf ; call 0xfffae7cf
+mov ecx, dword [ebp - 0x50]
+mov eax, ebx
+lea edx, [ecx - 0xa8]
+mov ecx, 4
+call fcn_fffae566 ; call 0xfffae566
+mov edx, dword [ebp - 0xc8]
+add esp, 0x10
+mov eax, dword [ebp - 0x88]
+mov esi, dword [ebp - 0x78]
+mov ecx, dword [ebp - 0xd8]
+and edx, 1
+mov bl, byte [ebp - 0x51]
+shl edx, 7
+and eax, 0x7f
+or eax, edx
+mov edx, dword [ebp - 0xa8]
+and esi, 0x7f
+or eax, 0x8000000
+and ecx, 1
+shl ecx, 7
+and edx, 0x3fff
+shl edx, 8
+or eax, edx
+mov edx, eax
+and edx, 0x83fff00
+or edx, esi
+or edx, ecx
+mov ecx, eax
+or ecx, 0x4000000
+and ecx, 0xf7ffffff
+cmp bl, 4
+je short loc_fffb23ed ; je 0xfffb23ed
+cmp bl, 5
+je short loc_fffb2433 ; je 0xfffb2433
+cmp bl, 3
+jne loc_fffb2475 ; jne 0xfffb2475
+mov dword [ebp - 0x38], edx
+mov byte [ebp - 0x39], 1
+or byte [ebp - 0x36], 0xc0
+and byte [ebp - 0x35], 0xfc
+jmp near loc_fffb24af ; jmp 0xfffb24af
+
+loc_fffb23ed: ; not directly referenced
+mov dword [ebp - 0x38], eax
+mov cl, byte [ebp - 0x36]
+and byte [ebp - 0x35], 0xfc
+and ecx, 0x3f
+or ecx, 0x40
+mov byte [ebp - 0x36], cl
+mov ecx, 1
+
+loc_fffb2405: ; not directly referenced
+mov dword [ebp + ecx*4 - 0x38], edx
+mov bl, byte [ebp + ecx*4 - 0x36]
+and byte [ebp + ecx*4 - 0x35], 0xfc
+and ebx, 0x3f
+or ebx, 0xffffff80
+mov byte [ebp + ecx*4 - 0x36], bl
+inc ecx
+cmp ecx, 7
+jne short loc_fffb2405 ; jne 0xfffb2405
+mov dword [ebp - 0x1c], eax
+mov byte [ebp - 0x39], 0xff
+and byte [ebp - 0x1a], 0x3f
+and byte [ebp - 0x19], 0xfc
+jmp short loc_fffb24af ; jmp 0xfffb24af
+
+loc_fffb2433: ; not directly referenced
+mov dword [ebp - 0x38], eax
+mov cl, byte [ebp - 0x36]
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x30], eax
+mov dword [ebp - 0x2c], edx
+and ecx, 0x3f
+or ecx, 0x40
+mov byte [ebp - 0x36], cl
+mov cl, byte [ebp - 0x32]
+and byte [ebp - 0x35], 0xfc
+and byte [ebp - 0x31], 0xfc
+and byte [ebp - 0x2e], 0x3f
+and ecx, 0x3f
+or ecx, 0xffffff80
+mov byte [ebp - 0x32], cl
+and byte [ebp - 0x2d], 0xfc
+or byte [ebp - 0x2a], 0xc0
+and byte [ebp - 0x29], 0xfc
+mov byte [ebp - 0x39], 0xf
+jmp short loc_fffb24af ; jmp 0xfffb24af
+
+loc_fffb2475: ; not directly referenced
+mov esi, dword [ebp + 0x18]
+cmp byte [esi + 0xa], 2
+jne short loc_fffb248d ; jne 0xfffb248d
+cmp word [ebp - 0xb0], 8
+jne short loc_fffb248d ; jne 0xfffb248d
+mov dword [ebp - 0x38], ecx
+jmp short loc_fffb2490 ; jmp 0xfffb2490
+
+loc_fffb248d: ; not directly referenced
+mov dword [ebp - 0x38], eax
+
+loc_fffb2490: ; not directly referenced
+mov dl, byte [ebp - 0x36]
+mov dword [ebp - 0x34], eax
+and byte [ebp - 0x35], 0xfc
+and byte [ebp - 0x32], 0x3f
+and byte [ebp - 0x31], 0xfc
+and edx, 0x3f
+or edx, 0x40
+mov byte [ebp - 0x36], dl
+mov byte [ebp - 0x39], 3
+
+loc_fffb24af: ; not directly referenced
+imul eax, dword [ebp - 0x58], 0x28
+xor ebx, ebx
+lea edi, [ebp - 0x39]
+lea esi, [eax + 0x4808]
+sub edi, eax
+
+loc_fffb24c0: ; not directly referenced
+movzx eax, byte [ebp - 0x39]
+bt eax, ebx
+jb loc_fffb2593 ; jb 0xfffb2593
+
+loc_fffb24cd: ; not directly referenced
+lea eax, [ebp - 0x3d]
+mov esi, dword [ebp - 0x4c]
+push edx
+mov ecx, dword [ebp + 0x10]
+push eax
+mov edx, dword [ebp - 0x58]
+lea eax, [ebp - 0x41]
+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, esi
+call fcn_fffaa5b6 ; call 0xfffaa5b6
+mov eax, dword [ebp + 0x18]
+add esp, 0x20
+mov edi, dword [ebp + 0x18]
+movzx ecx, byte [eax + 6]
+movzx eax, byte [eax + 2]
+mov dx, word [edi]
+and ecx, 0x3f
+and eax, 0x3f
+shl eax, 8
+mov ebx, edx
+shl ecx, 0x10
+and ebx, 0x1f
+or ecx, eax
+mov eax, dword [ebp - 0x5c]
+shr dx, 5
+or ecx, ebx
+and edx, 1
+shl edx, 5
+or ecx, edx
+lea edx, [eax + 0x1c0]
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 0x18]
+mov dl, byte [eax + 0xa]
+cmp dl, 2
+sete al
+cmp dl, 4
+sete dl
+or eax, edx
+cmp al, 1
+mov al, byte [ebp - 0x51]
+sbb ecx, ecx
+and ecx, 2
+movzx ecx, cl
+sub eax, 4
+or ecx, 0x8090
+cmp al, 1
+ja short loc_fffb25b6 ; ja 0xfffb25b6
+mov al, byte [ebp - 0x61]
+and ecx, 0xf8c0ffff
+inc eax
+and eax, 7
+shl eax, 0x18
+or ecx, eax
+or ecx, 0x10000
+jmp short loc_fffb25b6 ; jmp 0xfffb25b6
+
+loc_fffb2593: ; not directly referenced
+mov ecx, dword [edi + esi - 0x4807]
+mov edx, esi
+inc ebx
+mov eax, dword [ebp - 0x4c]
+add esi, 4
+call fcn_fffae58c ; call 0xfffae58c
+cmp ebx, 8
+jne loc_fffb24c0 ; jne 0xfffb24c0
+jmp near loc_fffb24cd ; jmp 0xfffb24cd
+
+loc_fffb25b6: ; not directly referenced
+mov edi, dword [ebp - 0x4c]
+mov esi, dword [ebp - 0x5c]
+mov eax, edi
+mov edx, esi
+call fcn_fffae58c ; call 0xfffae58c
+xor ecx, ecx
+mov eax, edi
+lea edx, [esi + 0x44]
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0xe8]
+mov eax, edi
+lea edx, [esi + 0x58]
+and ecx, 3
+shl ecx, 0xc
+or ecx, 0xffff0001
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [esi + 0x98]
+push eax
+push eax
+mov eax, edi
+push 0
+push 0
+call fcn_fffae7cf ; call 0xfffae7cf
+xor ecx, ecx
+mov eax, edi
+lea edx, [esi + 0x5c]
+call fcn_fffae566 ; call 0xfffae566
+add esp, 0x10
+cmp byte [edi + 0x247a], 0
+je short loc_fffb2697 ; je 0xfffb2697
+mov eax, dword [ebp - 0x50]
+mov ecx, 0xfc
+lea edx, [eax - 8]
+mov eax, dword [ebp - 0x4c]
+call fcn_fffae566 ; call 0xfffae566
+cmp dword [ebp - 0x60], 1
+jne short loc_fffb2644 ; jne 0xfffb2644
+mov eax, dword [ebp - 0x50]
+mov ecx, 0xff
+lea edx, [eax - 7]
+mov eax, dword [ebp - 0x4c]
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffb2644: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+movzx ebx, word [eax + 0x2489]
+test bx, bx
+je short loc_fffb2667 ; je 0xfffb2667
+mov eax, 0x9c40
+cdq
+idiv ebx
+mov ecx, eax
+mov eax, 0x30d40
+cdq
+idiv ebx
+jmp short loc_fffb2671 ; jmp 0xfffb2671
+
+loc_fffb2667: ; not directly referenced
+mov eax, 0xff
+mov ecx, 0xff
+
+loc_fffb2671: ; not directly referenced
+mov ebx, ecx
+movzx ecx, cl
+mov edx, dword [ebp - 0x50]
+shl ebx, 8
+and ebx, 0xff00
+shl ecx, 0x10
+shl eax, 0x18
+or ecx, ebx
+or ecx, eax
+or ecx, 2
+
+loc_fffb268f: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb2697: ; not directly referenced
+inc dword [ebp - 0x58]
+add dword [ebp - 0x5c], 0x400
+add dword [ebp - 0x50], 4
+cmp dword [ebp - 0x58], 2
+jne loc_fffb225c ; jne 0xfffb225c
+mov edx, dword [ebp - 0xac]
+mov ecx, 2
+mov eax, dword [ebp - 0x4c]
+call fcn_fffb1bed ; call 0xfffb1bed
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb26ca: ; not directly referenced
+push ebp
+movzx edx, dl
+mov ebp, esp
+push edi
+push esi
+mov esi, ecx
+push ebx
+mov ecx, 0xb
+sub esp, 0x4c
+mov ebx, eax
+lea edi, [ebp - 0x44]
+xor eax, eax
+rep stosd ; rep stosd dword es:[edi], eax
+lea eax, [ebp - 0x4f]
+push 0
+push 0
+push 0
+push eax
+movzx eax, byte [ebp + 8]
+mov word [ebp - 0x36], 0x3ff
+mov dword [ebp - 0x30], 0x20
+push eax
+lea eax, [ebp - 0x44]
+push eax
+mov eax, ebx
+push esi
+push 0x80
+mov word [ebp - 0x20], 1
+mov word [ebp - 0x1a], 1
+mov word [ebp - 0x4f], 4
+mov dword [ebp - 0x4d], 0
+mov dword [ebp - 0x49], 7
+mov byte [ebp - 0x45], 0
+call fcn_fffb20e5 ; call 0xfffb20e5
+lea edx, [esi - 7]
+add esp, 0x20
+mov al, 1
+test dl, dl
+cmovg eax, edx
+mov byte [ebx + 0x248c], al
+mov byte [ebx + 0x248b], 0
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb2759: ; not directly referenced
+push ebp
+movzx edx, dl
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd3e9c ; mov esi, 0xfffd3e9c
+push ebx
+mov ebx, eax
+sub esp, 0x5c
+lea edi, [ebp - 0x44]
+mov dword [ebp - 0x5c], ecx
+mov ecx, 0xb
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea eax, [ebp - 0x4f]
+mov esi, dword [ebp - 0x5c]
+push 0
+push 0
+push 1
+push eax
+movzx eax, byte [ebp + 8]
+mov word [ebp - 0x4f], 4
+mov dword [ebp - 0x4d], 0
+push eax
+lea eax, [ebp - 0x44]
+push eax
+mov eax, ebx
+push esi
+push 8
+mov dword [ebp - 0x49], 9
+mov byte [ebp - 0x45], 2
+call fcn_fffb20e5 ; call 0xfffb20e5
+mov edx, esi
+add esp, 0x20
+sub edx, 4
+mov al, 1
+test dl, dl
+cmovg eax, edx
+mov byte [ebx + 0x248c], al
+mov byte [ebx + 0x248b], 2
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb27d5: ; not directly referenced
+push ebp
+mov ecx, 0xb
+mov ebp, esp
+push edi
+push ebx
+mov ebx, eax
+lea edi, [ebp - 0x8c]
+xor eax, eax
+sub esp, 0x90
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0x60]
+mov word [ebp - 0x82], 0xf
+mov word [ebp - 0x66], 1
+mov word [ebp - 0x97], 1
+mov dword [ebp - 0x95], 0
+mov dword [ebp - 0x91], 3
+mov cl, 0xb
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0x34]
+mov word [ebp - 0x52], 0x3ff
+mov dword [ebp - 0x4c], 0x20
+mov word [ebp - 0x3c], 1
+mov word [ebp - 0x36], 1
+mov byte [ebp - 0x8d], 0
+mov cl, 0xb
+rep stosd ; rep stosd dword es:[edi], eax
+mov eax, dword [ebx + 0x2480]
+mov word [ebp - 0x32], 4
+mov word [ebp - 0x2a], 4
+cmp eax, 3
+je short loc_fffb2871 ; je 0xfffb2871
+dec eax
+lea ecx, [ebp - 0x8c]
+lea eax, [ebp - 0x60]
+cmovne eax, ecx
+jmp short loc_fffb2874 ; jmp 0xfffb2874
+
+loc_fffb2871: ; not directly referenced
+lea eax, [ebp - 0x34]
+
+loc_fffb2874: ; not directly referenced
+push 0
+movzx edx, dl
+push 0
+push 0
+lea ecx, [ebp - 0x97]
+push ecx
+mov ecx, 2
+push 0
+push eax
+mov eax, ebx
+push 0xa
+push 0x80
+call fcn_fffb20e5 ; call 0xfffb20e5
+add esp, 0x20
+mov byte [ebx + 0x248c], 1
+mov byte [ebx + 0x248b], 0
+lea esp, [ebp - 8]
+pop ebx
+pop edi
+pop ebp
+ret
+
+fcn_fffb28b2: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+mov ecx, 0xb
+push edi
+push esi
+push ebx
+lea edi, [ebp - 0x1f4]
+sub esp, 0x270
+rep stosd ; rep stosd dword es:[edi], eax
+mov eax, dword [ebp + 8]
+lea edx, [ebp - 0x217]
+mov word [ebp - 0x1e6], 0x3ff
+mov word [ebp - 0x1ca], 1
+mov word [ebp - 0x1ff], 0x20
+mov esi, dword [eax + 0x5edc]
+mov al, byte [eax + 0x248e]
+mov dword [ebp - 0x1fd], 0
+mov dword [ebp - 0x1f9], 9
+mov byte [ebp - 0x1f5], 0
+mov byte [ebp - 0x22c], al
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248d]
+mov byte [ebp - 0x230], al
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x18a7]
+mov dword [ebp - 0x234], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x188b]
+mov dword [ebp - 0x260], eax
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 2
+sete al
+movzx eax, al
+mov dword [ebp - 0x250], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2443]
+push 1
+push 7
+push edx
+call dword [eax + 0x5c] ; ucall
+mov eax, dword [ebp + 8]
+add esp, 0x10
+mov eax, dword [eax + 0x1887]
+cmp eax, 0x40650
+je short loc_fffb29de ; je 0xfffb29de
+ja short loc_fffb298e ; ja 0xfffb298e
+cmp eax, 0x306d0
+jmp short loc_fffb299a ; jmp 0xfffb299a
+
+loc_fffb298e: ; not directly referenced
+cmp eax, 0x40660
+je short loc_fffb29a8 ; je 0xfffb29a8
+cmp eax, 0x40670
+
+loc_fffb299a: ; not directly referenced
+jne short loc_fffb29c3 ; jne 0xfffb29c3
+mov dword [ebp - 0x248], 0x7f
+jmp short loc_fffb29e8 ; jmp 0xfffb29e8
+
+loc_fffb29a8: ; not directly referenced
+mov dword [ebp - 0x248], 0x3f
+mov ebx, 0x19
+mov dword [ebp - 0x240], 0x14
+jmp short loc_fffb29f7 ; jmp 0xfffb29f7
+
+loc_fffb29c3: ; not directly referenced
+mov dword [ebp - 0x248], 0x3f
+mov ebx, 0x15
+mov dword [ebp - 0x240], 0x10
+jmp short loc_fffb29f7 ; jmp 0xfffb29f7
+
+loc_fffb29de: ; not directly referenced
+mov dword [ebp - 0x248], 0x3f
+
+loc_fffb29e8: ; not directly referenced
+mov dword [ebp - 0x240], 0x12
+mov ebx, 0x17
+
+loc_fffb29f7: ; not directly referenced
+push 8
+movzx edx, byte [ebp - 0x22c]
+mov ecx, 2
+push 0
+push 0
+lea eax, [ebp - 0x1ff]
+push eax
+push 0
+lea eax, [ebp - 0x1f4]
+push eax
+mov eax, dword [ebp + 8]
+push 7
+push 2
+shl ebx, 0x10
+call fcn_fffb20e5 ; call 0xfffb20e5
+lea eax, [esi + 0x1c]
+add esp, 0x20
+mov dword [ebp - 0x264], eax
+xor esi, esi
+mov dword [ebp - 0x22c], eax
+mov dword [ebp - 0x238], ebx
+
+loc_fffb2a42: ; not directly referenced
+imul eax, esi, 0x13c3
+mov edi, dword [ebp + 8]
+xor ebx, ebx
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffb2aeb ; jne 0xfffb2aeb
+
+loc_fffb2a5b: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae short loc_fffb2a8f ; jae 0xfffb2a8f
+mov eax, dword [ebp + 8]
+movzx edi, bl
+mov edx, esi
+mov ecx, edi
+inc ebx
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0x22c]
+mov ecx, dword [ecx + edi*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+or ecx, 0x40
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb2a5b ; jmp 0xfffb2a5b
+
+loc_fffb2a8f: ; not directly referenced
+mov ecx, 0xff
+mov edx, esi
+call fcn_fffa7288 ; call 0xfffa7288
+mov edi, eax
+mov eax, dword [ebp - 0x22c]
+mov ebx, dword [eax]
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+jne short loc_fffb2ac0 ; jne 0xfffb2ac0
+and ebx, 0xefffffff
+mov edx, edi
+mov ecx, ebx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffb2ac0: ; not directly referenced
+mov eax, dword [ebp + 8]
+or ebx, 0x1000004
+mov edx, edi
+mov ecx, ebx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov ecx, dword [ebp - 0x238]
+mov edx, esi
+mov eax, dword [ebp + 8]
+shl edx, 0xa
+add edx, 0x4028
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb2aeb: ; not directly referenced
+inc esi
+add dword [ebp - 0x22c], 0xcc
+cmp esi, 2
+jne loc_fffb2a42 ; jne 0xfffb2a42
+imul eax, dword [ebp - 0x234], 0x2e
+mov dword [ebp - 0x22c], 0
+mov dword [ebp - 0x26c], eax
+movzx eax, byte [ebp - 0x230]
+mov dword [ebp - 0x274], eax
+mov eax, dword [ebp + 8]
+add eax, 0x3756
+mov dword [ebp - 0x234], eax
+
+loc_fffb2b31: ; not directly referenced
+mov edi, dword [ebp - 0x22c]
+mov esi, dword [ebp - 0x274]
+mov eax, edi
+bt esi, edi
+jb short loc_fffb2b78 ; jb 0xfffb2b78
+
+loc_fffb2b44: ; not directly referenced
+inc dword [ebp - 0x22c]
+cmp dword [ebp - 0x22c], 4
+jne short loc_fffb2b31 ; jne 0xfffb2b31
+mov eax, dword [ebp + 8]
+mov edi, dword [ebp - 0x264]
+mov dword [ebp - 0x22c], 0
+add eax, 0x3756
+mov dword [ebp - 0x234], eax
+mov esi, eax
+jmp near loc_fffb359d ; jmp 0xfffb359d
+
+loc_fffb2b78: ; not directly referenced
+mov esi, dword [ebp - 0x22c]
+and eax, 1
+mov dword [ebp - 0x23c], 1
+mov dword [ebp - 0x238], 0
+mov byte [ebp - 0x254], 0
+mov ecx, esi
+shl dword [ebp - 0x23c], cl
+mov bl, byte [ebp - 0x23c]
+mov dword [ebp - 0x24c], eax
+mov byte [ebp - 0x230], bl
+mov ebx, esi
+shr bl, 1
+movzx esi, bl
+mov byte [ebp - 0x265], bl
+mov ebx, dword [ebp - 0x234]
+mov dword [ebp - 0x244], esi
+
+loc_fffb2bcf: ; not directly referenced
+mov ecx, dword [ebp - 0x23c]
+mov edx, dword [ebp - 0x238]
+mov eax, dword [ebp + 8]
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x254], al
+mov al, byte [ebp - 0x230]
+test byte [ebx + 0xc4], al
+je loc_fffb2d28 ; je 0xfffb2d28
+mov eax, dword [ebp - 0x22c]
+mov edx, 0
+mov byte [ebx + eax + 0x1011], 0
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x36e7]
+cmp al, 1
+cmovbe eax, edx
+cmp dword [ebp - 0x260], 1
+jne short loc_fffb2c47 ; jne 0xfffb2c47
+mov esi, dword [ebp + 8]
+cmp dword [esi + 0x36e3], 1
+jne short loc_fffb2c3d ; jne 0xfffb2c3d
+imul eax, eax, 0x64
+mov ecx, 0x85
+cdq
+idiv ecx
+
+loc_fffb2c3d: ; not directly referenced
+cmp al, 2
+lea edx, [eax - 2]
+mov al, 0
+cmovae eax, edx
+
+loc_fffb2c47: ; not directly referenced
+mov esi, dword [ebp + 8]
+cmp dword [esi + 0x2480], 3
+mov esi, dword [ebp - 0x26c]
+movzx esi, word [ebx + esi + 0xa]
+jne short loc_fffb2c93 ; jne 0xfffb2c93
+mov edi, dword [ebp + 8]
+movzx edx, al
+add esi, esi
+mov ecx, 4
+movzx edi, word [edi + 0x2489]
+add edi, edi
+cmp al, 5
+cmovae ecx, edx
+xor edx, edx
+lea eax, [edi + 0x157b]
+div edi
+mov edi, dword [ebp - 0x240]
+lea edx, [edi + eax + 1]
+add esi, edx
+add esi, ecx
+jmp short loc_fffb2cae ; jmp 0xfffb2cae
+
+loc_fffb2c93: ; not directly referenced
+add esi, esi
+movzx ecx, al
+cmp al, 5
+mov eax, dword [ebp - 0x240]
+mov edx, 4
+cmovae edx, ecx
+lea esi, [eax + esi + 5]
+add esi, edx
+
+loc_fffb2cae: ; not directly referenced
+mov eax, dword [ebp - 0x248]
+mov edi, dword [ebp - 0x22c]
+cmp esi, eax
+cmova esi, eax
+mov eax, dword [ebp - 0x238]
+mov ecx, esi
+shl eax, 0xa
+lea edx, [edi + eax + 0x4024]
+mov eax, dword [ebp + 8]
+call fcn_fffae566 ; call 0xfffae566
+mov eax, esi
+cmp dword [ebp - 0x250], 0
+mov byte [ebx + edi + 0x1015], al
+je short loc_fffb2d28 ; je 0xfffb2d28
+imul edx, dword [ebp - 0x24c], 0x18
+imul eax, dword [ebp - 0x244], 0x128
+mov ecx, dword [ebp - 0x23c]
+add eax, edx
+mov ax, word [ebx + eax + 0x1273]
+push edx
+push edx
+mov edx, dword [ebp - 0x238]
+or ah, 4
+movzx eax, ax
+push eax
+mov eax, dword [ebp + 8]
+push 4
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffb2d28: ; not directly referenced
+inc dword [ebp - 0x238]
+add ebx, 0x13c3
+cmp dword [ebp - 0x238], 2
+jne loc_fffb2bcf ; jne 0xfffb2bcf
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x36d7]
+cmp eax, 0x320
+je short loc_fffb2d8c ; je 0xfffb2d8c
+cmp eax, 0x42b
+ja short loc_fffb2da0 ; ja 0xfffb2da0
+mov eax, dword [ebp + 8]
+mov esi, 0x198
+cmp dword [eax + 0x2480], 3
+mov eax, 0x158
+cmovne eax, esi
+mov esi, 0x118
+mov word [ebp - 0x23c], ax
+mov eax, 0xd8
+cmovne eax, esi
+mov word [ebp - 0x238], ax
+jmp short loc_fffb2db2 ; jmp 0xfffb2db2
+
+loc_fffb2d8c: ; not directly referenced
+mov word [ebp - 0x23c], 0x158
+mov word [ebp - 0x238], 0xd8
+jmp short loc_fffb2db2 ; jmp 0xfffb2db2
+
+loc_fffb2da0: ; not directly referenced
+mov word [ebp - 0x23c], 0x198
+mov word [ebp - 0x238], 0x118
+
+loc_fffb2db2: ; not directly referenced
+mov eax, dword [ebp - 0x238]
+mov word [ebp - 0x244], ax
+movzx eax, word [ebp - 0x23c]
+sub eax, 8
+mov dword [ebp - 0x270], eax
+
+loc_fffb2dcf: ; not directly referenced
+movzx edi, word [ebp - 0x244]
+xor ebx, ebx
+
+loc_fffb2dd8: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov esi, dword [ebp + 8]
+mov cl, byte [ebp - 0x230]
+test byte [esi + eax + 0x381a], cl
+je short loc_fffb2df4 ; je 0xfffb2df4
+xor esi, esi
+jmp short loc_fffb2e39 ; jmp 0xfffb2e39
+
+loc_fffb2df4: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb2dd8 ; jne 0xfffb2dd8
+movzx eax, byte [ebp - 0x254]
+xor ecx, ecx
+xor esi, esi
+push edi
+push 0
+push 1
+mov edx, eax
+mov dword [ebp - 0x258], eax
+lea eax, [ebp - 0x217]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb0f94 ; call 0xfffb0f94
+movzx ebx, word [ebp - 0x244]
+add esp, 0x10
+lea eax, [ebx - 8]
+mov dword [ebp - 0x25c], eax
+jmp near loc_fffb2ef0 ; jmp 0xfffb2ef0
+
+loc_fffb2e39: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov eax, esi
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffb2df4 ; jae 0xfffb2df4
+push eax
+mov eax, esi
+mov ecx, dword [ebp - 0x22c]
+push edi
+movzx eax, al
+push 0
+mov edx, ebx
+push eax
+mov eax, dword [ebp + 8]
+inc esi
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+jmp short loc_fffb2e39 ; jmp 0xfffb2e39
+
+loc_fffb2e66: ; not directly referenced
+movzx edi, byte [ebp - 0x24c]
+mov edx, esi
+mov eax, dword [ebp + 8]
+mov ecx, edi
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x238]
+cmp eax, 0x1f
+seta al
+movzx eax, al
+cmp word [ebp - 0x244], cx
+jne loc_fffb2f5a ; jne 0xfffb2f5a
+test eax, eax
+je short loc_fffb2f11 ; je 0xfffb2f11
+lea eax, [esi + esi*8]
+add edi, eax
+mov dword [ebp + edi*4 - 0x180], ebx
+mov dword [ebp + edi*4 - 0x1c8], ebx
+mov dword [ebp + edi*4 - 0xf0], ebx
+mov dword [ebp + edi*4 - 0x138], ebx
+mov dword [ebp + edi*4 - 0x60], ebx
+mov dword [ebp + edi*4 - 0xa8], ebx
+
+loc_fffb2ecf: ; not directly referenced
+inc byte [ebp - 0x24c]
+
+loc_fffb2ed5: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x24c]
+cmp al, byte [edi + 0x2488]
+jb short loc_fffb2e66 ; jb 0xfffb2e66
+
+loc_fffb2ee6: ; not directly referenced
+inc esi
+cmp esi, 2
+je loc_fffb3021 ; je 0xfffb3021
+
+loc_fffb2ef0: ; not directly referenced
+imul eax, esi, 0x13c3
+mov edi, dword [ebp + 8]
+mov cl, byte [ebp - 0x230]
+test byte [edi + eax + 0x381a], cl
+je short loc_fffb2ee6 ; je 0xfffb2ee6
+mov byte [ebp - 0x24c], 0
+jmp short loc_fffb2ed5 ; jmp 0xfffb2ed5
+
+loc_fffb2f11: ; not directly referenced
+lea eax, [esi + esi*8]
+add edi, eax
+mov dword [ebp + edi*4 - 0x180], 0xfffffff8
+mov dword [ebp + edi*4 - 0x1c8], 0xfffffff8
+mov dword [ebp + edi*4 - 0xf0], 0xfffffff8
+mov dword [ebp + edi*4 - 0x138], 0xfffffff8
+mov dword [ebp + edi*4 - 0x60], 0xfffffff8
+mov dword [ebp + edi*4 - 0xa8], 0xfffffff8
+jmp near loc_fffb2ecf ; jmp 0xfffb2ecf
+
+loc_fffb2f5a: ; not directly referenced
+test eax, eax
+je loc_fffb2ecf ; je 0xfffb2ecf
+lea eax, [esi + esi*8]
+mov ecx, dword [ebp - 0x25c]
+add eax, edi
+cmp dword [ebp + eax*4 - 0x180], ecx
+jne short loc_fffb2f7d ; jne 0xfffb2f7d
+mov dword [ebp + eax*4 - 0x180], ebx
+
+loc_fffb2f7d: ; not directly referenced
+lea eax, [esi + esi*8]
+mov ecx, dword [ebp - 0x25c]
+add eax, edi
+cmp dword [ebp + eax*4 - 0xf0], ecx
+mov dword [ebp + eax*4 - 0xf0], ebx
+je short loc_fffb2f9f ; je 0xfffb2f9f
+mov dword [ebp + eax*4 - 0x138], ebx
+
+loc_fffb2f9f: ; not directly referenced
+cmp ebx, dword [ebp - 0x270]
+jl short loc_fffb2fee ; jl 0xfffb2fee
+lea eax, [esi + esi*8]
+movzx edx, word [ebp - 0x238]
+add eax, edi
+mov ecx, dword [ebp + eax*4 - 0x1c8]
+cmp ecx, edx
+jne short loc_fffb2fee ; jne 0xfffb2fee
+mov edx, dword [ebp + eax*4 - 0x180]
+cmp edx, ebx
+je short loc_fffb2fee ; je 0xfffb2fee
+mov edi, ebx
+sub edi, dword [ebp + eax*4 - 0x138]
+mov dword [ebp + eax*4 - 0x60], edx
+sub ecx, edi
+sub ecx, 8
+mov dword [ebp + eax*4 - 0x1c8], ecx
+mov dword [ebp + eax*4 - 0xa8], ecx
+jmp near loc_fffb2ecf ; jmp 0xfffb2ecf
+
+loc_fffb2fee: ; not directly referenced
+lea eax, [esi + esi*8]
+mov ecx, ebx
+add edi, eax
+mov edx, dword [ebp + edi*4 - 0x138]
+mov eax, dword [ebp + edi*4 - 0x60]
+sub eax, dword [ebp + edi*4 - 0xa8]
+sub ecx, edx
+cmp ecx, eax
+jle loc_fffb2ecf ; jle 0xfffb2ecf
+mov dword [ebp + edi*4 - 0xa8], edx
+mov dword [ebp + edi*4 - 0x60], ebx
+jmp near loc_fffb2ecf ; jmp 0xfffb2ecf
+
+loc_fffb3021: ; not directly referenced
+add word [ebp - 0x244], 8
+mov eax, dword [ebp - 0x23c]
+cmp word [ebp - 0x244], ax
+jb loc_fffb2dcf ; jb 0xfffb2dcf
+movzx eax, word [ebp - 0x23c]
+xor edi, edi
+mov ebx, dword [ebp - 0x234]
+mov dword [ebp - 0x254], eax
+imul eax, dword [ebp - 0x22c], 9
+mov dword [ebp - 0x25c], eax
+
+loc_fffb305e: ; not directly referenced
+mov al, byte [ebp - 0x230]
+test byte [ebx + 0xc4], al
+jne short loc_fffb30cf ; jne 0xfffb30cf
+
+loc_fffb306c: ; not directly referenced
+inc edi
+add ebx, 0x13c3
+cmp edi, 2
+jne short loc_fffb305e ; jne 0xfffb305e
+mov eax, dword [ebp + 8]
+mov bl, byte [ebp - 0x265]
+mov word [ebp - 0x220], 0x1ff
+mov word [ebp - 0x21e], 0x1ff
+movzx ecx, byte [eax + 0x2488]
+mov eax, 1
+shl eax, cl
+dec eax
+mov word [ebp - 0x244], ax
+lea eax, [ebx + ebx]
+movzx eax, al
+mov dword [ebp - 0x23c], eax
+inc eax
+mov dword [ebp - 0x238], eax
+movzx eax, bl
+add eax, 0x4028
+mov dword [ebp - 0x25c], eax
+jmp near loc_fffb31e8 ; jmp 0xfffb31e8
+
+loc_fffb30cf: ; not directly referenced
+lea eax, [edi + edi*8]
+mov byte [ebp - 0x238], 0
+mov dword [ebp - 0x24c], eax
+
+loc_fffb30df: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov al, byte [ebp - 0x238]
+cmp al, byte [esi + 0x2488]
+jae loc_fffb306c ; jae 0xfffb306c
+movzx ecx, byte [ebp - 0x238]
+mov eax, dword [ebp - 0x24c]
+add eax, ecx
+mov esi, dword [ebp + eax*4 - 0x60]
+mov eax, dword [ebp + eax*4 - 0xa8]
+mov dword [ebp - 0x23c], esi
+mov dword [ebp - 0x244], eax
+add eax, esi
+mov esi, 2
+cdq
+idiv esi
+mov esi, dword [ebp - 0x23c]
+sub esi, dword [ebp - 0x244]
+cmp eax, dword [ebp - 0x254]
+jle short loc_fffb314e ; jle 0xfffb314e
+mov edx, dword [ebp + 8]
+cmp byte [edx + 0x1965], 0
+je short loc_fffb314e ; je 0xfffb314e
+
+loc_fffb3144: ; not directly referenced
+mov eax, 7
+jmp near loc_fffb3a71 ; jmp 0xfffb3a71
+
+loc_fffb314e: ; not directly referenced
+sub esi, 0x21
+cmp esi, 0x3e
+jbe short loc_fffb3162 ; jbe 0xfffb3162
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x1965], 0
+jne short loc_fffb3144 ; jne 0xfffb3144
+
+loc_fffb3162: ; not directly referenced
+mov esi, dword [ebp - 0x25c]
+lea edx, [ecx + esi + 0xd8]
+mov word [ebx + edx*2 + 1], ax
+mov eax, dword [ebp + 8]
+mov edx, edi
+push esi
+push 0
+push 0xff
+push ecx
+mov ecx, dword [ebp - 0x22c]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+inc byte [ebp - 0x238]
+jmp near loc_fffb30df ; jmp 0xfffb30df
+
+loc_fffb319b: ; not directly referenced
+push ebx
+mov edx, dword [ebp - 0x258]
+xor ecx, ecx
+push 0
+xor ebx, ebx
+push 1
+lea eax, [ebp - 0x217]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb0f94 ; call 0xfffb0f94
+mov esi, dword [ebp - 0x234]
+add esp, 0x10
+
+loc_fffb31c2: ; not directly referenced
+mov al, byte [ebp - 0x230]
+xor edi, edi
+mov word [ebp + ebx*2 - 0x220], 0
+test byte [esi + 0xc4], al
+jne short loc_fffb322d ; jne 0xfffb322d
+
+loc_fffb31dc: ; not directly referenced
+inc ebx
+add esi, 0x13c3
+cmp ebx, 2
+jne short loc_fffb31c2 ; jne 0xfffb31c2
+
+loc_fffb31e8: ; not directly referenced
+cmp word [ebp - 0x220], 0
+je loc_fffb3335 ; je 0xfffb3335
+jmp short loc_fffb319b ; jmp 0xfffb319b
+
+loc_fffb31f8: ; not directly referenced
+mov eax, edi
+mov edx, ebx
+movzx ecx, al
+mov eax, dword [ebp + 8]
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+and eax, 0x1ff
+cmp eax, 0x1f
+jle short loc_fffb322c ; jle 0xfffb322c
+mov eax, 1
+mov ecx, edi
+shl eax, cl
+or word [ebp + ebx*2 - 0x220], ax
+
+loc_fffb322c: ; not directly referenced
+inc edi
+
+loc_fffb322d: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov eax, edi
+cmp al, byte [ecx + 0x2488]
+jb short loc_fffb31f8 ; jb 0xfffb31f8
+mov dx, word [ebp + ebx*2 - 0x220]
+cmp dx, word [ebp - 0x244]
+je short loc_fffb3265 ; je 0xfffb3265
+
+loc_fffb324b: ; not directly referenced
+movzx eax, dx
+xor edi, edi
+mov dword [ebp - 0x24c], eax
+imul eax, dword [ebp - 0x22c], 9
+mov dword [ebp - 0x254], eax
+jmp short loc_fffb32d0 ; jmp 0xfffb32d0
+
+loc_fffb3265: ; not directly referenced
+mov eax, dword [ebp - 0x22c]
+mov al, byte [esi + eax + 0x1011]
+cmp al, 0xd
+ja short loc_fffb324b ; ja 0xfffb324b
+mov edi, dword [ebp - 0x22c]
+add eax, 2
+mov edx, ebx
+shl edx, 0xa
+add edx, dword [ebp - 0x25c]
+mov byte [esi + edi + 0x1011], al
+mov eax, dword [ebp - 0x238]
+movzx ecx, byte [esi + eax + 0x1011]
+mov eax, dword [ebp - 0x23c]
+shl ecx, 4
+add cl, byte [esi + eax + 0x1011]
+mov eax, dword [ebp + 8]
+movzx ecx, cl
+call fcn_fffae566 ; call 0xfffae566
+jmp near loc_fffb31dc ; jmp 0xfffb31dc
+
+loc_fffb32bf: ; not directly referenced
+mov ecx, dword [ebp - 0x24c]
+mov eax, edi
+movzx eax, al
+bt ecx, edi
+jb short loc_fffb32e2 ; jb 0xfffb32e2
+
+loc_fffb32cf: ; not directly referenced
+inc edi
+
+loc_fffb32d0: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov eax, edi
+cmp al, byte [ecx + 0x2488]
+jb short loc_fffb32bf ; jb 0xfffb32bf
+jmp near loc_fffb31dc ; jmp 0xfffb31dc
+
+loc_fffb32e2: ; not directly referenced
+mov ecx, dword [ebp - 0x254]
+lea edx, [eax + ecx]
+lea edx, [esi + edx*2]
+mov cx, word [edx + 0x1b1]
+cmp cx, 0x7f
+jbe short loc_fffb3307 ; jbe 0xfffb3307
+add ecx, 0xffffff80
+mov word [edx + 0x1b1], cx
+jmp short loc_fffb3317 ; jmp 0xfffb3317
+
+loc_fffb3307: ; not directly referenced
+mov ecx, dword [ebp + 8]
+cmp byte [ecx + 0x1965], 0
+jne loc_fffb3144 ; jne 0xfffb3144
+
+loc_fffb3317: ; not directly referenced
+push ecx
+mov ecx, dword [ebp - 0x22c]
+mov edx, ebx
+push 0
+push 0xff
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+jmp short loc_fffb32cf ; jmp 0xfffb32cf
+
+loc_fffb3335: ; not directly referenced
+cmp word [ebp - 0x21e], 0
+jne loc_fffb319b ; jne 0xfffb319b
+mov ebx, dword [ebp - 0x234]
+xor esi, esi
+imul edi, dword [ebp - 0x22c], 9
+
+loc_fffb3352: ; not directly referenced
+mov al, byte [ebp - 0x230]
+test byte [ebx + 0xc4], al
+jne short loc_fffb3397 ; jne 0xfffb3397
+
+loc_fffb3360: ; not directly referenced
+inc esi
+add ebx, 0x13c3
+cmp esi, 2
+jne short loc_fffb3352 ; jne 0xfffb3352
+imul eax, dword [ebp - 0x22c], 9
+mov word [ebp - 0x220], 0
+mov word [ebp - 0x21e], 0
+mov byte [ebp - 0x254], 0x40
+mov dword [ebp - 0x25c], eax
+jmp near loc_fffb3443 ; jmp 0xfffb3443
+
+loc_fffb3397: ; not directly referenced
+mov byte [ebp - 0x238], 0
+
+loc_fffb339e: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov al, byte [ebp - 0x238]
+cmp al, byte [edx + 0x2488]
+jae short loc_fffb3360 ; jae 0xfffb3360
+movzx eax, byte [ebp - 0x238]
+mov ecx, dword [ebp - 0x22c]
+lea edx, [eax + edi]
+add edx, edx
+add word [ebx + edx + 0x1b1], 0x40
+push edx
+mov edx, esi
+push 0
+push 0xff
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+inc byte [ebp - 0x238]
+jmp short loc_fffb339e ; jmp 0xfffb339e
+
+loc_fffb33e8: ; not directly referenced
+mov al, byte [ebp - 0x230]
+test byte [esi + 0xc4], al
+je short loc_fffb3421 ; je 0xfffb3421
+mov byte [ebp - 0x238], 0
+
+loc_fffb33fd: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov al, byte [ebp - 0x238]
+cmp al, byte [ecx + 0x2488]
+jb short loc_fffb3474 ; jb 0xfffb3474
+mov eax, dword [ebp - 0x244]
+cmp word [ebp + ebx*2 - 0x220], ax
+mov al, 0
+cmovne edi, eax
+
+loc_fffb3421: ; not directly referenced
+inc ebx
+add esi, 0x13c3
+cmp ebx, 2
+jne short loc_fffb33e8 ; jne 0xfffb33e8
+mov eax, edi
+test al, al
+jne loc_fffb351e ; jne 0xfffb351e
+dec byte [ebp - 0x254]
+je loc_fffb350e ; je 0xfffb350e
+
+loc_fffb3443: ; not directly referenced
+push eax
+mov edx, dword [ebp - 0x258]
+xor ecx, ecx
+push 0
+xor ebx, ebx
+push 1
+mov edi, 1
+lea eax, [ebp - 0x217]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+mov esi, dword [ebp - 0x234]
+jmp near loc_fffb33e8 ; jmp 0xfffb33e8
+
+loc_fffb3474: ; not directly referenced
+movzx eax, word [ebp + ebx*2 - 0x220]
+mov cl, byte [ebp - 0x238]
+mov word [ebp - 0x24c], ax
+movzx edx, cl
+bt eax, ecx
+mov dword [ebp - 0x23c], edx
+jb short loc_fffb3503 ; jb 0xfffb3503
+mov eax, dword [ebp + 8]
+mov ecx, edx
+mov edx, ebx
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+cmp eax, 0x1f
+jbe short loc_fffb34cf ; jbe 0xfffb34cf
+mov cl, byte [ebp - 0x23c]
+mov eax, 1
+shl eax, cl
+or eax, dword [ebp - 0x24c]
+mov word [ebp + ebx*2 - 0x220], ax
+jmp short loc_fffb3503 ; jmp 0xfffb3503
+
+loc_fffb34cf: ; not directly referenced
+mov ecx, dword [ebp - 0x23c]
+mov edx, dword [ebp - 0x25c]
+mov eax, ecx
+add eax, edx
+mov edx, ebx
+inc word [esi + eax*2 + 0x1b1]
+push eax
+mov eax, dword [ebp + 8]
+push 0
+push 0xff
+push ecx
+mov ecx, dword [ebp - 0x22c]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffb3503: ; not directly referenced
+inc byte [ebp - 0x238]
+jmp near loc_fffb33fd ; jmp 0xfffb33fd
+
+loc_fffb350e: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x1965], 0
+jne loc_fffb3144 ; jne 0xfffb3144
+
+loc_fffb351e: ; not directly referenced
+mov ebx, dword [ebp - 0x234]
+xor esi, esi
+imul edi, dword [ebp - 0x22c], 9
+
+loc_fffb352d: ; not directly referenced
+mov al, byte [ebp - 0x230]
+test byte [ebx + 0xc4], al
+jne short loc_fffb354c ; jne 0xfffb354c
+
+loc_fffb353b: ; not directly referenced
+inc esi
+add ebx, 0x13c3
+cmp esi, 2
+jne short loc_fffb352d ; jne 0xfffb352d
+jmp near loc_fffb2b44 ; jmp 0xfffb2b44
+
+loc_fffb354c: ; not directly referenced
+mov byte [ebp - 0x238], 0
+
+loc_fffb3553: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov al, byte [ebp - 0x238]
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffb353b ; jae 0xfffb353b
+movzx eax, byte [ebp - 0x238]
+lea edx, [eax + edi]
+add edx, edx
+sub word [ebx + edx + 0x1b1], 0x40
+mov edx, esi
+push ecx
+mov ecx, dword [ebp - 0x22c]
+push 0
+push 0xff
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+inc byte [ebp - 0x238]
+jmp short loc_fffb3553 ; jmp 0xfffb3553
+
+loc_fffb359d: ; not directly referenced
+cmp dword [esi], 2
+je short loc_fffb35dc ; je 0xfffb35dc
+
+loc_fffb35a2: ; not directly referenced
+inc dword [ebp - 0x22c]
+add esi, 0x13c3
+add edi, 0xcc
+cmp dword [ebp - 0x22c], 2
+jne short loc_fffb359d ; jne 0xfffb359d
+mov eax, dword [ebp + 8]
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov edi, dword [ebp - 0x234]
+mov dword [ebp - 0x22c], 0
+mov ebx, eax
+jmp near loc_fffb36c5 ; jmp 0xfffb36c5
+
+loc_fffb35dc: ; not directly referenced
+mov edx, dword [ebp - 0x22c]
+mov ecx, 0xff
+mov eax, dword [ebp + 8]
+call fcn_fffa7288 ; call 0xfffa7288
+mov ebx, dword [edi]
+mov dword [ebp - 0x230], eax
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+jne short loc_fffb3616 ; jne 0xfffb3616
+mov edx, dword [ebp - 0x230]
+and ebx, 0xefffffff
+mov ecx, ebx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffb3616: ; not directly referenced
+mov ecx, dword [edi]
+xor ebx, ebx
+mov edx, dword [ebp - 0x230]
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffb3628: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae short loc_fffb3663 ; jae 0xfffb3663
+movzx eax, bl
+mov edx, dword [ebp - 0x22c]
+inc ebx
+mov ecx, eax
+mov dword [ebp - 0x230], eax
+mov eax, dword [ebp + 8]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0x230]
+mov ecx, dword [edi + ecx*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb3628 ; jmp 0xfffb3628
+
+loc_fffb3663: ; not directly referenced
+cmp dword [ebp - 0x250], 0
+je loc_fffb35a2 ; je 0xfffb35a2
+xor ebx, ebx
+
+loc_fffb3672: ; not directly referenced
+mov eax, 1
+mov cl, bl
+shl eax, cl
+test byte [esi + 0xc4], al
+je short loc_fffb36ba ; je 0xfffb36ba
+push edx
+mov ecx, ebx
+push edx
+mov dl, bl
+shr dl, 1
+and ecx, 1
+movzx edx, dl
+imul ecx, ecx, 0x18
+imul edx, edx, 0x128
+add edx, ecx
+mov ecx, eax
+mov eax, dword [ebp + 8]
+movzx edx, word [esi + edx + 0x1273]
+push edx
+mov edx, dword [ebp - 0x22c]
+push 4
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffb36ba: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffb3672 ; jne 0xfffb3672
+jmp near loc_fffb35a2 ; jmp 0xfffb35a2
+
+loc_fffb36c5: ; not directly referenced
+cmp dword [edi], 2
+jne loc_fffb3a56 ; jne 0xfffb3a56
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x2443]
+lea eax, [ebp - 0x210]
+push ecx
+push 0xf000
+push 4
+push eax
+call dword [ebx + 0x60] ; ucall
+add esp, 0xc
+push 0x1000
+push 4
+lea eax, [ebp - 0x208]
+push eax
+call dword [ebx + 0x60] ; ucall
+add esp, 0xc
+push 0
+push 4
+lea eax, [ebp - 0x21b]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0x10
+mov ebx, 2
+cmp dword [edi], 2
+jne loc_fffb3a56 ; jne 0xfffb3a56
+xor ecx, ecx
+mov esi, 0x1000
+mov word [ebp - 0x230], 0xf000
+
+loc_fffb372f: ; not directly referenced
+mov ebx, 0xf
+bt ebx, ecx
+jae loc_fffb37d4 ; jae 0xfffb37d4
+mov edx, 1
+shl edx, cl
+test byte [edi + 0xc4], dl
+je loc_fffb37d4 ; je 0xfffb37d4
+mov ebx, dword [ebp + 8]
+imul edx, ecx, 0x12
+mov bl, byte [ebx + 0x2488]
+mov byte [ebp - 0x234], bl
+lea ebx, [edi + edx]
+xor edx, edx
+mov eax, ebx
+
+loc_fffb3769: ; not directly referenced
+cmp byte [ebp - 0x234], dl
+jbe short loc_fffb37ab ; jbe 0xfffb37ab
+movzx ebx, byte [edi + ecx + 0x1011]
+imul ebx, ebx, 0xffffffc0
+add bx, word [eax + edx*2 + 0x1b1]
+cmp word [ebp + ecx*2 - 0x210], bx
+jge short loc_fffb3796 ; jge 0xfffb3796
+mov word [ebp + ecx*2 - 0x210], bx
+
+loc_fffb3796: ; not directly referenced
+cmp word [ebp + ecx*2 - 0x208], bx
+jle short loc_fffb37a8 ; jle 0xfffb37a8
+mov word [ebp + ecx*2 - 0x208], bx
+
+loc_fffb37a8: ; not directly referenced
+inc edx
+jmp short loc_fffb3769 ; jmp 0xfffb3769
+
+loc_fffb37ab: ; not directly referenced
+mov eax, dword [ebp - 0x230]
+mov dx, word [ebp + ecx*2 - 0x210]
+cmp ax, dx
+cmovge edx, eax
+mov word [ebp - 0x230], dx
+movsx edx, word [ebp + ecx*2 - 0x208]
+cmp si, dx
+cmovg esi, edx
+
+loc_fffb37d4: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne loc_fffb372f ; jne 0xfffb372f
+movsx eax, word [ebp - 0x230]
+mov cl, 2
+xor ebx, ebx
+add eax, esi
+xor esi, esi
+cdq
+idiv ecx
+mov cl, 0x40
+neg eax
+add eax, 0x160
+cdq
+idiv ecx
+mov dword [ebp - 0x240], eax
+mov byte [ebp - 0x23c], al
+cbw
+mov word [ebp - 0x234], ax
+shl word [ebp - 0x234], 6
+
+loc_fffb3819: ; not directly referenced
+mov eax, 0xf
+bt eax, ebx
+jae loc_fffb395c ; jae 0xfffb395c
+mov al, 1
+mov cl, bl
+shl eax, cl
+test byte [edi + 0xc4], al
+je loc_fffb395c ; je 0xfffb395c
+mov al, byte [ebp - 0x23c]
+mov byte [ebp + ebx - 0x21b], al
+mov eax, dword [ebp - 0x234]
+add ax, word [ebp + ebx*2 - 0x208]
+cmp ax, 0x3f
+jg short loc_fffb3874 ; jg 0xfffb3874
+movsx edx, ax
+mov eax, 0x7f
+sub eax, edx
+sar eax, 6
+add eax, dword [ebp - 0x240]
+mov byte [ebp + ebx - 0x21b], al
+
+loc_fffb3874: ; not directly referenced
+mov dl, byte [ebp + ebx - 0x21b]
+movsx ax, dl
+shl eax, 6
+add ax, word [ebp + ebx*2 - 0x210]
+cwde
+cmp eax, 0x1bf
+jle short loc_fffb38a3 ; jle 0xfffb38a3
+sub eax, 0x180
+sar eax, 6
+sub edx, eax
+mov byte [ebp + ebx - 0x21b], dl
+
+loc_fffb38a3: ; not directly referenced
+mov al, byte [ebp + ebx - 0x21b]
+mov ecx, esi
+movsx ecx, cl
+movsx edx, al
+mov byte [ebp - 0x230], al
+mov eax, edx
+sub eax, ecx
+mov cl, byte [ebp - 0x230]
+sub ecx, 0xe
+cmp eax, 0xf
+mov al, byte [ebp - 0x230]
+cmovge esi, ecx
+mov ecx, esi
+movsx ecx, cl
+sub edx, ecx
+test edx, edx
+lea ecx, [eax - 1]
+cmovle esi, ecx
+sub al, byte [edi + ebx + 0x1011]
+mov byte [ebp - 0x230], 0
+cbw
+mov word [ebp - 0x238], ax
+lea eax, [ebx + ebx*8]
+shl word [ebp - 0x238], 6
+mov dword [ebp - 0x244], eax
+
+loc_fffb3908: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov al, byte [ebp - 0x230]
+cmp al, byte [edx + 0x2488]
+jae short loc_fffb395c ; jae 0xfffb395c
+movzx eax, byte [ebp - 0x230]
+mov edx, dword [ebp - 0x244]
+mov ecx, dword [ebp - 0x238]
+add edx, eax
+add edx, edx
+add word [edi + edx + 0x1b1], cx
+mov ecx, ebx
+push edx
+mov edx, dword [ebp - 0x22c]
+push 0
+push 0xff
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+inc byte [ebp - 0x230]
+jmp short loc_fffb3908 ; jmp 0xfffb3908
+
+loc_fffb395c: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffb3819 ; jne 0xfffb3819
+mov eax, dword [ebp - 0x22c]
+mov ebx, esi
+shl eax, 0xa
+add eax, 0x4028
+mov dword [ebp - 0x234], eax
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+test bl, bl
+jns short loc_fffb39aa ; jns 0xfffb39aa
+mov edx, eax
+mov ecx, esi
+shr edx, 0x10
+neg ecx
+and edx, 0x3f
+movzx ecx, cl
+cmp edx, ecx
+mov ebx, 7
+mov edx, 0
+cmovge ebx, edx
+jmp short loc_fffb39cb ; jmp 0xfffb39cb
+
+loc_fffb39aa: ; not directly referenced
+je short loc_fffb39c9 ; je 0xfffb39c9
+mov edx, eax
+mov ebx, esi
+shr edx, 0x10
+movsx ecx, bl
+not edx
+xor ebx, ebx
+and edx, 0x3f
+cmp ecx, edx
+mov edx, 7
+cmovg ebx, edx
+jmp short loc_fffb39cb ; jmp 0xfffb39cb
+
+loc_fffb39c9: ; not directly referenced
+xor ebx, ebx
+
+loc_fffb39cb: ; not directly referenced
+mov edx, eax
+and eax, 0xffc00000
+shr edx, 0x10
+add edx, esi
+and edx, 0x3f
+mov ecx, edx
+shl ecx, 0x10
+mov dword [ebp - 0x230], eax
+or dword [ebp - 0x230], ecx
+mov dword [edi + 0x1019], edx
+xor edx, edx
+
+loc_fffb39f3: ; not directly referenced
+mov eax, 0xf
+bt eax, edx
+jae short loc_fffb3a1d ; jae 0xfffb3a1d
+mov al, 1
+mov cl, dl
+shl eax, cl
+test byte [edi + 0xc4], al
+je short loc_fffb3a1d ; je 0xfffb3a1d
+mov cl, byte [ebp + edx - 0x21b]
+mov eax, esi
+sub ecx, eax
+mov byte [edi + edx + 0x1011], cl
+
+loc_fffb3a1d: ; not directly referenced
+mov cl, byte [edi + edx + 0x1011]
+mov eax, ecx
+and eax, 0xf
+lea ecx, [edx*4]
+inc edx
+shl eax, cl
+or eax, dword [ebp - 0x230]
+cmp edx, 4
+je short loc_fffb3a46 ; je 0xfffb3a46
+mov dword [ebp - 0x230], eax
+jmp short loc_fffb39f3 ; jmp 0xfffb39f3
+
+loc_fffb3a46: ; not directly referenced
+mov ecx, eax
+mov edx, dword [ebp - 0x234]
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb3a56: ; not directly referenced
+inc dword [ebp - 0x22c]
+add edi, 0x13c3
+cmp dword [ebp - 0x22c], 2
+jne loc_fffb36c5 ; jne 0xfffb36c5
+mov eax, ebx
+
+loc_fffb3a71: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb3a79: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x50
+mov al, byte [ecx + 0x539]
+push 0
+push 5
+mov bl, al
+mov eax, dword [esi + 0x2443]
+mov byte [ebp - 0x2d], dl
+lea edx, [ebp - 0x1d]
+push edx
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+mov al, 0
+cmp dword [ebp + 0xc], 0
+cmovne ebx, eax
+xor eax, eax
+mov byte [ebp - 0x2e], bl
+
+loc_fffb3ab3: ; not directly referenced
+cmp byte [ebp - 0x2e], al
+jbe short loc_fffb3ad6 ; jbe 0xfffb3ad6
+movzx edx, byte [edi + eax + 0x534]
+xor ecx, ecx
+cmp dl, 5
+ja short loc_fffb3ace ; ja 0xfffb3ace
+movzx ecx, byte [edx + ref_fffd3ec8] ; movzx ecx, byte [edx - 0x2c138]
+
+loc_fffb3ace: ; not directly referenced
+mov byte [ebp + ecx - 0x1d], 1
+inc eax
+jmp short loc_fffb3ab3 ; jmp 0xfffb3ab3
+
+loc_fffb3ad6: ; not directly referenced
+cmp dword [ebp + 8], 0
+jne short loc_fffb3af4 ; jne 0xfffb3af4
+movzx ecx, byte [edi + 8]
+sub esp, 0xc
+xor edx, edx
+push 1
+mov eax, esi
+call fcn_fffa83c9 ; call 0xfffa83c9
+add esp, 0x10
+mov dword [edi + 9], eax
+
+loc_fffb3af4: ; not directly referenced
+lea eax, [esi + 0x3756]
+mov ebx, edi
+mov dword [ebp - 0x34], eax
+movzx eax, byte [ebp - 0x2d]
+mov dword [ebp - 0x2c], 0
+mov dword [ebp - 0x50], eax
+
+loc_fffb3b0d: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+cmp dword [eax], 2
+je short loc_fffb3b30 ; je 0xfffb3b30
+
+loc_fffb3b15: ; not directly referenced
+inc dword [ebp - 0x2c]
+add ebx, 2
+add dword [ebp - 0x34], 0x13c3
+cmp dword [ebp - 0x2c], 2
+jne short loc_fffb3b0d ; jne 0xfffb3b0d
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffb3b30: ; not directly referenced
+mov eax, dword [ebp - 0x50]
+mov ecx, dword [ebp - 0x2c]
+bt eax, ecx
+jae short loc_fffb3b15 ; jae 0xfffb3b15
+mov eax, dword [ebp - 0x34]
+mov byte [ebp - 0x2d], 1
+cmp dword [eax + 0xc0], 1
+jne short loc_fffb3b5a ; jne 0xfffb3b5a
+mov al, byte [ebx + 4]
+mov byte [ebp - 0x2d], 0
+mov byte [ebx], al
+mov al, byte [ebx + 5]
+mov byte [ebx + 1], al
+
+loc_fffb3b5a: ; not directly referenced
+mov eax, dword [esi + 0x1887]
+cmp eax, 0x306d0
+sete dl
+cmp eax, 0x40650
+sete al
+or dl, al
+je short loc_fffb3b83 ; je 0xfffb3b83
+mov byte [ebx], 0
+mov byte [ebx + 1], 0
+mov byte [ebx + 5], 0
+mov byte [ebp - 0x2d], 1
+
+loc_fffb3b83: ; not directly referenced
+mov dl, byte [ebx + 4]
+mov ecx, 3
+push 1
+mov al, dl
+movzx edx, byte [ebx]
+mul byte [ebp - 0x2d]
+shl eax, 4
+add eax, edx
+mov edx, dword [ebp - 0x2c]
+movzx eax, ax
+push eax
+mov eax, esi
+push 7
+push 0
+call fcn_fffafdb2 ; call 0xfffafdb2
+mov dl, byte [ebx + 5]
+mov ecx, 0xc
+mov al, byte [ebp - 0x2d]
+push 1
+mul dl
+movzx edx, byte [ebx + 1]
+shl eax, 4
+add eax, edx
+mov edx, dword [ebp - 0x2c]
+movzx eax, ax
+push eax
+mov eax, esi
+push 7
+push 0
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x20
+cmp byte [ebp - 0x2e], 0
+je loc_fffb3b15 ; je 0xfffb3b15
+imul eax, dword [ebp - 0x2c], 9
+mov byte [ebp - 0x2d], 0
+mov dword [ebp - 0x4c], eax
+mov dword [ebp - 0x48], eax
+
+loc_fffb3bf1: ; not directly referenced
+mov al, byte [ebp - 0x2d]
+cmp al, byte [esi + 0x2488]
+jae loc_fffb3b15 ; jae 0xfffb3b15
+cmp byte [ebp - 0x1d], 0
+je short loc_fffb3c2e ; je 0xfffb3c2e
+movzx eax, byte [ebp - 0x2d]
+mov ecx, dword [ebp - 0x48]
+push 1
+lea edx, [eax + ecx + 0x28]
+mov ecx, 0xf
+movsx edx, word [edi + edx*2 + 7]
+push edx
+mov edx, dword [ebp - 0x2c]
+push 6
+push eax
+mov eax, esi
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+
+loc_fffb3c2e: ; not directly referenced
+cmp byte [ebp - 0x1c], 0
+je short loc_fffb3c5f ; je 0xfffb3c5f
+movzx eax, byte [ebp - 0x2d]
+mov ecx, dword [ebp - 0x48]
+push 1
+lea edx, [eax + ecx + 0xa4]
+mov ecx, 0xf
+movsx edx, word [edi + edx*2 + 7]
+push edx
+mov edx, dword [ebp - 0x2c]
+push 0
+push eax
+mov eax, esi
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+
+loc_fffb3c5f: ; not directly referenced
+movzx eax, byte [ebp - 0x2d]
+mov ecx, dword [ebp - 0x4c]
+mov dword [ebp - 0x40], 0
+mov dword [ebp - 0x44], eax
+lea edx, [eax + ecx]
+lea edx, [edx + edx + 0x33f]
+lea ecx, [edi + edx]
+mov dword [ebp - 0x3c], ecx
+
+loc_fffb3c80: ; not directly referenced
+mov cl, byte [ebp - 0x40]
+mov dword [ebp - 0x38], 1
+shl dword [ebp - 0x38], cl
+mov ecx, dword [ebp - 0x34]
+mov al, byte [ebp - 0x38]
+test byte [ecx + 0xc4], al
+je short loc_fffb3ce7 ; je 0xfffb3ce7
+cmp byte [ebp - 0x1b], 0
+je short loc_fffb3cc3 ; je 0xfffb3cc3
+mov eax, dword [ebp - 0x3c]
+push 1
+mov ecx, dword [ebp - 0x38]
+mov edx, dword [ebp - 0x2c]
+movsx eax, word [eax - 0xf8]
+push eax
+mov eax, esi
+push 5
+push dword [ebp - 0x44]
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+
+loc_fffb3cc3: ; not directly referenced
+cmp byte [ebp - 0x1a], 0
+je short loc_fffb3ce7 ; je 0xfffb3ce7
+mov eax, dword [ebp - 0x3c]
+push 1
+mov ecx, dword [ebp - 0x38]
+mov edx, dword [ebp - 0x2c]
+movsx eax, word [eax]
+push eax
+mov eax, esi
+push 4
+push dword [ebp - 0x44]
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+
+loc_fffb3ce7: ; not directly referenced
+inc dword [ebp - 0x40]
+add dword [ebp - 0x3c], 0x3e
+cmp dword [ebp - 0x40], 4
+jne short loc_fffb3c80 ; jne 0xfffb3c80
+inc byte [ebp - 0x2d]
+jmp near loc_fffb3bf1 ; jmp 0xfffb3bf1
+
+fcn_fffb3cfc: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov al, byte [eax]
+pop ebp
+ret
+
+fcn_fffb3d06:
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov ax, word [eax]
+pop ebp
+ret
+
+fcn_fffb3d11: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3d06 ; jmp 0xfffb3d06
+
+fcn_fffb3d20: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+mov word [edx], ax
+pop ebp
+ret
+
+fcn_fffb3d2e: ; not directly referenced
+push ebp
+mov ebp, esp
+movzx eax, word [ebp + 0x18]
+mov dword [ebp + 0xc], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3d20 ; jmp 0xfffb3d20
+
+fcn_fffb3d44: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov al, byte [eax]
+pop ebp
+ret
+
+fcn_fffb3d4e:
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov eax, dword [eax]
+pop ebp
+ret
+
+fcn_fffb3d58:
+mov eax, dword [0xff7d0084]
+push ebp
+mov ebp, esp
+mov eax, dword [eax + 0x14]
+add eax, 0xfb020
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+leave
+and eax, 0xffe0
+ret
+
+fcn_fffb3d75: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3d4e ; jmp 0xfffb3d4e
+
+fcn_fffb3d84:
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+mov dword [edx], eax
+pop ebp
+ret
+
+fcn_fffb3d91: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x18]
+mov dword [ebp + 0xc], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3d84 ; jmp 0xfffb3d84
+
+fcn_fffb3da6: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov edx, dword [ebp + 0x18]
+mov byte [eax], dl
+pop ebp
+ret
+
+fcn_fffb3db3: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+mov byte [edx], al
+pop ebp
+ret
+
+fcn_fffb3dc0: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 4]
+mov eax, dword [eax]
+pop ebp
+ret
+
+fcn_fffb3dcd: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3dc0 ; jmp 0xfffb3dc0
+
+fcn_fffb3ddc: ; not directly referenced
+push ebp
+mov ecx, 0xfffff
+mov ebp, esp
+push edi
+mov edi, dword [ebp + 0x18]
+push esi
+mov esi, dword [ebp + 0x1c]
+push ebx
+mov ebx, dword [ebp + 8]
+
+loc_fffb3df0: ; not directly referenced
+mov al, 0xa
+mov edx, 0x70
+out dx, al
+mov dl, 0x71
+in al, dx
+test al, al
+jns short loc_fffb3e04 ; jns 0xfffb3e04
+dec ecx
+jne short loc_fffb3df0 ; jne 0xfffb3df0
+jmp short loc_fffb3e08 ; jmp 0xfffb3e08
+
+loc_fffb3e04: ; not directly referenced
+test ecx, ecx
+jne short loc_fffb3e39 ; jne 0xfffb3e39
+
+loc_fffb3e08: ; not directly referenced
+mov edx, 0x70
+mov al, 0xb
+out dx, al
+mov al, 0x82
+mov dl, 0x71
+out dx, al
+mov al, 0xa
+mov dl, 0x70
+out dx, al
+mov al, 0x26
+mov dl, 0x71
+out dx, al
+mov al, 0xc
+mov dl, 0x70
+out dx, al
+mov dl, 0x71
+in al, dx
+mov al, 0xd
+mov dl, 0x70
+out dx, al
+mov dl, 0x71
+in al, dx
+mov al, 0xb
+mov dl, 0x70
+out dx, al
+mov al, 2
+mov dl, 0x71
+out dx, al
+
+loc_fffb3e39: ; not directly referenced
+mov edx, 0x70
+xor eax, eax
+out dx, al
+mov dl, 0x71
+in al, dx
+mov byte [ebx], al
+mov dl, 0x70
+mov al, 2
+out dx, al
+mov dl, 0x71
+in al, dx
+mov ecx, dword [ebp + 0xc]
+mov dl, 0x70
+mov byte [ecx], al
+mov al, 4
+out dx, al
+mov dl, 0x71
+in al, dx
+mov ecx, dword [ebp + 0x10]
+mov dl, 0x70
+mov byte [ecx], al
+mov al, 7
+out dx, al
+mov dl, 0x71
+in al, dx
+mov ecx, dword [ebp + 0x14]
+mov dl, 0x70
+mov byte [ecx], al
+mov al, 8
+out dx, al
+mov dl, 0x71
+in al, dx
+mov byte [edi], al
+mov dl, 0x70
+mov al, 9
+out dx, al
+mov dl, 0x71
+in al, dx
+movzx eax, al
+mov dl, 0xa
+mov word [esi], ax
+mov cl, byte [ebx]
+mov al, cl
+and ecx, 0xf
+shr al, 4
+imul eax, edx
+add ecx, eax
+mov eax, dword [ebp + 0xc]
+mov byte [ebx], cl
+mov ebx, dword [ebp + 0x14]
+mov cl, byte [eax]
+mov al, cl
+and ecx, 0xf
+shr al, 4
+imul eax, edx
+add ecx, eax
+mov eax, dword [ebp + 0xc]
+mov byte [eax], cl
+mov eax, dword [ebp + 0x10]
+mov cl, byte [eax]
+mov al, cl
+and ecx, 0xf
+shr al, 4
+imul eax, edx
+add ecx, eax
+mov eax, dword [ebp + 0x10]
+mov byte [eax], cl
+mov eax, dword [ebp + 0x14]
+mov cl, byte [eax]
+mov al, cl
+and ecx, 0xf
+shr al, 4
+imul eax, edx
+add eax, ecx
+mov byte [ebx], al
+mov cl, byte [edi]
+mov al, cl
+and ecx, 0xf
+shr al, 4
+imul eax, edx
+add eax, ecx
+mov byte [edi], al
+mov ax, word [esi]
+mov edx, eax
+shr ax, 4
+and edx, 0xf
+and eax, 0xf
+imul eax, eax, 0xa
+lea eax, [edx + eax + 0x7d0]
+mov word [esi], ax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb3f0f: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 8]
+in ax, dx
+pop ebp
+ret
+
+fcn_fffb3f19: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3f0f ; jmp 0xfffb3f0f
+
+fcn_fffb3f28: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+out dx, ax
+pop ebp
+ret
+
+fcn_fffb3f35: ; not directly referenced
+push ebp
+mov ebp, esp
+movzx eax, word [ebp + 0x18]
+mov dword [ebp + 0xc], eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp + 8], eax
+pop ebp
+jmp near fcn_fffb3f28 ; jmp 0xfffb3f28
+
+fcn_fffb3f4b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov eax, dword [0xff7d0084]
+mov edi, dword [eax + 0x14]
+lea esi, [edi + 0xb0044]
+add edi, 0xb0040
+push esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+push edi
+mov ebx, eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop ecx
+pop edi
+mov edx, eax
+shr edx, 0x10
+and edx, 0xf
+cmp dl, 2
+jne short loc_fffb3f89 ; jne 0xfffb3f89
+
+loc_fffb3f85: ; not directly referenced
+xor eax, eax
+jmp short loc_fffb3fe4 ; jmp 0xfffb3fe4
+
+loc_fffb3f89: ; not directly referenced
+movzx eax, ah
+test al, 0xf0
+jne short loc_fffb3f85 ; jne 0xfffb3f85
+lea eax, [ebp - 0x1c]
+xor edi, edi
+push eax
+push 0
+push 0
+push ref_fffd604c ; push 0xfffd604c
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x10
+
+loc_fffb3fa7: ; not directly referenced
+test ebx, 0x10000
+jne short loc_fffb3fd7 ; jne 0xfffb3fd7
+cmp edi, 0x1388
+je short loc_fffb3f85 ; je 0xfffb3f85
+mov eax, dword [ebp - 0x1c]
+inc edi
+push edx
+push 0x3e8
+push eax
+push dword [ebp + 8]
+call dword [eax + 4] ; ucall
+mov dword [esp], esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+mov ebx, eax
+jmp short loc_fffb3fa7 ; jmp 0xfffb3fa7
+
+loc_fffb3fd7: ; not directly referenced
+cmp edi, 0x1388
+je short loc_fffb3f85 ; je 0xfffb3f85
+mov eax, ebx
+and eax, 0x3f
+
+loc_fffb3fe4: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb3fec: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0x5c
+mov edi, dword [edi + 0x5edc]
+mov dword [ebp - 0x3c], eax
+mov eax, edx
+mov dword [ebp - 0x4c], edx
+mov byte [ebp - 0x3e], dl
+mov dword [ebp - 0x58], edi
+mov esi, dword [edi + 0xc]
+mov ebx, dword [edi + 0x10]
+xor edi, edi
+cmp dl, 2
+sete byte [ebp - 0x46]
+test al, 0xfd
+jne short loc_fffb404c ; jne 0xfffb404c
+mov eax, dword [ebp - 0x3c]
+mov edx, 0x3a00
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x3c]
+mov dl, al
+and edx, 0x3f
+cmp dword [ecx + 0x188b], 0
+jne short loc_fffb4041 ; jne 0xfffb4041
+shr eax, 0x1a
+jmp short loc_fffb4044 ; jmp 0xfffb4044
+
+loc_fffb4041: ; not directly referenced
+shr eax, 0x14
+
+loc_fffb4044: ; not directly referenced
+and eax, 0x1f
+mov byte [ebp - 0x3d], al
+jmp short loc_fffb406b ; jmp 0xfffb406b
+
+loc_fffb404c: ; not directly referenced
+mov al, byte [ebp - 0x4c]
+sub eax, 0xa
+cmp al, 1
+ja short loc_fffb4065 ; ja 0xfffb4065
+mov eax, dword [ebp - 0x3c]
+mov edx, 0x3a08
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, eax
+
+loc_fffb4065: ; not directly referenced
+mov byte [ebp - 0x3d], 0
+xor edx, edx
+
+loc_fffb406b: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+cmp al, 0xb
+ja loc_fffb415f ; ja 0xfffb415f
+jmp dword [eax*4 + ref_fffd3ee0] ; ujmp: jmp dword [eax*4 - 0x2c120]
+
+loc_fffb407d: ; not directly referenced
+shr esi, 0xb
+and esi, 0xf
+mov eax, esi
+mov edi, esi
+or eax, 0xfffffff0
+test esi, 8
+cmovne edi, eax
+mov byte [ebp - 0x3d], dl
+mov byte [ebp - 0x44], 0
+mov byte [ebp - 0x40], 0xf8
+mov byte [ebp - 0x45], 7
+mov byte [ebp - 0x3f], 1
+jmp near loc_fffb4175 ; jmp 0xfffb4175
+
+loc_fffb40ab: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+mov edx, 0x3a04
+shr esi, 0xf
+and esi, 0x1f
+mov edi, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov byte [ebp - 0x44], 0
+mov byte [ebp - 0x40], 0xf0
+mov byte [ebp - 0x45], 0xf
+and eax, 0x3f
+mov byte [ebp - 0x3d], al
+mov eax, esi
+or eax, 0xffffffe0
+test esi, 0x10
+cmovne edi, eax
+jmp near loc_fffb4171 ; jmp 0xfffb4171
+
+loc_fffb40e5: ; not directly referenced
+mov eax, ebx
+mov edi, ebx
+shr eax, 4
+and edi, 0xf
+and eax, 1
+mov byte [ebp - 0x44], al
+mov byte [ebp - 0x40], 4
+mov byte [ebp - 0x45], 0xf
+mov byte [ebp - 0x3f], 5
+jmp short loc_fffb4175 ; jmp 0xfffb4175
+
+loc_fffb4103: ; not directly referenced
+shr edi, 0xc
+mov eax, edi
+shr esi, 0x14
+and eax, 0x3f
+and esi, 0xf
+mov byte [ebp - 0x3d], al
+mov eax, esi
+or eax, 0xfffffff0
+test esi, 8
+cmovne esi, eax
+mov edi, esi
+mov byte [ebp - 0x44], 0
+mov byte [ebp - 0x40], 0xf8
+mov byte [ebp - 0x45], 7
+mov byte [ebp - 0x3f], 2
+jmp short loc_fffb4175 ; jmp 0xfffb4175
+
+loc_fffb4136: ; not directly referenced
+mov eax, edi
+and eax, 0x3f
+mov byte [ebp - 0x3d], al
+mov eax, ebx
+shr eax, 9
+shr ebx, 5
+and eax, 1
+mov edi, ebx
+mov byte [ebp - 0x44], al
+and edi, 0xf
+mov byte [ebp - 0x40], 4
+mov byte [ebp - 0x45], 0xf
+mov byte [ebp - 0x3f], 6
+jmp short loc_fffb4175 ; jmp 0xfffb4175
+
+loc_fffb415f: ; not directly referenced
+mov byte [ebp - 0x44], 0
+xor edi, edi
+mov byte [ebp - 0x40], 0
+mov byte [ebp - 0x45], 0
+mov byte [ebp - 0x3d], 0
+
+loc_fffb4171: ; not directly referenced
+mov byte [ebp - 0x3f], 0
+
+loc_fffb4175: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+xor ebx, ebx
+xor esi, esi
+mov ecx, dword [ebp - 0x58]
+mov byte [ebp - 0x47], 0
+mov word [ebp - 0x58], 0
+add eax, 0x3756
+mov dword [ebp - 0x54], eax
+lea eax, [ebp - 0x2a]
+add ecx, 0x1c
+mov dword [ebp - 0x50], eax
+mov al, byte [ebp - 0x3e]
+sub eax, 0xa
+mov byte [ebp - 0x5e], al
+
+loc_fffb41a3: ; not directly referenced
+mov eax, dword [ebp - 0x54]
+cmp dword [eax], 2
+jne loc_fffb4269 ; jne 0xfffb4269
+mov eax, dword [ebp - 0x3c]
+mov edx, dword [ecx + 0x4c]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x5d], al
+mov eax, edx
+shr eax, 9
+and eax, 0xf
+mov byte [ebp - 0x5c], al
+mov al, dl
+xor edx, edx
+and eax, 0x1f
+mov byte [ebp - 0x48], al
+
+loc_fffb41d3: ; not directly referenced
+cmp byte [ebp - 0x5d], dl
+jbe loc_fffb4266 ; jbe 0xfffb4266
+cmp byte [ebp - 0x3e], 0
+mov eax, dword [ecx + edx*4 + 0x78]
+jne short loc_fffb41ef ; jne 0xfffb41ef
+mov esi, eax
+mov bl, 6
+and esi, 0x3f
+jmp short loc_fffb4229 ; jmp 0xfffb4229
+
+loc_fffb41ef: ; not directly referenced
+cmp byte [ebp - 0x3e], 1
+jne short loc_fffb41ff ; jne 0xfffb41ff
+shr eax, 0xc
+mov esi, eax
+and esi, 0x1f
+jmp short loc_fffb420a ; jmp 0xfffb420a
+
+loc_fffb41ff: ; not directly referenced
+cmp byte [ebp - 0x46], 0
+je short loc_fffb420e ; je 0xfffb420e
+shr eax, 0x1b
+mov esi, eax
+
+loc_fffb420a: ; not directly referenced
+mov bl, 5
+jmp short loc_fffb4229 ; jmp 0xfffb4229
+
+loc_fffb420e: ; not directly referenced
+mov al, byte [ebp - 0x3e]
+cmp al, 0xa
+je short loc_fffb4224 ; je 0xfffb4224
+cmp al, 0xb
+mov al, byte [ebp - 0x48]
+cmove esi, eax
+mov al, 5
+cmove ebx, eax
+jmp short loc_fffb4229 ; jmp 0xfffb4229
+
+loc_fffb4224: ; not directly referenced
+mov esi, dword [ebp - 0x5c]
+mov bl, 4
+
+loc_fffb4229: ; not directly referenced
+push eax
+movzx eax, bl
+push 8
+push eax
+mov eax, esi
+movzx eax, al
+push eax
+mov dword [ebp - 0x68], edx
+mov dword [ebp - 0x64], ecx
+call fcn_fffac7e7 ; call 0xfffac7e7
+mov edx, dword [ebp - 0x68]
+add esp, 0x10
+movsx cx, al
+add word [ebp - 0x58], cx
+mov ecx, dword [ebp - 0x50]
+add al, byte [ebp - 0x3d]
+mov byte [ecx + edx], al
+inc edx
+mov ecx, dword [ebp - 0x64]
+cmp byte [ebp - 0x5e], 2
+ja loc_fffb41d3 ; ja 0xfffb41d3
+
+loc_fffb4266: ; not directly referenced
+inc byte [ebp - 0x47]
+
+loc_fffb4269: ; not directly referenced
+add dword [ebp - 0x50], 9
+add ecx, 0xcc
+add dword [ebp - 0x54], 0x13c3
+lea eax, [ebp - 0x18]
+cmp dword [ebp - 0x50], eax
+jne loc_fffb41a3 ; jne 0xfffb41a3
+movsx ebx, word [ebp - 0x58]
+movzx ecx, byte [ebp - 0x47]
+mov eax, ebx
+sar ax, 0xf
+or eax, 1
+cmp byte [ebp - 0x4c], 2
+mov byte [ebp - 0x54], al
+movsx eax, al
+mov dword [ebp - 0x50], ebx
+ja short loc_fffb42c6 ; ja 0xfffb42c6
+mov esi, dword [ebp - 0x3c]
+imul eax, ecx
+mov ebx, 2
+movzx esi, byte [esi + 0x2488]
+imul eax, esi
+imul ecx, esi
+cdq
+idiv ebx
+add eax, dword [ebp - 0x50]
+jmp short loc_fffb42d4 ; jmp 0xfffb42d4
+
+loc_fffb42c6: ; not directly referenced
+imul eax, ecx
+mov esi, 2
+cdq
+idiv esi
+add eax, dword [ebp - 0x50]
+
+loc_fffb42d4: ; not directly referenced
+cdq
+idiv ecx
+test ax, ax
+jne short loc_fffb42e5 ; jne 0xfffb42e5
+movzx eax, byte [ebp - 0x3d]
+jmp near loc_fffb447c ; jmp 0xfffb447c
+
+loc_fffb42e5: ; not directly referenced
+movsx eax, al
+cdq
+mov ecx, edx
+xor ecx, eax
+sub ecx, edx
+cmp byte [ebp - 0x4c], 0xb
+mov byte [ebp - 0x47], cl
+sete dl
+or dl, byte [ebp - 0x46]
+mov byte [ebp - 0x58], dl
+je short loc_fffb4304 ; je 0xfffb4304
+neg byte [ebp - 0x54]
+
+loc_fffb4304: ; not directly referenced
+mov bl, byte [ebp - 0x54]
+mov dl, byte [ebp - 0x3d]
+mov esi, dword [ebp - 0x44]
+mov byte [ebp - 0x46], cl
+add ebx, edi
+movzx ecx, dl
+mov byte [ebp - 0x50], bl
+add eax, ecx
+mov ebx, edi
+mov byte [ebp - 0x4c], bl
+mov dword [ebp - 0x5c], eax
+
+loc_fffb4322: ; not directly referenced
+mov al, byte [ebp - 0x50]
+mov bl, 1
+mov byte [ebp - 0x3d], al
+lea eax, [edx - 3]
+cmp al, 0x39
+ja short loc_fffb4344 ; ja 0xfffb4344
+mov al, byte [ebp - 0x45]
+mov cl, byte [ebp - 0x50]
+cmp cl, al
+setg bl
+cmp byte [ebp - 0x40], cl
+setg al
+or ebx, eax
+
+loc_fffb4344: ; not directly referenced
+cmp byte [ebp - 0x58], 0
+je short loc_fffb435f ; je 0xfffb435f
+mov cl, byte [ebp - 0x50]
+mov al, 0
+cmp cl, 0x10
+cmovge esi, eax
+mov eax, esi
+shl eax, 4
+add eax, ecx
+mov byte [ebp - 0x3d], al
+
+loc_fffb435f: ; not directly referenced
+test bl, bl
+jne short loc_fffb43a8 ; jne 0xfffb43a8
+movsx ecx, byte [ebp - 0x3d]
+sub esp, 0xc
+movzx edx, byte [ebp - 0x3f]
+mov eax, dword [ebp - 0x3c]
+push 0
+call fcn_fffa83c9 ; call 0xfffa83c9
+mov ecx, dword [ebp - 0x5c]
+add esp, 0x10
+mov dl, al
+movzx eax, al
+sub ecx, eax
+mov eax, ecx
+sar ecx, 0x1f
+xor eax, ecx
+sub eax, ecx
+cmp al, byte [ebp - 0x47]
+jae short loc_fffb43a8 ; jae 0xfffb43a8
+cmp al, byte [ebp - 0x46]
+jae short loc_fffb43aa ; jae 0xfffb43aa
+mov cl, byte [ebp - 0x3d]
+test al, al
+sete bl
+mov byte [ebp - 0x46], al
+mov byte [ebp - 0x4c], cl
+jmp short loc_fffb43aa ; jmp 0xfffb43aa
+
+loc_fffb43a8: ; not directly referenced
+mov bl, 1
+
+loc_fffb43aa: ; not directly referenced
+mov al, byte [ebp - 0x54]
+add byte [ebp - 0x50], al
+test bl, bl
+je loc_fffb4322 ; je 0xfffb4322
+mov bl, byte [ebp - 0x4c]
+mov eax, edi
+movzx edx, byte [ebp - 0x3f]
+cmp bl, al
+je loc_fffb4452 ; je 0xfffb4452
+mov eax, dword [ebp - 0x3c]
+sub esp, 0xc
+movzx ecx, bl
+push 1
+xor ebx, ebx
+call fcn_fffa83c9 ; call 0xfffa83c9
+movzx esi, byte [ebp - 0x3e]
+add esp, 0x10
+mov byte [ebp - 0x3f], al
+movzx edi, al
+
+loc_fffb43e8: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edx, dword [ebp - 0x3c]
+cmp dword [edx + eax + 0x3756], 2
+je short loc_fffb4403 ; je 0xfffb4403
+
+loc_fffb43fb: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb43e8 ; jne 0xfffb43e8
+jmp short loc_fffb4478 ; jmp 0xfffb4478
+
+loc_fffb4403: ; not directly referenced
+lea eax, [ebx + ebx*8]
+lea edx, [ebp - 0x18]
+add eax, edx
+mov byte [ebp - 0x3d], 0
+mov dword [ebp - 0x44], eax
+
+loc_fffb4412: ; not directly referenced
+mov edx, dword [ebp - 0x3c]
+mov al, byte [ebp - 0x3d]
+cmp al, byte [edx + 0x2488]
+jae short loc_fffb43fb ; jae 0xfffb43fb
+movzx edx, byte [ebp - 0x3d]
+xor ecx, ecx
+mov eax, dword [ebp - 0x44]
+push 1
+movzx eax, byte [edx + eax - 0x12]
+sub eax, edi
+cwde
+push eax
+mov eax, dword [ebp - 0x3c]
+push esi
+push edx
+mov edx, ebx
+call fcn_fffafdb2 ; call 0xfffafdb2
+mov al, byte [ebp - 0x3e]
+add esp, 0x10
+sub eax, 0xa
+cmp al, 2
+jbe short loc_fffb43fb ; jbe 0xfffb43fb
+inc byte [ebp - 0x3d]
+jmp short loc_fffb4412 ; jmp 0xfffb4412
+
+loc_fffb4452: ; not directly referenced
+cmp byte [ebp - 0x58], 0
+je short loc_fffb4461 ; je 0xfffb4461
+mov al, byte [ebp - 0x44]
+shl eax, 4
+add byte [ebp - 0x4c], al
+
+loc_fffb4461: ; not directly referenced
+movzx ecx, byte [ebp - 0x4c]
+sub esp, 0xc
+mov eax, dword [ebp - 0x3c]
+push 1
+call fcn_fffa83c9 ; call 0xfffa83c9
+add esp, 0x10
+mov byte [ebp - 0x3f], al
+
+loc_fffb4478: ; not directly referenced
+movzx eax, byte [ebp - 0x3f]
+
+loc_fffb447c: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb4484: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x1b], 0
+lea esi, [ebp - 0x1b]
+mov byte [ebp - 0x1a], 1
+lea edi, [ebp - 0x18]
+mov byte [ebp - 0x19], 2
+
+loc_fffb44a2: ; not directly referenced
+movzx edx, byte [esi]
+mov eax, ebx
+inc esi
+call fcn_fffb3fec ; call 0xfffb3fec
+cmp esi, edi
+jne short loc_fffb44a2 ; jne 0xfffb44a2
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffb44d2 ; jne 0xfffb44d2
+mov edx, 0xa
+mov eax, ebx
+call fcn_fffb3fec ; call 0xfffb3fec
+mov edx, 0xb
+mov eax, ebx
+call fcn_fffb3fec ; call 0xfffb3fec
+
+loc_fffb44d2: ; not directly referenced
+add esp, 0x1c
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb44dc: ; not directly referenced
+push ebp
+mov ecx, 2
+mov ebp, esp
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0xc]
+push dword [ebp + 0x10]
+mov edx, dword [ebp + 8]
+lea eax, [ebp - 0xa]
+mov word [ebp - 0xa], bx
+push eax
+mov eax, 7
+call fcn_fffab430 ; call 0xfffab430
+mov eax, ebx
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb450a: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+mov ebx, edx
+sub esp, 0x2c
+test ebx, ebx
+setne al
+cmp cx, 0x1ff
+setbe bl
+mov dword [ebp - 0x2c], edx
+mov edx, dword [ebp + 8]
+mov word [ebp - 0x2e], cx
+mov dword [ebp - 0x1c], 0x80000007
+test al, bl
+je loc_fffb45de ; je 0xfffb45de
+mov edi, edx
+movzx edx, dx
+add edx, ecx
+cmp edx, 0x1ff
+jg loc_fffb45de ; jg 0xfffb45de
+mov eax, dword [ebp - 0x2c]
+add edi, eax
+mov ebx, eax
+mov eax, esi
+movzx eax, al
+mov word [ebp - 0x30], di
+mov dword [ebp - 0x34], eax
+
+loc_fffb4563: ; not directly referenced
+cmp word [ebp - 0x30], bx
+je short loc_fffb45d7 ; je 0xfffb45d7
+mov ecx, dword [ebp + 0xc]
+mov dx, word [ebp - 0x2e]
+sub edx, dword [ebp - 0x2c]
+movzx ecx, byte [ecx]
+add edx, ebx
+mov eax, edx
+shr ax, 8
+cmp ax, cx
+je short loc_fffb458c ; je 0xfffb458c
+mov edi, dword [ebp + 0xc]
+mov byte [edi], al
+mov al, 1
+jmp short loc_fffb458e ; jmp 0xfffb458e
+
+loc_fffb458c: ; not directly referenced
+xor eax, eax
+
+loc_fffb458e: ; not directly referenced
+dec al
+movzx esi, dl
+jne short loc_fffb45b3 ; jne 0xfffb45b3
+mov eax, dword [ebp + 0xc]
+cmp byte [eax], 1
+push edx
+lea edx, [ebp - 0x1c]
+sbb eax, eax
+push edx
+and eax, 0xfffffffe
+push 0
+add eax, 0x6e
+push eax
+call fcn_fffab4b3 ; call 0xfffab4b3
+add esp, 0x10
+
+loc_fffb45b3: ; not directly referenced
+shl esi, 8
+mov edi, ebx
+push eax
+inc ebx
+or esi, dword [ebp - 0x34]
+push eax
+lea eax, [ebp - 0x1c]
+push eax
+push esi
+call fcn_fffab48f ; call 0xfffab48f
+add esp, 0x10
+mov byte [ebx - 1], al
+cmp dword [ebp - 0x1c], 0
+je short loc_fffb4563 ; je 0xfffb4563
+mov byte [edi], 0
+
+loc_fffb45d7: ; not directly referenced
+mov dword [ebp - 0x1c], 0
+
+loc_fffb45de: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb45e9: ; not directly referenced
+push ebp
+mov ecx, 2
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x34
+mov esi, dword [ebp + 0x10]
+movzx eax, byte [ebp + 0xc]
+lea edi, [ebp - 0x19]
+push edi
+push 1
+lea edx, [esi + 2]
+mov byte [ebp - 0x19], 0xff
+mov dword [ebp - 0x30], eax
+call fcn_fffb450a ; call 0xfffb450a
+add esp, 0x10
+mov esi, eax
+test eax, eax
+jne short loc_fffb467d ; jne 0xfffb467d
+mov eax, dword [ebp + 0x18]
+xor edx, edx
+mov ecx, dword [ebp + 8]
+mov dword [ebp - 0x2c], 1
+mov ebx, dword [ebp + 0x14]
+shl dword [ebp - 0x2c], cl
+mov ecx, 5
+div ecx
+lea eax, [eax + eax*4]
+add eax, ebx
+mov dword [ebp - 0x34], eax
+
+loc_fffb4640: ; not directly referenced
+cmp ebx, dword [ebp - 0x34]
+je short loc_fffb467d ; je 0xfffb467d
+movzx eax, byte [ebx + 4]
+test dword [ebp - 0x2c], eax
+je short loc_fffb4678 ; je 0xfffb4678
+push eax
+mov edx, dword [ebp + 0x10]
+push eax
+movzx ecx, word [ebx]
+push edi
+mov ax, word [ebx + 2]
+add edx, ecx
+inc eax
+sub ax, word [ebx]
+movzx eax, ax
+push eax
+mov eax, dword [ebp - 0x30]
+call fcn_fffb450a ; call 0xfffb450a
+add esp, 0x10
+test eax, eax
+je short loc_fffb4678 ; je 0xfffb4678
+mov esi, eax
+jmp short loc_fffb467d ; jmp 0xfffb467d
+
+loc_fffb4678: ; not directly referenced
+add ebx, 5
+jmp short loc_fffb4640 ; jmp 0xfffb4640
+
+loc_fffb467d: ; not directly referenced
+test esi, esi
+sete al
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb468a:
+mov eax, dword [0xff7d0084]
+push ebp
+mov ebp, esp
+push ebx
+mov eax, dword [eax + 0x14]
+add eax, 0xf8002
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+mov ecx, eax
+mov edx, eax
+and cl, 0x7d
+pop eax
+mov eax, 1
+cmp cx, 0x8c44
+je loc_fffb47e4 ; je 0xfffb47e4
+cmp dx, 0x8c4c
+sete bl
+cmp dx, 0x8c4a
+sete cl
+or bl, cl
+jne loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x8c50
+sete bl
+cmp dx, 0x8c4e
+sete cl
+or bl, cl
+jne loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x8c42
+sete bl
+cmp dx, 0x8c5c
+sete cl
+or bl, cl
+jne loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x8c4f
+sete bl
+cmp dx, 0x8c49
+sete cl
+or bl, cl
+jne loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x8c41
+sete bl
+cmp dx, 0x8c4b
+sete cl
+or bl, cl
+jne loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x8c58
+je loc_fffb47e4 ; je 0xfffb47e4
+cmp dx, 0x8c54
+sete bl
+cmp dx, 0x8c52
+sete cl
+or bl, cl
+jne loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x8c56
+je loc_fffb47e4 ; je 0xfffb47e4
+lea ecx, [edx + 0x63bf]
+cmp cx, 6
+jbe short loc_fffb47e4 ; jbe 0xfffb47e4
+cmp dx, 0x8cc5
+sete bl
+cmp dx, 0x8cc3
+sete cl
+or bl, cl
+jne short loc_fffb47e4 ; jne 0xfffb47e4
+lea ecx, [edx + 0x733f]
+cmp cx, 1
+jbe short loc_fffb47e4 ; jbe 0xfffb47e4
+lea eax, [edx + 0x633f]
+cmp ax, 2
+mov eax, 2
+setbe bl
+cmp dx, 0x9cc5
+sete cl
+or bl, cl
+jne short loc_fffb47e4 ; jne 0xfffb47e4
+lea ecx, [edx + 0x633a]
+cmp cx, 1
+setbe bl
+cmp dx, 0x9cc9
+sete cl
+or bl, cl
+jne short loc_fffb47e4 ; jne 0xfffb47e4
+cmp dx, 0x9cc8
+sete bl
+cmp dx, 0x9cc4
+sete cl
+or bl, cl
+jne short loc_fffb47e4 ; jne 0xfffb47e4
+add dx, 0x6336
+cmp dx, 2
+sbb eax, eax
+add eax, 3
+
+loc_fffb47e4:
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb47e9:
+push ebp
+mov ebp, esp
+push esi
+mov esi, dword [ebp + 8]
+push ebx
+mov ebx, dword [ebp + 0xc]
+call fcn_fffb3d58 ; call 0xfffb3d58
+mov ecx, esi
+movzx esi, cl
+lea edx, [eax + esi]
+mov al, bl
+out dx, al
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffb4808: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+mov ebx, dword [ebp + 8]
+call fcn_fffb3d58 ; call 0xfffb3d58
+movzx ebx, bl
+lea edx, [eax + ebx]
+in al, dx
+pop ebx
+pop ebp
+ret
+
+fcn_fffb481e:
+mov eax, dword [0xff7d0084]
+push ebp
+mov ebp, esp
+push ebx
+mov eax, dword [eax + 0x14]
+add eax, 0xf8002
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+mov ecx, eax
+mov edx, eax
+and cl, 0x7d
+pop eax
+mov eax, 1
+cmp cx, 0x8c44
+je loc_fffb497f ; je 0xfffb497f
+cmp dx, 0x8c4c
+sete bl
+cmp dx, 0x8c4a
+sete cl
+or bl, cl
+jne loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x8c50
+sete bl
+cmp dx, 0x8c4e
+sete cl
+or bl, cl
+jne loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x8c42
+sete bl
+cmp dx, 0x8c5c
+sete cl
+or bl, cl
+jne loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x8c4f
+sete bl
+cmp dx, 0x8c49
+sete cl
+or bl, cl
+jne loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x8c41
+sete bl
+cmp dx, 0x8c4b
+sete cl
+or bl, cl
+jne loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x8c58
+je loc_fffb497f ; je 0xfffb497f
+cmp dx, 0x8c54
+sete bl
+cmp dx, 0x8c52
+sete cl
+or bl, cl
+jne loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x8c56
+je loc_fffb497f ; je 0xfffb497f
+cmp dx, 0x8cc5
+sete bl
+cmp dx, 0x8cc3
+sete cl
+or bl, cl
+jne short loc_fffb497f ; jne 0xfffb497f
+lea eax, [edx + 0x733f]
+cmp ax, 1
+jbe short loc_fffb497a ; jbe 0xfffb497a
+lea ecx, [edx + 0x63bf]
+mov eax, 2
+cmp cx, 6
+jbe short loc_fffb497f ; jbe 0xfffb497f
+lea ecx, [edx + 0x633f]
+cmp cx, 2
+setbe bl
+cmp dx, 0x9cc5
+sete cl
+or bl, cl
+jne short loc_fffb497f ; jne 0xfffb497f
+lea ecx, [edx + 0x633a]
+cmp cx, 1
+setbe bl
+cmp dx, 0x9cc9
+sete cl
+or bl, cl
+jne short loc_fffb497f ; jne 0xfffb497f
+cmp dx, 0x9cc8
+sete bl
+cmp dx, 0x9cc4
+sete cl
+or bl, cl
+jne short loc_fffb497f ; jne 0xfffb497f
+add dx, 0x6336
+cmp dx, 2
+sbb eax, eax
+add eax, 3
+jmp short loc_fffb497f ; jmp 0xfffb497f
+
+loc_fffb497a:
+mov eax, 1
+
+loc_fffb497f:
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb4984:
+push ebp
+mov ebp, esp
+call fcn_fffb481e ; call 0xfffb481e
+cmp eax, 1
+je short loc_fffb499d ; je 0xfffb499d
+xor edx, edx
+cmp eax, 2
+mov al, 6
+cmove edx, eax
+jmp short loc_fffb499f ; jmp 0xfffb499f
+
+loc_fffb499d:
+mov dl, 8
+
+loc_fffb499f:
+mov al, dl
+pop ebp
+ret
+
+fcn_fffb49a3: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov eax, dword [0xff7d0084]
+mov eax, dword [eax + 0x14]
+add eax, 0xf8040
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+mov esi, eax
+and esi, 0xfffc
+push eax
+add esi, 8
+push eax
+push esi
+call fcn_fffaafc2 ; call 0xfffaafc2
+mov ecx, 0x64
+xor edx, edx
+add esp, 0x10
+mov ebx, eax
+imul eax, dword [ebp + 8], 0x166
+and ebx, 0xffffff
+div ecx
+lea edi, [ebx + eax + 1]
+mov ecx, edi
+and edi, 0xffffff
+shr ecx, 0x18
+
+loc_fffb49fc: ; not directly referenced
+test ecx, ecx
+setne dl
+cmp edi, ebx
+seta al
+or al, dl
+je short loc_fffb4a34 ; je 0xfffb4a34
+sub esp, 0xc
+push esi
+mov dword [ebp - 0x20], edx
+mov dword [ebp - 0x1c], ecx
+call fcn_fffaafc2 ; call 0xfffaafc2
+add esp, 0x10
+mov ecx, dword [ebp - 0x1c]
+mov edx, dword [ebp - 0x20]
+and eax, 0xffffff
+cmp eax, ebx
+jae short loc_fffb4a30 ; jae 0xfffb4a30
+test dl, dl
+je short loc_fffb4a34 ; je 0xfffb4a34
+dec ecx
+
+loc_fffb4a30: ; not directly referenced
+mov ebx, eax
+jmp short loc_fffb49fc ; jmp 0xfffb49fc
+
+loc_fffb4a34: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb4a3c: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 8
+mov eax, dword [ebp + 0x10]
+test eax, eax
+je short loc_fffb4a55 ; je 0xfffb4a55
+sub esp, 0xc
+push eax
+call fcn_fffb49a3 ; call 0xfffb49a3
+add esp, 0x10
+
+loc_fffb4a55: ; not directly referenced
+xor eax, eax
+leave
+ret
+
+fcn_fffb4a59: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, 1
+sub esp, 0x38
+mov eax, dword [ebp + 8]
+lea esi, [eax - 8]
+mov edi, dword [esi + 0x10]
+lea eax, [edi + 2]
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+add esp, 0x10
+mov edx, eax
+and dl, 0x7d
+cmp dx, 0x8c44
+je loc_fffb4ba6 ; je 0xfffb4ba6
+cmp ax, 0x8c4c
+sete cl
+cmp ax, 0x8c4a
+sete dl
+or cl, dl
+jne loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x8c50
+sete cl
+cmp ax, 0x8c4e
+sete dl
+or cl, dl
+jne loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x8c42
+sete cl
+cmp ax, 0x8c5c
+sete dl
+or cl, dl
+jne loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x8c4f
+sete cl
+cmp ax, 0x8c49
+sete dl
+or cl, dl
+jne loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x8c41
+sete cl
+cmp ax, 0x8c4b
+sete dl
+or cl, dl
+jne loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x8c58
+je loc_fffb4ba6 ; je 0xfffb4ba6
+cmp ax, 0x8c54
+sete cl
+cmp ax, 0x8c52
+sete dl
+or cl, dl
+jne loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x8c56
+je loc_fffb4ba6 ; je 0xfffb4ba6
+cmp ax, 0x8cc5
+sete cl
+cmp ax, 0x8cc3
+sete dl
+or cl, dl
+jne short loc_fffb4ba6 ; jne 0xfffb4ba6
+lea edx, [eax + 0x733f]
+cmp dx, 1
+jbe short loc_fffb4ba1 ; jbe 0xfffb4ba1
+lea edx, [eax + 0x63bf]
+mov bl, 2
+cmp dx, 6
+jbe short loc_fffb4ba6 ; jbe 0xfffb4ba6
+lea edx, [eax + 0x633f]
+cmp dx, 2
+setbe cl
+cmp ax, 0x9cc5
+sete dl
+or cl, dl
+jne short loc_fffb4ba6 ; jne 0xfffb4ba6
+lea edx, [eax + 0x633a]
+cmp dx, 1
+setbe cl
+cmp ax, 0x9cc9
+sete dl
+or cl, dl
+jne short loc_fffb4ba6 ; jne 0xfffb4ba6
+cmp ax, 0x9cc8
+sete cl
+cmp ax, 0x9cc4
+sete dl
+or cl, dl
+jne short loc_fffb4ba6 ; jne 0xfffb4ba6
+add ax, 0x6336
+cmp ax, 2
+sbb ebx, ebx
+add ebx, 3
+jmp short loc_fffb4ba6 ; jmp 0xfffb4ba6
+
+loc_fffb4ba1: ; not directly referenced
+mov ebx, 1
+
+loc_fffb4ba6: ; not directly referenced
+mov eax, dword [esi + 0xc]
+sub esp, 0xc
+mov dword [ebp - 0x2c], eax
+lea eax, [edi + 0x40]
+push eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+mov esi, eax
+lea eax, [edi + 0x48]
+mov dword [esp], eax
+call fcn_fffb3d06 ; call 0xfffb3d06
+add esp, 0x10
+cmp dword [ebp + 0xc], 5
+ja loc_fffb4e16 ; ja 0xfffb4e16
+mov edx, dword [ebp + 0xc]
+jmp dword [edx*4 + ref_fffd3f10] ; ujmp: jmp dword [edx*4 - 0x2c0f0]
+
+loc_fffb4bdc: ; not directly referenced
+mov edx, 0xcf9
+xor eax, eax
+out dx, al
+mov bl, 4
+jmp near loc_fffb4d98 ; jmp 0xfffb4d98
+
+loc_fffb4beb: ; not directly referenced
+mov edx, 0xcf9
+mov al, 2
+out dx, al
+mov bl, 6
+jmp near loc_fffb4d98 ; jmp 0xfffb4d98
+
+loc_fffb4bfa: ; not directly referenced
+and esi, 0xfffffffc
+mov al, byte [edi + 0x44]
+or eax, 0xffffff80
+mov byte [edi + 0x44], al
+cmp ebx, 2
+movzx esi, si
+jne short loc_fffb4c20 ; jne 0xfffb4c20
+push eax
+push eax
+push 0
+lea eax, [esi + 0x9c]
+push eax
+call fcn_fffaafda ; call 0xfffaafda
+jmp short loc_fffb4c3d ; jmp 0xfffb4c3d
+
+loc_fffb4c20: ; not directly referenced
+dec ebx
+jne short loc_fffb4c40 ; jne 0xfffb4c40
+push ecx
+push ecx
+push 0
+lea eax, [esi + 0x28]
+push eax
+call fcn_fffb3f28 ; call 0xfffb3f28
+lea eax, [esi + 0x2c]
+pop ebx
+pop edi
+push 0
+push eax
+call fcn_fffb3f28 ; call 0xfffb3f28
+
+loc_fffb4c3d: ; not directly referenced
+add esp, 0x10
+
+loc_fffb4c40: ; not directly referenced
+push ecx
+push ecx
+push 0x100
+lea eax, [esi + 0x34]
+add esi, 4
+push eax
+call fcn_fffb3f28 ; call 0xfffb3f28
+mov dword [esp], esi
+call fcn_fffaafc2 ; call 0xfffaafc2
+pop edi
+mov ebx, eax
+and bh, 0xc3
+pop eax
+mov eax, ebx
+or ah, 0x1c
+or bh, 0x3c
+push eax
+push esi
+call fcn_fffaafda ; call 0xfffaafda
+pop eax
+pop edx
+push ebx
+push esi
+call fcn_fffaafda ; call 0xfffaafda
+add esp, 0x10
+xor ecx, ecx
+jmp near loc_fffb4e1b ; jmp 0xfffb4e1b
+
+loc_fffb4c84: ; not directly referenced
+mov esi, eax
+push edx
+and esi, 0xfffc
+push edx
+push 0
+lea eax, [esi + 0x60]
+push eax
+mov dword [ebp - 0x30], eax
+call fcn_fffaafda ; call 0xfffaafda
+pop ecx
+pop eax
+lea eax, [esi + 0x64]
+push 0
+push eax
+call fcn_fffaafda ; call 0xfffaafda
+pop eax
+pop edx
+lea eax, [esi + 0x68]
+push 0
+push eax
+call fcn_fffaafda ; call 0xfffaafda
+mov eax, dword [ebp + 0xc]
+add esp, 0x10
+sub eax, 4
+cmp eax, 1
+ja loc_fffb4d96 ; ja 0xfffb4d96
+sub esp, 0xc
+add edi, 0xac
+push edi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop edx
+pop ecx
+or eax, 0x100000
+push eax
+push edi
+call fcn_fffb3d84 ; call 0xfffb3d84
+add esp, 0x10
+cmp dword [ebp + 0xc], 5
+jne loc_fffb4d96 ; jne 0xfffb4d96
+mov eax, dword [ebp - 0x2c]
+sub esp, 0xc
+add eax, 0x332c
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+test al, 3
+jne loc_fffb4d96 ; jne 0xfffb4d96
+mov eax, dword [ebp - 0x2c]
+sub esp, 0xc
+add eax, 0x3330
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+test ah, 0xc0
+jne short loc_fffb4d96 ; jne 0xfffb4d96
+cmp ebx, 1
+jne short loc_fffb4d55 ; jne 0xfffb4d55
+push eax
+push eax
+push 0x40000000
+push esi
+call fcn_fffab629 ; call 0xfffab629
+pop eax
+pop edx
+lea eax, [esi + 4]
+add esi, 0xc
+push 0xbfffffff
+push eax
+call fcn_fffab64e ; call 0xfffab64e
+pop ecx
+pop ebx
+push 0xbfffffff
+jmp short loc_fffb4d7b ; jmp 0xfffb4d7b
+
+loc_fffb4d55: ; not directly referenced
+cmp ebx, 2
+jne short loc_fffb4d84 ; jne 0xfffb4d84
+push edx
+add esi, 0x1f0
+push edx
+push 1
+push esi
+call fcn_fffab629 ; call 0xfffab629
+pop ecx
+pop ebx
+push 0xfffffffffffffffb
+push esi
+call fcn_fffab64e ; call 0xfffab64e
+pop edi
+pop eax
+push 0x7fffffff
+
+loc_fffb4d7b: ; not directly referenced
+push esi
+call fcn_fffab64e ; call 0xfffab64e
+add esp, 0x10
+
+loc_fffb4d84: ; not directly referenced
+push eax
+push eax
+push 0x40000000
+push dword [ebp - 0x30]
+call fcn_fffab629 ; call 0xfffab629
+add esp, 0x10
+
+loc_fffb4d96: ; not directly referenced
+mov bl, 0xe
+
+loc_fffb4d98: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+sub eax, 4
+cmp eax, 1
+jbe short loc_fffb4daa ; jbe 0xfffb4daa
+
+loc_fffb4da3: ; not directly referenced
+xor esi, esi
+lea edi, [ebp - 0x1c]
+jmp short loc_fffb4dc8 ; jmp 0xfffb4dc8
+
+loc_fffb4daa: ; not directly referenced
+push 0
+push 0
+push 0
+push ref_fffd65b0 ; push 0xfffd65b0
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x10
+test eax, eax
+jne short loc_fffb4da3 ; jne 0xfffb4da3
+mov ecx, 0x80000003
+jmp short loc_fffb4e1b ; jmp 0xfffb4e1b
+
+loc_fffb4dc8: ; not directly referenced
+push edi
+push 0
+push esi
+push ref_fffd663c ; push 0xfffd663c
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x10
+mov edx, eax
+test eax, eax
+jne short loc_fffb4df3 ; jne 0xfffb4df3
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebp - 0x1c]
+sub esp, 0xc
+push dword [ebp + 0xc]
+call dword [eax] ; ucall
+mov edx, dword [ebp - 0x2c]
+add esp, 0x10
+
+loc_fffb4df3: ; not directly referenced
+inc esi
+cmp edx, 0x8000000e
+jne short loc_fffb4dc8 ; jne 0xfffb4dc8
+xor ecx, ecx
+mov edx, 0xcf9
+mov al, bl
+out dx, al
+mov dword [ebp - 0x1c], 0
+
+loc_fffb4e0d: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+test eax, eax
+je short loc_fffb4e0d ; je 0xfffb4e0d
+jmp short loc_fffb4e1b ; jmp 0xfffb4e1b
+
+loc_fffb4e16: ; not directly referenced
+mov ecx, 0x80000002
+
+loc_fffb4e1b: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, ecx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb4e25: ; not directly referenced
+push ebp
+mov al, 1
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+sub esp, 0x2c
+lea esi, [ebp - 0x28]
+lea edi, [ebp - 0x20]
+
+loc_fffb4e38: ; not directly referenced
+cmp dword [ebp + 8], 1
+je short loc_fffb4e63 ; je 0xfffb4e63
+cmp dword [ebp + 8], 2
+jne short loc_fffb4e8d ; jne 0xfffb4e8d
+mov ecx, 0x150
+rdmsr
+mov dword [ebp - 0x28], eax
+push eax
+push 8
+push esi
+push edi
+mov dword [ebp - 0x24], edx
+call fcn_fffab101 ; call 0xfffab101
+mov al, byte [ebp - 0x19]
+shr al, 7
+jmp short loc_fffb4e8a ; jmp 0xfffb4e8a
+
+loc_fffb4e63: ; not directly referenced
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov eax, dword [eax + 0x14]
+add eax, 0x48
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+and eax, 0xfffffffe
+add eax, 0x5da4
+mov dword [esp], eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+shr eax, 0x1f
+
+loc_fffb4e8a: ; not directly referenced
+add esp, 0x10
+
+loc_fffb4e8d: ; not directly referenced
+sub esp, 0xc
+inc ebx
+push 1
+mov dword [ebp - 0x2c], eax
+call fcn_fffb49a3 ; call 0xfffb49a3
+mov eax, dword [ebp - 0x2c]
+add esp, 0x10
+mov dl, al
+and edx, 1
+cmp bx, 0x3e7
+setbe cl
+test dl, cl
+jne short loc_fffb4e38 ; jne 0xfffb4e38
+cmp bx, 0x3e8
+sete al
+and eax, edx
+shl eax, 0x1f
+lea esp, [ebp - 0xc]
+sar eax, 0x1f
+pop ebx
+and eax, 0x80000012
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb4ecf: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x38
+mov edi, dword [ebp + 8]
+push edi
+call fcn_fffb4e25 ; call 0xfffb4e25
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+js loc_fffb505b ; js 0xfffb505b
+cmp edi, 1
+je short loc_fffb4f01 ; je 0xfffb4f01
+cmp edi, 2
+je loc_fffb4fa4 ; je 0xfffb4fa4
+jmp near loc_fffb505f ; jmp 0xfffb505f
+
+loc_fffb4f01: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+sub esp, 0xc
+mov dword [ebp - 0x20], eax
+mov eax, dword [0xff7d0084]
+or byte [ebp - 0x1d], 0x80
+mov eax, dword [eax + 0x14]
+add eax, 0x48
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov edi, eax
+pop eax
+and edi, 0xfffffffe
+pop edx
+push dword [ebp - 0x20]
+lea esi, [edi + 0x5da4]
+add edi, 0x5da0
+push esi
+call fcn_fffb3d84 ; call 0xfffb3d84
+mov dword [esp], 1
+call fcn_fffb4e25 ; call 0xfffb4e25
+mov dword [esp], esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], edi
+mov dword [ebp - 0x20], eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], 0xa
+mov dword [ebp - 0x1c], eax
+call fcn_fffb49a3 ; call 0xfffb49a3
+mov dword [esp], esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], edi
+mov esi, eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov edx, dword [ebp - 0x20]
+add esp, 0x10
+cmp edx, esi
+je short loc_fffb4f94 ; je 0xfffb4f94
+cmp dword [ebp - 0x1c], eax
+je short loc_fffb4f94 ; je 0xfffb4f94
+
+loc_fffb4f8a: ; not directly referenced
+mov eax, 0x80000002
+jmp near loc_fffb5064 ; jmp 0xfffb5064
+
+loc_fffb4f94: ; not directly referenced
+mov eax, dword [ebp + 0x14]
+mov dword [eax], edx
+lea eax, [ebp - 0x1c]
+push ecx
+push 4
+jmp near loc_fffb504f ; jmp 0xfffb504f
+
+loc_fffb4fa4: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp + 0x10]
+mov eax, dword [eax]
+push edx
+push 8
+or byte [ebp - 0x21], 0x80
+mov dword [ebp - 0x28], eax
+lea eax, [ebp - 0x28]
+push eax
+lea eax, [ebp - 0x30]
+push eax
+call fcn_fffab101 ; call 0xfffab101
+mov eax, dword [ebp - 0x30]
+mov ecx, 0x150
+mov edx, dword [ebp - 0x2c]
+wrmsr
+mov dword [esp], 2
+call fcn_fffb4e25 ; call 0xfffb4e25
+mov ecx, 0x150
+rdmsr
+add esp, 0xc
+push 8
+mov dword [ebp - 0x30], eax
+lea eax, [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x28]
+push eax
+mov dword [ebp - 0x2c], edx
+call fcn_fffab101 ; call 0xfffab101
+mov dword [esp], 0xa
+call fcn_fffb49a3 ; call 0xfffb49a3
+mov ecx, 0x150
+rdmsr
+add esp, 0xc
+push 8
+mov dword [ebp - 0x30], eax
+lea eax, [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x20]
+push eax
+mov dword [ebp - 0x2c], edx
+call fcn_fffab101 ; call 0xfffab101
+mov eax, dword [ebp - 0x1c]
+add esp, 0x10
+cmp dword [ebp - 0x24], eax
+je short loc_fffb5040 ; je 0xfffb5040
+mov eax, dword [ebp - 0x20]
+cmp dword [ebp - 0x28], eax
+jne loc_fffb4f8a ; jne 0xfffb4f8a
+
+loc_fffb5040: ; not directly referenced
+movzx eax, byte [ebp - 0x24]
+mov edx, dword [ebp + 0x14]
+mov dword [edx], eax
+push eax
+push 4
+lea eax, [ebp - 0x28]
+
+loc_fffb504f: ; not directly referenced
+push eax
+push dword [ebp + 0x10]
+call fcn_fffab101 ; call 0xfffab101
+add esp, 0x10
+
+loc_fffb505b: ; not directly referenced
+mov eax, ebx
+jmp short loc_fffb5064 ; jmp 0xfffb5064
+
+loc_fffb505f: ; not directly referenced
+mov eax, 0x80000003
+
+loc_fffb5064: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb506c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x48
+mov esi, dword [ebp + 8]
+push esi
+call fcn_fffb4e25 ; call 0xfffb4e25
+add esp, 0x10
+mov ebx, eax
+test eax, eax
+js loc_fffb51e8 ; js 0xfffb51e8
+cmp esi, 1
+je short loc_fffb509e ; je 0xfffb509e
+cmp esi, 2
+je loc_fffb5145 ; je 0xfffb5145
+jmp near loc_fffb51ec ; jmp 0xfffb51ec
+
+loc_fffb509e: ; not directly referenced
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov eax, dword [eax + 0x14]
+add eax, 0x48
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop edx
+pop ecx
+push dword [ebp + 0x10]
+mov esi, eax
+and esi, 0xfffffffe
+lea edi, [esi + 0x5da0]
+add esi, 0x5da4
+push edi
+call fcn_fffb3d84 ; call 0xfffb3d84
+mov eax, dword [ebp + 0xc]
+pop edx
+pop ecx
+or eax, 0x80000000
+push eax
+push esi
+call fcn_fffb3d84 ; call 0xfffb3d84
+mov dword [esp], 1
+call fcn_fffb4e25 ; call 0xfffb4e25
+mov dword [esp], esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], edi
+mov dword [ebp - 0x40], eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], 0xa
+mov dword [ebp - 0x3c], eax
+call fcn_fffb49a3 ; call 0xfffb49a3
+mov dword [esp], esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], edi
+mov esi, eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov ecx, dword [ebp - 0x40]
+add esp, 0x10
+cmp ecx, esi
+je short loc_fffb5138 ; je 0xfffb5138
+cmp dword [ebp - 0x3c], eax
+je short loc_fffb5138 ; je 0xfffb5138
+
+loc_fffb512e: ; not directly referenced
+mov eax, 0x80000002
+jmp near loc_fffb51f1 ; jmp 0xfffb51f1
+
+loc_fffb5138: ; not directly referenced
+mov eax, dword [ebp + 0x14]
+movzx ecx, cl
+mov dword [eax], ecx
+jmp near loc_fffb51e8 ; jmp 0xfffb51e8
+
+loc_fffb5145: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp + 0x10]
+or byte [ebp - 0x21], 0x80
+mov dword [ebp - 0x28], eax
+push eax
+push 8
+lea eax, [ebp - 0x28]
+push eax
+lea eax, [ebp - 0x30]
+push eax
+call fcn_fffab101 ; call 0xfffab101
+mov eax, dword [ebp - 0x30]
+mov ecx, 0x150
+mov edx, dword [ebp - 0x2c]
+wrmsr
+mov dword [esp], 2
+call fcn_fffb4e25 ; call 0xfffb4e25
+mov ecx, 0x150
+rdmsr
+add esp, 0xc
+push 8
+mov dword [ebp - 0x30], eax
+lea eax, [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x28]
+push eax
+mov dword [ebp - 0x2c], edx
+call fcn_fffab101 ; call 0xfffab101
+mov dword [esp], 0xa
+call fcn_fffb49a3 ; call 0xfffb49a3
+mov ecx, 0x150
+rdmsr
+add esp, 0xc
+push 8
+mov dword [ebp - 0x30], eax
+lea eax, [ebp - 0x30]
+push eax
+lea eax, [ebp - 0x20]
+push eax
+mov dword [ebp - 0x2c], edx
+call fcn_fffab101 ; call 0xfffab101
+mov eax, dword [ebp - 0x1c]
+add esp, 0x10
+cmp dword [ebp - 0x24], eax
+je short loc_fffb51df ; je 0xfffb51df
+mov eax, dword [ebp - 0x20]
+cmp dword [ebp - 0x28], eax
+jne loc_fffb512e ; jne 0xfffb512e
+
+loc_fffb51df: ; not directly referenced
+movzx eax, byte [ebp - 0x24]
+mov edx, dword [ebp + 0x14]
+mov dword [edx], eax
+
+loc_fffb51e8: ; not directly referenced
+mov eax, ebx
+jmp short loc_fffb51f1 ; jmp 0xfffb51f1
+
+loc_fffb51ec: ; not directly referenced
+mov eax, 0x80000003
+
+loc_fffb51f1: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb51f9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov bl, byte [ebp + 0xc]
+mov al, byte [ebp + 0x18]
+mov edi, dword [ebp + 0x1c]
+and ebx, 0x7f
+cmp dword [ebp + 0x14], 1
+mov byte [ebp - 0x1f], al
+jbe short loc_fffb5230 ; jbe 0xfffb5230
+test edi, edi
+mov esi, 0x80000002
+sete dl
+cmp dword [ebp + 0x20], 0
+sete al
+or dl, al
+jne loc_fffb5793 ; jne 0xfffb5793
+
+loc_fffb5230: ; not directly referenced
+sub esp, 0xc
+mov esi, 0x80000012
+push 0
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+test al, 0x40
+jne loc_fffb5793 ; jne 0xfffb5793
+test al, 1
+je short loc_fffb5264 ; je 0xfffb5264
+push edi
+push edi
+push 0xff
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+jmp near loc_fffb5793 ; jmp 0xfffb5793
+
+loc_fffb5264: ; not directly referenced
+push esi
+movzx eax, al
+push esi
+push eax
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+lea eax, [ebx + ebx + 1]
+add esp, 0x10
+mov byte [ebp - 0x1c], al
+dec eax
+mov byte [ebp - 0x1d], al
+mov eax, dword [ebp + 0x14]
+mov dword [ebp - 0x24], 3
+mov byte [ebp - 0x1e], 0
+and eax, 0xfffffffd
+mov dword [ebp - 0x2c], eax
+
+loc_fffb5293: ; not directly referenced
+mov al, byte [ebp + 0x10]
+cmp dword [ebp + 0x14], 0xb
+mov byte [ebp - 0x20], al
+ja loc_fffb5454 ; ja 0xfffb5454
+mov eax, dword [ebp + 0x14]
+jmp dword [eax*4 + ref_fffd3f28] ; ujmp: jmp dword [eax*4 - 0x2c0d8]
+
+loc_fffb52ad: ; not directly referenced
+mov dl, byte [ebp - 0x1d]
+jmp short loc_fffb52b5 ; jmp 0xfffb52b5
+
+loc_fffb52b2: ; not directly referenced
+mov dl, byte [ebp - 0x1c]
+
+loc_fffb52b5: ; not directly referenced
+cmp byte [ebp - 0x1f], 1
+je loc_fffb5446 ; je 0xfffb5446
+xor esi, esi
+jmp near loc_fffb5440 ; jmp 0xfffb5440
+
+loc_fffb52c6: ; not directly referenced
+mov eax, dword [ebp + 0x20]
+mov dl, byte [ebp - 0x1d]
+mov al, byte [eax]
+mov byte [ebp - 0x20], al
+jmp short loc_fffb52d6 ; jmp 0xfffb52d6
+
+loc_fffb52d3: ; not directly referenced
+mov dl, byte [ebp - 0x1c]
+
+loc_fffb52d6: ; not directly referenced
+cmp dword [edi], 1
+mov esi, 4
+mov dword [edi], 1
+sbb ebx, ebx
+and ebx, 0x80000005
+jmp near loc_fffb5409 ; jmp 0xfffb5409
+
+loc_fffb52f1: ; not directly referenced
+mov eax, dword [ebp + 0x20]
+push ecx
+push ecx
+movzx eax, byte [eax]
+push eax
+push 5
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+mov dl, byte [ebp - 0x1d]
+mov dword [edi], 1
+jmp short loc_fffb5312 ; jmp 0xfffb5312
+
+loc_fffb530f: ; not directly referenced
+mov dl, byte [ebp - 0x1c]
+
+loc_fffb5312: ; not directly referenced
+mov eax, dword [edi]
+test eax, eax
+je loc_fffb554f ; je 0xfffb554f
+cmp eax, 1
+je loc_fffb543b ; je 0xfffb543b
+cmp eax, 0x100
+ja loc_fffb5454 ; ja 0xfffb5454
+cmp byte [ebp - 0x1f], 1
+je loc_fffb5446 ; je 0xfffb5446
+mov esi, 0x18
+jmp near loc_fffb5440 ; jmp 0xfffb5440
+
+loc_fffb5344: ; not directly referenced
+cmp dword [edi], 2
+mov dl, byte [ebp - 0x1c]
+mov dword [edi], 2
+sbb ebx, ebx
+and ebx, 0x80000005
+jmp short loc_fffb5392 ; jmp 0xfffb5392
+
+loc_fffb535a: ; not directly referenced
+push eax
+push eax
+mov eax, dword [ebp + 0x20]
+movzx eax, byte [eax + 1]
+push eax
+push 6
+call fcn_fffb47e9 ; call 0xfffb47e9
+pop eax
+mov eax, dword [ebp + 0x20]
+pop edx
+movzx eax, byte [eax]
+push eax
+push 5
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+mov dl, byte [ebp - 0x1d]
+cmp dword [edi], 2
+mov dword [edi], 2
+sbb ebx, ebx
+and ebx, 0x80000005
+
+loc_fffb5392: ; not directly referenced
+mov esi, 0xc
+jmp short loc_fffb5409 ; jmp 0xfffb5409
+
+loc_fffb5399: ; not directly referenced
+push eax
+push eax
+movzx eax, byte [edi]
+push eax
+push 5
+call fcn_fffb47e9 ; call 0xfffb47e9
+mov al, byte [edi]
+add esp, 0x10
+mov dl, byte [ebp - 0x1d]
+mov byte [ebp - 0x1e], al
+jmp short loc_fffb53b6 ; jmp 0xfffb53b6
+
+loc_fffb53b3: ; not directly referenced
+mov dl, byte [ebp - 0x1c]
+
+loc_fffb53b6: ; not directly referenced
+mov eax, dword [edi]
+dec eax
+cmp eax, 0x1f
+ja loc_fffb5454 ; ja 0xfffb5454
+mov esi, 0x14
+jmp near loc_fffb5450 ; jmp 0xfffb5450
+
+loc_fffb53cc: ; not directly referenced
+mov eax, dword [ebp + 0x20]
+push ebx
+push ebx
+movzx eax, byte [eax + 1]
+push eax
+push 6
+call fcn_fffb47e9 ; call 0xfffb47e9
+pop esi
+mov esi, 0x10
+pop eax
+mov eax, dword [ebp + 0x20]
+movzx eax, byte [eax]
+push eax
+push 5
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+mov dl, byte [ebp - 0x1c]
+cmp dword [edi], 2
+mov dword [edi], 2
+sbb ebx, ebx
+and ebx, 0x80000005
+
+loc_fffb5409: ; not directly referenced
+xor eax, eax
+test ebx, ebx
+jns short loc_fffb545e ; jns 0xfffb545e
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5414: ; not directly referenced
+mov eax, dword [edi]
+dec eax
+cmp eax, 0x1f
+ja short loc_fffb5454 ; ja 0xfffb5454
+push ecx
+mov esi, 0x1c
+push ecx
+movzx eax, byte [edi]
+push eax
+push 5
+call fcn_fffb47e9 ; call 0xfffb47e9
+mov al, byte [edi]
+add esp, 0x10
+mov dl, byte [ebp - 0x1c]
+mov byte [ebp - 0x1e], al
+jmp short loc_fffb5450 ; jmp 0xfffb5450
+
+loc_fffb543b: ; not directly referenced
+mov esi, 8
+
+loc_fffb5440: ; not directly referenced
+xor eax, eax
+
+loc_fffb5442: ; not directly referenced
+xor ebx, ebx
+jmp short loc_fffb545e ; jmp 0xfffb545e
+
+loc_fffb5446: ; not directly referenced
+mov ebx, 0x80000003
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5450: ; not directly referenced
+mov al, 2
+jmp short loc_fffb5442 ; jmp 0xfffb5442
+
+loc_fffb5454: ; not directly referenced
+mov ebx, 0x80000002
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb545e: ; not directly referenced
+mov cl, al
+or ecx, 1
+cmp byte [ebp - 0x1f], 1
+mov dword [ebp - 0x28], edx
+push edx
+cmove eax, ecx
+push edx
+movzx eax, al
+push eax
+push 0xd
+call fcn_fffb47e9 ; call 0xfffb47e9
+mov dword [esp], 2
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+mov edx, dword [ebp - 0x28]
+cmp dword [ebp - 0x2c], 9
+je short loc_fffb54ae ; je 0xfffb54ae
+
+loc_fffb5492: ; not directly referenced
+push ecx
+movzx edx, dl
+push ecx
+push edx
+push 4
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+movzx eax, byte [ebp - 0x20]
+cmp dword [ebp + 0x14], 4
+jne short loc_fffb54eb ; jne 0xfffb54eb
+jmp short loc_fffb54df ; jmp 0xfffb54df
+
+loc_fffb54ae: ; not directly referenced
+movzx ecx, byte [ebp - 0x1e]
+xor eax, eax
+mov dword [ebp - 0x28], ecx
+
+loc_fffb54b7: ; not directly referenced
+cmp eax, dword [ebp - 0x28]
+jae short loc_fffb5492 ; jae 0xfffb5492
+mov ecx, dword [ebp + 0x20]
+mov dword [ebp - 0x34], edx
+push edx
+push edx
+movzx ecx, byte [ecx + eax]
+mov dword [ebp - 0x30], eax
+push ecx
+push 7
+call fcn_fffb47e9 ; call 0xfffb47e9
+mov eax, dword [ebp - 0x30]
+add esp, 0x10
+mov edx, dword [ebp - 0x34]
+inc eax
+jmp short loc_fffb54b7 ; jmp 0xfffb54b7
+
+loc_fffb54df: ; not directly referenced
+cmp dword [edi], 1
+jbe short loc_fffb54eb ; jbe 0xfffb54eb
+push ecx
+push ecx
+push eax
+push 6
+jmp short loc_fffb54f0 ; jmp 0xfffb54f0
+
+loc_fffb54eb: ; not directly referenced
+push edx
+push edx
+push eax
+push 3
+
+loc_fffb54f0: ; not directly referenced
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+lea eax, [esi + 0x40]
+mov esi, 0x186a0
+movzx eax, al
+push ecx
+push ecx
+push eax
+push 2
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+
+loc_fffb5510: ; not directly referenced
+sub esp, 0xc
+push 0
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+test al, 0x8e
+jne loc_fffb55fa ; jne 0xfffb55fa
+sub esp, 0xc
+push 0xa
+call fcn_fffb49a3 ; call 0xfffb49a3
+add esp, 0x10
+dec esi
+jne short loc_fffb5510 ; jne 0xfffb5510
+jmp near loc_fffb55f3 ; jmp 0xfffb55f3
+
+loc_fffb553a: ; not directly referenced
+sub esp, 0xc
+push 5
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+test al, al
+jne loc_fffb5750 ; jne 0xfffb5750
+
+loc_fffb554f: ; not directly referenced
+mov ebx, 0x80000005
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5559: ; not directly referenced
+cmp dword [edi], 1
+jbe loc_fffb56de ; jbe 0xfffb56de
+xor esi, esi
+
+loc_fffb5564: ; not directly referenced
+cmp esi, dword [edi]
+jae loc_fffb561b ; jae 0xfffb561b
+sub esp, 0xc
+push 7
+call fcn_fffb4808 ; call 0xfffb4808
+mov ecx, dword [ebp + 0x20]
+add esp, 0x10
+mov byte [ecx + esi], al
+mov eax, dword [edi]
+lea edx, [eax - 2]
+cmp esi, edx
+jne loc_fffb56b9 ; jne 0xfffb56b9
+sub esp, 0xc
+push 2
+call fcn_fffb4808 ; call 0xfffb4808
+pop edx
+pop ecx
+or eax, 0x20
+movzx eax, al
+
+loc_fffb559e: ; not directly referenced
+push eax
+push 2
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+
+loc_fffb55a9: ; not directly referenced
+push eax
+push eax
+push 0x80
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+mov eax, dword [edi]
+add esp, 0x10
+dec eax
+cmp esi, eax
+jae loc_fffb56d8 ; jae 0xfffb56d8
+mov dword [ebp - 0x1c], 0x64
+
+loc_fffb55cc: ; not directly referenced
+sub esp, 0xc
+push 0
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+test al, al
+js loc_fffb56d8 ; js 0xfffb56d8
+sub esp, 0xc
+push 0xa
+call fcn_fffb49a3 ; call 0xfffb49a3
+add esp, 0x10
+dec dword [ebp - 0x1c]
+jne short loc_fffb55cc ; jne 0xfffb55cc
+
+loc_fffb55f3: ; not directly referenced
+mov ebx, 0x80000012
+jmp short loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb55fa: ; not directly referenced
+test al, 4
+je short loc_fffb5649 ; je 0xfffb5649
+sub esp, 0xc
+push 0xc
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+and eax, 1
+cmp al, 1
+sbb ebx, ebx
+and ebx, 0xffffffec
+sub ebx, 0x7fffffe5
+
+loc_fffb561b: ; not directly referenced
+push eax
+push eax
+push 0xff
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+pop edx
+pop ecx
+push 1
+push 0xc
+call fcn_fffb47e9 ; call 0xfffb47e9
+pop esi
+mov esi, ebx
+pop edi
+push 0
+push 0xd
+call fcn_fffb47e9 ; call 0xfffb47e9
+add esp, 0x10
+jmp near loc_fffb5793 ; jmp 0xfffb5793
+
+loc_fffb5649: ; not directly referenced
+test al, 8
+je short loc_fffb568e ; je 0xfffb568e
+push ebx
+push ebx
+push 8
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+pop esi
+pop eax
+push 0xff
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+pop eax
+pop edx
+push 1
+push 0xc
+call fcn_fffb47e9 ; call 0xfffb47e9
+mov dword [esp], 0xa
+call fcn_fffb49a3 ; call 0xfffb49a3
+add esp, 0x10
+dec dword [ebp - 0x24]
+je loc_fffb5789 ; je 0xfffb5789
+jmp near loc_fffb5293 ; jmp 0xfffb5293
+
+loc_fffb568e: ; not directly referenced
+mov eax, dword [ebp + 0x14]
+sub eax, 2
+cmp eax, 9
+ja short loc_fffb561b ; ja 0xfffb561b
+jmp dword [eax*4 + ref_fffd3f58] ; ujmp: jmp dword [eax*4 - 0x2c0a8]
+
+loc_fffb56a0: ; not directly referenced
+sub esp, 0xc
+push 6
+call fcn_fffb4808 ; call 0xfffb4808
+mov ecx, dword [ebp + 0x20]
+mov byte [ecx + 1], al
+mov dword [esp], 5
+jmp short loc_fffb56e3 ; jmp 0xfffb56e3
+
+loc_fffb56b9: ; not directly referenced
+dec eax
+cmp esi, eax
+jne loc_fffb55a9 ; jne 0xfffb55a9
+sub esp, 0xc
+push 2
+call fcn_fffb4808 ; call 0xfffb4808
+pop edx
+pop ecx
+and eax, 0xdf
+jmp near loc_fffb559e ; jmp 0xfffb559e
+
+loc_fffb56d8: ; not directly referenced
+inc esi
+jmp near loc_fffb5564 ; jmp 0xfffb5564
+
+loc_fffb56de: ; not directly referenced
+sub esp, 0xc
+push 5
+
+loc_fffb56e3: ; not directly referenced
+call fcn_fffb4808 ; call 0xfffb4808
+mov ecx, dword [ebp + 0x20]
+mov byte [ecx], al
+jmp short loc_fffb56fd ; jmp 0xfffb56fd
+
+loc_fffb56ef: ; not directly referenced
+push eax
+push eax
+push 0x80
+push 0
+call fcn_fffb47e9 ; call 0xfffb47e9
+
+loc_fffb56fd: ; not directly referenced
+add esp, 0x10
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5705: ; not directly referenced
+sub esp, 0xc
+xor esi, esi
+push 5
+call fcn_fffb4808 ; call 0xfffb4808
+add esp, 0x10
+movzx edx, al
+mov al, 1
+cmp dword [edi], edx
+jb short loc_fffb573f ; jb 0xfffb573f
+
+loc_fffb571d: ; not directly referenced
+cmp esi, edx
+jae short loc_fffb573d ; jae 0xfffb573d
+sub esp, 0xc
+push 7
+mov dword [ebp - 0x1c], edx
+call fcn_fffb4808 ; call 0xfffb4808
+mov ecx, dword [ebp + 0x20]
+add esp, 0x10
+mov edx, dword [ebp - 0x1c]
+mov byte [ecx + esi], al
+inc esi
+jmp short loc_fffb571d ; jmp 0xfffb571d
+
+loc_fffb573d: ; not directly referenced
+xor eax, eax
+
+loc_fffb573f: ; not directly referenced
+test al, al
+mov eax, 0x80000005
+mov dword [edi], edx
+cmovne ebx, eax
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5750: ; not directly referenced
+movzx edx, byte [edi]
+movzx ecx, al
+lea eax, [edx + ecx]
+cmp eax, 0x20
+jg short loc_fffb5789 ; jg 0xfffb5789
+xor esi, esi
+mov edx, ecx
+
+loc_fffb5762: ; not directly referenced
+cmp esi, edx
+jae short loc_fffb5782 ; jae 0xfffb5782
+sub esp, 0xc
+push 7
+mov dword [ebp - 0x1c], edx
+call fcn_fffb4808 ; call 0xfffb4808
+mov ecx, dword [ebp + 0x20]
+add esp, 0x10
+mov edx, dword [ebp - 0x1c]
+mov byte [ecx + esi], al
+inc esi
+jmp short loc_fffb5762 ; jmp 0xfffb5762
+
+loc_fffb5782: ; not directly referenced
+mov dword [edi], edx
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5789: ; not directly referenced
+mov ebx, 0x80000007
+jmp near loc_fffb561b ; jmp 0xfffb561b
+
+loc_fffb5793: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb579d: ; not directly referenced
+push ebp
+movzx edx, dl
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 0x10]
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x24], ecx
+mov edi, dword [esi + 0x5edc]
+mov dword [ebp - 0x1c], ebx
+mov byte [ebp - 0x2b], bl
+mov bl, byte [ebp + 0x18]
+mov ecx, eax
+mov eax, dword [ebp + 0xc]
+mov byte [ebp - 0x2c], bl
+imul ebx, edx, 0xcc
+mov byte [ebp - 0x20], al
+lea ebx, [edi + ebx + 0x1c]
+cmp cl, 0xe
+ja loc_fffb5b85 ; ja 0xfffb5b85
+movzx edi, cl
+jmp dword [edi*4 + ref_fffd3f80] ; ujmp: jmp dword [edi*4 - 0x2c080]
+
+loc_fffb57eb: ; not directly referenced
+mov edi, dword [ebx + 0xa0]
+and eax, 0xf
+shl eax, 0xf
+and edi, 0xfff87fff
+jmp near loc_fffb5b31 ; jmp 0xfffb5b31
+
+loc_fffb5802: ; not directly referenced
+mov edi, dword [ebx + 0xa0]
+and eax, 0xf
+shl eax, 0x13
+and edi, 0xff87ffff
+jmp near loc_fffb5b31 ; jmp 0xfffb5b31
+
+loc_fffb5819: ; not directly referenced
+mov edi, dword [ebx + 0xa4]
+and eax, 0xf
+shl eax, 0x11
+and edi, 0xffe1ffff
+jmp short loc_fffb5895 ; jmp 0xfffb5895
+
+loc_fffb582d: ; not directly referenced
+mov edi, dword [ebx + 0xa4]
+and eax, 0xf
+shl eax, 0x15
+and edi, 0xfe1fffff
+jmp short loc_fffb5895 ; jmp 0xfffb5895
+
+loc_fffb5841: ; not directly referenced
+mov edi, dword [ebx + 0xa8]
+and eax, 0x1f
+shl eax, 0x13
+and edi, 0xff07ffff
+jmp near loc_fffb5b65 ; jmp 0xfffb5b65
+
+loc_fffb5858: ; not directly referenced
+mov edi, dword [ebx + 0xa8]
+and eax, 0x1f
+shl eax, 0x18
+and edi, 0xe0ffffff
+jmp near loc_fffb5b65 ; jmp 0xfffb5b65
+
+loc_fffb586f: ; not directly referenced
+mov edi, dword [ebx + 0xa4]
+and eax, 0xf
+shl eax, 6
+and edi, 0xfffffc3f
+jmp short loc_fffb5895 ; jmp 0xfffb5895
+
+loc_fffb5883: ; not directly referenced
+mov edi, dword [ebx + 0xa4]
+and eax, 0xf
+shl eax, 0xa
+and edi, 0xffffc3ff
+
+loc_fffb5895: ; not directly referenced
+or edi, eax
+mov eax, esi
+shl edx, 0xa
+mov ecx, edi
+add edx, 0x4008
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x1c], 0
+je loc_fffb5b85 ; je 0xfffb5b85
+mov dword [ebx + 0xa4], edi
+jmp near loc_fffb5b85 ; jmp 0xfffb5b85
+
+loc_fffb58be: ; not directly referenced
+mov edi, dword [ebx + 0xac]
+sub eax, 6
+and eax, 3
+shl eax, 0x11
+and edi, 0xfff9ffff
+jmp short loc_fffb5901 ; jmp 0xfffb5901
+
+loc_fffb58d5: ; not directly referenced
+sub eax, 6
+mov edi, dword [ebx + 0xac]
+cmp dword [esi + 0x2480], 3
+jne short loc_fffb58f5 ; jne 0xfffb58f5
+and eax, 7
+and edi, 0xffc7ffff
+shl eax, 0x13
+jmp short loc_fffb5901 ; jmp 0xfffb5901
+
+loc_fffb58f5: ; not directly referenced
+and eax, 3
+and edi, 0xffe7ffff
+shl eax, 0x13
+
+loc_fffb5901: ; not directly referenced
+or edi, eax
+mov eax, esi
+shl edx, 0xa
+mov ecx, edi
+add edx, 0x4014
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x1c], 0
+je loc_fffb5b85 ; je 0xfffb5b85
+mov dword [ebx + 0xac], edi
+jmp near loc_fffb5b85 ; jmp 0xfffb5b85
+
+loc_fffb592a: ; not directly referenced
+movzx ecx, byte [ebp - 0x24]
+lea edi, [ebx + ecx*4]
+mov ebx, dword [edi + 4]
+mov dword [ebp - 0x24], edi
+mov dword [ebp - 0x20], ebx
+shr ebx, 0xd
+and ebx, 0xf
+mov edi, ebx
+or edi, 0xfffffff0
+test bl, 8
+cmovne ebx, edi
+add eax, ebx
+mov bl, 6
+cmp al, 6
+cmovle ebx, eax
+mov al, 0xfc
+cmp bl, 0xfc
+cmovge eax, ebx
+mov ebx, dword [ebp - 0x20]
+and eax, 0xf
+mov edi, eax
+shl edi, 0xd
+and ebx, 0xff0e1fff
+shl eax, 0x14
+or ebx, edi
+or ebx, eax
+mov eax, esi
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, ebx
+mov edx, eax
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x1c], 0
+je loc_fffb5b85 ; je 0xfffb5b85
+mov eax, dword [ebp - 0x24]
+mov dword [eax + 4], ebx
+jmp near loc_fffb5b85 ; jmp 0xfffb5b85
+
+loc_fffb599b: ; not directly referenced
+movzx ecx, byte [ebp - 0x24]
+lea edi, [ebx + ecx*4]
+mov ebx, dword [edi + 4]
+mov dword [ebp - 0x20], ebx
+shr ebx, 0x11
+and ebx, 7
+add eax, ebx
+mov bl, 7
+cmp al, 7
+cmovle ebx, eax
+xor eax, eax
+test bl, bl
+cmovns eax, ebx
+and eax, 7
+mov ebx, eax
+shl ebx, 0x11
+mov dword [ebp - 0x24], ebx
+mov ebx, dword [ebp - 0x20]
+shl eax, 0x18
+and ebx, 0xf8f1ffff
+or ebx, dword [ebp - 0x24]
+or ebx, eax
+mov eax, esi
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, ebx
+mov edx, eax
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x1c], 0
+je loc_fffb5b85 ; je 0xfffb5b85
+mov dword [edi + 4], ebx
+jmp near loc_fffb5b85 ; jmp 0xfffb5b85
+
+loc_fffb59fe: ; not directly referenced
+imul eax, edx, 0x13c3
+xor edi, edi
+shl edx, 0xa
+lea eax, [esi + eax + 0x3756]
+mov dword [ebp - 0x24], eax
+lea eax, [edx + 0x4028]
+mov dword [ebp - 0x30], eax
+lea eax, [edx + 0x4024]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp - 0x20]
+and eax, 0x7f
+mov dword [ebp - 0x1c], eax
+
+loc_fffb5a2e: ; not directly referenced
+mov eax, edi
+mov byte [ebp - 0x2a], al
+movzx eax, byte [ebp - 0x2c]
+bt eax, edi
+jae loc_fffb5b13 ; jae 0xfffb5b13
+mov ecx, dword [ebp - 0x24]
+mov al, byte [ebp - 0x20]
+add al, byte [ecx + edi + 0x1011]
+sub al, byte [ecx + edi + 0x1015]
+mov byte [ebp - 0x29], al
+js loc_fffb5b13 ; js 0xfffb5b13
+mov edx, dword [ebp - 0x30]
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, dword [ebp - 0x28]
+mov dword [ebp - 0x34], eax
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov dl, byte [ebp - 0x2a]
+mov ecx, dword [ebp - 0x34]
+cmp dl, 2
+mov ebx, eax
+movzx eax, byte [ebp - 0x29]
+je short loc_fffb5ab1 ; je 0xfffb5ab1
+and eax, 0xf
+cmp dl, 3
+je short loc_fffb5aca ; je 0xfffb5aca
+dec dl
+je short loc_fffb5a9e ; je 0xfffb5a9e
+and ecx, 0xfffffff0
+and ebx, 0xffffff80
+or ecx, eax
+or ebx, dword [ebp - 0x1c]
+jmp short loc_fffb5ae0 ; jmp 0xfffb5ae0
+
+loc_fffb5a9e: ; not directly referenced
+shl eax, 4
+and cl, 0xf
+or ecx, eax
+mov eax, dword [ebp - 0x1c]
+and bh, 0x80
+shl eax, 8
+jmp short loc_fffb5ade ; jmp 0xfffb5ade
+
+loc_fffb5ab1: ; not directly referenced
+and eax, 0xf
+and ch, 0xf0
+shl eax, 8
+and ebx, 0xff80ffff
+or ecx, eax
+mov eax, dword [ebp - 0x1c]
+shl eax, 0x10
+jmp short loc_fffb5ade ; jmp 0xfffb5ade
+
+loc_fffb5aca: ; not directly referenced
+shl eax, 0xc
+and ch, 0xf
+or ecx, eax
+mov eax, dword [ebp - 0x1c]
+and ebx, 0x80ffffff
+shl eax, 0x18
+
+loc_fffb5ade: ; not directly referenced
+or ebx, eax
+
+loc_fffb5ae0: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, dword [ebp - 0x28]
+mov ecx, ebx
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x2b], 0
+je short loc_fffb5b13 ; je 0xfffb5b13
+mov ecx, dword [ebp - 0x24]
+mov al, byte [ebp - 0x20]
+mov byte [ecx + edi + 0x1015], al
+mov al, byte [ebp - 0x29]
+mov byte [ecx + edi + 0x1011], al
+
+loc_fffb5b13: ; not directly referenced
+inc edi
+cmp edi, 4
+jne loc_fffb5a2e ; jne 0xfffb5a2e
+jmp short loc_fffb5b85 ; jmp 0xfffb5b85
+
+loc_fffb5b1f: ; not directly referenced
+mov edi, dword [ebx + 0xa0]
+and eax, 7
+shl eax, 0xc
+and edi, 0xffff8fff
+
+loc_fffb5b31: ; not directly referenced
+or edi, eax
+mov eax, esi
+shl edx, 0xa
+mov ecx, edi
+add edx, 0x4004
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x1c], 0
+je short loc_fffb5b85 ; je 0xfffb5b85
+mov dword [ebx + 0xa0], edi
+jmp short loc_fffb5b85 ; jmp 0xfffb5b85
+
+loc_fffb5b53: ; not directly referenced
+mov edi, dword [ebx + 0xa8]
+and eax, 0x1f
+shl eax, 0xe
+and edi, 0xfff83fff
+
+loc_fffb5b65: ; not directly referenced
+or edi, eax
+mov eax, esi
+shl edx, 0xa
+mov ecx, edi
+add edx, 0x400c
+call fcn_fffae58c ; call 0xfffae58c
+cmp byte [ebp - 0x1c], 0
+je short loc_fffb5b85 ; je 0xfffb5b85
+mov dword [ebx + 0xa8], edi
+
+loc_fffb5b85: ; not directly referenced
+add esp, 0x2c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb5b8d:
+push ebp
+mov ebp, esp
+sub esp, 8
+call fcn_fffb468a ; call 0xfffb468a
+cmp eax, 1
+jne short loc_fffb5bab ; jne 0xfffb5bab
+call fcn_fffb481e ; call 0xfffb481e
+cmp eax, 1
+jne short loc_fffb5bab ; jne 0xfffb5bab
+mov al, 6
+jmp short loc_fffb5bb4 ; jmp 0xfffb5bb4
+
+loc_fffb5bab:
+cmp eax, 2
+sete al
+shl eax, 2
+
+loc_fffb5bb4:
+leave
+ret
+
+fcn_fffb5bb6:
+push ebp
+mov ebp, esp
+sub esp, 8
+call fcn_fffb468a ; call 0xfffb468a
+cmp eax, 1
+jne short loc_fffb5bdf ; jne 0xfffb5bdf
+call fcn_fffb481e ; call 0xfffb481e
+cmp eax, 1
+je short loc_fffb5bdb ; je 0xfffb5bdb
+cmp eax, 2
+sete dl
+shl edx, 3
+jmp short loc_fffb5be9 ; jmp 0xfffb5be9
+
+loc_fffb5bdb:
+mov dl, 0xe
+jmp short loc_fffb5be9 ; jmp 0xfffb5be9
+
+loc_fffb5bdf:
+cmp eax, 2
+mov dl, 0xa
+mov al, 0
+cmovne edx, eax
+
+loc_fffb5be9:
+mov al, dl
+leave
+ret
+
+fcn_fffb5bed: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+mov edx, 0x40
+push edi
+push esi
+push ebx
+sub esp, 0xac
+mov edi, dword [ebp + 8]
+mov eax, dword [edi + 0x5edc]
+mov esi, eax
+mov dword [ebp - 0x90], eax
+mov eax, dword [edi + 0x2443]
+mov dword [ebp - 0x7c], eax
+mov eax, dword [edi + 0x1887]
+mov dword [ebp - 0x78], eax
+mov eax, dword [edi + 0x188b]
+mov dword [ebp - 0x6c], eax
+mov eax, edi
+call fcn_fffc3c0d ; call 0xfffc3c0d
+lea eax, [edi + 0x3756]
+mov ecx, eax
+mov dword [ebp - 0x80], eax
+mov eax, esi
+xor esi, esi
+add eax, 0x1c
+mov dword [ebp - 0x8c], eax
+mov ebx, eax
+mov dword [ebp - 0x70], ecx
+
+loc_fffb5c50: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+cmp dword [eax], 2
+jne loc_fffb5e14 ; jne 0xfffb5e14
+cmp dword [ebp - 0x6c], 1
+je short loc_fffb5c9f ; je 0xfffb5c9f
+
+loc_fffb5c62: ; not directly referenced
+cmp byte [edi + 0x18b4], 1
+jne loc_fffb5d3d ; jne 0xfffb5d3d
+mov eax, dword [ebp - 0x7c]
+call dword [eax + 0x7c] ; ucall
+mov edx, dword [ebp - 0x6c]
+movzx eax, ax
+add eax, eax
+mov ecx, eax
+or eax, 1
+or ecx, 0x3e0001
+dec edx
+cmovne ecx, eax
+mov eax, edi
+lea edx, [esi*4 + 0x2000]
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffb5d3d ; jmp 0xfffb5d3d
+
+loc_fffb5c9f: ; not directly referenced
+mov dl, byte [ebx + 0xcb]
+mov ecx, 0xff
+mov al, byte [ebx + 3]
+and edx, 1
+shl edx, 6
+and eax, 0xffffffbf
+or eax, edx
+mov edx, esi
+mov byte [ebx + 3], al
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebx]
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+cmp byte [ebx + 0xcb], 0
+je short loc_fffb5c62 ; je 0xfffb5c62
+mov byte [ebp - 0x74], 0
+
+loc_fffb5cdc: ; not directly referenced
+mov al, byte [ebp - 0x74]
+cmp al, byte [edi + 0x2488]
+jae loc_fffb5c62 ; jae 0xfffb5c62
+movzx ecx, byte [ebp - 0x74]
+xor edx, edx
+mov al, byte [ebx + ecx*4 + 6]
+shr al, 1
+and eax, 7
+cmp al, 2
+jbe short loc_fffb5d04 ; jbe 0xfffb5d04
+lea edx, [eax - 1]
+and edx, 7
+
+loc_fffb5d04: ; not directly referenced
+mov al, byte [ebx + ecx*4 + 6]
+and edx, 7
+add edx, edx
+and eax, 0xfffffff1
+or eax, edx
+mov edx, esi
+mov byte [ebx + ecx*4 + 6], al
+mov eax, dword [ebx + ecx*4 + 4]
+mov dword [ebp - 0x84], eax
+mov eax, edi
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, dword [ebp - 0x84]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x74]
+jmp short loc_fffb5cdc ; jmp 0xfffb5cdc
+
+loc_fffb5d3d: ; not directly referenced
+imul eax, dword [edi + 0x18a7], 0x2e
+mov ecx, dword [ebp - 0x70]
+cmp word [ecx + eax + 8], 1
+jne short loc_fffb5d8a ; jne 0xfffb5d8a
+mov eax, esi
+shl eax, 0xa
+add eax, 0x4010
+mov edx, eax
+mov dword [ebp - 0x74], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov dl, byte [edi + 0x190b]
+mov ecx, edx
+shr dl, 1
+and ecx, 1
+and eax, 0xfffffff0
+and edx, 7
+add edx, edx
+or eax, ecx
+or eax, edx
+mov edx, dword [ebp - 0x74]
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb5d8a: ; not directly referenced
+cmp byte [edi + 0x190c], 0
+jne short loc_fffb5db8 ; jne 0xfffb5db8
+cmp dword [ebp - 0x6c], 0
+jne short loc_fffb5db8 ; jne 0xfffb5db8
+and byte [ebx + 0xa3], 0xdf
+mov edx, esi
+mov ecx, dword [ebx + 0xa0]
+shl edx, 0xa
+mov eax, edi
+add edx, 0x4004
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb5db8: ; not directly referenced
+lea edx, [esi*8 + 0x48a8]
+mov ecx, 0x3000
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x70]
+mov edx, esi
+shl edx, 0xa
+add edx, 0x42a0
+movzx ecx, byte [eax + 0xc4]
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+cmp byte [edi + 0x3748], 1
+jne short loc_fffb5e14 ; jne 0xfffb5e14
+lea eax, [esi*4 + 0x5004]
+mov edx, eax
+mov dword [ebp - 0x74], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, dword [ebp - 0x74]
+or eax, 0x3000000
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb5e14: ; not directly referenced
+inc esi
+add ebx, 0xcc
+add dword [ebp - 0x70], 0x13c3
+cmp esi, 2
+jne loc_fffb5c50 ; jne 0xfffb5c50
+xor eax, eax
+cmp dword [edi + 0x2480], 3
+sete al
+mov dword [ebp - 0x84], eax
+test byte [edi + 0x2406], 1
+je short loc_fffb5e4a ; je 0xfffb5e4a
+test eax, eax
+je short loc_fffb5e53 ; je 0xfffb5e53
+
+loc_fffb5e4a: ; not directly referenced
+xor edx, edx
+mov eax, edi
+call fcn_fffb0b30 ; call 0xfffb0b30
+
+loc_fffb5e53: ; not directly referenced
+mov eax, dword [ebp - 0x78]
+cmp eax, 0x40660
+sete dl
+cmp eax, 0x306c0
+sete al
+or dl, al
+jne short loc_fffb5e85 ; jne 0xfffb5e85
+
+loc_fffb5e6a: ; not directly referenced
+mov eax, dword [edi + 0x5edc]
+mov dword [ebp - 0x7c], 0
+lea esi, [eax + 0x1c]
+mov eax, dword [ebp - 0x80]
+mov dword [ebp - 0x74], eax
+jmp near loc_fffb5f7b ; jmp 0xfffb5f7b
+
+loc_fffb5e85: ; not directly referenced
+mov eax, dword [edi + 0x5edc]
+mov dword [ebp - 0x70], 0
+lea ebx, [eax + 0x1c]
+
+loc_fffb5e95: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffb5f49 ; jne 0xfffb5f49
+mov al, byte [edi + 0x2488]
+mov byte [ebp - 0x7c], al
+xor eax, eax
+
+loc_fffb5eb5: ; not directly referenced
+cmp byte [ebp - 0x7c], al
+jbe short loc_fffb5f1e ; jbe 0xfffb5f1e
+mov dl, byte [ebx + eax*4 + 5]
+movzx ecx, byte [ebx + eax*4 + 6]
+shr dl, 5
+and ecx, 1
+movzx edx, dl
+shl ecx, 3
+or ecx, edx
+mov esi, ecx
+mov dl, cl
+or edx, 0xfffffff0
+shr esi, 3
+cmove edx, ecx
+mov cl, byte [ebx + eax*4 + 6]
+movsx edx, dl
+shr cl, 1
+mov esi, ecx
+and esi, 7
+mov dword [ebp - 0x74], esi
+mov cl, byte [ebx + eax*4 + 6]
+shr cl, 4
+mov esi, ecx
+or esi, 0xfffffff0
+test cl, 8
+cmovne ecx, esi
+movzx esi, byte [ebx + eax*4 + 7]
+add edx, dword [ebp - 0x74]
+and esi, 7
+cmp edx, 6
+jg short loc_fffb5f22 ; jg 0xfffb5f22
+movsx ecx, cl
+inc eax
+add ecx, esi
+cmp ecx, 6
+jle short loc_fffb5eb5 ; jle 0xfffb5eb5
+jmp short loc_fffb5f22 ; jmp 0xfffb5f22
+
+loc_fffb5f1e: ; not directly referenced
+xor edx, edx
+jmp short loc_fffb5f24 ; jmp 0xfffb5f24
+
+loc_fffb5f22: ; not directly referenced
+mov dl, 1
+
+loc_fffb5f24: ; not directly referenced
+mov al, byte [ebx + 1]
+mov ecx, 0xff
+and eax, 0xfffffffe
+or eax, edx
+mov edx, dword [ebp - 0x70]
+mov byte [ebx + 1], al
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebx]
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffb5f49: ; not directly referenced
+inc dword [ebp - 0x70]
+add ebx, 0xcc
+cmp dword [ebp - 0x70], 2
+je loc_fffb5e6a ; je 0xfffb5e6a
+jmp near loc_fffb5e95 ; jmp 0xfffb5e95
+
+loc_fffb5f61: ; not directly referenced
+inc dword [ebp - 0x7c]
+add esi, 0xcc
+add dword [ebp - 0x74], 0x13c3
+cmp dword [ebp - 0x7c], 2
+je loc_fffb6031 ; je 0xfffb6031
+
+loc_fffb5f7b: ; not directly referenced
+mov eax, dword [ebp - 0x74]
+cmp dword [eax], 2
+jne short loc_fffb5f61 ; jne 0xfffb5f61
+mov byte [ebp - 0x70], 0
+
+loc_fffb5f87: ; not directly referenced
+movzx eax, byte [ebp - 0x70]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffb5f61 ; jae 0xfffb5f61
+mov ecx, dword [ebp - 0x74]
+mov bl, byte [ecx + 0xc4]
+lea eax, [ecx + eax + 0x104a]
+xor ecx, ecx
+mov dword [ebp - 0x88], eax
+xor eax, eax
+mov byte [ebp - 0x98], bl
+
+loc_fffb5fb3: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x98], dl
+je short loc_fffb5fe3 ; je 0xfffb5fe3
+mov ebx, dword [ebp - 0x88]
+mov dl, byte [ebx]
+mov byte [ebp - 0x94], dl
+mov dl, byte [ebx + 0x24]
+mov bl, byte [ebp - 0x94]
+cmp bl, dl
+cmovae edx, ebx
+cmp al, dl
+cmovb eax, edx
+
+loc_fffb5fe3: ; not directly referenced
+inc ecx
+add dword [ebp - 0x88], 9
+cmp ecx, 4
+jne short loc_fffb5fb3 ; jne 0xfffb5fb3
+movzx ebx, byte [ebp - 0x70]
+shr al, 3
+not eax
+shr eax, 1
+and eax, 3
+mov dl, byte [esi + ebx*4 + 5]
+mov ecx, ebx
+and byte [esi + ebx*4 + 4], 0x7f
+and edx, 0xfffffffc
+or edx, eax
+mov eax, edi
+mov byte [esi + ebx*4 + 5], dl
+mov edx, dword [ebp - 0x7c]
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, dword [esi + ebx*4 + 4]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x70]
+jmp near loc_fffb5f87 ; jmp 0xfffb5f87
+
+loc_fffb6031: ; not directly referenced
+movzx ecx, word [edi + 0x2489]
+mov eax, ecx
+shr ax, 1
+movzx eax, ax
+add eax, 0xb2c
+cdq
+idiv ecx
+mov ecx, 7
+cmp eax, 7
+ja short loc_fffb6061 ; ja 0xfffb6061
+xor cl, cl
+cmp eax, 2
+jbe short loc_fffb6061 ; jbe 0xfffb6061
+mov cl, 4
+cmp eax, 3
+cmovne ecx, eax
+
+loc_fffb6061: ; not directly referenced
+cmp dword [ebp - 0x6c], 1
+jne short loc_fffb6079 ; jne 0xfffb6079
+
+loc_fffb6067: ; not directly referenced
+cmp dword [ebp - 0x78], 0x40650
+jne loc_fffb6125 ; jne 0xfffb6125
+jmp near loc_fffb6132 ; jmp 0xfffb6132
+
+loc_fffb6079: ; not directly referenced
+and ecx, 7
+xor esi, esi
+mov ebx, dword [ebp - 0x8c]
+cmp dword [ebp - 0x84], 0
+lea eax, [ecx*8]
+mov dword [ebp - 0x70], 0
+cmove esi, ecx
+mov byte [ebp - 0x7c], al
+
+loc_fffb609f: ; not directly referenced
+imul eax, dword [ebp - 0x70], 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+je short loc_fffb60c1 ; je 0xfffb60c1
+
+loc_fffb60b0: ; not directly referenced
+inc dword [ebp - 0x70]
+add ebx, 0xcc
+cmp dword [ebp - 0x70], 2
+jne short loc_fffb609f ; jne 0xfffb609f
+jmp short loc_fffb6067 ; jmp 0xfffb6067
+
+loc_fffb60c1: ; not directly referenced
+mov byte [ebp - 0x6c], 0
+
+loc_fffb60c5: ; not directly referenced
+mov al, byte [ebp - 0x6c]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffb60b0 ; jae 0xfffb60b0
+cmp dword [ebp - 0x78], 0x40650
+movzx edx, byte [ebp - 0x6c]
+jne short loc_fffb60ef ; jne 0xfffb60ef
+mov al, byte [ebx + edx*4 + 7]
+lea ecx, [esi*8]
+and eax, 0xffffffc7
+or eax, ecx
+jmp short loc_fffb60f9 ; jmp 0xfffb60f9
+
+loc_fffb60ef: ; not directly referenced
+mov al, byte [ebx + edx*4 + 7]
+and eax, 0xffffffc7
+or eax, dword [ebp - 0x7c]
+
+loc_fffb60f9: ; not directly referenced
+mov byte [ebx + edx*4 + 7], al
+movzx eax, byte [ebp - 0x6c]
+mov edx, dword [ebp - 0x70]
+mov ecx, eax
+mov dword [ebp - 0x74], eax
+mov eax, edi
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, dword [ebp - 0x74]
+mov ecx, dword [ebx + ecx*4 + 4]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x6c]
+jmp short loc_fffb60c5 ; jmp 0xfffb60c5
+
+loc_fffb6125: ; not directly referenced
+cmp dword [edi + 0x188b], 1
+jne loc_fffb6434 ; jne 0xfffb6434
+
+loc_fffb6132: ; not directly referenced
+mov eax, dword [ebp - 0x80]
+mov esi, dword [ebp - 0x8c]
+mov dword [ebp - 0x74], 0
+mov dword [ebp - 0x78], eax
+
+loc_fffb6145: ; not directly referenced
+mov eax, dword [ebp - 0x78]
+cmp dword [eax], 2
+je short loc_fffb6168 ; je 0xfffb6168
+
+loc_fffb614d: ; not directly referenced
+inc dword [ebp - 0x74]
+add esi, 0xcc
+add dword [ebp - 0x78], 0x13c3
+cmp dword [ebp - 0x74], 2
+jne short loc_fffb6145 ; jne 0xfffb6145
+jmp near loc_fffb62d1 ; jmp 0xfffb62d1
+
+loc_fffb6168: ; not directly referenced
+mov ebx, dword [ebp - 0x78]
+xor ecx, ecx
+mov al, byte [ebx + 0xc4]
+mov dword [ebp - 0x70], ebx
+xor ebx, ebx
+mov byte [ebp - 0x80], al
+
+loc_fffb617b: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x80], dl
+je short loc_fffb61bd ; je 0xfffb61bd
+mov al, byte [edi + 0x2488]
+xor edx, edx
+mov byte [ebp - 0x7c], al
+
+loc_fffb6192: ; not directly referenced
+cmp byte [ebp - 0x7c], dl
+jbe short loc_fffb61bd ; jbe 0xfffb61bd
+mov eax, dword [ebp - 0x70]
+mov ax, word [eax + edx*2 + 0x1b1]
+mov word [ebp - 0x6c], ax
+movzx eax, bl
+shr word [ebp - 0x6c], 6
+cmp ax, word [ebp - 0x6c]
+mov al, byte [ebp - 0x6c]
+cmova eax, ebx
+inc edx
+mov bl, al
+jmp short loc_fffb6192 ; jmp 0xfffb6192
+
+loc_fffb61bd: ; not directly referenced
+inc ecx
+add dword [ebp - 0x70], 0x12
+cmp ecx, 4
+jne short loc_fffb617b ; jne 0xfffb617b
+cmp dword [ebp - 0x84], 0
+mov al, 1
+je short loc_fffb61df ; je 0xfffb61df
+movzx ecx, word [edi + 0x2489]
+lea eax, [ecx + 0x3f]
+cdq
+idiv ecx
+
+loc_fffb61df: ; not directly referenced
+mov byte [ebp - 0x70], 0
+lea eax, [ebx + eax*2 + 0xf]
+mov byte [ebp - 0x6c], al
+
+loc_fffb61ea: ; not directly referenced
+mov al, byte [ebp - 0x70]
+cmp al, byte [edi + 0x2488]
+jae loc_fffb614d ; jae 0xfffb614d
+movzx ecx, byte [ebp - 0x70]
+mov bl, 0x1f
+mov al, byte [esi + ecx*4 + 7]
+shr al, 6
+and eax, 1
+cmp al, 1
+sbb byte [ebp - 0x6c], 0xff
+mov al, byte [ebp - 0x6c]
+cmp al, 0x1f
+cmova eax, ebx
+mov byte [ebp - 0x6c], al
+mov dl, byte [esi + ecx*4 + 5]
+movzx eax, byte [esi + ecx*4 + 6]
+shr dl, 5
+and eax, 1
+movzx edx, dl
+shl eax, 3
+or eax, edx
+mov edx, eax
+mov bl, al
+or ebx, 0xfffffff0
+shr edx, 3
+mov dl, byte [esi + ecx*4 + 6]
+cmove ebx, eax
+shr dl, 1
+and edx, 7
+test byte [esi + 3], 0x40
+je short loc_fffb6271 ; je 0xfffb6271
+lea eax, [ecx + 8]
+mov bl, byte [ebp - 0x6c]
+mov dl, byte [esi + eax*4 + 9]
+movzx eax, byte [esi + eax*4 + 0xa]
+shr dl, 5
+and eax, 3
+movzx edx, dl
+shl eax, 3
+or eax, edx
+cmp bl, al
+cmovae eax, ebx
+jmp short loc_fffb6283 ; jmp 0xfffb6283
+
+loc_fffb6271: ; not directly referenced
+lea eax, [edx + ebx + 0xe]
+mov bl, 0x1f
+cmp al, 0x1f
+mov dl, 0x11
+cmovg eax, ebx
+cmp al, 0x11
+cmovl eax, edx
+
+loc_fffb6283: ; not directly referenced
+and eax, 0x1f
+mov dl, al
+lea ebx, [ecx + 8]
+shl edx, 5
+mov byte [ebp - 0x7c], dl
+mov dl, byte [esi + ebx*4 + 9]
+shr al, 3
+and eax, 3
+and edx, 0x1f
+or edx, dword [ebp - 0x7c]
+mov byte [esi + ebx*4 + 9], dl
+mov dl, byte [esi + ebx*4 + 0xa]
+and edx, 0xfffffffc
+or edx, eax
+mov eax, edi
+mov byte [esi + ebx*4 + 0xa], dl
+mov edx, dword [ebp - 0x74]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [esi + ebx*4 + 8]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x70]
+jmp near loc_fffb61ea ; jmp 0xfffb61ea
+
+loc_fffb62d1: ; not directly referenced
+mov eax, dword [edi + 0x2443]
+cmp byte [edi + 0x2402], 0
+mov ebx, dword [edi + 0x5edc]
+mov dword [ebp - 0x74], eax
+je loc_fffb6434 ; je 0xfffb6434
+mov edx, 0x4024
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x40d0
+mov dword [ebp - 0x78], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x4ca4
+mov dword [ebp - 0x7c], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov dl, byte [ebx + 0xc8]
+movzx ecx, byte [ebx + 0xc9]
+mov esi, edx
+and esi, 0x1f
+and ecx, 3
+shr dl, 5
+mov dword [ebp - 0x80], esi
+lea esi, [ecx*8]
+movzx edx, dl
+mov dword [ebp - 0x70], esi
+xor ecx, ecx
+or dword [ebp - 0x70], edx
+mov dl, byte [ebx + 0xcb]
+shr dl, 2
+mov esi, edx
+mov dl, byte [ebx + 0xbf]
+and esi, 3
+mov dword [ebp - 0x84], esi
+shr dl, 6
+movzx esi, dl
+mov dl, byte [ebx + 0xc3]
+mov dword [ebp - 0x6c], esi
+shr dl, 7
+cmp dword [edi + 0x2480], 1
+movzx esi, dl
+jne short loc_fffb638c ; jne 0xfffb638c
+mov edx, dword [ebp - 0x70]
+xor ecx, ecx
+add edx, dword [ebp - 0x6c]
+sub edx, esi
+cmp edx, 5
+sete cl
+
+loc_fffb638c: ; not directly referenced
+mov bl, al
+mov edx, 1
+and ebx, 3
+cmp bl, 2
+jne short loc_fffb63a3 ; jne 0xfffb63a3
+shr eax, 4
+mov edx, eax
+and edx, 7
+
+loc_fffb63a3: ; not directly referenced
+mov al, byte [edi + 0x381a]
+add esi, esi
+add ecx, ecx
+mov byte [ebp - 0x70], al
+lea eax, [esi + 4]
+mov esi, dword [ebp - 0x84]
+add esi, dword [ebp - 0x80]
+add esi, dword [ebp - 0x6c]
+add esi, esi
+sub eax, esi
+sub eax, ecx
+lea eax, [eax + edx*8 - 8]
+xor edx, edx
+mov dword [ebp - 0x6c], eax
+xor eax, eax
+
+loc_fffb63d0: ; not directly referenced
+mov cl, al
+mov esi, 1
+shl esi, cl
+mov ecx, esi
+test byte [ebp - 0x70], cl
+je short loc_fffb6416 ; je 0xfffb6416
+mov ebx, dword [ebp - 0x78]
+lea esi, [eax*8]
+mov ecx, esi
+mov dword [ebp - 0x80], esi
+shr ebx, cl
+mov esi, ebx
+mov ebx, dword [ebp - 0x7c]
+lea ecx, [eax + eax]
+and esi, 0x3f
+add esi, dword [ebp - 0x6c]
+shr ebx, cl
+mov ecx, ebx
+and ecx, 3
+add ecx, ecx
+sub esi, ecx
+mov ecx, esi
+movzx esi, cl
+mov cl, byte [ebp - 0x80]
+shl esi, cl
+or edx, esi
+
+loc_fffb6416: ; not directly referenced
+inc eax
+cmp eax, 4
+jne short loc_fffb63d0 ; jne 0xfffb63d0
+push ebx
+push ebx
+push edx
+mov eax, dword [edi + 0x18cd]
+add eax, 0xc04
+push eax
+mov eax, dword [ebp - 0x74]
+call dword [eax + 0x30] ; ucall
+add esp, 0x10
+
+loc_fffb6434: ; not directly referenced
+mov ecx, 0x14
+mov edx, 0x5f08
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov esi, dword [ebp - 0x90]
+mov dl, byte [edi + 0x369d]
+mov al, byte [esi + 0x16]
+shl edx, 7
+and eax, 0x7f
+or eax, edx
+mov byte [esi + 0x16], al
+mov dl, byte [edi + 0x369e]
+and eax, 0xffffffbf
+and edx, 1
+shl edx, 6
+or eax, edx
+mov byte [esi + 0x16], al
+mov dl, byte [edi + 0x369f]
+and eax, 0xffffffdf
+and edx, 1
+shl edx, 5
+or eax, edx
+mov edx, 0xf78
+mov byte [esi + 0x16], al
+mov ecx, dword [esi + 0x14]
+mov eax, 0xf84
+cmp dword [edi + 0x188b], 1
+cmove edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov ebx, dword [edi + 0x5edc]
+cmp dword [edi + 0x3756], 2
+jne short loc_fffb6508 ; jne 0xfffb6508
+cmp dword [edi + 0x36d7], 0x74a
+ja short loc_fffb64f4 ; ja 0xfffb64f4
+
+loc_fffb64c0: ; not directly referenced
+cmp dword [edi + 0x36d7], 0x854
+ja short loc_fffb64e0 ; ja 0xfffb64e0
+
+loc_fffb64cc: ; not directly referenced
+mov ecx, dword [ebx + 0xc8]
+mov edx, 0x4014
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb6508 ; jmp 0xfffb6508
+
+loc_fffb64e0: ; not directly referenced
+mov al, byte [ebx + 0xc9]
+and eax, 0xffffffcf
+or eax, 0x20
+mov byte [ebx + 0xc9], al
+jmp short loc_fffb64cc ; jmp 0xfffb64cc
+
+loc_fffb64f4: ; not directly referenced
+mov al, byte [ebx + 0xc9]
+and eax, 0xfffffff3
+or eax, 8
+mov byte [ebx + 0xc9], al
+jmp short loc_fffb64c0 ; jmp 0xfffb64c0
+
+loc_fffb6508: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffb655f ; jne 0xfffb655f
+cmp dword [edi + 0x36d7], 0x74a
+jbe short loc_fffb652f ; jbe 0xfffb652f
+mov al, byte [ebx + 0x195]
+and eax, 0xfffffff3
+or eax, 8
+mov byte [ebx + 0x195], al
+
+loc_fffb652f: ; not directly referenced
+cmp dword [edi + 0x36d7], 0x854
+jbe short loc_fffb654d ; jbe 0xfffb654d
+mov al, byte [ebx + 0x195]
+and eax, 0xffffffcf
+or eax, 0x20
+mov byte [ebx + 0x195], al
+
+loc_fffb654d: ; not directly referenced
+mov ecx, dword [ebx + 0x194]
+mov edx, 0x4414
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb655f: ; not directly referenced
+mov eax, edi
+call fcn_fffae778 ; call 0xfffae778
+mov edx, 0x501c
+mov eax, edi
+cmp byte [edi + 0x190a], 1
+sbb ecx, ecx
+and ecx, 0x40000000
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, edi
+call fcn_fffa870e ; call 0xfffa870e
+lea ecx, [edi + 0x18b5]
+mov edx, 0x41
+mov eax, edi
+call fcn_fffc3c0d ; call 0xfffc3c0d
+cmp byte [edi + 0x192b], 0
+jne loc_fffb6c2c ; jne 0xfffb6c2c
+mov ebx, dword [edi + 0x2443]
+lea eax, [ebp - 0x40]
+push ecx
+push 0
+push 8
+push eax
+mov dword [ebp - 0x50], ref_fffd4088 ; mov dword [ebp - 0x50], 0xfffd4088
+mov dword [ebp - 0x4c], ref_fffd4038 ; mov dword [ebp - 0x4c], 0xfffd4038
+mov dword [ebp - 0x48], ref_fffd3fd8 ; mov dword [ebp - 0x48], 0xfffd3fd8
+mov dword [ebp - 0x44], ref_fffd3fcc ; mov dword [ebp - 0x44], 0xfffd3fcc
+mov dword [ebp - 0xb8], 0
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0x38]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0x30]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0x28]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0x20]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0xff
+push 4
+lea eax, [ebp - 0x58]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 4
+lea eax, [ebp - 0x54]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0x10
+cmp dword [edi + 0x2480], 3
+jne short loc_fffb6650 ; jne 0xfffb6650
+mov word [ebp - 0x5c], 8
+mov word [ebp - 0x5a], 1
+jmp short loc_fffb665c ; jmp 0xfffb665c
+
+loc_fffb6650: ; not directly referenced
+mov word [ebp - 0x5c], 0x228
+mov word [ebp - 0x5a], 7
+
+loc_fffb665c: ; not directly referenced
+mov eax, dword [edi + 0x18a7]
+mov dword [ebp - 0xb0], eax
+dec eax
+je loc_fffb6c2c ; je 0xfffb6c2c
+lea eax, [edi + 0x48c9]
+mov dword [ebp - 0x7c], eax
+lea eax, [ebp - 0x58]
+mov dword [ebp - 0x90], eax
+lea eax, [ebp - 0x20]
+mov dword [ebp - 0xa4], eax
+lea eax, [ebp - 0x28]
+mov dword [ebp - 0x8c], eax
+lea eax, [ebp - 0x30]
+mov dword [ebp - 0x94], eax
+lea eax, [ebp - 0x38]
+mov dword [ebp - 0x98], eax
+lea eax, [ebp - 0x40]
+mov dword [ebp - 0x88], eax
+lea eax, [ebp - 0x54]
+mov dword [ebp - 0x80], eax
+mov byte [ebp - 0x74], 0xff
+
+loc_fffb66b8: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+cmp dword [eax - 0x1173], 2
+jne loc_fffb69e0 ; jne 0xfffb69e0
+mov dword [ebp - 0x6c], eax
+mov dword [ebp - 0x78], 0
+
+loc_fffb66d2: ; not directly referenced
+mov eax, dword [ebp - 0x6c]
+cmp dword [eax], 2
+jne loc_fffb69cc ; jne 0xfffb69cc
+mov eax, dword [ebp - 0xb0]
+mov eax, dword [edi + eax*4 + 0x3735]
+cmp eax, 0x546
+je short loc_fffb6713 ; je 0xfffb6713
+cmp eax, 0x5dc
+je short loc_fffb671a ; je 0xfffb671a
+cmp eax, 0x4b0
+setne cl
+movzx eax, cl
+movzx ebx, cl
+lea eax, [eax + eax*2 + 1]
+mov dword [ebp - 0x84], ebx
+jmp short loc_fffb6729 ; jmp 0xfffb6729
+
+loc_fffb6713: ; not directly referenced
+mov eax, 2
+jmp short loc_fffb671f ; jmp 0xfffb671f
+
+loc_fffb671a: ; not directly referenced
+mov eax, 3
+
+loc_fffb671f: ; not directly referenced
+mov dword [ebp - 0x84], 0
+
+loc_fffb6729: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+and eax, 0xfffffe0f
+movzx ebx, byte [esi + 0xcc]
+movzx ecx, byte [esi + 0xd9]
+and ebx, 1
+shl ebx, 4
+and ecx, 0xf
+or eax, ebx
+movzx ebx, byte [esi + 0xf2]
+shl ecx, 5
+or eax, ecx
+movzx ecx, byte [esi + 0xed]
+and ah, 0x81
+and ebx, 7
+shl ebx, 9
+or eax, ebx
+mov ebx, dword [ebp - 0x7c]
+and ecx, 7
+shl ecx, 0xc
+or eax, ecx
+and eax, 0xfffe7fff
+movzx ecx, byte [ebx - 0x10b3]
+and ecx, 3
+shl ecx, 0xf
+or eax, ecx
+mov ecx, dword [edi + 0x36d7]
+cmp ecx, 0x640
+je short loc_fffb67db ; je 0xfffb67db
+ja short loc_fffb67b3 ; ja 0xfffb67b3
+cmp ecx, 0x42b
+je short loc_fffb67cf ; je 0xfffb67cf
+cmp ecx, 0x535
+jne short loc_fffb67f3 ; jne 0xfffb67f3
+and eax, 0xffe1ffff
+or eax, 0xa0000
+jmp short loc_fffb67fd ; jmp 0xfffb67fd
+
+loc_fffb67b3: ; not directly referenced
+cmp ecx, 0x74b
+je short loc_fffb67e7 ; je 0xfffb67e7
+cmp ecx, 0x855
+jne short loc_fffb67f3 ; jne 0xfffb67f3
+and eax, 0xffe1ffff
+or eax, 0x160000
+jmp short loc_fffb67fd ; jmp 0xfffb67fd
+
+loc_fffb67cf: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0x60000
+jmp short loc_fffb67fd ; jmp 0xfffb67fd
+
+loc_fffb67db: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0xe0000
+jmp short loc_fffb67fd ; jmp 0xfffb67fd
+
+loc_fffb67e7: ; not directly referenced
+and eax, 0xffe1ffff
+or eax, 0x120000
+jmp short loc_fffb67fd ; jmp 0xfffb67fd
+
+loc_fffb67f3: ; not directly referenced
+mov dword [ebp - 0x84], 1
+
+loc_fffb67fd: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+and eax, 0xff1fffff
+mov ebx, dword [edi + 0x2480]
+mov dword [ebp - 0x70], 0
+movzx ecx, byte [esi + 0xf3]
+mov dword [ebp - 0xb4], ebx
+and ecx, 7
+shl ecx, 0x15
+or eax, ecx
+mov ecx, eax
+and ecx, 0xfffe7e0f
+cmp ebx, 3
+cmove eax, ecx
+xor ebx, ebx
+
+loc_fffb6837: ; not directly referenced
+mov edx, dword [ebp - 0x70]
+mov byte [ebp - 0xa9], dl
+test dl, dl
+jne short loc_fffb6853 ; jne 0xfffb6853
+cmp dword [ebp - 0x84], 0
+jne loc_fffb69bf ; jne 0xfffb69bf
+jmp short loc_fffb6860 ; jmp 0xfffb6860
+
+loc_fffb6853: ; not directly referenced
+test ebx, ebx
+jne loc_fffb69ba ; jne 0xfffb69ba
+and eax, 0xff0001ff
+
+loc_fffb6860: ; not directly referenced
+mov ecx, dword [ebp - 0x70]
+xor esi, esi
+movzx ecx, word [ebp + ecx*2 - 0x5c]
+mov word [ebp - 0xac], cx
+dec ecx
+mov dword [ebp - 0xa8], ecx
+
+loc_fffb6878: ; not directly referenced
+cmp word [ebp - 0xac], si
+jbe loc_fffb69bf ; jbe 0xfffb69bf
+cmp dword [ebp - 0xb4], 3
+jne loc_fffb6930 ; jne 0xfffb6930
+mov edx, dword [ebp - 0x70]
+imul ecx, esi, 0xc
+add ecx, dword [ebp + edx*4 - 0x48]
+cmp eax, dword [ecx]
+jne short loc_fffb6910 ; jne 0xfffb6910
+
+loc_fffb68a0: ; not directly referenced
+mov bl, byte [ecx + 5]
+mov esi, dword [ebp - 0x78]
+mov edx, dword [ebp - 0x88]
+cmp byte [edi + 0x3755], 1
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x98]
+mov bl, byte [ecx + 6]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x94]
+mov bl, byte [ecx + 7]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x8c]
+mov bl, byte [ecx + 8]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0xa4]
+mov bl, byte [ecx + 9]
+mov byte [edx + esi], bl
+mov ebx, dword [ebp - 0x90]
+mov dl, byte [ecx + 4]
+mov byte [ebx + esi], dl
+mov bl, byte [ecx + 0xa]
+mov cl, byte [ecx + 0xb]
+cmove ecx, ebx
+mov ebx, dword [ebp - 0x80]
+mov byte [ebx + esi], cl
+mov bl, byte [ebp - 0x74]
+cmp bl, dl
+cmovbe edx, ebx
+mov bl, dl
+jmp near loc_fffb699c ; jmp 0xfffb699c
+
+loc_fffb6910: ; not directly referenced
+cmp byte [ebp - 0xa9], 1
+jne loc_fffb69b4 ; jne 0xfffb69b4
+mov edx, dword [ebp - 0xa8]
+cmp esi, edx
+jne loc_fffb69b4 ; jne 0xfffb69b4
+jmp near loc_fffb68a0 ; jmp 0xfffb68a0
+
+loc_fffb6930: ; not directly referenced
+mov edx, dword [ebp - 0x70]
+imul ecx, esi, 0xb
+add ecx, dword [ebp + edx*4 - 0x50]
+cmp eax, dword [ecx]
+jne short loc_fffb69a1 ; jne 0xfffb69a1
+
+loc_fffb693e: ; not directly referenced
+mov bl, byte [ecx + 5]
+mov esi, dword [ebp - 0x78]
+mov edx, dword [ebp - 0x88]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x98]
+mov bl, byte [ecx + 6]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x94]
+mov bl, byte [ecx + 7]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x8c]
+mov bl, byte [ecx + 8]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0xa4]
+mov bl, byte [ecx + 9]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x90]
+mov bl, byte [ecx + 4]
+mov byte [edx + esi], bl
+mov edx, dword [ebp - 0x80]
+mov cl, byte [ecx + 0xa]
+mov byte [edx + esi], cl
+mov cl, byte [ebp - 0x74]
+cmp cl, bl
+cmova ecx, ebx
+mov bl, cl
+
+loc_fffb699c: ; not directly referenced
+mov byte [ebp - 0x74], bl
+jmp short loc_fffb69ba ; jmp 0xfffb69ba
+
+loc_fffb69a1: ; not directly referenced
+cmp byte [ebp - 0xa9], 1
+jne short loc_fffb69b4 ; jne 0xfffb69b4
+mov edx, dword [ebp - 0xa8]
+cmp esi, edx
+je short loc_fffb693e ; je 0xfffb693e
+
+loc_fffb69b4: ; not directly referenced
+inc esi
+jmp near loc_fffb6878 ; jmp 0xfffb6878
+
+loc_fffb69ba: ; not directly referenced
+mov ebx, 1
+
+loc_fffb69bf: ; not directly referenced
+inc dword [ebp - 0x70]
+cmp dword [ebp - 0x70], 2
+jne loc_fffb6837 ; jne 0xfffb6837
+
+loc_fffb69cc: ; not directly referenced
+inc dword [ebp - 0x78]
+add dword [ebp - 0x6c], 0x128
+cmp dword [ebp - 0x78], 2
+jne loc_fffb66d2 ; jne 0xfffb66d2
+
+loc_fffb69e0: ; not directly referenced
+add dword [ebp - 0x80], 2
+add dword [ebp - 0x7c], 0x13c3
+add dword [ebp - 0x88], 4
+add dword [ebp - 0x98], 4
+add dword [ebp - 0x94], 4
+add dword [ebp - 0x8c], 4
+add dword [ebp - 0xa4], 4
+add dword [ebp - 0x90], 2
+lea eax, [ebp - 0x50]
+cmp dword [ebp - 0x80], eax
+jne loc_fffb66b8 ; jne 0xfffb66b8
+lea eax, [ebp - 0x58]
+mov esi, 0x42f8
+mov dword [ebp - 0x8c], eax
+lea eax, [ebp - 0x20]
+mov dword [ebp - 0x7c], eax
+lea eax, [ebp - 0x28]
+mov dword [ebp - 0x84], eax
+lea eax, [ebp - 0x30]
+mov dword [ebp - 0x80], eax
+lea eax, [ebp - 0x38]
+mov dword [ebp - 0x88], eax
+lea eax, [ebp - 0x40]
+mov dword [ebp - 0x70], edi
+lea ebx, [ebp - 0x54]
+mov dword [ebp - 0x78], eax
+
+loc_fffb6a59: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+cmp dword [eax + 0x3756], 2
+jne loc_fffb6bc1 ; jne 0xfffb6bc1
+xor eax, eax
+
+loc_fffb6a6b: ; not directly referenced
+imul edx, eax, 0x128
+mov ecx, dword [ebp - 0x70]
+cmp dword [ecx + edx + 0x48c9], 2
+jne loc_fffb6b29 ; jne 0xfffb6b29
+mov ecx, dword [ebp - 0x8c]
+mov cl, byte [ecx + eax]
+sub cl, byte [ebp - 0x74]
+mov byte [ebp - 0x6c], cl
+je loc_fffb6b29 ; je 0xfffb6b29
+mov ecx, dword [ebp - 0x78]
+movzx edx, byte [ecx + eax]
+mov dword [ebp - 0x90], ecx
+mov cl, byte [ebp - 0x6c]
+inc edx
+sar edx, cl
+mov ecx, dword [ebp - 0x90]
+mov byte [ecx + eax], dl
+mov ecx, dword [ebp - 0x88]
+movzx edx, byte [ecx + eax]
+mov dword [ebp - 0x90], ecx
+mov cl, byte [ebp - 0x6c]
+inc edx
+sar edx, cl
+mov ecx, dword [ebp - 0x90]
+mov byte [ecx + eax], dl
+mov ecx, dword [ebp - 0x80]
+movzx edx, byte [ecx + eax]
+mov dword [ebp - 0x90], ecx
+mov cl, byte [ebp - 0x6c]
+inc edx
+sar edx, cl
+mov ecx, dword [ebp - 0x90]
+mov byte [ecx + eax], dl
+mov ecx, dword [ebp - 0x84]
+movzx edx, byte [ecx + eax]
+mov dword [ebp - 0x90], ecx
+mov cl, byte [ebp - 0x6c]
+inc edx
+sar edx, cl
+mov ecx, dword [ebp - 0x90]
+mov byte [ecx + eax], dl
+mov ecx, dword [ebp - 0x7c]
+movzx edx, byte [ecx + eax]
+mov dword [ebp - 0x90], ecx
+mov cl, byte [ebp - 0x6c]
+inc edx
+sar edx, cl
+mov ecx, dword [ebp - 0x90]
+mov byte [ecx + eax], dl
+
+loc_fffb6b29: ; not directly referenced
+inc eax
+cmp eax, 2
+jne loc_fffb6a6b ; jne 0xfffb6a6b
+mov eax, dword [ebp - 0x70]
+cmp dword [eax + 0x3816], 1
+ja short loc_fffb6b4b ; ja 0xfffb6b4b
+mov al, byte [ebx]
+mov dl, byte [ebx + 1]
+cmp dl, al
+cmovae eax, edx
+jmp short loc_fffb6b6a ; jmp 0xfffb6b6a
+
+loc_fffb6b4b: ; not directly referenced
+movzx edx, byte [ebx]
+movzx eax, byte [ebx + 1]
+cmp dl, al
+je short loc_fffb6b71 ; je 0xfffb6b71
+lea eax, [edx + eax + 1]
+sar eax, 1
+cmp al, 0xf7
+ja short loc_fffb6b6e ; ja 0xfffb6b6e
+test al, 7
+je short loc_fffb6b6a ; je 0xfffb6b6a
+and eax, 0xfffffff8
+add eax, 8
+
+loc_fffb6b6a: ; not directly referenced
+mov byte [ebx], al
+jmp short loc_fffb6b71 ; jmp 0xfffb6b71
+
+loc_fffb6b6e: ; not directly referenced
+mov byte [ebx], 0xf8
+
+loc_fffb6b71: ; not directly referenced
+mov eax, dword [ebp - 0x78]
+mov edx, esi
+mov ecx, dword [eax]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x88]
+lea edx, [esi + 4]
+mov ecx, dword [eax]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x80]
+lea edx, [esi - 4]
+mov ecx, dword [eax]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x84]
+lea edx, [esi - 8]
+mov ecx, dword [eax]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x7c]
+lea edx, [esi - 0xc]
+mov ecx, dword [eax]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb6bc1: ; not directly referenced
+add esi, 0x400
+add ebx, 2
+add dword [ebp - 0x70], 0x13c3
+add dword [ebp - 0x78], 4
+add dword [ebp - 0x88], 4
+add dword [ebp - 0x80], 4
+add dword [ebp - 0x84], 4
+add dword [ebp - 0x7c], 4
+add dword [ebp - 0x8c], 2
+cmp esi, 0x4af8
+jne loc_fffb6a59 ; jne 0xfffb6a59
+mov eax, dword [ebp - 0xb8]
+mov edx, 0x5888
+mov al, byte [ebp - 0x54]
+mov ebx, eax
+mov al, byte [ebp - 0x52]
+mov bh, al
+mov eax, edi
+mov ecx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+movzx ecx, byte [ebp - 0x74]
+mov edx, 0x5884
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffb6c2c: ; not directly referenced
+cmp dword [edi + 0x188b], 1
+jne loc_fffb6efc ; jne 0xfffb6efc
+movzx eax, byte [edi + 0x2420]
+mov byte [ebp - 0x6c], al
+test al, al
+je loc_fffb6eb3 ; je 0xfffb6eb3
+mov esi, dword [edi + 0x2443]
+cmp al, 4
+ja loc_fffb6ded ; ja 0xfffb6ded
+shl eax, 3
+push edx
+push eax
+lea eax, [edi + 0x2421]
+push eax
+lea eax, [edi + 0x36a9]
+push eax
+call dword [esi + 0x58] ; ucall
+mov cl, byte [ebp - 0x6c]
+mov eax, 1
+add esp, 0x10
+shl eax, cl
+dec eax
+mov byte [ebp - 0x70], al
+xor eax, eax
+
+loc_fffb6c82: ; not directly referenced
+and dword [edi + eax*8 + 0x36a9], 0xffffffc0
+and dword [edi + eax*8 + 0x36ad], 0x7f
+inc eax
+cmp byte [ebp - 0x6c], al
+ja short loc_fffb6c82 ; ja 0xfffb6c82
+mov al, byte [ebp - 0x6c]
+xor ecx, ecx
+mov byte [ebp - 0x74], 0
+dec eax
+mov byte [ebp - 0x78], al
+
+loc_fffb6ca5: ; not directly referenced
+cmp cl, byte [ebp - 0x78]
+jae short loc_fffb6d06 ; jae 0xfffb6d06
+lea eax, [ecx + 1]
+mov byte [ebp - 0x7c], al
+
+loc_fffb6cb0: ; not directly referenced
+cmp al, byte [ebp - 0x6c]
+jae short loc_fffb6d00 ; jae 0xfffb6d00
+lea esi, [ecx + 0x24a]
+movzx ebx, al
+mov edx, dword [edi + esi*8 + 0x2459]
+add ebx, 0x24a
+mov dword [ebp - 0x80], edx
+mov edx, dword [edi + ebx*8 + 0x245d]
+cmp dword [edi + esi*8 + 0x245d], edx
+jne short loc_fffb6cfd ; jne 0xfffb6cfd
+mov esi, dword [ebp - 0x80]
+cmp esi, dword [edi + ebx*8 + 0x2459]
+jne short loc_fffb6cfd ; jne 0xfffb6cfd
+mov eax, 1
+shl eax, cl
+mov ecx, eax
+not ecx
+inc byte [ebp - 0x74]
+and byte [ebp - 0x70], cl
+jmp short loc_fffb6d00 ; jmp 0xfffb6d00
+
+loc_fffb6cfd: ; not directly referenced
+inc eax
+jmp short loc_fffb6cb0 ; jmp 0xfffb6cb0
+
+loc_fffb6d00: ; not directly referenced
+movzx ecx, byte [ebp - 0x7c]
+jmp short loc_fffb6ca5 ; jmp 0xfffb6ca5
+
+loc_fffb6d06: ; not directly referenced
+xor ebx, ebx
+
+loc_fffb6d08: ; not directly referenced
+movzx eax, byte [ebp - 0x70]
+bt eax, ebx
+jae short loc_fffb6d6a ; jae 0xfffb6d6a
+push esi
+mov eax, dword [edi + 0x2443]
+push 0x14
+push dword [edi + ebx*8 + 0x36ad]
+push dword [edi + ebx*8 + 0x36a9]
+call dword [eax + 0x6c] ; ucall
+mov ecx, dword [edi + 0x370d]
+add esp, 0x10
+mov dword [ebp - 0x7c], ecx
+mov esi, edx
+mov edx, dword [edi + 0x36f0]
+cmp esi, 0
+ja short loc_fffb6d48 ; ja 0xfffb6d48
+cmp eax, edx
+jb short loc_fffb6d6a ; jb 0xfffb6d6a
+
+loc_fffb6d48: ; not directly referenced
+cmp esi, 0
+ja short loc_fffb6d58 ; ja 0xfffb6d58
+cmp eax, 0xfff
+jbe loc_fffb6ebc ; jbe 0xfffb6ebc
+
+loc_fffb6d58: ; not directly referenced
+cmp esi, 0
+ja loc_fffb6ebc ; ja 0xfffb6ebc
+cmp eax, dword [ebp - 0x7c]
+jae loc_fffb6ebc ; jae 0xfffb6ebc
+
+loc_fffb6d6a: ; not directly referenced
+inc ebx
+cmp byte [ebp - 0x6c], bl
+ja short loc_fffb6d08 ; ja 0xfffb6d08
+mov esi, dword [ebp - 0x74]
+mov al, byte [ebp - 0x6c]
+mov ebx, esi
+sub eax, ebx
+mov byte [edi + 0x36a8], al
+test bl, bl
+je loc_fffb6efc ; je 0xfffb6efc
+test al, al
+je loc_fffb6efc ; je 0xfffb6efc
+xor eax, eax
+
+loc_fffb6d92: ; not directly referenced
+mov dl, al
+cmp al, byte [ebp - 0x78]
+jae loc_fffb6efc ; jae 0xfffb6efc
+movzx esi, byte [ebp - 0x70]
+bt esi, eax
+jb short loc_fffb6dea ; jb 0xfffb6dea
+
+loc_fffb6da6: ; not directly referenced
+inc edx
+cmp dl, byte [ebp - 0x6c]
+jae short loc_fffb6dea ; jae 0xfffb6dea
+bt esi, edx
+movzx ecx, dl
+jae short loc_fffb6da6 ; jae 0xfffb6da6
+mov esi, dword [edi + ecx*8 + 0x36ad]
+mov edx, 1
+mov ebx, dword [edi + ecx*8 + 0x36a9]
+shl edx, cl
+mov cl, al
+not edx
+mov dword [edi + eax*8 + 0x36ad], esi
+mov esi, 1
+shl esi, cl
+mov ecx, esi
+or byte [ebp - 0x70], cl
+and byte [ebp - 0x70], dl
+mov dword [edi + eax*8 + 0x36a9], ebx
+
+loc_fffb6dea: ; not directly referenced
+inc eax
+jmp short loc_fffb6d92 ; jmp 0xfffb6d92
+
+loc_fffb6ded: ; not directly referenced
+mov al, byte [ebp - 0x6c]
+mov bl, 4
+sub eax, 4
+cmp al, 4
+cmovbe ebx, eax
+mov eax, dword [edi + 0x370d]
+xor edx, edx
+mov byte [edi + 0x36a8], bl
+push ecx
+push 0x14
+push edx
+push eax
+mov byte [ebp - 0x70], bl
+call dword [esi + 0x68] ; ucall
+add eax, 0xffffffff
+adc edx, 0xffffffff
+add esp, 0xc
+push 0x20
+mov ebx, eax
+push edx
+and ebx, 0xffffffc0
+push eax
+mov dword [ebp - 0x74], ebx
+call dword [esi + 0x6c] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x6c], 0
+mov dword [ebp - 0x78], eax
+
+loc_fffb6e38: ; not directly referenced
+mov ebx, dword [esi + 0x68]
+call dword [esi + 0x7c] ; ucall
+and eax, dword [ebp - 0x78]
+push edx
+xor edx, edx
+push 0x20
+push edx
+push eax
+call ebx
+mov ebx, eax
+mov dword [ebp - 0x7c], edx
+call dword [esi + 0x7c] ; ucall
+mov edx, dword [ebp - 0x7c]
+add esp, 0xc
+and eax, dword [ebp - 0x74]
+mov dword [ebp - 0x9c], edx
+or eax, ebx
+mov dword [ebp - 0xa0], eax
+mov eax, dword [edi + 0x2443]
+push 0x14
+push dword [ebp - 0x9c]
+push dword [ebp - 0xa0]
+call dword [eax + 0x6c] ; ucall
+mov ebx, dword [edi + 0x370d]
+mov ecx, dword [edi + 0x36f0]
+add esp, 0x10
+mov dword [ebp - 0x7c], ebx
+cmp edx, 0
+ja short loc_fffb6e9b ; ja 0xfffb6e9b
+cmp eax, ecx
+jb short loc_fffb6ed0 ; jb 0xfffb6ed0
+
+loc_fffb6e9b: ; not directly referenced
+cmp edx, 0
+ja short loc_fffb6ea7 ; ja 0xfffb6ea7
+cmp eax, 0xfff
+jbe short loc_fffb6e38 ; jbe 0xfffb6e38
+
+loc_fffb6ea7: ; not directly referenced
+cmp edx, 0
+ja short loc_fffb6e38 ; ja 0xfffb6e38
+cmp eax, dword [ebp - 0x7c]
+jb short loc_fffb6ed0 ; jb 0xfffb6ed0
+jmp short loc_fffb6e38 ; jmp 0xfffb6e38
+
+loc_fffb6eb3: ; not directly referenced
+mov byte [edi + 0x36a8], 0
+jmp short loc_fffb6efc ; jmp 0xfffb6efc
+
+loc_fffb6ebc: ; not directly referenced
+mov eax, 0xfffffffe
+mov cl, bl
+rol eax, cl
+inc byte [ebp - 0x74]
+and byte [ebp - 0x70], al
+jmp near loc_fffb6d6a ; jmp 0xfffb6d6a
+
+loc_fffb6ed0: ; not directly referenced
+mov ebx, dword [ebp - 0x6c]
+mov eax, dword [ebp - 0xa0]
+mov edx, dword [ebp - 0x9c]
+inc dword [ebp - 0x6c]
+mov dword [edi + ebx*8 + 0x36a9], eax
+mov al, byte [ebp - 0x6c]
+mov dword [edi + ebx*8 + 0x36ad], edx
+cmp byte [ebp - 0x70], al
+ja loc_fffb6e38 ; ja 0xfffb6e38
+
+loc_fffb6efc: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb6f06: ; not directly referenced
+push ebp
+mov eax, 0x80000002
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0x20]
+mov ecx, dword [ebp + 0x10]
+mov esi, dword [ebp + 0x14]
+mov edi, dword [ebp + 0x18]
+test ebx, ebx
+je loc_fffb6fca ; je 0xfffb6fca
+cmp ecx, 0xb
+ja loc_fffb6fca ; ja 0xfffb6fca
+push eax
+mov edx, ecx
+push dword [ebp + 0x1c]
+xor eax, eax
+mov dword [ebp - 0x1c], ecx
+push edi
+push esi
+call fcn_fffac5c7 ; call 0xfffac5c7
+add esp, 0x10
+mov ecx, dword [ebp - 0x1c]
+test eax, eax
+js short loc_fffb6fca ; js 0xfffb6fca
+mov al, byte [ecx + ref_fffd5ac8] ; mov al, byte [ecx - 0x2a538]
+mov dword [ebp - 0x24], 0
+mov byte [ebp - 0x1e], al
+mov eax, ecx
+and eax, 3
+mov dword [ebp - 0x1c], eax
+movzx eax, byte [eax + ref_fffd5ad4] ; movzx eax, byte [eax - 0x2a52c]
+dec eax
+test ebx, eax
+movzx eax, byte [ecx + ref_fffd5ad4] ; movzx eax, byte [ecx - 0x2a52c]
+sete byte [ebp - 0x1d]
+mov dword [ebp - 0x28], eax
+
+loc_fffb6f7d: ; not directly referenced
+cmp dword [ebp + 0x1c], 0
+je short loc_fffb6fc8 ; je 0xfffb6fc8
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffb6f90 ; jne 0xfffb6f90
+mov al, byte [ebx]
+mov edx, esi
+out dx, al
+jmp short loc_fffb6fb7 ; jmp 0xfffb6fb7
+
+loc_fffb6f90: ; not directly referenced
+cmp dword [ebp - 0x1c], 1
+jne short loc_fffb6fa4 ; jne 0xfffb6fa4
+movzx eax, word [ebx]
+push edx
+push edx
+push eax
+push esi
+call fcn_fffb3f28 ; call 0xfffb3f28
+jmp short loc_fffb6fb4 ; jmp 0xfffb6fb4
+
+loc_fffb6fa4: ; not directly referenced
+cmp dword [ebp - 0x1c], 2
+jne short loc_fffb6fb7 ; jne 0xfffb6fb7
+push eax
+push eax
+push dword [ebx]
+push esi
+call fcn_fffaafda ; call 0xfffaafda
+
+loc_fffb6fb4: ; not directly referenced
+add esp, 0x10
+
+loc_fffb6fb7: ; not directly referenced
+movzx eax, byte [ebp - 0x1e]
+add esi, dword [ebp - 0x28]
+adc edi, dword [ebp - 0x24]
+dec dword [ebp + 0x1c]
+add ebx, eax
+jmp short loc_fffb6f7d ; jmp 0xfffb6f7d
+
+loc_fffb6fc8: ; not directly referenced
+xor eax, eax
+
+loc_fffb6fca: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb6fd2: ; not directly referenced
+push ebp
+mov eax, 0x80000002
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0x20]
+mov ecx, dword [ebp + 0x10]
+mov esi, dword [ebp + 0x14]
+mov edi, dword [ebp + 0x18]
+test ebx, ebx
+je loc_fffb7097 ; je 0xfffb7097
+cmp ecx, 0xb
+ja loc_fffb7097 ; ja 0xfffb7097
+push eax
+mov edx, ecx
+push dword [ebp + 0x1c]
+xor eax, eax
+mov dword [ebp - 0x1c], ecx
+push edi
+push esi
+call fcn_fffac5c7 ; call 0xfffac5c7
+add esp, 0x10
+mov ecx, dword [ebp - 0x1c]
+test eax, eax
+js short loc_fffb7097 ; js 0xfffb7097
+mov al, byte [ecx + ref_fffd5ac8] ; mov al, byte [ecx - 0x2a538]
+mov dword [ebp - 0x24], 0
+mov byte [ebp - 0x1e], al
+mov eax, ecx
+and eax, 3
+mov dword [ebp - 0x1c], eax
+movzx eax, byte [eax + ref_fffd5ad4] ; movzx eax, byte [eax - 0x2a52c]
+dec eax
+test ebx, eax
+movzx eax, byte [ecx + ref_fffd5ad4] ; movzx eax, byte [ecx - 0x2a52c]
+sete byte [ebp - 0x1d]
+mov dword [ebp - 0x28], eax
+
+loc_fffb7049: ; not directly referenced
+cmp dword [ebp + 0x1c], 0
+je short loc_fffb7095 ; je 0xfffb7095
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffb705c ; jne 0xfffb705c
+mov edx, esi
+in al, dx
+mov byte [ebx], al
+jmp short loc_fffb7084 ; jmp 0xfffb7084
+
+loc_fffb705c: ; not directly referenced
+cmp dword [ebp - 0x1c], 1
+jne short loc_fffb7070 ; jne 0xfffb7070
+sub esp, 0xc
+push esi
+call fcn_fffb3f0f ; call 0xfffb3f0f
+mov word [ebx], ax
+jmp short loc_fffb7081 ; jmp 0xfffb7081
+
+loc_fffb7070: ; not directly referenced
+cmp dword [ebp - 0x1c], 2
+jne short loc_fffb7084 ; jne 0xfffb7084
+sub esp, 0xc
+push esi
+call fcn_fffaafc2 ; call 0xfffaafc2
+mov dword [ebx], eax
+
+loc_fffb7081: ; not directly referenced
+add esp, 0x10
+
+loc_fffb7084: ; not directly referenced
+movzx eax, byte [ebp - 0x1e]
+add esi, dword [ebp - 0x28]
+adc edi, dword [ebp - 0x24]
+dec dword [ebp + 0x1c]
+add ebx, eax
+jmp short loc_fffb7049 ; jmp 0xfffb7049
+
+loc_fffb7095: ; not directly referenced
+xor eax, eax
+
+loc_fffb7097: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb709f: ; not directly referenced
+push ebp
+mov ebp, esp
+sub esp, 8
+mov edx, dword [0xff7d77b0]
+mov eax, dword [ebp + 0xc]
+add eax, 3
+and eax, 0xfffffffc
+test edx, edx
+jne short loc_fffb70c4 ; jne 0xfffb70c4
+mov dword [0xff7d77ac], 0xff7d027c
+jmp short loc_fffb70ea ; jmp 0xfffb70ea
+
+loc_fffb70c4: ; not directly referenced
+mov ecx, dword [0xff7d77ac]
+cmp dword [ecx + edx], 0x900ddea1
+je short loc_fffb70ea ; je 0xfffb70ea
+push eax
+push 0x3d
+push ref_fffd3fbc ; push 0xfffd3fbc
+push ref_fffd5fdd ; push 0xfffd5fdd
+call fcn_fffb76e3 ; call 0xfffb76e3
+add esp, 0x10
+
+loc_fffb70e8: ; not directly referenced
+jmp short loc_fffb70e8 ; jmp 0xfffb70e8
+
+loc_fffb70ea: ; not directly referenced
+lea ecx, [eax + edx]
+cmp ecx, 0x752c
+jbe short loc_fffb710c ; jbe 0xfffb710c
+push eax
+push 0x4b
+push ref_fffd3fbc ; push 0xfffd3fbc
+push ref_fffd5ffd ; push 0xfffd5ffd
+call fcn_fffb76e3 ; call 0xfffb76e3
+add esp, 0x10
+
+loc_fffb710a: ; not directly referenced
+jmp short loc_fffb710a ; jmp 0xfffb710a
+
+loc_fffb710c: ; not directly referenced
+mov eax, dword [0xff7d77ac]
+mov dword [0xff7d77b0], ecx
+mov dword [eax + ecx], 0x900ddea1
+mov ecx, dword [ebp + 0x10]
+add edx, eax
+xor eax, eax
+mov dword [ecx], edx
+leave
+ret
+
+fcn_fffb7129: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov dword [ebp - 0x30], edx
+mov dword [ebp - 0x1c], 0
+call fcn_fffb481e ; call 0xfffb481e
+mov dword [ebp - 0x2c], eax
+lea eax, [ebp - 0x1c]
+push eax
+push 0
+push 0
+push ref_fffd664c ; push 0xfffd664c
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [0xff7d0084]
+mov esi, dword [eax + 0x14]
+lea edi, [esi + 0xf80ac]
+mov dword [esp], edi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop edx
+pop ecx
+and eax, 0xffebffff
+push eax
+push edi
+call fcn_fffb3d84 ; call 0xfffb3d84
+mov edx, 0xcf9
+in al, dx
+mov ecx, dword [ebp - 0x30]
+mov bl, al
+add esp, 0x10
+and ebx, 0xfffffff1
+cmp cl, 6
+jne short loc_fffb71d7 ; jne 0xfffb71d7
+sub esp, 0xc
+add esi, 0xf8048
+push esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+mov esi, eax
+and esi, 0xfffffffe
+cmp dword [ebp - 0x2c], 1
+jne short loc_fffb71f2 ; jne 0xfffb71f2
+push eax
+push eax
+push 0x40000000
+push esi
+call fcn_fffab629 ; call 0xfffab629
+pop eax
+pop edx
+lea eax, [esi + 4]
+push 0xbfffffff
+push eax
+call fcn_fffab64e ; call 0xfffab64e
+pop ecx
+pop eax
+lea eax, [esi + 0xc]
+push 0xbfffffff
+push eax
+jmp short loc_fffb7223 ; jmp 0xfffb7223
+
+loc_fffb71d7: ; not directly referenced
+cmp cl, 1
+je short loc_fffb71ed ; je 0xfffb71ed
+cmp cl, 2
+jne short loc_fffb7257 ; jne 0xfffb7257
+mov eax, dword [ebp - 0x1c]
+sub esp, 0xc
+push 2
+call dword [eax] ; ucall
+jmp short loc_fffb7251 ; jmp 0xfffb7251
+
+loc_fffb71ed: ; not directly referenced
+or ebx, 6
+jmp short loc_fffb7257 ; jmp 0xfffb7257
+
+loc_fffb71f2: ; not directly referenced
+cmp dword [ebp - 0x2c], 2
+jne short loc_fffb722b ; jne 0xfffb722b
+push eax
+push eax
+push 1
+lea edx, [esi + 0x1f0]
+push edx
+mov dword [ebp - 0x2c], edx
+call fcn_fffab629 ; call 0xfffab629
+pop eax
+pop edx
+mov edx, dword [ebp - 0x2c]
+push 0xfffffffffffffffb
+push edx
+call fcn_fffab64e ; call 0xfffab64e
+mov edx, dword [ebp - 0x2c]
+pop ecx
+pop eax
+push 0x7fffffff
+push edx
+
+loc_fffb7223: ; not directly referenced
+call fcn_fffab64e ; call 0xfffab64e
+add esp, 0x10
+
+loc_fffb722b: ; not directly referenced
+push eax
+add esi, 0x60
+push eax
+push 0x40000000
+push esi
+call fcn_fffab629 ; call 0xfffab629
+mov dword [esp], edi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop edx
+pop ecx
+or eax, 0x100000
+push eax
+push edi
+call fcn_fffb3d84 ; call 0xfffb3d84
+
+loc_fffb7251: ; not directly referenced
+or ebx, 0xe
+add esp, 0x10
+
+loc_fffb7257: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+call dword [eax + 0xc] ; ucall
+mov edx, 0xcf9
+mov al, bl
+out dx, al
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb726f: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x20
+mov edi, dword [ebp + 0x10]
+mov esi, dword [ebp + 0xc]
+push 0x3f
+push edi
+push esi
+mov dword [ebp - 0x1c], edx
+mov dword [ebp - 0x20], ecx
+call dword [eax + 0x6c] ; ucall
+add esp, 0x10
+test al, 1
+je short loc_fffb72d1 ; je 0xfffb72d1
+mov eax, dword [ebp - 0x1c]
+mov edx, esi
+and edx, 0xffffffc0
+and eax, 0xffffffc0
+mov ecx, eax
+mov eax, dword [ebp - 0x20]
+and eax, 0x7f
+mov dword [ebp - 0x1c], eax
+mov eax, edi
+and eax, 0x7f
+cmp dword [ebp - 0x1c], eax
+jne short loc_fffb72d1 ; jne 0xfffb72d1
+cmp ecx, edx
+jne short loc_fffb72d1 ; jne 0xfffb72d1
+push eax
+push 0x3e
+push edi
+push esi
+call dword [ebx + 0x6c] ; ucall
+add esp, 0x10
+and eax, 1
+cmp dword [ebp + 8], eax
+sete al
+movzx eax, al
+jmp short loc_fffb72d3 ; jmp 0xfffb72d3
+
+loc_fffb72d1: ; not directly referenced
+xor eax, eax
+
+loc_fffb72d3: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb72db:
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+mov ebx, edx
+sub esp, 0x1c
+
+loc_fffb72e8:
+test ebx, ebx
+jle short loc_fffb7315 ; jle 0xfffb7315
+cmp ebx, 0x10
+mov esi, 0x10
+cmovle esi, ebx
+push eax
+push esi
+push edi
+push dword [ecx]
+mov dword [ebp - 0x1c], ecx
+call fcn_fffa5c2e ; call 0xfffa5c2e
+mov ecx, dword [ebp - 0x1c]
+add esp, 0x10
+mov dword [ecx], eax
+test eax, eax
+jne short loc_fffb7319 ; jne 0xfffb7319
+or eax, 0xffffffff
+jmp short loc_fffb731d ; jmp 0xfffb731d
+
+loc_fffb7315:
+xor eax, eax
+jmp short loc_fffb731d ; jmp 0xfffb731d
+
+loc_fffb7319:
+sub ebx, esi
+jmp short loc_fffb72e8 ; jmp 0xfffb72e8
+
+loc_fffb731d:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7325:
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+mov esi, edx
+push ebx
+mov ebx, eax
+sub esp, 0xc
+test edx, edx
+jne short loc_fffb734a ; jne 0xfffb734a
+
+loc_fffb7338:
+test edi, edi
+setne dl
+cmp dword [ebp + 8], 0
+setne al
+test dl, al
+je short loc_fffb7377 ; je 0xfffb7377
+jmp short loc_fffb735f ; jmp 0xfffb735f
+
+loc_fffb734a:
+mov ecx, eax
+mov eax, ref_fffd5854 ; mov eax, 0xfffd5854
+call fcn_fffb72db ; call 0xfffb72db
+test eax, eax
+jns short loc_fffb7338 ; jns 0xfffb7338
+
+loc_fffb735a:
+or eax, 0xffffffff
+jmp short loc_fffb73d5 ; jmp 0xfffb73d5
+
+loc_fffb735f:
+push edx
+push dword [ebp + 8]
+push edi
+push dword [ebx]
+call fcn_fffa5c2e ; call 0xfffa5c2e
+add esp, 0x10
+mov dword [ebx], eax
+test eax, eax
+je short loc_fffb735a ; je 0xfffb735a
+add esi, dword [ebp + 8]
+
+loc_fffb7377:
+cmp dword [ebp + 0xc], 0
+jne short loc_fffb7388 ; jne 0xfffb7388
+
+loc_fffb737d:
+add esi, dword [ebp + 0xc]
+cmp dword [ebp + 0x14], 0
+je short loc_fffb73b4 ; je 0xfffb73b4
+jmp short loc_fffb739d ; jmp 0xfffb739d
+
+loc_fffb7388:
+mov edx, dword [ebp + 0xc]
+mov ecx, ebx
+mov eax, ref_fffd5840 ; mov eax, 0xfffd5840
+call fcn_fffb72db ; call 0xfffb72db
+test eax, eax
+jns short loc_fffb737d ; jns 0xfffb737d
+jmp short loc_fffb735a ; jmp 0xfffb735a
+
+loc_fffb739d:
+push eax
+push dword [ebp + 0x14]
+push dword [ebp + 0x10]
+push dword [ebx]
+call fcn_fffa5c2e ; call 0xfffa5c2e
+add esp, 0x10
+mov dword [ebx], eax
+test eax, eax
+je short loc_fffb735a ; je 0xfffb735a
+
+loc_fffb73b4:
+add esi, dword [ebp + 0x14]
+cmp dword [ebp + 0x18], 0
+je short loc_fffb73d0 ; je 0xfffb73d0
+mov edx, dword [ebp + 0x18]
+mov ecx, ebx
+mov eax, ref_fffd5854 ; mov eax, 0xfffd5854
+call fcn_fffb72db ; call 0xfffb72db
+test eax, eax
+js short loc_fffb735a ; js 0xfffb735a
+
+loc_fffb73d0:
+mov eax, dword [ebp + 0x18]
+add eax, esi
+
+loc_fffb73d5:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb73dd: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 8]
+push edi
+push esi
+push ebx
+mov esi, eax
+mov word [edx + 0x2467], ax
+mov edx, 0x80
+out dx, ax
+mov edi, 0x48
+mov ebx, 0x74
+
+loc_fffb7403: ; not directly referenced
+mov eax, edi
+mov edx, ebx
+out dx, al
+mov edx, 0x75
+in al, dx
+movzx ecx, al
+mov edx, ebx
+mov al, 0x49
+out dx, al
+mov edx, 0x75
+in al, dx
+shl eax, 8
+or eax, ecx
+cmp si, ax
+je short loc_fffb7403 ; je 0xfffb7403
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb742b:
+mov ecx, 0xce
+rdmsr
+movzx ecx, ah
+xor edx, edx
+imul ecx, ecx, 0x186a0
+xor eax, eax
+test ecx, ecx
+je short loc_fffb7457 ; je 0xfffb7457
+push ebp
+mov ebp, esp
+sub esp, 0xc
+rdtsc
+push ecx
+push edx
+push eax
+call fcn_fffd289e ; call 0xfffd289e
+add esp, 0x10
+leave
+
+loc_fffb7457:
+ret
+
+fcn_fffb7458:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 8]
+mov esi, dword [ebx + 0x2443]
+mov edi, dword [ebx + 0x18c1]
+push 0xe4
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+add edi, eax
+mov dword [esp], edi
+add edi, 4
+call dword [esi + 0x20] ; ucall
+mov dword [esp], edi
+mov dword [ebp - 0x2c], eax
+call dword [esi + 0x20] ; ucall
+add esp, 0x10
+mov edx, dword [ebp - 0x2c]
+cmp eax, dword [ebx + 0x14]
+jne short loc_fffb74a2 ; jne 0xfffb74a2
+cmp edx, dword [ebx + 0x10]
+je short loc_fffb74ac ; je 0xfffb74ac
+
+loc_fffb74a2:
+mov eax, 0x18
+jmp near loc_fffb7571 ; jmp 0xfffb7571
+
+loc_fffb74ac:
+lea eax, [ebx + 0x1165]
+xor esi, esi
+mov dword [ebp - 0x30], eax
+
+loc_fffb74b7:
+lea eax, [ebx + esi + 0x196b]
+xor edi, edi
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp - 0x30]
+mov dword [ebp - 0x2c], eax
+lea eax, [esi + 0x1afb]
+mov dword [ebp - 0x38], eax
+
+loc_fffb74d2:
+mov eax, dword [ebp - 0x34]
+cmp dword [eax + edi + 8], 1
+jne short loc_fffb74e4 ; jne 0xfffb74e4
+mov word [ebp - 0x1a], 0
+jmp short loc_fffb752a ; jmp 0xfffb752a
+
+loc_fffb74e4:
+lea eax, [ebx + edi]
+mov al, byte [esi + eax + 0x19bd]
+cmp al, 0xf1
+sete cl
+cmp al, 0xb
+sete dl
+or cl, dl
+je short loc_fffb750c ; je 0xfffb750c
+lea eax, [edi + esi + 0x1a30]
+mov edx, 0xb
+add eax, ebx
+jmp short loc_fffb7522 ; jmp 0xfffb7522
+
+loc_fffb750c:
+cmp al, 0xc
+jne short loc_fffb751e ; jne 0xfffb751e
+mov eax, dword [ebp - 0x38]
+mov edx, 9
+add eax, edi
+add eax, ebx
+jmp short loc_fffb7522 ; jmp 0xfffb7522
+
+loc_fffb751e:
+xor edx, edx
+xor eax, eax
+
+loc_fffb7522:
+lea ecx, [ebp - 0x1a]
+call fcn_fffaf03f ; call 0xfffaf03f
+
+loc_fffb752a:
+mov eax, dword [ebp - 0x2c]
+mov ax, word [eax]
+cmp word [ebp - 0x1a], ax
+jne loc_fffb74a2 ; jne 0xfffb74a2
+add edi, 0x277
+add dword [ebp - 0x2c], 0x128
+cmp edi, 0x4ee
+jne short loc_fffb74d2 ; jne 0xfffb74d2
+add esi, 0x54a
+add dword [ebp - 0x30], 0x433
+cmp esi, 0xa94
+jne loc_fffb74b7 ; jne 0xfffb74b7
+mov byte [ebx + 0x247b], 1
+xor eax, eax
+
+loc_fffb7571:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7579:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x34
+mov edi, dword [ebp + 0x10]
+mov edx, dword [ebp + 0xc]
+lea eax, [ebp - 0x1c]
+push eax
+mov ebx, dword [ebp + 0x14]
+movzx esi, di
+lea eax, [esi + 0xc]
+push eax
+mov dword [ebp - 0x2c], edx
+call fcn_fffab60f ; call 0xfffab60f
+add esp, 0x10
+mov edx, dword [ebp - 0x2c]
+test eax, eax
+jns short loc_fffb75af ; jns 0xfffb75af
+mov dword [ebp - 0x1c], 0
+
+loc_fffb75af:
+mov eax, dword [ebp - 0x1c]
+test eax, eax
+je short loc_fffb75f3 ; je 0xfffb75f3
+lea ecx, [eax + 4]
+mov dword [ebx], ecx
+mov word [eax + 4], dx
+mov edx, dword [ebx]
+mov word [edx + 2], di
+mov edx, dword [ebx]
+mov dword [edx + 4], 0
+add esi, dword [ebx]
+mov word [esi], 0xffff
+mov word [esi + 2], 8
+mov dword [esi + 4], 0
+mov edx, dword [0xff7d0270]
+mov dword [eax], edx
+mov dword [0xff7d0270], eax
+xor eax, eax
+jmp short loc_fffb75f8 ; jmp 0xfffb75f8
+
+loc_fffb75f3:
+mov eax, 0x80000009
+
+loc_fffb75f8:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb7600: ; not directly referenced
+push ebp
+mov eax, 0x80000002
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0x20]
+mov ecx, dword [ebp + 0x10]
+mov esi, dword [ebp + 0x14]
+mov edi, dword [ebp + 0x18]
+test ebx, ebx
+je loc_fffb76db ; je 0xfffb76db
+cmp ecx, 0xb
+ja loc_fffb76db ; ja 0xfffb76db
+push eax
+mov edx, ecx
+push dword [ebp + 0x1c]
+mov eax, 1
+mov dword [ebp - 0x1c], ecx
+push edi
+push esi
+call fcn_fffac5c7 ; call 0xfffac5c7
+add esp, 0x10
+mov ecx, dword [ebp - 0x1c]
+test eax, eax
+js loc_fffb76db ; js 0xfffb76db
+mov al, byte [ecx + ref_fffd5ac8] ; mov al, byte [ecx - 0x2a538]
+mov dword [ebp - 0x24], 0
+mov byte [ebp - 0x1e], al
+mov eax, ecx
+and eax, 3
+mov dword [ebp - 0x1c], eax
+movzx eax, byte [eax + ref_fffd5ad4] ; movzx eax, byte [eax - 0x2a52c]
+dec eax
+test ebx, eax
+movzx eax, byte [ecx + ref_fffd5ad4] ; movzx eax, byte [ecx - 0x2a52c]
+sete byte [ebp - 0x1d]
+mov dword [ebp - 0x28], eax
+
+loc_fffb767e: ; not directly referenced
+cmp dword [ebp + 0x1c], 0
+je short loc_fffb76d9 ; je 0xfffb76d9
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffb7690 ; jne 0xfffb7690
+mov al, byte [esi]
+mov byte [ebx], al
+jmp short loc_fffb76c8 ; jmp 0xfffb76c8
+
+loc_fffb7690: ; not directly referenced
+cmp dword [ebp - 0x1c], 1
+jne short loc_fffb76a4 ; jne 0xfffb76a4
+sub esp, 0xc
+push esi
+call fcn_fffb3d06 ; call 0xfffb3d06
+mov word [ebx], ax
+jmp short loc_fffb76c5 ; jmp 0xfffb76c5
+
+loc_fffb76a4: ; not directly referenced
+cmp dword [ebp - 0x1c], 2
+jne short loc_fffb76b7 ; jne 0xfffb76b7
+sub esp, 0xc
+push esi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [ebx], eax
+jmp short loc_fffb76c5 ; jmp 0xfffb76c5
+
+loc_fffb76b7: ; not directly referenced
+sub esp, 0xc
+push esi
+call fcn_fffb3dc0 ; call 0xfffb3dc0
+mov dword [ebx], eax
+mov dword [ebx + 4], edx
+
+loc_fffb76c5: ; not directly referenced
+add esp, 0x10
+
+loc_fffb76c8: ; not directly referenced
+movzx eax, byte [ebp - 0x1e]
+add esi, dword [ebp - 0x28]
+adc edi, dword [ebp - 0x24]
+dec dword [ebp + 0x1c]
+add ebx, eax
+jmp short loc_fffb767e ; jmp 0xfffb767e
+
+loc_fffb76d9: ; not directly referenced
+xor eax, eax
+
+loc_fffb76db: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb76e3:
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0xfc
+mov ecx, dword [ebp + 8]
+lea ebx, [ebp + 0xc]
+mov dword [ebp - 0xa8], ebx
+mov dword [ebp - 0xa4], 0
+test ecx, ecx
+je short loc_fffb7757 ; je 0xfffb7757
+mov dword [ebp - 0xf8], 0
+mov dword [ebp - 0xe4], 0
+jmp short loc_fffb776c ; jmp 0xfffb776c
+
+loc_fffb771f:
+cmp dl, 0x2a
+jne loc_fffb77c0 ; jne 0xfffb77c0
+mov ecx, dword [ebx]
+lea eax, [ebx + 4]
+mov dword [ebp - 0xe0], ecx
+test ecx, ecx
+jns short loc_fffb7744 ; jns 0xfffb7744
+neg dword [ebp - 0xe0]
+or dword [ebp - 0xc4], 4
+
+loc_fffb7744:
+inc edi
+mov ebx, eax
+
+loc_fffb7747:
+cmp dword [ebp - 0xe0], 0x1f4
+jle loc_fffb7818 ; jle 0xfffb7818
+
+loc_fffb7757:
+or eax, 0xffffffff
+jmp near loc_fffb82b2 ; jmp 0xfffb82b2
+
+loc_fffb775f:
+mov edi, esi
+sub edi, ecx
+jne short loc_fffb778a ; jne 0xfffb778a
+
+loc_fffb7765:
+cmp byte [esi], 0
+jne short loc_fffb77ad ; jne 0xfffb77ad
+mov ecx, esi
+
+loc_fffb776c:
+cmp byte [ecx], 0
+je loc_fffb8277 ; je 0xfffb8277
+mov esi, ecx
+
+loc_fffb7777:
+mov al, byte [esi]
+cmp al, 0x25
+setne dl
+test al, al
+setne al
+test dl, al
+je short loc_fffb775f ; je 0xfffb775f
+inc esi
+jmp short loc_fffb7777 ; jmp 0xfffb7777
+
+loc_fffb778a:
+push eax
+push edi
+push ecx
+push dword [ebp - 0xa4]
+call fcn_fffa5c2e ; call 0xfffa5c2e
+add esp, 0x10
+mov dword [ebp - 0xa4], eax
+test eax, eax
+je short loc_fffb7757 ; je 0xfffb7757
+add dword [ebp - 0xe4], edi
+jmp short loc_fffb7765 ; jmp 0xfffb7765
+
+loc_fffb77ad:
+lea edi, [esi + 1]
+mov dword [ebp - 0xc4], 0
+
+loc_fffb77ba:
+mov dl, byte [edi]
+test dl, dl
+jne short loc_fffb77cc ; jne 0xfffb77cc
+
+loc_fffb77c0:
+mov dword [ebp - 0xe0], 0
+jmp short loc_fffb7808 ; jmp 0xfffb7808
+
+loc_fffb77cc:
+mov eax, ref_fffd58b0 ; mov eax, 0xfffd58b0
+
+loc_fffb77d1:
+mov cl, byte [eax]
+cmp cl, dl
+je loc_fffb827f ; je 0xfffb827f
+test cl, cl
+je loc_fffb771f ; je 0xfffb771f
+inc eax
+jmp short loc_fffb77d1 ; jmp 0xfffb77d1
+
+loc_fffb77e6:
+cmp dword [ebp - 0xe0], 0x1f3
+jg loc_fffb7747 ; jg 0xfffb7747
+imul edx, dword [ebp - 0xe0], 0xa
+inc edi
+lea eax, [edx + eax - 0x30]
+mov dword [ebp - 0xe0], eax
+
+loc_fffb7808:
+movsx eax, byte [edi]
+lea edx, [eax - 0x30]
+cmp dl, 9
+jbe short loc_fffb77e6 ; jbe 0xfffb77e6
+jmp near loc_fffb7747 ; jmp 0xfffb7747
+
+loc_fffb7818:
+cmp byte [edi], 0x2e
+mov dword [ebp - 0xd0], 0xffffffff
+jne short loc_fffb7891 ; jne 0xfffb7891
+cmp byte [edi + 1], 0x2a
+je short loc_fffb783a ; je 0xfffb783a
+inc edi
+mov dword [ebp - 0xd0], 0
+jmp short loc_fffb7876 ; jmp 0xfffb7876
+
+loc_fffb783a:
+mov ecx, dword [ebx]
+lea eax, [ebx + 4]
+mov dword [ebp - 0xd0], ecx
+cmp ecx, 0x1f4
+jg loc_fffb7757 ; jg 0xfffb7757
+add edi, 2
+mov ebx, eax
+jmp short loc_fffb7891 ; jmp 0xfffb7891
+
+loc_fffb7858:
+cmp dword [ebp - 0xd0], 0x1f3
+jg short loc_fffb7881 ; jg 0xfffb7881
+imul edx, dword [ebp - 0xd0], 0xa
+inc edi
+lea eax, [edx + eax - 0x30]
+mov dword [ebp - 0xd0], eax
+
+loc_fffb7876:
+movsx eax, byte [edi]
+lea edx, [eax - 0x30]
+cmp dl, 9
+jbe short loc_fffb7858 ; jbe 0xfffb7858
+
+loc_fffb7881:
+cmp dword [ebp - 0xd0], 0x1f4
+jg loc_fffb7757 ; jg 0xfffb7757
+
+loc_fffb7891:
+cmp byte [edi], 0x3a
+mov dword [ebp - 0xc0], 0
+jne short loc_fffb7903 ; jne 0xfffb7903
+cmp byte [edi + 1], 0x2a
+jne short loc_fffb78ea ; jne 0xfffb78ea
+mov esi, dword [ebx]
+lea eax, [ebx + 4]
+mov dword [ebp - 0xc0], esi
+test esi, esi
+js short loc_fffb78bf ; js 0xfffb78bf
+cmp esi, 0x24
+jle short loc_fffb78c9 ; jle 0xfffb78c9
+jmp near loc_fffb7757 ; jmp 0xfffb7757
+
+loc_fffb78bf:
+mov dword [ebp - 0xc0], 0
+
+loc_fffb78c9:
+add edi, 2
+mov ebx, eax
+jmp short loc_fffb7903 ; jmp 0xfffb7903
+
+loc_fffb78d0:
+cmp dword [ebp - 0xc0], 0x23
+jg short loc_fffb78f6 ; jg 0xfffb78f6
+imul ecx, dword [ebp - 0xc0], 0xa
+lea eax, [ecx + eax - 0x30]
+mov dword [ebp - 0xc0], eax
+
+loc_fffb78ea:
+inc edi
+movsx eax, byte [edi]
+lea edx, [eax - 0x30]
+cmp dl, 9
+jbe short loc_fffb78d0 ; jbe 0xfffb78d0
+
+loc_fffb78f6:
+cmp dword [ebp - 0xc0], 0x24
+jg loc_fffb7757 ; jg 0xfffb7757
+
+loc_fffb7903:
+cmp byte [edi], 0x5b
+mov dword [ebp - 0xd8], 0
+jne short loc_fffb793b ; jne 0xfffb793b
+lea eax, [edi + 1]
+not edi
+mov dword [ebp - 0xf8], eax
+
+loc_fffb791d:
+mov dl, byte [eax]
+lea esi, [edi + eax]
+mov dword [ebp - 0xd8], esi
+mov esi, eax
+test dl, dl
+je loc_fffb7757 ; je 0xfffb7757
+inc eax
+cmp dl, 0x5d
+jne short loc_fffb791d ; jne 0xfffb791d
+lea edi, [esi + 1]
+
+loc_fffb793b:
+mov al, byte [edi]
+mov esi, ref_fffd6023 ; mov esi, 0xfffd6023
+test al, al
+je short loc_fffb7973 ; je 0xfffb7973
+
+loc_fffb7946:
+mov dl, byte [esi]
+cmp dl, al
+je short loc_fffb7957 ; je 0xfffb7957
+test dl, dl
+je short loc_fffb7953 ; je 0xfffb7953
+inc esi
+jmp short loc_fffb7946 ; jmp 0xfffb7946
+
+loc_fffb7953:
+xor eax, eax
+jmp short loc_fffb7973 ; jmp 0xfffb7973
+
+loc_fffb7957:
+mov dl, byte [edi + 1]
+lea esi, [edi + 1]
+test dl, dl
+je loc_fffb8297 ; je 0xfffb8297
+cmp dl, al
+jne loc_fffb8297 ; jne 0xfffb8297
+or eax, 1
+add edi, 2
+
+loc_fffb7973:
+mov dl, byte [edi]
+test dl, dl
+jne short loc_fffb7983 ; jne 0xfffb7983
+mov ecx, dword [ebx]
+add ebx, 4
+jmp near loc_fffb776c ; jmp 0xfffb776c
+
+loc_fffb7983:
+mov byte [ebp - 0xc8], 0
+cmp dl, 0x43
+jne short loc_fffb79a5 ; jne 0xfffb79a5
+mov cl, byte [edi + 1]
+lea esi, [edi + 1]
+mov byte [ebp - 0xc8], cl
+test cl, cl
+je loc_fffb7757 ; je 0xfffb7757
+mov edi, esi
+
+loc_fffb79a5:
+mov byte [ebp - 0xab], dl
+cmp dl, 0x6e
+jne short loc_fffb7a06 ; jne 0xfffb7a06
+mov edx, dword [ebx]
+test edx, edx
+je loc_fffb82ab ; je 0xfffb82ab
+cmp al, 0x68
+jne short loc_fffb79cc ; jne 0xfffb79cc
+mov eax, dword [ebp - 0xe4]
+mov word [edx], ax
+jmp near loc_fffb82ab ; jmp 0xfffb82ab
+
+loc_fffb79cc:
+cmp al, 0x69
+jne short loc_fffb79dd ; jne 0xfffb79dd
+mov al, byte [ebp - 0xe4]
+mov byte [edx], al
+jmp near loc_fffb82ab ; jmp 0xfffb82ab
+
+loc_fffb79dd:
+cmp al, 0x6c
+je short loc_fffb79f9 ; je 0xfffb79f9
+cmp al, 0x6a
+jne short loc_fffb79f9 ; jne 0xfffb79f9
+mov eax, dword [ebp - 0xe4]
+mov dword [edx + 4], 0
+mov dword [edx], eax
+jmp near loc_fffb82ab ; jmp 0xfffb82ab
+
+loc_fffb79f9:
+mov eax, dword [ebp - 0xe4]
+mov dword [edx], eax
+jmp near loc_fffb82ab ; jmp 0xfffb82ab
+
+loc_fffb7a06:
+cmp dl, 0x25
+jne short loc_fffb7a34 ; jne 0xfffb7a34
+sub esp, 0xc
+xor ecx, ecx
+push 0
+xor edx, edx
+push 1
+lea eax, [ebp - 0xab]
+push eax
+push 0
+push 0
+lea eax, [ebp - 0xa4]
+call fcn_fffb7325 ; call 0xfffb7325
+add esp, 0x20
+jmp near loc_fffb8261 ; jmp 0xfffb8261
+
+loc_fffb7a34:
+mov esi, edx
+and esi, 0xffffffdf
+mov ecx, esi
+cmp cl, 0x43
+jne short loc_fffb7ab9 ; jne 0xfffb7ab9
+cmp dl, 0x63
+jne short loc_fffb7a52 ; jne 0xfffb7a52
+mov eax, dword [ebx]
+add ebx, 4
+mov byte [ebp - 0x9a], al
+jmp short loc_fffb7a5e ; jmp 0xfffb7a5e
+
+loc_fffb7a52:
+mov al, byte [ebp - 0xc8]
+mov byte [ebp - 0x9a], al
+
+loc_fffb7a5e:
+mov esi, dword [ebp - 0xd0]
+mov eax, 1
+test esi, esi
+cmovs esi, eax
+test esi, esi
+cmovg eax, esi
+xor esi, esi
+mov dword [ebp - 0xc0], eax
+
+loc_fffb7a7b:
+sub esp, 0xc
+xor ecx, ecx
+push 0
+xor edx, edx
+push 1
+lea eax, [ebp - 0x9a]
+push eax
+push 0
+push 0
+lea eax, [ebp - 0xa4]
+call fcn_fffb7325 ; call 0xfffb7325
+add esp, 0x20
+cmp eax, 0xffffffff
+je loc_fffb7757 ; je 0xfffb7757
+add esi, eax
+dec dword [ebp - 0xc0]
+jne short loc_fffb7a7b ; jne 0xfffb7a7b
+mov eax, esi
+jmp near loc_fffb8261 ; jmp 0xfffb8261
+
+loc_fffb7ab9:
+cmp dl, 0x73
+jne loc_fffb7b51 ; jne 0xfffb7b51
+lea eax, [ebx + 4]
+mov edx, ref_fffd602a ; mov edx, 0xfffd602a
+mov dword [ebp - 0xc0], eax
+mov eax, dword [ebx]
+test eax, eax
+cmove eax, edx
+mov ecx, eax
+
+loc_fffb7ad9:
+cmp byte [ecx], 0
+je short loc_fffb7ae1 ; je 0xfffb7ae1
+inc ecx
+jmp short loc_fffb7ad9 ; jmp 0xfffb7ad9
+
+loc_fffb7ae1:
+mov ebx, dword [ebp - 0xd0]
+sub ecx, eax
+test ebx, ebx
+js short loc_fffb7af2 ; js 0xfffb7af2
+cmp ecx, ebx
+cmovg ecx, ebx
+
+loc_fffb7af2:
+mov esi, dword [ebp - 0xe0]
+xor edx, edx
+mov ebx, esi
+sub ebx, ecx
+cmp ecx, esi
+mov esi, dword [ebp - 0xc4]
+cmovl edx, ebx
+xor ebx, ebx
+and esi, 4
+je short loc_fffb7b14 ; je 0xfffb7b14
+mov ebx, edx
+xor edx, edx
+
+loc_fffb7b14:
+test byte [ebp - 0xc4], 0x40
+je short loc_fffb7b2c ; je 0xfffb7b2c
+add ebx, edx
+xor edx, edx
+test esi, esi
+sete dl
+add edx, ebx
+sar edx, 1
+sub ebx, edx
+
+loc_fffb7b2c:
+sub esp, 0xc
+push ebx
+push ecx
+xor ecx, ecx
+push eax
+push 0
+push 0
+lea eax, [ebp - 0xa4]
+call fcn_fffb7325 ; call 0xfffb7325
+add esp, 0x20
+mov ebx, dword [ebp - 0xc0]
+jmp near loc_fffb8261 ; jmp 0xfffb8261
+
+loc_fffb7b51:
+cmp dl, 0x70
+jne short loc_fffb7b7d ; jne 0xfffb7b7d
+mov byte [ebp - 0xab], 0x58
+xor eax, eax
+mov dword [ebp - 0xd0], 8
+mov dword [ebp - 0xe0], 8
+mov dword [ebp - 0xc4], 0x28
+
+loc_fffb7b7d:
+mov dl, byte [ebp - 0xab]
+cmp dl, 0x69
+sete cl
+cmp dl, 0x64
+mov byte [ebp - 0xd4], dl
+sete dl
+or dl, cl
+mov byte [ebp - 0xe8], cl
+jne short loc_fffb7baa ; jne 0xfffb7baa
+xor esi, esi
+cmp byte [ebp - 0xd4], 0x49
+jne short loc_fffb7bd9 ; jne 0xfffb7bd9
+
+loc_fffb7baa:
+mov dl, byte [ebp - 0xd4]
+mov esi, 0xa
+and dword [ebp - 0xc4], 0xfffffff7
+or dword [ebp - 0xc4], 0x80
+and edx, 0xffffffdf
+cmp dl, 0x49
+jne short loc_fffb7bd9 ; jne 0xfffb7bd9
+mov ecx, dword [ebp - 0xc0]
+test ecx, ecx
+cmovne esi, ecx
+
+loc_fffb7bd9:
+mov dl, byte [ebp - 0xd4]
+and edx, 0xffffffdf
+cmp dl, 0x58
+sete cl
+test cl, cl
+mov byte [ebp - 0xcc], cl
+mov ecx, 0x10
+cmovne esi, ecx
+cmp dl, 0x55
+jne short loc_fffb7c0d ; jne 0xfffb7c0d
+mov ecx, dword [ebp - 0xc0]
+mov esi, 0xa
+test ecx, ecx
+cmovne esi, ecx
+
+loc_fffb7c0d:
+mov cl, byte [ebp - 0xd4]
+cmp cl, 0x6f
+je short loc_fffb7c27 ; je 0xfffb7c27
+cmp cl, 0x62
+je short loc_fffb7c2e ; je 0xfffb7c2e
+cmp esi, 1
+ja short loc_fffb7c33 ; ja 0xfffb7c33
+jmp near loc_fffb7757 ; jmp 0xfffb7757
+
+loc_fffb7c27:
+mov esi, 8
+jmp short loc_fffb7c33 ; jmp 0xfffb7c33
+
+loc_fffb7c2e:
+mov esi, 2
+
+loc_fffb7c33:
+test byte [ebp - 0xc4], 0x80
+je loc_fffb7cf8 ; je 0xfffb7cf8
+cmp al, 0x6c
+jne short loc_fffb7c49 ; jne 0xfffb7c49
+lea eax, [ebx + 4]
+jmp short loc_fffb7c50 ; jmp 0xfffb7c50
+
+loc_fffb7c49:
+cmp al, 0x6a
+jne short loc_fffb7c5a ; jne 0xfffb7c5a
+lea eax, [ebx + 8]
+
+loc_fffb7c50:
+mov dword [ebp - 0xc8], eax
+
+loc_fffb7c56:
+mov edx, dword [ebx]
+jmp short loc_fffb7c7e ; jmp 0xfffb7c7e
+
+loc_fffb7c5a:
+lea edx, [ebx + 4]
+cmp al, 0x7a
+mov dword [ebp - 0xc8], edx
+je short loc_fffb7c56 ; je 0xfffb7c56
+mov edx, dword [ebx]
+cmp al, 0x74
+je short loc_fffb7c7e ; je 0xfffb7c7e
+cmp al, 0x68
+jne short loc_fffb7c76 ; jne 0xfffb7c76
+movsx edx, dx
+jmp short loc_fffb7c7e ; jmp 0xfffb7c7e
+
+loc_fffb7c76:
+movsx ecx, dl
+cmp al, 0x69
+cmove edx, ecx
+
+loc_fffb7c7e:
+mov ecx, edx
+sar ecx, 0x1f
+mov eax, ecx
+xor eax, edx
+sub eax, ecx
+mov dword [ebp - 0xc0], eax
+sar eax, 0x1f
+mov dword [ebp - 0xbc], eax
+test edx, edx
+jns short loc_fffb7ca5 ; jns 0xfffb7ca5
+mov byte [ebp - 0xaa], 0x2d
+jmp short loc_fffb7ccb ; jmp 0xfffb7ccb
+
+loc_fffb7ca5:
+test byte [ebp - 0xc4], 2
+je short loc_fffb7cb7 ; je 0xfffb7cb7
+mov byte [ebp - 0xaa], 0x2b
+jmp short loc_fffb7ccb ; jmp 0xfffb7ccb
+
+loc_fffb7cb7:
+mov eax, dword [ebp - 0xc4]
+and eax, 1
+neg eax
+and eax, 0x20
+mov byte [ebp - 0xaa], al
+
+loc_fffb7ccb:
+cmp byte [ebp - 0xaa], 0
+mov dword [ebp - 0xdc], 0
+je loc_fffb7d9c ; je 0xfffb7d9c
+or dword [ebp - 0xc4], 8
+mov dword [ebp - 0xdc], 1
+jmp near loc_fffb7d9c ; jmp 0xfffb7d9c
+
+loc_fffb7cf8:
+cmp al, 0x6c
+jne short loc_fffb7d0b ; jne 0xfffb7d0b
+lea eax, [ebx + 4]
+xor edx, edx
+mov dword [ebp - 0xc8], eax
+mov eax, dword [ebx]
+jmp short loc_fffb7d1d ; jmp 0xfffb7d1d
+
+loc_fffb7d0b:
+cmp al, 0x6a
+jne short loc_fffb7d2b ; jne 0xfffb7d2b
+lea eax, [ebx + 8]
+mov edx, dword [ebx + 4]
+mov dword [ebp - 0xc8], eax
+mov eax, dword [ebx]
+
+loc_fffb7d1d:
+mov dword [ebp - 0xc0], eax
+mov dword [ebp - 0xbc], edx
+jmp short loc_fffb7d8b ; jmp 0xfffb7d8b
+
+loc_fffb7d2b:
+lea edx, [ebx + 4]
+cmp al, 0x7a
+mov dword [ebp - 0xc8], edx
+je short loc_fffb7d3c ; je 0xfffb7d3c
+cmp al, 0x74
+jne short loc_fffb7d4f ; jne 0xfffb7d4f
+
+loc_fffb7d3c:
+mov eax, dword [ebx]
+mov dword [ebp - 0xc0], eax
+sar eax, 0x1f
+mov dword [ebp - 0xbc], eax
+jmp short loc_fffb7d8b ; jmp 0xfffb7d8b
+
+loc_fffb7d4f:
+mov edx, dword [ebx]
+mov dword [ebp - 0xbc], 0
+mov dword [ebp - 0xc0], edx
+cmp al, 0x68
+jne short loc_fffb7d70 ; jne 0xfffb7d70
+movzx edx, dx
+mov dword [ebp - 0xc0], edx
+jmp short loc_fffb7d81 ; jmp 0xfffb7d81
+
+loc_fffb7d70:
+cmp al, 0x69
+jne short loc_fffb7d8b ; jne 0xfffb7d8b
+movzx eax, byte [ebp - 0xc0]
+mov dword [ebp - 0xc0], eax
+
+loc_fffb7d81:
+mov dword [ebp - 0xbc], 0
+
+loc_fffb7d8b:
+mov byte [ebp - 0xaa], 0x30
+mov dword [ebp - 0xdc], 0
+
+loc_fffb7d9c:
+mov eax, dword [ebp - 0xc0]
+mov edx, dword [ebp - 0xbc]
+mov ebx, eax
+or ebx, edx
+setne al
+cmp byte [ebp - 0xd4], 0x6f
+sete dl
+test al, dl
+mov edx, 1
+cmove edx, dword [ebp - 0xdc]
+cmp byte [ebp - 0xcc], 0
+mov dword [ebp - 0xdc], edx
+jne short loc_fffb7ddf ; jne 0xfffb7ddf
+cmp byte [ebp - 0xd4], 0x62
+jne short loc_fffb7e0d ; jne 0xfffb7e0d
+
+loc_fffb7ddf:
+test byte [ebp - 0xc4], 0x20
+jne short loc_fffb7df4 ; jne 0xfffb7df4
+test al, al
+je short loc_fffb7e0d ; je 0xfffb7e0d
+mov al, byte [ebp - 0xd4]
+jmp short loc_fffb7dfd ; jmp 0xfffb7dfd
+
+loc_fffb7df4:
+mov al, byte [ebp - 0xd4]
+or eax, 0x20
+
+loc_fffb7dfd:
+mov byte [ebp - 0xa9], al
+mov dword [ebp - 0xdc], 2
+
+loc_fffb7e0d:
+test byte [ebp - 0xc4], 8
+je short loc_fffb7e24 ; je 0xfffb7e24
+lea eax, [ebp - 0xaa]
+mov dword [ebp - 0xf4], eax
+jmp short loc_fffb7e38 ; jmp 0xfffb7e38
+
+loc_fffb7e24:
+mov dword [ebp - 0xf4], 0
+mov dword [ebp - 0xdc], 0
+
+loc_fffb7e38:
+cmp esi, 0xa
+jne short loc_fffb7ea3 ; jne 0xfffb7ea3
+mov dword [ebp - 0xcc], 0
+lea ebx, [ebp - 0xa0]
+
+loc_fffb7e4d:
+mov edx, dword [ebp - 0xbc]
+mov eax, dword [ebp - 0xc0]
+mov esi, edx
+or esi, eax
+je loc_fffb7ff0 ; je 0xfffb7ff0
+push ebx
+push 0xa
+push dword [ebp - 0xbc]
+push dword [ebp - 0xc0]
+call fcn_fffd28b3 ; call 0xfffd28b3
+mov esi, dword [ebp - 0xa0]
+add esp, 0x10
+inc dword [ebp - 0xcc]
+mov dword [ebp - 0xc0], eax
+mov eax, dword [ebp - 0xcc]
+mov dword [ebp - 0xbc], edx
+lea edx, [esi + 0x30]
+neg eax
+mov byte [eax + ebp - 0x18], dl
+jmp short loc_fffb7e4d ; jmp 0xfffb7e4d
+
+loc_fffb7ea3:
+cmp byte [ebp - 0xd4], 0x75
+sete byte [ebp - 0xec]
+cmp esi, 8
+sete dl
+cmp esi, 2
+sete al
+or al, dl
+jne short loc_fffb7ee1 ; jne 0xfffb7ee1
+cmp esi, 0x10
+je short loc_fffb7ee1 ; je 0xfffb7ee1
+mov bl, byte [ebp - 0xec]
+mov dword [ebp - 0xcc], 0
+or ebx, dword [ebp - 0xe8]
+jmp near loc_fffb7f83 ; jmp 0xfffb7f83
+
+loc_fffb7ee1:
+lea eax, [esi - 1]
+cmp esi, 0x10
+je short loc_fffb7ef6 ; je 0xfffb7ef6
+cmp dl, 1
+sbb ecx, ecx
+and ecx, 0xfffffffe
+add ecx, 3
+jmp short loc_fffb7efb ; jmp 0xfffb7efb
+
+loc_fffb7ef6:
+mov ecx, 4
+
+loc_fffb7efb:
+mov dword [ebp - 0xcc], 0
+
+loc_fffb7f05:
+mov esi, dword [ebp - 0xbc]
+mov ebx, dword [ebp - 0xc0]
+mov edx, esi
+or edx, ebx
+je loc_fffb7ff0 ; je 0xfffb7ff0
+mov edx, dword [ebp - 0xc0]
+and edx, eax
+cmp byte [ebp - 0xd4], 0x78
+mov bl, byte [edx + ref_fffd5868] ; mov bl, byte [edx - 0x2a798]
+sete dl
+or dl, byte [ebp - 0xe8]
+jne short loc_fffb7f44 ; jne 0xfffb7f44
+cmp byte [ebp - 0xec], 0
+je short loc_fffb7f47 ; je 0xfffb7f47
+
+loc_fffb7f44:
+or ebx, 0x20
+
+loc_fffb7f47:
+inc dword [ebp - 0xcc]
+mov edx, dword [ebp - 0xcc]
+mov esi, dword [ebp - 0xbc]
+neg edx
+mov byte [edx + ebp - 0x18], bl
+mov ebx, dword [ebp - 0xc0]
+xor edx, edx
+shrd ebx, esi, cl
+shr esi, cl
+test cl, 0x20
+cmovne ebx, esi
+cmovne esi, edx
+mov dword [ebp - 0xc0], ebx
+mov dword [ebp - 0xbc], esi
+jmp short loc_fffb7f05 ; jmp 0xfffb7f05
+
+loc_fffb7f83:
+mov edx, dword [ebp - 0xbc]
+mov eax, dword [ebp - 0xc0]
+mov ecx, edx
+or ecx, eax
+je short loc_fffb7ff0 ; je 0xfffb7ff0
+push eax
+push esi
+push dword [ebp - 0xbc]
+push dword [ebp - 0xc0]
+call fcn_fffd2889 ; call 0xfffd2889
+add esp, 0xc
+push esi
+push dword [ebp - 0xbc]
+push dword [ebp - 0xc0]
+mov al, byte [eax + ref_fffd5868] ; mov al, byte [eax - 0x2a798]
+mov dl, al
+or edx, 0x20
+test bl, bl
+cmovne eax, edx
+inc dword [ebp - 0xcc]
+mov edx, dword [ebp - 0xcc]
+neg edx
+mov byte [edx + ebp - 0x18], al
+call fcn_fffd289e ; call 0xfffd289e
+add esp, 0x10
+mov dword [ebp - 0xc0], eax
+mov dword [ebp - 0xbc], edx
+jmp short loc_fffb7f83 ; jmp 0xfffb7f83
+
+loc_fffb7ff0:
+cmp dword [ebp - 0xd8], 0
+mov dword [ebp - 0xf0], 0
+je loc_fffb819b ; je 0xfffb819b
+mov ebx, dword [ebp - 0xf8]
+mov esi, dword [ebp - 0xd8]
+mov eax, dword [ebp - 0xcc]
+mov dword [ebp - 0xc0], 0x82
+mov byte [ebp - 0xec], 0
+lea ebx, [ebx + esi - 1]
+sub dword [ebp - 0xc0], eax
+mov dword [ebp - 0xe8], eax
+xor eax, eax
+mov dword [ebp - 0xd4], ebx
+
+loc_fffb8042:
+cmp dword [ebp - 0xe8], 0
+je loc_fffb819b ; je 0xfffb819b
+cmp dword [ebp - 0xd8], 0
+je loc_fffb829e ; je 0xfffb829e
+mov esi, dword [ebp - 0xd4]
+mov al, byte [esi]
+cmp al, 0x2d
+je loc_fffb819b ; je 0xfffb819b
+cmp al, 0x2a
+je short loc_fffb808e ; je 0xfffb808e
+mov ebx, dword [ebp - 0xd8]
+xor eax, eax
+mov dword [ebp - 0xec], 1
+sub esi, ebx
+mov edx, ebx
+mov dword [ebp - 0x100], esi
+jmp short loc_fffb80e1 ; jmp 0xfffb80e1
+
+loc_fffb808e:
+mov eax, dword [ebp - 0xc8]
+lea ebx, [eax + 4]
+mov eax, dword [eax]
+test eax, eax
+js loc_fffb8195 ; js 0xfffb8195
+mov ecx, dword [ebp - 0xd4]
+mov edx, dword [ebp - 0xd8]
+mov dword [ebp - 0xc8], ebx
+dec ecx
+dec edx
+jne short loc_fffb8108 ; jne 0xfffb8108
+jmp near loc_fffb819b ; jmp 0xfffb819b
+
+loc_fffb80bc:
+movsx esi, byte [ebp - 0xf9]
+mov ecx, dword [ebp - 0xec]
+sub esi, 0x30
+imul esi, ecx
+add eax, esi
+imul esi, ecx, 0xa
+mov dword [ebp - 0xec], esi
+dec edx
+je loc_fffb819b ; je 0xfffb819b
+
+loc_fffb80e1:
+mov ebx, dword [ebp - 0x100]
+mov ecx, edx
+sub ecx, dword [ebp - 0xd8]
+add ecx, dword [ebp - 0xd4]
+mov bl, byte [ebx + edx]
+lea esi, [ebx - 0x30]
+mov byte [ebp - 0xf9], bl
+mov ebx, esi
+cmp bl, 9
+jbe short loc_fffb80bc ; jbe 0xfffb80bc
+
+loc_fffb8108:
+mov bl, byte [ecx]
+lea esi, [ecx - 1]
+mov dword [ebp - 0xd4], esi
+mov byte [ebp - 0xec], bl
+lea ebx, [edx - 1]
+mov dword [ebp - 0xd8], ebx
+test eax, eax
+je short loc_fffb8186 ; je 0xfffb8186
+
+loc_fffb8126:
+mov esi, dword [ebp - 0xe8]
+cmp esi, eax
+jle short loc_fffb819b ; jle 0xfffb819b
+lea ecx, [ebp - 0x9a]
+sub esi, eax
+add ecx, dword [ebp - 0xc0]
+xor edx, edx
+
+loc_fffb8140:
+cmp edx, esi
+je short loc_fffb814e ; je 0xfffb814e
+mov bl, byte [ecx + edx]
+mov byte [ecx + edx - 1], bl
+inc edx
+jmp short loc_fffb8140 ; jmp 0xfffb8140
+
+loc_fffb814e:
+mov ecx, dword [ebp - 0xe8]
+dec dword [ebp - 0xc0]
+add ecx, dword [ebp - 0xc0]
+mov bl, byte [ebp - 0xec]
+inc dword [ebp - 0xcc]
+sub ecx, eax
+inc dword [ebp - 0xf0]
+mov byte [ebp + ecx - 0x9a], bl
+mov dword [ebp - 0xe8], edx
+jmp near loc_fffb8042 ; jmp 0xfffb8042
+
+loc_fffb8186:
+cmp dword [ebp - 0xd8], 0
+jne loc_fffb8042 ; jne 0xfffb8042
+jmp short loc_fffb819b ; jmp 0xfffb819b
+
+loc_fffb8195:
+mov dword [ebp - 0xc8], ebx
+
+loc_fffb819b:
+cmp dword [ebp - 0xd0], 0
+js short loc_fffb81ad ; js 0xfffb81ad
+and dword [ebp - 0xc4], 0xffffffef
+jmp short loc_fffb81b7 ; jmp 0xfffb81b7
+
+loc_fffb81ad:
+mov dword [ebp - 0xd0], 1
+
+loc_fffb81b7:
+mov esi, dword [ebp - 0xcc]
+mov eax, dword [ebp - 0xd0]
+add eax, dword [ebp - 0xf0]
+cmp eax, esi
+cmovl eax, esi
+mov esi, dword [ebp - 0xe0]
+xor edx, edx
+mov ebx, eax
+mov eax, dword [ebp - 0xdc]
+mov ecx, esi
+add eax, ebx
+sub ecx, eax
+cmp eax, esi
+cmovl edx, ecx
+mov ecx, dword [ebp - 0xc4]
+xor eax, eax
+and ecx, 4
+je short loc_fffb81fa ; je 0xfffb81fa
+mov eax, edx
+xor edx, edx
+
+loc_fffb81fa:
+test byte [ebp - 0xc4], 0x40
+je short loc_fffb8212 ; je 0xfffb8212
+add eax, edx
+xor edx, edx
+test ecx, ecx
+sete dl
+add edx, eax
+sar edx, 1
+sub eax, edx
+
+loc_fffb8212:
+sub ebx, dword [ebp - 0xcc]
+mov ecx, ebx
+test byte [ebp - 0xc4], 0x10
+je short loc_fffb8227 ; je 0xfffb8227
+add ecx, edx
+xor edx, edx
+
+loc_fffb8227:
+mov esi, dword [ebp - 0xcc]
+sub esp, 0xc
+push eax
+lea eax, [ebp - 0x9a]
+sub eax, esi
+push esi
+add eax, 0x82
+push eax
+push ecx
+mov ecx, dword [ebp - 0xf4]
+push dword [ebp - 0xdc]
+lea eax, [ebp - 0xa4]
+call fcn_fffb7325 ; call 0xfffb7325
+mov ebx, dword [ebp - 0xc8]
+add esp, 0x20
+
+loc_fffb8261:
+test eax, eax
+js loc_fffb7757 ; js 0xfffb7757
+
+loc_fffb8269:
+add dword [ebp - 0xe4], eax
+lea ecx, [edi + 1]
+jmp near loc_fffb776c ; jmp 0xfffb776c
+
+loc_fffb8277:
+mov eax, dword [ebp - 0xe4]
+jmp short loc_fffb82b2 ; jmp 0xfffb82b2
+
+loc_fffb827f:
+sub eax, ref_fffd58b0 ; sub eax, 0xfffd58b0
+inc edi
+mov eax, dword [eax*4 + ref_fffd5890] ; mov eax, dword [eax*4 - 0x2a770]
+or dword [ebp - 0xc4], eax
+jmp near loc_fffb77ba ; jmp 0xfffb77ba
+
+loc_fffb8297:
+mov edi, esi
+jmp near loc_fffb7973 ; jmp 0xfffb7973
+
+loc_fffb829e:
+test eax, eax
+jne loc_fffb8126 ; jne 0xfffb8126
+jmp near loc_fffb819b ; jmp 0xfffb819b
+
+loc_fffb82ab:
+add ebx, 4
+xor eax, eax
+jmp short loc_fffb8269 ; jmp 0xfffb8269
+
+loc_fffb82b2:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb82ba:
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x20
+mov esi, dword [edx + 9]
+mov edx, dword [ebx + 0x188b]
+mov eax, dword [eax + 0x2443]
+push 4
+lea edx, [edx*4 + ref_fffd3230] ; lea edx, [edx*4 - 0x2cdd0]
+push edx
+lea edx, [ebp - 0x1c]
+push edx
+call dword [eax + 0x58] ; ucall
+mov al, byte [ebx + 0xfac]
+add esp, 0x10
+cmp byte [ebp - 0x1c], al
+mov al, 1
+jne short loc_fffb8350 ; jne 0xfffb8350
+mov cl, byte [ebx + 0xfad]
+cmp byte [ebp - 0x1b], cl
+jne short loc_fffb8350 ; jne 0xfffb8350
+mov cl, byte [ebx + 0xfae]
+cmp byte [ebp - 0x1a], cl
+jne short loc_fffb8350 ; jne 0xfffb8350
+mov cl, byte [ebx + 0xfaf]
+cmp byte [ebp - 0x19], cl
+jne short loc_fffb8350 ; jne 0xfffb8350
+mov ecx, dword [ebx + 0xfa4]
+cmp dword [ebx + 0x1887], ecx
+jne short loc_fffb8350 ; jne 0xfffb8350
+mov ecx, dword [ebx + 0xfa0]
+cmp dword [ebx + 0x1883], ecx
+jne short loc_fffb8350 ; jne 0xfffb8350
+xor eax, eax
+cmp edi, 2
+je short loc_fffb8350 ; je 0xfffb8350
+mov edx, 0x102
+mov eax, esi
+call fcn_fffc3dc3 ; call 0xfffc3dc3
+cmp eax, dword [ebx + 0xfb0]
+setne al
+
+loc_fffb8350:
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8358:
+push ebp
+mov ebp, esp
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 8]
+lea eax, [ebp - 0xc]
+push eax
+push ebx
+call fcn_fffab60f ; call 0xfffab60f
+add esp, 0x10
+test eax, eax
+jns short loc_fffb837a ; jns 0xfffb837a
+mov dword [ebp - 0xc], 0
+
+loc_fffb837a:
+mov eax, dword [ebp - 0xc]
+test eax, eax
+je short loc_fffb838f ; je 0xfffb838f
+push edx
+push edx
+push ebx
+push eax
+call fcn_fffac673 ; call 0xfffac673
+add esp, 0x10
+jmp short loc_fffb8391 ; jmp 0xfffb8391
+
+loc_fffb838f:
+xor eax, eax
+
+loc_fffb8391:
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffb8396: ; not directly referenced
+and dh, 4
+je short loc_fffb83fa ; je 0xfffb83fa
+push ebp
+mov edx, ecx
+mov ebp, esp
+push edi
+push esi
+mov esi, ecx
+shr edx, 0x13
+push ebx
+and edx, 1
+sub esp, 0xc
+cmp edx, 1
+mov edi, dword [eax + 0x68]
+mov edx, ecx
+sbb ebx, ebx
+call fcn_fffc3bf5 ; call 0xfffc3bf5
+shr esi, 0x11
+and ebx, 0x10
+and esi, 1
+add ebx, 0x10
+push ecx
+push esi
+push edx
+push eax
+call edi
+add esp, 0x10
+cmp bx, 0x10
+jne short loc_fffb83e9 ; jne 0xfffb83e9
+xor eax, 0x1000000
+or eax, edx
+cmp eax, 1
+sbb eax, eax
+add eax, 0xb
+jmp short loc_fffb8400 ; jmp 0xfffb8400
+
+loc_fffb83e9: ; not directly referenced
+xor eax, 0x800000
+or eax, edx
+cmp eax, 1
+sbb eax, eax
+add eax, 0xa
+jmp short loc_fffb8400 ; jmp 0xfffb8400
+
+loc_fffb83fa: ; not directly referenced
+mov eax, 0xa
+ret
+
+loc_fffb8400: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8408: ; not directly referenced
+and dh, 4
+je short loc_fffb846c ; je 0xfffb846c
+push ebp
+mov edx, ecx
+mov ebp, esp
+push edi
+push esi
+mov esi, ecx
+shr edx, 0x14
+push ebx
+and edx, 1
+sub esp, 0xc
+cmp edx, 1
+mov edi, dword [eax + 0x68]
+mov edx, ecx
+sbb ebx, ebx
+call fcn_fffc3bda ; call 0xfffc3bda
+shr esi, 0x12
+and ebx, 0x10
+and esi, 1
+add ebx, 0x10
+push ecx
+push esi
+push edx
+push eax
+call edi
+add esp, 0x10
+cmp bx, 0x10
+jne short loc_fffb845b ; jne 0xfffb845b
+xor eax, 0x1000000
+or eax, edx
+cmp eax, 1
+sbb eax, eax
+add eax, 0xb
+jmp short loc_fffb8472 ; jmp 0xfffb8472
+
+loc_fffb845b: ; not directly referenced
+xor eax, 0x800000
+or eax, edx
+cmp eax, 1
+sbb eax, eax
+add eax, 0xa
+jmp short loc_fffb8472 ; jmp 0xfffb8472
+
+loc_fffb846c: ; not directly referenced
+mov eax, 0xa
+ret
+
+loc_fffb8472: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb847a: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x1c], 0
+mov eax, dword [ebx + 0x2443]
+lea esi, [ebx + 0xfb9]
+mov dword [ebp - 0x20], eax
+lea eax, [ebx + 0x10]
+mov dword [ebp - 0x2c], eax
+mov al, byte [ebx + 0x3755]
+mov byte [ebx + 0xfb8], al
+mov eax, dword [ebx + 0x374e]
+mov dword [ebx + 0xfb4], eax
+
+loc_fffb84ba: ; not directly referenced
+imul eax, dword [ebp - 0x1c], 0x13c3
+xor edi, edi
+mov edx, dword [ebx + eax + 0x3816]
+lea ecx, [ebx + eax + 0x3756]
+mov dword [ebp - 0x28], ecx
+mov dword [esi + 4], edx
+mov dl, byte [ebx + eax + 0x381a]
+mov byte [esi + 8], dl
+mov eax, dword [ebx + eax + 0x3756]
+mov dword [esi], eax
+
+loc_fffb84ea: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+push edx
+push 0x2e
+lea eax, [eax + edi + 4]
+push eax
+lea eax, [esi + edi + 9]
+add edi, 0x2e
+push eax
+mov eax, dword [ebp - 0x20]
+call dword [eax + 0x58] ; ucall
+add esp, 0x10
+cmp edi, 0xb8
+jne short loc_fffb84ea ; jne 0xfffb84ea
+imul eax, dword [ebp - 0x1c], 0x54a
+lea edx, [esi + 0x313]
+mov dword [ebp - 0x24], 0
+lea edi, [ebx + eax + 0x19bb]
+
+loc_fffb8529: ; not directly referenced
+mov ecx, dword [ebp - 0x24]
+mov dword [ebp - 0x30], edx
+mov edx, dword [ebp - 0x28]
+push eax
+push 0x128
+lea eax, [edx + ecx + 0x1173]
+push eax
+lea eax, [esi + ecx + 0xc1]
+push eax
+mov eax, dword [ebp - 0x20]
+call dword [eax + 0x58] ; ucall
+mov al, byte [edi + 3]
+add esp, 0x10
+mov edx, dword [ebp - 0x30]
+cmp byte [edi + 2], 0xc
+mov byte [edx - 2], al
+jne short loc_fffb8573 ; jne 0xfffb8573
+mov al, byte [edi + 0xd]
+mov ecx, 0x1d
+mov byte [edx - 1], al
+lea eax, [edi + 0x140]
+jmp short loc_fffb8581 ; jmp 0xfffb8581
+
+loc_fffb8573: ; not directly referenced
+mov al, byte [edi + 8]
+mov ecx, 0x1f
+mov byte [edx - 1], al
+lea eax, [edi + 0x75]
+
+loc_fffb8581: ; not directly referenced
+sub esp, 4
+add edi, 0x277
+push ecx
+push eax
+mov eax, dword [ebp - 0x20]
+push edx
+mov dword [ebp - 0x30], edx
+call dword [eax + 0x58] ; ucall
+mov edx, dword [ebp - 0x30]
+add esp, 0x10
+add dword [ebp - 0x24], 0x128
+add edx, 0x21
+cmp dword [ebp - 0x24], 0x250
+jne loc_fffb8529 ; jne 0xfffb8529
+inc dword [ebp - 0x1c]
+add esi, 0x433
+cmp dword [ebp - 0x1c], 2
+jne loc_fffb84ba ; jne 0xfffb84ba
+mov eax, dword [ebx + 0x3735]
+mov dword [ebx + 0x182c], eax
+mov eax, dword [ebx + 0x3739]
+mov dword [ebx + 0x1830], eax
+mov eax, dword [ebx + 0x373d]
+mov dword [ebx + 0x1834], eax
+mov eax, dword [ebx + 0x3741]
+mov dword [ebx + 0x1838], eax
+push eax
+mov eax, dword [ebx + 0x2443]
+push 4
+mov edx, dword [ebx + 0x188b]
+lea edx, [edx*4 + ref_fffd3230] ; lea edx, [edx*4 - 0x2cdd0]
+push edx
+lea edx, [ebx + 0xfac]
+push edx
+call dword [eax + 0x58] ; ucall
+mov eax, dword [ebx + 0x1887]
+add esp, 0x10
+xor ecx, ecx
+mov dword [ebx + 0xfa4], eax
+mov eax, dword [ebx + 0x1883]
+mov dword [ebx + 0xfa0], eax
+mov eax, dword [ebx + 0x188b]
+mov dword [ebx + 0xfa8], eax
+mov al, byte [ebx + 0x190d]
+mov byte [ebx + 0x1842], al
+mov eax, dword [ebx + 0x36d7]
+mov dword [ebx + 0x181f], eax
+mov eax, dword [ebx + 0x36df]
+mov dword [ebx + 0x1823], eax
+mov al, byte [ebx + 0x36e7]
+mov byte [ebx + 0x182b], al
+mov eax, dword [ebx + 0x36e3]
+mov dword [ebx + 0x1827], eax
+mov al, byte [ebx + 0x3748]
+mov byte [ebx + 0x183c], al
+mov eax, dword [ebx + 0x2480]
+mov dword [ebx + 0x183d], eax
+mov al, byte [ebx + 0x3749]
+mov byte [ebx + 0x1841], al
+mov al, byte [ebx + 0x36ca]
+mov byte [ebx + 0x184c], al
+mov al, byte [ebx + 0x36a8]
+mov byte [ebx + 0x184d], al
+mov eax, dword [ebx + 0x36cb]
+mov dword [ebx + 0x1843], eax
+mov eax, dword [ebx + 0x1912]
+mov dword [ebx + 0x1847], eax
+mov al, byte [ebx + 0x1916]
+mov byte [ebx + 0x184b], al
+
+loc_fffb86dc: ; not directly referenced
+mov eax, dword [ebx + ecx*8 + 0x36a9]
+mov edx, dword [ebx + ecx*8 + 0x36ad]
+mov dword [ebx + ecx*8 + 0x184e], eax
+mov dword [ebx + ecx*8 + 0x1852], edx
+inc ecx
+cmp ecx, 4
+jne short loc_fffb86dc ; jne 0xfffb86dc
+mov edx, dword [ebx + 0x18bd]
+mov eax, dword [ebx + 0x18b9]
+call fcn_fffc3dc3 ; call 0xfffc3dc3
+mov edx, 0x185e
+mov dword [ebx + 0xfb0], eax
+mov eax, dword [ebp - 0x2c]
+call fcn_fffc3dc3 ; call 0xfffc3dc3
+mov dword [ebx + 8], 0x1866
+mov dword [ebx + 0xc], eax
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8736: ; not directly referenced
+mov eax, dword [0xff7d0084]
+push ebp
+mov ebp, esp
+push esi
+mov esi, dword [ebp + 8]
+push ebx
+mov eax, dword [eax + 0x14]
+mov ebx, dword [ebp + 0xc]
+sub esp, 0xc
+add eax, 0xb0048
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+cmp bl, 2
+je short loc_fffb876f ; je 0xfffb876f
+cmp bl, 6
+je short loc_fffb8776 ; je 0xfffb8776
+dec bl
+jne short loc_fffb8782 ; jne 0xfffb8782
+mov edx, 1
+jmp short loc_fffb877b ; jmp 0xfffb877b
+
+loc_fffb876f: ; not directly referenced
+mov edx, 2
+jmp short loc_fffb877b ; jmp 0xfffb877b
+
+loc_fffb8776: ; not directly referenced
+mov edx, 6
+
+loc_fffb877b: ; not directly referenced
+mov eax, esi
+call fcn_fffb7129 ; call 0xfffb7129
+
+loc_fffb8782: ; not directly referenced
+lea esp, [ebp - 8]
+xor eax, eax
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffb878b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x38
+mov eax, dword [0xff7d0084]
+mov edi, dword [eax + 0x14]
+add edi, 0xb0048
+push edi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov ebx, eax
+lea eax, [ebp - 0x1c]
+push eax
+push 0
+push 0
+push ref_fffd604c ; push 0xfffd604c
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x20
+xor ecx, ecx
+mov esi, eax
+
+loc_fffb87c3: ; not directly referenced
+test bh, 1
+jne short loc_fffb87f3 ; jne 0xfffb87f3
+cmp ecx, 0x32
+je short loc_fffb883e ; je 0xfffb883e
+mov eax, dword [ebp - 0x1c]
+push ebx
+push 0x3e8
+push eax
+push dword [ebp + 8]
+mov dword [ebp - 0x2c], ecx
+call dword [eax + 4] ; ucall
+mov dword [esp], edi
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov ecx, dword [ebp - 0x2c]
+add esp, 0x10
+inc ecx
+mov ebx, eax
+jmp short loc_fffb87c3 ; jmp 0xfffb87c3
+
+loc_fffb87f3: ; not directly referenced
+cmp ecx, 0x32
+je short loc_fffb883e ; je 0xfffb883e
+mov edi, ebx
+test bl, bl
+jns short loc_fffb8835 ; jns 0xfffb8835
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov ebx, dword [eax + 0x14]
+add ebx, 0xf80a2
+push ebx
+call fcn_fffb3d06 ; call 0xfffb3d06
+pop edx
+pop ecx
+and eax, 0xff7f
+push eax
+push ebx
+call fcn_fffb3d20 ; call 0xfffb3d20
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffb7129 ; call 0xfffb7129
+add esp, 0x10
+mov esi, eax
+
+loc_fffb8835: ; not directly referenced
+mov eax, edi
+and eax, 0xffffff90
+cmp al, 0x10
+jne short loc_fffb8844 ; jne 0xfffb8844
+
+loc_fffb883e: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov byte [eax], 1
+
+loc_fffb8844: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb884e:
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 8]
+mov edx, dword [ebp + 0xc]
+push ebx
+mov ebx, dword [ecx + 8]
+mov eax, dword [ecx + 0xc]
+xor ebx, dword [edx + 8]
+xor eax, dword [edx + 0xc]
+or ebx, eax
+mov ebx, dword [ecx]
+mov ecx, dword [ecx + 4]
+sete al
+xor ebx, dword [edx]
+xor ecx, dword [edx + 4]
+or ebx, ecx
+sete dl
+and eax, edx
+pop ebx
+pop ebp
+ret
+
+fcn_fffb887d: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x6c
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x68], ecx
+mov ecx, dword [ebp + 0xc]
+mov ebx, dword [ebp + 0x10]
+mov byte [ebp - 0x30], 0x21
+mov dword [ebp - 0x6c], eax
+mov al, byte [ebp + 0x14]
+mov dword [ebp - 0x3c], ecx
+mov byte [ebp - 0x76], cl
+mov edi, ebx
+mov byte [ebp - 0x2f], 0x42
+mov byte [ebp - 0x40], al
+mov byte [ebp - 0x2e], 0x58
+mov byte [ebp - 0x2d], 0x64
+mov byte [ebp - 0x2c], 0x85
+mov byte [ebp - 0x2b], 0xa6
+mov byte [ebp - 0x2a], 0xc8
+mov byte [ebp - 0x29], 0xe9
+mov byte [ebp - 0x28], 0x2f
+mov byte [ebp - 0x27], 0x41
+mov byte [ebp - 0x26], 0x53
+mov byte [ebp - 0x25], 0x64
+mov byte [ebp - 0x24], 0x7d
+mov byte [ebp - 0x23], 0x95
+mov byte [ebp - 0x22], 0xad
+mov byte [ebp - 0x21], 0xc5
+mov byte [ebp - 0x20], 0x76
+mov byte [ebp - 0x1f], 0x70
+mov byte [ebp - 0x1e], 0x6c
+mov byte [ebp - 0x1d], 0x67
+mov eax, dword [esi + 0x5edc]
+mov byte [ebp - 0x1c], 0x64
+mov byte [ebp - 0x1b], 0x61
+mov byte [ebp - 0x1a], 0x5f
+mov dword [ebp - 0x58], eax
+movzx eax, dl
+mov edx, dword [ebp - 0x58]
+mov dword [ebp - 0x60], eax
+imul eax, eax, 0xcc
+mov byte [ebp - 0x19], 0x5d
+mov dword [ebp - 0x74], 0
+mov dword [ebp - 0x5c], 0
+lea eax, [edx + eax + 0x1c]
+mov dl, 0x19
+mov dword [ebp - 0x44], eax
+mov eax, dword [esi + 0x18a7]
+mov eax, dword [esi + eax*4 + 0x3735]
+mov dword [ebp - 0x48], eax
+mov eax, dword [esi + 0x188b]
+mov dword [ebp - 0x70], eax
+xor eax, eax
+cmp dword [esi + 0x2480], 3
+sete al
+cmp cl, 0xc
+mov dword [ebp - 0x64], eax
+mov al, 0x4b
+cmovne edx, eax
+cmp dword [ebp + 0x1c], 0
+mov byte [ebp - 0x75], dl
+je short loc_fffb897e ; je 0xfffb897e
+mov eax, dword [ebp + 0x1c]
+cmp dword [eax], 0
+setne al
+movzx eax, al
+mov dword [ebp - 0x4c], eax
+jmp short loc_fffb89a3 ; jmp 0xfffb89a3
+
+loc_fffb897e: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+cmp al, 0xc
+sete dl
+cmp al, 0xa
+sete al
+or dl, al
+je short loc_fffb8996 ; je 0xfffb8996
+
+loc_fffb898f: ; not directly referenced
+xor eax, eax
+jmp near loc_fffb8ff5 ; jmp 0xfffb8ff5
+
+loc_fffb8996: ; not directly referenced
+cmp byte [ebp - 0x3c], 0xf
+je short loc_fffb898f ; je 0xfffb898f
+mov dword [ebp - 0x4c], 0
+
+loc_fffb89a3: ; not directly referenced
+cmp dword [ebp - 0x64], 0
+jne short loc_fffb89eb ; jne 0xfffb89eb
+mov edx, dword [ebp - 0x60]
+imul eax, edx, 0x54a
+imul edx, edx, 0x13c3
+lea eax, [esi + eax + 0x196b]
+mov dl, byte [esi + edx + 0x381a]
+test dl, 1
+je short loc_fffb89d4 ; je 0xfffb89d4
+cmp byte [eax + 0x27e], 0
+je short loc_fffb89fb ; je 0xfffb89fb
+
+loc_fffb89d4: ; not directly referenced
+and dl, 4
+je short loc_fffb8a04 ; je 0xfffb8a04
+cmp byte [eax + 0x4f5], 1
+sbb eax, eax
+mov dword [ebp - 0x54], eax
+add dword [ebp - 0x54], 0x24
+jmp short loc_fffb8a0b ; jmp 0xfffb8a0b
+
+loc_fffb89eb: ; not directly referenced
+mov dword [ebp - 0x54], 0x50
+mov dword [ebp - 0x50], 0x37
+jmp short loc_fffb8a12 ; jmp 0xfffb8a12
+
+loc_fffb89fb: ; not directly referenced
+mov dword [ebp - 0x54], 0x23
+jmp short loc_fffb8a0b ; jmp 0xfffb8a0b
+
+loc_fffb8a04: ; not directly referenced
+mov dword [ebp - 0x54], 0x24
+
+loc_fffb8a0b: ; not directly referenced
+mov dword [ebp - 0x50], 0x23
+
+loc_fffb8a12: ; not directly referenced
+cmp byte [ebp - 0x3c], 2
+ja loc_fffb8b08 ; ja 0xfffb8b08
+movzx eax, byte [ebp - 0x6c]
+mov edx, dword [ebp - 0x44]
+cmp byte [ebp - 0x3c], 1
+mov eax, dword [edx + eax*4 + 0x78]
+mov dword [ebp - 0x5c], eax
+jne short loc_fffb8a44 ; jne 0xfffb8a44
+mov edx, 0x3a04
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [ebp - 0x74], eax
+jmp near loc_fffb8b12 ; jmp 0xfffb8b12
+
+loc_fffb8a44: ; not directly referenced
+mov edx, 0x3a00
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+cmp byte [ebp - 0x3c], 0
+jne loc_fffb8b08 ; jne 0xfffb8b08
+mov ebx, dword [ebp - 0x58]
+mov edx, dword [ebx + 0xc]
+shr edx, 0xb
+mov cl, dl
+and ecx, 0xf
+and dl, 8
+lea ebx, [ecx - 0x10]
+cmovne ecx, ebx
+cmp dword [ebp + 0x18], 0
+je short loc_fffb8a90 ; je 0xfffb8a90
+mov edi, dword [ebp - 0x5c]
+and eax, 0x3f
+mov byte [ebp - 0x40], al
+mov eax, edi
+and eax, 0x3f
+and edi, 0x20
+lea edx, [eax - 0x40]
+cmovne eax, edx
+mov edi, eax
+
+loc_fffb8a90: ; not directly referenced
+cmp dword [ebp - 0x70], 1
+movsx ecx, cl
+mov edx, dword [esi + 0x1887]
+sbb ebx, ebx
+and ebx, 0x12
+add ebx, 0x1e
+cmp edx, 0x306d0
+sete al
+cmp edx, 0x40650
+sete dl
+movsx ebx, bl
+or eax, edx
+mov edx, 0x20
+cmp al, 1
+sbb eax, eax
+sub edx, ecx
+and eax, 0xffffffd3
+add ecx, 0x20
+add eax, 0x78
+movzx eax, al
+imul eax, edx
+cdq
+idiv ecx
+mov ecx, 3
+xor edx, edx
+div cx
+movsx ecx, byte [ebp - 0x40]
+lea edx, [ecx + ecx*2]
+add edx, ebx
+imul eax, edx
+mov edx, edi
+movsx edx, dl
+add edx, ecx
+lea edx, [edx + edx*2]
+movzx eax, ax
+add ebx, edx
+cdq
+idiv ebx
+mov ecx, eax
+jmp near loc_fffb8c02 ; jmp 0xfffb8c02
+
+loc_fffb8b08: ; not directly referenced
+cmp byte [ebp - 0x3c], 1
+jne loc_fffb8bab ; jne 0xfffb8bab
+
+loc_fffb8b12: ; not directly referenced
+mov eax, dword [ebp - 0x58]
+mov ecx, dword [eax + 0xc]
+mov eax, ecx
+shr eax, 3
+and eax, 1
+shr ecx, 0xf
+mov byte [ebp - 0x64], al
+mov al, cl
+and eax, 0x1f
+cmp dword [ebp - 0x70], 1
+lea edx, [eax - 0x20]
+sbb ebx, ebx
+and ebx, 6
+add ebx, 0xa
+and cl, 0x10
+cmove edx, eax
+cmp dword [ebp + 0x18], 0
+je short loc_fffb8b65 ; je 0xfffb8b65
+mov al, byte [ebp - 0x74]
+mov edi, dword [ebp - 0x5c]
+and eax, 0x3f
+shr edi, 0xc
+mov byte [ebp - 0x40], al
+mov eax, edi
+and eax, 0x1f
+and edi, 0x10
+lea ecx, [eax - 0x20]
+cmovne eax, ecx
+mov edi, eax
+
+loc_fffb8b65: ; not directly referenced
+mov cl, byte [ebp - 0x40]
+mov al, 1
+movsx edx, dl
+movsx ebx, bl
+test cl, cl
+cmove ecx, eax
+mov eax, esi
+mov byte [ebp - 0x40], cl
+call fcn_fffa6cfe ; call 0xfffa6cfe
+mov dl, byte [ebp - 0x64]
+xor edx, 1
+movzx edx, dl
+imul ebx, edx
+movsx edx, byte [ebp - 0x40]
+lea ecx, [ebx + edx]
+imul eax, ecx
+mov ecx, edi
+movsx ecx, cl
+add edx, ecx
+add ebx, edx
+movzx eax, ax
+cdq
+idiv ebx
+mov ecx, eax
+jmp near loc_fffb8ca4 ; jmp 0xfffb8ca4
+
+loc_fffb8bab: ; not directly referenced
+cmp byte [ebp - 0x3c], 2
+jne short loc_fffb8bd7 ; jne 0xfffb8bd7
+cmp dword [ebp + 0x18], 0
+je short loc_fffb8bca ; je 0xfffb8bca
+mov edi, dword [ebp - 0x5c]
+shr edi, 0x1b
+mov eax, edi
+and eax, 0x10
+lea ecx, [edi - 0x20]
+test al, al
+cmovne edi, ecx
+
+loc_fffb8bca: ; not directly referenced
+mov eax, edi
+movsx ecx, al
+add ecx, 0x32
+jmp near loc_fffb8ca4 ; jmp 0xfffb8ca4
+
+loc_fffb8bd7: ; not directly referenced
+cmp byte [ebp - 0x3c], 4
+jne short loc_fffb8be5 ; jne 0xfffb8be5
+movsx ecx, bl
+jmp near loc_fffb8dec ; jmp 0xfffb8dec
+
+loc_fffb8be5: ; not directly referenced
+cmp byte [ebp - 0x3c], 5
+jne short loc_fffb8c00 ; jne 0xfffb8c00
+movsx ax, bl
+idiv byte [ebp - 0x76]
+movsx eax, al
+lea ecx, [eax + eax*4]
+add ecx, 0x64
+jmp near loc_fffb8dec ; jmp 0xfffb8dec
+
+loc_fffb8c00: ; not directly referenced
+xor ecx, ecx
+
+loc_fffb8c02: ; not directly referenced
+cmp byte [ebp - 0x3c], 9
+jne loc_fffb8ca4 ; jne 0xfffb8ca4
+cmp dword [ebp + 0x18], 0
+je short loc_fffb8c67 ; je 0xfffb8c67
+cmp byte [ebp - 0x68], 3
+ja loc_fffb898f ; ja 0xfffb898f
+mov ecx, dword [ebp - 0x68]
+imul eax, dword [ebp - 0x60], 0x13c3
+mov edx, ecx
+and edx, 1
+shr ecx, 1
+imul edx, edx, 0x18
+imul ecx, ecx, 0x128
+lea eax, [esi + eax + 0x3756]
+add edx, ecx
+cmp dword [ebp - 0x64], 0
+je short loc_fffb8c55 ; je 0xfffb8c55
+mov cx, word [eax + edx + 0x1271]
+lea edi, [ecx - 1]
+and edi, 0xf
+jmp short loc_fffb8c6d ; jmp 0xfffb8c6d
+
+loc_fffb8c55: ; not directly referenced
+mov cx, word [eax + edx + 0x126d]
+shr cx, 1
+mov edi, ecx
+and edi, 1
+jmp short loc_fffb8c8d ; jmp 0xfffb8c8d
+
+loc_fffb8c67: ; not directly referenced
+cmp dword [ebp - 0x64], 0
+je short loc_fffb8c84 ; je 0xfffb8c84
+
+loc_fffb8c6d: ; not directly referenced
+mov eax, edi
+mov ebx, 7
+cmp al, 6
+mov al, 6
+cmovg edi, eax
+mov eax, edi
+movsx eax, al
+sub ebx, eax
+jmp short loc_fffb8c95 ; jmp 0xfffb8c95
+
+loc_fffb8c84: ; not directly referenced
+mov eax, edi
+cmp al, 0xfa
+mov al, 0xfb
+cmovle edi, eax
+
+loc_fffb8c8d: ; not directly referenced
+mov eax, edi
+movsx ebx, al
+add ebx, 6
+
+loc_fffb8c95: ; not directly referenced
+mov eax, 0xf0
+cdq
+idiv ebx
+mov ecx, eax
+jmp near loc_fffb8dec ; jmp 0xfffb8dec
+
+loc_fffb8ca4: ; not directly referenced
+cmp byte [ebp - 0x3c], 6
+jne loc_fffb8dec ; jne 0xfffb8dec
+mov edx, 0x3918
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov dl, byte [esi + 0x36e7]
+and eax, 3
+cmp dword [esi + 0x36e3], 1
+sbb ebx, ebx
+and ebx, 0xfffffffe
+add ebx, 6
+cmp dword [esi + 0x188b], 0
+jne loc_fffb8d81 ; jne 0xfffb8d81
+cmp dword [ebp - 0x48], 0x546
+movzx eax, al
+seta cl
+sub edx, ebx
+cmp dl, 4
+mov bl, 4
+cmovle ebx, edx
+xor edx, edx
+test bl, bl
+movzx ecx, cl
+cmovns edx, ebx
+cmp dword [esi + 0x1887], 0x40650
+jne short loc_fffb8d26 ; jne 0xfffb8d26
+cmp dl, 2
+mov bl, 2
+cmovle ebx, edx
+movsx ebx, bl
+lea ecx, [ecx + ecx*2]
+add ecx, ebx
+movzx ebx, byte [eax + ecx*4 + ref_fffd32d4] ; movzx ebx, byte [eax + ecx*4 - 0x2cd2c]
+jmp short loc_fffb8d36 ; jmp 0xfffb8d36
+
+loc_fffb8d26: ; not directly referenced
+movsx edx, dl
+lea ecx, [ecx + ecx*4]
+add edx, ecx
+movzx ebx, byte [eax + edx*4 + ref_fffd32ac] ; movzx ebx, byte [eax + edx*4 - 0x2cd54]
+
+loc_fffb8d36: ; not directly referenced
+imul eax, dword [ebp - 0x48], 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_fffb8d6d ; je 0xfffb8d6d
+movzx eax, byte [ebp - 0x6c]
+mov edi, dword [ebp - 0x44]
+movzx edi, byte [edi + eax*4 + 5]
+mov eax, edi
+shr al, 2
+mov edi, eax
+and edi, 7
+
+loc_fffb8d6d: ; not directly referenced
+mov eax, edi
+movzx ebx, byte [ebp + ebx - 0x30]
+movsx eax, al
+movzx eax, byte [ebp + eax - 0x30]
+imul eax, ecx
+jmp short loc_fffb8de5 ; jmp 0xfffb8de5
+
+loc_fffb8d81: ; not directly referenced
+imul eax, dword [ebp - 0x48], 0x5fa
+xor edx, edx
+mov ecx, 0x3e8
+div ecx
+cmp dword [ebp + 0x18], 0
+lea edx, [eax + 0x4cc]
+je short loc_fffb8dbc ; je 0xfffb8dbc
+movzx eax, byte [ebp - 0x6c]
+mov ecx, dword [ebp - 0x44]
+movzx edi, byte [ecx + eax*4 + 5]
+mov ebx, edi
+shr bl, 2
+mov edi, ebx
+mov bl, byte [ecx + eax*4 + 0x2b]
+and edi, 7
+shr bl, 2
+jmp short loc_fffb8dc5 ; jmp 0xfffb8dc5
+
+loc_fffb8dbc: ; not directly referenced
+mov eax, edi
+mov ebx, edi
+shr al, 3
+mov edi, eax
+
+loc_fffb8dc5: ; not directly referenced
+and ebx, 7
+mov eax, edi
+movzx ebx, bl
+movsx eax, al
+movzx ecx, byte [ebp + ebx - 0x20]
+mov ebx, 0x2710
+movzx eax, byte [ebp + eax - 0x28]
+imul eax, ecx
+imul eax, edx
+
+loc_fffb8de5: ; not directly referenced
+xor edx, edx
+div ebx
+movzx ecx, ax
+
+loc_fffb8dec: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+cmp al, 0xa
+sete bl
+cmp al, 0xc
+sete al
+mov byte [ebp - 0x64], al
+or al, bl
+mov byte [ebp - 0x5c], bl
+jne short loc_fffb8e0f ; jne 0xfffb8e0f
+cmp byte [ebp - 0x3c], 0xf
+jne loc_fffb8fb2 ; jne 0xfffb8fb2
+jmp short loc_fffb8e36 ; jmp 0xfffb8e36
+
+loc_fffb8e0f: ; not directly referenced
+cmp byte [ebp - 0x3c], 0xf
+je short loc_fffb8e36 ; je 0xfffb8e36
+mov eax, dword [ebp - 0x58]
+cmp dword [ebp - 0x4c], 0
+mov ecx, dword [eax + 0xc]
+je short loc_fffb8e26 ; je 0xfffb8e26
+shr ecx, 0x18
+jmp short loc_fffb8e29 ; jmp 0xfffb8e29
+
+loc_fffb8e26: ; not directly referenced
+shr ecx, 0x14
+
+loc_fffb8e29: ; not directly referenced
+and ecx, 0xf
+test cl, 8
+je short loc_fffb8e38 ; je 0xfffb8e38
+sub ecx, 0x10
+jmp short loc_fffb8e38 ; jmp 0xfffb8e38
+
+loc_fffb8e36: ; not directly referenced
+mov ecx, edi
+
+loc_fffb8e38: ; not directly referenced
+movsx ecx, cl
+xor edx, edx
+add ecx, 0x20
+mov eax, 0x1900
+div ecx
+sub eax, 0x64
+cmp dword [ebp + 0x18], 0
+mov dword [ebp - 0x58], eax
+setne bl
+cmp byte [ebp - 0x3c], 0xf
+sete al
+xor edx, edx
+mov byte [ebp - 0x68], al
+or al, bl
+je short loc_fffb8ed5 ; je 0xfffb8ed5
+cmp dword [ebp - 0x4c], 0
+je short loc_fffb8e7e ; je 0xfffb8e7e
+mov edx, 0x3a0c
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, dword [ebp - 0x44]
+mov edx, dword [edi + 0x50]
+jmp short loc_fffb8e90 ; jmp 0xfffb8e90
+
+loc_fffb8e7e: ; not directly referenced
+mov edx, 0x3a08
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, dword [ebp - 0x44]
+mov edx, dword [edi + 0x4c]
+
+loc_fffb8e90: ; not directly referenced
+shr edx, 9
+shr eax, 0xc
+mov edi, edx
+and eax, 0x3f
+and edi, 0xf
+mov byte [ebp - 0x40], al
+test edi, 8
+je short loc_fffb8eac ; je 0xfffb8eac
+sub edi, 0x10
+
+loc_fffb8eac: ; not directly referenced
+xor edx, edx
+test bl, bl
+je short loc_fffb8ed5 ; je 0xfffb8ed5
+cmp byte [ebp - 0x64], 0
+je short loc_fffb8ed5 ; je 0xfffb8ed5
+mov edx, dword [ebp - 0x60]
+mov eax, esi
+shl edx, 8
+add edx, 0x140c
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+shr eax, 0xd
+mov edi, eax
+and edi, 3
+
+loc_fffb8ed5: ; not directly referenced
+movsx ecx, byte [ebp - 0x40]
+mov eax, dword [ebp - 0x58]
+mov bl, byte [ebp - 0x68]
+add ecx, 0xc
+imul eax, ecx
+or bl, byte [ebp - 0x5c]
+mov ebx, edi
+movsx ebx, bl
+je short loc_fffb8f18 ; je 0xfffb8f18
+add ecx, ebx
+xor edx, edx
+mov esi, dword [ebp - 0x50]
+div ecx
+xor edx, edx
+mov ecx, 5
+div ecx
+mov ebx, eax
+mov eax, dword [ebp + 0x1c]
+add esi, ebx
+mov dword [eax], ebx
+mov eax, dword [ebp - 0x54]
+add eax, ebx
+cmp dword [ebp - 0x4c], 0
+cmovne esi, eax
+jmp short loc_fffb8f38 ; jmp 0xfffb8f38
+
+loc_fffb8f18: ; not directly referenced
+movsx edx, dl
+mov esi, dword [ebp - 0x50]
+add ecx, edx
+xor edx, edx
+div ecx
+mov ecx, 5
+sub ecx, ebx
+xor edx, edx
+div ecx
+mov ebx, eax
+add esi, eax
+mov eax, dword [ebp + 0x1c]
+mov dword [eax], ebx
+
+loc_fffb8f38: ; not directly referenced
+imul eax, dword [ebp - 0x48], 0x3e8
+add esi, esi
+xor edx, edx
+div esi
+mov esi, 0x3e8
+xor edx, edx
+mov ecx, eax
+div esi
+movzx esi, byte [ebp - 0x75]
+xor edx, edx
+mov dword [ebp - 0x40], esi
+mov esi, eax
+imul esi, eax
+mov dword [ebp - 0x50], eax
+mov eax, esi
+mov esi, 0x64
+imul eax, ebx
+imul ebx, dword [ebp - 0x50]
+div esi
+xor edx, edx
+imul eax, dword [ebp - 0x40]
+div esi
+mov edx, dword [ebp + 0x1c]
+mov dword [edx + 4], eax
+mov eax, dword [ebp - 0x48]
+xor edx, edx
+sub eax, ebx
+sub eax, ebx
+mov ebx, 0x3e8
+imul eax, eax
+div ebx
+mov bx, 0x2710
+xor edx, edx
+imul eax, eax, 0xd2f0
+div ebx
+xor edx, edx
+div esi
+xor edx, edx
+imul eax, dword [ebp - 0x40]
+div esi
+mov esi, dword [ebp + 0x1c]
+mov dword [esi + 8], eax
+
+loc_fffb8fb2: ; not directly referenced
+cmp byte [ebp - 0x3c], 0xb
+mov eax, ecx
+jne short loc_fffb8ff5 ; jne 0xfffb8ff5
+cmp dword [ebp + 0x18], 0
+je short loc_fffb8fed ; je 0xfffb8fed
+mov eax, dword [ebp - 0x44]
+mov eax, dword [eax + 0x4c]
+mov dword [ebp - 0x3c], eax
+mov cl, byte [ebp - 0x3c]
+and ecx, 0x1f
+cmp dword [ebp - 0x4c], 0
+mov edi, ecx
+je short loc_fffb8fe2 ; je 0xfffb8fe2
+mov eax, dword [ebp - 0x44]
+mov ecx, dword [eax + 0x50]
+mov edi, ecx
+and edi, 0x1f
+
+loc_fffb8fe2: ; not directly referenced
+test edi, 0x10
+je short loc_fffb8fed ; je 0xfffb8fed
+sub edi, 0x20
+
+loc_fffb8fed: ; not directly referenced
+mov eax, edi
+movsx eax, al
+add eax, 0x32
+
+loc_fffb8ff5: ; not directly referenced
+add esp, 0x6c
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb8ffd: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x8c
+mov eax, dword [eax + 0x188b]
+mov byte [ebp - 0x2a], 0
+mov byte [ebp - 0x29], 0x3c
+mov byte [ebp - 0x28], 0x78
+cmp eax, 1
+mov dword [ebp - 0x8c], eax
+sbb eax, eax
+mov dword [ebp - 0x88], eax
+and word [ebp - 0x88], 0xfc19
+add word [ebp - 0x88], 0x3e8
+mov byte [ebp - 0x27], 0x28
+mov byte [ebp - 0x26], 0x14
+mov byte [ebp - 0x25], 0x1e
+mov byte [ebp - 0x35], 0
+mov byte [ebp - 0x34], 0x3c
+mov byte [ebp - 0x33], 0x78
+mov byte [ebp - 0x32], 0
+mov byte [ebp - 0x31], 0x22
+mov byte [ebp - 0x30], 0x28
+mov byte [ebp - 0x2f], 0x30
+mov byte [ebp - 0x2e], 0
+mov byte [ebp - 0x2d], 0
+mov byte [ebp - 0x2c], 0x78
+mov byte [ebp - 0x2b], 0xf0
+mov dword [ebp - 0x48], ebx
+mov dword [ebp - 0x3c], 0
+mov dword [ebp - 0x44], 0
+mov dword [ebp - 0x50], 0
+mov dword [ebp - 0x6c], 0
+mov byte [ebp - 0x76], 0
+
+loc_fffb909d: ; not directly referenced
+mov eax, dword [ebp - 0x48]
+mov esi, edi
+mov dword [ebp - 0x54], 0
+mov word [ebp - 0x4a], 0
+mov word [ebp - 0x56], 0
+add eax, 0x3756
+mov word [ebp - 0x4c], 0
+mov dword [ebp - 0x70], 0
+mov dword [ebp - 0x94], eax
+
+loc_fffb90cd: ; not directly referenced
+mov ecx, dword [ebp - 0x48]
+mov al, byte [ebp - 0x54]
+mov edx, dword [ecx + 0x3816]
+mov cl, al
+mov dword [ebp - 0x90], edx
+mov edx, 1
+shl edx, cl
+mov ecx, dword [ebp - 0x48]
+test byte [ecx + 0x381a], dl
+je loc_fffb93e9 ; je 0xfffb93e9
+cmp dword [ebx + 0x2480], 3
+jne short loc_fffb9140 ; jne 0xfffb9140
+cmp al, 1
+ja loc_fffb9474 ; ja 0xfffb9474
+imul eax, dword [ebp - 0x54], 0x18
+mov word [ebp - 0x40], 0x3fff
+mov dx, word [ecx + eax + 0x49c7]
+and edx, 3
+mov cl, byte [ebp + edx - 0x32]
+mov byte [ebp - 0x75], cl
+mov ecx, dword [ebp - 0x48]
+mov ax, word [ecx + eax + 0x49cf]
+and eax, 3
+movzx eax, byte [ebp + eax - 0x2e]
+mov word [ebp - 0x68], ax
+jmp near loc_fffb91c6 ; jmp 0xfffb91c6
+
+loc_fffb9140: ; not directly referenced
+mov dl, al
+and eax, 1
+shr dl, 1
+movzx edx, dl
+imul edx, edx, 0x128
+imul eax, eax, 0x18
+add eax, edx
+add eax, dword [ebp - 0x94]
+mov cx, word [eax + 0x126d]
+mov ax, word [eax + 0x126f]
+mov word [ebp - 0x68], ax
+mov eax, ecx
+shr ax, 1
+and eax, 1
+add eax, 6
+mov dword [ebp - 0x40], eax
+mov eax, 0xf0
+cdq
+idiv dword [ebp - 0x40]
+mov edx, ecx
+shr dx, 6
+and edx, 1
+add edx, edx
+shr word [ebp - 0x68], 9
+mov byte [ebp - 0x75], al
+mov eax, ecx
+shr ax, 9
+and eax, 1
+shl eax, 2
+shr cx, 2
+or eax, edx
+and ecx, 1
+or eax, ecx
+movzx eax, byte [ebp + eax - 0x2a]
+mov word [ebp - 0x40], ax
+mov eax, dword [ebp - 0x68]
+and eax, 3
+movzx eax, byte [ebp + eax - 0x35]
+mov word [ebp - 0x68], ax
+
+loc_fffb91c6: ; not directly referenced
+cmp dword [ebp - 0x70], 0
+jne loc_fffb934b ; jne 0xfffb934b
+mov byte [ebp - 0x70], 0
+
+loc_fffb91d4: ; not directly referenced
+movzx ecx, byte [ebx + 0x2488]
+cmp byte [ebp - 0x70], cl
+jae short loc_fffb9258 ; jae 0xfffb9258
+push edx
+movzx eax, byte [ebp - 0x70]
+xor ecx, ecx
+push edx
+mov edx, dword [ebp - 0x3c]
+push 0
+push 1
+push 0
+push 0
+push 0
+push eax
+mov dword [ebp - 0x74], eax
+mov eax, ebx
+call fcn_fffb887d ; call 0xfffb887d
+add esp, 0x18
+mov edx, dword [ebp - 0x3c]
+push 0
+xor ecx, ecx
+push 1
+push 0
+push 0
+push 1
+push dword [ebp - 0x74]
+add word [ebp - 0x56], ax
+mov eax, ebx
+call fcn_fffb887d ; call 0xfffb887d
+add esp, 0x18
+mov edx, dword [ebp - 0x3c]
+push 0
+xor ecx, ecx
+push 1
+push 0
+push 0
+push 6
+push dword [ebp - 0x74]
+add word [ebp - 0x4c], ax
+mov eax, ebx
+call fcn_fffb887d ; call 0xfffb887d
+xor edx, edx
+add esp, 0x20
+inc byte [ebp - 0x70]
+div word [ebp - 0x88]
+add word [ebp - 0x4a], ax
+jmp near loc_fffb91d4 ; jmp 0xfffb91d4
+
+loc_fffb9258: ; not directly referenced
+movzx eax, word [ebp - 0x56]
+mov dword [ebp - 0x70], 1
+cdq
+idiv ecx
+mov word [ebp - 0x56], ax
+movzx eax, word [ebp - 0x4c]
+cdq
+idiv ecx
+mov word [ebp - 0x4c], ax
+movzx eax, word [ebp - 0x4a]
+cdq
+idiv ecx
+cmp dword [ebp - 0x8c], 1
+mov word [ebp - 0x4a], ax
+jne loc_fffb934b ; jne 0xfffb934b
+push eax
+mov edx, dword [ebp - 0x3c]
+xor ecx, ecx
+push eax
+lea eax, [ebp - 0x24]
+push eax
+movzx eax, byte [ebx + 0x2488]
+push 1
+push 0
+push 0
+push 0xa
+push eax
+mov eax, ebx
+mov dword [ebp - 0x24], 0
+call fcn_fffb887d ; call 0xfffb887d
+mov eax, dword [ebp - 0x20]
+add esp, 0x18
+mov edx, dword [ebp - 0x3c]
+xor ecx, ecx
+mov dword [edi + 0x20], eax
+mov eax, dword [ebp - 0x1c]
+mov dword [edi + 0x24], eax
+lea eax, [ebp - 0x24]
+push eax
+movzx eax, byte [ebx + 0x2488]
+push 1
+push 0
+push 0
+push 0xc
+push eax
+mov eax, ebx
+mov dword [ebp - 0x24], 0
+call fcn_fffb887d ; call 0xfffb887d
+mov eax, dword [ebp - 0x20]
+add esp, 0x18
+add dword [edi + 0x20], eax
+xor ecx, ecx
+mov eax, dword [ebp - 0x1c]
+add dword [edi + 0x24], eax
+lea eax, [ebp - 0x24]
+mov edx, dword [ebp - 0x3c]
+push eax
+movzx eax, byte [ebx + 0x2488]
+push 1
+push 0
+push 0
+push 0xa
+push eax
+mov eax, ebx
+mov dword [ebp - 0x24], 1
+call fcn_fffb887d ; call 0xfffb887d
+mov eax, dword [ebp - 0x20]
+add esp, 0x20
+mov dword [edi + 0x28], eax
+mov edx, dword [ebp - 0x1c]
+add eax, edx
+mov dword [ebp - 0x44], eax
+mov eax, dword [edi + 0x20]
+add dword [ebp - 0x44], eax
+mov eax, dword [edi + 0x24]
+add dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x8c]
+mov dword [edi + 0x2c], edx
+mov dword [ebp - 0x70], eax
+
+loc_fffb934b: ; not directly referenced
+cmp dword [ebp - 0x90], 1
+jne short loc_fffb936b ; jne 0xfffb936b
+mov eax, dword [ebp - 0x68]
+test ax, ax
+cmove ax, word [ebp - 0x40]
+mov word [ebp - 0x40], 0x3fff
+mov word [ebp - 0x68], ax
+jmp short loc_fffb937d ; jmp 0xfffb937d
+
+loc_fffb936b: ; not directly referenced
+mov ecx, dword [ebp - 0x40]
+mov eax, 0x3fff
+test cx, cx
+cmovne eax, ecx
+mov word [ebp - 0x40], ax
+
+loc_fffb937d: ; not directly referenced
+movzx eax, word [ebp - 0x68]
+movzx edx, word [ebp - 0x40]
+movzx ecx, word [ebp - 0x56]
+test ax, ax
+cmove eax, edx
+push eax
+movzx eax, dx
+push eax
+movzx eax, word [ebp - 0x4c]
+mov edx, esi
+push eax
+movzx eax, byte [ebp - 0x75]
+push eax
+mov eax, ebx
+call fcn_fffa6d61 ; call 0xfffa6d61
+mov ax, word [ebp - 0x4a]
+add esp, 0x10
+add word [esi + 0x30], ax
+add ax, word [esi + 0x34]
+add eax, dword [ebp - 0x44]
+inc byte [ebp - 0x76]
+mov word [esi + 0x34], ax
+mov eax, dword [esi]
+add dword [ebp - 0x6c], eax
+mov eax, dword [esi + 4]
+add dword [ebp - 0x6c], eax
+mov eax, dword [esi + 0x14]
+add dword [ebp - 0x6c], eax
+mov eax, dword [esi + 8]
+add dword [ebp - 0x50], eax
+mov eax, dword [esi + 0x10]
+add dword [ebp - 0x50], eax
+mov eax, dword [esi + 0xc]
+add dword [ebp - 0x50], eax
+mov eax, dword [esi + 0x18]
+add dword [ebp - 0x50], eax
+
+loc_fffb93e9: ; not directly referenced
+inc dword [ebp - 0x54]
+add esi, 0x36
+cmp dword [ebp - 0x54], 4
+jne loc_fffb90cd ; jne 0xfffb90cd
+inc dword [ebp - 0x3c]
+add edi, 0xd8
+add dword [ebp - 0x48], 0x13c3
+cmp dword [ebp - 0x3c], 2
+jne loc_fffb909d ; jne 0xfffb909d
+movzx edi, byte [ebp - 0x76]
+movzx esi, word [ebp - 0x4a]
+mov eax, edi
+test al, al
+mov al, 1
+cmove edi, eax
+xor edx, edx
+mov eax, edi
+movzx ecx, al
+mov eax, dword [ebp - 0x6c]
+div ecx
+xor edx, edx
+add esi, eax
+mov eax, dword [ebp - 0x50]
+div ecx
+cmp byte [ebx + 0x3690], 0
+jne short loc_fffb945c ; jne 0xfffb945c
+mov word [ebx + 0x3693], ax
+mov eax, dword [ebp - 0x44]
+mov word [ebx + 0x3691], si
+mov word [ebx + 0x3695], ax
+jmp short loc_fffb9474 ; jmp 0xfffb9474
+
+loc_fffb945c: ; not directly referenced
+mov word [ebx + 0x3699], ax
+mov eax, dword [ebp - 0x44]
+mov word [ebx + 0x3697], si
+mov word [ebx + 0x369b], ax
+
+loc_fffb9474: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb947c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c0
+mov ebx, dword [ebp + 8]
+lea esi, [ebp - 0x1c8]
+mov eax, dword [ebx + 0x2443]
+push 0
+push 0x1b0
+push esi
+call dword [eax + 0x5c] ; ucall
+mov edx, esi
+mov eax, ebx
+call fcn_fffb8ffd ; call 0xfffb8ffd
+add esp, 0x10
+cmp byte [ebx + 0x3690], 0
+je loc_fffb954f ; je 0xfffb954f
+mov dx, word [ebx + 0x3691]
+xor ecx, ecx
+movzx eax, word [ebx + 0x3697]
+cmp dx, ax
+jbe short loc_fffb94e2 ; jbe 0xfffb94e2
+movzx ecx, dx
+xor edx, edx
+mov edi, ecx
+sub edi, eax
+mov eax, edi
+shl eax, 8
+div ecx
+mov cl, al
+
+loc_fffb94e2: ; not directly referenced
+mov dx, word [ebx + 0x3693]
+xor esi, esi
+movzx eax, word [ebx + 0x3699]
+cmp dx, ax
+jbe short loc_fffb9509 ; jbe 0xfffb9509
+movzx esi, dx
+xor edx, edx
+mov edi, esi
+sub edi, eax
+mov eax, edi
+shl eax, 8
+div esi
+mov esi, eax
+
+loc_fffb9509: ; not directly referenced
+movzx edi, word [ebx + 0x3695]
+xor eax, eax
+movzx edx, word [ebx + 0x369b]
+cmp di, dx
+jbe short loc_fffb9529 ; jbe 0xfffb9529
+mov eax, edi
+sub eax, edx
+xor edx, edx
+shl eax, 8
+div edi
+
+loc_fffb9529: ; not directly referenced
+xor edx, edx
+mov dl, cl
+mov ecx, esi
+movzx eax, al
+mov dh, cl
+mov ecx, edx
+mov edx, 0x59b8
+shl eax, 0x10
+and ecx, 0xff00ffff
+or ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffb9556 ; jmp 0xfffb9556
+
+loc_fffb954f: ; not directly referenced
+mov byte [ebx + 0x3690], 1
+
+loc_fffb9556: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb9560: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+mov ebx, eax
+sub esp, 0x34
+mov dword [ebp - 0x1c], eax
+mov eax, dword [eax + 0x18a7]
+lea edi, [ebx + 0x3756]
+mov byte [ebp - 0x1d], dl
+mov edx, dword [ebx + 0x2480]
+mov eax, dword [ebx + eax*4 + 0x3735]
+push 0
+push 1
+push 0
+push 0
+push 1
+push 0
+mov dword [ebp - 0x30], eax
+shr eax, 1
+mov dword [ebp - 0x28], edx
+xor edx, edx
+mov dword [ebp - 0x2c], eax
+mov eax, ebx
+call fcn_fffb887d ; call 0xfffb887d
+add esp, 0x20
+mov byte [ebp - 0x1e], 2
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x34], eax
+
+loc_fffb95bf: ; not directly referenced
+cmp dword [edi], 2
+jne loc_fffb9676 ; jne 0xfffb9676
+mov al, byte [edi + 0xc4]
+xor ecx, ecx
+mov byte [ebp - 0x1f], al
+
+loc_fffb95d3: ; not directly referenced
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x1f], al
+je loc_fffb966a ; je 0xfffb966a
+mov al, cl
+inc esi
+shr al, 1
+movzx eax, al
+imul eax, eax, 0x128
+cmp dword [ebp - 0x28], 3
+lea eax, [edi + eax + 0x126b]
+jne short loc_fffb961d ; jne 0xfffb961d
+cmp byte [ebp - 0x1d], 0
+mov ebx, 7
+je short loc_fffb965e ; je 0xfffb965e
+movzx eax, word [eax + 6]
+dec eax
+and eax, 0xf
+sub ebx, eax
+mov eax, 1
+cmove ebx, eax
+jmp short loc_fffb965e ; jmp 0xfffb965e
+
+loc_fffb961d: ; not directly referenced
+cmp dword [ebp - 0x28], 2
+jne short loc_fffb9639 ; jne 0xfffb9639
+cmp byte [ebp - 0x1d], 0
+mov ebx, 7
+je short loc_fffb965e ; je 0xfffb965e
+movzx eax, word [eax + 2]
+and eax, 6
+sub ebx, eax
+jmp short loc_fffb965e ; jmp 0xfffb965e
+
+loc_fffb9639: ; not directly referenced
+cmp byte [ebp - 0x1d], 0
+mov ebx, 6
+je short loc_fffb965e ; je 0xfffb965e
+mov bx, word [eax + 2]
+mov eax, ebx
+shr ax, 5
+and eax, 1
+shr bx, 1
+add eax, eax
+and ebx, 1
+or ebx, eax
+add ebx, 6
+
+loc_fffb965e: ; not directly referenced
+mov eax, 0xf0
+xor edx, edx
+div ebx
+add dword [ebp - 0x24], eax
+
+loc_fffb966a: ; not directly referenced
+add ecx, 2
+cmp ecx, 4
+jne loc_fffb95d3 ; jne 0xfffb95d3
+
+loc_fffb9676: ; not directly referenced
+add edi, 0x13c3
+dec byte [ebp - 0x1e]
+jne loc_fffb95bf ; jne 0xfffb95bf
+mov eax, esi
+mov edi, dword [ebp - 0x34]
+mov ecx, 1
+test al, al
+mov al, 1
+cmove esi, eax
+xor edx, edx
+mov eax, esi
+movzx esi, al
+mov eax, dword [ebp - 0x24]
+div esi
+test eax, eax
+sete bl
+test di, di
+sete dl
+movzx edi, di
+test bl, dl
+mov ebx, dword [ebp - 0x30]
+cmovne eax, ecx
+xor edx, edx
+add edi, eax
+add edi, edi
+imul esi, ebx, 0xfa00
+mov eax, esi
+div edi
+mov edx, dword [ebp - 0x1c]
+movzx edi, word [edx + 0x2489]
+xor edx, edx
+imul edi, edi, 0xc0
+mov esi, eax
+imul eax, ebx, 0x7d00
+div edi
+mov edx, dword [ebp - 0x1c]
+mov edi, 0x64
+imul eax, eax, 0x3e8
+lea ebx, [esi + eax]
+movzx esi, word [edx + 0x1902]
+xor edx, edx
+sub esi, dword [ebp - 0x2c]
+shr ebx, 5
+imul eax, esi, 0x3e8
+div edi
+mov di, 0xc8
+xor edx, edx
+mov esi, eax
+imul eax, dword [ebp - 0x2c], 0x3e8
+div edi
+test esi, esi
+cmove esi, ecx
+mov edi, ecx
+mov edx, 0x3a28
+test eax, eax
+cmovne edi, eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae52a ; call 0xfffae52a
+xor edx, edx
+mov ecx, eax
+mov eax, ebx
+div edi
+mov edi, 0xf
+add eax, eax
+cmp eax, 0xf
+cmovbe edi, eax
+mov eax, ebx
+xor edx, edx
+and edi, 0xf
+div esi
+and ecx, 0xfffe00ff
+mov esi, dword [ebp - 0x1c]
+mov edx, 0x1f
+shl edi, 8
+lea ebx, [eax + eax]
+mov eax, esi
+cmp ebx, 0x1f
+cmovbe edx, ebx
+or ecx, edi
+and edx, 0x1f
+shl edx, 0xc
+or ecx, edx
+mov edx, 0x3a28
+and ecx, 0xff0fffff
+or ecx, 0x800000
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x5f08
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5f08
+or ah, 1
+mov ecx, eax
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+mov edx, 0xe1
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffa834b ; jmp 0xfffa834b
+
+fcn_fffb97c0: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov bl, cl
+sub esp, 0xb0
+mov esi, dword [ebp + 0x10]
+mov cl, byte [ebp + 0x14]
+mov dword [ebp - 0x74], eax
+mov dword [ebp - 0x6c], esi
+mov esi, dword [ebp + 0x20]
+mov byte [ebp - 0x8a], cl
+mov ecx, esi
+mov byte [ebp - 0x9b], cl
+mov cl, byte [ebp + 0x28]
+mov dword [ebp - 0x94], esi
+mov esi, dword [eax + 0x2443]
+mov byte [ebp - 0x8c], cl
+mov ecx, eax
+movzx eax, dl
+mov dword [ebp - 0x90], eax
+imul eax, eax, 0x13c3
+lea edi, [ecx + eax + 0x3756]
+mov eax, dword [edi + 0xc0]
+mov dword [ebp - 0x98], eax
+mov eax, dword [ecx + 0x188b]
+push 0
+push 0x36
+mov dword [ebp - 0x7c], eax
+lea eax, [ebp - 0x4e]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 4
+lea eax, [ebp - 0x5e]
+push eax
+call dword [esi + 0x60] ; ucall
+add esp, 0xc
+push 0xffff
+push 4
+lea eax, [ebp - 0x56]
+push eax
+call dword [esi + 0x60] ; ucall
+add esp, 0x10
+cmp dword [ebp - 0x7c], 1
+mov dword [ebp - 0x88], 0
+jne short loc_fffb9893 ; jne 0xfffb9893
+cmp byte [edi + 0x1390], 5
+mov al, byte [edi + 0x1268]
+je short loc_fffb9889 ; je 0xfffb9889
+cmp al, 5
+sete al
+movzx eax, al
+mov dword [ebp - 0x88], eax
+jmp short loc_fffb9893 ; jmp 0xfffb9893
+
+loc_fffb9889: ; not directly referenced
+mov dword [ebp - 0x88], 1
+
+loc_fffb9893: ; not directly referenced
+movzx eax, byte [ebp - 0x6c]
+mov esi, dword [ebp + 0xc]
+mov word [ebp - 0x6c], 0
+mov byte [ebp - 0x8b], 0
+mov edi, eax
+mov dword [ebp - 0xa0], eax
+movzx eax, byte [ebp - 0x94]
+mov word [ebp - 0x6e], 0xffff
+mov word [ebp - 0x70], 0
+imul eax, edi
+add edi, edi
+mov dword [ebp - 0xa4], edi
+lea eax, [esi + eax*2]
+mov esi, dword [ebp - 0x90]
+mov dword [ebp - 0x80], eax
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x84], eax
+mov eax, esi
+add eax, esi
+mov dword [ebp - 0xa8], eax
+movzx eax, bl
+mov dword [ebp - 0xac], eax
+
+loc_fffb98f5: ; not directly referenced
+mov al, byte [ebp - 0x8a]
+mov bl, byte [ebp - 0x8b]
+cmp bl, al
+je loc_fffb9ad4 ; je 0xfffb9ad4
+movzx eax, bl
+mov ebx, dword [ebp + 0xc]
+xor ecx, ecx
+lea ebx, [ebx + eax*2]
+xor eax, eax
+
+loc_fffb9916: ; not directly referenced
+cmp byte [ebp - 0x9b], al
+jbe short loc_fffb9943 ; jbe 0xfffb9943
+mov dx, word [ebx + ecx]
+cmp word [ebp + eax*2 - 0x5e], dx
+jae short loc_fffb992e ; jae 0xfffb992e
+mov word [ebp + eax*2 - 0x5e], dx
+
+loc_fffb992e: ; not directly referenced
+cmp word [ebp + eax*2 - 0x56], dx
+jbe short loc_fffb993a ; jbe 0xfffb993a
+mov word [ebp + eax*2 - 0x56], dx
+
+loc_fffb993a: ; not directly referenced
+inc eax
+add ecx, dword [ebp - 0xa4]
+jmp short loc_fffb9916 ; jmp 0xfffb9916
+
+loc_fffb9943: ; not directly referenced
+cmp dword [ebp + 0x24], 0
+jne loc_fffb9a87 ; jne 0xfffb9a87
+mov edi, dword [ebp - 0x84]
+xor esi, esi
+xor ebx, ebx
+mov eax, dword [ebp - 0x74]
+movsx edx, byte [edi + 8]
+call fcn_fffa6cfe ; call 0xfffa6cfe
+add edi, dword [ebp - 0xa8]
+mov byte [ebp - 0x89], 0
+mov byte [ebp - 0x78], 0
+mov word [ebp - 0x9a], ax
+
+loc_fffb997b: ; not directly referenced
+mov eax, dword [ebp - 0xac]
+bt eax, esi
+jae short loc_fffb9a00 ; jae 0xfffb9a00
+push eax
+mov edx, dword [ebp - 0x90]
+push eax
+mov eax, dword [ebp - 0x74]
+push 0
+push 1
+push 0
+push 0
+push 9
+lea ecx, [esi + esi]
+push 0
+call fcn_fffb887d ; call 0xfffb887d
+movzx edx, byte [edi + esi + 4]
+add esp, 0x20
+add byte [ebp - 0x78], al
+movzx ecx, byte [edx + ref_fffd58b8] ; movzx ecx, byte [edx - 0x2a748]
+movzx eax, byte [edi + esi]
+cmp dword [ebp - 0x98], 1
+mov word [ebp - 0x6c], cx
+movzx eax, byte [eax + ref_fffd58b8] ; movzx eax, byte [eax - 0x2a748]
+jne short loc_fffb99e0 ; jne 0xfffb99e0
+test cx, cx
+cmovne eax, ecx
+mov word [ebp - 0x6c], ax
+mov eax, 0x3fff
+jmp short loc_fffb99eb ; jmp 0xfffb99eb
+
+loc_fffb99e0: ; not directly referenced
+test ax, ax
+mov edx, 0x3fff
+cmove eax, edx
+
+loc_fffb99eb: ; not directly referenced
+mov ecx, dword [ebp - 0x6c]
+test cx, cx
+cmove ecx, eax
+add ebx, eax
+inc byte [ebp - 0x89]
+mov word [ebp - 0x6c], cx
+
+loc_fffb9a00: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffb997b ; jne 0xfffb997b
+cmp byte [ebp - 0x89], 0
+je short loc_fffb9a32 ; je 0xfffb9a32
+movzx esi, byte [ebp - 0x89]
+movzx eax, bx
+cdq
+mov ebx, esi
+movzx ecx, bl
+idiv ecx
+mov ecx, esi
+mov ebx, eax
+movzx eax, byte [ebp - 0x78]
+div cl
+mov byte [ebp - 0x78], al
+
+loc_fffb9a32: ; not directly referenced
+lea eax, [ebx - 0x79]
+mov ecx, 0x1e
+cmp ax, 0x3f85
+mov eax, 0xf0
+cmovbe ebx, eax
+movzx eax, word [ebp - 0x6c]
+movzx ebx, bx
+lea edx, [ebp - 0x4e]
+lea esi, [ebp - 0x4e]
+push eax
+movzx eax, word [ebp - 0x9a]
+push ebx
+push eax
+movzx eax, byte [ebp - 0x78]
+push eax
+mov eax, dword [ebp - 0x74]
+call fcn_fffa6d61 ; call 0xfffa6d61
+mov ax, word [ebp - 0x1a]
+mov ecx, 0x36
+mov edi, dword [ebp - 0x80]
+add esp, 0x10
+mov word [edi], ax
+mov eax, dword [ebp - 0x84]
+lea edi, [eax + 0xd]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+
+loc_fffb9a87: ; not directly referenced
+mov eax, dword [ebp - 0x80]
+cmp byte [ebp - 0x8a], 1
+mov ax, word [eax]
+je short loc_fffb9ab1 ; je 0xfffb9ab1
+mov edx, dword [ebp - 0x70]
+mov bx, word [ebp - 0x6e]
+cmp ax, dx
+cmovae edx, eax
+cmp bx, ax
+cmovbe eax, ebx
+mov word [ebp - 0x6e], ax
+mov eax, edx
+jmp short loc_fffb9ab7 ; jmp 0xfffb9ab7
+
+loc_fffb9ab1: ; not directly referenced
+mov word [ebp - 0x6e], 0
+
+loc_fffb9ab7: ; not directly referenced
+inc byte [ebp - 0x8b]
+add dword [ebp - 0x80], 2
+add dword [ebp - 0x84], 0x54e
+mov word [ebp - 0x70], ax
+jmp near loc_fffb98f5 ; jmp 0xfffb98f5
+
+loc_fffb9ad4: ; not directly referenced
+mov edi, dword [ebp - 0x94]
+mov al, 4
+mov word [ebp - 0x6c], 0x7fff
+mov word [ebp - 0x80], 0
+mov ebx, edi
+cmp bl, 4
+cmovbe eax, edi
+xor edi, edi
+mov byte [ebp - 0x78], al
+mov eax, dword [ebp - 0x88]
+xor eax, 1
+and eax, 1
+mov byte [ebp - 0x89], al
+
+loc_fffb9b07: ; not directly referenced
+mov eax, edi
+cmp byte [ebp - 0x78], al
+jbe loc_fffb9bd4 ; jbe 0xfffb9bd4
+mov si, word [ebp + edi*2 - 0x5e]
+add word [ebp - 0x80], si
+cmp byte [ebp - 0x8c], 6
+mov eax, dword [ebp + 0x18]
+sete dl
+cmp dword [ebp - 0x7c], 1
+mov cl, byte [eax + edi]
+sete al
+xor ebx, ebx
+test dl, al
+je short loc_fffb9b43 ; je 0xfffb9b43
+cmp cl, 1
+mov eax, 0x28
+cmove ebx, eax
+
+loc_fffb9b43: ; not directly referenced
+cmp byte [ebp - 0x8c], 8
+setne dl
+cmp dword [ebp - 0x7c], 1
+setne al
+or dl, al
+jne short loc_fffb9b6c ; jne 0xfffb9b6c
+cmp cl, 2
+setne al
+or al, byte [ebp - 0x89]
+mov eax, 0x50
+cmove ebx, eax
+
+loc_fffb9b6c: ; not directly referenced
+movzx eax, si
+mov esi, dword [ebp + 0x1c]
+cdq
+movzx esi, byte [esi + edi]
+idiv esi
+movzx esi, cl
+mov edx, esi
+xor ecx, ecx
+mov dword [ebp - 0x84], esi
+mov dword [ebp - 0x88], eax
+mov eax, dword [ebp - 0x74]
+call fcn_fffb13cf ; call 0xfffb13cf
+mov edx, dword [ebp - 0x84]
+mov ecx, 1
+movzx esi, ax
+mov eax, dword [ebp - 0x74]
+call fcn_fffb13cf ; call 0xfffb13cf
+mov edx, dword [ebp - 0x88]
+sub edx, esi
+imul edx, edx, 0x64
+movzx eax, ax
+add ebx, eax
+sub ebx, esi
+mov eax, edx
+cdq
+idiv ebx
+mov ebx, dword [ebp - 0x6c]
+cmp bx, ax
+cmovle eax, ebx
+inc edi
+mov word [ebp - 0x6c], ax
+jmp near loc_fffb9b07 ; jmp 0xfffb9b07
+
+loc_fffb9bd4: ; not directly referenced
+movzx eax, word [ebp - 0x80]
+mov ebx, 0x64
+movzx ecx, byte [ebp - 0x78]
+cdq
+idiv ecx
+mov dword [ebp - 0x74], eax
+movsx eax, word [ebp - 0x6c]
+imul eax, eax, 0x41
+cdq
+idiv ebx
+xor bl, bl
+movzx edi, ax
+cmp ax, 0x64
+jbe short loc_fffb9c04 ; jbe 0xfffb9c04
+lea ebx, [eax - 0x64]
+mov edi, 0x64
+
+loc_fffb9c04: ; not directly referenced
+imul ecx, dword [ebp - 0xa0]
+movzx ebx, bx
+mov eax, dword [ebp + 0xc]
+lea esi, [eax + ecx*2]
+xor ecx, ecx
+lea eax, [edi + ebx]
+mov dword [ebp - 0x7c], eax
+movzx eax, word [ebp - 0x6e]
+mov dword [ebp - 0x80], eax
+movzx eax, word [ebp - 0x70]
+mov dword [ebp - 0x84], eax
+
+loc_fffb9c2d: ; not directly referenced
+cmp byte [ebp - 0x8a], cl
+jbe short loc_fffb9c93 ; jbe 0xfffb9c93
+cmp word [ebp - 0x6c], 0
+jns short loc_fffb9c44 ; jns 0xfffb9c44
+mov word [esi + ecx*2], 1
+jmp short loc_fffb9c90 ; jmp 0xfffb9c90
+
+loc_fffb9c44: ; not directly referenced
+mov ax, word [ebp - 0x6e]
+cmp word [ebp - 0x70], ax
+je short loc_fffb9c68 ; je 0xfffb9c68
+movzx eax, word [esi + ecx*2]
+sub eax, dword [ebp - 0x80]
+imul eax, eax, 0x64
+cdq
+idiv dword [ebp - 0x84]
+mov edx, 0x64
+sub edx, eax
+jmp short loc_fffb9c6a ; jmp 0xfffb9c6a
+
+loc_fffb9c68: ; not directly referenced
+xor edx, edx
+
+loc_fffb9c6a: ; not directly referenced
+movzx edx, dx
+mov ebx, 0x64
+imul edx, dword [ebp - 0x7c]
+mov eax, ebx
+sub eax, edi
+mov dword [ebp - 0x78], eax
+mov eax, edx
+cdq
+idiv ebx
+add eax, dword [ebp - 0x78]
+imul eax, dword [ebp - 0x74]
+cdq
+idiv ebx
+mov word [esi + ecx*2], ax
+
+loc_fffb9c90: ; not directly referenced
+inc ecx
+jmp short loc_fffb9c2d ; jmp 0xfffb9c2d
+
+loc_fffb9c93: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffb9c9b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3d0
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x5edc]
+mov dword [ebp - 0x344], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2443]
+push 0x20
+push 0x200
+mov edi, eax
+mov dword [ebp - 0x38c], eax
+lea eax, [ebp - 0x218]
+push eax
+mov eax, edi
+call dword [eax + 0x5c] ; ucall
+mov eax, dword [ebp + 8]
+add esp, 0x10
+mov al, byte [eax + 0x248d]
+mov byte [ebp - 0x3c8], al
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248e]
+mov byte [ebp - 0x348], al
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+jne loc_fffbb0bf ; jne 0xfffbb0bf
+mov eax, dword [eax + 0x5edc]
+lea edi, [ebp - 0x260]
+mov esi, ref_fffd58c0 ; mov esi, 0xfffd58c0
+mov ecx, 6
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea ebx, [ebp - 0x2a8]
+mov esi, 1
+mov dword [ebp - 0x33c], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2443]
+push edi
+push 0
+push 0x10
+push ebx
+lea edi, [ebp - 0x298]
+mov dword [ebp - 0x340], eax
+call dword [eax + 0x5c] ; ucall
+mov eax, dword [ebp + 8]
+add esp, 0xc
+lea edx, [ebp - 0x2c8]
+mov byte [ebp - 0x2a7], 1
+mov eax, dword [eax + 0x2443]
+push 0
+push 0xc
+push edx
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+
+loc_fffb9d76: ; not directly referenced
+movzx eax, byte [ebx]
+xor ecx, ecx
+mov dword [ebp - 0x344], eax
+
+loc_fffb9d81: ; not directly referenced
+mov eax, dword [ebp + ecx*4 - 0x2c8]
+mov edx, eax
+add eax, eax
+and edx, 0x8000
+movzx eax, ax
+shr edx, 0xf
+or eax, edx
+mov edx, esi
+shl edx, cl
+and edx, dword [ebp - 0x344]
+sar edx, cl
+or eax, edx
+mov dword [ebp + ecx*4 - 0x2c8], eax
+inc ecx
+cmp ecx, 3
+jne short loc_fffb9d81 ; jne 0xfffb9d81
+inc ebx
+cmp ebx, edi
+jne short loc_fffb9d76 ; jne 0xfffb9d76
+lea eax, [ebp - 0x2c8]
+lea ebx, [ebp - 0x2bc]
+
+loc_fffb9dc6: ; not directly referenced
+mov edx, dword [eax]
+add eax, 4
+mov ecx, edx
+add edx, edx
+and ecx, 0x8000
+movzx edx, dx
+shr ecx, 0xf
+or edx, ecx
+mov dword [eax - 4], edx
+cmp eax, ebx
+jne short loc_fffb9dc6 ; jne 0xfffb9dc6
+mov edi, dword [ebp - 0x33c]
+xor ebx, ebx
+add edi, 0x1c
+
+loc_fffb9def: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov esi, dword [ebp + 8]
+test byte [esi + eax + 0x381a], 1
+jne short loc_fffb9e21 ; jne 0xfffb9e21
+
+loc_fffb9e02: ; not directly referenced
+inc ebx
+add edi, 0xcc
+cmp ebx, 2
+jne short loc_fffb9def ; jne 0xfffb9def
+mov byte [ebp - 0x340], 0
+mov byte [ebp - 0x33c], 0
+jmp near loc_fffb9f6f ; jmp 0xfffb9f6f
+
+loc_fffb9e21: ; not directly referenced
+imul eax, ebx, 0x54a
+push esi
+mov esi, dword [ebp + 8]
+push 0xff
+push 0x40
+lea eax, [esi + eax + 0x1e69]
+push eax
+mov eax, dword [ebp - 0x340]
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+mov byte [ebp - 0x33c], 0
+
+loc_fffb9e4d: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov al, byte [ebp - 0x33c]
+cmp al, byte [esi + 0x2488]
+jae short loc_fffb9e8a ; jae 0xfffb9e8a
+movzx ecx, byte [ebp - 0x33c]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov esi, dword [edi + ecx*4 + 0x28]
+call fcn_fffa720e ; call 0xfffa720e
+or esi, 0x60
+mov ecx, esi
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x33c]
+jmp short loc_fffb9e4d ; jmp 0xfffb9e4d
+
+loc_fffb9e8a: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+mov esi, dword [edi]
+call fcn_fffa7288 ; call 0xfffa7288
+or esi, 0x1000008
+mov ecx, esi
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+mov cl, bl
+mov edx, 1
+shl edx, cl
+mov ecx, 1
+push 0
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+test eax, eax
+je loc_fffb9e02 ; je 0xfffb9e02
+jmp near loc_fffbb9fc ; jmp 0xfffbb9fc
+
+loc_fffb9ed8: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+test byte [edi + eax + 0x381a], 1
+je short loc_fffb9f26 ; je 0xfffb9f26
+sub esp, 0xc
+mov cl, bl
+push dword [ebp - 0x2c0]
+mov eax, 1
+push dword [ebp - 0x2c4]
+mov edx, ebx
+push dword [ebp - 0x2c8]
+shl eax, cl
+xor ecx, ecx
+or byte [ebp - 0x340], al
+lea eax, [ebp - 0x260]
+push 2
+push eax
+mov eax, edi
+call fcn_fffd2b18 ; call 0xfffd2b18
+add esp, 0x20
+
+loc_fffb9f26: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffb9ed8 ; jne 0xfffb9ed8
+movzx edx, byte [ebp - 0x340]
+xor edi, edi
+mov eax, dword [ebp + 8]
+call fcn_fffd2a2c ; call 0xfffd2a2c
+
+loc_fffb9f3d: ; not directly referenced
+imul eax, edi, 0x13c3
+mov esi, dword [ebp + 8]
+mov dword [ebp - 0x348], eax
+test byte [esi + eax + 0x381a], 1
+jne short loc_fffb9fb2 ; jne 0xfffb9fb2
+
+loc_fffb9f56: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffb9f3d ; jne 0xfffb9f3d
+inc byte [ebp - 0x33c]
+cmp byte [ebp - 0x33c], 8
+je loc_fffba085 ; je 0xfffba085
+
+loc_fffb9f6f: ; not directly referenced
+mov dl, byte [ebp - 0x33c]
+mov ebx, 1
+mov eax, ebx
+shr dl, 1
+movzx ecx, dl
+add ecx, 5
+shl eax, cl
+mov cl, dl
+shl ebx, cl
+mov cl, byte [ebp - 0x33c]
+xor edx, edx
+or eax, ebx
+mov ebx, edx
+and cl, 1
+cmove ebx, eax
+cmove eax, edx
+mov dword [ebp - 0x254], ebx
+xor ebx, ebx
+mov dword [ebp - 0x250], eax
+jmp near loc_fffb9ed8 ; jmp 0xfffb9ed8
+
+loc_fffb9fb2: ; not directly referenced
+imul eax, edi, 0x54a
+mov esi, dword [ebp + 8]
+xor ebx, ebx
+lea eax, [esi + eax + 0x196b]
+mov dword [ebp - 0x344], eax
+
+loc_fffb9fca: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae short loc_fffba026 ; jae 0xfffba026
+mov ecx, dword [ebp + 8]
+movzx esi, bl
+mov edx, dword [ebp - 0x348]
+mov eax, dword [ebp - 0x344]
+cmp byte [ecx + edx + 0x49ba], 0x20
+mov al, byte [eax + esi + 0x4f6]
+jne short loc_fffba006 ; jne 0xfffba006
+test al, 2
+je short loc_fffba006 ; je 0xfffba006
+mov byte [ebp + esi - 0x2e8], 0
+jmp short loc_fffba023 ; jmp 0xfffba023
+
+loc_fffba006: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, esi
+mov edx, edi
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+mov byte [ebp + esi - 0x2e8], al
+
+loc_fffba023: ; not directly referenced
+inc ebx
+jmp short loc_fffb9fca ; jmp 0xfffb9fca
+
+loc_fffba026: ; not directly referenced
+xor edx, edx
+
+loc_fffba028: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dl, byte [eax + 0x2488]
+jae loc_fffb9f56 ; jae 0xfffb9f56
+movzx eax, dl
+mov al, byte [ebp + eax - 0x2e8]
+test al, al
+je short loc_fffba082 ; je 0xfffba082
+xor ebx, ebx
+xor ecx, ecx
+xor esi, esi
+
+loc_fffba04b: ; not directly referenced
+test al, 1
+je short loc_fffba05a ; je 0xfffba05a
+test esi, esi
+jne short loc_fffba05f ; jne 0xfffba05f
+movzx ebx, cl
+mov si, 1
+
+loc_fffba05a: ; not directly referenced
+inc ecx
+shr al, 1
+jne short loc_fffba04b ; jne 0xfffba04b
+
+loc_fffba05f: ; not directly referenced
+mov esi, dword [ebp - 0x344]
+movzx eax, dl
+lea ecx, [esi + eax*8]
+mov al, byte [esi + eax + 0x4f6]
+mov esi, dword [ebp - 0x33c]
+lea eax, [esi + eax*8]
+mov byte [ebx + ecx + 0x4fe], al
+
+loc_fffba082: ; not directly referenced
+inc edx
+jmp short loc_fffba028 ; jmp 0xfffba028
+
+loc_fffba085: ; not directly referenced
+mov eax, dword [ebp + 8]
+test byte [eax + 0x381a], 1
+jne short loc_fffba09f ; jne 0xfffba09f
+
+loc_fffba091: ; not directly referenced
+mov eax, dword [ebp + 8]
+test byte [eax + 0x4bdd], 1
+je short loc_fffba0e4 ; je 0xfffba0e4
+jmp short loc_fffba0c2 ; jmp 0xfffba0c2
+
+loc_fffba09f: ; not directly referenced
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+mov ecx, 1
+push 2
+mov edx, 1
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+test eax, eax
+je short loc_fffba091 ; je 0xfffba091
+jmp near loc_fffbb9fc ; jmp 0xfffbb9fc
+
+loc_fffba0c2: ; not directly referenced
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+mov ecx, 1
+push 2
+mov edx, 2
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+test eax, eax
+jne loc_fffbb9fc ; jne 0xfffbb9fc
+
+loc_fffba0e4: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov esi, dword [eax + 0x5edc]
+mov ebx, dword [eax + 0x2443]
+mov al, byte [eax + 0x248d]
+push ecx
+push 0x7f
+push 0x48
+mov byte [ebp - 0x34c], al
+lea eax, [ebp - 0x2a8]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x48
+lea eax, [ebp - 0x260]
+push eax
+call dword [ebx + 0x5c] ; ucall
+lea eax, [esi + 0x1c]
+add esp, 0x10
+mov dword [ebp - 0x340], eax
+mov esi, eax
+xor ebx, ebx
+
+loc_fffba12f: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffba1a9 ; jne 0xfffba1a9
+mov byte [ebp - 0x33c], 0
+
+loc_fffba149: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x33c]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffba186 ; jae 0xfffba186
+movzx ecx, byte [ebp - 0x33c]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov edi, dword [esi + ecx*4 + 0x28]
+call fcn_fffa720e ; call 0xfffa720e
+or edi, 0x60
+mov ecx, edi
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x33c]
+jmp short loc_fffba149 ; jmp 0xfffba149
+
+loc_fffba186: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+mov edi, dword [esi]
+call fcn_fffa7288 ; call 0xfffa7288
+or edi, 0x1000008
+mov ecx, edi
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffba1a9: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne loc_fffba12f ; jne 0xfffba12f
+xor edi, edi
+
+loc_fffba1bb: ; not directly referenced
+mov ebx, 1
+mov ecx, edi
+shl ebx, cl
+test byte [ebp - 0x34c], bl
+jne short loc_fffba1df ; jne 0xfffba1df
+
+loc_fffba1cc: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffba1bb ; jne 0xfffba1bb
+mov esi, dword [ebp - 0x340]
+xor ebx, ebx
+jmp near loc_fffba2d9 ; jmp 0xfffba2d9
+
+loc_fffba1df: ; not directly referenced
+xor esi, esi
+
+loc_fffba1e1: ; not directly referenced
+imul eax, esi, 0x13c3
+mov ecx, dword [ebp + 8]
+mov byte [ebp - 0x33c], bl
+test byte [ecx + eax + 0x381a], bl
+je short loc_fffba241 ; je 0xfffba241
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+mov ecx, esi
+mov edx, 1
+shl edx, cl
+mov ecx, ebx
+push 0
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+test eax, eax
+jne loc_fffba7d0 ; jne 0xfffba7d0
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+mov ecx, edi
+push 0
+mov edx, esi
+push 0x4000
+push 0x3000
+push 4
+push ref_fffd665c ; push 0xfffd665c
+call fcn_fffd2b18 ; call 0xfffd2b18
+add esp, 0x20
+
+loc_fffba241: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffba1e1 ; jne 0xfffba1e1
+push eax
+mov ecx, 0x7f
+push eax
+mov edx, edi
+lea eax, [ebp - 0x2a8]
+xor si, si
+push eax
+mov eax, dword [ebp + 8]
+push 2
+call fcn_fffd2f8e ; call 0xfffd2f8e
+xor ecx, ecx
+pop eax
+pop edx
+mov edx, edi
+lea eax, [ebp - 0x260]
+push eax
+mov eax, dword [ebp + 8]
+push 0xfffffffffffffffe
+call fcn_fffd2f8e ; call 0xfffd2f8e
+add esp, 0x10
+
+loc_fffba27e: ; not directly referenced
+imul eax, esi, 0x13c3
+mov ecx, dword [ebp + 8]
+mov dl, byte [ebp - 0x33c]
+test byte [ecx + eax + 0x381a], dl
+jne short loc_fffba2a1 ; jne 0xfffba2a1
+
+loc_fffba296: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffba27e ; jne 0xfffba27e
+jmp near loc_fffba1cc ; jmp 0xfffba1cc
+
+loc_fffba2a1: ; not directly referenced
+push eax
+push 1
+push 0x40
+push 1
+push 3
+push 4
+push esi
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp + 8]
+add esp, 0x14
+mov ecx, esi
+mov edx, 1
+shl edx, cl
+mov ecx, ebx
+push 2
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+test eax, eax
+je short loc_fffba296 ; je 0xfffba296
+jmp near loc_fffba7d0 ; jmp 0xfffba7d0
+
+loc_fffba2d9: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+je short loc_fffba369 ; je 0xfffba369
+
+loc_fffba2ec: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne short loc_fffba2d9 ; jne 0xfffba2d9
+mov eax, dword [ebp + 8]
+lea esi, [ebp - 0x2e8]
+lea ebx, [ebp - 0x2c8]
+mov edi, dword [eax + 0x2443]
+push ecx
+push 0x7f
+push 0x10
+push esi
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+lea edx, [ebp - 0x308]
+push 0x10
+push edx
+mov dword [ebp - 0x33c], edx
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x10
+push ebx
+call dword [edi + 0x5c] ; ucall
+mov edx, dword [ebp - 0x33c]
+lea eax, [ebp - 0x260]
+mov dword [ebp - 0x378], eax
+lea eax, [ebp - 0x2a8]
+add esp, 0x10
+mov dword [ebp - 0x368], eax
+xor edi, edi
+mov dword [ebp - 0x3a8], esi
+mov dword [ebp - 0x3b8], edx
+jmp short loc_fffba3c9 ; jmp 0xfffba3c9
+
+loc_fffba369: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [esi]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov byte [ebp - 0x33c], 0
+
+loc_fffba38b: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x33c]
+cmp al, byte [edi + 0x2488]
+jae loc_fffba2ec ; jae 0xfffba2ec
+movzx edi, byte [ebp - 0x33c]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov ecx, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [esi + edi*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x33c]
+jmp short loc_fffba38b ; jmp 0xfffba38b
+
+loc_fffba3c9: ; not directly referenced
+imul eax, edi, 0x13c3
+mov esi, dword [ebp + 8]
+cmp dword [esi + eax + 0x3756], 2
+jne loc_fffba5cf ; jne 0xfffba5cf
+imul edx, edi, 0x54a
+mov dword [ebp - 0x344], 0
+lea esi, [esi + edx + 0x196b]
+mov dword [ebp - 0x358], esi
+mov esi, dword [ebp + 8]
+mov al, byte [esi + eax + 0x381a]
+mov byte [ebp - 0x354], al
+lea eax, [edi*4]
+mov dword [ebp - 0x38c], eax
+mov eax, dword [ebp - 0x368]
+mov dword [ebp - 0x350], eax
+mov eax, dword [ebp - 0x378]
+mov dword [ebp - 0x348], eax
+
+loc_fffba432: ; not directly referenced
+mov cl, byte [ebp - 0x344]
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x354], al
+je loc_fffba51a ; je 0xfffba51a
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x33c], 0
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x388], al
+mov eax, dword [ebp - 0x344]
+add eax, dword [ebp - 0x38c]
+add eax, eax
+lea esi, [ebp + eax - 0x2c8]
+mov dword [ebp - 0x390], esi
+mov esi, dword [ebp - 0x3b8]
+add esi, eax
+mov dword [ebp - 0x340], esi
+mov esi, dword [ebp - 0x3a8]
+add esi, eax
+
+loc_fffba495: ; not directly referenced
+xor eax, eax
+
+loc_fffba497: ; not directly referenced
+cmp byte [ebp - 0x388], al
+jbe short loc_fffba4df ; jbe 0xfffba4df
+mov edx, dword [ebp - 0x358]
+mov ecx, dword [ebp - 0x33c]
+movzx edx, byte [edx + ecx + 0x53e]
+bt edx, eax
+jae short loc_fffba4dc ; jae 0xfffba4dc
+mov edx, dword [ebp - 0x350]
+mov dl, byte [edx + eax]
+cmp byte [esi], dl
+jbe short loc_fffba4c7 ; jbe 0xfffba4c7
+mov byte [esi], dl
+
+loc_fffba4c7: ; not directly referenced
+mov edx, dword [ebp - 0x348]
+mov ecx, dword [ebp - 0x340]
+mov dl, byte [edx + eax]
+cmp byte [ecx], dl
+jae short loc_fffba4dc ; jae 0xfffba4dc
+mov byte [ecx], dl
+
+loc_fffba4dc: ; not directly referenced
+inc eax
+jmp short loc_fffba497 ; jmp 0xfffba497
+
+loc_fffba4df: ; not directly referenced
+movzx eax, byte [esi]
+inc esi
+mov ecx, dword [ebp - 0x33c]
+inc dword [ebp - 0x33c]
+mov edx, eax
+mov eax, dword [ebp - 0x340]
+inc dword [ebp - 0x340]
+movzx eax, byte [eax]
+add eax, edx
+mov edx, dword [ebp - 0x390]
+sar eax, 1
+cmp dword [ebp - 0x33c], 2
+mov byte [edx + ecx], al
+jne loc_fffba495 ; jne 0xfffba495
+
+loc_fffba51a: ; not directly referenced
+inc dword [ebp - 0x344]
+add dword [ebp - 0x348], 9
+add dword [ebp - 0x350], 9
+cmp dword [ebp - 0x344], 4
+jne loc_fffba432 ; jne 0xfffba432
+xor ecx, ecx
+xor edx, edx
+mov esi, 1
+
+loc_fffba544: ; not directly referenced
+mov eax, esi
+shl eax, cl
+test byte [ebp - 0x354], al
+je short loc_fffba561 ; je 0xfffba561
+mov al, byte [ebx + ecx*2 + 1]
+inc edx
+sub al, byte [ebx + ecx*2]
+mov byte [ebp + ecx - 0x328], al
+jmp short loc_fffba569 ; jmp 0xfffba569
+
+loc_fffba561: ; not directly referenced
+mov byte [ebp + ecx - 0x328], 0
+
+loc_fffba569: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffba544 ; jne 0xfffba544
+xor ecx, ecx
+test dl, dl
+je short loc_fffba58d ; je 0xfffba58d
+movsx ecx, byte [ebp - 0x328]
+movsx eax, byte [ebp - 0x327]
+add eax, ecx
+movzx ecx, dl
+cdq
+idiv ecx
+mov cl, al
+
+loc_fffba58d: ; not directly referenced
+mov dl, 2
+movsx ax, cl
+idiv dl
+movzx edx, byte [ebx]
+neg eax
+add eax, 0x40
+add ecx, eax
+mov byte [ebp + edi*2 - 0x330], al
+movzx eax, byte [ebx + 1]
+mov byte [ebp + edi*2 - 0x32f], cl
+add eax, edx
+movzx edx, byte [ebx + 2]
+sar eax, 1
+mov byte [ebp + edi*2 - 0x338], al
+movzx eax, byte [ebx + 3]
+add eax, edx
+sar eax, 1
+mov byte [ebp + edi*2 - 0x337], al
+
+loc_fffba5cf: ; not directly referenced
+inc edi
+add ebx, 8
+add dword [ebp - 0x378], 0x24
+add dword [ebp - 0x368], 0x24
+cmp edi, 2
+jne loc_fffba3c9 ; jne 0xfffba3c9
+mov eax, dword [ebp + 8]
+xor ebx, ebx
+mov dword [ebp - 0x344], 0
+lea esi, [eax + 0x3756]
+lea eax, [ebp - 0x330]
+mov dword [ebp - 0x350], eax
+mov eax, dword [ebp + 8]
+add eax, 0x196b
+mov dword [ebp - 0x340], eax
+lea eax, [ebp - 0x338]
+mov dword [ebp - 0x348], eax
+movzx eax, byte [ebp - 0x34c]
+mov dword [ebp - 0x33c], eax
+
+loc_fffba632: ; not directly referenced
+cmp dword [esi], 2
+jne loc_fffba78f ; jne 0xfffba78f
+xor edi, edi
+
+loc_fffba63d: ; not directly referenced
+mov eax, 1
+mov ecx, edi
+shl eax, cl
+test byte [esi + 0xc4], al
+je short loc_fffba66d ; je 0xfffba66d
+mov ecx, dword [ebp - 0x348]
+push edx
+push 1
+movzx edx, byte [ecx + edi]
+push edx
+push 1
+push eax
+push 4
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffba66d: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffba63d ; jne 0xfffba63d
+xor ecx, ecx
+
+loc_fffba675: ; not directly referenced
+mov eax, dword [ebp - 0x350]
+movzx edi, byte [eax + ecx]
+movzx eax, byte [esi + ecx + 0x241]
+sub edi, eax
+je loc_fffba785 ; je 0xfffba785
+push eax
+mov eax, 1
+push 1
+push edi
+shl eax, cl
+push eax
+push dword [ebp - 0x33c]
+mov dword [ebp - 0x344], ecx
+push 0
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+mov edx, dword [ebp - 0x340]
+add esp, 0x20
+mov ecx, dword [ebp - 0x344]
+mov al, byte [edx + 0x542]
+cmp byte [ecx + edx + 0x53e], al
+jne short loc_fffba719 ; jne 0xfffba719
+push eax
+push 1
+mov eax, dword [esi + 0x111]
+add eax, edi
+push eax
+push 1
+push dword [ebp - 0x33c]
+push 2
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 1
+mov eax, dword [esi + 0x109]
+add eax, edi
+push eax
+push 1
+push dword [ebp - 0x33c]
+push 3
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+mov ecx, dword [ebp - 0x344]
+add esp, 0x20
+
+loc_fffba719: ; not directly referenced
+mov edx, dword [ebp - 0x340]
+mov dword [ebp - 0x344], 1
+mov al, byte [edx + 0x543]
+cmp byte [ecx + edx + 0x53e], al
+jne short loc_fffba785 ; jne 0xfffba785
+push eax
+push 1
+mov eax, dword [esi + 0x115]
+mov dword [ebp - 0x34c], ecx
+add eax, edi
+push eax
+push 2
+push dword [ebp - 0x33c]
+push 2
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 1
+add edi, dword [esi + 0x11d]
+push edi
+push 2
+push dword [ebp - 0x33c]
+push 1
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+mov ecx, dword [ebp - 0x34c]
+add esp, 0x20
+
+loc_fffba785: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne loc_fffba675 ; jne 0xfffba675
+
+loc_fffba78f: ; not directly referenced
+inc ebx
+add esi, 0x13c3
+add dword [ebp - 0x350], 2
+add dword [ebp - 0x340], 0x54a
+add dword [ebp - 0x348], 2
+cmp ebx, 2
+jne loc_fffba632 ; jne 0xfffba632
+cmp dword [ebp - 0x344], 0
+je short loc_fffba7d8 ; je 0xfffba7d8
+sub esp, 0xc
+push dword [ebp + 8]
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+jmp short loc_fffba7d8 ; jmp 0xfffba7d8
+
+loc_fffba7d0: ; not directly referenced
+test eax, eax
+jne loc_fffbb9fc ; jne 0xfffbb9fc
+
+loc_fffba7d8: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x5edc]
+mov esi, dword [eax + 0x2443]
+mov al, byte [eax + 0x248d]
+push ecx
+push 0x7f
+push 0x48
+mov byte [ebp - 0x340], al
+lea eax, [ebp - 0x2a8]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x48
+lea eax, [ebp - 0x260]
+push eax
+call dword [esi + 0x5c] ; ucall
+lea eax, [ebx + 0x1c]
+add esp, 0x10
+mov dword [ebp - 0x348], eax
+mov esi, eax
+xor ebx, ebx
+
+loc_fffba823: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffba89d ; jne 0xfffba89d
+mov byte [ebp - 0x33c], 0
+
+loc_fffba83d: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x33c]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffba87a ; jae 0xfffba87a
+movzx ecx, byte [ebp - 0x33c]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov edi, dword [esi + ecx*4 + 0x28]
+call fcn_fffa720e ; call 0xfffa720e
+or edi, 0x60
+mov ecx, edi
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x33c]
+jmp short loc_fffba83d ; jmp 0xfffba83d
+
+loc_fffba87a: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+mov edi, dword [esi]
+call fcn_fffa7288 ; call 0xfffa7288
+or edi, 0x1000008
+mov ecx, edi
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffba89d: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne loc_fffba823 ; jne 0xfffba823
+xor edi, edi
+
+loc_fffba8af: ; not directly referenced
+mov ebx, 1
+mov ecx, edi
+shl ebx, cl
+test byte [ebp - 0x340], bl
+jne short loc_fffba8d3 ; jne 0xfffba8d3
+
+loc_fffba8c0: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffba8af ; jne 0xfffba8af
+mov ebx, dword [ebp - 0x348]
+xor esi, esi
+jmp near loc_fffbaa02 ; jmp 0xfffbaa02
+
+loc_fffba8d3: ; not directly referenced
+xor esi, esi
+
+loc_fffba8d5: ; not directly referenced
+imul eax, esi, 0x13c3
+mov ecx, dword [ebp + 8]
+mov byte [ebp - 0x33c], bl
+test byte [ecx + eax + 0x381a], bl
+je short loc_fffba93b ; je 0xfffba93b
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+mov ecx, esi
+mov edx, 1
+shl edx, cl
+mov ecx, ebx
+push 0
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+mov dword [ebp - 0x344], eax
+test eax, eax
+jne loc_fffbb0b4 ; jne 0xfffbb0b4
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+mov ecx, edi
+push 0
+mov edx, esi
+push 0x4000
+push 0x3000
+push 4
+push ref_fffd665c ; push 0xfffd665c
+call fcn_fffd2b18 ; call 0xfffd2b18
+add esp, 0x20
+
+loc_fffba93b: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffba8d5 ; jne 0xfffba8d5
+push eax
+mov ecx, 0x7f
+push eax
+mov edx, edi
+lea eax, [ebp - 0x2a8]
+xor si, si
+push eax
+mov eax, dword [ebp + 8]
+push 2
+call fcn_fffd2d89 ; call 0xfffd2d89
+xor ecx, ecx
+pop eax
+pop edx
+mov edx, edi
+lea eax, [ebp - 0x260]
+push eax
+mov eax, dword [ebp + 8]
+push 0xfffffffffffffffe
+call fcn_fffd2d89 ; call 0xfffd2d89
+add esp, 0x10
+
+loc_fffba978: ; not directly referenced
+imul eax, esi, 0x13c3
+mov ecx, dword [ebp + 8]
+mov dl, byte [ebp - 0x33c]
+test byte [ecx + eax + 0x381a], dl
+jne short loc_fffba99b ; jne 0xfffba99b
+
+loc_fffba990: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffba978 ; jne 0xfffba978
+jmp near loc_fffba8c0 ; jmp 0xfffba8c0
+
+loc_fffba99b: ; not directly referenced
+push eax
+push 1
+push 0x60
+push 3
+push ebx
+push 2
+push esi
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 1
+push 0x60
+push 1
+push ebx
+push 3
+push esi
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 1
+push 0x60
+push 2
+push ebx
+push 1
+push esi
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp + 8]
+add esp, 0x14
+mov ecx, esi
+mov edx, 1
+shl edx, cl
+mov ecx, ebx
+push 2
+call fcn_fffd2c53 ; call 0xfffd2c53
+add esp, 0x10
+mov dword [ebp - 0x344], eax
+test eax, eax
+je short loc_fffba990 ; je 0xfffba990
+jmp near loc_fffbb0b4 ; jmp 0xfffbb0b4
+
+loc_fffbaa02: ; not directly referenced
+imul eax, esi, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+je short loc_fffbaa69 ; je 0xfffbaa69
+
+loc_fffbaa15: ; not directly referenced
+inc esi
+add ebx, 0xcc
+cmp esi, 2
+jne short loc_fffbaa02 ; jne 0xfffbaa02
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x2443]
+lea eax, [ebp - 0x2c8]
+push esi
+xor esi, esi
+push 0x7f
+push 4
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 4
+lea eax, [ebp - 0x2e8]
+push eax
+call dword [ebx + 0x5c] ; ucall
+lea eax, [ebp - 0x2a8]
+add esp, 0x10
+mov dword [ebp - 0x34c], eax
+lea eax, [ebp - 0x260]
+mov dword [ebp - 0x348], eax
+jmp short loc_fffbaac9 ; jmp 0xfffbaac9
+
+loc_fffbaa69: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, esi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebx]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov byte [ebp - 0x33c], 0
+
+loc_fffbaa8b: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x33c]
+cmp al, byte [edi + 0x2488]
+jae loc_fffbaa15 ; jae 0xfffbaa15
+movzx edi, byte [ebp - 0x33c]
+mov edx, esi
+mov eax, dword [ebp + 8]
+mov ecx, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebx + edi*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x33c]
+jmp short loc_fffbaa8b ; jmp 0xfffbaa8b
+
+loc_fffbaac9: ; not directly referenced
+imul eax, esi, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffbabfc ; jne 0xfffbabfc
+mov al, byte [edi + eax + 0x381a]
+lea ecx, [ebp - 0x18]
+mov edi, dword [ebp - 0x348]
+mov dword [ebp - 0x33c], 0
+mov byte [ebp - 0x368], al
+imul eax, esi, 0x54a
+mov dword [ebp - 0x350], eax
+mov eax, dword [ebp - 0x34c]
+mov dword [ebp - 0x344], eax
+lea eax, [esi + esi]
+add eax, ecx
+mov dword [ebp - 0x378], eax
+
+loc_fffbab23: ; not directly referenced
+mov cl, byte [ebp - 0x33c]
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x368], al
+je short loc_fffbab4b ; je 0xfffbab4b
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x354], al
+jmp short loc_fffbab9c ; jmp 0xfffbab9c
+
+loc_fffbab4b: ; not directly referenced
+inc dword [ebp - 0x33c]
+add edi, 9
+add dword [ebp - 0x344], 9
+cmp dword [ebp - 0x33c], 4
+jne short loc_fffbab23 ; jne 0xfffbab23
+movzx edx, byte [ebp + esi*2 - 0x2c8]
+movzx eax, byte [ebp + esi*2 - 0x2e8]
+add eax, edx
+movzx edx, byte [ebp + esi*2 - 0x2c7]
+sar eax, 1
+mov byte [ebp + esi*2 - 0x308], al
+movzx eax, byte [ebp + esi*2 - 0x2e7]
+add eax, edx
+sar eax, 1
+mov byte [ebp + esi*2 - 0x307], al
+jmp short loc_fffbabfc ; jmp 0xfffbabfc
+
+loc_fffbab9c: ; not directly referenced
+cmp byte [ebp - 0x354], cl
+jbe short loc_fffbab4b ; jbe 0xfffbab4b
+mov edx, dword [ebp - 0x350]
+mov eax, dword [ebp + 8]
+mov ebx, dword [ebp - 0x344]
+movzx eax, byte [eax + edx + 0x1ead]
+mov dl, byte [ebx + ecx]
+sar eax, cl
+and eax, 1
+xor eax, 1
+add eax, dword [ebp - 0x378]
+mov bl, byte [eax - 0x2b0]
+cmp byte [eax - 0x2b0], dl
+cmovbe edx, ebx
+mov bl, byte [eax - 0x2d0]
+mov byte [eax - 0x2b0], dl
+mov dl, byte [edi + ecx]
+cmp byte [eax - 0x2d0], dl
+cmovae edx, ebx
+inc ecx
+mov byte [eax - 0x2d0], dl
+jmp short loc_fffbab9c ; jmp 0xfffbab9c
+
+loc_fffbabfc: ; not directly referenced
+inc esi
+add dword [ebp - 0x34c], 0x24
+add dword [ebp - 0x348], 0x24
+cmp esi, 2
+jne loc_fffbaac9 ; jne 0xfffbaac9
+movzx esi, byte [ebp - 0x340]
+xor ebx, ebx
+
+loc_fffbac1d: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffbac9f ; jne 0xfffbac9f
+movzx eax, byte [ebp + ebx*2 - 0x308]
+push ecx
+push 1
+push eax
+push 1
+push esi
+push 2
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+movzx eax, byte [ebp + ebx*2 - 0x308]
+add esp, 0x1c
+push 1
+push eax
+push 1
+push esi
+push 3
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+movzx eax, byte [ebp + ebx*2 - 0x307]
+add esp, 0x1c
+push 1
+push eax
+push 2
+push esi
+push 2
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+movzx eax, byte [ebp + ebx*2 - 0x307]
+add esp, 0x1c
+push 1
+push eax
+push 2
+push esi
+push 1
+push ebx
+push dword [ebp + 8]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffbac9f: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffbac1d ; jne 0xfffbac1d
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x344], 0
+mov dword [ebp - 0x348], 0x4224
+add eax, 0x3756
+mov dword [ebp - 0x34c], eax
+mov eax, dword [ebp + 8]
+add eax, 0x196b
+mov dword [ebp - 0x340], eax
+
+loc_fffbacd9: ; not directly referenced
+mov eax, dword [ebp - 0x34c]
+cmp dword [eax], 2
+jne loc_fffbb079 ; jne 0xfffbb079
+xor ebx, ebx
+xor edi, edi
+mov byte [ebp - 0x350], 0
+xor ecx, ecx
+xor eax, eax
+
+loc_fffbacf7: ; not directly referenced
+mov esi, dword [ebp - 0x340]
+mov dl, byte [esi + eax + 0x4f6]
+cmp dl, 2
+je short loc_fffbad29 ; je 0xfffbad29
+ja short loc_fffbad17 ; ja 0xfffbad17
+mov esi, eax
+and esi, 7
+test dl, dl
+cmove ebx, esi
+jmp short loc_fffbad3b ; jmp 0xfffbad3b
+
+loc_fffbad17: ; not directly referenced
+cmp dl, 4
+je short loc_fffbad30 ; je 0xfffbad30
+mov esi, eax
+and esi, 7
+cmp dl, 6
+cmove ecx, esi
+jmp short loc_fffbad3b ; jmp 0xfffbad3b
+
+loc_fffbad29: ; not directly referenced
+mov edi, eax
+and edi, 7
+jmp short loc_fffbad3b ; jmp 0xfffbad3b
+
+loc_fffbad30: ; not directly referenced
+mov dl, al
+and edx, 7
+mov byte [ebp - 0x350], dl
+
+loc_fffbad3b: ; not directly referenced
+inc eax
+cmp eax, 8
+jne short loc_fffbacf7 ; jne 0xfffbacf7
+mov eax, edi
+mov edx, ebx
+shl eax, 0x1c
+xor esi, esi
+mov dword [ebp - 0x33c], eax
+movzx eax, cl
+xor edi, edi
+mov dword [ebp - 0x3cc], eax
+shl eax, 0x1c
+xor ebx, ebx
+mov dword [ebp - 0x354], eax
+mov eax, dword [ebp - 0x350]
+shl edx, 0x18
+or dword [ebp - 0x33c], edx
+shr edx, 0x18
+mov ecx, edx
+shl eax, 0x18
+or dword [ebp - 0x354], eax
+shr eax, 0x18
+mov dword [ebp - 0x388], eax
+mov al, byte [ebp - 0x33c]
+mov dword [ebp - 0x3d4], edx
+mov edx, dword [ebp - 0x340]
+mov byte [ebp - 0x378], 0
+mov byte [ebp - 0x3a8], 0
+and eax, 7
+mov byte [ebp - 0x368], al
+mov al, byte [ebp - 0x354]
+lea ecx, [edx + ecx*8]
+mov byte [ebp - 0x390], 0
+mov byte [ebp - 0x38c], 0
+mov byte [ebp - 0x358], 0
+and eax, 7
+mov byte [ebp - 0x350], al
+mov eax, dword [ebp - 0x33c]
+mov byte [ebp - 0x3c8], 0
+mov byte [ebp - 0x3b8], 0
+mov dword [ebp - 0x398], ecx
+shr eax, 0x1c
+lea eax, [edx + eax*8]
+mov dword [ebp - 0x394], eax
+movzx eax, byte [ebp - 0x388]
+lea eax, [edx + eax*8]
+mov dword [ebp - 0x3d0], eax
+mov eax, dword [ebp - 0x3cc]
+lea eax, [edx + eax*8]
+xor edx, edx
+mov dword [ebp - 0x3cc], eax
+xor eax, eax
+
+loc_fffbae25: ; not directly referenced
+mov ecx, dword [ebp - 0x398]
+mov cl, byte [ecx + edx + 0x4fe]
+cmp cl, 1
+je short loc_fffbae49 ; je 0xfffbae49
+jb short loc_fffbae41 ; jb 0xfffbae41
+cmp cl, 2
+cmove esi, eax
+jmp short loc_fffbae4f ; jmp 0xfffbae4f
+
+loc_fffbae41: ; not directly referenced
+mov byte [ebp - 0x368], al
+jmp short loc_fffbae4f ; jmp 0xfffbae4f
+
+loc_fffbae49: ; not directly referenced
+mov byte [ebp - 0x378], al
+
+loc_fffbae4f: ; not directly referenced
+mov ecx, dword [ebp - 0x394]
+mov cl, byte [ecx + edx + 0x4fe]
+cmp cl, 0x11
+je short loc_fffbae6e ; je 0xfffbae6e
+cmp cl, 0x12
+je short loc_fffbae76 ; je 0xfffbae76
+cmp cl, 0x10
+cmove edi, eax
+jmp short loc_fffbae7c ; jmp 0xfffbae7c
+
+loc_fffbae6e: ; not directly referenced
+mov byte [ebp - 0x3a8], al
+jmp short loc_fffbae7c ; jmp 0xfffbae7c
+
+loc_fffbae76: ; not directly referenced
+mov byte [ebp - 0x390], al
+
+loc_fffbae7c: ; not directly referenced
+mov ecx, dword [ebp - 0x3d0]
+mov cl, byte [ecx + edx + 0x4fe]
+cmp cl, 0x21
+je short loc_fffbaea7 ; je 0xfffbaea7
+cmp cl, 0x22
+je short loc_fffbaeaf ; je 0xfffbaeaf
+cmp cl, 0x20
+mov cl, byte [ebp - 0x350]
+cmove ecx, eax
+mov byte [ebp - 0x350], cl
+jmp short loc_fffbaeb5 ; jmp 0xfffbaeb5
+
+loc_fffbaea7: ; not directly referenced
+mov byte [ebp - 0x38c], al
+jmp short loc_fffbaeb5 ; jmp 0xfffbaeb5
+
+loc_fffbaeaf: ; not directly referenced
+mov byte [ebp - 0x358], al
+
+loc_fffbaeb5: ; not directly referenced
+mov ecx, dword [ebp - 0x3cc]
+mov cl, byte [ecx + edx + 0x4fe]
+cmp cl, 0x31
+je short loc_fffbaed4 ; je 0xfffbaed4
+cmp cl, 0x32
+je short loc_fffbaedc ; je 0xfffbaedc
+cmp cl, 0x30
+cmove ebx, eax
+jmp short loc_fffbaee2 ; jmp 0xfffbaee2
+
+loc_fffbaed4: ; not directly referenced
+mov byte [ebp - 0x3c8], al
+jmp short loc_fffbaee2 ; jmp 0xfffbaee2
+
+loc_fffbaedc: ; not directly referenced
+mov byte [ebp - 0x3b8], al
+
+loc_fffbaee2: ; not directly referenced
+inc eax
+inc edx
+and eax, 7
+cmp edx, 8
+jne loc_fffbae25 ; jne 0xfffbae25
+mov ecx, dword [ebp - 0x368]
+and esi, 7
+and edi, 7
+mov eax, dword [ebp - 0x378]
+shl esi, 8
+shl edi, 0xc
+mov edx, dword [ebp - 0x38c]
+and ecx, 7
+or ecx, dword [ebp - 0x33c]
+and eax, 7
+shl eax, 4
+and edx, 7
+shl edx, 4
+or ecx, eax
+mov eax, dword [ebp - 0x3a8]
+or ecx, esi
+mov esi, dword [ebp - 0x350]
+and ecx, 0xfff88fff
+or ecx, edi
+and eax, 7
+shl eax, 0x10
+and esi, 7
+or ecx, eax
+mov eax, dword [ebp - 0x390]
+and ecx, 0xff8fffff
+or esi, dword [ebp - 0x354]
+and eax, 7
+shl eax, 0x14
+or esi, edx
+mov edx, dword [ebp - 0x3c8]
+or ecx, eax
+mov eax, dword [ebp - 0x358]
+and edx, 7
+and eax, 7
+shl eax, 8
+or esi, eax
+mov eax, ebx
+and eax, 7
+and esi, 0xfff88fff
+shl eax, 0xc
+or esi, eax
+mov eax, dword [ebp - 0x3b8]
+shl edx, 0x10
+or esi, edx
+and esi, 0xff8fffff
+and eax, 7
+shl eax, 0x14
+or esi, eax
+mov eax, dword [ebp - 0x34c]
+cmp byte [eax + 0x1264], 0x20
+jne loc_fffbb03c ; jne 0xfffbb03c
+mov ebx, dword [ebp - 0x3d4]
+and ecx, 0x8fffffff
+and esi, 0x8fffffff
+shl ebx, 0x1c
+or ecx, ebx
+mov eax, ecx
+and ch, 0x8f
+and eax, 7
+shl eax, 0xc
+or ecx, eax
+mov eax, ecx
+and ecx, 0xfff8ffff
+shl eax, 0xc
+and eax, 0x70000
+or ecx, eax
+mov eax, ecx
+and ecx, 0xff8fffff
+shl eax, 0xc
+and eax, 0x700000
+or ecx, eax
+mov eax, dword [ebp - 0x388]
+shl eax, 0x1c
+or esi, eax
+mov eax, esi
+and esi, 0xffff8fff
+and eax, 7
+shl eax, 0xc
+or esi, eax
+mov eax, esi
+and esi, 0xfff8ffff
+shl eax, 0xc
+and eax, 0x70000
+or esi, eax
+mov eax, esi
+and esi, 0xff8fffff
+shl eax, 0xc
+and eax, 0x700000
+or esi, eax
+
+loc_fffbb03c: ; not directly referenced
+mov edi, dword [ebp - 0x348]
+mov ebx, dword [ebp + 8]
+mov eax, edi
+sub eax, 4
+cmp dword [ebx + 0x188b], 1
+lea edx, [edi + 4]
+cmovne edx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, edi
+mov ecx, esi
+lea edx, [edi + 8]
+mov edi, dword [ebp + 8]
+cmp dword [edi + 0x188b], 1
+cmovne edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbb079: ; not directly referenced
+mov eax, dword [ebp - 0x348]
+add dword [ebp - 0x34c], 0x13c3
+add dword [ebp - 0x340], 0x54a
+add eax, 0x400
+cmp eax, 0x4a24
+je short loc_fffbb0aa ; je 0xfffbb0aa
+mov dword [ebp - 0x348], eax
+jmp near loc_fffbacd9 ; jmp 0xfffbacd9
+
+loc_fffbb0aa: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov byte [eax + 0x247c], 1
+
+loc_fffbb0b4: ; not directly referenced
+mov eax, dword [ebp - 0x344]
+jmp near loc_fffbb9fc ; jmp 0xfffbb9fc
+
+loc_fffbb0bf: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edi, dword [ebp - 0x344]
+add eax, 0x3756
+add edi, 0x70
+mov ebx, eax
+mov dword [ebp - 0x3d0], edi
+mov esi, edi
+xor edi, edi
+mov dword [ebp - 0x3cc], eax
+
+loc_fffbb0e2: ; not directly referenced
+cmp dword [ebx], 2
+jne loc_fffbb17d ; jne 0xfffbb17d
+mov byte [ebp - 0x340], 0
+
+loc_fffbb0f2: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov cl, byte [ebp - 0x340]
+movzx eax, byte [eax + 0x2488]
+cmp cl, al
+jae short loc_fffbb16c ; jae 0xfffbb16c
+movzx eax, cl
+mov dword [ebp - 0x33c], 0
+mov dword [ebp - 0x34c], eax
+
+loc_fffbb119: ; not directly referenced
+mov cl, byte [ebp - 0x33c]
+mov eax, 1
+shl eax, cl
+test byte [ebx + 0xc4], al
+je short loc_fffbb155 ; je 0xfffbb155
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x18b2], 1
+jne short loc_fffbb155 ; jne 0xfffbb155
+push edx
+mov ecx, dword [ebp - 0x33c]
+mov edx, edi
+push 0x20
+push 5
+push dword [ebp - 0x34c]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffbb155: ; not directly referenced
+inc dword [ebp - 0x33c]
+cmp dword [ebp - 0x33c], 4
+jne short loc_fffbb119 ; jne 0xfffbb119
+inc byte [ebp - 0x340]
+jmp short loc_fffbb0f2 ; jmp 0xfffbb0f2
+
+loc_fffbb16c: ; not directly referenced
+push ecx
+push 0
+push eax
+mov eax, dword [ebp - 0x38c]
+push esi
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbb17d: ; not directly referenced
+inc edi
+add ebx, 0x13c3
+add esi, 0xcc
+cmp edi, 2
+jne loc_fffbb0e2 ; jne 0xfffbb0e2
+mov eax, dword [ebp + 8]
+movzx edx, byte [ebp - 0x348]
+call fcn_fffb27d5 ; call 0xfffb27d5
+mov eax, dword [ebp - 0x344]
+mov dword [ebp - 0x33c], 0
+add eax, 0x1c
+mov dword [ebp - 0x3b8], eax
+
+loc_fffbb1bb: ; not directly referenced
+mov edi, dword [ebp - 0x33c]
+mov eax, edi
+mov byte [ebp - 0x388], al
+cmp edi, 0x80
+je loc_fffbb85b ; je 0xfffbb85b
+mov edi, dword [ebp - 0x33c]
+mov eax, edi
+and eax, 0x7f
+mov ebx, eax
+mov ecx, eax
+mov edx, eax
+shl ebx, 0xe
+shl ecx, 0x15
+shl edx, 7
+or ecx, ebx
+or ecx, edx
+mov edx, 0x390c
+or ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+sub esp, 0xc
+push dword [ebp + 8]
+call fcn_fffc82f4 ; call 0xfffc82f4
+mov eax, edi
+add esp, 0x10
+shr al, 1
+movzx eax, al
+lea eax, [ebp + eax*8 - 0x218]
+mov dword [ebp - 0x378], eax
+mov dword [ebp - 0x390], 0
+mov dword [ebp - 0x358], 0
+
+loc_fffbb238: ; not directly referenced
+mov cl, byte [ebp - 0x358]
+mov dword [ebp - 0x340], 1
+shl dword [ebp - 0x340], cl
+mov al, byte [ebp - 0x340]
+test byte [ebp - 0x3c8], al
+jne short loc_fffbb284 ; jne 0xfffbb284
+
+loc_fffbb25c: ; not directly referenced
+inc dword [ebp - 0x358]
+inc dword [ebp - 0x378]
+add dword [ebp - 0x390], 4
+cmp dword [ebp - 0x358], 4
+jne short loc_fffbb238 ; jne 0xfffbb238
+add dword [ebp - 0x33c], 2
+jmp near loc_fffbb1bb ; jmp 0xfffbb1bb
+
+loc_fffbb284: ; not directly referenced
+xor ebx, ebx
+
+loc_fffbb286: ; not directly referenced
+mov edi, dword [ebp - 0x340]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov ecx, edi
+call fcn_fffaac43 ; call 0xfffaac43
+imul eax, ebx, 0x13c3
+mov esi, dword [ebp + 8]
+mov dword [ebp + ebx*4 - 0x338], 0
+mov edx, edi
+mov dword [ebp + ebx*4 - 0x330], 0
+test byte [esi + eax + 0x381a], dl
+je short loc_fffbb300 ; je 0xfffbb300
+mov ecx, dword [ebp - 0x340]
+mov eax, esi
+mov esi, ebx
+push edx
+push edx
+mov edx, ebx
+push 4
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+mov eax, dword [ebp + 8]
+shl esi, 0xa
+add esi, 0x4194
+mov edx, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, esi
+or eax, 0x80000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+
+loc_fffbb300: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbb286 ; jne 0xfffbb286
+mov al, byte [ebp - 0x340]
+mov dword [ebp - 0x34c], 0xffffffe0
+mov byte [ebp - 0x344], al
+mov eax, dword [ebp + 8]
+movzx ecx, byte [eax + 0x2488]
+mov eax, 1
+shl eax, cl
+dec eax
+mov dword [ebp - 0x348], eax
+
+loc_fffbb334: ; not directly referenced
+push 1
+mov edi, dword [ebp - 0x34c]
+xor ebx, ebx
+push 0
+push 0
+push 0
+push 0
+mov eax, edi
+push 0
+push 0
+push 1
+push 0
+push edi
+push 1
+push dword [ebp + 8]
+mov byte [ebp - 0x350], al
+call fcn_fffcc900 ; call 0xfffcc900
+mov edi, dword [ebp - 0x3b8]
+add esp, 0x30
+
+loc_fffbb36a: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov ecx, dword [ebp + 8]
+xor esi, esi
+mov dl, byte [ebp - 0x344]
+test byte [ecx + eax + 0x381a], dl
+je short loc_fffbb3e3 ; je 0xfffbb3e3
+
+loc_fffbb384: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov eax, esi
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffbb3c2 ; jae 0xfffbb3c2
+mov eax, esi
+mov edx, ebx
+movzx eax, al
+inc esi
+mov ecx, eax
+mov dword [ebp - 0x354], eax
+mov eax, dword [ebp + 8]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0x354]
+mov ecx, dword [edi + ecx*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+or ecx, 0x60
+call fcn_fffaeb7c ; call 0xfffaeb7c
+jmp short loc_fffbb384 ; jmp 0xfffbb384
+
+loc_fffbb3c2: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [edi]
+or ecx, 0x1000001
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbb3e3: ; not directly referenced
+inc ebx
+add edi, 0xcc
+cmp ebx, 2
+jne loc_fffbb36a ; jne 0xfffbb36a
+mov eax, dword [ebp + 8]
+xor bl, bl
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov eax, dword [ebp + 8]
+mov ecx, 5
+mov edx, 0x4800
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 2
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov eax, dword [ebp + 8]
+mov edx, 2
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+mov ecx, 2
+mov edx, 0x4800
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbb443: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+mov dl, byte [ebp - 0x344]
+test byte [edi + eax + 0x381a], dl
+je short loc_fffbb4c5 ; je 0xfffbb4c5
+xor edi, edi
+
+loc_fffbb45d: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov eax, edi
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffbb4a2 ; jae 0xfffbb4a2
+mov eax, edi
+mov edx, ebx
+movzx ecx, al
+mov eax, dword [ebp + 8]
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 1
+mov ecx, edi
+shl edx, cl
+dec eax
+jne short loc_fffbb498 ; jne 0xfffbb498
+or dword [ebp + ebx*4 - 0x338], edx
+jmp short loc_fffbb49f ; jmp 0xfffbb49f
+
+loc_fffbb498: ; not directly referenced
+or dword [ebp + ebx*4 - 0x330], edx
+
+loc_fffbb49f: ; not directly referenced
+inc edi
+jmp short loc_fffbb45d ; jmp 0xfffbb45d
+
+loc_fffbb4a2: ; not directly referenced
+mov eax, dword [ebp - 0x348]
+cmp dword [ebp + ebx*4 - 0x338], eax
+jne short loc_fffbb4c5 ; jne 0xfffbb4c5
+mov edi, dword [ebp - 0x378]
+mov al, byte [ebp - 0x350]
+cmp byte [edi + ebx*4], al
+jle short loc_fffbb4c5 ; jle 0xfffbb4c5
+mov byte [edi + ebx*4], al
+
+loc_fffbb4c5: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffbb443 ; jne 0xfffbb443
+mov ebx, dword [ebp - 0x3b8]
+xor edi, edi
+
+loc_fffbb4d7: ; not directly referenced
+imul eax, edi, 0x13c3
+mov ecx, dword [ebp + 8]
+xor esi, esi
+mov dl, byte [ebp - 0x344]
+test byte [ecx + eax + 0x381a], dl
+je short loc_fffbb54e ; je 0xfffbb54e
+
+loc_fffbb4f1: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov eax, esi
+cmp al, byte [edx + 0x2488]
+jae short loc_fffbb52c ; jae 0xfffbb52c
+mov eax, esi
+mov edx, edi
+movzx eax, al
+inc esi
+mov ecx, eax
+mov dword [ebp - 0x350], eax
+mov eax, dword [ebp + 8]
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0x350]
+mov ecx, dword [ebx + ecx*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+jmp short loc_fffbb4f1 ; jmp 0xfffbb4f1
+
+loc_fffbb52c: ; not directly referenced
+mov eax, edx
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, edi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebx]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffbb54e: ; not directly referenced
+inc edi
+add ebx, 0xcc
+cmp edi, 2
+jne loc_fffbb4d7 ; jne 0xfffbb4d7
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x344]
+test byte [edi + 0x381a], al
+je short loc_fffbb58d ; je 0xfffbb58d
+mov eax, dword [ebp - 0x348]
+cmp dword [ebp - 0x338], eax
+jne loc_fffbb9e3 ; jne 0xfffbb9e3
+cmp dword [ebp - 0x330], eax
+jne loc_fffbb9e3 ; jne 0xfffbb9e3
+
+loc_fffbb58d: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov al, byte [ebp - 0x344]
+test byte [ebx + 0x4bdd], al
+je short loc_fffbb5bc ; je 0xfffbb5bc
+mov eax, dword [ebp - 0x348]
+cmp dword [ebp - 0x334], eax
+jne loc_fffbb9e3 ; jne 0xfffbb9e3
+cmp dword [ebp - 0x32c], eax
+jne loc_fffbb9e3 ; jne 0xfffbb9e3
+
+loc_fffbb5bc: ; not directly referenced
+mov eax, dword [ebp - 0x390]
+mov edx, dword [ebp - 0x33c]
+lea edi, [ebp + eax - 0x260]
+lea ebx, [ebp + eax - 0x2a8]
+mov dword [ebp - 0x350], edi
+mov edi, eax
+mov dword [ebp - 0x354], ebx
+lea ebx, [ebp + edi - 0x2e8]
+mov dword [ebp - 0x34c], ebx
+mov ebx, edi
+lea ebx, [ebp + ebx - 0x328]
+lea ecx, [edx - 2]
+mov dword [ebp - 0x368], ebx
+lea eax, [ebp + eax - 0x2c8]
+xor ebx, ebx
+lea edi, [ebp + edi - 0x308]
+mov dword [ebp - 0x3a8], ecx
+
+loc_fffbb619: ; not directly referenced
+imul edx, ebx, 0x13c3
+mov esi, dword [ebp + 8]
+mov cl, byte [ebp - 0x344]
+test byte [esi + edx + 0x381a], cl
+je loc_fffbb7c4 ; je 0xfffbb7c4
+mov esi, dword [ebp - 0x348]
+xor ecx, ecx
+cmp dword [ebp + ebx*4 - 0x338], esi
+jne short loc_fffbb652 ; jne 0xfffbb652
+xor ecx, ecx
+cmp dword [ebp + ebx*4 - 0x330], esi
+sete cl
+
+loc_fffbb652: ; not directly referenced
+cmp byte [ebp - 0x388], 0
+setne dl
+test dl, cl
+je short loc_fffbb67f ; je 0xfffbb67f
+mov ecx, dword [ebp - 0x378]
+movsx edx, byte [ecx + ebx*4]
+movsx ecx, byte [ecx + ebx*4 - 8]
+sub edx, ecx
+cmp edx, 0x10
+setle dl
+movzx edx, dl
+jmp near loc_fffbb70e ; jmp 0xfffbb70e
+
+loc_fffbb67f: ; not directly referenced
+cmp byte [ebp - 0x388], 0
+mov edx, ecx
+jne loc_fffbb70e ; jne 0xfffbb70e
+mov esi, dword [ebp - 0x368]
+test ecx, ecx
+je short loc_fffbb6d3 ; je 0xfffbb6d3
+mov dword [esi], 0
+mov esi, dword [ebp - 0x34c]
+mov dword [edi], 0
+mov dword [eax], 0
+mov dword [esi], 0
+mov esi, dword [ebp - 0x354]
+mov dword [esi], 0
+mov esi, dword [ebp - 0x350]
+mov dword [esi], 0
+jmp near loc_fffbb7c4 ; jmp 0xfffbb7c4
+
+loc_fffbb6d3: ; not directly referenced
+mov dword [esi], 0xfffffffe
+mov esi, dword [ebp - 0x34c]
+mov dword [edi], 0xfffffffe
+mov dword [eax], 0xfffffffe
+mov dword [esi], 0xfffffffe
+mov esi, dword [ebp - 0x354]
+mov dword [esi], 0xfffffffe
+mov esi, dword [ebp - 0x350]
+mov dword [esi], 0xfffffffe
+jmp near loc_fffbb7c4 ; jmp 0xfffbb7c4
+
+loc_fffbb70e: ; not directly referenced
+test edx, edx
+je loc_fffbb7c4 ; je 0xfffbb7c4
+mov esi, dword [ebp - 0x3a8]
+cmp dword [edi], esi
+jne short loc_fffbb728 ; jne 0xfffbb728
+mov esi, dword [ebp - 0x33c]
+mov dword [edi], esi
+
+loc_fffbb728: ; not directly referenced
+mov esi, dword [ebp - 0x3a8]
+cmp dword [eax], esi
+jne short loc_fffbb73c ; jne 0xfffbb73c
+mov esi, dword [ebp - 0x33c]
+mov dword [eax], esi
+jmp short loc_fffbb74c ; jmp 0xfffbb74c
+
+loc_fffbb73c: ; not directly referenced
+mov ecx, dword [ebp - 0x33c]
+mov esi, dword [ebp - 0x34c]
+mov dword [eax], ecx
+mov dword [esi], ecx
+
+loc_fffbb74c: ; not directly referenced
+cmp byte [ebp - 0x388], 0x7e
+jne short loc_fffbb772 ; jne 0xfffbb772
+mov esi, dword [ebp - 0x368]
+cmp dword [esi], 0
+jne short loc_fffbb772 ; jne 0xfffbb772
+mov edx, dword [edi]
+mov ecx, dword [ebp - 0x33c]
+cmp edx, ecx
+je short loc_fffbb772 ; je 0xfffbb772
+lea edx, [edx + ecx + 2]
+mov dword [eax], edx
+
+loc_fffbb772: ; not directly referenced
+mov edx, dword [ebp - 0x34c]
+mov esi, dword [eax]
+mov dword [ebp - 0x3d4], eax
+mov ecx, dword [ebp - 0x354]
+mov edx, dword [edx]
+mov eax, esi
+mov dword [ebp - 0x394], esi
+sub eax, edx
+mov dword [ebp - 0x398], edx
+mov edx, dword [ebp - 0x350]
+mov edx, dword [edx]
+sub edx, dword [ecx]
+cmp eax, edx
+mov eax, dword [ebp - 0x3d4]
+jle short loc_fffbb7c4 ; jle 0xfffbb7c4
+mov esi, ecx
+mov ecx, dword [ebp - 0x398]
+mov dword [esi], ecx
+mov esi, dword [ebp - 0x350]
+mov ecx, dword [ebp - 0x394]
+mov dword [esi], ecx
+
+loc_fffbb7c4: ; not directly referenced
+inc ebx
+add edi, 0x10
+add dword [ebp - 0x368], 0x10
+add eax, 0x10
+add dword [ebp - 0x34c], 0x10
+add dword [ebp - 0x354], 0x10
+add dword [ebp - 0x350], 0x10
+cmp ebx, 2
+jne loc_fffbb619 ; jne 0xfffbb619
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x340]
+test byte [edi + 0x381a], al
+je short loc_fffbb821 ; je 0xfffbb821
+mov edx, 0x4194
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x4194
+and eax, 0x7fffffff
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbb821: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x340]
+test byte [edi + 0x4bdd], al
+je loc_fffbb25c ; je 0xfffbb25c
+mov edx, 0x4594
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x4594
+and eax, 0x7fffffff
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffbb25c ; jmp 0xfffbb25c
+
+loc_fffbb85b: ; not directly referenced
+mov eax, dword [ebp - 0x3d0]
+xor di, di
+mov ebx, dword [ebp - 0x3cc]
+mov dword [ebp - 0x340], eax
+
+loc_fffbb870: ; not directly referenced
+cmp dword [ebx], 2
+jne loc_fffbb992 ; jne 0xfffbb992
+mov al, byte [ebx + 0xc4]
+xor ecx, ecx
+mov byte [ebp - 0x350], 0
+mov byte [ebp - 0x34c], 0
+mov byte [ebp - 0x348], 0
+mov byte [ebp - 0x354], al
+lea eax, [ebp - 0x2a8]
+add eax, edi
+mov byte [ebp - 0x344], 0
+mov dword [ebp - 0x368], eax
+
+loc_fffbb8b1: ; not directly referenced
+mov edx, 1
+mov al, cl
+shl edx, cl
+test byte [ebp - 0x354], dl
+je short loc_fffbb926 ; je 0xfffbb926
+mov esi, dword [ebp - 0x368]
+lea edx, [ebp - 0x260]
+add edx, edi
+mov esi, dword [esi + ecx*4]
+mov dword [ebp - 0x33c], esi
+mov esi, dword [edx + ecx*4]
+sub esi, dword [ebp - 0x33c]
+je loc_fffbb9dc ; je 0xfffbb9dc
+mov dl, 0x40
+cmp esi, 0x10
+jle short loc_fffbb8f9 ; jle 0xfffbb8f9
+mov dl, byte [ebp - 0x33c]
+sar esi, 1
+add edx, esi
+
+loc_fffbb8f9: ; not directly referenced
+and edx, 0x7f
+cmp al, 2
+je short loc_fffbb918 ; je 0xfffbb918
+cmp al, 3
+je short loc_fffbb920 ; je 0xfffbb920
+dec al
+je short loc_fffbb910 ; je 0xfffbb910
+mov byte [ebp - 0x344], dl
+jmp short loc_fffbb926 ; jmp 0xfffbb926
+
+loc_fffbb910: ; not directly referenced
+mov byte [ebp - 0x348], dl
+jmp short loc_fffbb926 ; jmp 0xfffbb926
+
+loc_fffbb918: ; not directly referenced
+mov byte [ebp - 0x34c], dl
+jmp short loc_fffbb926 ; jmp 0xfffbb926
+
+loc_fffbb920: ; not directly referenced
+mov byte [ebp - 0x350], dl
+
+loc_fffbb926: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbb8b1 ; jne 0xfffbb8b1
+mov ecx, dword [ebp - 0x350]
+mov eax, dword [ebp - 0x34c]
+mov edx, dword [ebp - 0x348]
+and ecx, 0x7f
+and eax, 0x7f
+shl eax, 0xe
+and edx, 0x7f
+shl ecx, 0x15
+or ecx, eax
+mov eax, dword [ebp - 0x344]
+shl edx, 7
+or ecx, edx
+mov edx, edi
+shl edx, 4
+and eax, 0x7f
+add edx, 0x180c
+or ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+push eax
+mov eax, dword [ebp + 8]
+push 0
+movzx eax, byte [eax + 0x2488]
+push eax
+mov eax, dword [ebp - 0x38c]
+push dword [ebp - 0x340]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbb992: ; not directly referenced
+add edi, 0x10
+add ebx, 0x13c3
+add dword [ebp - 0x340], 0xcc
+cmp edi, 0x20
+jne loc_fffbb870 ; jne 0xfffbb870
+push 2
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push 1
+push dword [ebp + 8]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x24
+push dword [ebp + 8]
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+jmp short loc_fffbb9fc ; jmp 0xfffbb9fc
+
+loc_fffbb9dc: ; not directly referenced
+mov eax, 6
+jmp short loc_fffbb9fc ; jmp 0xfffbb9fc
+
+loc_fffbb9e3: ; not directly referenced
+add dword [ebp - 0x34c], 8
+cmp dword [ebp - 0x34c], 0x20
+jne loc_fffbb334 ; jne 0xfffbb334
+jmp near loc_fffbb5bc ; jmp 0xfffbb5bc
+
+loc_fffbb9fc: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbba04: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2bc
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x5edc]
+mov dword [ebp - 0x294], eax
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248d]
+mov byte [ebp - 0x2a0], al
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x1887]
+mov dword [ebp - 0x284], eax
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x247b]
+mov byte [ebp - 0x2a4], al
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x2480]
+mov byte [eax + 0x247b], 0
+xor eax, eax
+cmp edx, 3
+sete al
+cmp eax, 1
+mov dword [ebp - 0x27c], eax
+sbb eax, eax
+xor ebx, ebx
+and eax, 0xfffffc00
+add eax, 0x800
+cmp edx, 2
+sete bl
+mov dword [ebp - 0x280], ebx
+jne short loc_fffbba9d ; jne 0xfffbba9d
+mov esi, dword [ebp + 8]
+mov dx, 0x800
+cmp dword [esi + 0x36d7], 0x536
+cmovae eax, edx
+
+loc_fffbba9d: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov ecx, 0xf4240
+xor edi, edi
+movzx edx, word [esi + 0x2489]
+imul eax, edx
+xor edx, edx
+add eax, 0xf423f
+div ecx
+mov dword [ebp - 0x274], eax
+mov eax, dword [ebp - 0x294]
+add eax, 0x1c
+mov dword [ebp - 0x2ac], eax
+mov esi, eax
+
+loc_fffbbad1: ; not directly referenced
+imul eax, edi, 0x13c3
+mov ecx, dword [ebp + 8]
+cmp dword [ecx + eax + 0x3756], 2
+je short loc_fffbbb0c ; je 0xfffbbb0c
+
+loc_fffbbae4: ; not directly referenced
+inc edi
+add esi, 0xcc
+cmp edi, 2
+jne short loc_fffbbad1 ; jne 0xfffbbad1
+imul eax, dword [ebp - 0x274], 0xf
+mov dword [ebp - 0x270], 0
+mov dword [ebp - 0x298], eax
+jmp near loc_fffbbbae ; jmp 0xfffbbbae
+
+loc_fffbbb0c: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, edi
+mov ebx, dword [esi]
+call fcn_fffa7288 ; call 0xfffa7288
+and ebx, 0xff0fffff
+or ebx, 0x200000
+mov ecx, ebx
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov byte [ebp - 0x270], 0
+
+loc_fffbbb3c: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov al, byte [ebp - 0x270]
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffbbae4 ; jae 0xfffbbae4
+movzx ecx, byte [ebp - 0x270]
+mov edx, dword [ebp - 0x27c]
+mov ebx, dword [esi + ecx*4 + 0x28]
+or ebx, 0x20
+and ebx, 0xffffffbf
+mov eax, ebx
+or eax, 0x40000
+test edx, edx
+cmovne ebx, eax
+cmp dword [ebp - 0x280], 0
+je short loc_fffbbb90 ; je 0xfffbbb90
+mov edx, dword [ebp + 8]
+mov eax, ebx
+or eax, 0x40000
+cmp dword [edx + 0x36d7], 0x536
+cmovae ebx, eax
+
+loc_fffbbb90: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, ebx
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x270]
+jmp short loc_fffbbb3c ; jmp 0xfffbbb3c
+
+loc_fffbbbae: ; not directly referenced
+mov cl, byte [ebp - 0x270]
+mov eax, 1
+mov esi, eax
+shl esi, cl
+mov ebx, esi
+mov dword [ebp - 0x278], esi
+mov byte [ebp - 0x28c], bl
+test byte [ebp - 0x2a0], bl
+jne short loc_fffbbbef ; jne 0xfffbbbef
+
+loc_fffbbbd3: ; not directly referenced
+inc dword [ebp - 0x270]
+cmp dword [ebp - 0x270], 4
+jne short loc_fffbbbae ; jne 0xfffbbbae
+mov esi, dword [ebp - 0x2ac]
+xor ebx, ebx
+jmp near loc_fffbc378 ; jmp 0xfffbc378
+
+loc_fffbbbef: ; not directly referenced
+mov esi, dword [ebp - 0x270]
+lea ecx, [esi + 2]
+mov edx, esi
+and ecx, 2
+shl eax, cl
+or eax, dword [ebp - 0x278]
+shr dl, 1
+movzx edx, dl
+mov byte [ebp - 0x29c], al
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x2a8], edx
+add eax, 0x3816
+mov dword [ebp - 0x274], eax
+imul eax, edx, 0x128
+mov edi, eax
+mov dword [ebp - 0x2b0], eax
+mov eax, esi
+mov esi, dword [ebp + 8]
+and eax, 1
+imul eax, eax, 0x18
+add eax, edi
+lea edi, [esi + eax + 0x49c3]
+xor esi, esi
+mov dword [ebp - 0x2b4], eax
+
+loc_fffbbc4e: ; not directly referenced
+mov ebx, dword [ebp - 0x278]
+mov ecx, dword [ebp - 0x274]
+mov byte [ebp - 0x290], bl
+test byte [ecx + 4], bl
+je loc_fffbbe21 ; je 0xfffbbe21
+cmp dword [ebp - 0x27c], 0
+je short loc_fffbbc96 ; je 0xfffbbc96
+push ecx
+mov ecx, dword [ebp - 0x270]
+mov edx, esi
+push 0
+mov ax, word [edi + 2]
+or al, 0x80
+movzx eax, ax
+push eax
+mov eax, dword [ebp + 8]
+push 2
+call fcn_fffaa505 ; call 0xfffaa505
+jmp near loc_fffbbda7 ; jmp 0xfffbbda7
+
+loc_fffbbc96: ; not directly referenced
+cmp dword [ebp - 0x280], 0
+je short loc_fffbbcfc ; je 0xfffbbcfc
+mov eax, dword [ebp + 8]
+mov edx, esi
+call fcn_fffa6c42 ; call 0xfffa6c42
+test eax, eax
+je loc_fffbccb7 ; je 0xfffbccb7
+movzx ecx, byte [eax]
+sub esp, 0xc
+mov ax, word [edi + 8]
+mov edx, dword [ebp + 8]
+push eax
+lea eax, [ebp - 0x26a]
+call fcn_fffa6cab ; call 0xfffa6cab
+mov ebx, dword [ebp - 0x278]
+pop eax
+movzx eax, word [ebp - 0x26a]
+pop edx
+mov edx, esi
+mov ecx, ebx
+push eax
+mov eax, dword [ebp + 8]
+push 5
+call fcn_fffafd52 ; call 0xfffafd52
+mov ax, word [edi]
+pop ecx
+mov ecx, ebx
+pop edx
+or al, 0x80
+movzx eax, ax
+push eax
+push 1
+jmp near loc_fffbbd9d ; jmp 0xfffbbd9d
+
+loc_fffbbcfc: ; not directly referenced
+mov ecx, dword [ebp - 0x2a8]
+mov edx, esi
+mov eax, dword [ebp + 8]
+mov bx, word [edi]
+call fcn_fffa69ea ; call 0xfffa69ea
+or bl, 0x80
+mov dword [ebp - 0x288], eax
+test eax, eax
+je loc_fffbccb7 ; je 0xfffbccb7
+mov eax, dword [ebp - 0x284]
+cmp eax, 0x306d0
+sete dl
+cmp eax, 0x40650
+sete al
+or dl, al
+je short loc_fffbbd5f ; je 0xfffbbd5f
+mov eax, dword [ebp - 0x288]
+sub esp, 0xc
+mov edx, dword [ebp + 8]
+movzx ecx, byte [eax]
+lea eax, [ebp - 0x26a]
+push ebx
+call fcn_fffa6bd1 ; call 0xfffa6bd1
+mov bx, word [ebp - 0x26a]
+add esp, 0x10
+
+loc_fffbbd5f: ; not directly referenced
+mov eax, dword [ebp - 0x274]
+cmp dword [eax], 2
+jne short loc_fffbbd8f ; jne 0xfffbbd8f
+mov eax, dword [ebp - 0x288]
+sub esp, 0xc
+mov edx, dword [ebp + 8]
+movzx ecx, byte [eax]
+lea eax, [ebp - 0x26a]
+push ebx
+call fcn_fffa6bd1 ; call 0xfffa6bd1
+mov bx, word [ebp - 0x26a]
+add esp, 0x10
+
+loc_fffbbd8f: ; not directly referenced
+mov ecx, dword [ebp - 0x278]
+movzx ebx, bx
+push eax
+push eax
+push ebx
+push 1
+
+loc_fffbbd9d: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, esi
+call fcn_fffafd52 ; call 0xfffafd52
+
+loc_fffbbda7: ; not directly referenced
+mov eax, dword [ebp - 0x274]
+add esp, 0x10
+mov bl, byte [ebp - 0x28c]
+cmp dword [eax], 2
+mov al, byte [ebp - 0x29c]
+cmove ebx, eax
+xor ecx, ecx
+cmp dword [ebp - 0x27c], 0
+je short loc_fffbbdd4 ; je 0xfffbbdd4
+mov ecx, 0x10001
+jmp short loc_fffbbe05 ; jmp 0xfffbbe05
+
+loc_fffbbdd4: ; not directly referenced
+mov eax, dword [ebp - 0x284]
+cmp eax, 0x40660
+sete dl
+cmp eax, 0x306c0
+sete al
+or dl, al
+jne short loc_fffbbdfa ; jne 0xfffbbdfa
+cmp dword [ebp - 0x284], 0x40670
+jne short loc_fffbbe05 ; jne 0xfffbbe05
+
+loc_fffbbdfa: ; not directly referenced
+mov ecx, ebx
+and ecx, 0xf
+shl ecx, 0x10
+or ecx, 0xf
+
+loc_fffbbe05: ; not directly referenced
+cmp dword [ebp - 0x280], 0
+jne short loc_fffbbe21 ; jne 0xfffbbe21
+mov eax, dword [ebp + 8]
+mov edx, esi
+shl edx, 0xa
+add edx, 0x4194
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbbe21: ; not directly referenced
+inc esi
+add edi, 0x13c3
+add dword [ebp - 0x274], 0x13c3
+cmp esi, 2
+jne loc_fffbbc4e ; jne 0xfffbbc4e
+mov eax, dword [ebp - 0x270]
+mov si, 0xc0
+and eax, 3
+mov dword [ebp - 0x29c], eax
+shl dword [ebp - 0x29c], 0x16
+
+loc_fffbbe55: ; not directly referenced
+mov dword [ebp - 0x274], 0
+
+loc_fffbbe5f: ; not directly referenced
+imul eax, dword [ebp - 0x274], 0x13c3
+mov edi, dword [ebp + 8]
+mov bl, byte [ebp - 0x290]
+test byte [edi + eax + 0x381a], bl
+jne short loc_fffbbe8f ; jne 0xfffbbe8f
+
+loc_fffbbe7b: ; not directly referenced
+inc dword [ebp - 0x274]
+cmp dword [ebp - 0x274], 2
+jne short loc_fffbbe5f ; jne 0xfffbbe5f
+jmp near loc_fffbbf14 ; jmp 0xfffbbf14
+
+loc_fffbbe8f: ; not directly referenced
+imul eax, dword [ebp - 0x274], 0xcc
+mov edi, dword [ebp - 0x294]
+mov byte [ebp - 0x288], 0
+mov ebx, dword [edi + eax + 0x1c]
+and ebx, 0xff0fff7d
+or ebx, 0x200082
+or ebx, dword [ebp - 0x29c]
+
+loc_fffbbebc: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x288]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffbbe7b ; jae 0xfffbbe7b
+movzx edi, byte [ebp - 0x288]
+mov ecx, dword [ebp - 0x270]
+push eax
+mov edx, dword [ebp - 0x274]
+mov eax, dword [ebp + 8]
+push esi
+push 1
+push edi
+call fcn_fffa73b0 ; call 0xfffa73b0
+mov edx, dword [ebp - 0x274]
+mov ecx, edi
+mov eax, dword [ebp + 8]
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, ebx
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+inc byte [ebp - 0x288]
+jmp short loc_fffbbebc ; jmp 0xfffbbebc
+
+loc_fffbbf14: ; not directly referenced
+mov word [ebp - 0x2a8], si
+cmp si, 0xc0
+jne short loc_fffbbf30 ; jne 0xfffbbf30
+mov edx, dword [ebp - 0x298]
+mov eax, dword [ebp + 8]
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffbbf30: ; not directly referenced
+mov eax, dword [ebp + 8]
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov eax, dword [ebp + 8]
+mov edx, dword [ebp - 0x298]
+call fcn_fffa834b ; call 0xfffa834b
+lea eax, [esi - 2]
+mov dword [ebp - 0x274], 0
+mov dword [ebp - 0x28c], eax
+
+loc_fffbbf59: ; not directly referenced
+imul eax, dword [ebp - 0x274], 0x13c3
+mov edi, dword [ebp + 8]
+mov bl, byte [ebp - 0x290]
+test byte [edi + eax + 0x381a], bl
+je loc_fffbc02a ; je 0xfffbc02a
+mov byte [ebp - 0x288], 0
+imul edi, dword [ebp - 0x274], 9
+jmp near loc_fffbc015 ; jmp 0xfffbc015
+
+loc_fffbbf8c: ; not directly referenced
+movzx ebx, byte [ebp - 0x288]
+mov edx, dword [ebp - 0x274]
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+and eax, 0x1ff
+cmp eax, 0xf
+setg al
+cmp word [ebp - 0x2a8], 0xc0
+movzx eax, al
+jne loc_fffbc083 ; jne 0xfffbc083
+add ebx, edi
+test eax, eax
+je short loc_fffbc042 ; je 0xfffbc042
+mov dword [ebp + ebx*4 - 0x180], 0xc0
+mov dword [ebp + ebx*4 - 0x1c8], 0xc0
+mov dword [ebp + ebx*4 - 0xf0], 0xc0
+mov dword [ebp + ebx*4 - 0x138], 0xc0
+mov dword [ebp + ebx*4 - 0x60], 0xc0
+mov dword [ebp + ebx*4 - 0xa8], 0xc0
+
+loc_fffbc00f: ; not directly referenced
+inc byte [ebp - 0x288]
+
+loc_fffbc015: ; not directly referenced
+mov ebx, dword [ebp + 8]
+mov al, byte [ebp - 0x288]
+cmp al, byte [ebx + 0x2488]
+jb loc_fffbbf8c ; jb 0xfffbbf8c
+
+loc_fffbc02a: ; not directly referenced
+inc dword [ebp - 0x274]
+cmp dword [ebp - 0x274], 2
+jne loc_fffbbf59 ; jne 0xfffbbf59
+jmp near loc_fffbc12e ; jmp 0xfffbc12e
+
+loc_fffbc042: ; not directly referenced
+mov dword [ebp + ebx*4 - 0x180], 0xfffffffe
+mov dword [ebp + ebx*4 - 0x1c8], 0xfffffffe
+mov dword [ebp + ebx*4 - 0xf0], 0xfffffffe
+mov dword [ebp + ebx*4 - 0x138], 0xfffffffe
+mov dword [ebp + ebx*4 - 0x60], 0xfffffffe
+mov dword [ebp + ebx*4 - 0xa8], 0xfffffffe
+jmp short loc_fffbc00f ; jmp 0xfffbc00f
+
+loc_fffbc083: ; not directly referenced
+test eax, eax
+je short loc_fffbc00f ; je 0xfffbc00f
+lea eax, [edi + ebx]
+mov ecx, dword [ebp - 0x28c]
+cmp dword [ebp + eax*4 - 0x180], ecx
+jne short loc_fffbc0a0 ; jne 0xfffbc0a0
+mov dword [ebp + eax*4 - 0x180], esi
+
+loc_fffbc0a0: ; not directly referenced
+lea eax, [edi + ebx]
+mov ecx, dword [ebp - 0x28c]
+cmp dword [ebp + eax*4 - 0xf0], ecx
+mov dword [ebp + eax*4 - 0xf0], esi
+je short loc_fffbc0c0 ; je 0xfffbc0c0
+mov dword [ebp + eax*4 - 0x138], esi
+
+loc_fffbc0c0: ; not directly referenced
+cmp esi, 0x13e
+jne short loc_fffbc0ec ; jne 0xfffbc0ec
+lea eax, [edi + ebx]
+cmp dword [ebp + eax*4 - 0x1c8], 0xc0
+jne short loc_fffbc0ec ; jne 0xfffbc0ec
+mov ecx, dword [ebp + eax*4 - 0x180]
+lea edx, [ecx + 0x80]
+mov dword [ebp + eax*4 - 0xf0], edx
+
+loc_fffbc0ec: ; not directly referenced
+lea ecx, [edi + ebx]
+mov edx, dword [ebp + ecx*4 - 0xf0]
+mov ebx, dword [ebp + ecx*4 - 0x138]
+mov eax, edx
+sub eax, ebx
+mov dword [ebp - 0x2b8], eax
+mov eax, dword [ebp + ecx*4 - 0x60]
+sub eax, dword [ebp + ecx*4 - 0xa8]
+cmp dword [ebp - 0x2b8], eax
+jle loc_fffbc00f ; jle 0xfffbc00f
+mov dword [ebp + ecx*4 - 0xa8], ebx
+mov dword [ebp + ecx*4 - 0x60], edx
+jmp near loc_fffbc00f ; jmp 0xfffbc00f
+
+loc_fffbc12e: ; not directly referenced
+add esi, 2
+cmp esi, 0x140
+jne loc_fffbbe55 ; jne 0xfffbbe55
+mov eax, dword [ebp + 8]
+mov esi, dword [ebp - 0x2b4]
+mov dword [ebp - 0x274], 0
+add eax, 0x3756
+mov dword [ebp - 0x28c], eax
+mov eax, dword [ebp + 8]
+lea eax, [eax + esi + 0x49cb]
+mov dword [ebp - 0x288], eax
+imul eax, dword [ebp - 0x270], 9
+mov dword [ebp - 0x2a8], eax
+
+loc_fffbc178: ; not directly referenced
+mov esi, dword [ebp - 0x28c]
+mov al, byte [ebp - 0x290]
+test byte [esi + 0xc4], al
+jne short loc_fffbc1b5 ; jne 0xfffbc1b5
+
+loc_fffbc18c: ; not directly referenced
+inc dword [ebp - 0x274]
+add dword [ebp - 0x28c], 0x13c3
+add dword [ebp - 0x288], 0x13c3
+cmp dword [ebp - 0x274], 2
+je loc_fffbbbd3 ; je 0xfffbbbd3
+jmp short loc_fffbc178 ; jmp 0xfffbc178
+
+loc_fffbc1b5: ; not directly referenced
+mov eax, dword [ebp - 0x28c]
+xor ecx, ecx
+mov esi, dword [ebp - 0x2b0]
+mov edx, dword [ebp - 0x274]
+mov al, byte [eax + esi + 0x1264]
+shl edx, 0xa
+add edx, 0x4194
+mov byte [ebp - 0x29c], al
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x27c], 0
+je short loc_fffbc216 ; je 0xfffbc216
+push eax
+mov eax, dword [ebp - 0x288]
+push 0
+mov ecx, dword [ebp - 0x270]
+mov edx, dword [ebp - 0x274]
+movzx eax, word [eax - 6]
+push eax
+mov eax, dword [ebp + 8]
+push 2
+call fcn_fffaa505 ; call 0xfffaa505
+jmp short loc_fffbc239 ; jmp 0xfffbc239
+
+loc_fffbc216: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0x278]
+push eax
+mov eax, dword [ebp - 0x288]
+mov edx, dword [ebp - 0x274]
+movzx eax, word [eax - 8]
+push eax
+mov eax, dword [ebp + 8]
+push 1
+call fcn_fffafd52 ; call 0xfffafd52
+
+loc_fffbc239: ; not directly referenced
+add esp, 0x10
+cmp dword [ebp - 0x280], 0
+je short loc_fffbc26a ; je 0xfffbc26a
+push eax
+mov ecx, dword [ebp - 0x278]
+push eax
+mov eax, dword [ebp - 0x288]
+mov edx, dword [ebp - 0x274]
+movzx eax, word [eax]
+push eax
+mov eax, dword [ebp + 8]
+push 5
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffbc26a: ; not directly referenced
+imul esi, dword [ebp - 0x274], 9
+xor ebx, ebx
+
+loc_fffbc273: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae loc_fffbc18c ; jae 0xfffbc18c
+movzx eax, bl
+lea ecx, [esi + eax]
+mov edx, dword [ebp + ecx*4 - 0xa8]
+mov ecx, dword [ebp + ecx*4 - 0x60]
+sub ecx, edx
+sub ecx, 0x21
+cmp ecx, 0x3e
+jbe short loc_fffbc2ad ; jbe 0xfffbc2ad
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x1965], 0
+jne loc_fffbccc1 ; jne 0xfffbccc1
+
+loc_fffbc2ad: ; not directly referenced
+cmp byte [ebp - 0x29c], 0x10
+jne short loc_fffbc303 ; jne 0xfffbc303
+test bl, 1
+je short loc_fffbc303 ; je 0xfffbc303
+lea ecx, [ebx - 1]
+movzx ecx, cl
+lea edi, [esi + ecx]
+mov edi, dword [ebp + edi*4 - 0xa8]
+add edi, 0x40
+cmp edx, edi
+jle short loc_fffbc2df ; jle 0xfffbc2df
+lea edi, [esi + eax]
+add edx, 0xffffff80
+mov dword [ebp + edi*4 - 0xa8], edx
+
+loc_fffbc2df: ; not directly referenced
+add ecx, esi
+lea edx, [esi + eax]
+mov ecx, dword [ebp + ecx*4 - 0xa8]
+mov edi, dword [ebp + edx*4 - 0xa8]
+sub ecx, 0x40
+cmp edi, ecx
+jge short loc_fffbc303 ; jge 0xfffbc303
+sub edi, 0xffffff80
+mov dword [ebp + edx*4 - 0xa8], edi
+
+loc_fffbc303: ; not directly referenced
+cmp dword [ebp - 0x284], 0x40650
+jne short loc_fffbc31a ; jne 0xfffbc31a
+lea edx, [esi + eax]
+add dword [ebp + edx*4 - 0xa8], 0x40
+
+loc_fffbc31a: ; not directly referenced
+lea edx, [esi + eax]
+mov ecx, dword [ebp + edx*4 - 0xa8]
+movzx edx, bl
+inc ebx
+add edx, dword [ebp - 0x2a8]
+add edx, edx
+add edx, dword [ebp - 0x28c]
+mov word [edx + 0x121], cx
+add ecx, 0x20
+mov word [edx + 0x169], cx
+mov ecx, dword [ebp - 0x270]
+push edi
+mov edx, dword [ebp - 0x274]
+push 0
+push 0xff
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0x10
+jmp near loc_fffbc273 ; jmp 0xfffbc273
+
+loc_fffbc36c: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+je short loc_fffbc3e7 ; je 0xfffbc3e7
+
+loc_fffbc378: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffbc36c ; jne 0xfffbc36c
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [esi]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov byte [ebp - 0x270], 0
+
+loc_fffbc3ad: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x270]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffbc36c ; jae 0xfffbc36c
+movzx edi, byte [ebp - 0x270]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+mov ecx, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [esi + edi*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x270]
+jmp short loc_fffbc3ad ; jmp 0xfffbc3ad
+
+loc_fffbc3e7: ; not directly referenced
+cmp dword [ebp - 0x27c], 0
+je loc_fffbc568 ; je 0xfffbc568
+
+loc_fffbc3f4: ; not directly referenced
+mov esi, dword [ebp + 8]
+lea edi, [ebp - 0x1f4]
+mov ecx, 0xb
+mov al, byte [ebp - 0x2a4]
+mov byte [ebp - 0x25f], 0
+mov byte [ebp - 0x25e], 1
+mov byte [ebp - 0x25d], 0xff
+mov byte [esi + 0x247b], al
+xor eax, eax
+mov esi, ref_fffd58d8 ; mov esi, 0xfffd58d8
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0x25a]
+mov eax, dword [ebp + 8]
+mov word [ebp - 0x1e6], 0x3ff
+mov word [ebp - 0x1ca], 1
+mov byte [ebp - 0x25c], 2
+mov ebx, dword [eax + 0x2443]
+lea eax, [ebp - 0x243]
+mov byte [ebp - 0x25b], 3
+mov cl, 7
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea edi, [ebp - 0x253]
+mov esi, ref_fffd58e0 ; mov esi, 0xfffd58e0
+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 cl, 7
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea edi, [ebp - 0x220]
+mov esi, ref_fffd58e8 ; mov esi, 0xfffd58e8
+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 cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x214]
+mov esi, ref_fffd58f4 ; mov esi, 0xfffd58f4
+mov byte [ebp - 0x239], 0xff
+mov byte [ebp - 0x238], 0
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x233]
+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
+push esi
+push 8
+push eax
+push edi
+lea esi, [ebp - 0x23b]
+mov dword [ebp - 0x229], 0
+mov dword [ebp - 0x225], 3
+mov byte [ebp - 0x221], 0
+call dword [ebx + 0x58] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0x24c]
+push eax
+call dword [ebx + 0x5c] ; ucall
+mov eax, dword [ebp + 8]
+add esp, 0x10
+cmp dword [eax + 0x2480], 3
+sete al
+xor ebx, ebx
+movzx eax, al
+mov dword [ebp - 0x2a4], eax
+jmp short loc_fffbc58d ; jmp 0xfffbc58d
+
+loc_fffbc568: ; not directly referenced
+cmp dword [ebp - 0x280], 0
+mov eax, dword [ebp + 8]
+je short loc_fffbc57b ; je 0xfffbc57b
+call fcn_fffac67c ; call 0xfffac67c
+jmp short loc_fffbc580 ; jmp 0xfffbc580
+
+loc_fffbc57b: ; not directly referenced
+call fcn_fffb1a87 ; call 0xfffb1a87
+
+loc_fffbc580: ; not directly referenced
+test eax, eax
+je loc_fffbc3f4 ; je 0xfffbc3f4
+jmp near loc_fffbcdc5 ; jmp 0xfffbcdc5
+
+loc_fffbc58d: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, esi
+add esi, 2
+push ecx
+push ecx
+mov ecx, edi
+push ebx
+inc ebx
+push 8
+call fcn_fffa81d3 ; call 0xfffa81d3
+add esp, 0x10
+cmp ebx, 4
+jne short loc_fffbc58d ; jne 0xfffbc58d
+mov eax, dword [ebp + 8]
+lea edx, [ebp - 0x220]
+call fcn_fffa665e ; call 0xfffa665e
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248d]
+mov byte [ebp - 0x2b8], al
+mov eax, dword [ebp + 8]
+movzx ecx, byte [eax + 0x2488]
+mov eax, 1
+shl eax, cl
+xor ecx, ecx
+dec eax
+mov word [ebp - 0x2a8], ax
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x248e]
+lea eax, [ebp - 0x22b]
+push 0
+push 0
+push 0
+push eax
+push 0
+lea eax, [ebp - 0x1f4]
+push eax
+mov eax, dword [ebp + 8]
+push 4
+push 2
+call fcn_fffb20e5 ; call 0xfffb20e5
+mov eax, dword [ebp + 8]
+add esp, 0x20
+cmp dword [eax + 0x3756], 2
+jne short loc_fffbc62c ; jne 0xfffbc62c
+mov ecx, 0x8049
+mov edx, 0x4040
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbc62c: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffbc647 ; jne 0xfffbc647
+mov ecx, 0x8049
+mov edx, 0x4440
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbc647: ; not directly referenced
+mov eax, dword [ebp + 8]
+lea esi, [ebp - 0x24c]
+mov dword [ebp - 0x278], 0
+add eax, 0x3756
+mov dword [ebp - 0x2ac], eax
+mov dword [ebp - 0x2b0], eax
+
+loc_fffbc66b: ; not directly referenced
+mov cl, byte [ebp - 0x278]
+xor edx, edx
+mov dword [ebp - 0x27c], 1
+mov eax, dword [ebp + 8]
+shl dword [ebp - 0x27c], cl
+mov edi, dword [ebp - 0x27c]
+mov ecx, edi
+call fcn_fffaac43 ; call 0xfffaac43
+mov ecx, edi
+mov edx, 1
+mov byte [ebp - 0x266], 0
+mov word [ebp - 0x264], 0
+mov bl, al
+mov eax, dword [ebp + 8]
+call fcn_fffaac43 ; call 0xfffaac43
+mov byte [ebp - 0x265], 0
+mov word [ebp - 0x262], 0
+or eax, ebx
+mov ebx, edi
+test byte [ebp - 0x2b8], bl
+je loc_fffbc971 ; je 0xfffbc971
+mov edx, dword [ebp - 0x278]
+movzx eax, al
+mov dword [ebp - 0x274], 3
+mov dword [ebp - 0x290], 2
+mov dword [ebp - 0x2bc], eax
+mov edi, edx
+add edi, edx
+mov ecx, edi
+mov dword [ebp - 0x2b4], edi
+lea edi, [ebp - 0x25f]
+mov dword [ebp - 0x284], edi
+mov edi, edx
+and edx, 1
+imul ebx, edx, 0x18
+mov edx, edi
+shr dl, 1
+movzx edx, dl
+shl dword [ebp - 0x274], cl
+not dword [ebp - 0x274]
+shl dword [ebp - 0x290], cl
+lea edi, [edi + edi*8]
+mov dword [ebp - 0x29c], ebx
+imul ebx, edx, 0x128
+mov dword [ebp - 0x28c], edi
+mov dword [ebp - 0x298], ebx
+
+loc_fffbc74b: ; not directly referenced
+mov eax, dword [ebp - 0x2ac]
+xor ebx, ebx
+mov dword [ebp - 0x280], eax
+
+loc_fffbc759: ; not directly referenced
+mov edi, dword [ebp - 0x280]
+mov al, byte [ebp - 0x27c]
+test byte [edi + 0xc4], al
+jne loc_fffbc9df ; jne 0xfffbc9df
+
+loc_fffbc771: ; not directly referenced
+inc ebx
+add dword [ebp - 0x280], 0x13c3
+cmp ebx, 2
+jne short loc_fffbc759 ; jne 0xfffbc759
+mov al, byte [ebp - 0x27c]
+cmp dword [ebp - 0x2a4], 0
+mov byte [ebp - 0x294], al
+jne short loc_fffbc800 ; jne 0xfffbc800
+mov eax, dword [ebp + 8]
+xor bl, bl
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov eax, dword [ebp + 8]
+lea edi, [eax + 0x381a]
+
+loc_fffbc7a9: ; not directly referenced
+mov al, byte [ebp - 0x294]
+test byte [edi], al
+je short loc_fffbc7e7 ; je 0xfffbc7e7
+push eax
+mov ecx, dword [ebp - 0x298]
+mov edx, ebx
+push eax
+mov eax, dword [ebp - 0x29c]
+add eax, edi
+mov ax, word [eax + ecx + 0x11a7]
+mov ecx, dword [ebp - 0x27c]
+or ah, 1
+movzx eax, ax
+push eax
+mov eax, dword [ebp + 8]
+push 0
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffbc7e7: ; not directly referenced
+inc ebx
+add edi, 0x13c3
+cmp ebx, 2
+jne short loc_fffbc7a9 ; jne 0xfffbc7a9
+mov eax, dword [ebp + 8]
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffbc800: ; not directly referenced
+lea edi, [ebp - 0x253]
+
+loc_fffbc806: ; not directly referenced
+push 0
+xor ebx, ebx
+push 0
+push 0
+push 0
+push 0
+push dword [ebp - 0x278]
+push 0
+push 1
+push 0
+movsx eax, byte [edi]
+push eax
+push 2
+push dword [ebp + 8]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x2c
+mov edx, dword [ebp - 0x2bc]
+push 0
+xor ecx, ecx
+push 1
+lea eax, [ebp - 0x25a]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb0f94 ; call 0xfffb0f94
+lea eax, [ebp - 0x206]
+add esp, 0x10
+mov dword [ebp - 0x288], eax
+mov dword [ebp - 0x280], 1
+
+loc_fffbc863: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edx, dword [ebp + 8]
+mov cl, byte [ebp - 0x294]
+test byte [edx + eax + 0x381a], cl
+je short loc_fffbc8e7 ; je 0xfffbc8e7
+mov eax, dword [ebp + 8]
+mov edx, ebx
+shl edx, 0xa
+add edx, 0x40ec
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp + 8]
+and eax, dword [ebp - 0x2a8]
+mov cl, byte [ecx + 0x2488]
+mov word [ebp - 0x270], ax
+mov ax, word [ebp + ebx*2 - 0x264]
+or word [ebp - 0x270], ax
+mov byte [ebp - 0x2a0], cl
+xor ecx, ecx
+
+loc_fffbc8bb: ; not directly referenced
+cmp byte [ebp - 0x2a0], cl
+ja loc_fffbcb02 ; ja 0xfffbcb02
+mov eax, dword [ebp - 0x2a8]
+cmp word [ebp + ebx*2 - 0x264], ax
+mov eax, 0
+cmove eax, dword [ebp - 0x280]
+mov dword [ebp - 0x280], eax
+
+loc_fffbc8e7: ; not directly referenced
+inc ebx
+add dword [ebp - 0x288], 9
+cmp ebx, 2
+jne loc_fffbc863 ; jne 0xfffbc863
+cmp dword [ebp - 0x280], 1
+jne loc_fffbcb38 ; jne 0xfffbcb38
+
+loc_fffbc905: ; not directly referenced
+lea eax, [ebp - 0x206]
+xor edi, edi
+mov dword [ebp - 0x2a0], eax
+mov eax, dword [ebp - 0x2b0]
+mov dword [ebp - 0x28c], eax
+mov eax, dword [ebp - 0x2ac]
+mov dword [ebp - 0x288], eax
+imul eax, dword [ebp - 0x278], 9
+mov dword [ebp - 0x2c8], eax
+
+loc_fffbc938: ; not directly referenced
+mov ebx, dword [ebp - 0x288]
+mov al, byte [ebp - 0x294]
+test byte [ebx + 0xc4], al
+jne loc_fffbcb68 ; jne 0xfffbcb68
+
+loc_fffbc950: ; not directly referenced
+inc edi
+add dword [ebp - 0x288], 0x13c3
+add dword [ebp - 0x28c], 0x13c3
+add dword [ebp - 0x2a0], 9
+cmp edi, 2
+jne short loc_fffbc938 ; jne 0xfffbc938
+
+loc_fffbc971: ; not directly referenced
+inc dword [ebp - 0x278]
+add dword [ebp - 0x2b0], 0x12
+cmp dword [ebp - 0x278], 4
+jne loc_fffbc66b ; jne 0xfffbc66b
+push eax
+mov ecx, 0x1010101
+push eax
+mov eax, dword [ebp + 8]
+xor edx, edx
+push 0
+push 8
+call fcn_fffa7fde ; call 0xfffa7fde
+mov eax, dword [ebp + 8]
+lea edx, [ebp - 0x214]
+call fcn_fffa665e ; call 0xfffa665e
+mov eax, dword [ebp + 8]
+add esp, 0x10
+mov edx, 0x3670
+cmp dword [eax + 0x188b], 1
+mov eax, 0x367c
+cmove edx, eax
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+call fcn_fffb0e8a ; call 0xfffb0e8a
+jmp near loc_fffbcdc5 ; jmp 0xfffbcdc5
+
+loc_fffbc9df: ; not directly referenced
+mov eax, dword [ebp - 0x284]
+movsx eax, byte [eax]
+cmp al, 2
+jle short loc_fffbca0d ; jle 0xfffbca0d
+mov edx, dword [ebp - 0x274]
+sub eax, 2
+and edx, dword [esi + ebx*4]
+or edx, dword [ebp - 0x290]
+shl eax, 7
+mov word [ebp - 0x270], ax
+mov dword [esi + ebx*4], edx
+jmp short loc_fffbca4a ; jmp 0xfffbca4a
+
+loc_fffbca0d: ; not directly referenced
+test al, al
+jns short loc_fffbca2b ; jns 0xfffbca2b
+mov edi, dword [ebp - 0x274]
+mov word [ebp - 0x270], ax
+and dword [esi + ebx*4], edi
+shl word [ebp - 0x270], 7
+jmp short loc_fffbca4a ; jmp 0xfffbca4a
+
+loc_fffbca2b: ; not directly referenced
+mov cl, byte [ebp - 0x2b4]
+mov edx, dword [ebp - 0x274]
+and edx, dword [esi + ebx*4]
+mov word [ebp - 0x270], 0
+shl eax, cl
+or edx, eax
+mov dword [esi + ebx*4], edx
+
+loc_fffbca4a: ; not directly referenced
+mov eax, dword [ebp - 0x280]
+add eax, dword [ebp - 0x28c]
+mov byte [ebp - 0x288], 0
+mov dword [ebp - 0x294], eax
+
+loc_fffbca63: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov al, byte [ebp - 0x288]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffbcae8 ; jae 0xfffbcae8
+movzx ecx, byte [ebp - 0x288]
+mov eax, dword [ebp - 0x28c]
+mov edi, dword [ebp - 0x280]
+mov edx, dword [ebp - 0x294]
+lea eax, [ecx + eax + 0x90]
+movzx edi, word [edi + eax*2 + 1]
+movsx eax, word [ebp - 0x270]
+movzx edx, byte [ecx + edx + 0x24d]
+add edi, eax
+lea eax, [edi + 0x20]
+and edi, 0x1ff
+and eax, 0x1ff
+and edx, 0x3f
+shl edi, 9
+shl edx, 0x14
+or eax, edi
+or eax, edx
+push edx
+mov edx, ebx
+push eax
+mov eax, dword [ebp + 8]
+push 3
+push ecx
+mov ecx, dword [ebp - 0x278]
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0x10
+inc byte [ebp - 0x288]
+jmp near loc_fffbca63 ; jmp 0xfffbca63
+
+loc_fffbcae8: ; not directly referenced
+mov ecx, dword [esi + ebx*4]
+mov edx, ebx
+mov eax, edi
+shl edx, 0xa
+add edx, 0x40d0
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffbc771 ; jmp 0xfffbc771
+
+loc_fffbcb02: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test word [ebp - 0x270], dx
+jne short loc_fffbcb32 ; jne 0xfffbcb32
+or word [ebp + ebx*2 - 0x264], dx
+mov edx, dword [ebp - 0x284]
+mov eax, dword [ebp - 0x288]
+mov dl, byte [edx]
+add byte [ebp + ebx - 0x266], dl
+mov byte [eax + ecx], dl
+
+loc_fffbcb32: ; not directly referenced
+inc ecx
+jmp near loc_fffbc8bb ; jmp 0xfffbc8bb
+
+loc_fffbcb38: ; not directly referenced
+inc edi
+cmp edi, esi
+jne loc_fffbc806 ; jne 0xfffbc806
+inc dword [ebp - 0x284]
+lea eax, [ebp - 0x25a]
+cmp dword [ebp - 0x284], eax
+jne loc_fffbc74b ; jne 0xfffbc74b
+mov dword [ebp - 0x280], 0
+jmp near loc_fffbc905 ; jmp 0xfffbc905
+
+loc_fffbcb68: ; not directly referenced
+cmp dword [ebp - 0x280], 0
+jne short loc_fffbcb81 ; jne 0xfffbcb81
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x1965], 0
+jne loc_fffbccc1 ; jne 0xfffbccc1
+
+loc_fffbcb81: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x2488]
+mov bl, al
+mov byte [ebp - 0x2bc], al
+movsx eax, byte [ebp + edi - 0x266]
+mov dl, bl
+shr dl, 1
+movsx ecx, bl
+movzx edx, dl
+xor ebx, ebx
+add eax, edx
+cdq
+idiv ecx
+mov byte [ebp - 0x270], al
+
+loc_fffbcbb1: ; not directly referenced
+cmp byte [ebp - 0x270], 2
+jle short loc_fffbcbe2 ; jle 0xfffbcbe2
+mov eax, dword [ebp - 0x274]
+and eax, dword [esi + edi*4]
+or eax, dword [ebp - 0x290]
+mov dword [esi + edi*4], eax
+movsx eax, byte [ebp - 0x270]
+sub eax, 2
+shl eax, 7
+mov word [ebp - 0x284], ax
+jmp short loc_fffbcc33 ; jmp 0xfffbcc33
+
+loc_fffbcbe2: ; not directly referenced
+cmp byte [ebp - 0x270], 0
+jns short loc_fffbcc0d ; jns 0xfffbcc0d
+mov eax, dword [ebp - 0x274]
+and dword [esi + edi*4], eax
+movsx ax, byte [ebp - 0x270]
+mov word [ebp - 0x284], ax
+shl word [ebp - 0x284], 7
+jmp short loc_fffbcc33 ; jmp 0xfffbcc33
+
+loc_fffbcc0d: ; not directly referenced
+movsx eax, byte [ebp - 0x270]
+mov cl, byte [ebp - 0x2b4]
+mov edx, dword [ebp - 0x274]
+and edx, dword [esi + edi*4]
+mov word [ebp - 0x284], 0
+shl eax, cl
+or eax, edx
+mov dword [esi + edi*4], eax
+
+loc_fffbcc33: ; not directly referenced
+movsx ecx, word [ebp - 0x284]
+xor eax, eax
+movsx edx, byte [ebp - 0x270]
+mov dword [ebp - 0x2c0], ecx
+mov dword [ebp - 0x2c4], edx
+
+loc_fffbcc4f: ; not directly referenced
+cmp byte [ebp - 0x2bc], al
+jbe short loc_fffbcccb ; jbe 0xfffbcccb
+mov edx, dword [ebp - 0x2a0]
+mov ecx, dword [ebp - 0x28c]
+movsx edx, byte [edx + eax]
+sub edx, dword [ebp - 0x2c4]
+movzx ecx, word [ecx + eax*2 + 0x169]
+shl edx, 7
+add edx, dword [ebp - 0x2c0]
+add ecx, edx
+cmp ecx, 0x1bf
+jle short loc_fffbcc91 ; jle 0xfffbcc91
+inc ebx
+inc byte [ebp - 0x270]
+jmp short loc_fffbccae ; jmp 0xfffbccae
+
+loc_fffbcc91: ; not directly referenced
+mov ecx, dword [ebp - 0x28c]
+movzx ecx, word [ecx + eax*2 + 0x121]
+inc eax
+add edx, ecx
+cmp edx, 0x5f
+jg short loc_fffbcc4f ; jg 0xfffbcc4f
+dec byte [ebp - 0x270]
+inc ebx
+
+loc_fffbccae: ; not directly referenced
+cmp bl, 3
+jbe loc_fffbcbb1 ; jbe 0xfffbcbb1
+
+loc_fffbccb7: ; not directly referenced
+mov eax, 1
+jmp near loc_fffbcdc5 ; jmp 0xfffbcdc5
+
+loc_fffbccc1: ; not directly referenced
+mov eax, 8
+jmp near loc_fffbcdc5 ; jmp 0xfffbcdc5
+
+loc_fffbcccb: ; not directly referenced
+cmp bl, 3
+ja short loc_fffbccb7 ; ja 0xfffbccb7
+lea eax, [edi + edi*8]
+xor ebx, ebx
+lea ecx, [ebp - 0x18]
+add eax, ecx
+mov dword [ebp - 0x2c0], eax
+
+loc_fffbcce0: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae short loc_fffbcd5b ; jae 0xfffbcd5b
+mov eax, dword [ebp - 0x2c8]
+movzx ecx, bl
+inc ebx
+lea edx, [ecx + eax]
+mov eax, dword [ebp - 0x2c0]
+add edx, edx
+add edx, dword [ebp - 0x288]
+movsx eax, byte [ecx + eax - 0x1ee]
+mov dword [ebp - 0x2bc], edx
+movsx edx, byte [ebp - 0x270]
+sub eax, edx
+movsx edx, word [ebp - 0x284]
+shl eax, 7
+add eax, edx
+mov edx, dword [ebp - 0x2bc]
+add word [edx + 0x169], ax
+add word [edx + 0x121], ax
+mov edx, edi
+push eax
+mov eax, dword [ebp + 8]
+push 0
+push 0xff
+push ecx
+mov ecx, dword [ebp - 0x278]
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0x10
+jmp short loc_fffbcce0 ; jmp 0xfffbcce0
+
+loc_fffbcd5b: ; not directly referenced
+mov ecx, dword [esi + edi*4]
+mov edx, edi
+shl edx, 0xa
+add edx, 0x40d0
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x2a4], 0
+jne loc_fffbc950 ; jne 0xfffbc950
+mov eax, dword [ebp - 0x288]
+mov ebx, dword [ebp - 0x298]
+add eax, dword [ebp - 0x29c]
+push edx
+mov ecx, dword [ebp - 0x27c]
+push edx
+mov edx, edi
+mov ax, word [eax + ebx + 0x126b]
+or ah, 1
+movzx eax, ax
+push eax
+mov eax, dword [ebp + 8]
+push 0
+call fcn_fffafd52 ; call 0xfffafd52
+mov eax, dword [ebp + 8]
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+add esp, 0x10
+jmp near loc_fffbc950 ; jmp 0xfffbc950
+
+loc_fffbcdc5: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbcdcd: ; not directly referenced
+push ebp
+mov ecx, 3
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd58e8 ; mov esi, 0xfffd58e8
+push ebx
+sub esp, 0x13c0
+mov eax, dword [ebp + 8]
+lea edi, [ebp - 0x1360]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0x1354]
+mov esi, ref_fffd58f4 ; mov esi, 0xfffd58f4
+mov byte [ebp - 0x1362], 0
+mov eax, dword [eax + 0x5edc]
+mov dword [ebp - 0x1384], eax
+mov eax, dword [ebp + 8]
+mov cl, 3
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov eax, dword [eax + 0x2443]
+mov edi, eax
+mov dword [ebp - 0x1394], eax
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x2480]
+xor eax, eax
+cmp edx, 1
+sete al
+mov dword [ebp - 0x1398], eax
+xor eax, eax
+cmp edx, 2
+sete al
+cmp edx, 3
+mov dword [ebp - 0x1370], eax
+mov dl, 0xaa
+mov al, 0x55
+cmovne eax, edx
+xor ebx, ebx
+mov byte [ebp - 0x1363], al
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x188b]
+push 1
+push 1
+mov dword [ebp - 0x139c], eax
+lea eax, [ebp - 0x1361]
+push eax
+mov eax, edi
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+
+loc_fffbce7a: ; not directly referenced
+push eax
+push eax
+mov eax, dword [ebp + 8]
+push ebx
+inc ebx
+push 1
+lea ecx, [ebp - 0x1362]
+lea edx, [ebp - 0x1363]
+call fcn_fffa81d3 ; call 0xfffa81d3
+add esp, 0x10
+cmp ebx, 4
+jne short loc_fffbce7a ; jne 0xfffbce7a
+mov eax, dword [ebp + 8]
+lea edx, [ebp - 0x1360]
+xor esi, esi
+call fcn_fffa665e ; call 0xfffa665e
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248e]
+mov byte [ebp - 0x1374], al
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x248d]
+mov byte [ebp - 0x1375], al
+mov eax, dword [ebp + 8]
+add eax, 0x3756
+mov dword [ebp - 0x1388], eax
+mov edi, eax
+
+loc_fffbceda: ; not directly referenced
+cmp dword [edi], 2
+jne loc_fffbcfe7 ; jne 0xfffbcfe7
+cmp dword [ebp - 0x139c], 1
+jne short loc_fffbcf28 ; jne 0xfffbcf28
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, esi
+call fcn_fffa7288 ; call 0xfffa7288
+imul edx, esi, 0xcc
+mov ecx, dword [ebp - 0x1384]
+mov ecx, dword [ecx + edx + 0x1c]
+mov edx, eax
+mov eax, dword [ebp + 8]
+or ecx, 0x40000000
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffbcf28: ; not directly referenced
+xor ebx, ebx
+
+loc_fffbcf2a: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae short loc_fffbcf8d ; jae 0xfffbcf8d
+movzx eax, bl
+mov dword [ebp - 0x136c], 0
+mov dword [ebp - 0x137c], eax
+
+loc_fffbcf48: ; not directly referenced
+mov cl, byte [ebp - 0x136c]
+mov eax, 1
+shl eax, cl
+test byte [edi + 0xc4], al
+je short loc_fffbcf7b ; je 0xfffbcf7b
+push eax
+mov ecx, dword [ebp - 0x136c]
+mov edx, esi
+push 0x20
+mov eax, dword [ebp + 8]
+push 5
+push dword [ebp - 0x137c]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffbcf7b: ; not directly referenced
+inc dword [ebp - 0x136c]
+cmp dword [ebp - 0x136c], 4
+jne short loc_fffbcf48 ; jne 0xfffbcf48
+inc ebx
+jmp short loc_fffbcf2a ; jmp 0xfffbcf2a
+
+loc_fffbcf8d: ; not directly referenced
+cmp dword [ebp - 0x1370], 0
+je short loc_fffbcfce ; je 0xfffbcfce
+mov eax, dword [ebp + 8]
+lea ebx, [esi*8 + 0x4980]
+mov edx, ebx
+call fcn_fffae548 ; call 0xfffae548
+mov dword [ebp + esi*8 - 0x1348], eax
+push eax
+push eax
+mov eax, dword [ebp + 8]
+push 0xfb73ea62
+push 0xd951c840
+mov dword [ebp + esi*8 - 0x1344], edx
+mov edx, ebx
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+
+loc_fffbcfce: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, esi
+shl edx, 0xa
+add edx, 0x4020
+call fcn_fffae52a ; call 0xfffae52a
+mov dword [ebp - 0x138c], eax
+
+loc_fffbcfe7: ; not directly referenced
+inc esi
+add edi, 0x13c3
+cmp esi, 2
+jne loc_fffbceda ; jne 0xfffbceda
+cmp dword [ebp - 0x1370], 0
+je short loc_fffbd01d ; je 0xfffbd01d
+or dword [ebp - 0x138c], 0x80
+mov edx, 0x4c20
+mov ecx, dword [ebp - 0x138c]
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffbd01d: ; not directly referenced
+movzx eax, byte [ebp - 0x1374]
+mov dword [ebp - 0x13a0], eax
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffb27d5 ; call 0xfffb27d5
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffbd04f ; jne 0xfffbd04f
+mov ecx, 0x8049
+mov edx, 0x4040
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbd04f: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffbd06a ; jne 0xfffbd06a
+mov ecx, 0x8049
+mov edx, 0x4440
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbd06a: ; not directly referenced
+movzx eax, byte [ebp - 0x1375]
+mov dword [ebp - 0x1374], 0
+mov dword [ebp - 0x1380], 0
+mov dword [ebp - 0x13c8], eax
+
+loc_fffbd08b: ; not directly referenced
+mov edi, dword [ebp - 0x1374]
+mov esi, dword [ebp - 0x13c8]
+mov eax, edi
+bt esi, edi
+mov byte [ebp - 0x13b8], al
+jae loc_fffbd61a ; jae 0xfffbd61a
+mov dword [ebp - 0x136c], 1
+mov ecx, edi
+xor ebx, ebx
+shl dword [ebp - 0x136c], cl
+mov al, byte [ebp - 0x136c]
+mov byte [ebp - 0x1375], al
+mov eax, edi
+mov edi, dword [ebp - 0x1388]
+shr al, 1
+movzx eax, al
+mov dword [ebp - 0x1390], eax
+mov eax, dword [ebp - 0x13b8]
+and eax, 1
+mov dword [ebp - 0x137c], eax
+
+loc_fffbd0ea: ; not directly referenced
+mov ecx, dword [ebp - 0x136c]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+call fcn_fffaac43 ; call 0xfffaac43
+mov al, byte [ebp - 0x1375]
+test byte [edi + 0xc4], al
+je short loc_fffbd17f ; je 0xfffbd17f
+cmp dword [ebp - 0x1398], 0
+je short loc_fffbd117 ; je 0xfffbd117
+push ecx
+push ecx
+push 4
+jmp short loc_fffbd144 ; jmp 0xfffbd144
+
+loc_fffbd117: ; not directly referenced
+cmp dword [ebp - 0x1370], 0
+je short loc_fffbd159 ; je 0xfffbd159
+imul edx, dword [ebp - 0x137c], 0x18
+imul eax, dword [ebp - 0x1390], 0x128
+add eax, edx
+mov ax, word [edi + eax + 0x1271]
+push edx
+push edx
+or eax, 4
+movzx eax, ax
+push eax
+
+loc_fffbd144: ; not directly referenced
+mov ecx, dword [ebp - 0x136c]
+mov edx, ebx
+mov eax, dword [ebp + 8]
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffbd159: ; not directly referenced
+mov esi, ebx
+mov eax, dword [ebp + 8]
+shl esi, 0xa
+add esi, 0x4194
+mov edx, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, esi
+or eax, 0x80000000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbd17f: ; not directly referenced
+inc ebx
+add edi, 0x13c3
+cmp ebx, 2
+jne loc_fffbd0ea ; jne 0xfffbd0ea
+mov dword [ebp - 0x137c], 0
+
+loc_fffbd199: ; not directly referenced
+push 1
+mov eax, dword [ebp - 0x137c]
+xor edi, edi
+push 0
+push 0
+push 0
+push 0
+sub eax, 0x20
+push 0
+push 0
+push 1
+push 0
+push eax
+push 1
+push dword [ebp + 8]
+call fcn_fffcc900 ; call 0xfffcc900
+mov eax, dword [ebp + 8]
+add esp, 0x2c
+mov edx, dword [ebp - 0x13a0]
+movzx ecx, byte [eax + 0x248b]
+lea eax, [ebp - 0x1361]
+push 0
+push 1
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+
+loc_fffbd1ea: ; not directly referenced
+imul eax, edi, 0x13c3
+mov esi, dword [ebp + 8]
+mov bl, byte [ebp - 0x1375]
+test byte [esi + eax + 0x381a], bl
+je loc_fffbd2de ; je 0xfffbd2de
+mov ebx, edi
+mov eax, esi
+shl ebx, 0xa
+lea edx, [ebx + 0x40e0]
+call fcn_fffae548 ; call 0xfffae548
+mov dword [ebp - 0x13a8], eax
+lea eax, [ebx + 0x40e8]
+xor ebx, ebx
+mov dword [ebp - 0x13bc], eax
+lea eax, [edi + edi*8]
+mov dword [ebp - 0x13a4], edx
+mov dword [ebp - 0x13c0], eax
+
+loc_fffbd23b: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp bl, byte [eax + 0x2488]
+jae loc_fffbd2de ; jae 0xfffbd2de
+cmp bl, 7
+ja short loc_fffbd273 ; ja 0xfffbd273
+push eax
+movzx eax, bl
+shl eax, 3
+push eax
+mov eax, dword [ebp - 0x1394]
+push dword [ebp - 0x13a4]
+push dword [ebp - 0x13a8]
+call dword [eax + 0x6c] ; ucall
+add esp, 0x10
+mov cl, al
+jmp short loc_fffbd283 ; jmp 0xfffbd283
+
+loc_fffbd273: ; not directly referenced
+mov edx, dword [ebp - 0x13bc]
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+mov cl, al
+
+loc_fffbd283: ; not directly referenced
+movzx eax, cl
+mov dword [ebp - 0x13c4], ecx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov ecx, dword [ebp - 0x13c4]
+cmp dword [ebp - 0x1380], 0
+jne short loc_fffbd2ad ; jne 0xfffbd2ad
+xor edx, edx
+cmp al, 6
+setbe dl
+mov dword [ebp - 0x1380], edx
+
+loc_fffbd2ad: ; not directly referenced
+movzx esi, bl
+mov edx, 1
+test cl, cl
+je short loc_fffbd2c2 ; je 0xfffbd2c2
+xor edx, edx
+cmp al, 7
+sete dl
+add edx, edx
+
+loc_fffbd2c2: ; not directly referenced
+add esi, dword [ebp - 0x13c0]
+inc ebx
+shl esi, 6
+add esi, dword [ebp - 0x137c]
+mov dword [ebp + esi*4 - 0x1218], edx
+jmp near loc_fffbd23b ; jmp 0xfffbd23b
+
+loc_fffbd2de: ; not directly referenced
+inc edi
+cmp edi, 2
+jne loc_fffbd1ea ; jne 0xfffbd1ea
+mov eax, dword [ebp + 8]
+call fcn_fffb0e8a ; call 0xfffb0e8a
+inc dword [ebp - 0x137c]
+cmp dword [ebp - 0x137c], 0x40
+jne loc_fffbd199 ; jne 0xfffbd199
+mov eax, dword [ebp - 0x1384]
+xor di, di
+mov ebx, dword [ebp - 0x1388]
+lea esi, [eax + 0x70]
+mov eax, dword [ebp - 0x13b8]
+and eax, 1
+mov dword [ebp - 0x13b8], eax
+
+loc_fffbd324: ; not directly referenced
+mov al, byte [ebp - 0x1375]
+test byte [ebx + 0xc4], al
+je loc_fffbd3cb ; je 0xfffbd3cb
+mov eax, edi
+shl eax, 0xa
+add eax, 0x4194
+mov edx, eax
+mov dword [ebp - 0x137c], eax
+mov eax, dword [ebp + 8]
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, dword [ebp - 0x137c]
+and eax, 0x7fffffff
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x1398], 0
+je short loc_fffbd374 ; je 0xfffbd374
+push eax
+push eax
+push 0
+jmp short loc_fffbd39b ; jmp 0xfffbd39b
+
+loc_fffbd374: ; not directly referenced
+cmp dword [ebp - 0x1370], 0
+je short loc_fffbd3b0 ; je 0xfffbd3b0
+push eax
+push eax
+imul edx, dword [ebp - 0x13b8], 0x18
+imul eax, dword [ebp - 0x1390], 0x128
+add eax, edx
+movzx eax, word [ebx + eax + 0x1271]
+push eax
+
+loc_fffbd39b: ; not directly referenced
+mov ecx, dword [ebp - 0x136c]
+mov edx, edi
+mov eax, dword [ebp + 8]
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffbd3b0: ; not directly referenced
+push eax
+mov eax, dword [ebp + 8]
+push 0
+movzx eax, byte [eax + 0x2488]
+push eax
+mov eax, dword [ebp - 0x1394]
+push esi
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbd3cb: ; not directly referenced
+inc edi
+add esi, 0xcc
+add ebx, 0x13c3
+cmp edi, 2
+jne loc_fffbd324 ; jne 0xfffbd324
+lea eax, [ebp - 0x1298]
+mov edx, 0xffffffe0
+mov dword [ebp - 0x13b8], eax
+
+loc_fffbd3f2: ; not directly referenced
+mov eax, dword [ebp + 8]
+lea ecx, [ebp - 0x12f0]
+lea edi, [ebp - 0x12a8]
+add eax, 0x381a
+mov dword [ebp - 0x1390], eax
+lea eax, [ebp - 0x1338]
+mov dword [ebp - 0x136c], eax
+lea eax, [ebp - 0x1260]
+mov dword [ebp - 0x137c], eax
+mov eax, dword [ebp - 0x13b8]
+mov dword [ebp - 0x13a8], eax
+lea eax, [edx - 1]
+mov dword [ebp - 0x13c4], eax
+
+loc_fffbd439: ; not directly referenced
+mov esi, dword [ebp - 0x1390]
+mov al, byte [ebp - 0x1375]
+test byte [esi], al
+je short loc_fffbd4af ; je 0xfffbd4af
+mov eax, dword [ebp + 8]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x13bc], al
+xor eax, eax
+jmp short loc_fffbd4a7 ; jmp 0xfffbd4a7
+
+loc_fffbd45c: ; not directly referenced
+mov ebx, eax
+mov esi, eax
+mov eax, dword [ebp - 0x13a8]
+shl ebx, 8
+mov ebx, dword [eax + ebx + 0x80]
+mov eax, dword [ebp - 0x1380]
+xor eax, 1
+cmp ebx, 2
+cmove ebx, eax
+cmp dl, 0xe0
+mov eax, esi
+jne loc_fffbd514 ; jne 0xfffbd514
+test ebx, ebx
+je short loc_fffbd4ea ; je 0xfffbd4ea
+mov dword [ecx + esi*4], edx
+mov esi, dword [ebp - 0x136c]
+mov dword [edi + eax*4], edx
+mov dword [esi + eax*4], edx
+mov esi, dword [ebp - 0x137c]
+mov dword [esi + eax*4], edx
+
+loc_fffbd4a6: ; not directly referenced
+inc eax
+
+loc_fffbd4a7: ; not directly referenced
+cmp byte [ebp - 0x13bc], al
+ja short loc_fffbd45c ; ja 0xfffbd45c
+
+loc_fffbd4af: ; not directly referenced
+add ecx, 0x24
+add edi, 0x24
+lea eax, [ebp - 0x12a8]
+add dword [ebp - 0x1390], 0x13c3
+add dword [ebp - 0x136c], 0x24
+add dword [ebp - 0x137c], 0x24
+add dword [ebp - 0x13a8], 0x900
+cmp ecx, eax
+jne loc_fffbd439 ; jne 0xfffbd439
+jmp near loc_fffbd56d ; jmp 0xfffbd56d
+
+loc_fffbd4ea: ; not directly referenced
+mov dword [ecx + esi*4], 0xffffffdf
+mov esi, dword [ebp - 0x136c]
+mov dword [edi + eax*4], 0xffffffdf
+mov dword [esi + eax*4], 0xffffffdf
+mov esi, dword [ebp - 0x137c]
+mov dword [esi + eax*4], 0xffffffdf
+jmp short loc_fffbd4a6 ; jmp 0xfffbd4a6
+
+loc_fffbd514: ; not directly referenced
+test ebx, ebx
+je short loc_fffbd4a6 ; je 0xfffbd4a6
+mov ebx, dword [ebp - 0x13c4]
+cmp dword [ecx + esi*4], ebx
+mov dword [ecx + esi*4], edx
+je short loc_fffbd52f ; je 0xfffbd52f
+mov esi, dword [ebp - 0x136c]
+mov dword [esi + eax*4], edx
+
+loc_fffbd52f: ; not directly referenced
+mov ebx, dword [ebp - 0x136c]
+mov esi, edx
+mov ebx, dword [ebx + eax*4]
+mov dword [ebp - 0x13c0], ebx
+sub esi, ebx
+mov ebx, dword [ebp - 0x137c]
+mov ebx, dword [ebx + eax*4]
+sub ebx, dword [edi + eax*4]
+cmp esi, ebx
+jle loc_fffbd4a6 ; jle 0xfffbd4a6
+mov esi, dword [ebp - 0x13c0]
+mov ebx, dword [ebp - 0x137c]
+mov dword [edi + eax*4], esi
+mov dword [ebx + eax*4], edx
+jmp near loc_fffbd4a6 ; jmp 0xfffbd4a6
+
+loc_fffbd56d: ; not directly referenced
+inc edx
+add dword [ebp - 0x13b8], 4
+cmp edx, 0x20
+jne loc_fffbd3f2 ; jne 0xfffbd3f2
+imul ecx, dword [ebp - 0x1374], 9
+xor edi, edi
+mov eax, dword [ebp - 0x1388]
+mov dword [ebp - 0x137c], ecx
+
+loc_fffbd593: ; not directly referenced
+mov bl, byte [ebp - 0x1375]
+test byte [eax + 0xc4], bl
+jne short loc_fffbd5ae ; jne 0xfffbd5ae
+
+loc_fffbd5a1: ; not directly referenced
+inc edi
+add eax, 0x13c3
+cmp edi, 2
+je short loc_fffbd61a ; je 0xfffbd61a
+jmp short loc_fffbd593 ; jmp 0xfffbd593
+
+loc_fffbd5ae: ; not directly referenced
+mov ebx, dword [ebp - 0x137c]
+xor edx, edx
+lea ecx, [eax + ebx]
+mov dword [ebp - 0x136c], ecx
+
+loc_fffbd5bf: ; not directly referenced
+mov ecx, dword [ebp + 8]
+cmp dl, byte [ecx + 0x2488]
+jae short loc_fffbd5a1 ; jae 0xfffbd5a1
+movzx ebx, dl
+lea esi, [edi + edi*8]
+add esi, ebx
+mov ecx, dword [ebp + esi*4 - 0x12a8]
+mov esi, dword [ebp + esi*4 - 0x1260]
+sub esi, ecx
+jne short loc_fffbd5f5 ; jne 0xfffbd5f5
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x1965], 0
+je short loc_fffbd600 ; je 0xfffbd600
+jmp near loc_fffbd79f ; jmp 0xfffbd79f
+
+loc_fffbd5f5: ; not directly referenced
+cmp esi, 0xc
+jle short loc_fffbd600 ; jle 0xfffbd600
+sar esi, 1
+add esi, ecx
+jmp short loc_fffbd602 ; jmp 0xfffbd602
+
+loc_fffbd600: ; not directly referenced
+xor esi, esi
+
+loc_fffbd602: ; not directly referenced
+add ebx, dword [ebp - 0x136c]
+inc edx
+lea ecx, [esi + 0x20]
+mov byte [ebx + 0x104a], cl
+mov byte [ebx + 0x106e], cl
+jmp short loc_fffbd5bf ; jmp 0xfffbd5bf
+
+loc_fffbd61a: ; not directly referenced
+inc dword [ebp - 0x1374]
+cmp dword [ebp - 0x1374], 4
+jne loc_fffbd08b ; jne 0xfffbd08b
+cmp dword [ebp - 0x1370], 0
+je short loc_fffbd69a ; je 0xfffbd69a
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffbd65d ; jne 0xfffbd65d
+push ebx
+mov edx, 0x4980
+push ebx
+push dword [ebp - 0x1344]
+push dword [ebp - 0x1348]
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+
+loc_fffbd65d: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffbd684 ; jne 0xfffbd684
+push ecx
+mov edx, 0x4988
+push ecx
+push dword [ebp - 0x133c]
+push dword [ebp - 0x1340]
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+
+loc_fffbd684: ; not directly referenced
+mov ecx, dword [ebp - 0x138c]
+mov edx, 0x4c20
+mov eax, dword [ebp + 8]
+and cl, 0x7f
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffbd69a: ; not directly referenced
+xor esi, esi
+
+loc_fffbd69c: ; not directly referenced
+mov eax, 1
+mov ecx, esi
+shl eax, cl
+xor ebx, ebx
+mov dword [ebp - 0x136c], eax
+
+loc_fffbd6ad: ; not directly referenced
+mov eax, esi
+test al, al
+sete dl
+cmp dword [ebp - 0x139c], 1
+sete al
+test dl, al
+je short loc_fffbd6f8 ; je 0xfffbd6f8
+mov eax, dword [ebp + 8]
+mov ecx, 0xff
+mov edx, ebx
+call fcn_fffa7288 ; call 0xfffa7288
+imul edx, ebx, 0xcc
+mov edi, dword [ebp - 0x1384]
+mov ecx, dword [edi + edx + 0x1c]
+mov edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffbd6f8: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edi, dword [ebp + 8]
+mov cl, byte [ebp - 0x136c]
+test byte [edi + eax + 0x381a], cl
+jne short loc_fffbd718 ; jne 0xfffbd718
+
+loc_fffbd710: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbd6ad ; jne 0xfffbd6ad
+jmp short loc_fffbd747 ; jmp 0xfffbd747
+
+loc_fffbd718: ; not directly referenced
+xor edi, edi
+
+loc_fffbd71a: ; not directly referenced
+mov ecx, dword [ebp + 8]
+mov eax, edi
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffbd710 ; jae 0xfffbd710
+push edx
+mov eax, edi
+push 0
+movzx eax, al
+push 0xff
+mov ecx, esi
+push eax
+mov eax, dword [ebp + 8]
+mov edx, ebx
+inc edi
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+jmp short loc_fffbd71a ; jmp 0xfffbd71a
+
+loc_fffbd747: ; not directly referenced
+inc esi
+cmp esi, 4
+jne loc_fffbd69c ; jne 0xfffbd69c
+push eax
+mov ecx, 0x1010101
+push eax
+mov eax, dword [ebp + 8]
+xor edx, edx
+push 0
+push 8
+call fcn_fffa7fde ; call 0xfffa7fde
+mov eax, dword [ebp + 8]
+lea edx, [ebp - 0x1354]
+call fcn_fffa665e ; call 0xfffa665e
+push 2
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push 1
+push dword [ebp + 8]
+call fcn_fffcc900 ; call 0xfffcc900
+mov eax, dword [ebp + 8]
+add esp, 0x40
+call fcn_fffb0e8a ; call 0xfffb0e8a
+jmp short loc_fffbd7a4 ; jmp 0xfffbd7a4
+
+loc_fffbd79f: ; not directly referenced
+mov eax, 6
+
+loc_fffbd7a4: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbd7ac: ; not directly referenced
+push ebp
+mov ecx, 2
+mov ebp, esp
+sub esp, 0x10
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x248e]
+push 0xa
+push 1
+call fcn_fffcd1ac ; call 0xfffcd1ac
+leave
+ret
+
+fcn_fffbd7cc: ; not directly referenced
+push ebp
+mov ecx, 1
+mov ebp, esp
+sub esp, 0x10
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x248e]
+push 0xa
+push 1
+call fcn_fffcd1ac ; call 0xfffcd1ac
+leave
+ret
+
+fcn_fffbd7ec: ; not directly referenced
+push ebp
+mov ecx, 0xb
+mov ebp, esp
+sub esp, 0x10
+mov eax, dword [ebp + 8]
+movzx edx, byte [eax + 0x248e]
+push 0x11
+push 0
+call fcn_fffcd1ac ; call 0xfffcd1ac
+leave
+ret
+
+fcn_fffbd80c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov dword [ebp - 0x1c], eax
+mov eax, dword [eax + 0x5edc]
+mov dword [ebp - 0x20], edx
+mov byte [ebp - 0x2a], cl
+mov dword [ebp - 0x24], eax
+lea eax, [ecx - 1]
+cmp al, 1
+jbe short loc_fffbd835 ; jbe 0xfffbd835
+
+loc_fffbd82e: ; not directly referenced
+xor esi, esi
+jmp near loc_fffbdae8 ; jmp 0xfffbdae8
+
+loc_fffbd835: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+movzx ebx, cl
+dec cl
+mov edx, ebx
+mov ecx, 1
+movzx edi, byte [ebx + ref_fffd5f1c] ; movzx edi, byte [ebx - 0x2a0e4]
+sete byte [ebp - 0x28]
+add byte [ebp - 0x28], 8
+call fcn_fffb13cf ; call 0xfffb13cf
+mov edx, ebx
+mov ebx, dword [ebp - 0x1c]
+xor ecx, ecx
+imul edi, edi, 0x240
+movzx esi, ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add edi, dword [ebp - 0x20]
+mov dword [ebp - 0x38], edi
+movzx eax, ax
+add eax, esi
+xor esi, esi
+mov dword [ebp - 0x30], eax
+mov eax, ebx
+add eax, 0x3756
+mov dword [ebp - 0x20], eax
+mov eax, dword [ebp - 0x24]
+sar dword [ebp - 0x30], 1
+mov dword [ebp - 0x24], 0
+add eax, 0x1c
+mov dword [ebp - 0x40], eax
+mov dword [ebp - 0x34], eax
+movzx eax, byte [ebp - 0x28]
+mov dword [ebp - 0x48], eax
+
+loc_fffbd8a6: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+cmp dword [eax], 2
+jne loc_fffbda64 ; jne 0xfffbda64
+imul eax, dword [ebp - 0x24], 9
+mov byte [ebp - 0x29], 0
+mov dword [ebp - 0x44], eax
+
+loc_fffbd8bd: ; not directly referenced
+mov ebx, dword [ebp - 0x1c]
+mov al, byte [ebp - 0x29]
+cmp al, byte [ebx + 0x2488]
+jae loc_fffbda64 ; jae 0xfffbda64
+mov edi, dword [ebp - 0x20]
+xor ecx, ecx
+mov dword [ebp - 0x28], 0xffffffff
+mov bl, byte [edi + 0xc4]
+mov edi, dword [ebp - 0x38]
+mov byte [ebp - 0x3c], bl
+movzx ebx, al
+mov eax, dword [ebp - 0x44]
+add eax, ebx
+lea edx, [edi + eax*8 + 4]
+
+loc_fffbd8f3: ; not directly referenced
+mov edi, 1
+shl edi, cl
+mov eax, edi
+test byte [ebp - 0x3c], al
+je short loc_fffbd911 ; je 0xfffbd911
+mov eax, dword [ebp - 0x28]
+mov edi, dword [edx]
+add edi, dword [edx - 4]
+cmp eax, edi
+cmovbe edi, eax
+mov dword [ebp - 0x28], edi
+
+loc_fffbd911: ; not directly referenced
+inc ecx
+add edx, 0x90
+cmp ecx, 4
+jne short loc_fffbd8f3 ; jne 0xfffbd8f3
+mov eax, dword [ebp - 0x30]
+cmp dword [ebp - 0x28], eax
+jbe loc_fffbda5c ; jbe 0xfffbda5c
+movzx edi, byte [ebp - 0x29]
+xor esi, esi
+
+loc_fffbd92f: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+mov eax, 1
+mov ecx, esi
+shl eax, cl
+test byte [edx + 0xc4], al
+je short loc_fffbd964 ; je 0xfffbd964
+push 0
+push 0
+push 1
+push 0
+push edi
+push esi
+push dword [ebp - 0x24]
+push 0
+push 0
+push 0
+push dword [ebp - 0x48]
+push dword [ebp - 0x1c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+
+loc_fffbd964: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffbd92f ; jne 0xfffbd92f
+mov eax, dword [ebp - 0x20]
+movzx edi, byte [ebp - 0x29]
+mov dword [ebp - 0x28], 0
+lea esi, [eax + ebx + 0x104a]
+lea ebx, [ebx + ebx + 0x121]
+add ebx, eax
+lea eax, [edi*4]
+mov dword [ebp - 0x3c], eax
+
+loc_fffbd992: ; not directly referenced
+mov cl, byte [ebp - 0x28]
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp - 0x20]
+test byte [ecx + 0xc4], al
+je loc_fffbda44 ; je 0xfffbda44
+cmp byte [ebp - 0x2a], 1
+jne short loc_fffbd9f0 ; jne 0xfffbd9f0
+mov al, byte [esi + 0x24]
+xor edx, edx
+lea ecx, [eax - 9]
+cmp al, 0xa
+mov al, cl
+cmovb eax, edx
+mov byte [esi + 0x24], al
+mov al, byte [esi]
+cmp al, 0xa
+lea ecx, [eax - 9]
+mov eax, dword [ebp - 0x1c]
+cmovae edx, ecx
+mov ecx, dword [ebp - 0x28]
+mov byte [esi], dl
+push edx
+mov edx, dword [ebp - 0x24]
+push 0
+push 0xff
+push edi
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+mov eax, 0x40000000
+jmp short loc_fffbda3a ; jmp 0xfffbda3a
+
+loc_fffbd9f0: ; not directly referenced
+mov dx, word [ebx + 0x48]
+mov eax, 0x1ff
+lea ecx, [edx + 9]
+cmp dx, 0x1f5
+mov edx, ecx
+cmova edx, eax
+mov word [ebx + 0x48], dx
+mov dx, word [ebx]
+cmp dx, 0x1f5
+lea ecx, [edx + 9]
+mov edx, dword [ebp - 0x24]
+cmovbe eax, ecx
+mov ecx, dword [ebp - 0x28]
+mov word [ebx], ax
+push eax
+mov eax, dword [ebp - 0x1c]
+push 0
+push 0xff
+push edi
+call fcn_fffa73b0 ; call 0xfffa73b0
+add esp, 0x10
+mov eax, 0x20000000
+
+loc_fffbda3a: ; not directly referenced
+mov edx, dword [ebp - 0x34]
+mov ecx, dword [ebp - 0x3c]
+or dword [edx + ecx + 0x28], eax
+
+loc_fffbda44: ; not directly referenced
+inc dword [ebp - 0x28]
+add esi, 9
+add ebx, 0x12
+cmp dword [ebp - 0x28], 4
+jne loc_fffbd992 ; jne 0xfffbd992
+mov esi, 1
+
+loc_fffbda5c: ; not directly referenced
+inc byte [ebp - 0x29]
+jmp near loc_fffbd8bd ; jmp 0xfffbd8bd
+
+loc_fffbda64: ; not directly referenced
+inc dword [ebp - 0x24]
+add dword [ebp - 0x20], 0x13c3
+add dword [ebp - 0x34], 0xcc
+cmp dword [ebp - 0x24], 2
+jne loc_fffbd8a6 ; jne 0xfffbd8a6
+test esi, esi
+je loc_fffbd82e ; je 0xfffbd82e
+mov edi, dword [ebp - 0x40]
+xor ebx, ebx
+
+loc_fffbda8c: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edx, dword [ebp - 0x1c]
+cmp dword [edx + eax + 0x3756], 2
+je short loc_fffbdaad ; je 0xfffbdaad
+
+loc_fffbda9f: ; not directly referenced
+inc ebx
+add edi, 0xcc
+cmp ebx, 2
+je short loc_fffbdae8 ; je 0xfffbdae8
+jmp short loc_fffbda8c ; jmp 0xfffbda8c
+
+loc_fffbdaad: ; not directly referenced
+mov byte [ebp - 0x20], 0
+
+loc_fffbdab1: ; not directly referenced
+mov ecx, dword [ebp - 0x1c]
+mov al, byte [ebp - 0x20]
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffbda9f ; jae 0xfffbda9f
+movzx eax, byte [ebp - 0x20]
+mov edx, ebx
+mov ecx, eax
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffa720e ; call 0xfffa720e
+mov edx, dword [ebp - 0x24]
+mov ecx, dword [edi + edx*4 + 0x28]
+mov edx, eax
+mov eax, dword [ebp - 0x1c]
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x20]
+jmp short loc_fffbdab1 ; jmp 0xfffbdab1
+
+loc_fffbdae8: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbdaf2: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd5900 ; mov esi, 0xfffd5900
+push ebx
+sub esp, 0x6c
+mov ebx, dword [ebp + 8]
+lea edi, [ebp - 0x60]
+mov byte [ebp - 0x67], 4
+mov byte [ebp - 0x66], 1
+mov eax, dword [ebx + 0x1887]
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+cmp eax, 0x306d0
+sete dl
+cmp eax, 0x40650
+sete al
+or dl, al
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+je loc_fffbdbdd ; je 0xfffbdbdd
+mov cl, 1
+mov edx, 4
+mov eax, ebx
+mov esi, 4
+call fcn_fffb13cf ; call 0xfffb13cf
+mov edx, dword [ebp - 0x60]
+mov ecx, 1
+cmp ax, dx
+cmovae edx, eax
+mov eax, ebx
+mov word [ebp - 0x60], dx
+mov edx, 1
+call fcn_fffb13cf ; call 0xfffb13cf
+mov dx, word [ebp - 0x5e]
+mov byte [ebp - 0x69], 1
+cmp ax, dx
+cmovae edx, eax
+cmp dword [ebx + 0x188b], 1
+mov word [ebp - 0x5e], dx
+sete al
+lea eax, [eax + eax*4 + 7]
+movsx edi, al
+
+loc_fffbdb9b: ; not directly referenced
+mov al, byte [ebp - 0x69]
+test byte [ebx + 0x248d], al
+je short loc_fffbdbd7 ; je 0xfffbdbd7
+push eax
+mov ecx, 3
+push 0
+push 0
+push 0xf
+push edi
+push 0
+lea eax, [ebp - 0x60]
+push eax
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x67]
+push eax
+movzx eax, byte [ebp - 0x69]
+push 5
+lea edx, [ebp - 0x56]
+push eax
+mov eax, ebx
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffbdbd7: ; not directly referenced
+shl byte [ebp - 0x69], 1
+dec esi
+jne short loc_fffbdb9b ; jne 0xfffbdb9b
+
+loc_fffbdbdd: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbdbe7: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x60
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x67], 4
+lea esi, [ebp - 0x60]
+mov byte [ebp - 0x66], 1
+mov byte [ebp - 0x65], 1
+mov edi, dword [ebx + 0x2443]
+push 0
+push 8
+mov eax, dword [ebx + 0x5edc]
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+add eax, 0x1bc
+push eax
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 5
+push esi
+call dword [edi + 0x60] ; ucall
+movzx edx, byte [ebp - 0x67]
+mov ecx, 1
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+movzx edx, byte [ebp - 0x66]
+mov ecx, 1
+mov word [ebp - 0x60], ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add esp, 0x10
+cmp dword [ebx + 0x188b], 1
+mov word [ebp - 0x5e], ax
+jne short loc_fffbdc82 ; jne 0xfffbdc82
+mov eax, ebx
+call fcn_fffa9b8c ; call 0xfffa9b8c
+mov eax, 8
+mov edx, 0x2f
+add word [ebp - 0x5e], 0x28
+jmp short loc_fffbdc89 ; jmp 0xfffbdc89
+
+loc_fffbdc82: ; not directly referenced
+xor eax, eax
+mov edx, 7
+
+loc_fffbdc89: ; not directly referenced
+push ecx
+mov ecx, 3
+push 0
+push 0
+push 0xf
+push edx
+push eax
+push esi
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x67]
+push eax
+mov eax, ebx
+push 6
+lea edx, [ebp - 0x56]
+push 0xf
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x28
+mov eax, ebx
+push 0
+mov ecx, 3
+push 0xf
+push 0
+push 0
+push 0
+lea edx, [ebx + 0x2490]
+push 1
+call fcn_fffc0a2d ; call 0xfffc0a2d
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbdcd9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x140
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0xe4], 1
+mov dword [ebp - 0xe0], 1
+mov eax, dword [edi + 0x2443]
+mov ebx, dword [edi + 0x5edc]
+mov esi, eax
+mov dword [ebp - 0x110], eax
+mov eax, dword [edi + 0x1887]
+mov dword [ebp - 0x108], eax
+mov eax, dword [edi + 0x1883]
+push 0
+push 0x10
+mov dword [ebp - 0x100], eax
+lea eax, [ebp - 0xc8]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 1
+push 3
+lea eax, [ebp - 0xee]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+cmp dword [edi + 0x2480], 2
+mov byte [ebp - 0xf1], 0xfc
+mov byte [ebp - 0xf0], 4
+mov byte [ebp - 0xef], 0
+jne loc_fffbe4d2 ; jne 0xfffbe4d2
+mov eax, dword [edi + 0x5edc]
+mov dword [ebp - 0x100], eax
+mov eax, dword [edi + 0x2443]
+mov esi, eax
+mov dword [ebp - 0x110], eax
+push eax
+push 0
+push 0x10
+lea eax, [ebp - 0xb8]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 1
+push 3
+lea eax, [ebp - 0xe8]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+xor eax, eax
+mov byte [ebp - 0xeb], 0xfc
+mov byte [ebp - 0xea], 4
+mov byte [ebp - 0xe9], 0
+
+loc_fffbddc8: ; not directly referenced
+mov byte [ebp + eax - 0xd4], al
+inc eax
+cmp eax, 9
+jne short loc_fffbddc8 ; jne 0xfffbddc8
+mov ecx, 1
+mov edx, 5
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+xor ecx, ecx
+mov edx, 5
+lea ebx, [edi + 0x2b50]
+mov word [ebp - 0x138], ax
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+sub esp, 0xc
+mov ecx, 0x11
+mov word [ebp - 0x13c], ax
+movzx eax, byte [edi + 0x248e]
+push 0
+mov edx, eax
+mov dword [ebp - 0x10c], eax
+mov eax, edi
+call fcn_fffb26ca ; call 0xfffb26ca
+mov al, byte [ebp - 0xe7]
+mov ecx, 2
+mov byte [ebp - 0x11c], al
+mov al, byte [ebp - 0xe8]
+add byte [ebp - 0x11c], al
+mov al, byte [ebp - 0xe6]
+add byte [ebp - 0x11c], al
+lea eax, [edi + 0x2490]
+mov dword [ebp - 0x140], eax
+mov edx, eax
+mov eax, edi
+call fcn_fffa66dd ; call 0xfffa66dd
+add esp, 0x10
+xor ecx, ecx
+
+loc_fffbde6b: ; not directly referenced
+mov eax, dword [ebp - 0x10c]
+mov dword [ebp + ecx*4 - 0xdc], 0
+bt eax, ecx
+jae short loc_fffbdea3 ; jae 0xfffbdea3
+mov eax, dword [ebx + 4]
+mov esi, 0x14
+xor edx, edx
+add eax, dword [ebx]
+div esi
+mov si, 0xc
+lea edx, [eax - 1]
+cmp edx, 0xb
+cmova eax, esi
+mov dword [ebp + ecx*4 - 0xdc], eax
+
+loc_fffbdea3: ; not directly referenced
+inc ecx
+add ebx, 0x48
+cmp ecx, 2
+jne short loc_fffbde6b ; jne 0xfffbde6b
+push eax
+push 0
+push 0x80
+lea eax, [ebp - 0x98]
+push eax
+mov eax, dword [ebp - 0x110]
+call dword [eax + 0x5c] ; ucall
+mov eax, dword [ebp - 0x100]
+add esp, 0x10
+mov dword [ebp - 0xfc], 0
+add eax, 0x70
+mov dword [ebp - 0x134], eax
+
+loc_fffbdee0: ; not directly referenced
+xor esi, esi
+
+loc_fffbdee2: ; not directly referenced
+mov eax, dword [ebp - 0x10c]
+bt eax, esi
+jb short loc_fffbdef7 ; jb 0xfffbdef7
+
+loc_fffbdeed: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffbdee2 ; jne 0xfffbdee2
+xor esi, esi
+jmp short loc_fffbdf4c ; jmp 0xfffbdf4c
+
+loc_fffbdef7: ; not directly referenced
+mov eax, dword [ebp - 0xfc]
+mov ecx, 0xc
+xor ebx, ebx
+movsx eax, byte [ebp + eax - 0xeb]
+imul eax, dword [ebp + esi*4 - 0xdc]
+cdq
+idiv ecx
+mov dword [ebp - 0x100], eax
+
+loc_fffbdf1d: ; not directly referenced
+cmp bl, byte [edi + 0x2488]
+jae short loc_fffbdeed ; jae 0xfffbdeed
+push 1
+movzx eax, bl
+push 0
+inc ebx
+push 1
+push 0
+push eax
+push 0
+push esi
+push 0
+push 0
+push dword [ebp - 0x100]
+push 2
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp short loc_fffbdf1d ; jmp 0xfffbdf1d
+
+loc_fffbdf4c: ; not directly referenced
+mov eax, dword [ebp - 0x134]
+mov ecx, esi
+xor ebx, ebx
+mov dword [ebp - 0x100], 1
+shl dword [ebp - 0x100], cl
+mov dword [ebp - 0x108], eax
+mov byte [ebp - 0x104], 0
+
+loc_fffbdf73: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffbdfb5 ; jne 0xfffbdfb5
+mov ecx, dword [ebp - 0x100]
+mov edx, ebx
+mov eax, edi
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x104], al
+push eax
+push 0
+movzx eax, byte [edi + 0x2488]
+push eax
+mov eax, dword [ebp - 0x110]
+push dword [ebp - 0x108]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbdfb5: ; not directly referenced
+inc ebx
+add dword [ebp - 0x108], 0xcc
+cmp ebx, 2
+jne short loc_fffbdf73 ; jne 0xfffbdf73
+push ecx
+mov edx, dword [ebp - 0x140]
+push ecx
+movzx ecx, byte [ebp - 0x104]
+lea eax, [ebp - 0xb8]
+push eax
+push 0x25
+lea eax, [ebp - 0xd4]
+push eax
+mov eax, edi
+push 5
+push 0
+push esi
+inc esi
+call fcn_fffd13ed ; call 0xfffd13ed
+add esp, 0x20
+cmp esi, 2
+jne loc_fffbdf4c ; jne 0xfffbdf4c
+lea eax, [ebp - 0xa8]
+xor esi, esi
+mov dword [ebp - 0x130], eax
+lea eax, [ebp - 0x98]
+mov dword [ebp - 0x128], eax
+
+loc_fffbe017: ; not directly referenced
+mov eax, dword [ebp - 0x10c]
+bt eax, esi
+jb short loc_fffbe03b ; jb 0xfffbe03b
+
+loc_fffbe022: ; not directly referenced
+inc esi
+add dword [ebp - 0x128], 0x40
+add dword [ebp - 0x130], 8
+cmp esi, 2
+jne short loc_fffbe017 ; jne 0xfffbe017
+jmp near loc_fffbe1ed ; jmp 0xfffbe1ed
+
+loc_fffbe03b: ; not directly referenced
+imul edx, esi, 0x13c3
+mov ebx, dword [ebp - 0x130]
+mov ecx, dword [ebp - 0x128]
+mov dword [ebp - 0x108], 0
+mov al, byte [edi + edx + 0x381a]
+lea edx, [edi + edx + 0x49c1]
+mov dword [ebp - 0x100], ebx
+mov dword [ebp - 0x12c], ecx
+mov dword [ebp - 0x120], edx
+mov byte [ebp - 0x141], al
+imul eax, esi, 0x48
+add eax, edi
+
+loc_fffbe082: ; not directly referenced
+mov cl, byte [ebp - 0x108]
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x141], dl
+jne short loc_fffbe0c5 ; jne 0xfffbe0c5
+
+loc_fffbe097: ; not directly referenced
+inc dword [ebp - 0x108]
+add eax, 0x90
+add dword [ebp - 0x120], 0x18
+add dword [ebp - 0x12c], 0x20
+add dword [ebp - 0x100], 4
+cmp dword [ebp - 0x108], 2
+jne short loc_fffbe082 ; jne 0xfffbe082
+jmp near loc_fffbe022 ; jmp 0xfffbe022
+
+loc_fffbe0c5: ; not directly referenced
+cmp byte [ebp - 0xfc], 0
+jne short loc_fffbe0da ; jne 0xfffbe0da
+mov ebx, dword [ebp - 0x100]
+mov dword [ebx], 0xffffffff
+
+loc_fffbe0da: ; not directly referenced
+mov dl, byte [edi + 0x2488]
+mov byte [ebp - 0x124], dl
+xor edx, edx
+
+loc_fffbe0e8: ; not directly referenced
+cmp byte [ebp - 0x124], dl
+jbe short loc_fffbe116 ; jbe 0xfffbe116
+mov ebx, dword [ebp - 0x100]
+mov ecx, dword [eax + edx*8 + 0x2914]
+cmp dword [eax + edx*8 + 0x2910], ecx
+cmovbe ecx, dword [eax + edx*8 + 0x2910]
+cmp ecx, dword [ebx]
+cmova ecx, dword [ebx]
+inc edx
+mov dword [ebx], ecx
+jmp short loc_fffbe0e8 ; jmp 0xfffbe0e8
+
+loc_fffbe116: ; not directly referenced
+xor edx, edx
+
+loc_fffbe118: ; not directly referenced
+mov ecx, dword [ebp - 0x120]
+movzx ecx, byte [ecx + edx + 0x10]
+test cl, cl
+je loc_fffbe097 ; je 0xfffbe097
+mov dword [ebp - 0x104], 0
+mov dword [ebp - 0x118], 0xffffffff
+mov dword [ebp - 0x114], 0xffffffff
+
+loc_fffbe149: ; not directly referenced
+mov bl, byte [ebp - 0x104]
+cmp byte [ebp - 0x124], bl
+jbe short loc_fffbe1ac ; jbe 0xfffbe1ac
+mov ebx, dword [ebp - 0x104]
+bt ecx, ebx
+jae short loc_fffbe1a4 ; jae 0xfffbe1a4
+mov dword [ebp - 0x148], edx
+mov edx, dword [ebp - 0x114]
+cmp edx, dword [eax + ebx*8 + 0x2910]
+cmova edx, dword [eax + ebx*8 + 0x2910]
+mov dword [ebp - 0x114], edx
+mov edx, dword [ebp - 0x118]
+cmp edx, dword [eax + ebx*8 + 0x2914]
+cmova edx, dword [eax + ebx*8 + 0x2914]
+mov dword [ebp - 0x118], edx
+mov edx, dword [ebp - 0x148]
+
+loc_fffbe1a4: ; not directly referenced
+inc dword [ebp - 0x104]
+jmp short loc_fffbe149 ; jmp 0xfffbe149
+
+loc_fffbe1ac: ; not directly referenced
+mov ecx, dword [ebp - 0xfc]
+movzx ebx, byte [ebp + ecx - 0xe8]
+mov ecx, dword [ebp - 0x118]
+sub ecx, dword [ebp - 0x114]
+mov dword [ebp - 0x104], ebx
+mov ebx, dword [ebp - 0x104]
+imul ebx, ecx
+mov ecx, dword [ebp - 0x12c]
+add dword [ecx + edx*4], ebx
+inc edx
+cmp edx, 8
+jne loc_fffbe118 ; jne 0xfffbe118
+jmp near loc_fffbe097 ; jmp 0xfffbe097
+
+loc_fffbe1ed: ; not directly referenced
+inc dword [ebp - 0xfc]
+cmp dword [ebp - 0xfc], 3
+jne loc_fffbdee0 ; jne 0xfffbdee0
+movzx edx, word [ebp - 0x138]
+movzx eax, word [ebp - 0x13c]
+mov dword [ebp - 0x120], edi
+mov dword [ebp - 0xfc], 0
+add eax, edx
+mov dword [ebp - 0x12c], eax
+movsx eax, byte [ebp - 0x11c]
+sar dword [ebp - 0x12c], 2
+imul esi, eax, 0xa
+imul eax, eax, 0x14
+mov dword [ebp - 0x138], esi
+mov dword [ebp - 0x13c], eax
+mov eax, dword [ebp - 0x134]
+mov dword [ebp - 0x130], eax
+lea eax, [edi + 0x49c1]
+mov dword [ebp - 0x114], eax
+lea eax, [ebp - 0xa8]
+mov dword [ebp - 0x11c], eax
+lea eax, [ebp - 0x98]
+mov dword [ebp - 0x124], eax
+
+loc_fffbe276: ; not directly referenced
+mov eax, dword [ebp - 0x10c]
+mov esi, dword [ebp - 0xfc]
+bt eax, esi
+jae loc_fffbe491 ; jae 0xfffbe491
+mov eax, dword [ebp - 0x114]
+mov dword [ebp - 0x100], 0
+lea esi, [eax - 0x126b]
+mov dword [ebp - 0x134], esi
+mov esi, dword [ebp - 0x120]
+mov dword [ebp - 0x108], eax
+mov dword [ebp - 0x128], esi
+mov esi, dword [ebp - 0x124]
+
+loc_fffbe2bf: ; not directly referenced
+mov ebx, dword [ebp - 0x114]
+mov cl, byte [ebp - 0x100]
+mov dword [ebp - 0x104], 1
+shl dword [ebp - 0x104], cl
+mov al, byte [ebp - 0x104]
+test byte [ebx - 0x11a7], al
+je loc_fffbe44d ; je 0xfffbe44d
+mov eax, dword [ebp - 0x108]
+mov ebx, dword [ebp - 0x11c]
+mov edx, dword [ebp - 0x100]
+mov ecx, dword [ebp - 0x12c]
+mov ax, word [eax + 0xc]
+or al, 0x80
+cmp dword [ebx + edx*4], ecx
+jbe short loc_fffbe33b ; jbe 0xfffbe33b
+imul edx, edx, 0x70
+mov ebx, dword [ebp - 0x134]
+and eax, 0xffffff80
+or eax, 0xd
+mov word [ebx + edx + 0x109f], ax
+mov ebx, dword [ebp - 0x108]
+mov word [ebx + 0xc], ax
+movzx eax, ax
+push edx
+push edx
+push eax
+push 6
+jmp short loc_fffbe397 ; jmp 0xfffbe397
+
+loc_fffbe33b: ; not directly referenced
+mov eax, dword [ebp - 0x108]
+xor ebx, ebx
+mov ecx, dword [ebp - 0x104]
+mov edx, dword [ebp - 0xfc]
+mov ax, word [eax + 6]
+mov word [ebp - 0x118], ax
+or word [ebp - 0x118], 0x10
+push eax
+push eax
+movzx eax, word [ebp - 0x118]
+push eax
+mov eax, edi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+
+loc_fffbe378: ; not directly referenced
+mov eax, dword [ebp - 0x108]
+movzx ecx, byte [eax + ebx + 0x10]
+test cl, cl
+jne short loc_fffbe3b2 ; jne 0xfffbe3b2
+
+loc_fffbe387: ; not directly referenced
+mov eax, dword [ebp - 0x118]
+push ebx
+push ebx
+and eax, 0xffef
+push eax
+push 3
+
+loc_fffbe397: ; not directly referenced
+mov ecx, dword [ebp - 0x104]
+mov eax, edi
+mov edx, dword [ebp - 0xfc]
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+jmp near loc_fffbe44d ; jmp 0xfffbe44d
+
+loc_fffbe3b2: ; not directly referenced
+mov edx, dword [esi + ebx*4]
+mov dword [ebp - 0x140], ecx
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, dword [ebp - 0x138]
+add eax, edx
+cdq
+idiv dword [ebp - 0x13c]
+mov dword [esi + ebx*4], eax
+push 2
+push 0
+push 1
+push 0
+push ecx
+push dword [ebp - 0x100]
+push dword [ebp - 0xfc]
+push 0
+push 0
+push eax
+push 5
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+mov al, byte [edi + 0x2488]
+add esp, 0x30
+mov byte [ebp - 0x141], al
+xor eax, eax
+
+loc_fffbe40c: ; not directly referenced
+cmp byte [ebp - 0x141], al
+jbe short loc_fffbe43e ; jbe 0xfffbe43e
+mov edx, dword [ebp - 0x140]
+bt edx, eax
+jae short loc_fffbe43b ; jae 0xfffbe43b
+mov edx, dword [ebp - 0x128]
+imul ecx, dword [esi + ebx*4], 0xa
+add dword [edx + eax*8 + 0x2910], ecx
+imul ecx, dword [esi + ebx*4], 0xfffffff6
+add dword [edx + eax*8 + 0x2914], ecx
+
+loc_fffbe43b: ; not directly referenced
+inc eax
+jmp short loc_fffbe40c ; jmp 0xfffbe40c
+
+loc_fffbe43e: ; not directly referenced
+inc ebx
+cmp ebx, 8
+jne loc_fffbe378 ; jne 0xfffbe378
+jmp near loc_fffbe387 ; jmp 0xfffbe387
+
+loc_fffbe44d: ; not directly referenced
+inc dword [ebp - 0x100]
+add esi, 0x20
+add dword [ebp - 0x108], 0x18
+add dword [ebp - 0x128], 0x90
+cmp dword [ebp - 0x100], 2
+jne loc_fffbe2bf ; jne 0xfffbe2bf
+push ecx
+push 0
+movzx eax, byte [edi + 0x2488]
+push eax
+mov eax, dword [ebp - 0x110]
+push dword [ebp - 0x130]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbe491: ; not directly referenced
+inc dword [ebp - 0xfc]
+add dword [ebp - 0x130], 0xcc
+add dword [ebp - 0x114], 0x13c3
+add dword [ebp - 0x124], 0x40
+add dword [ebp - 0x120], 0x48
+add dword [ebp - 0x11c], 8
+cmp dword [ebp - 0xfc], 2
+jne loc_fffbe276 ; jne 0xfffbe276
+jmp near loc_fffbea01 ; jmp 0xfffbea01
+
+loc_fffbe4d2: ; not directly referenced
+mov ecx, 1
+mov edx, 5
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+xor ecx, ecx
+mov edx, 5
+mov word [ebp - 0x118], ax
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+mov word [ebp - 0x11c], ax
+mov al, byte [ebx + 0x15]
+shr al, 6
+movzx edx, al
+movzx eax, byte [ebx + 0x16]
+and eax, 0x1f
+shl eax, 2
+or eax, edx
+mov esi, eax
+mov dl, al
+or edx, 0xffffff80
+shr esi, 6
+cmove edx, eax
+mov byte [ebp - 0xeb], dl
+mov cl, byte [ebx + 0x14]
+movsx dx, dl
+movzx eax, byte [ebx + 0x15]
+lea edx, [edx + edx*4]
+shr cl, 7
+and eax, 0x3f
+movzx ecx, cl
+add eax, eax
+or eax, ecx
+mov esi, eax
+mov cl, al
+or ecx, 0xffffff80
+shr esi, 6
+cmove ecx, eax
+add edx, edx
+mov byte [ebp - 0xea], cl
+movsx cx, cl
+sub esp, 0xc
+mov word [ebp - 0xe8], dx
+movzx edx, byte [edi + 0x248e]
+lea ecx, [ecx + ecx*4]
+add ecx, ecx
+mov eax, edi
+mov word [ebp - 0xe6], cx
+mov ecx, 0x11
+push 0
+call fcn_fffb26ca ; call 0xfffb26ca
+mov al, byte [ebp - 0xed]
+lea esi, [edi + 0x3756]
+add esp, 0x10
+mov byte [ebp - 0xfc], 0
+mov byte [ebp - 0x10c], al
+mov al, byte [ebp - 0xee]
+add byte [ebp - 0x10c], al
+mov al, byte [ebp - 0xec]
+add byte [ebp - 0x10c], al
+lea eax, [ebx + 0x70]
+xor ebx, ebx
+mov dword [ebp - 0x128], eax
+mov dword [ebp - 0x104], eax
+
+loc_fffbe5cb: ; not directly referenced
+cmp dword [esi], 2
+jne short loc_fffbe603 ; jne 0xfffbe603
+movzx ecx, byte [esi + 0xc4]
+mov edx, ebx
+mov eax, edi
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0xfc], al
+push edx
+push 0
+movzx eax, byte [edi + 0x2488]
+push eax
+mov eax, dword [ebp - 0x110]
+push dword [ebp - 0x104]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbe603: ; not directly referenced
+inc ebx
+add esi, 0x13c3
+add dword [ebp - 0x104], 0xcc
+cmp ebx, 2
+jne short loc_fffbe5cb ; jne 0xfffbe5cb
+lea eax, [edi + 0x2490]
+mov ecx, 2
+mov dword [ebp - 0x114], eax
+mov edx, eax
+mov eax, edi
+call fcn_fffa66dd ; call 0xfffa66dd
+movzx eax, byte [ebp - 0xfc]
+lea ebx, [edi + 0x2b50]
+xor ecx, ecx
+mov dword [ebp - 0xfc], eax
+
+loc_fffbe648: ; not directly referenced
+mov eax, dword [ebp - 0xfc]
+mov dword [ebp + ecx*4 - 0xdc], 0
+bt eax, ecx
+jae short loc_fffbe680 ; jae 0xfffbe680
+mov eax, dword [ebx + 4]
+mov esi, 0x14
+xor edx, edx
+add eax, dword [ebx]
+div esi
+mov si, 0xc
+lea edx, [eax - 1]
+cmp edx, 0xb
+cmovbe esi, eax
+mov dword [ebp + ecx*4 - 0xdc], esi
+
+loc_fffbe680: ; not directly referenced
+inc ecx
+add ebx, 0x48
+cmp ecx, 2
+jne short loc_fffbe648 ; jne 0xfffbe648
+mov edx, dword [ebp - 0x114]
+mov cl, 5
+mov eax, edi
+call fcn_fffa66dd ; call 0xfffa66dd
+mov dword [ebp - 0xd4], 0
+mov dword [ebp - 0xb8], 0x7fffffff
+mov dword [ebp - 0xa8], 0x7fffffff
+mov dword [ebp - 0xd0], 0
+mov dword [ebp - 0xb4], 0x7fffffff
+mov dword [ebp - 0xa4], 0x7fffffff
+mov dword [ebp - 0x104], 0
+
+loc_fffbe6de: ; not directly referenced
+xor esi, esi
+
+loc_fffbe6e0: ; not directly referenced
+mov eax, dword [ebp - 0xfc]
+bt eax, esi
+jb short loc_fffbe724 ; jb 0xfffbe724
+
+loc_fffbe6eb: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffbe6e0 ; jne 0xfffbe6e0
+push eax
+mov edx, dword [ebp - 0x114]
+push eax
+mov ecx, dword [ebp - 0xfc]
+push 0
+lea eax, [ebp - 0xc8]
+push eax
+mov eax, edi
+push 0x36
+push 1
+push 5
+push 0
+call fcn_fffc6051 ; call 0xfffc6051
+lea edx, [edi + 0x2914]
+add esp, 0x20
+xor eax, eax
+jmp short loc_fffbe782 ; jmp 0xfffbe782
+
+loc_fffbe724: ; not directly referenced
+mov eax, dword [ebp - 0x104]
+mov ecx, 0xc
+xor ebx, ebx
+movsx eax, byte [ebp + eax - 0xf1]
+imul eax, dword [ebp + esi*4 - 0xdc]
+cdq
+idiv ecx
+mov dword [ebp - 0x120], eax
+
+loc_fffbe74a: ; not directly referenced
+cmp bl, byte [edi + 0x2488]
+jae short loc_fffbe6eb ; jae 0xfffbe6eb
+push 1
+movzx eax, bl
+push 0
+inc ebx
+push 1
+push 0
+push eax
+push 0
+push esi
+push 0
+push 0
+push dword [ebp - 0x120]
+push 2
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp short loc_fffbe74a ; jmp 0xfffbe74a
+
+loc_fffbe779: ; not directly referenced
+inc eax
+add edx, 0x48
+cmp eax, 2
+je short loc_fffbe7d4 ; je 0xfffbe7d4
+
+loc_fffbe782: ; not directly referenced
+mov esi, dword [ebp - 0xfc]
+bt esi, eax
+jae short loc_fffbe779 ; jae 0xfffbe779
+mov ebx, dword [ebp - 0x104]
+mov ecx, dword [edx - 4]
+mov esi, dword [edx]
+movzx ebx, byte [ebp + ebx - 0xee]
+sub esi, ecx
+imul ebx, esi
+add dword [ebp + eax*4 - 0xd4], ebx
+mov ebx, dword [ebp + eax*4 - 0xb8]
+cmp ecx, ebx
+cmovg ecx, ebx
+mov dword [ebp + eax*4 - 0xb8], ecx
+mov ecx, dword [ebp + eax*4 - 0xa8]
+cmp dword [edx], ecx
+cmovle ecx, dword [edx]
+mov dword [ebp + eax*4 - 0xa8], ecx
+jmp short loc_fffbe779 ; jmp 0xfffbe779
+
+loc_fffbe7d4: ; not directly referenced
+inc dword [ebp - 0x104]
+cmp dword [ebp - 0x104], 3
+jne loc_fffbe6de ; jne 0xfffbe6de
+xor eax, eax
+xor ebx, ebx
+
+loc_fffbe7eb: ; not directly referenced
+movsx ecx, word [ebp + eax - 0xe8]
+mov edx, dword [ebp + eax*2 - 0xb8]
+sub edx, ecx
+cmovs edx, ebx
+add ecx, dword [ebp + eax*2 - 0xa8]
+mov dword [ebp + eax*2 - 0xb8], edx
+cmovs ecx, ebx
+cmp ecx, edx
+cmovle edx, ecx
+mov dword [ebp + eax*2 - 0xa8], ecx
+mov dword [ebp + eax*2 - 0x98], edx
+add eax, 2
+cmp eax, 4
+jne short loc_fffbe7eb ; jne 0xfffbe7eb
+movsx eax, byte [ebp - 0x10c]
+xor ebx, ebx
+movzx edx, word [ebp - 0x118]
+imul esi, eax, 0xa
+imul eax, eax, 0x14
+mov dword [ebp - 0x120], esi
+mov dword [ebp - 0x124], eax
+movzx eax, word [ebp - 0x11c]
+add eax, edx
+mov dword [ebp - 0x10c], eax
+lea eax, [edi + 0x2910]
+mov dword [ebp - 0x114], eax
+mov eax, dword [ebp - 0x128]
+sar dword [ebp - 0x10c], 2
+mov dword [ebp - 0x104], eax
+
+loc_fffbe87b: ; not directly referenced
+mov eax, dword [ebp - 0xfc]
+bt eax, ebx
+jae loc_fffbe9e6 ; jae 0xfffbe9e6
+mov edx, dword [ebp + ebx*4 - 0xd4]
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, dword [ebp - 0x120]
+add eax, edx
+cdq
+idiv dword [ebp - 0x124]
+cmp dword [ebp - 0x108], 0x306d0
+sete dl
+cmp dword [ebp - 0x100], 3
+mov dword [ebp + ebx*4 - 0xd4], eax
+seta al
+test al, dl
+jne short loc_fffbe8e9 ; jne 0xfffbe8e9
+cmp dword [ebp - 0x100], 0
+setne cl
+cmp dword [ebp - 0x108], 0x40670
+sete al
+test cl, al
+je short loc_fffbe914 ; je 0xfffbe914
+
+loc_fffbe8e9: ; not directly referenced
+mov eax, dword [ebp - 0x10c]
+cmp dword [ebp + ebx*4 - 0x98], eax
+jbe short loc_fffbe914 ; jbe 0xfffbe914
+movsx eax, byte [ebp + ebx - 0xeb]
+mov dword [ebp + ebx*4 - 0xe4], 0
+neg eax
+mov dword [ebp + ebx*4 - 0xd4], eax
+
+loc_fffbe914: ; not directly referenced
+mov eax, dword [ebp + ebx*4 - 0xe4]
+mov esi, dword [ebp - 0x104]
+mov byte [edi + ebx + 0x369d], al
+cmp byte [esi + 0x61], 0
+jle short loc_fffbe98b ; jle 0xfffbe98b
+cmp dword [ebp - 0x100], 3
+sete cl
+test cl, dl
+jne short loc_fffbe961 ; jne 0xfffbe961
+cmp dword [ebp - 0x100], 0
+sete cl
+cmp dword [ebp - 0x108], 0x40670
+sete byte [ebp - 0x118]
+xor edx, edx
+test byte [ebp - 0x118], cl
+je short loc_fffbe96a ; je 0xfffbe96a
+
+loc_fffbe961: ; not directly referenced
+mov esi, dword [ebp - 0x104]
+mov dl, byte [esi + 0x73]
+
+loc_fffbe96a: ; not directly referenced
+sub dl, byte [ebp + ebx - 0xeb]
+add edx, 3
+movsx esi, dl
+cmp dword [ebp + ebx*4 - 0xd4], esi
+jle short loc_fffbe98b ; jle 0xfffbe98b
+test eax, eax
+je short loc_fffbe98b ; je 0xfffbe98b
+mov dword [ebp + ebx*4 - 0xd4], esi
+
+loc_fffbe98b: ; not directly referenced
+mov eax, dword [ebp - 0xfc]
+lea ecx, [ebx + 1]
+push 2
+mov esi, dword [ebp + ebx*4 - 0xd4]
+sar eax, cl
+push eax
+push 1
+push 0
+push 7
+push 0
+push ebx
+push 0
+push 0
+push esi
+push 5
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+mov ecx, dword [ebp - 0x114]
+imul eax, esi, 0xa
+imul esi, esi, 0xfffffff6
+add esp, 0x2c
+add dword [ecx], eax
+add dword [ecx + 4], esi
+push 0
+movzx eax, byte [edi + 0x2488]
+push eax
+mov eax, dword [ebp - 0x110]
+push dword [ebp - 0x104]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbe9e6: ; not directly referenced
+inc ebx
+add dword [ebp - 0x114], 0x48
+add dword [ebp - 0x104], 0xcc
+cmp ebx, 2
+jne loc_fffbe87b ; jne 0xfffbe87b
+
+loc_fffbea01: ; not directly referenced
+push 2
+push 0
+push 1
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push 2
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov byte [edi + 0x247a], 0
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbea2f: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x230
+mov edi, dword [ebp + 8]
+mov eax, dword [edi + 0x5edc]
+mov dword [ebp - 0x1fc], eax
+mov eax, dword [edi + 0x2443]
+mov esi, eax
+mov dword [ebp - 0x218], eax
+mov eax, dword [edi + 0x188b]
+push 0
+push 0x10
+mov dword [ebp - 0x21c], eax
+lea eax, [ebp - 0x1d8]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x1dc]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x1b0
+lea eax, [ebp - 0x1c8]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+mov al, byte [edi + 0x2441]
+xor ecx, ecx
+mov byte [ebp - 0x1d9], 0
+mov byte [ebp - 0x1da], 0
+mov byte [ebp - 0x21d], al
+mov eax, dword [edi + 0x2480]
+mov dword [esp], edi
+cmp eax, 3
+sete cl
+cmp eax, 2
+mov ebx, ecx
+sete byte [ebp - 0x21e]
+mov dword [ebp - 0x208], ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+cmp ebx, 1
+lea ecx, [edi + 0x2490]
+mov dword [ebp - 0x1f4], edi
+mov dword [ebp - 0x1f0], 0
+mov dword [ebp - 0x214], ecx
+mov dword [ebp - 0x200], eax
+sbb eax, eax
+and eax, 7
+add eax, 0xa
+movzx eax, al
+mov dword [ebp - 0x22c], eax
+
+loc_fffbeb18: ; not directly referenced
+mov eax, dword [ebp - 0x1fc]
+xor ebx, ebx
+mov cl, byte [ebp - 0x1f0]
+mov dword [ebp - 0x1ec], 1
+shl dword [ebp - 0x1ec], cl
+add eax, 0x70
+mov dword [ebp - 0x204], eax
+mov byte [ebp - 0x1f8], 0
+
+loc_fffbeb46: ; not directly referenced
+mov ecx, dword [ebp - 0x1ec]
+mov edx, ebx
+mov eax, edi
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x1f8], al
+movzx eax, byte [ebp - 0x1f8]
+bt eax, ebx
+mov esi, eax
+jae short loc_fffbeb86 ; jae 0xfffbeb86
+push ecx
+push 0
+movzx eax, byte [edi + 0x2488]
+push eax
+mov eax, dword [ebp - 0x218]
+push dword [ebp - 0x204]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffbeb86: ; not directly referenced
+inc ebx
+add dword [ebp - 0x204], 0xcc
+cmp ebx, 2
+jne short loc_fffbeb46 ; jne 0xfffbeb46
+cmp byte [ebp - 0x1f8], 0
+je loc_fffbf0bc ; je 0xfffbf0bc
+sub esp, 0xc
+mov ecx, 0x11
+push 0
+mov edx, esi
+mov eax, edi
+xor bl, bl
+call fcn_fffb26ca ; call 0xfffb26ca
+add esp, 0x10
+
+loc_fffbebbb: ; not directly referenced
+mov dl, bl
+cmp bl, 3
+je short loc_fffbec24 ; je 0xfffbec24
+cmp bl, 1
+jne short loc_fffbebd0 ; jne 0xfffbebd0
+mov byte [edi + 0x248b], 9
+jmp short loc_fffbebdc ; jmp 0xfffbebdc
+
+loc_fffbebd0: ; not directly referenced
+cmp bl, 4
+jne short loc_fffbebdc ; jne 0xfffbebdc
+mov byte [edi + 0x248b], 0
+
+loc_fffbebdc: ; not directly referenced
+lea eax, [edx - 4]
+cmp al, 2
+sbb eax, eax
+and eax, 0x17
+add eax, 0x1f
+cmp dl, 5
+sete dl
+test byte [ebp - 0x21e], dl
+mov dl, 0x25
+lea ecx, [ebp - 0x1d8]
+cmovne eax, edx
+push edx
+movzx eax, al
+push edx
+mov edx, dword [ebp - 0x214]
+push 0
+push ecx
+mov ecx, esi
+push eax
+mov eax, edi
+push 1
+push ebx
+push dword [ebp - 0x1f0]
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x20
+
+loc_fffbec24: ; not directly referenced
+inc ebx
+cmp ebx, 7
+jne short loc_fffbebbb ; jne 0xfffbebbb
+mov ecx, dword [ebp - 0x22c]
+sub esp, 0xc
+mov edx, esi
+push 0
+mov eax, edi
+call fcn_fffb2759 ; call 0xfffb2759
+add esp, 0x10
+cmp dword [ebp - 0x208], 0
+je short loc_fffbec72 ; je 0xfffbec72
+push eax
+mov ecx, esi
+push 0
+xor edx, edx
+push 0
+push 0x20
+push 0
+lea eax, [ebp - 0x1da]
+push eax
+mov eax, edi
+push 0xff
+push dword [ebp - 0x1ec]
+call fcn_fffcfd43 ; call 0xfffcfd43
+jmp short loc_fffbec95 ; jmp 0xfffbec95
+
+loc_fffbec72: ; not directly referenced
+push 1
+mov ecx, esi
+push 1
+xor edx, edx
+lea eax, [ebp - 0x1dc]
+push eax
+mov eax, edi
+push 1
+push 0x40
+push 0xffffffffffffffc0
+push 3
+push 0xff
+call fcn_fffcf3cd ; call 0xfffcf3cd
+
+loc_fffbec95: ; not directly referenced
+add esp, 0x20
+cmp byte [ebp - 0x21d], 0
+sete dl
+cmp dword [ebp - 0x21c], 1
+sete al
+test dl, al
+jne loc_fffbed6c ; jne 0xfffbed6c
+
+loc_fffbecb4: ; not directly referenced
+push edx
+push 0
+push 0
+push 3
+push 0xff
+push 0
+push 0
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 0
+push 0
+push 3
+push 0xff
+push 0
+push 1
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x14
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+lea eax, [ebp - 0x1d8]
+mov edx, dword [ebp - 0x214]
+pop ecx
+mov ecx, esi
+pop ebx
+mov ebx, dword [ebp - 0x1f0]
+push 0
+push eax
+mov eax, edi
+push 0x36
+push 1
+push 0xd
+push ebx
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x14
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+lea edx, [ebp - 0x1c8]
+mov dword [ebp - 0x200], eax
+mov eax, edi
+call fcn_fffb8ffd ; call 0xfffb8ffd
+imul eax, ebx, 0xd8
+mov edx, ebx
+add edx, ebx
+add esp, 0x10
+lea ecx, [edi + ebx*4]
+add edx, edi
+mov dword [ebp - 0x210], ecx
+mov ecx, dword [ebp - 0x1f4]
+add eax, 0x281
+mov dword [ebp - 0x20c], edx
+mov dword [ebp - 0x1f8], 0
+mov dword [ebp - 0x228], eax
+jmp near loc_fffbef33 ; jmp 0xfffbef33
+
+loc_fffbed6c: ; not directly referenced
+xor ebx, ebx
+
+loc_fffbed6e: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffbedcb ; jne 0xfffbedcb
+push eax
+push 0
+push 0
+push 3
+push 0xff
+push 0
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+cmp byte [edi + 0x36c9], 2
+jne short loc_fffbedcb ; jne 0xfffbedcb
+mov ecx, dword [ebp - 0x1fc]
+imul eax, ebx, 0xcc
+mov edx, ebx
+push 0
+push 1
+movzx eax, byte [ecx + eax + 0xe2]
+mov ecx, 0xff
+push eax
+mov eax, edi
+push 1
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffbedcb: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbed6e ; jne 0xfffbed6e
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+cmp dword [ebp - 0x208], 0
+jne short loc_fffbee47 ; jne 0xfffbee47
+mov ecx, dword [ebp - 0x1f4]
+mov edx, 6
+mov eax, dword [ecx + 0x3210]
+mov dword [ecx + 0x3218], eax
+mov eax, dword [ecx + 0x3214]
+mov dword [ecx + 0x321c], eax
+mov eax, dword [ecx + 0x3258]
+mov dword [ecx + 0x3260], eax
+mov eax, dword [ecx + 0x325c]
+mov dword [ecx + 0x3264], eax
+lea eax, [ebp - 0x1dc]
+mov ecx, esi
+push 1
+push 1
+push eax
+mov eax, edi
+push 0
+push 0x40
+push 0xffffffffffffffc0
+push 3
+push 0xff
+call fcn_fffcf3cd ; call 0xfffcf3cd
+add esp, 0x20
+jmp short loc_fffbee56 ; jmp 0xfffbee56
+
+loc_fffbee47: ; not directly referenced
+mov ecx, dword [ebp - 0x1ec]
+mov edx, esi
+mov eax, edi
+call fcn_fffc93f9 ; call 0xfffc93f9
+
+loc_fffbee56: ; not directly referenced
+mov ebx, dword [ebp - 0x1f4]
+mov dword [ebp - 0x1f8], 0
+
+loc_fffbee66: ; not directly referenced
+imul eax, dword [ebp - 0x1f8], 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffbeee7 ; jne 0xfffbeee7
+mov eax, dword [ebx + 0x3218]
+cmp dword [ebx + 0x3210], eax
+cmovbe eax, dword [ebx + 0x3210]
+mov dword [ebx + 0x3210], eax
+mov eax, dword [ebx + 0x321c]
+cmp dword [ebx + 0x3214], eax
+cmovbe eax, dword [ebx + 0x3214]
+mov dword [ebx + 0x3214], eax
+cmp byte [edi + 0x36c9], 2
+jne short loc_fffbeee7 ; jne 0xfffbeee7
+mov edx, dword [ebp - 0x1f8]
+mov ecx, dword [ebp - 0x1fc]
+push 0
+push 1
+imul eax, edx, 0xcc
+movzx eax, byte [ecx + eax + 0xe2]
+mov ecx, 0xff
+neg eax
+push eax
+mov eax, edi
+push 1
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffbeee7: ; not directly referenced
+inc dword [ebp - 0x1f8]
+add ebx, 0x48
+cmp dword [ebp - 0x1f8], 2
+jne loc_fffbee66 ; jne 0xfffbee66
+jmp near loc_fffbecb4 ; jmp 0xfffbecb4
+
+loc_fffbef02: ; not directly referenced
+add dword [ebp - 0x1f8], 0x13c3
+add ecx, 0x48
+add dword [ebp - 0x210], 0x13c3
+add dword [ebp - 0x20c], 0x13c3
+cmp dword [ebp - 0x1f8], 0x2786
+je loc_fffbf0bc ; je 0xfffbf0bc
+
+loc_fffbef33: ; not directly referenced
+mov ebx, dword [ebp - 0x1f8]
+mov al, byte [ebp - 0x1ec]
+test byte [edi + ebx + 0x381a], al
+je short loc_fffbef02 ; je 0xfffbef02
+mov eax, dword [ebp - 0x1f8]
+mov ebx, 0xa
+xor edx, edx
+mov esi, 0xa
+mov byte [ebp - 0x204], 0
+lea eax, [edi + eax + 0x3756]
+mov dword [ebp - 0x224], eax
+mov eax, dword [ecx + 0x3210]
+div ebx
+mov ebx, dword [ebp - 0x210]
+xor edx, edx
+mov byte [ebx + 0x39c7], al
+mov eax, dword [ecx + 0x3214]
+div esi
+xor edx, edx
+mov byte [ebx + 0x39c8], al
+mov eax, dword [ecx + 0x3450]
+div esi
+xor edx, edx
+mov byte [ebx + 0x39ca], al
+mov eax, dword [ecx + 0x3454]
+div esi
+xor edx, edx
+mov byte [ebx + 0x39c9], al
+mov eax, dword [ecx + 0x2d90]
+mov ebx, dword [ebp - 0x20c]
+div esi
+xor edx, edx
+mov byte [ebx + 0x4757], al
+mov eax, dword [ecx + 0x2d94]
+div esi
+xor edx, edx
+mov byte [ebx + 0x4758], al
+mov eax, dword [ecx + 0x2fd0]
+div esi
+xor edx, edx
+mov byte [ebx + 0x475f], al
+mov eax, dword [ecx + 0x2fd4]
+div esi
+mov byte [ebx + 0x4760], al
+
+loc_fffbeff8: ; not directly referenced
+mov al, byte [ebp - 0x204]
+cmp al, byte [edi + 0x2488]
+jae loc_fffbef02 ; jae 0xfffbef02
+movzx ebx, al
+imul ebx, ebx, 0x18
+add ebx, dword [ebp - 0x228]
+add ebx, dword [ebp - 0x224]
+mov byte [ebp - 0x21f], 8
+
+loc_fffbf023: ; not directly referenced
+mov eax, dword [ecx + 0x26d0]
+mov esi, 0xa
+xor edx, edx
+add ebx, 3
+div esi
+xor edx, edx
+mov byte [ebx - 3], al
+mov eax, dword [ecx + 0x26d4]
+div esi
+xor edx, edx
+mov byte [ebx - 1], al
+mov eax, dword [ecx + 0x2b50]
+div esi
+xor edx, edx
+mov byte [ebx + 0x35d], al
+mov eax, dword [ecx + 0x2b54]
+div esi
+xor edx, edx
+mov byte [ebx + 0x35f], al
+mov eax, dword [ecx + 0x2490]
+div esi
+xor edx, edx
+mov byte [ebx + 0x6bf], al
+mov eax, dword [ecx + 0x2494]
+div esi
+xor edx, edx
+mov byte [ebx + 0x6bd], al
+mov eax, dword [ecx + 0x2910]
+div esi
+xor edx, edx
+mov byte [ebx + 0xa1f], al
+mov eax, dword [ecx + 0x2914]
+div esi
+mov byte [ebx + 0xa1d], al
+dec byte [ebp - 0x21f]
+jne loc_fffbf023 ; jne 0xfffbf023
+inc byte [ebp - 0x204]
+jmp near loc_fffbeff8 ; jmp 0xfffbeff8
+
+loc_fffbf0bc: ; not directly referenced
+inc dword [ebp - 0x1f0]
+add dword [ebp - 0x1f4], 0x90
+cmp dword [ebp - 0x1f0], 4
+jne loc_fffbeb18 ; jne 0xfffbeb18
+cmp dword [edi + 0x3756], 2
+jne short loc_fffbf0f0 ; jne 0xfffbf0f0
+xor ecx, ecx
+mov edx, 0x4198
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffbf0f0: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffbf107 ; jne 0xfffbf107
+xor ecx, ecx
+mov edx, 0x4598
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffbf107: ; not directly referenced
+mov eax, dword [ebp - 0x200]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbf115: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+add esp, 0xffffff80
+mov ebx, dword [ebp + 8]
+lea edi, [ebp - 0x60]
+mov byte [ebp - 0x67], 5
+mov byte [ebp - 0x66], 2
+mov eax, dword [ebx + 0x5edc]
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+mov dword [ebp - 0x6c], eax
+mov al, byte [ebx + 0x248e]
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+mov byte [ebp - 0x6d], al
+mov eax, dword [ebx + 0x188b]
+mov dword [ebp - 0x74], eax
+mov eax, dword [ebx + 0x2443]
+push 0
+push 5
+push edi
+call dword [eax + 0x60] ; ucall
+movzx edx, byte [ebp - 0x67]
+mov ecx, 1
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+movzx edx, byte [ebp - 0x66]
+mov ecx, 1
+mov word [ebp - 0x60], ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add esp, 0x10
+mov word [ebp - 0x5e], ax
+
+loc_fffbf196: ; not directly referenced
+mov eax, 1
+mov ecx, esi
+shl eax, cl
+test byte [ebx + 0x248d], al
+je short loc_fffbf1d2 ; je 0xfffbf1d2
+push edx
+mov ecx, 3
+push 2
+push 0
+push 0xf
+push 0xb
+push 0
+push edi
+lea edx, [ebp - 0x65]
+push edx
+push 2
+lea edx, [ebp - 0x67]
+push edx
+push 4
+push eax
+mov eax, ebx
+lea edx, [ebp - 0x56]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffbf1d2: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffbf196 ; jne 0xfffbf196
+push eax
+mov ecx, 3
+push eax
+mov eax, ebx
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 2
+lea edx, [ebx + 0x2490]
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+cmp dword [ebp - 0x74], 1
+jne loc_fffbf2df ; jne 0xfffbf2df
+lea eax, [ebx + 0x3756]
+mov edi, dword [ebp - 0x6c]
+mov dword [ebp - 0x78], eax
+movzx eax, byte [ebp - 0x6d]
+mov dword [ebp - 0x6c], 0
+add edi, 0x1c
+mov dword [ebp - 0x80], eax
+
+loc_fffbf222: ; not directly referenced
+mov eax, dword [ebp - 0x80]
+mov ecx, dword [ebp - 0x6c]
+bt eax, ecx
+jb short loc_fffbf248 ; jb 0xfffbf248
+
+loc_fffbf22d: ; not directly referenced
+inc dword [ebp - 0x6c]
+add edi, 0xcc
+add dword [ebp - 0x78], 0x13c3
+cmp dword [ebp - 0x6c], 2
+jne short loc_fffbf222 ; jne 0xfffbf222
+jmp near loc_fffbf2df ; jmp 0xfffbf2df
+
+loc_fffbf248: ; not directly referenced
+mov byte [ebp - 0x6d], 0
+
+loc_fffbf24c: ; not directly referenced
+mov al, byte [ebp - 0x6d]
+cmp al, byte [ebx + 0x2488]
+jae short loc_fffbf22d ; jae 0xfffbf22d
+mov edx, dword [ebp - 0x78]
+movzx esi, al
+mov byte [ebp - 0x74], 0
+mov cl, byte [edx + 0xc4]
+add esi, edx
+mov dword [ebp - 0x7c], esi
+mov byte [ebp - 0x6e], cl
+xor ecx, ecx
+
+loc_fffbf271: ; not directly referenced
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x6e], al
+je short loc_fffbf29d ; je 0xfffbf29d
+mov eax, dword [ebp - 0x7c]
+lea esi, [ecx + ecx*8]
+mov al, byte [eax + esi + 0x24d]
+mov dl, al
+and eax, 0xf
+shr dl, 4
+shl edx, 2
+cmp dl, al
+setne al
+or byte [ebp - 0x74], al
+
+loc_fffbf29d: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffbf271 ; jne 0xfffbf271
+cmp byte [ebx + 0x240e], 1
+je short loc_fffbf2b2 ; je 0xfffbf2b2
+cmp byte [ebp - 0x74], 1
+jne short loc_fffbf2d7 ; jne 0xfffbf2d7
+
+loc_fffbf2b2: ; not directly referenced
+movzx esi, byte [ebp - 0x6d]
+mov eax, ebx
+mov edx, dword [ebp - 0x6c]
+mov ecx, esi
+add esi, 8
+call fcn_fffa720e ; call 0xfffa720e
+or byte [edi + esi*4 + 0xb], 1
+mov ecx, dword [edi + esi*4 + 8]
+mov edx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffbf2d7: ; not directly referenced
+inc byte [ebp - 0x6d]
+jmp near loc_fffbf24c ; jmp 0xfffbf24c
+
+loc_fffbf2df: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbf2e9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x540
+mov esi, dword [ebp + 0xc]
+mov ebx, dword [ebp + 8]
+lea edi, [ebp - 0x4fa]
+mov dword [ebp - 0x520], edx
+mov edx, dword [ebp + 0x14]
+mov dword [ebp - 0x51c], eax
+mov dword [ebp - 0x52c], esi
+mov esi, dword [ebp + 0x18]
+mov dword [ebp - 0x524], ecx
+mov ecx, 0xa
+mov dword [ebp - 0x538], edx
+mov dword [ebp - 0x528], ebx
+mov ebx, dword [ebp + 0x10]
+mov dword [ebp - 0x530], esi
+mov esi, dword [ebp + 0x20]
+mov byte [ebp - 0x507], 4
+mov byte [ebp - 0x506], 1
+mov byte [ebp - 0x505], 5
+mov eax, esi
+mov dword [ebp - 0x534], esi
+mov esi, ref_fffd590c ; mov esi, 0xfffd590c
+mov byte [ebp - 0x541], al
+lea eax, [ebp - 0x4f0]
+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
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov edi, dword [ebp - 0x51c]
+mov dword [ebp - 0x503], 0
+mov esi, dword [edi + 0x2443]
+push 0xff
+push 0x4d8
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0xff
+push 0x54e
+push dword [ebp - 0x520]
+call dword [esi + 0x5c] ; ucall
+mov cl, byte [ebp - 0x524]
+mov al, byte [ebp - 0x528]
+and cl, byte [edi + 0x248e]
+and al, byte [edi + 0x248d]
+add esp, 0x10
+mov byte [ebp - 0x50d], 0
+mov edx, dword [ebp - 0x538]
+movzx esi, cl
+mov edi, eax
+xor eax, eax
+and cl, 1
+je short loc_fffbf439 ; je 0xfffbf439
+mov ecx, dword [ebp - 0x51c]
+mov eax, edi
+and al, byte [ecx + 0x381a]
+test al, al
+mov byte [ebp - 0x50d], al
+setne al
+
+loc_fffbf439: ; not directly referenced
+and esi, 2
+mov byte [ebp - 0x50c], 0
+je short loc_fffbf463 ; je 0xfffbf463
+mov esi, dword [ebp - 0x51c]
+mov ecx, edi
+and cl, byte [esi + 0x4bdd]
+mov esi, eax
+or esi, 2
+test cl, cl
+mov byte [ebp - 0x50c], cl
+cmovne eax, esi
+
+loc_fffbf463: ; not directly referenced
+mov cl, byte [ebx]
+movzx eax, al
+mov esi, dword [ebp - 0x520]
+mov dword [ebp - 0x524], eax
+mov byte [esi], cl
+mov cl, byte [edx]
+mov byte [esi + 4], cl
+mov cl, byte [ebx + 1]
+mov byte [esi + 1], cl
+mov cl, byte [edx + 1]
+mov byte [esi + 5], cl
+mov cl, byte [ebx + 2]
+mov byte [esi + 2], cl
+mov cl, byte [edx + 2]
+mov byte [esi + 6], cl
+mov cl, byte [ebx + 3]
+mov bl, byte [ebp - 0x530]
+mov byte [esi + 3], cl
+mov dl, byte [edx + 3]
+mov byte [esi + 8], bl
+mov byte [esi + 7], dl
+mov edx, eax
+movzx eax, byte [ebp - 0x52c]
+push ecx
+push ecx
+mov ecx, esi
+push 1
+push eax
+mov eax, dword [ebp - 0x51c]
+call fcn_fffb3a79 ; call 0xfffb3a79
+add esp, 0x10
+cmp dword [ebp + 0x24], 0
+je short loc_fffbf50e ; je 0xfffbf50e
+mov esi, dword [ebp - 0x51c]
+push ecx
+mov ecx, dword [ebp - 0x524]
+push 0
+push 0
+lea ebx, [esi + 0x2490]
+mov eax, esi
+push 0
+mov edx, ebx
+call fcn_fffc19af ; call 0xfffc19af
+mov ecx, dword [ebp - 0x524]
+pop eax
+mov eax, esi
+pop edx
+mov edx, ebx
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 1
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+
+loc_fffbf50e: ; not directly referenced
+cmp dword [ebp + 0x28], 0
+je short loc_fffbf547 ; je 0xfffbf547
+mov ebx, dword [ebp - 0x51c]
+sub esp, 0xc
+push ebx
+call fcn_fffbdcd9 ; call 0xfffbdcd9
+mov ecx, dword [ebp - 0x524]
+pop eax
+mov eax, ebx
+pop edx
+lea edx, [ebx + 0x2490]
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+
+loc_fffbf547: ; not directly referenced
+mov ebx, dword [ebp - 0x520]
+mov edx, edi
+xor ecx, ecx
+mov al, byte [ebp - 0x534]
+movzx edi, dl
+mov dword [ebp - 0x52c], edi
+mov byte [ebx + 0x539], al
+lea eax, [ebx + 0x534]
+mov dword [ebp - 0x538], eax
+mov eax, dword [ebp + 0x1c]
+lea ebx, [ebp - 0x507]
+mov dword [ebp - 0x530], eax
+xor eax, eax
+
+loc_fffbf583: ; not directly referenced
+mov dl, byte [ebp - 0x530]
+sub edx, dword [ebp + 0x1c]
+cmp dl, byte [ebp - 0x541]
+jae loc_fffbf9f9 ; jae 0xfffbf9f9
+mov edi, dword [ebp - 0x530]
+mov esi, dword [ebp - 0x538]
+mov dl, byte [edi]
+mov byte [esi], dl
+cmp byte [edi], 6
+ja loc_fffbf92d ; ja 0xfffbf92d
+movzx edx, byte [edi]
+jmp dword [edx*4 + ref_fffd5918] ; ujmp: jmp dword [edx*4 - 0x2a6e8]
+
+loc_fffbf5bb: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0x524]
+push 1
+push 0
+push 0xf
+push 0xc
+push 0xfffffffffffffff5
+lea eax, [ebp - 0x4fa]
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+mov eax, dword [ebp - 0x51c]
+push 2
+lea ebx, [ebp - 0x509]
+push ebx
+push 0
+push dword [ebp - 0x52c]
+lea esi, [ebp - 0x3f8]
+mov edx, esi
+call fcn_fffca96e ; call 0xfffca96e
+mov eax, dword [ebp - 0x520]
+mov ecx, 0x3e
+add esp, 0x30
+lea edi, [eax + 0x14f]
+mov eax, 1
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov cl, 2
+jmp near loc_fffbf92d ; jmp 0xfffbf92d
+
+loc_fffbf620: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0x524]
+push 0
+push 9
+push 0xf
+push 6
+push 0xfffffffffffffff6
+lea eax, [ebp - 0x4fa]
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+mov eax, dword [ebp - 0x51c]
+push 2
+lea ebx, [ebp - 0x50b]
+push ebx
+push 1
+push dword [ebp - 0x52c]
+lea esi, [ebp - 0x110]
+mov edx, esi
+call fcn_fffca96e ; call 0xfffca96e
+mov eax, dword [ebp - 0x520]
+mov ecx, 0x3e
+add esp, 0x30
+lea edi, [eax + 0x437]
+mov eax, 4
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov cl, 2
+jmp near loc_fffbf92d ; jmp 0xfffbf92d
+
+loc_fffbf685: ; not directly referenced
+lea eax, [ebp - 0x208]
+xor ebx, ebx
+mov dword [ebp - 0x534], eax
+
+loc_fffbf693: ; not directly referenced
+mov eax, dword [ebp - 0x52c]
+bt eax, ebx
+jb short loc_fffbf6bd ; jb 0xfffbf6bd
+
+loc_fffbf69e: ; not directly referenced
+inc ebx
+add dword [ebp - 0x534], 0x3e
+cmp ebx, 4
+jne short loc_fffbf693 ; jne 0xfffbf693
+mov cl, 2
+mov eax, 3
+lea ebx, [ebp - 0x509]
+jmp near loc_fffbf92d ; jmp 0xfffbf92d
+
+loc_fffbf6bd: ; not directly referenced
+push edi
+mov esi, dword [ebp - 0x534]
+mov cl, bl
+push 2
+push 0
+push 0xf
+push 0xb
+mov edx, esi
+push 0
+lea eax, [ebp - 0x4fa]
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+push 2
+lea eax, [ebp - 0x509]
+push eax
+mov eax, dword [ebp - 0x51c]
+push 4
+mov dword [ebp - 0x528], 1
+shl dword [ebp - 0x528], cl
+push dword [ebp - 0x528]
+mov ecx, dword [ebp - 0x524]
+call fcn_fffca96e ; call 0xfffca96e
+imul eax, ebx, 0x3e
+mov edi, dword [ebp - 0x520]
+mov ecx, 0x3e
+add esp, 0x30
+lea edx, [ebp - 0x4f0]
+lea edi, [edi + eax + 0x33f]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea ecx, [ebp - 0x50d]
+lea edi, [ebp - 0x50b]
+
+loc_fffbf73e: ; not directly referenced
+movzx esi, byte [ecx]
+test dword [ebp - 0x528], esi
+je short loc_fffbf779 ; je 0xfffbf779
+mov si, word [edx + eax + 0x30c]
+cmp si, word [edx + 0x30c]
+jae short loc_fffbf761 ; jae 0xfffbf761
+mov word [edx + 0x30c], si
+
+loc_fffbf761: ; not directly referenced
+mov si, word [edx + eax + 0x310]
+cmp si, word [edx + 0x310]
+jae short loc_fffbf779 ; jae 0xfffbf779
+mov word [edx + 0x310], si
+
+loc_fffbf779: ; not directly referenced
+inc ecx
+add edx, 2
+cmp ecx, edi
+je loc_fffbf69e ; je 0xfffbf69e
+jmp short loc_fffbf73e ; jmp 0xfffbf73e
+
+loc_fffbf787: ; not directly referenced
+mov eax, dword [ebp - 0x51c]
+lea ebx, [ebp - 0x300]
+mov dword [ebp - 0x534], ebx
+cmp dword [eax + 0x188b], 1
+setne al
+xor ebx, ebx
+lea eax, [eax + eax + 0xc]
+movsx eax, al
+mov dword [ebp - 0x53c], eax
+
+loc_fffbf7b2: ; not directly referenced
+mov eax, dword [ebp - 0x52c]
+bt eax, ebx
+jb short loc_fffbf7dc ; jb 0xfffbf7dc
+
+loc_fffbf7bd: ; not directly referenced
+inc ebx
+add dword [ebp - 0x534], 0x3e
+cmp ebx, 4
+jne short loc_fffbf7b2 ; jne 0xfffbf7b2
+mov cl, 2
+mov eax, 2
+lea ebx, [ebp - 0x50b]
+jmp near loc_fffbf92d ; jmp 0xfffbf92d
+
+loc_fffbf7dc: ; not directly referenced
+push esi
+mov cl, bl
+mov esi, dword [ebp - 0x534]
+push 0
+push 9
+push 0xf
+push dword [ebp - 0x53c]
+mov edx, esi
+lea eax, [ebp - 0x4fa]
+mov dword [ebp - 0x528], 1
+shl dword [ebp - 0x528], cl
+push 0
+mov ecx, dword [ebp - 0x524]
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+push 2
+lea eax, [ebp - 0x50b]
+push eax
+mov eax, dword [ebp - 0x51c]
+push 5
+push dword [ebp - 0x528]
+call fcn_fffca96e ; call 0xfffca96e
+imul eax, ebx, 0x3e
+mov edi, dword [ebp - 0x520]
+mov ecx, 0x3e
+add esp, 0x30
+lea edx, [ebp - 0x4f0]
+lea edi, [edi + eax + 0x247]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea ecx, [ebp - 0x50d]
+
+loc_fffbf85b: ; not directly referenced
+movzx esi, byte [ecx]
+test dword [ebp - 0x528], esi
+je short loc_fffbf896 ; je 0xfffbf896
+mov si, word [edx + eax + 0x214]
+cmp si, word [edx + 0x214]
+jae short loc_fffbf87e ; jae 0xfffbf87e
+mov word [edx + 0x214], si
+
+loc_fffbf87e: ; not directly referenced
+mov si, word [edx + eax + 0x218]
+cmp si, word [edx + 0x218]
+jae short loc_fffbf896 ; jae 0xfffbf896
+mov word [edx + 0x218], si
+
+loc_fffbf896: ; not directly referenced
+inc ecx
+add edx, 2
+lea edi, [ebp - 0x50b]
+cmp ecx, edi
+je loc_fffbf7bd ; je 0xfffbf7bd
+jmp short loc_fffbf85b ; jmp 0xfffbf85b
+
+loc_fffbf8aa: ; not directly referenced
+mov eax, dword [ebp - 0x51c]
+cmp dword [eax + 0x188b], 1
+jne short loc_fffbf8ca ; jne 0xfffbf8ca
+call fcn_fffa9b8c ; call 0xfffa9b8c
+mov edx, 0x2f
+mov eax, 8
+jmp short loc_fffbf8d1 ; jmp 0xfffbf8d1
+
+loc_fffbf8ca: ; not directly referenced
+mov edx, 7
+xor eax, eax
+
+loc_fffbf8d1: ; not directly referenced
+push ecx
+mov ecx, dword [ebp - 0x524]
+push 0
+push 9
+push 0xf
+push edx
+push eax
+lea eax, [ebp - 0x4fa]
+push eax
+lea eax, [ebp - 0x4ff]
+push eax
+mov eax, dword [ebp - 0x51c]
+push 2
+lea ebx, [ebp - 0x50b]
+push ebx
+push 6
+push dword [ebp - 0x52c]
+lea edx, [ebp - 0x4f0]
+lea esi, [ebp - 0x4f0]
+call fcn_fffca96e ; call 0xfffca96e
+mov eax, dword [ebp - 0x520]
+mov ecx, 0x3e
+add esp, 0x30
+lea edi, [eax + 0x57]
+xor eax, eax
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov cl, 2
+
+loc_fffbf92d: ; not directly referenced
+imul edi, eax, 0x7c
+mov dword [ebp - 0x528], 0
+mov dword [ebp - 0x53c], edi
+
+loc_fffbf940: ; not directly referenced
+mov edi, dword [ebp - 0x528]
+cmp byte [ebp + edi - 0x50d], 0
+je loc_fffbf9d5 ; je 0xfffbf9d5
+mov edi, dword [ebp - 0x53c]
+lea edx, [ebp - 0x4f0]
+add edi, dword [ebp - 0x528]
+add edi, edi
+add edi, edx
+mov dword [ebp - 0x540], edi
+xor edi, edi
+jmp short loc_fffbf9cf ; jmp 0xfffbf9cf
+
+loc_fffbf974: ; not directly referenced
+mov dl, byte [ebx + edi]
+xor esi, esi
+mov byte [ebp - 0x534], dl
+cmp dl, 0x21
+ja short loc_fffbf98e ; ja 0xfffbf98e
+movzx esi, dl
+movzx esi, byte [esi + ref_fffd5f1c] ; movzx esi, byte [esi - 0x2a0e4]
+
+loc_fffbf98e: ; not directly referenced
+mov edx, esi
+movzx esi, dl
+mov dl, byte [ebp - 0x534]
+mov dword [ebp - 0x548], eax
+mov eax, dword [ebp - 0x520]
+mov byte [ebp + esi - 0x503], dl
+mov edx, dword [ebp - 0x528]
+add esi, esi
+lea edx, [edx + esi + 0x20]
+mov esi, dword [ebp - 0x540]
+mov si, word [esi + edi*4 + 0x24]
+inc edi
+mov word [eax + edx*2 + 3], si
+mov eax, dword [ebp - 0x548]
+
+loc_fffbf9cf: ; not directly referenced
+mov edx, edi
+cmp cl, dl
+ja short loc_fffbf974 ; ja 0xfffbf974
+
+loc_fffbf9d5: ; not directly referenced
+inc dword [ebp - 0x528]
+cmp dword [ebp - 0x528], 2
+jne loc_fffbf940 ; jne 0xfffbf940
+inc dword [ebp - 0x530]
+inc dword [ebp - 0x538]
+jmp near loc_fffbf583 ; jmp 0xfffbf583
+
+loc_fffbf9f9: ; not directly referenced
+mov eax, dword [ebp - 0x520]
+lea ebx, [ebp - 0x503]
+mov dword [ebp - 0x524], ebx
+mov byte [ebp - 0x52c], 0
+mov byte [eax + 0x52f], 0
+mov dword [ebp - 0x528], eax
+
+loc_fffbfa1f: ; not directly referenced
+mov eax, dword [ebp - 0x524]
+mov bl, byte [eax]
+test bl, bl
+je loc_fffbfad2 ; je 0xfffbfad2
+mov ecx, dword [ebp - 0x520]
+xor esi, esi
+movzx eax, byte [ebp - 0x52c]
+mov edi, dword [ebp - 0x51c]
+mov byte [ecx + eax + 0x530], bl
+lea eax, [ecx + eax*4]
+inc byte [ecx + 0x52f]
+add edi, 0x49be
+mov dword [ebp - 0x530], eax
+movzx eax, bl
+mov dword [ebp - 0x534], eax
+
+loc_fffbfa69: ; not directly referenced
+cmp byte [ebp + esi - 0x50d], 0
+je short loc_fffbfac0 ; je 0xfffbfac0
+mov edx, dword [ebp - 0x534]
+mov ecx, 1
+mov eax, dword [ebp - 0x51c]
+call fcn_fffb13cf ; call 0xfffb13cf
+cmp bl, 2
+jne short loc_fffbfaa1 ; jne 0xfffbfaa1
+cmp byte [edi + 0x128], 5
+mov dl, byte [edi]
+je short loc_fffbfa9e ; je 0xfffbfa9e
+cmp dl, 5
+jne short loc_fffbfaa1 ; jne 0xfffbfaa1
+
+loc_fffbfa9e: ; not directly referenced
+add eax, 0x50
+
+loc_fffbfaa1: ; not directly referenced
+mov ecx, dword [ebp - 0x528]
+mov dx, word [ecx + esi*2 + 0x43]
+mov ecx, dword [ebp - 0x530]
+cmp dx, ax
+cmovbe eax, edx
+mov word [ecx + esi*2 + 0x53a], ax
+
+loc_fffbfac0: ; not directly referenced
+inc esi
+add edi, 0x13c3
+cmp esi, 2
+jne short loc_fffbfa69 ; jne 0xfffbfa69
+inc byte [ebp - 0x52c]
+
+loc_fffbfad2: ; not directly referenced
+inc dword [ebp - 0x524]
+add dword [ebp - 0x528], 4
+lea eax, [ebp - 0x4ff]
+cmp dword [ebp - 0x524], eax
+jne loc_fffbfa1f ; jne 0xfffbfa1f
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffbfaf9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x57c
+mov ebx, dword [ebp + 0x10]
+cmp byte [eax + 0x248b], 1
+mov dword [ebp - 0x50c], eax
+mov dword [ebp - 0x574], ecx
+mov dword [ebp - 0x53c], ebx
+mov byte [ebp - 0x566], dl
+mov byte [ebp - 0x535], cl
+mov byte [ebp - 0x50e], bl
+jne short loc_fffbfb5b ; jne 0xfffbfb5b
+mov al, byte [eax + 0x248c]
+lea edx, [eax + 4]
+mov byte [ebp - 0x508], al
+mov byte [ebp - 0x507], al
+add eax, 2
+mov byte [ebp - 0x506], dl
+mov byte [ebp - 0x505], al
+jmp short loc_fffbfb77 ; jmp 0xfffbfb77
+
+loc_fffbfb5b: ; not directly referenced
+mov byte [ebp - 0x508], 1
+mov byte [ebp - 0x507], 1
+mov byte [ebp - 0x506], 1
+mov byte [ebp - 0x505], 1
+
+loc_fffbfb77: ; not directly referenced
+mov ebx, dword [ebp - 0x53c]
+mov al, bl
+shr al, 4
+inc eax
+mov byte [ebp - 0x520], al
+cmp bl, 9
+je short loc_fffbfbaa ; je 0xfffbfbaa
+cmp bl, 8
+je short loc_fffbfbba ; je 0xfffbfbba
+cmp bl, 0xa
+sete al
+mov byte [ebp - 0x50d], al
+shl eax, 2
+mov byte [ebp - 0x50f], al
+jmp short loc_fffbfbc8 ; jmp 0xfffbfbc8
+
+loc_fffbfbaa: ; not directly referenced
+mov byte [ebp - 0x50d], 1
+mov byte [ebp - 0x50f], 1
+jmp short loc_fffbfbc8 ; jmp 0xfffbfbc8
+
+loc_fffbfbba: ; not directly referenced
+mov byte [ebp - 0x50d], 1
+mov byte [ebp - 0x50f], 2
+
+loc_fffbfbc8: ; not directly referenced
+mov eax, dword [ebp - 0x53c]
+cmp al, 0x21
+sete dl
+cmp al, 0x11
+sete al
+or dl, al
+jne short loc_fffbfbef ; jne 0xfffbfbef
+cmp byte [ebp - 0x53c], 5
+mov dword [ebp - 0x52c], 0
+jne short loc_fffbfc01 ; jne 0xfffbfc01
+
+loc_fffbfbef: ; not directly referenced
+mov al, byte [ebp - 0x50d]
+xor eax, 1
+movzx eax, al
+mov dword [ebp - 0x52c], eax
+
+loc_fffbfc01: ; not directly referenced
+lea eax, [ebp - 0x4e0]
+xor edi, edi
+mov dword [ebp - 0x51c], eax
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x514], eax
+movzx eax, byte [ebp - 0x566]
+mov dword [ebp - 0x518], eax
+
+loc_fffbfc25: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+bt eax, edi
+jb short loc_fffbfc90 ; jb 0xfffbfc90
+
+loc_fffbfc30: ; not directly referenced
+inc edi
+add dword [ebp - 0x514], 0x48
+add dword [ebp - 0x51c], 0x24
+cmp edi, 2
+jne short loc_fffbfc25 ; jne 0xfffbfc25
+mov eax, dword [ebp - 0x518]
+mov byte [ebp - 0x510], 0
+mov dword [ebp - 0x514], 0
+sar eax, 1
+mov dword [ebp - 0x564], eax
+movzx eax, byte [ebp - 0x50d]
+and dword [ebp - 0x564], 1
+shl eax, 2
+mov dword [ebp - 0x560], eax
+movzx eax, byte [ebp - 0x520]
+mov dword [ebp - 0x57c], eax
+dec eax
+mov dword [ebp - 0x580], eax
+jmp short loc_fffbfcd3 ; jmp 0xfffbfcd3
+
+loc_fffbfc90: ; not directly referenced
+mov eax, dword [ebp - 0x50c]
+xor ecx, ecx
+mov esi, dword [ebp - 0x514]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x524], al
+
+loc_fffbfcaa: ; not directly referenced
+cmp byte [ebp - 0x524], cl
+jbe loc_fffbfc30 ; jbe 0xfffbfc30
+mov eax, dword [esi + 4]
+mov ebx, 0x14
+xor edx, edx
+add eax, dword [esi]
+add esi, 8
+div ebx
+mov ebx, dword [ebp - 0x51c]
+mov dword [ebx + ecx*4], eax
+inc ecx
+jmp short loc_fffbfcaa ; jmp 0xfffbfcaa
+
+loc_fffbfcd3: ; not directly referenced
+mov esi, dword [ebp - 0x514]
+mov eax, esi
+mov byte [ebp - 0x565], al
+lea eax, [esi + esi - 1]
+xor esi, esi
+mov dword [ebp - 0x540], eax
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x520], eax
+movzx eax, byte [ebp - 0x535]
+mov dword [ebp - 0x534], eax
+movzx eax, byte [ebp - 0x50f]
+mov dword [ebp - 0x558], eax
+
+loc_fffbfd10: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+bt eax, esi
+jae loc_fffbfe95 ; jae 0xfffbfe95
+lea eax, [esi + esi*8]
+lea edi, [ebp - 0x18]
+add edi, eax
+mov dword [ebp - 0x528], eax
+mov byte [ebp - 0x524], 0x7f
+mov byte [ebp - 0x51c], 0
+mov dword [ebp - 0x530], eax
+mov dword [ebp - 0x55c], edi
+jmp near loc_fffbfe7d ; jmp 0xfffbfe7d
+
+loc_fffbfd4c: ; not directly referenced
+movzx ebx, byte [ebp - 0x51c]
+mov eax, dword [ebp - 0x55c]
+movzx edi, byte [ebp - 0x50e]
+add eax, ebx
+mov byte [eax - 0x4da], 0
+mov byte [eax - 0x4ec], 0
+mov eax, dword [ebp - 0x530]
+lea ecx, [eax + ebx]
+mov eax, dword [ebp + ecx*4 - 0x4e0]
+shl ecx, 5
+lea edx, [eax - 2]
+mov dword [ebp + ecx - 0x498], edx
+lea ecx, [edi - 8]
+cmp cl, 1
+ja loc_fffbfeae ; ja 0xfffbfeae
+push 1
+push 0
+push 0
+push 0
+push ebx
+push dword [ebp - 0x534]
+imul edx, dword [ebp - 0x540]
+push esi
+push 0
+push 0
+push edx
+
+loc_fffbfdb5: ; not directly referenced
+push dword [ebp - 0x558]
+push dword [ebp - 0x50c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+
+loc_fffbfdc9: ; not directly referenced
+cmp byte [ebp - 0x50d], 0
+jne loc_fffbfedf ; jne 0xfffbfedf
+
+loc_fffbfdd6: ; not directly referenced
+cmp dword [ebp - 0x52c], 0
+je short loc_fffbfe11 ; je 0xfffbfe11
+add ebx, dword [ebp - 0x530]
+mov edi, dword [ebp - 0x524]
+shl ebx, 5
+mov eax, dword [ebp + ebx - 0x498]
+mov ecx, edi
+movzx edx, cl
+cmp eax, edx
+cmovb edi, eax
+mov eax, edi
+mov byte [ebp - 0x524], al
+movzx eax, al
+mov dword [ebp + ebx - 0x498], eax
+
+loc_fffbfe11: ; not directly referenced
+movzx eax, byte [ebp - 0x51c]
+mov edi, dword [ebp - 0x528]
+lea edx, [eax + edi]
+shl edx, 5
+lea ebx, [ebp + edx - 0x258]
+mov dword [ebp - 0x544], ebx
+mov ebx, dword [ebp - 0x520]
+shl eax, 4
+add eax, dword [ebp - 0x514]
+lea edi, [ebp + edx - 0x498]
+xor edx, edx
+lea eax, [ebx + eax*4]
+mov dword [ebp - 0x548], eax
+xor eax, eax
+
+loc_fffbfe54: ; not directly referenced
+mov ebx, dword [edi + edx]
+mov ecx, dword [ebp - 0x544]
+add edx, dword [ebp - 0x560]
+mov dword [ecx + eax], ebx
+mov ecx, dword [ebp - 0x548]
+mov dword [ecx + eax*2], ebx
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffbfe54 ; jne 0xfffbfe54
+inc byte [ebp - 0x51c]
+
+loc_fffbfe7d: ; not directly referenced
+mov edi, dword [ebp - 0x50c]
+mov al, byte [ebp - 0x51c]
+cmp al, byte [edi + 0x2488]
+jb loc_fffbfd4c ; jb 0xfffbfd4c
+
+loc_fffbfe95: ; not directly referenced
+inc esi
+add dword [ebp - 0x520], 0x240
+cmp esi, 2
+jne loc_fffbfd10 ; jne 0xfffbfd10
+jmp near loc_fffc0080 ; jmp 0xfffc0080
+
+loc_fffbfeae: ; not directly referenced
+cmp byte [ebp - 0x50e], 0xa
+jne loc_fffbfdc9 ; jne 0xfffbfdc9
+push 1
+add eax, 2
+push 0
+push 0
+push 0
+push ebx
+push dword [ebp - 0x534]
+imul eax, dword [ebp - 0x540]
+push esi
+push 0
+push 0
+push eax
+jmp near loc_fffbfdb5 ; jmp 0xfffbfdb5
+
+loc_fffbfedf: ; not directly referenced
+movzx eax, byte [ebp - 0x51c]
+mov edi, dword [ebp - 0x520]
+mov edx, eax
+add eax, dword [ebp - 0x528]
+shl edx, 4
+add edx, dword [ebp - 0x514]
+shl eax, 5
+lea eax, [ebp + eax - 0x498]
+mov dword [ebp - 0x544], eax
+lea edi, [edi + edx*4]
+xor eax, eax
+
+loc_fffbff12: ; not directly referenced
+mov edx, dword [edi + eax*2]
+mov ecx, 0xf
+cmp edx, 0xf
+cmova edx, ecx
+mov ecx, dword [ebp - 0x544]
+mov dword [ecx + eax], edx
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffbff12 ; jne 0xfffbff12
+jmp near loc_fffbfdd6 ; jmp 0xfffbfdd6
+
+loc_fffbff36: ; not directly referenced
+inc al
+je loc_fffc0675 ; je 0xfffc0675
+mov eax, dword [ebp - 0x50c]
+mov ecx, 4
+mov edx, 0x4800
+call fcn_fffae566 ; call 0xfffae566
+mov dword [ebp - 0x520], 0
+
+loc_fffbff5d: ; not directly referenced
+mov eax, dword [ebp - 0x57c]
+cmp dword [ebp - 0x520], eax
+jae loc_fffc000b ; jae 0xfffc000b
+mov al, byte [ebp - 0x510]
+xor ebx, ebx
+and eax, 1
+mov byte [ebp - 0x558], al
+
+loc_fffbff80: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+bt eax, ebx
+jb loc_fffc00fb ; jb 0xfffc00fb
+
+loc_fffbff8f: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffbff80 ; jne 0xfffbff80
+mov esi, dword [ebp - 0x50c]
+xor eax, eax
+mov edi, dword [ebp - 0x520]
+push edx
+mov edx, dword [ebp - 0x518]
+movzx ecx, byte [esi + 0x248b]
+test edi, edi
+push 0
+sete al
+push eax
+lea eax, [ebp - 0x508]
+push eax
+mov eax, esi
+call fcn_fffb0f94 ; call 0xfffb0f94
+mov eax, dword [ebp - 0x580]
+add esp, 0x10
+cmp edi, eax
+jae loc_fffc0298 ; jae 0xfffc0298
+mov eax, dword [ebp - 0x50c]
+xor edi, edi
+mov cl, 1
+mov al, byte [eax + 0x3748]
+mov byte [ebp - 0x51c], al
+
+loc_fffbffee: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+bt eax, edi
+jb loc_fffc0222 ; jb 0xfffc0222
+
+loc_fffbfffd: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffbffee ; jne 0xfffbffee
+test cl, cl
+je loc_fffc0298 ; je 0xfffc0298
+
+loc_fffc000b: ; not directly referenced
+lea eax, [ebp - 0x498]
+mov dword [ebp - 0x530], eax
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x534], 0
+mov dword [ebp - 0x51c], 0
+mov dword [ebp - 0x55c], eax
+movzx eax, byte [ebp - 0x535]
+mov dword [ebp - 0x578], eax
+
+loc_fffc0041: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+mov esi, dword [ebp - 0x51c]
+bt eax, esi
+jb loc_fffc02a3 ; jb 0xfffc02a3
+
+loc_fffc0056: ; not directly referenced
+inc dword [ebp - 0x51c]
+add dword [ebp - 0x530], 0x120
+add dword [ebp - 0x55c], 0x240
+add dword [ebp - 0x534], 9
+cmp dword [ebp - 0x51c], 2
+jne short loc_fffc0041 ; jne 0xfffc0041
+
+loc_fffc0080: ; not directly referenced
+mov al, 0xff
+test byte [ebp - 0x566], 1
+je short loc_fffc00b0 ; je 0xfffc00b0
+mov esi, dword [ebp - 0x50c]
+xor edx, edx
+mov cl, byte [esi + 0x2488]
+
+loc_fffc0099: ; not directly referenced
+cmp cl, dl
+jbe short loc_fffc00b0 ; jbe 0xfffc00b0
+mov bl, byte [ebp + edx - 0x504]
+and bl, byte [ebp + edx - 0x4f2]
+inc edx
+and eax, ebx
+jmp short loc_fffc0099 ; jmp 0xfffc0099
+
+loc_fffc00b0: ; not directly referenced
+cmp dword [ebp - 0x564], 0
+je loc_fffbff36 ; je 0xfffbff36
+mov edi, dword [ebp - 0x50c]
+lea esi, [ebp - 0x504]
+mov cl, byte [edi + 0x2488]
+lea edi, [ebp - 0x4f2]
+mov edx, edi
+mov byte [ebp - 0x51c], cl
+
+loc_fffc00dd: ; not directly referenced
+mov bl, dl
+mov ecx, edi
+inc esi
+sub ebx, ecx
+cmp bl, byte [ebp - 0x51c]
+jae loc_fffbff36 ; jae 0xfffbff36
+mov bl, byte [edx + 9]
+inc edx
+and bl, byte [esi + 8]
+and eax, ebx
+jmp short loc_fffc00dd ; jmp 0xfffc00dd
+
+loc_fffc00fb: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+lea ecx, [ebx + 1]
+mov byte [ebp - 0x51c], 0
+sar eax, cl
+mov dword [ebp - 0x528], eax
+lea eax, [ebx + ebx*8]
+mov dword [ebp - 0x530], eax
+
+loc_fffc011c: ; not directly referenced
+mov esi, dword [ebp - 0x50c]
+mov al, byte [ebp - 0x51c]
+cmp al, byte [esi + 0x2488]
+jae loc_fffbff8f ; jae 0xfffbff8f
+cmp byte [ebp - 0x50d], 0
+movzx eax, byte [ebp - 0x51c]
+je short loc_fffc01c3 ; je 0xfffc01c3
+add eax, dword [ebp - 0x530]
+xor ecx, ecx
+mov dl, byte [ebp - 0x565]
+shl eax, 5
+lea eax, [ebp + eax - 0x498]
+xor edx, 1
+mov dword [ebp - 0x524], eax
+xor eax, eax
+mov byte [ebp - 0x534], dl
+
+loc_fffc016d: ; not directly referenced
+cmp byte [ebp - 0x50e], 9
+sete dl
+test byte [ebp - 0x558], dl
+jne short loc_fffc0191 ; jne 0xfffc0191
+cmp byte [ebp - 0x50e], 9
+setne dl
+test byte [ebp - 0x534], dl
+je short loc_fffc01a1 ; je 0xfffc01a1
+
+loc_fffc0191: ; not directly referenced
+mov esi, dword [ebp - 0x524]
+mov edi, 0xf
+sub edi, dword [esi + ecx]
+jmp short loc_fffc01aa ; jmp 0xfffc01aa
+
+loc_fffc01a1: ; not directly referenced
+mov edi, dword [ebp - 0x524]
+mov edi, dword [edi + ecx]
+
+loc_fffc01aa: ; 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_fffc016d ; jne 0xfffc016d
+jmp short loc_fffc01db ; jmp 0xfffc01db
+
+loc_fffc01c3: ; not directly referenced
+lea edx, [ebx + ebx*8]
+mov esi, dword [ebp - 0x540]
+add eax, edx
+shl eax, 5
+imul esi, dword [ebp + eax - 0x498]
+mov eax, esi
+
+loc_fffc01db: ; not directly referenced
+push 1
+movzx edx, byte [ebp - 0x51c]
+push dword [ebp - 0x528]
+push 0
+push 0
+push edx
+movzx edx, byte [ebp - 0x535]
+push edx
+push ebx
+push 0
+push dword [ebp - 0x520]
+push eax
+movzx eax, byte [ebp - 0x50e]
+push eax
+push dword [ebp - 0x50c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+inc byte [ebp - 0x51c]
+jmp near loc_fffc011c ; jmp 0xfffc011c
+
+loc_fffc0222: ; not directly referenced
+mov ebx, dword [ebp - 0x50c]
+mov esi, edi
+shl esi, 0xa
+lea edx, [esi + 0x40e0]
+mov dword [ebp - 0x528], ecx
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+lea edx, [esi + 0x40e4]
+mov dword [ebp - 0x524], eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x528]
+inc eax
+sete bl
+cmp dword [ebp - 0x524], 0xffffffff
+sete al
+and ebx, eax
+and ebx, ecx
+mov ecx, 1
+cmp byte [ebp - 0x51c], 0
+je short loc_fffc0291 ; je 0xfffc0291
+mov eax, dword [ebp - 0x50c]
+lea edx, [esi + 0x40e8]
+call fcn_fffae52a ; call 0xfffae52a
+xor ecx, ecx
+inc al
+sete cl
+
+loc_fffc0291: ; not directly referenced
+and ecx, ebx
+jmp near loc_fffbfffd ; jmp 0xfffbfffd
+
+loc_fffc0298: ; not directly referenced
+inc dword [ebp - 0x520]
+jmp near loc_fffbff5d ; jmp 0xfffbff5d
+
+loc_fffc02a3: ; not directly referenced
+mov esi, dword [ebp - 0x51c]
+mov edi, dword [ebp - 0x50c]
+mov ebx, esi
+shl ebx, 0xa
+mov eax, edi
+lea edx, [ebx + 0x40e0]
+call fcn_fffae52a ; call 0xfffae52a
+lea edx, [ebx + 0x40e4]
+mov dword [ebp - 0x56c], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+lea edx, [ebx + 0x40e8]
+mov dword [ebp - 0x570], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov byte [ebp - 0x538], 0xff
+mov byte [ebp - 0x537], 0xff
+mov byte [ebp - 0x524], 0
+mov byte [ebp - 0x567], al
+lea eax, [esi + esi*8]
+lea esi, [ebp - 0x18]
+add esi, eax
+mov dword [ebp - 0x548], eax
+mov dword [ebp - 0x520], esi
+
+loc_fffc0316: ; not directly referenced
+mov eax, dword [ebp - 0x50c]
+mov dl, byte [eax + 0x2488]
+cmp byte [ebp - 0x524], dl
+jae loc_fffc0602 ; jae 0xfffc0602
+movzx eax, byte [ebp - 0x524]
+cmp al, 3
+ja short loc_fffc0350 ; ja 0xfffc0350
+mov esi, dword [ebp - 0x56c]
+lea ecx, [eax*8]
+shr esi, cl
+mov dword [ebp - 0x558], esi
+jmp short loc_fffc037a ; jmp 0xfffc037a
+
+loc_fffc0350: ; not directly referenced
+mov bl, byte [ebp - 0x567]
+cmp byte [ebp - 0x524], 7
+mov byte [ebp - 0x558], bl
+ja short loc_fffc037a ; ja 0xfffc037a
+mov edi, dword [ebp - 0x570]
+lea ecx, [eax*8 - 0x20]
+shr edi, cl
+mov dword [ebp - 0x558], edi
+
+loc_fffc037a: ; not directly referenced
+mov esi, dword [ebp - 0x534]
+lea edi, [ebp - 0x498]
+xor ecx, ecx
+movzx ebx, byte [ebp - 0x524]
+lea edx, [eax + esi]
+shl edx, 5
+lea esi, [edi + edx]
+mov dword [ebp - 0x544], esi
+mov esi, dword [ebp - 0x55c]
+shl eax, 4
+add eax, dword [ebp - 0x514]
+lea edi, [esi + eax*4]
+mov eax, dword [ebp - 0x520]
+add eax, ebx
+
+loc_fffc03b8: ; not directly referenced
+mov edx, 1
+movzx esi, byte [eax - 0x4da]
+shl edx, cl
+mov dword [ebp - 0x528], edx
+mov dl, byte [eax - 0x4ec]
+mov byte [ebp - 0x536], dl
+and edx, esi
+test byte [ebp - 0x528], dl
+jne short loc_fffc0443 ; jne 0xfffc0443
+mov dl, byte [ebp - 0x528]
+test byte [ebp - 0x558], dl
+je short loc_fffc0421 ; je 0xfffc0421
+or esi, edx
+mov edx, esi
+mov esi, dword [ebp - 0x544]
+mov byte [eax - 0x4da], dl
+mov esi, dword [esi]
+cmp dword [edi + ecx*8], esi
+jb short loc_fffc0443 ; jb 0xfffc0443
+mov dl, byte [ebp - 0x528]
+dec esi
+mov dword [edi + ecx*8], esi
+not edx
+and dl, byte [ebp - 0x536]
+mov byte [eax - 0x4ec], dl
+jmp short loc_fffc0443 ; jmp 0xfffc0443
+
+loc_fffc0421: ; not directly referenced
+mov dl, byte [ebp - 0x528]
+mov esi, dword [ebp - 0x544]
+or dl, byte [ebp - 0x536]
+mov byte [eax - 0x4ec], dl
+mov edx, dword [esi]
+cmp dword [edi + ecx*8], edx
+jae short loc_fffc0443 ; jae 0xfffc0443
+mov dword [edi + ecx*8], edx
+
+loc_fffc0443: ; not directly referenced
+mov esi, dword [ebp - 0x560]
+inc ecx
+add dword [ebp - 0x544], esi
+cmp ecx, 8
+jne loc_fffc03b8 ; jne 0xfffc03b8
+cmp byte [ebp - 0x50e], 1
+mov al, 0xf
+jne short loc_fffc0488 ; jne 0xfffc0488
+push eax
+mov ecx, dword [ebp - 0x578]
+push 0xf
+mov edx, dword [ebp - 0x51c]
+push dword [ebp - 0x514]
+mov eax, dword [ebp - 0x50c]
+push ebx
+call fcn_fffaec68 ; call 0xfffaec68
+add esp, 0x10
+
+loc_fffc0488: ; not directly referenced
+cmp byte [ebp - 0x50d], 0
+je short loc_fffc04e9 ; je 0xfffc04e9
+mov edi, dword [ebp - 0x534]
+lea esi, [ebp - 0x498]
+xor ecx, ecx
+add edi, ebx
+shl edi, 5
+add edi, esi
+mov dword [ebp - 0x528], edi
+
+loc_fffc04ac: ; not directly referenced
+mov edi, dword [ebp - 0x528]
+mov edx, 1
+shl edx, cl
+mov esi, dword [edi + ecx*4]
+movzx edi, al
+cmp esi, edi
+jb short loc_fffc04d0 ; jb 0xfffc04d0
+mov edi, dword [ebp - 0x520]
+or byte [ebx + edi - 0x4da], dl
+
+loc_fffc04d0: ; not directly referenced
+test esi, esi
+jne short loc_fffc04e1 ; jne 0xfffc04e1
+mov edi, dword [ebp - 0x520]
+or byte [ebx + edi - 0x4ec], dl
+
+loc_fffc04e1: ; not directly referenced
+inc ecx
+cmp ecx, 8
+jne short loc_fffc04ac ; jne 0xfffc04ac
+jmp short loc_fffc0523 ; jmp 0xfffc0523
+
+loc_fffc04e9: ; not directly referenced
+mov edi, dword [ebp - 0x548]
+movzx eax, al
+lea edx, [edi + ebx]
+shl edx, 5
+mov edx, dword [ebp + edx - 0x498]
+cmp edx, eax
+jb short loc_fffc0511 ; jb 0xfffc0511
+mov eax, dword [ebp - 0x520]
+mov byte [ebx + eax - 0x4da], 0xff
+
+loc_fffc0511: ; not directly referenced
+test edx, edx
+jne short loc_fffc0523 ; jne 0xfffc0523
+mov eax, dword [ebp - 0x520]
+mov byte [ebx + eax - 0x4ec], 0xff
+
+loc_fffc0523: ; not directly referenced
+mov eax, dword [ebp - 0x520]
+lea edx, [eax + ebx]
+mov al, byte [edx - 0x4ec]
+mov dl, byte [edx - 0x4da]
+and byte [ebp - 0x537], al
+and byte [ebp - 0x538], dl
+cmp dword [ebp - 0x52c], 0
+jne loc_fffc05f7 ; jne 0xfffc05f7
+cmp byte [ebp - 0x50d], 0
+je short loc_fffc05b0 ; je 0xfffc05b0
+mov esi, dword [ebp - 0x534]
+lea edi, [ebp - 0x498]
+lea ecx, [ebx + esi]
+mov bl, dl
+shl ecx, 5
+and ebx, eax
+lea esi, [edi + ecx]
+mov byte [ebp - 0x528], bl
+lea edi, [ebp + ecx - 0x258]
+xor ecx, ecx
+
+loc_fffc0582: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x528], bl
+jne short loc_fffc05a8 ; jne 0xfffc05a8
+test dl, bl
+jne short loc_fffc059a ; jne 0xfffc059a
+inc dword [esi + ecx*4]
+jmp short loc_fffc05a8 ; jmp 0xfffc05a8
+
+loc_fffc059a: ; not directly referenced
+test al, bl
+jne short loc_fffc05a8 ; jne 0xfffc05a8
+mov ebx, dword [edi + ecx*4]
+dec ebx
+mov dword [edi + ecx*4], ebx
+mov dword [esi + ecx*4], ebx
+
+loc_fffc05a8: ; not directly referenced
+inc ecx
+cmp ecx, 8
+jne short loc_fffc0582 ; jne 0xfffc0582
+jmp short loc_fffc05f7 ; jmp 0xfffc05f7
+
+loc_fffc05b0: ; not directly referenced
+mov cl, dl
+and ecx, eax
+inc cl
+je short loc_fffc05f7 ; je 0xfffc05f7
+inc dl
+je short loc_fffc05d0 ; je 0xfffc05d0
+mov eax, dword [ebp - 0x548]
+add eax, ebx
+shl eax, 5
+inc dword [ebp + eax - 0x498]
+jmp short loc_fffc05f7 ; jmp 0xfffc05f7
+
+loc_fffc05d0: ; not directly referenced
+inc al
+je short loc_fffc05f7 ; je 0xfffc05f7
+mov eax, dword [ebp - 0x548]
+add eax, ebx
+shl eax, 5
+mov esi, dword [ebp + eax - 0x258]
+lea edx, [esi - 1]
+mov dword [ebp + eax - 0x258], edx
+mov dword [ebp + eax - 0x498], edx
+
+loc_fffc05f7: ; not directly referenced
+inc byte [ebp - 0x524]
+jmp near loc_fffc0316 ; jmp 0xfffc0316
+
+loc_fffc0602: ; not directly referenced
+cmp dword [ebp - 0x52c], 1
+jne loc_fffc0056 ; jne 0xfffc0056
+mov al, byte [ebp - 0x537]
+mov edi, dword [ebp - 0x538]
+and eax, edi
+inc al
+je loc_fffc0056 ; je 0xfffc0056
+mov eax, edi
+inc al
+je short loc_fffc0637 ; je 0xfffc0637
+mov eax, dword [ebp - 0x530]
+inc dword [eax]
+
+loc_fffc0633: ; not directly referenced
+xor eax, eax
+jmp short loc_fffc065a ; jmp 0xfffc065a
+
+loc_fffc0637: ; not directly referenced
+imul ecx, dword [ebp - 0x51c], 0x120
+mov edi, dword [ebp - 0x530]
+mov eax, dword [ebp + ecx - 0x258]
+dec eax
+mov dword [ebp + ecx - 0x258], eax
+mov dword [edi], eax
+jmp short loc_fffc0633 ; jmp 0xfffc0633
+
+loc_fffc065a: ; not directly referenced
+cmp dl, al
+jbe loc_fffc0056 ; jbe 0xfffc0056
+mov esi, dword [ebp - 0x530]
+mov ecx, eax
+inc eax
+shl ecx, 5
+mov ebx, dword [esi]
+mov dword [esi + ecx], ebx
+jmp short loc_fffc065a ; jmp 0xfffc065a
+
+loc_fffc0675: ; not directly referenced
+cmp byte [ebp - 0x50d], 0
+jne loc_fffc0726 ; jne 0xfffc0726
+mov eax, dword [ebp + 8]
+xor edi, edi
+mov dword [ebp - 0x51c], eax
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x520], eax
+
+loc_fffc0696: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+bt eax, edi
+jb short loc_fffc06be ; jb 0xfffc06be
+
+loc_fffc06a1: ; not directly referenced
+inc edi
+add dword [ebp - 0x520], 0x48
+add dword [ebp - 0x51c], 0x240
+cmp edi, 2
+je loc_fffc07ef ; je 0xfffc07ef
+jmp short loc_fffc0696 ; jmp 0xfffc0696
+
+loc_fffc06be: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc06c0: ; not directly referenced
+mov eax, dword [ebp - 0x50c]
+cmp bl, byte [eax + 0x2488]
+jae short loc_fffc06a1 ; jae 0xfffc06a1
+movzx ecx, bl
+mov esi, dword [ebp - 0x51c]
+xor edx, edx
+mov eax, ecx
+shl eax, 4
+add eax, dword [ebp - 0x514]
+mov dword [ebp - 0x524], ecx
+lea esi, [esi + eax*4]
+mov eax, 0x7f
+
+loc_fffc06f2: ; not directly referenced
+movzx ecx, al
+cmp ecx, dword [esi + edx]
+movzx ecx, byte [esi + edx]
+cmova eax, ecx
+add edx, 8
+cmp edx, 0x40
+jne short loc_fffc06f2 ; jne 0xfffc06f2
+mov esi, dword [ebp - 0x524]
+imul eax, eax, 0xa
+inc ebx
+mov ecx, esi
+add ecx, esi
+mov esi, dword [ebp - 0x520]
+add ecx, dword [ebp - 0x514]
+mov dword [esi + ecx*4], eax
+jmp short loc_fffc06c0 ; jmp 0xfffc06c0
+
+loc_fffc0726: ; not directly referenced
+mov al, byte [ebp - 0x510]
+xor edi, edi
+mov esi, dword [ebp + 8]
+and eax, 1
+mov byte [ebp - 0x520], al
+
+loc_fffc073a: ; not directly referenced
+mov eax, dword [ebp - 0x518]
+xor edx, edx
+bt eax, edi
+jb short loc_fffc07b2 ; jb 0xfffc07b2
+
+loc_fffc0747: ; not directly referenced
+inc edi
+add esi, 0x240
+cmp edi, 2
+jne short loc_fffc073a ; jne 0xfffc073a
+push 2
+movzx eax, byte [ebp - 0x535]
+push 0
+push 0
+push 0
+push 0
+push eax
+movzx eax, byte [ebp - 0x50f]
+push 0
+push 1
+push 0
+push 0
+push eax
+push dword [ebp - 0x50c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp short loc_fffc07ef ; jmp 0xfffc07ef
+
+loc_fffc0785: ; not directly referenced
+cmp byte [ebp - 0x50e], 9
+sete bl
+test byte [ebp - 0x520], bl
+jne short loc_fffc07e2 ; jne 0xfffc07e2
+cmp byte [ebp - 0x50e], 9
+setne bl
+test byte [ebp - 0x51c], bl
+jne short loc_fffc07e2 ; jne 0xfffc07e2
+
+loc_fffc07a9: ; not directly referenced
+add eax, 8
+cmp eax, 0x40
+jne short loc_fffc0785 ; jne 0xfffc0785
+inc edx
+
+loc_fffc07b2: ; not directly referenced
+mov eax, dword [ebp - 0x50c]
+cmp dl, byte [eax + 0x2488]
+jae short loc_fffc0747 ; jae 0xfffc0747
+mov bl, byte [ebp - 0x565]
+movzx eax, dl
+shl eax, 4
+add eax, dword [ebp - 0x514]
+xor ebx, 1
+lea ecx, [esi + eax*4]
+xor eax, eax
+mov byte [ebp - 0x51c], bl
+jmp short loc_fffc0785 ; jmp 0xfffc0785
+
+loc_fffc07e2: ; not directly referenced
+mov ebx, 0xf
+sub ebx, dword [ecx + eax]
+mov dword [ecx + eax], ebx
+jmp short loc_fffc07a9 ; jmp 0xfffc07a9
+
+loc_fffc07ef: ; not directly referenced
+inc byte [ebp - 0x510]
+inc dword [ebp - 0x514]
+and byte [ebp - 0x510], 1
+cmp dword [ebp - 0x514], 2
+jne loc_fffbfcd3 ; jne 0xfffbfcd3
+push 2
+mov edx, 0
+push 0
+mov eax, 0x88888888
+push 0
+push 0
+push 0
+push dword [ebp - 0x574]
+cmp byte [ebp - 0x50d], 1
+push 0
+cmovne eax, edx
+push 1
+push 0
+push eax
+movzx eax, byte [ebp - 0x53c]
+push eax
+push dword [ebp - 0x50c]
+call fcn_fffcc900 ; call 0xfffcc900
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc0855: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, 0x36
+push ebx
+mov ebx, eax
+sub esp, 0x3c
+mov eax, dword [ebp + 8]
+cmp dword [ebx + 0x2480], 2
+mov dword [ebp - 0x28], edx
+mov dword [ebp - 0x24], eax
+mov byte [ebp - 0x2a], al
+mov eax, dword [ebx + 0x2443]
+mov dword [ebp - 0x38], eax
+jne short loc_fffc088c ; jne 0xfffc088c
+cmp byte [ebp - 0x24], 5
+mov al, 0x25
+cmove esi, eax
+
+loc_fffc088c: ; not directly referenced
+movzx eax, byte [ebp - 0x24]
+movzx edi, cl
+push ecx
+push ecx
+mov ecx, edi
+mov edx, eax
+mov dword [ebp - 0x1c], eax
+lea eax, [ebx + 0x2490]
+mov dword [ebp - 0x20], eax
+mov eax, 1
+shl eax, cl
+mov ecx, edx
+mov edx, dword [ebp - 0x20]
+movzx eax, al
+push eax
+mov eax, ebx
+push edi
+call fcn_fffa7e6c ; call 0xfffa7e6c
+add esp, 0x10
+test eax, eax
+jne loc_fffc0a25 ; jne 0xfffc0a25
+movzx eax, byte [ebp - 0x28]
+push edx
+push edx
+mov edx, dword [ebp - 0x20]
+push dword [ebp + 0x18]
+mov ecx, eax
+mov dword [ebp - 0x3c], eax
+mov eax, esi
+movzx esi, al
+mov eax, ebx
+push esi
+push dword [ebp + 0xc]
+push dword [ebp - 0x1c]
+push edi
+push edi
+call fcn_fffd13ed ; call 0xfffd13ed
+add esp, 0x20
+test eax, eax
+jne loc_fffc0a25 ; jne 0xfffc0a25
+mov ecx, dword [ebp - 0x1c]
+sub esp, 0xc
+mov eax, ebx
+mov edx, dword [ebp - 0x20]
+push edi
+call fcn_fffa7d98 ; call 0xfffa7d98
+add esp, 0x10
+test eax, eax
+jne loc_fffc0a25 ; jne 0xfffc0a25
+xor edx, edx
+cmp byte [ebp - 0x24], 0x21
+ja short loc_fffc0927 ; ja 0xfffc0927
+mov eax, dword [ebp - 0x1c]
+movzx edx, byte [eax + ref_fffd5f1c] ; movzx edx, byte [eax - 0x2a0e4]
+
+loc_fffc0927: ; not directly referenced
+imul esi, edx, 0x48
+xor eax, eax
+mov byte [ebp - 0x28], 0
+mov dword [ebp - 0x44], esi
+
+loc_fffc0933: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x28], 1
+setbe dl
+test cl, dl
+je loc_fffc0a25 ; je 0xfffc0a25
+mov al, byte [ebp - 0x28]
+movzx esi, al
+mov dword [ebp - 0x30], esi
+mov esi, dword [ebp - 0x3c]
+bt esi, eax
+jb short loc_fffc095f ; jb 0xfffc095f
+
+loc_fffc0958: ; not directly referenced
+xor eax, eax
+jmp near loc_fffc0a1d ; jmp 0xfffc0a1d
+
+loc_fffc095f: ; not directly referenced
+imul eax, dword [ebp - 0x30], 0x24
+mov esi, dword [ebp + 0x14]
+mov dword [ebp - 0x24], 0x18
+mov byte [ebp - 0x29], 0
+add esi, eax
+add eax, dword [ebp + 0x10]
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x40], eax
+
+loc_fffc097c: ; not directly referenced
+mov al, byte [ebp - 0x29]
+cmp al, byte [ebx + 0x2488]
+jae short loc_fffc0958 ; jae 0xfffc0958
+imul edx, edi, 0x12
+movzx ecx, byte [ebp - 0x29]
+imul eax, dword [ebp - 0x30], 9
+add eax, edx
+mov edx, dword [ebp - 0x44]
+mov esi, eax
+add eax, ecx
+lea eax, [eax + edx + 8]
+add edx, esi
+mov eax, dword [ebx + eax*8 + 0x2454]
+lea edx, [ecx + edx + 8]
+mov esi, 0xa
+add eax, dword [ebx + edx*8 + 0x2450]
+xor edx, edx
+div esi
+mov edx, dword [ebp - 0x40]
+mov dword [edx + ecx*4], eax
+shr eax, 1
+mov edx, 0x18
+cmp eax, 0x18
+cmovbe edx, eax
+mov eax, dword [ebp - 0x34]
+cmp dword [ebp - 0x24], edx
+mov dword [eax + ecx*4], edx
+mov ecx, dword [ebp - 0x1c]
+mov eax, ebx
+cmovbe edx, dword [ebp - 0x24]
+sub esp, 0xc
+push edi
+mov dword [ebp - 0x24], edx
+mov edx, dword [ebp - 0x20]
+call fcn_fffa7d98 ; call 0xfffa7d98
+add esp, 0x10
+test eax, eax
+jne short loc_fffc0a1d ; jne 0xfffc0a1d
+cmp byte [ebp - 0x2a], 5
+jne short loc_fffc0a15 ; jne 0xfffc0a15
+push eax
+movzx eax, byte [ebx + 0x2488]
+push dword [ebp - 0x24]
+push eax
+mov eax, dword [ebp - 0x38]
+push dword [ebp - 0x34]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc0a15: ; not directly referenced
+inc byte [ebp - 0x29]
+jmp near loc_fffc097c ; jmp 0xfffc097c
+
+loc_fffc0a1d: ; not directly referenced
+inc byte [ebp - 0x28]
+jmp near loc_fffc0933 ; jmp 0xfffc0933
+
+loc_fffc0a25: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc0a2d: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0xcfc
+mov edi, dword [ebp + 0x18]
+mov dword [ebp - 0xcc0], edx
+mov dl, byte [ebp + 0xc]
+mov esi, dword [ebp + 0x10]
+mov dword [ebp - 0xc88], ecx
+mov ecx, 7
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0xca0], edi
+mov edi, dword [ebp + 0x1c]
+mov byte [ebp - 0xcee], dl
+mov dl, byte [ebp + 0x14]
+mov dword [ebp - 0xc98], esi
+mov esi, ref_fffd5934 ; mov esi, 0xfffd5934
+mov dword [ebp - 0xc7c], eax
+mov dword [ebp - 0xca4], edi
+mov byte [ebp - 0xcef], dl
+mov edx, edi
+lea edi, [ebp - 0xc58]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0xc3c]
+mov esi, ref_fffd5950 ; mov esi, 0xfffd5950
+mov byte [ebp - 0xc9a], bl
+mov byte [ebp - 0xc99], dl
+mov cl, 7
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+lea edi, [ebp - 0xc20]
+mov esi, ref_fffd596c ; mov esi, 0xfffd596c
+mov cl, 7
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov esi, dword [eax + 0x5edc]
+mov eax, dword [eax + 0x2443]
+mov dword [ebp - 0xce8], esi
+mov dword [ebp - 0xc84], eax
+lea eax, [ebx - 1]
+cmp al, 1
+ja loc_fffc199b ; ja 0xfffc199b
+push esi
+push 0
+push 0x10
+lea eax, [ebp - 0xc68]
+push eax
+mov eax, dword [ebp - 0xc84]
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+xor eax, eax
+
+loc_fffc0af6: ; not directly referenced
+mov byte [ebp + eax - 0xc71], al
+inc eax
+cmp eax, 9
+jne short loc_fffc0af6 ; jne 0xfffc0af6
+movzx eax, bl
+mov cl, byte [ebp - 0xca0]
+sub esp, 0xc
+mov al, byte [eax + ref_fffd5f1c] ; mov al, byte [eax - 0x2a0e4]
+mov edi, dword [ebp - 0xc7c]
+push 0
+dec ecx
+mov byte [ebp - 0xc80], al
+movzx eax, byte [ebp - 0xc88]
+movzx ecx, cl
+mov dword [ebp - 0xcec], eax
+mov edx, eax
+mov eax, edi
+call fcn_fffb26ca ; call 0xfffb26ca
+xor eax, eax
+add esp, 0x10
+mov byte [edi + 0x248b], 9
+mov edi, dword [ebp - 0xc98]
+cmp bl, 1
+cmove eax, edi
+mov byte [ebp - 0xc9c], al
+inc eax
+cmp byte [ebp - 0xca4], 0
+mov byte [ebp - 0xced], al
+jne short loc_fffc0b82 ; jne 0xfffc0b82
+push ecx
+push 0
+lea eax, [ebp - 0xc04]
+push 0x1c
+push eax
+mov eax, dword [ebp - 0xc84]
+call dword [eax + 0x5c] ; ucall
+jmp short loc_fffc0b9c ; jmp 0xfffc0b9c
+
+loc_fffc0b82: ; not directly referenced
+push edx
+push 0x1c
+lea eax, [ebp - 0xc20]
+push eax
+lea eax, [ebp - 0xc04]
+push eax
+mov eax, dword [ebp - 0xc84]
+call dword [eax + 0x58] ; ucall
+
+loc_fffc0b9c: ; not directly referenced
+add esp, 0x10
+xor edx, edx
+xor esi, esi
+xor eax, eax
+mov edi, 6
+
+loc_fffc0baa: ; not directly referenced
+movzx ecx, al
+add esi, dword [ebp + ecx*4 - 0xc58]
+add edx, dword [ebp + ecx*4 - 0xc3c]
+cmp byte [ebp - 0xc99], 0
+mov dword [ebp - 0xcd8], esi
+mov dword [ebp - 0xcdc], edx
+cmove eax, edi
+inc eax
+cmp al, 7
+jne short loc_fffc0baa ; jne 0xfffc0baa
+movzx eax, byte [ebp - 0xc80]
+cmp bl, 1
+sete byte [ebp - 0xc9b]
+add byte [ebp - 0xc9b], 8
+dec bl
+setne byte [ebp - 0xca0]
+imul eax, eax, 0x240
+add eax, dword [ebp - 0xcc0]
+add byte [ebp - 0xca0], 4
+mov dword [ebp - 0xcbc], eax
+movzx eax, byte [ebp - 0xc9a]
+mov dword [ebp - 0xc80], 0
+mov dword [ebp - 0xce4], eax
+movzx eax, byte [ebp - 0xca0]
+mov dword [ebp - 0xcb4], eax
+
+loc_fffc0c34: ; not directly referenced
+mov eax, dword [ebp - 0xce8]
+mov edi, 1
+xor ebx, ebx
+mov cl, byte [ebp - 0xc80]
+mov byte [ebp - 0xc98], 0
+add eax, 0x70
+shl edi, cl
+mov esi, eax
+mov dword [ebp - 0xcc8], eax
+
+loc_fffc0c5b: ; not directly referenced
+mov eax, dword [ebp - 0xcec]
+bt eax, ebx
+jae short loc_fffc0ca5 ; jae 0xfffc0ca5
+mov eax, dword [ebp - 0xc7c]
+mov ecx, edi
+mov edx, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0xc98], al
+movzx eax, byte [ebp - 0xc98]
+bt eax, ebx
+jae short loc_fffc0ca5 ; jae 0xfffc0ca5
+push eax
+mov eax, dword [ebp - 0xc7c]
+push 0
+movzx eax, byte [eax + 0x2488]
+push eax
+mov eax, dword [ebp - 0xc84]
+push esi
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc0ca5: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne short loc_fffc0c5b ; jne 0xfffc0c5b
+cmp byte [ebp - 0xc98], 0
+jne short loc_fffc0d04 ; jne 0xfffc0d04
+
+loc_fffc0cba: ; not directly referenced
+inc dword [ebp - 0xc80]
+cmp dword [ebp - 0xc80], 4
+jne loc_fffc0c34 ; jne 0xfffc0c34
+mov edi, dword [ebp - 0xc7c]
+movzx eax, byte [ebp - 0xca0]
+mov byte [edi + 0x247a], 0
+push 2
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push eax
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp near loc_fffc19a7 ; jmp 0xfffc19a7
+
+loc_fffc0d04: ; not directly referenced
+cmp byte [ebp - 0xcef], 1
+jne short loc_fffc0d3e ; jne 0xfffc0d3e
+push 0
+movzx eax, byte [ebp - 0xc9b]
+push 0
+push 1
+push 0
+push 0
+push dword [ebp - 0xc80]
+push 0
+push 1
+push 0
+push 0x88888888
+push eax
+push dword [ebp - 0xc7c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+
+loc_fffc0d3e: ; not directly referenced
+xor ebx, ebx
+cmp byte [ebp - 0xc99], 0
+je loc_fffc0e26 ; je 0xfffc0e26
+sub esp, 0xc
+movzx edx, byte [ebp - 0xc98]
+lea eax, [ebp - 0xc68]
+mov ecx, dword [ebp - 0xc80]
+push eax
+lea ebx, [ebp - 0xbe8]
+push ebx
+lea eax, [ebp - 0xba0]
+push eax
+lea eax, [ebp - 0xc71]
+push eax
+mov eax, dword [ebp - 0xc7c]
+push dword [ebp - 0xcb4]
+call fcn_fffc0855 ; call 0xfffc0855
+add esp, 0x20
+test eax, eax
+jne short loc_fffc0de8 ; jne 0xfffc0de8
+
+loc_fffc0d91: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0xce4]
+push eax
+mov edx, dword [ebp - 0xcc0]
+push edi
+mov edi, dword [ebp - 0xc80]
+mov eax, dword [ebp - 0xc7c]
+push edi
+call fcn_fffa7e6c ; call 0xfffa7e6c
+mov al, byte [ebp - 0xc98]
+add esp, 0x10
+mov dword [ebp - 0xcac], 0
+movzx ebx, al
+and eax, 2
+movzx eax, al
+mov dword [ebp - 0xca8], eax
+imul eax, edi, 0x12
+mov dword [ebp - 0xc88], ebx
+mov dword [ebp - 0xcc4], eax
+jmp near loc_fffc0feb ; jmp 0xfffc0feb
+
+loc_fffc0de8: ; not directly referenced
+mov esi, dword [ebp - 0xc7c]
+push eax
+push 0x18
+movzx eax, byte [esi + 0x2488]
+push eax
+push ebx
+mov ebx, dword [ebp - 0xc84]
+mov eax, ebx
+call dword [eax + 0x64] ; ucall
+add esp, 0xc
+push 0x18
+movzx eax, byte [esi + 0x2488]
+push eax
+lea eax, [ebp - 0xbc4]
+push eax
+mov eax, ebx
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+jmp near loc_fffc0d91 ; jmp 0xfffc0d91
+
+loc_fffc0e26: ; not directly referenced
+mov esi, dword [ebp - 0xc7c]
+push eax
+push 1
+movzx eax, byte [esi + 0x2488]
+push eax
+lea eax, [ebp - 0xba0]
+add eax, ebx
+push eax
+mov eax, dword [ebp - 0xc84]
+call dword [eax + 0x64] ; ucall
+add esp, 0xc
+push 1
+movzx eax, byte [esi + 0x2488]
+lea esi, [ebp - 0xbe8]
+push eax
+lea eax, [esi + ebx]
+add ebx, 0x24
+push eax
+mov eax, dword [ebp - 0xc84]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+cmp ebx, 0x48
+je loc_fffc0d91 ; je 0xfffc0d91
+jmp short loc_fffc0e26 ; jmp 0xfffc0e26
+
+loc_fffc0e7a: ; not directly referenced
+cmp byte [ebp - 0xc9c], 0
+jne loc_fffc100a ; jne 0xfffc100a
+
+loc_fffc0e87: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc0e89: ; not directly referenced
+lea eax, [ebp - 0xbe8]
+xor edi, edi
+mov dword [ebp - 0xcb0], eax
+movzx eax, bl
+mov dword [ebp - 0xcd0], eax
+
+loc_fffc0ea0: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+bt eax, edi
+jb loc_fffc1065 ; jb 0xfffc1065
+
+loc_fffc0eaf: ; not directly referenced
+inc edi
+add dword [ebp - 0xcb0], 0x24
+cmp edi, 2
+jne short loc_fffc0ea0 ; jne 0xfffc0ea0
+push eax
+mov ecx, dword [ebp - 0xc88]
+push eax
+mov edx, dword [ebp - 0xcc0]
+lea eax, [ebp - 0xc68]
+push eax
+push 0x1f
+lea eax, [ebp - 0xc71]
+push eax
+mov eax, dword [ebp - 0xc80]
+push dword [ebp - 0xce4]
+push eax
+push eax
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffd13ed ; call 0xfffd13ed
+movzx eax, bl
+add esp, 0x20
+mov dword [ebp - 0xce0], eax
+imul eax, eax, 0x12
+mov dword [ebp - 0xcb0], 0
+mov dword [ebp - 0xcfc], eax
+
+loc_fffc0f12: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+mov edi, dword [ebp - 0xcb0]
+bt eax, edi
+jb loc_fffc10f7 ; jb 0xfffc10f7
+
+loc_fffc0f27: ; not directly referenced
+inc dword [ebp - 0xcb0]
+cmp dword [ebp - 0xcb0], 2
+jne short loc_fffc0f12 ; jne 0xfffc0f12
+cmp byte [ebp - 0xc99], 0
+mov al, 7
+cmove ebx, eax
+inc ebx
+cmp bl, 6
+jbe loc_fffc0e89 ; jbe 0xfffc0e89
+mov eax, dword [ebp - 0xc7c]
+xor esi, esi
+add eax, 0x3756
+mov dword [ebp - 0xcb0], eax
+mov eax, dword [ebp - 0xcc8]
+mov dword [ebp - 0xcb8], eax
+imul eax, dword [ebp - 0xc80], 9
+mov dword [ebp - 0xcd4], eax
+
+loc_fffc0f78: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+bt eax, esi
+jae short loc_fffc0fcb ; jae 0xfffc0fcb
+mov eax, dword [ebp - 0xcb0]
+add eax, dword [ebp - 0xcd4]
+mov byte [ebp - 0xca4], 0
+mov dword [ebp - 0xcd0], eax
+
+loc_fffc0f9c: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+movzx eax, byte [eax + 0x2488]
+cmp byte [ebp - 0xca4], al
+jb loc_fffc1253 ; jb 0xfffc1253
+push edx
+push 0
+push eax
+mov eax, dword [ebp - 0xc84]
+push dword [ebp - 0xcb8]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc0fcb: ; not directly referenced
+inc esi
+add dword [ebp - 0xcb8], 0xcc
+add dword [ebp - 0xcb0], 0x13c3
+cmp esi, 2
+jne short loc_fffc0f78 ; jne 0xfffc0f78
+inc dword [ebp - 0xcac]
+
+loc_fffc0feb: ; not directly referenced
+mov ebx, dword [ebp - 0xcac]
+mov al, byte [ebp - 0xced]
+mov byte [ebp - 0xccc], bl
+cmp bl, al
+jb loc_fffc0e7a ; jb 0xfffc0e7a
+jmp near loc_fffc13ab ; jmp 0xfffc13ab
+
+loc_fffc100a: ; not directly referenced
+test byte [ebp - 0xc98], 1
+je short loc_fffc1033 ; je 0xfffc1033
+mov cl, byte [ebp - 0xcac]
+mov eax, 0x55
+mov edx, 0x409a
+shl eax, cl
+movzx ecx, al
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc1033: ; not directly referenced
+cmp dword [ebp - 0xca8], 0
+je loc_fffc0e87 ; je 0xfffc0e87
+mov cl, byte [ebp - 0xcac]
+mov eax, 0x55
+mov edx, 0x449a
+shl eax, cl
+movzx ecx, al
+mov eax, dword [ebp - 0xc7c]
+call fcn_fffae566 ; call 0xfffae566
+jmp near loc_fffc0e87 ; jmp 0xfffc0e87
+
+loc_fffc1065: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+lea ecx, [edi + 1]
+mov byte [ebp - 0xca4], 1
+sar eax, cl
+cmp byte [ebp - 0xca0], 4
+mov dword [ebp - 0xcb8], eax
+jne short loc_fffc1098 ; jne 0xfffc1098
+mov eax, dword [ebp - 0xc7c]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0xca4], al
+
+loc_fffc1098: ; not directly referenced
+xor esi, esi
+
+loc_fffc109a: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0xca4], al
+jbe loc_fffc0eaf ; jbe 0xfffc0eaf
+push 0
+mov eax, dword [ebp - 0xcb0]
+push dword [ebp - 0xcb8]
+mov ecx, dword [ebp - 0xcd0]
+push 0
+push 0
+push esi
+push dword [ebp - 0xc80]
+push edi
+push 0
+push 0
+mov eax, dword [eax + esi*4]
+inc esi
+imul eax, dword [ebp + ecx*4 - 0xc04]
+mov ecx, 0x18
+cdq
+idiv ecx
+push eax
+push dword [ebp - 0xcb4]
+push dword [ebp - 0xc7c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp short loc_fffc109a ; jmp 0xfffc109a
+
+loc_fffc10f7: ; not directly referenced
+imul eax, dword [ebp - 0xcb0], 9
+mov byte [ebp - 0xcb8], 0
+mov dword [ebp - 0xca4], eax
+mov eax, dword [ebp - 0xcfc]
+add eax, dword [ebp - 0xca4]
+mov dword [ebp - 0xcf8], eax
+
+loc_fffc111d: ; not directly referenced
+mov edx, dword [ebp - 0xc7c]
+mov al, byte [ebp - 0xcb8]
+cmp al, byte [edx + 0x2488]
+jae loc_fffc0f27 ; jae 0xfffc0f27
+mov eax, dword [ebp - 0xcc4]
+mov edi, dword [ebp - 0xca4]
+movzx ecx, byte [ebp - 0xcb8]
+mov esi, dword [ebp - 0xcbc]
+lea edx, [eax + edi]
+add edx, ecx
+lea eax, [esi + edx*8]
+mov esi, dword [esi + edx*8]
+mov dword [ebp - 0xcd0], eax
+mov eax, dword [eax + 4]
+mov dword [ebp - 0xcd4], esi
+mov edx, eax
+sub edx, esi
+mov dword [ebp - 0xcf4], edx
+test bl, bl
+jne short loc_fffc119a ; jne 0xfffc119a
+add eax, dword [ebp - 0xcd4]
+xor edx, edx
+lea esi, [edi + ecx]
+mov edi, 0xa
+mov dword [ebp + esi*4 - 0xb10], 0
+div edi
+mov dword [ebp + esi*4 - 0xb58], eax
+
+loc_fffc119a: ; not directly referenced
+mov eax, dword [ebp - 0xca4]
+lea esi, [eax + ecx]
+mov eax, dword [ebp - 0xce0]
+mov edi, esi
+mov esi, dword [ebp + esi*4 - 0xb58]
+mov edx, dword [ebp + edi*4 - 0xba0]
+imul esi, dword [ebp + eax*4 - 0xc3c]
+imul edx, dword [ebp + eax*4 - 0xc58]
+add edx, esi
+mov esi, dword [ebp - 0xcf8]
+imul edx, dword [ebp - 0xcf4]
+add dword [ebp + edi*4 - 0xb10], edx
+cmp dword [ebp + eax*4 - 0xc04], 0
+lea edx, [esi + ecx]
+mov esi, dword [ebp - 0xcd4]
+mov dword [ebp + edx*8 - 0x888], esi
+mov esi, dword [ebp - 0xcd0]
+mov esi, dword [esi + 4]
+mov dword [ebp + edx*8 - 0x884], esi
+jns short loc_fffc1248 ; jns 0xfffc1248
+cmp bl, 6
+je short loc_fffc1248 ; je 0xfffc1248
+cmp dword [ebp + eax*4 - 0xc00], 0
+jle short loc_fffc1248 ; jle 0xfffc1248
+mov eax, dword [ebp - 0xcc4]
+mov edx, dword [ebp - 0xca4]
+mov esi, dword [ebp + edi*8 - 0x888]
+add edx, eax
+mov eax, dword [ebp - 0xcbc]
+add ecx, edx
+mov dword [eax + ecx*8], esi
+mov ecx, dword [ebp - 0xcd0]
+mov eax, dword [ebp + edi*8 - 0x884]
+mov dword [ecx + 4], eax
+
+loc_fffc1248: ; not directly referenced
+inc byte [ebp - 0xcb8]
+jmp near loc_fffc111d ; jmp 0xfffc111d
+
+loc_fffc1253: ; not directly referenced
+movzx ebx, byte [ebp - 0xca4]
+lea ecx, [esi + esi*8]
+mov edi, dword [ebp - 0xcdc]
+mov eax, dword [ebp - 0xcd8]
+add ecx, ebx
+imul edi, dword [ebp + ecx*4 - 0xb58]
+imul eax, dword [ebp + ecx*4 - 0xba0]
+add edi, eax
+je loc_fffc19a2 ; je 0xfffc19a2
+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 - 0xc9a], 1
+mov edi, eax
+mov dword [ebp + ecx*4 - 0xb10], eax
+jne short loc_fffc1310 ; jne 0xfffc1310
+cmp byte [ebp - 0xccc], 0
+jne short loc_fffc12cb ; jne 0xfffc12cb
+mov ecx, dword [ebp - 0xcd0]
+add byte [ebx + ecx + 0x104a], al
+
+loc_fffc12cb: ; not directly referenced
+cmp byte [ebp - 0xccc], 1
+sete dl
+cmp byte [ebp - 0xc9c], 0
+sete al
+or dl, al
+je short loc_fffc1345 ; je 0xfffc1345
+mov edx, dword [ebp - 0xcd0]
+mov eax, edi
+mov ecx, dword [ebp - 0xc80]
+add byte [ebx + edx + 0x106e], al
+mov edx, esi
+push eax
+mov eax, dword [ebp - 0xc7c]
+push 0
+push 0xff
+push ebx
+call fcn_fffa7499 ; call 0xfffa7499
+jmp short loc_fffc1342 ; jmp 0xfffc1342
+
+loc_fffc1310: ; not directly referenced
+mov eax, dword [ebp - 0xcd4]
+mov edx, esi
+mov ecx, dword [ebp - 0xcb0]
+add eax, ebx
+add word [ecx + eax*2 + 0x169], di
+mov eax, dword [ebp - 0xc7c]
+push ecx
+mov ecx, dword [ebp - 0xc80]
+push 0
+push 0xff
+push ebx
+call fcn_fffa73b0 ; call 0xfffa73b0
+
+loc_fffc1342: ; not directly referenced
+add esp, 0x10
+
+loc_fffc1345: ; not directly referenced
+imul edi, edi, 0xa
+xor ecx, ecx
+lea edx, [esi + esi*8]
+
+loc_fffc134d: ; 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
+mov al, 7
+cmp byte [ebp - 0xc99], 0
+cmove ecx, eax
+inc ecx
+cmp cl, 6
+jbe short loc_fffc134d ; jbe 0xfffc134d
+lea ecx, [esi + esi*8]
+mov edi, dword [ebp - 0xcbc]
+lea eax, [ecx + ebx]
+mov edx, dword [ebp + eax*8 - 0x888]
+add ecx, dword [ebp - 0xcc4]
+inc byte [ebp - 0xca4]
+add ebx, ecx
+mov dword [edi + ebx*8], edx
+mov eax, dword [ebp + eax*8 - 0x884]
+mov dword [edi + ebx*8 + 4], eax
+jmp near loc_fffc0f9c ; jmp 0xfffc0f9c
+
+loc_fffc13ab: ; not directly referenced
+cmp byte [ebp - 0xcee], 0
+je loc_fffc0cba ; je 0xfffc0cba
+cmp byte [ebp - 0xc99], 0
+jne short loc_fffc140e ; jne 0xfffc140e
+
+loc_fffc13c1: ; not directly referenced
+mov eax, dword [ebp - 0xc98]
+and eax, 1
+mov dword [ebp - 0xcb0], eax
+je short loc_fffc13e7 ; je 0xfffc13e7
+mov eax, dword [ebp - 0xc7c]
+mov ecx, 0xffff3001
+mov edx, 0x4098
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc13e7: ; not directly referenced
+cmp dword [ebp - 0xca8], 0
+je loc_fffc1493 ; je 0xfffc1493
+mov eax, dword [ebp - 0xc7c]
+mov ecx, 0xffff3001
+mov edx, 0x4498
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffc1493 ; jmp 0xfffc1493
+
+loc_fffc140e: ; not directly referenced
+sub esp, 0xc
+mov ecx, dword [ebp - 0xc80]
+lea eax, [ebp - 0xc68]
+mov edx, dword [ebp - 0xc88]
+push eax
+lea ebx, [ebp - 0xbe8]
+push ebx
+lea eax, [ebp - 0xba0]
+push eax
+lea eax, [ebp - 0xc71]
+push eax
+mov eax, dword [ebp - 0xc7c]
+push dword [ebp - 0xcb4]
+call fcn_fffc0855 ; call 0xfffc0855
+add esp, 0x20
+test eax, eax
+je loc_fffc13c1 ; je 0xfffc13c1
+push edi
+mov edi, dword [ebp - 0xc7c]
+push 0x18
+movzx eax, byte [edi + 0x2488]
+push eax
+push ebx
+mov ebx, dword [ebp - 0xc84]
+mov eax, ebx
+call dword [eax + 0x64] ; ucall
+add esp, 0xc
+push 0x18
+movzx eax, byte [edi + 0x2488]
+push eax
+lea eax, [ebp - 0xbc4]
+push eax
+mov eax, ebx
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+jmp near loc_fffc13c1 ; jmp 0xfffc13c1
+
+loc_fffc1493: ; not directly referenced
+movzx eax, byte [ebp - 0xc9b]
+mov byte [ebp - 0xc98], 0
+mov dword [ebp - 0xcd0], eax
+
+loc_fffc14a7: ; not directly referenced
+lea eax, [ebp - 0xbe8]
+xor ebx, ebx
+mov dword [ebp - 0xcac], eax
+movzx eax, byte [ebp - 0xc98]
+lea edi, [ebp - 0x498]
+mov dword [ebp - 0xcc4], eax
+
+loc_fffc14c8: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+bt eax, ebx
+jb loc_fffc1582 ; jb 0xfffc1582
+
+loc_fffc14d7: ; not directly referenced
+mov eax, dword [ebp - 0xc84]
+inc ebx
+push esi
+push 8
+push 0x90
+push edi
+add edi, 0x240
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+add dword [ebp - 0xcac], 0x24
+cmp ebx, 2
+jne short loc_fffc14c8 ; jne 0xfffc14c8
+movzx eax, byte [ebp - 0xc98]
+mov ebx, dword [ebp - 0xc7c]
+mov edx, dword [ebp - 0xc88]
+mov dword [ebp - 0xcd4], eax
+imul eax, eax, 0x90
+mov byte [ebx + 0x248c], 1
+push ecx
+mov ecx, dword [ebp - 0xc80]
+push dword [ebp - 0xcd0]
+lea eax, [ebp + eax - 0x888]
+push eax
+lea eax, [ebp - 0x498]
+push eax
+mov eax, ebx
+call fcn_fffbfaf9 ; call 0xfffbfaf9
+lea eax, [ebp - 0xac8]
+add esp, 0x10
+mov dword [ebp - 0xcac], eax
+lea eax, [ebp - 0xba0]
+xor ebx, ebx
+mov dword [ebp - 0xcc4], eax
+lea eax, [ebp - 0xb58]
+mov dword [ebp - 0xcb8], eax
+lea eax, [ebp - 0x498]
+mov dword [ebp - 0xccc], eax
+jmp near loc_fffc1640 ; jmp 0xfffc1640
+
+loc_fffc1582: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+lea ecx, [ebx + 1]
+mov byte [ebp - 0xca4], 1
+sar eax, cl
+cmp byte [ebp - 0xca0], 4
+mov dword [ebp - 0xcb8], eax
+jne short loc_fffc15b5 ; jne 0xfffc15b5
+mov eax, dword [ebp - 0xc7c]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0xca4], al
+
+loc_fffc15b5: ; not directly referenced
+xor esi, esi
+
+loc_fffc15b7: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0xca4], al
+jbe loc_fffc14d7 ; jbe 0xfffc14d7
+push 0
+mov eax, dword [ebp - 0xcac]
+mov ecx, 0x18
+push dword [ebp - 0xcb8]
+mov edx, dword [ebp - 0xcc4]
+push 0
+push 0
+push esi
+push dword [ebp - 0xc80]
+push ebx
+push 0
+push 0
+mov eax, dword [eax + esi*4]
+inc esi
+imul eax, dword [ebp + edx*4 - 0xc04]
+cdq
+idiv ecx
+push eax
+push dword [ebp - 0xcb4]
+push dword [ebp - 0xc7c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp short loc_fffc15b7 ; jmp 0xfffc15b7
+
+loc_fffc1614: ; not directly referenced
+inc ebx
+add dword [ebp - 0xcac], 0x120
+add dword [ebp - 0xccc], 0x240
+add dword [ebp - 0xcc4], 0x24
+add dword [ebp - 0xcb8], 0x24
+cmp ebx, 2
+je loc_fffc16f0 ; je 0xfffc16f0
+
+loc_fffc1640: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+bt eax, ebx
+jae short loc_fffc1614 ; jae 0xfffc1614
+mov eax, dword [ebp - 0xc7c]
+xor edx, edx
+mov esi, dword [ebp - 0xccc]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0xce0], al
+mov eax, dword [ebp - 0xcac]
+mov dword [ebp - 0xca4], eax
+
+loc_fffc1671: ; not directly referenced
+cmp byte [ebp - 0xce0], dl
+jbe short loc_fffc1614 ; jbe 0xfffc1614
+mov eax, dword [ebp - 0xcb8]
+mov edi, dword [ebp - 0xcd4]
+mov ecx, dword [eax + edx*4]
+mov eax, dword [ebp - 0xcc4]
+imul ecx, dword [ebp + edi*4 - 0xc3c]
+mov eax, dword [eax + edx*4]
+imul eax, dword [ebp + edi*4 - 0xc58]
+add eax, ecx
+mov dword [ebp - 0xcf4], eax
+xor eax, eax
+
+loc_fffc16ab: ; not directly referenced
+mov edi, dword [esi + eax*2 + 4]
+add edi, dword [esi + eax*2]
+sub edi, 0x10
+cmp byte [ebp - 0xc98], 0
+jne short loc_fffc16cb ; jne 0xfffc16cb
+mov ecx, dword [ebp - 0xca4]
+mov dword [ecx + eax], 0
+
+loc_fffc16cb: ; not directly referenced
+mov ecx, dword [ebp - 0xca4]
+imul edi, dword [ebp - 0xcf4]
+add dword [ecx + eax], edi
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffc16ab ; jne 0xfffc16ab
+inc edx
+add esi, 0x40
+add dword [ebp - 0xca4], 0x20
+jmp short loc_fffc1671 ; jmp 0xfffc1671
+
+loc_fffc16f0: ; not directly referenced
+mov bl, byte [ebp - 0xc98]
+mov al, 7
+cmp byte [ebp - 0xc99], 0
+cmove ebx, eax
+mov byte [ebp - 0xc98], bl
+inc byte [ebp - 0xc98]
+cmp byte [ebp - 0xc98], 6
+jbe loc_fffc14a7 ; jbe 0xfffc14a7
+mov eax, dword [ebp - 0xc7c]
+xor edi, edi
+mov ebx, dword [ebp - 0xcc8]
+mov dword [ebp - 0xcac], 0
+add eax, 0x3756
+mov dword [ebp - 0xcb8], eax
+imul eax, dword [ebp - 0xc80], 0xd8
+mov dword [ebp - 0xcc4], ebx
+add eax, 0x282
+mov dword [ebp - 0xcf4], eax
+
+loc_fffc1759: ; not directly referenced
+mov eax, dword [ebp - 0xc88]
+bt eax, edi
+jae loc_fffc18f5 ; jae 0xfffc18f5
+mov eax, dword [ebp - 0xc7c]
+mov edx, edi
+mov ecx, 0xffff0001
+shl edx, 0xa
+add edx, 0x4098
+call fcn_fffae58c ; call 0xfffae58c
+lea eax, [edi + edi*8]
+mov byte [ebp - 0xc98], 0
+mov dword [ebp - 0xce0], eax
+
+loc_fffc1793: ; not directly referenced
+mov eax, dword [ebp - 0xc7c]
+movzx eax, byte [eax + 0x2488]
+cmp byte [ebp - 0xc98], al
+jae loc_fffc18df ; jae 0xfffc18df
+movzx eax, byte [ebp - 0xc98]
+mov edx, dword [ebp - 0xcdc]
+mov ebx, dword [ebp - 0xcd8]
+mov dword [ebp - 0xca4], 0
+mov esi, eax
+mov dword [ebp - 0xccc], eax
+mov eax, dword [ebp - 0xce0]
+add eax, esi
+imul ebx, dword [ebp + eax*4 - 0xba0]
+imul edx, dword [ebp + eax*4 - 0xb58]
+mov eax, 1
+add edx, ebx
+cmovne eax, edx
+xor ecx, ecx
+mov ebx, eax
+add ebx, eax
+mov dword [ebp - 0xcd4], ebx
+imul ebx, esi, 0x18
+add esi, dword [ebp - 0xcac]
+add ebx, dword [ebp - 0xcf4]
+add ebx, dword [ebp - 0xcb8]
+mov dword [ebp - 0xcc8], eax
+shl esi, 5
+lea eax, [ebp - 0xac8]
+add esi, eax
+
+loc_fffc1825: ; not directly referenced
+mov edx, dword [esi + ecx]
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, dword [ebp - 0xcc8]
+add eax, edx
+cdq
+idiv dword [ebp - 0xcd4]
+cmp byte [ebp - 0xc9a], 1
+jne short loc_fffc1851 ; jne 0xfffc1851
+movzx edx, byte [ebx]
+jmp short loc_fffc1858 ; jmp 0xfffc1858
+
+loc_fffc1851: ; not directly referenced
+movzx edx, byte [ebx + 0x360]
+
+loc_fffc1858: ; not directly referenced
+add eax, edx
+cmp eax, 0xf
+jle short loc_fffc1868 ; jle 0xfffc1868
+mov dword [esi + ecx], 0xf
+jmp short loc_fffc1875 ; jmp 0xfffc1875
+
+loc_fffc1868: ; not directly referenced
+test eax, eax
+mov edx, 0
+cmovs eax, edx
+mov dword [esi + ecx], eax
+
+loc_fffc1875: ; not directly referenced
+cmp byte [ebp - 0xc9a], 1
+mov eax, dword [esi + ecx]
+jne short loc_fffc1885 ; jne 0xfffc1885
+mov byte [ebx], al
+jmp short loc_fffc188b ; jmp 0xfffc188b
+
+loc_fffc1885: ; not directly referenced
+mov byte [ebx + 0x360], al
+
+loc_fffc188b: ; not directly referenced
+mov eax, dword [esi + ecx]
+add ebx, 3
+shl eax, cl
+add ecx, 4
+or dword [ebp - 0xca4], eax
+cmp ecx, 0x20
+jne short loc_fffc1825 ; jne 0xfffc1825
+push 0
+push 0
+push 0
+push 0
+push dword [ebp - 0xccc]
+push dword [ebp - 0xc80]
+push edi
+push 0
+push 0
+push dword [ebp - 0xca4]
+push dword [ebp - 0xcd0]
+push dword [ebp - 0xc7c]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+inc byte [ebp - 0xc98]
+jmp near loc_fffc1793 ; jmp 0xfffc1793
+
+loc_fffc18df: ; not directly referenced
+push edx
+push 0
+push eax
+mov eax, dword [ebp - 0xc84]
+push dword [ebp - 0xcc4]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc18f5: ; not directly referenced
+inc edi
+add dword [ebp - 0xcc4], 0xcc
+add dword [ebp - 0xcac], 9
+add dword [ebp - 0xcb8], 0x13c3
+cmp edi, 2
+jne loc_fffc1759 ; jne 0xfffc1759
+cmp dword [ebp - 0xcb0], 0
+je short loc_fffc1938 ; je 0xfffc1938
+mov eax, dword [ebp - 0xc7c]
+mov ecx, 0xffff3001
+mov edx, 0x4098
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc1938: ; not directly referenced
+cmp dword [ebp - 0xca8], 0
+je short loc_fffc1956 ; je 0xfffc1956
+mov eax, dword [ebp - 0xc7c]
+mov ecx, 0xffff3001
+mov edx, 0x4498
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc1956: ; not directly referenced
+cmp dword [ebp - 0xcb0], 0
+je short loc_fffc1974 ; je 0xfffc1974
+mov eax, dword [ebp - 0xc7c]
+mov ecx, 0xffff0001
+mov edx, 0x4098
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc1974: ; not directly referenced
+cmp dword [ebp - 0xca8], 0
+je loc_fffc0cba ; je 0xfffc0cba
+mov eax, dword [ebp - 0xc7c]
+mov ecx, 0xffff0001
+mov edx, 0x4498
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffc0cba ; jmp 0xfffc0cba
+
+loc_fffc199b: ; not directly referenced
+mov eax, 2
+jmp short loc_fffc19a7 ; jmp 0xfffc19a7
+
+loc_fffc19a2: ; not directly referenced
+mov eax, 1
+
+loc_fffc19a7: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc19af: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1040
+mov edi, dword [eax + 0x5edc]
+mov dword [ebp - 0x101c], edx
+mov dl, byte [ebp + 0x10]
+mov dword [ebp - 0xffc], eax
+mov esi, dword [ebp + 8]
+mov dword [ebp - 0x1000], ecx
+mov ebx, dword [ebp + 0xc]
+mov byte [ebp - 0xff7], 0
+mov byte [ebp - 0x1008], dl
+mov edx, dword [eax + 0x2443]
+mov eax, dword [eax + 0x188b]
+push 0
+push 0x10
+mov dword [ebp - 0x102c], eax
+lea eax, [ebp - 0xfe8]
+push eax
+mov dword [ebp - 0x1038], esi
+mov byte [ebp - 0xff6], 0xf8
+mov byte [ebp - 0xff5], 8
+mov byte [ebp - 0xff4], 1
+mov byte [ebp - 0xff3], 1
+mov byte [ebp - 0xff2], 1
+mov dword [ebp - 0x1010], edx
+call dword [edx + 0x5c] ; ucall
+mov ecx, dword [ebp - 0x1000]
+add esp, 0x10
+xor eax, eax
+
+loc_fffc1a43: ; not directly referenced
+mov byte [ebp + eax - 0xff1], al
+inc eax
+cmp eax, 9
+jne short loc_fffc1a43 ; jne 0xfffc1a43
+mov eax, dword [ebp - 0xffc]
+sub esp, 0xc
+movzx edx, cl
+push 2
+mov ecx, 0xf
+call fcn_fffb26ca ; call 0xfffb26ca
+add esp, 0x10
+xor eax, eax
+mov byte [ebp - 0x1004], 0
+mov dl, 3
+
+loc_fffc1a76: ; not directly referenced
+movzx ecx, al
+mov cl, byte [ebp + ecx - 0xff4]
+add byte [ebp - 0x1004], cl
+cmp byte [ebp - 0x1008], 0
+cmove eax, edx
+inc eax
+cmp al, 2
+jbe short loc_fffc1a76 ; jbe 0xfffc1a76
+mov esi, dword [ebp - 0x1004]
+mov eax, esi
+test al, al
+mov al, 1
+cmove esi, eax
+dec bl
+mov eax, esi
+mov byte [ebp - 0x1004], al
+jne short loc_fffc1ad7 ; jne 0xfffc1ad7
+push 1
+push 0
+push 1
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0x88888888
+push 0xa
+push dword [ebp - 0xffc]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+
+loc_fffc1ad7: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+xor ebx, ebx
+mov byte [ebp - 0x1000], 0
+lea esi, [eax + 0x381a]
+lea eax, [edi + 0x70]
+mov dword [ebp - 0x1028], eax
+mov edi, eax
+
+loc_fffc1af7: ; not directly referenced
+movzx ecx, byte [esi]
+mov edx, ebx
+mov eax, dword [ebp - 0xffc]
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x1000], al
+cmp dword [esi - 0xc4], 2
+jne short loc_fffc1b34 ; jne 0xfffc1b34
+mov eax, dword [ebp - 0xffc]
+push ecx
+push 0
+movzx eax, byte [eax + 0x2488]
+push eax
+mov eax, dword [ebp - 0x1010]
+push edi
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc1b34: ; not directly referenced
+inc ebx
+add esi, 0x13c3
+add edi, 0xcc
+cmp ebx, 2
+jne short loc_fffc1af7 ; jne 0xfffc1af7
+mov eax, dword [ebp - 0xffc]
+mov ecx, 1
+push edx
+push edx
+push 0xf
+lea edi, [eax + 0x2490]
+push 0
+mov edx, edi
+mov dword [ebp - 0x1014], edi
+call fcn_fffa7e6c ; call 0xfffa7e6c
+movzx eax, byte [ebp - 0x1000]
+lea ecx, [ebp - 0xfd8]
+mov esi, dword [ebp - 0x101c]
+add esp, 0x10
+mov dword [ebp - 0x100c], 0
+mov dword [ebp - 0x1000], eax
+
+loc_fffc1b90: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+mov edi, dword [ebp - 0x100c]
+bt eax, edi
+jae short loc_fffc1bf5 ; jae 0xfffc1bf5
+mov eax, dword [ebp - 0xffc]
+xor edi, edi
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x1018], al
+jmp short loc_fffc1beb ; jmp 0xfffc1beb
+
+loc_fffc1bb7: ; not directly referenced
+cmp byte [ebp - 0x1008], 0
+je short loc_fffc1c2d ; je 0xfffc1c2d
+mov eax, dword [esi + edi*8 + 0x244]
+mov ebx, 0x14
+xor edx, edx
+add eax, dword [esi + edi*8 + 0x240]
+div ebx
+mov dword [ecx + edi*4], eax
+
+loc_fffc1bda: ; not directly referenced
+mov eax, dword [ecx + edi*4]
+dec eax
+cmp eax, 0xb
+jbe short loc_fffc1bea ; jbe 0xfffc1bea
+mov dword [ecx + edi*4], 0xc
+
+loc_fffc1bea: ; not directly referenced
+inc edi
+
+loc_fffc1beb: ; not directly referenced
+mov eax, edi
+cmp byte [ebp - 0x1018], al
+ja short loc_fffc1bb7 ; ja 0xfffc1bb7
+
+loc_fffc1bf5: ; not directly referenced
+inc dword [ebp - 0x100c]
+add ecx, 0x24
+add esi, 0x48
+cmp dword [ebp - 0x100c], 2
+jne short loc_fffc1b90 ; jne 0xfffc1b90
+push eax
+mov edx, dword [ebp - 0x1014]
+mov ecx, 4
+push eax
+mov eax, dword [ebp - 0xffc]
+xor edi, edi
+push 0xf
+push 0
+call fcn_fffa7e6c ; call 0xfffa7e6c
+add esp, 0x10
+jmp short loc_fffc1c36 ; jmp 0xfffc1c36
+
+loc_fffc1c2d: ; not directly referenced
+mov dword [ecx + edi*4], 1
+jmp short loc_fffc1bda ; jmp 0xfffc1bda
+
+loc_fffc1c36: ; not directly referenced
+mov eax, edi
+xor ebx, ebx
+movzx esi, al
+
+loc_fffc1c3d: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+bt eax, ebx
+jae short loc_fffc1c55 ; jae 0xfffc1c55
+lea eax, [ebx + ebx*8]
+xor ecx, ecx
+mov dword [ebp - 0x100c], eax
+jmp short loc_fffc1cc1 ; jmp 0xfffc1cc1
+
+loc_fffc1c55: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc1c3d ; jne 0xfffc1c3d
+push eax
+mov ecx, dword [ebp - 0x1000]
+push eax
+mov edx, dword [ebp - 0x1014]
+lea eax, [ebp - 0xfe8]
+push eax
+push 0x36
+lea eax, [ebp - 0xff1]
+push eax
+mov eax, dword [ebp - 0xffc]
+push 4
+push 0xff
+push 0
+call fcn_fffd13ed ; call 0xfffd13ed
+mov eax, edi
+mov ebx, dword [ebp - 0x101c]
+movzx eax, al
+add esp, 0x20
+imul ecx, eax, 0x90
+lea edx, [ebp - 0xf90]
+mov dword [ebp - 0x100c], ebx
+xor ebx, ebx
+mov dword [ebp - 0x1034], eax
+lea esi, [ebp + ecx - 0xf48]
+jmp near loc_fffc1d55 ; jmp 0xfffc1d55
+
+loc_fffc1cc1: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+cmp cl, byte [eax + 0x2488]
+jae short loc_fffc1c55 ; jae 0xfffc1c55
+push 2
+mov edx, dword [ebp - 0x100c]
+movzx eax, cl
+push 0
+push 1
+push 0
+push eax
+add edx, eax
+movsx eax, byte [ebp + esi - 0xff7]
+imul eax, dword [ebp + edx*4 - 0xfd8]
+mov dword [ebp - 0x1018], ecx
+mov ecx, 0xc
+push 0
+push ebx
+cdq
+idiv ecx
+push 0
+push 0
+push eax
+push 1
+push dword [ebp - 0xffc]
+call fcn_fffcc900 ; call 0xfffcc900
+mov ecx, dword [ebp - 0x1018]
+add esp, 0x30
+inc ecx
+jmp short loc_fffc1cc1 ; jmp 0xfffc1cc1
+
+loc_fffc1d22: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x1030], al
+xor eax, eax
+
+loc_fffc1d36: ; not directly referenced
+cmp byte [ebp - 0x1030], al
+ja short loc_fffc1d62 ; ja 0xfffc1d62
+
+loc_fffc1d3e: ; not directly referenced
+inc ebx
+add edx, 0x24
+add esi, 0x48
+add dword [ebp - 0x100c], 0x48
+cmp ebx, 2
+je loc_fffc1ddb ; je 0xfffc1ddb
+
+loc_fffc1d55: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+bt eax, ebx
+jb short loc_fffc1d22 ; jb 0xfffc1d22
+jmp short loc_fffc1d3e ; jmp 0xfffc1d3e
+
+loc_fffc1d62: ; not directly referenced
+mov dword [ebp - 0x103c], edx
+mov edx, dword [ebp - 0x100c]
+mov ecx, dword [edx + eax*8 + 4]
+mov edx, dword [edx + eax*8]
+mov dword [ebp - 0x1018], ecx
+sub ecx, edx
+mov dword [ebp - 0x1024], ecx
+mov ecx, edi
+test cl, cl
+mov dword [ebp - 0x1020], edx
+mov edx, dword [ebp - 0x103c]
+jne short loc_fffc1d9c ; jne 0xfffc1d9c
+mov dword [edx + eax*4], 0
+
+loc_fffc1d9c: ; not directly referenced
+mov dword [ebp - 0x103c], eax
+mov eax, dword [ebp - 0x1034]
+movzx eax, byte [ebp + eax - 0xff4]
+imul eax, dword [ebp - 0x1024]
+mov ecx, eax
+mov eax, dword [ebp - 0x103c]
+add dword [edx + eax*4], ecx
+mov ecx, dword [ebp - 0x1020]
+mov dword [esi + eax*8], ecx
+mov ecx, dword [ebp - 0x1018]
+mov dword [esi + eax*8 + 4], ecx
+inc eax
+jmp near loc_fffc1d36 ; jmp 0xfffc1d36
+
+loc_fffc1ddb: ; not directly referenced
+cmp byte [ebp - 0x1008], 0
+mov al, 3
+cmove edi, eax
+inc edi
+mov eax, edi
+cmp al, 2
+jbe loc_fffc1c36 ; jbe 0xfffc1c36
+movsx eax, byte [ebp - 0x1004]
+mov dword [ebp - 0x1004], 0
+mov dword [ebp - 0x1018], eax
+imul eax, eax, 0x14
+mov dword [ebp - 0x1030], eax
+mov eax, dword [ebp - 0xffc]
+add eax, 0x3756
+mov dword [ebp - 0x1034], eax
+mov dword [ebp - 0x1014], eax
+mov eax, dword [ebp - 0x1028]
+mov dword [ebp - 0x1024], eax
+
+loc_fffc1e35: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+mov ebx, dword [ebp - 0x1004]
+bt eax, ebx
+jae loc_fffc1f9d ; jae 0xfffc1f9d
+lea eax, [ebx + ebx*8]
+mov byte [ebp - 0x100c], 0
+mov dword [ebp - 0x1020], eax
+
+loc_fffc1e5a: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+movzx eax, byte [eax + 0x2488]
+cmp byte [ebp - 0x100c], al
+jae loc_fffc1f62 ; jae 0xfffc1f62
+movzx ebx, byte [ebp - 0x100c]
+mov eax, dword [ebp - 0x1020]
+lea ecx, [eax + ebx]
+mov eax, dword [ebp + ecx*4 - 0xf90]
+cdq
+or edx, 1
+movsx edi, dl
+imul edi, dword [ebp - 0x1018]
+imul esi, edi, 0xa
+mov edi, dword [ebp - 0x1014]
+add eax, esi
+cdq
+idiv dword [ebp - 0x1030]
+mov dword [ebp + ecx*4 - 0xf90], eax
+cdq
+mov ecx, 2
+mov esi, eax
+idiv ecx
+add byte [edi + ebx + 0x101d], al
+xor edi, edi
+
+loc_fffc1ec4: ; not directly referenced
+mov edx, dword [ebp - 0x1014]
+mov eax, 1
+mov ecx, edi
+shl eax, cl
+test byte [edx + 0xc4], al
+je short loc_fffc1efa ; je 0xfffc1efa
+mov edx, dword [ebp - 0x1004]
+mov ecx, edi
+push eax
+mov eax, dword [ebp - 0xffc]
+push 0
+push 0xff
+push ebx
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffc1efa: ; not directly referenced
+inc edi
+cmp edi, 4
+jne short loc_fffc1ec4 ; jne 0xfffc1ec4
+imul edi, esi, 0xa
+xor ecx, ecx
+imul esi, esi, 0xfffffff6
+mov dl, 3
+
+loc_fffc1f0a: ; not directly referenced
+movzx eax, cl
+imul eax, eax, 0x12
+add eax, dword [ebp - 0x1020]
+add eax, ebx
+add dword [ebp + eax*8 - 0xf48], edi
+add dword [ebp + eax*8 - 0xf44], esi
+cmp byte [ebp - 0x1008], 0
+cmove ecx, edx
+inc ecx
+cmp cl, 2
+jbe short loc_fffc1f0a ; jbe 0xfffc1f0a
+add ebx, dword [ebp - 0x1020]
+mov edi, dword [ebp - 0x101c]
+inc byte [ebp - 0x100c]
+mov eax, dword [ebp + ebx*8 - 0xf48]
+mov dword [edi + ebx*8], eax
+mov eax, dword [ebp + ebx*8 - 0xf44]
+mov dword [edi + ebx*8 + 4], eax
+jmp near loc_fffc1e5a ; jmp 0xfffc1e5a
+
+loc_fffc1f62: ; not directly referenced
+push ebx
+push 0
+push eax
+mov eax, dword [ebp - 0x1010]
+push dword [ebp - 0x1024]
+call dword [eax + 0x64] ; ucall
+mov edx, dword [ebp - 0x1004]
+mov ecx, 1
+mov dword [esp], 0
+mov eax, dword [ebp - 0xffc]
+push 1
+push 0
+push 2
+push 0
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+
+loc_fffc1f9d: ; not directly referenced
+inc dword [ebp - 0x1004]
+add dword [ebp - 0x1024], 0xcc
+add dword [ebp - 0x1014], 0x13c3
+cmp dword [ebp - 0x1004], 2
+jne loc_fffc1e35 ; jne 0xfffc1e35
+cmp dword [ebp - 0x102c], 1
+sete dl
+cmp byte [ebp - 0x1038], 0
+setne cl
+mov al, cl
+and eax, edx
+xor eax, 1
+test al, cl
+je loc_fffc23fc ; je 0xfffc23fc
+cmp dl, 1
+sbb eax, eax
+mov dword [ebp - 0x100c], eax
+and byte [ebp - 0x100c], 0xfd
+add byte [ebp - 0x100c], 4
+test byte [ebp - 0x1000], 1
+je short loc_fffc201e ; je 0xfffc201e
+mov eax, dword [ebp - 0xffc]
+mov ecx, 0xffff3001
+mov edx, 0x4098
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc201e: ; not directly referenced
+test byte [ebp - 0x1000], 2
+je short loc_fffc203c ; je 0xfffc203c
+mov eax, dword [ebp - 0xffc]
+mov ecx, 0xffff3001
+mov edx, 0x4498
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc203c: ; not directly referenced
+mov byte [ebp - 0x1004], 0
+
+loc_fffc2043: ; not directly referenced
+movzx edi, byte [ebp - 0x1004]
+xor ebx, ebx
+
+loc_fffc204c: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+bt eax, ebx
+jb short loc_fffc208d ; jb 0xfffc208d
+
+loc_fffc2057: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc204c ; jne 0xfffc204c
+movzx eax, byte [ebp - 0x1004]
+lea ebx, [ebp - 0xf48]
+mov dword [ebp - 0x1014], 0
+mov dword [ebp - 0x1030], eax
+imul eax, eax, 0x90
+add eax, ebx
+mov dword [ebp - 0x1038], eax
+jmp near loc_fffc215d ; jmp 0xfffc215d
+
+loc_fffc208d: ; not directly referenced
+lea eax, [ebx + ebx*8]
+xor ecx, ecx
+mov dword [ebp - 0x1014], eax
+mov dword [ebp - 0x101c], eax
+
+loc_fffc209e: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+cmp cl, byte [eax + 0x2488]
+jae short loc_fffc2057 ; jae 0xfffc2057
+mov eax, dword [ebp - 0x101c]
+movzx esi, cl
+mov dword [ebp - 0x1020], ecx
+mov ecx, 0xc
+push 1
+push 0
+lea edx, [eax + esi]
+movsx eax, byte [ebp + edi - 0xff7]
+imul eax, dword [ebp + edx*4 - 0xfd8]
+push 1
+push 0
+push esi
+cdq
+idiv ecx
+push 0
+push ebx
+push 0
+push 0
+push eax
+push 1
+push dword [ebp - 0xffc]
+call fcn_fffcc900 ; call 0xfffcc900
+mov ecx, dword [ebp - 0x1020]
+lea eax, [ebp - 0xd98]
+add esi, dword [ebp - 0x1014]
+add esp, 0x30
+shl esi, 6
+add esi, eax
+xor eax, eax
+
+loc_fffc2110: ; not directly referenced
+mov dword [esi + eax + 4], 8
+mov dword [esi + eax], 8
+add eax, 8
+cmp eax, 0x40
+jne short loc_fffc2110 ; jne 0xfffc2110
+inc ecx
+jmp near loc_fffc209e ; jmp 0xfffc209e
+
+loc_fffc212d: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+bt eax, edx
+jb short loc_fffc219d ; jb 0xfffc219d
+
+loc_fffc2138: ; not directly referenced
+inc edx
+add dword [ebp - 0x101c], 0x24
+cmp edx, 2
+jne short loc_fffc212d ; jne 0xfffc212d
+inc dword [ebp - 0x1014]
+mov al, byte [ebp - 0x1014]
+cmp byte [ebp - 0x100c], al
+jbe loc_fffc2233 ; jbe 0xfffc2233
+
+loc_fffc215d: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+lea esi, [ebp - 0xd98]
+mov edx, dword [ebp - 0x1000]
+mov byte [eax + 0x248c], 1
+push ecx
+push 0xa
+push dword [ebp - 0x1038]
+push esi
+mov esi, dword [ebp - 0x1014]
+mov ecx, esi
+call fcn_fffbfaf9 ; call 0xfffbfaf9
+lea eax, [esi + esi*8]
+add esp, 0x10
+mov dword [ebp - 0x101c], eax
+xor edx, edx
+jmp short loc_fffc212d ; jmp 0xfffc212d
+
+loc_fffc219d: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+xor ecx, ecx
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x102c], al
+lea eax, [edx + edx*8]
+mov dword [ebp - 0x1020], eax
+
+loc_fffc21ba: ; not directly referenced
+cmp cl, byte [ebp - 0x102c]
+je loc_fffc2138 ; je 0xfffc2138
+mov eax, dword [ebp - 0x1030]
+movzx ebx, cl
+movzx eax, byte [ebp + eax - 0xff4]
+mov dword [ebp - 0x1024], eax
+mov eax, dword [ebp - 0x1020]
+lea edi, [ebx + eax]
+add ebx, dword [ebp - 0x101c]
+lea eax, [ebp - 0xd98]
+shl edi, 6
+add edi, eax
+shl ebx, 5
+lea eax, [ebp - 0x918]
+add ebx, eax
+xor eax, eax
+
+loc_fffc2204: ; not directly referenced
+mov esi, dword [edi + eax*2 + 4]
+add esi, dword [edi + eax*2]
+sub esi, 0x10
+cmp byte [ebp - 0x1004], 0
+jne short loc_fffc221e ; jne 0xfffc221e
+mov dword [ebx + eax], 0
+
+loc_fffc221e: ; not directly referenced
+imul esi, dword [ebp - 0x1024]
+add dword [ebx + eax], esi
+add eax, 4
+cmp eax, 0x20
+jne short loc_fffc2204 ; jne 0xfffc2204
+inc ecx
+jmp short loc_fffc21ba ; jmp 0xfffc21ba
+
+loc_fffc2233: ; not directly referenced
+mov bl, byte [ebp - 0x1004]
+mov al, 3
+cmp byte [ebp - 0x1008], 0
+cmove ebx, eax
+mov byte [ebp - 0x1004], bl
+inc byte [ebp - 0x1004]
+cmp byte [ebp - 0x1004], 2
+jbe loc_fffc2043 ; jbe 0xfffc2043
+mov edi, dword [ebp - 0x1018]
+mov eax, edi
+add eax, edi
+xor edi, edi
+mov dword [ebp - 0x102c], eax
+mov eax, dword [ebp - 0x1034]
+mov dword [ebp - 0x1008], eax
+mov eax, dword [ebp - 0x1028]
+mov dword [ebp - 0x1024], eax
+
+loc_fffc2288: ; not directly referenced
+mov eax, dword [ebp - 0x1000]
+bt eax, edi
+jae loc_fffc23de ; jae 0xfffc23de
+imul eax, edi, 0x24
+mov dword [ebp - 0x1004], 0
+mov dword [ebp - 0x1020], eax
+
+loc_fffc22aa: ; not directly referenced
+imul eax, dword [ebp - 0x1004], 0xd8
+mov byte [ebp - 0x1014], 0
+add eax, 0x942
+mov dword [ebp - 0x1030], eax
+
+loc_fffc22c6: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+mov bl, byte [ebp - 0x1014]
+movzx eax, byte [eax + 0x2488]
+cmp bl, al
+jae loc_fffc23a9 ; jae 0xfffc23a9
+movzx eax, bl
+mov ebx, dword [ebp - 0x1020]
+xor ecx, ecx
+imul esi, eax, 0x18
+add esi, dword [ebp - 0x1030]
+add esi, dword [ebp - 0x1008]
+add ebx, eax
+shl ebx, 5
+lea edx, [ebp - 0x918]
+add ebx, edx
+mov dword [ebp - 0x101c], 0
+mov dword [ebp - 0x1028], eax
+
+loc_fffc2318: ; not directly referenced
+mov edx, dword [ebx + ecx]
+mov eax, edx
+sar eax, 0x1f
+or eax, 1
+movsx eax, al
+imul eax, dword [ebp - 0x1018]
+add eax, edx
+cdq
+idiv dword [ebp - 0x102c]
+movzx edx, byte [esi]
+add eax, edx
+cmp eax, 0xf
+jle short loc_fffc2349 ; jle 0xfffc2349
+mov dword [ebx + ecx], 0xf
+jmp short loc_fffc2356 ; jmp 0xfffc2356
+
+loc_fffc2349: ; not directly referenced
+test eax, eax
+mov edx, 0
+cmovs eax, edx
+mov dword [ebx + ecx], eax
+
+loc_fffc2356: ; not directly referenced
+mov eax, dword [ebx + ecx]
+add esi, 3
+mov byte [esi - 3], al
+shl eax, cl
+add ecx, 4
+or dword [ebp - 0x101c], eax
+cmp ecx, 0x20
+jne short loc_fffc2318 ; jne 0xfffc2318
+push 2
+push 0
+push 0
+push 0
+push dword [ebp - 0x1028]
+push dword [ebp - 0x1004]
+push edi
+push 0
+push 0
+push dword [ebp - 0x101c]
+push 0xa
+push dword [ebp - 0xffc]
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+inc byte [ebp - 0x1014]
+jmp near loc_fffc22c6 ; jmp 0xfffc22c6
+
+loc_fffc23a9: ; not directly referenced
+inc dword [ebp - 0x1004]
+mov dl, byte [ebp - 0x1004]
+add dword [ebp - 0x1020], 9
+cmp byte [ebp - 0x100c], dl
+ja loc_fffc22aa ; ja 0xfffc22aa
+push edx
+push 0
+push eax
+mov eax, dword [ebp - 0x1010]
+push dword [ebp - 0x1024]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc23de: ; not directly referenced
+inc edi
+add dword [ebp - 0x1024], 0xcc
+add dword [ebp - 0x1008], 0x13c3
+cmp edi, 2
+jne loc_fffc2288 ; jne 0xfffc2288
+
+loc_fffc23fc: ; not directly referenced
+mov eax, dword [ebp - 0xffc]
+mov byte [eax + 0x247a], 0
+push 2
+push 0
+push 1
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push 1
+push eax
+call fcn_fffcc900 ; call 0xfffcc900
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc242d: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+push edx
+movzx ecx, byte [ebx + 0x248e]
+lea esi, [ebx + 0x2490]
+mov eax, ebx
+push 0
+mov edx, esi
+push 1
+push 1
+call fcn_fffc19af ; call 0xfffc19af
+add esp, 0x10
+test eax, eax
+jne short loc_fffc2473 ; jne 0xfffc2473
+push eax
+movzx ecx, byte [ebx + 0x248e]
+mov edx, esi
+push 1
+mov eax, ebx
+push 0
+push 0
+call fcn_fffc19af ; call 0xfffc19af
+add esp, 0x10
+
+loc_fffc2473: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc247a: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x40
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x3c], 0
+add eax, 0x3756
+mov dword [ebp - 0x2c], eax
+
+loc_fffc2497: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffc24cb ; ja 0xfffc24cb
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffc24cb ; jne 0xfffc24cb
+
+loc_fffc24ab: ; not directly referenced
+inc ecx
+add dword [ebp - 0x3c], 0x23
+add dword [ebp - 0x2c], 8
+cmp ecx, 4
+jne short loc_fffc2497 ; jne 0xfffc2497
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48dd
+jmp near loc_fffc2642 ; jmp 0xfffc2642
+
+loc_fffc24cb: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x28], 0
+add eax, 0x49bf
+mov dword [ebp - 0x40], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x2c]
+mov dword [ebp - 0x30], eax
+mov eax, dword [ebp - 0x3c]
+lea esi, [eax + 0x18b]
+add eax, 0xbb
+mov dword [ebp - 0x48], esi
+mov dword [ebp - 0x4c], eax
+
+loc_fffc2505: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ebx, dword [ebp - 0x28]
+mov esi, dword [ebp - 0x40]
+mov dword [ebp - 0x24], 0
+lea ebx, [eax + ebx + 0x1973]
+
+loc_fffc251c: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffc2601 ; jne 0xfffc2601
+mov eax, dword [ebp - 0x44]
+mov edi, dword [ebp - 0x24]
+mov eax, dword [esi + eax - 0xf2]
+mov dword [ebp - 0x20], eax
+mov eax, dword [ebp - 0x30]
+mov edx, dword [eax + edi + 0xc9]
+mov eax, dword [eax + edi + 0xcd]
+mov dword [ebp - 0x34], edx
+mov dword [ebp - 0x38], eax
+cmp ecx, 1
+je short loc_fffc25a1 ; je 0xfffc25a1
+jb short loc_fffc25ad ; jb 0xfffc25ad
+cmp ecx, 3
+ja short loc_fffc25ad ; ja 0xfffc25ad
+cmp ecx, 2
+mov dl, byte [esi]
+jne short loc_fffc256c ; jne 0xfffc256c
+and dl, 1
+jne short loc_fffc2573 ; jne 0xfffc2573
+xor eax, eax
+jmp short loc_fffc25e9 ; jmp 0xfffc25e9
+
+loc_fffc256c: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffc25e9 ; je 0xfffc25e9
+
+loc_fffc2573: ; not directly referenced
+mov edx, dword [esi - 0x21]
+mov eax, dword [ebp - 0x4c]
+mov edi, dword [ebp - 0x48]
+and edx, 0xfffffffd
+add eax, ebx
+add edi, ebx
+dec edx
+cmovne eax, edi
+xor edi, edi
+cmp byte [esi + 1], 0x13
+movzx edx, byte [eax + 7]
+jne short loc_fffc2597 ; jne 0xfffc2597
+movsx edi, byte [eax + 0x1d]
+
+loc_fffc2597: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffc25e9 ; je 0xfffc25e9
+jmp short loc_fffc25d3 ; jmp 0xfffc25d3
+
+loc_fffc25a1: ; not directly referenced
+movzx eax, word [ebx + 0x258]
+test ax, ax
+jne short loc_fffc25e9 ; jne 0xfffc25e9
+
+loc_fffc25ad: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x20], 0
+je short loc_fffc25e9 ; je 0xfffc25e9
+mov eax, dword [esi - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc25c8 ; jne 0xfffc25c8
+movzx edx, byte [ebx + 0x5a]
+movsx edi, byte [ebx + 0x6c]
+jmp short loc_fffc25d3 ; jmp 0xfffc25d3
+
+loc_fffc25c8: ; not directly referenced
+movzx edx, byte [ebx + 0x61]
+movsx edi, byte [ebx + 0xc2]
+
+loc_fffc25d3: ; not directly referenced
+imul edx, dword [ebp - 0x34]
+mov eax, dword [ebp - 0x20]
+imul edi, dword [ebp - 0x38]
+lea eax, [eax + edx - 1]
+xor edx, edx
+add eax, edi
+div dword [ebp - 0x20]
+
+loc_fffc25e9: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0x14
+mov edi, 0x14
+cmova eax, edi
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffc2601: ; not directly referenced
+add dword [ebp - 0x24], 0x20
+add esi, 0x128
+add ebx, 0x277
+cmp dword [ebp - 0x24], 0x40
+jne loc_fffc251c ; jne 0xfffc251c
+add dword [ebp - 0x28], 0x54a
+add dword [ebp - 0x40], 0x13c3
+add dword [ebp - 0x30], 0x13c3
+cmp dword [ebp - 0x28], 0xa94
+jne loc_fffc2505 ; jne 0xfffc2505
+jmp near loc_fffc24ab ; jmp 0xfffc24ab
+
+loc_fffc2642: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffc2653 ; ja 0xfffc2653
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je short loc_fffc267d ; je 0xfffc267d
+
+loc_fffc2653: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffc267d: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffc2642 ; jne 0xfffc2642
+add esp, 0x40
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc2693: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x44
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x40], 0
+add eax, 0x3756
+mov dword [ebp - 0x30], eax
+
+loc_fffc26b0: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffc26e4 ; ja 0xfffc26e4
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffc26e4 ; jne 0xfffc26e4
+
+loc_fffc26c4: ; not directly referenced
+inc ecx
+add dword [ebp - 0x40], 0x23
+add dword [ebp - 0x30], 8
+cmp ecx, 4
+jne short loc_fffc26b0 ; jne 0xfffc26b0
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48db
+jmp near loc_fffc28c1 ; jmp 0xfffc28c1
+
+loc_fffc26e4: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x28], 0
+add eax, 0x49bf
+mov dword [ebp - 0x44], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x48], eax
+mov eax, dword [ebp - 0x30]
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp - 0x40]
+lea ebx, [eax + 0x18b]
+add eax, 0xbb
+mov dword [ebp - 0x4c], ebx
+mov dword [ebp - 0x50], eax
+
+loc_fffc271e: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ebx, dword [ebp - 0x28]
+mov dword [ebp - 0x2c], 0
+lea ebx, [eax + ebx + 0x1973]
+mov eax, dword [ebp - 0x44]
+mov dword [ebp - 0x20], eax
+
+loc_fffc2738: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+cmp dword [eax - 0xf6], 2
+jne loc_fffc287f ; jne 0xfffc287f
+mov edi, dword [ebp - 0x48]
+mov esi, dword [ebp - 0x2c]
+mov edx, dword [eax + edi - 0xf2]
+mov edi, dword [ebp - 0x34]
+mov dword [ebp - 0x24], edx
+mov edx, dword [edi + esi + 0xc9]
+mov edi, dword [edi + esi + 0xcd]
+mov dword [ebp - 0x38], edx
+mov dword [ebp - 0x3c], edi
+cmp ecx, 1
+je loc_fffc27fd ; je 0xfffc27fd
+jb loc_fffc2809 ; jb 0xfffc2809
+cmp ecx, 3
+ja loc_fffc2809 ; ja 0xfffc2809
+cmp ecx, 2
+mov dl, byte [eax]
+jne short loc_fffc279a ; jne 0xfffc279a
+and dl, 1
+jne short loc_fffc27a5 ; jne 0xfffc27a5
+xor eax, eax
+jmp near loc_fffc2865 ; jmp 0xfffc2865
+
+loc_fffc279a: ; not directly referenced
+xor eax, eax
+and dl, 2
+je loc_fffc2865 ; je 0xfffc2865
+
+loc_fffc27a5: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+mov esi, dword [ebp - 0x50]
+mov edx, dword [ebp - 0x4c]
+mov eax, dword [eax - 0x21]
+lea edi, [esi + ebx]
+add edx, ebx
+and eax, 0xfffffffd
+dec eax
+cmovne edi, edx
+xor edx, edx
+mov al, byte [edi + 9]
+shr al, 4
+movzx esi, al
+movzx eax, byte [edi + 0xb]
+shl esi, 8
+or esi, eax
+mov eax, dword [ebp - 0x20]
+cmp byte [eax + 1], 0x13
+jne short loc_fffc27de ; jne 0xfffc27de
+movsx edx, byte [edi + 0x1e]
+
+loc_fffc27de: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x24], 0
+je short loc_fffc2865 ; je 0xfffc2865
+mov edi, dword [ebp - 0x24]
+imul esi, dword [ebp - 0x38]
+imul edx, dword [ebp - 0x3c]
+lea eax, [edi + esi - 1]
+add eax, edx
+xor edx, edx
+div edi
+jmp short loc_fffc2865 ; jmp 0xfffc2865
+
+loc_fffc27fd: ; not directly referenced
+movzx eax, word [ebx + 0x256]
+test ax, ax
+jne short loc_fffc2865 ; jne 0xfffc2865
+
+loc_fffc2809: ; not directly referenced
+xor eax, eax
+cmp dword [ebp - 0x24], 0
+je short loc_fffc2865 ; je 0xfffc2865
+mov eax, dword [ebp - 0x20]
+mov eax, dword [eax - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc2835 ; jne 0xfffc2835
+mov al, byte [ebx + 0x5d]
+movsx edi, byte [ebx + 0x6e]
+shr al, 4
+movzx esi, al
+movzx eax, byte [ebx + 0x5f]
+shl esi, 8
+or esi, eax
+jmp short loc_fffc284e ; jmp 0xfffc284e
+
+loc_fffc2835: ; not directly referenced
+mov al, byte [ebx + 0x63]
+movsx edi, byte [ebx + 0xc0]
+shr al, 4
+movzx esi, al
+movzx eax, byte [ebx + 0x65]
+shl esi, 8
+or esi, eax
+
+loc_fffc284e: ; not directly referenced
+mov eax, dword [ebp - 0x24]
+xor edx, edx
+imul esi, dword [ebp - 0x38]
+imul edi, dword [ebp - 0x3c]
+lea esi, [eax + esi - 1]
+lea eax, [esi + edi]
+div dword [ebp - 0x24]
+
+loc_fffc2865: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0xfff
+mov edi, 0xfff
+cmova eax, edi
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffc287f: ; not directly referenced
+add dword [ebp - 0x2c], 0x20
+add ebx, 0x277
+add dword [ebp - 0x20], 0x128
+cmp dword [ebp - 0x2c], 0x40
+jne loc_fffc2738 ; jne 0xfffc2738
+add dword [ebp - 0x28], 0x54a
+add dword [ebp - 0x44], 0x13c3
+add dword [ebp - 0x34], 0x13c3
+cmp dword [ebp - 0x28], 0xa94
+jne loc_fffc271e ; jne 0xfffc271e
+jmp near loc_fffc26c4 ; jmp 0xfffc26c4
+
+loc_fffc28c1: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffc28d2 ; ja 0xfffc28d2
+mov ebx, dword [ebp + 8]
+cmp byte [ebx + 0x3749], 0
+je short loc_fffc28fc ; je 0xfffc28fc
+
+loc_fffc28d2: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffc28fc: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffc28c1 ; jne 0xfffc28c1
+add esp, 0x44
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc2912: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov dword [ebp - 0x28], 0
+
+loc_fffc2924: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffc2954 ; ja 0xfffc2954
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffc2954 ; jne 0xfffc2954
+
+loc_fffc2938: ; not directly referenced
+inc ecx
+add dword [ebp - 0x28], 0x23
+cmp ecx, 4
+jne short loc_fffc2924 ; jne 0xfffc2924
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48d9
+jmp near loc_fffc2ac3 ; jmp 0xfffc2ac3
+
+loc_fffc2954: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+add eax, 0x49bf
+mov dword [ebp - 0x30], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x3c], eax
+lea eax, [ecx*8 - 0x1269]
+mov dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x28]
+add eax, 0x18b
+mov dword [ebp - 0x48], eax
+
+loc_fffc2989: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov edi, dword [ebp - 0x30]
+mov ebx, dword [ebp - 0x20]
+mov dword [ebp - 0x24], 0
+add eax, edi
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp + 8]
+lea ebx, [eax + ebx + 0x1973]
+mov eax, dword [ebp - 0x28]
+add eax, 0xbb
+mov dword [ebp - 0x40], eax
+
+loc_fffc29b3: ; not directly referenced
+cmp dword [edi - 0xf6], 2
+jne loc_fffc2a89 ; jne 0xfffc2a89
+mov eax, dword [ebp - 0x3c]
+mov edx, dword [ebp - 0x24]
+mov esi, dword [edi + eax - 0xf2]
+mov eax, dword [ebp - 0x34]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x2c], eax
+cmp ecx, 1
+je short loc_fffc2a2c ; je 0xfffc2a2c
+jb short loc_fffc2a38 ; jb 0xfffc2a38
+cmp ecx, 3
+ja short loc_fffc2a38 ; ja 0xfffc2a38
+cmp ecx, 2
+mov dl, byte [edi]
+jne short loc_fffc29f6 ; jne 0xfffc29f6
+and dl, 1
+jne short loc_fffc29fd ; jne 0xfffc29fd
+xor eax, eax
+jmp short loc_fffc2a71 ; jmp 0xfffc2a71
+
+loc_fffc29f6: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffc2a71 ; je 0xfffc2a71
+
+loc_fffc29fd: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+mov edx, dword [edi - 0x21]
+add eax, ebx
+mov dword [ebp - 0x38], eax
+mov eax, dword [ebp - 0x48]
+and edx, 0xfffffffd
+add eax, ebx
+dec edx
+cmove eax, dword [ebp - 0x38]
+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_fffc2a71 ; je 0xfffc2a71
+jmp short loc_fffc2a65 ; jmp 0xfffc2a65
+
+loc_fffc2a2c: ; not directly referenced
+movzx eax, word [ebx + 0x254]
+test ax, ax
+jne short loc_fffc2a71 ; jne 0xfffc2a71
+
+loc_fffc2a38: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffc2a71 ; je 0xfffc2a71
+mov eax, dword [edi - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc2a56 ; jne 0xfffc2a56
+mov dl, byte [ebx + 0x5d]
+movzx eax, byte [ebx + 0x5e]
+and edx, 0xf
+shl edx, 8
+jmp short loc_fffc2a63 ; jmp 0xfffc2a63
+
+loc_fffc2a56: ; not directly referenced
+mov dl, byte [ebx + 0x63]
+movzx eax, byte [ebx + 0x64]
+and edx, 0xf
+shl edx, 8
+
+loc_fffc2a63: ; not directly referenced
+or edx, eax
+
+loc_fffc2a65: ; not directly referenced
+imul edx, dword [ebp - 0x2c]
+lea eax, [esi + edx - 1]
+xor edx, edx
+div esi
+
+loc_fffc2a71: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0x28
+mov esi, 0x28
+cmova eax, esi
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffc2a89: ; not directly referenced
+add dword [ebp - 0x24], 0x20
+add edi, 0x128
+add ebx, 0x277
+cmp dword [ebp - 0x24], 0x40
+jne loc_fffc29b3 ; jne 0xfffc29b3
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x30], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffc2989 ; jne 0xfffc2989
+jmp near loc_fffc2938 ; jmp 0xfffc2938
+
+loc_fffc2ac3: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffc2ad4 ; ja 0xfffc2ad4
+mov ebx, dword [ebp + 8]
+cmp byte [ebx + 0x3749], 0
+je short loc_fffc2afe ; je 0xfffc2afe
+
+loc_fffc2ad4: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffc2afe: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffc2ac3 ; jne 0xfffc2ac3
+add esp, 0x3c
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc2b14: ; not directly referenced
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x30
+
+loc_fffc2b1f: ; not directly referenced
+lea eax, [ecx - 2]
+cmp eax, 1
+ja short loc_fffc2b4b ; ja 0xfffc2b4b
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffc2b4b ; jne 0xfffc2b4b
+
+loc_fffc2b33: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffc2b1f ; jne 0xfffc2b1f
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48d7
+jmp near loc_fffc2ca4 ; jmp 0xfffc2ca4
+
+loc_fffc2b4b: ; not directly referenced
+mov eax, dword [ebp + 8]
+lea esi, [ecx*8 - 0x1269]
+mov dword [ebp + ecx*4 - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x38], esi
+add eax, 0x49bf
+mov dword [ebp - 0x2c], eax
+imul eax, ecx, 0x2e
+mov dword [ebp - 0x30], eax
+imul eax, ecx, 0x23
+add eax, 0xbb
+mov dword [ebp - 0x3c], eax
+
+loc_fffc2b80: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+mov edi, dword [ebp - 0x2c]
+mov ebx, dword [ebp - 0x20]
+mov dword [ebp - 0x24], 0
+add eax, edi
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp + 8]
+lea ebx, [eax + ebx + 0x1973]
+
+loc_fffc2b9f: ; not directly referenced
+cmp dword [edi - 0xf6], 2
+jne loc_fffc2c6a ; jne 0xfffc2c6a
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x24]
+mov esi, dword [edi + eax - 0xf2]
+mov eax, dword [ebp - 0x34]
+mov eax, dword [eax + edx + 0xc9]
+mov dword [ebp - 0x28], eax
+cmp ecx, 1
+je short loc_fffc2c0d ; je 0xfffc2c0d
+jb short loc_fffc2c19 ; jb 0xfffc2c19
+cmp ecx, 3
+ja short loc_fffc2c19 ; ja 0xfffc2c19
+cmp ecx, 2
+mov dl, byte [edi]
+jne short loc_fffc2be2 ; jne 0xfffc2be2
+and dl, 1
+jne short loc_fffc2be9 ; jne 0xfffc2be9
+xor eax, eax
+jmp short loc_fffc2c52 ; jmp 0xfffc2c52
+
+loc_fffc2be2: ; not directly referenced
+xor eax, eax
+and dl, 2
+je short loc_fffc2c52 ; je 0xfffc2c52
+
+loc_fffc2be9: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+add eax, ebx
+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_fffc2c52 ; je 0xfffc2c52
+imul edx, dword [ebp - 0x28]
+lea eax, [esi + edx - 1]
+jmp short loc_fffc2c4e ; jmp 0xfffc2c4e
+
+loc_fffc2c0d: ; not directly referenced
+movzx eax, word [ebx + 0x252]
+test ax, ax
+jne short loc_fffc2c52 ; jne 0xfffc2c52
+
+loc_fffc2c19: ; not directly referenced
+xor eax, eax
+test esi, esi
+je short loc_fffc2c52 ; je 0xfffc2c52
+mov eax, dword [edi - 0x21]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc2c37 ; jne 0xfffc2c37
+mov al, byte [ebx + 0x64]
+movzx edx, byte [ebx + 0x65]
+and eax, 0xf
+shl eax, 8
+jmp short loc_fffc2c44 ; jmp 0xfffc2c44
+
+loc_fffc2c37: ; not directly referenced
+mov al, byte [ebx + 0x6c]
+movzx edx, byte [ebx + 0x6d]
+and eax, 0xf
+shl eax, 8
+
+loc_fffc2c44: ; not directly referenced
+or eax, edx
+imul eax, dword [ebp - 0x28]
+lea eax, [esi + eax - 1]
+
+loc_fffc2c4e: ; not directly referenced
+xor edx, edx
+div esi
+
+loc_fffc2c52: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x1c]
+cmp eax, 0x36
+mov esi, 0x36
+cmova eax, esi
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ecx*4 - 0x1c], eax
+
+loc_fffc2c6a: ; not directly referenced
+add dword [ebp - 0x24], 0x20
+add edi, 0x128
+add ebx, 0x277
+cmp dword [ebp - 0x24], 0x40
+jne loc_fffc2b9f ; jne 0xfffc2b9f
+add dword [ebp - 0x20], 0x54a
+add dword [ebp - 0x2c], 0x13c3
+cmp dword [ebp - 0x20], 0xa94
+jne loc_fffc2b80 ; jne 0xfffc2b80
+jmp near loc_fffc2b33 ; jmp 0xfffc2b33
+
+loc_fffc2ca4: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffc2cb5 ; ja 0xfffc2cb5
+mov edi, dword [ebp + 8]
+cmp byte [edi + 0x3749], 0
+je short loc_fffc2cdf ; je 0xfffc2cdf
+
+loc_fffc2cb5: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffc2cdf: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffc2ca4 ; jne 0xfffc2ca4
+add esp, 0x30
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc2cf5: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+sub esp, 0x34
+mov dword [ebp - 0x20], 0xc
+
+loc_fffc2d07: ; not directly referenced
+lea eax, [ebx - 2]
+cmp eax, 1
+ja short loc_fffc2d1f ; ja 0xfffc2d1f
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x3749], 0
+je loc_fffc2f1e ; je 0xfffc2f1e
+
+loc_fffc2d1f: ; not directly referenced
+imul esi, ebx, 0x2e
+imul eax, eax, 0x23
+lea edi, [ebx*8 + 0x3756]
+mov dword [ebp + ebx*4 - 0x1c], 0
+mov dword [ebp - 0x34], esi
+mov dword [ebp - 0x24], 0
+mov dword [ebp - 0x40], edi
+mov dword [ebp - 0x30], eax
+
+loc_fffc2d44: ; not directly referenced
+mov edi, dword [ebp - 0x24]
+mov esi, dword [ebp - 0x40]
+mov dword [ebp - 0x28], 0
+imul eax, edi, 0x13c3
+imul edx, edi, 0x54a
+mov edi, dword [ebp + 8]
+lea ecx, [esi + eax]
+mov esi, dword [ebp + 8]
+add ecx, dword [ebp + 8]
+lea edi, [edi + edx + 0x1973]
+mov dword [ebp - 0x3c], ecx
+lea esi, [esi + eax + 0x49bf]
+
+loc_fffc2d7a: ; not directly referenced
+cmp dword [esi - 0xf6], 2
+jne loc_fffc2ef7 ; jne 0xfffc2ef7
+mov eax, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x28]
+mov ecx, dword [esi + eax - 0xf2]
+mov eax, dword [ebp - 0x3c]
+mov eax, dword [eax + edx + 0xc9]
+mov edx, dword [esi - 0x21]
+mov dword [ebp - 0x38], eax
+mov eax, 0x12
+cmp edx, 2
+cmovne eax, dword [ebp - 0x20]
+mov dword [ebp - 0x20], eax
+cmp ebx, 1
+je short loc_fffc2e16 ; je 0xfffc2e16
+jb short loc_fffc2e26 ; jb 0xfffc2e26
+cmp ebx, 3
+ja short loc_fffc2e26 ; ja 0xfffc2e26
+mov al, byte [esi]
+cmp ebx, 2
+mov byte [ebp - 0x29], al
+jne short loc_fffc2dd4 ; jne 0xfffc2dd4
+test al, 1
+jne short loc_fffc2de0 ; jne 0xfffc2de0
+xor eax, eax
+jmp near loc_fffc2ee2 ; jmp 0xfffc2ee2
+
+loc_fffc2dd4: ; not directly referenced
+xor eax, eax
+test byte [ebp - 0x29], 2
+je loc_fffc2ee2 ; je 0xfffc2ee2
+
+loc_fffc2de0: ; not directly referenced
+and edx, 0xfffffffd
+mov eax, dword [ebp - 0x30]
+dec edx
+jne short loc_fffc2df3 ; jne 0xfffc2df3
+movzx edx, byte [edi + eax + 0x106]
+jmp short loc_fffc2dfb ; jmp 0xfffc2dfb
+
+loc_fffc2df3: ; not directly referenced
+movzx edx, byte [edi + eax + 0x1d6]
+
+loc_fffc2dfb: ; not directly referenced
+xor eax, eax
+test ecx, ecx
+je loc_fffc2ee2 ; je 0xfffc2ee2
+imul edx, dword [ebp - 0x38]
+lea eax, [ecx + edx - 1]
+xor edx, edx
+div ecx
+jmp near loc_fffc2ee2 ; jmp 0xfffc2ee2
+
+loc_fffc2e16: ; not directly referenced
+movzx eax, word [edi + 0x250]
+test ax, ax
+jne loc_fffc2ee2 ; jne 0xfffc2ee2
+
+loc_fffc2e26: ; not directly referenced
+cmp edx, 3
+jne short loc_fffc2e65 ; jne 0xfffc2e65
+mov eax, 9
+cmp ecx, 0x105944
+jbe loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 7
+cmp ecx, 0x16e360
+jbe loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 5
+cmp ecx, 0x1c9c38
+jbe loc_fffc2ee2 ; jbe 0xfffc2ee2
+cmp ecx, 0x2625a1
+sbb eax, eax
+and eax, 4
+jmp short loc_fffc2ee2 ; jmp 0xfffc2ee2
+
+loc_fffc2e65: ; not directly referenced
+cmp edx, 2
+jne short loc_fffc2ea2 ; jne 0xfffc2ea2
+mov eax, 0x12
+cmp ecx, 0xbbcce
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 0xc
+cmp ecx, 0xcb735
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 0xb
+cmp ecx, 0xe5010
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 0xa
+cmp ecx, 0x105944
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+cmp ecx, 0x1312d1
+sbb eax, eax
+and eax, 9
+jmp short loc_fffc2ee2 ; jmp 0xfffc2ee2
+
+loc_fffc2ea2: ; not directly referenced
+mov eax, 0xa
+cmp ecx, 0xe5010
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 9
+cmp ecx, 0x105944
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 8
+cmp ecx, 0x1312d0
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 7
+cmp ecx, 0x16e360
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+mov al, 6
+cmp ecx, 0x1c9c38
+jbe short loc_fffc2ee2 ; jbe 0xfffc2ee2
+cmp ecx, 0x2625a1
+sbb eax, eax
+and eax, 5
+
+loc_fffc2ee2: ; not directly referenced
+mov edx, dword [ebp - 0x20]
+cmp eax, edx
+cmova eax, edx
+mov edx, dword [ebp + ebx*4 - 0x1c]
+cmp eax, edx
+cmovb eax, edx
+mov dword [ebp + ebx*4 - 0x1c], eax
+
+loc_fffc2ef7: ; not directly referenced
+add dword [ebp - 0x28], 0x20
+add esi, 0x128
+add edi, 0x277
+cmp dword [ebp - 0x28], 0x40
+jne loc_fffc2d7a ; jne 0xfffc2d7a
+inc dword [ebp - 0x24]
+cmp dword [ebp - 0x24], 2
+jne loc_fffc2d44 ; jne 0xfffc2d44
+
+loc_fffc2f1e: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffc2d07 ; jne 0xfffc2d07
+mov eax, dword [ebp + 8]
+mov ecx, 0xfffffffe
+add eax, 0x48d5
+
+loc_fffc2f35: ; not directly referenced
+cmp ecx, 1
+ja short loc_fffc2f46 ; ja 0xfffc2f46
+mov ebx, dword [ebp + 8]
+cmp byte [ebx + 0x3749], 0
+je short loc_fffc2f70 ; je 0xfffc2f70
+
+loc_fffc2f46: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x14]
+mov word [eax], dx
+mov word [eax - 0x1173], dx
+mov word [eax + 0x128], dx
+mov word [eax + 0x13c3], dx
+mov word [eax + 0x250], dx
+mov word [eax + 0x14eb], dx
+
+loc_fffc2f70: ; not directly referenced
+inc ecx
+add eax, 0x2e
+cmp ecx, 2
+jne short loc_fffc2f35 ; jne 0xfffc2f35
+add esp, 0x34
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc2f86: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+sub esp, 0x24
+
+loc_fffc2f91: ; not directly referenced
+lea eax, [esi - 2]
+cmp eax, 1
+ja short loc_fffc2fb8 ; ja 0xfffc2fb8
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x3749], 0
+jne short loc_fffc2fb8 ; jne 0xfffc2fb8
+
+loc_fffc2fa5: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffc2f91 ; jne 0xfffc2f91
+add esp, 0x24
+mov eax, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc2fb8: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0x1f], 2
+add eax, 0x1973
+mov dword [ebp - 0x24], eax
+mov eax, dword [ebp + 8]
+add eax, 0x3756
+mov dword [ebp - 0x14], eax
+lea eax, [esi*8]
+mov dword [ebp - 0x28], eax
+lea eax, [esi + esi + 0xf8]
+mov dword [ebp - 0x2c], eax
+lea eax, [esi - 2]
+mov dword [ebp - 0x30], eax
+
+loc_fffc2fec: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov ecx, dword [ebp - 0x24]
+mov edi, dword [ebp - 0x28]
+mov dword [ebp - 0x10], 0
+add eax, ecx
+mov dword [ebp - 0x1c], eax
+mov eax, dword [ebp - 0x14]
+add edi, eax
+
+loc_fffc3006: ; not directly referenced
+mov eax, dword [ebp - 0x14]
+mov ebx, dword [ebp - 0x10]
+cmp dword [eax + ebx + 0x1173], 2
+jne loc_fffc317b ; jne 0xfffc317b
+cmp dword [ebp - 0x30], 1
+ja loc_fffc30e8 ; ja 0xfffc30e8
+cmp esi, 2
+mov al, byte [eax + ebx + 0x1269]
+jne short loc_fffc3034 ; jne 0xfffc3034
+test al, 1
+jmp short loc_fffc3036 ; jmp 0xfffc3036
+
+loc_fffc3034: ; not directly referenced
+test al, 2
+
+loc_fffc3036: ; not directly referenced
+je loc_fffc30cf ; je 0xfffc30cf
+mov eax, dword [ebp - 0x14]
+mov ebx, dword [ebp - 0x10]
+mov eax, dword [eax + ebx + 0x1248]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc3068 ; jne 0xfffc3068
+mov al, byte [ecx + 0x100]
+mov dl, al
+and eax, 0xf
+shr dl, 4
+mov byte [ebp - 0x18], al
+mov eax, dword [ebp - 0x1c]
+mov byte [ebp - 0x1d], dl
+jmp short loc_fffc3084 ; jmp 0xfffc3084
+
+loc_fffc3068: ; not directly referenced
+mov al, byte [ecx + 0x1d0]
+mov dl, al
+and eax, 0xf
+mov byte [ebp - 0x18], al
+mov eax, dword [ebp - 0x1c]
+shr dl, 4
+mov byte [ebp - 0x1d], dl
+add eax, 0xd0
+
+loc_fffc3084: ; not directly referenced
+mov bl, byte [eax]
+mov edx, dword [ebp - 0x10]
+mov byte [ebp - 0x1e], bl
+movzx ebx, byte [eax + 1]
+mov eax, dword [ebp - 0x14]
+cmp byte [eax + edx + 0x126a], 0x12
+mov eax, 0
+je short loc_fffc30bd ; je 0xfffc30bd
+cmp byte [ebp - 0x18], 0
+je short loc_fffc30bd ; je 0xfffc30bd
+movzx edx, byte [ebp - 0x1d]
+imul eax, edx, 0x3e8
+movzx edx, byte [ebp - 0x18]
+mov dword [ebp - 0x18], edx
+cdq
+idiv dword [ebp - 0x18]
+
+loc_fffc30bd: ; not directly referenced
+mov dword [edi + 0xcd], eax
+xor eax, eax
+test bl, bl
+je short loc_fffc3144 ; je 0xfffc3144
+movzx eax, byte [ebp - 0x1e]
+jmp short loc_fffc313b ; jmp 0xfffc313b
+
+loc_fffc30cf: ; not directly referenced
+mov dword [edi + 0xcd], 0
+mov dword [edi + 0xc9], 0
+jmp near loc_fffc317b ; jmp 0xfffc317b
+
+loc_fffc30e8: ; not directly referenced
+mov eax, dword [ebp - 0x14]
+mov ebx, dword [ebp - 0x10]
+mov eax, dword [eax + ebx + 0x1248]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc314c ; jne 0xfffc314c
+mov dl, byte [ecx + 0x51]
+movzx ebx, byte [ecx + 0x53]
+mov al, dl
+shr al, 4
+mov byte [ebp - 0x18], al
+mov al, byte [ecx + 0x52]
+mov byte [ebp - 0x1d], al
+xor eax, eax
+and dl, 0xf
+je short loc_fffc312b ; je 0xfffc312b
+movzx eax, byte [ebp - 0x18]
+movzx edx, dl
+mov dword [ebp - 0x18], edx
+imul eax, eax, 0x3e8
+cdq
+idiv dword [ebp - 0x18]
+
+loc_fffc312b: ; not directly referenced
+mov dword [edi + 0xcd], eax
+xor eax, eax
+test bl, bl
+je short loc_fffc3144 ; je 0xfffc3144
+movzx eax, byte [ebp - 0x1d]
+
+loc_fffc313b: ; not directly referenced
+imul eax, eax, 0xf4240
+cdq
+idiv ebx
+
+loc_fffc3144: ; not directly referenced
+mov dword [edi + 0xc9], eax
+jmp short loc_fffc317b ; jmp 0xfffc317b
+
+loc_fffc314c: ; not directly referenced
+mov al, byte [ecx + 0x59]
+shr al, 2
+and eax, 3
+cmp eax, 1
+sbb eax, eax
+and eax, 0x1e848
+mov dword [edi + 0xc9], eax
+mov al, byte [ecx + 0x59]
+and eax, 3
+cmp eax, 1
+sbb eax, eax
+and eax, 0x3e8
+mov dword [edi + 0xcd], eax
+
+loc_fffc317b: ; not directly referenced
+add dword [ebp - 0x10], 0x128
+add edi, 0x20
+add ecx, 0x277
+add dword [ebp - 0x1c], 0x277
+cmp dword [ebp - 0x10], 0x250
+jne loc_fffc3006 ; jne 0xfffc3006
+add dword [ebp - 0x24], 0x54a
+add dword [ebp - 0x14], 0x13c3
+dec byte [ebp - 0x1f]
+jne loc_fffc2fec ; jne 0xfffc2fec
+jmp near loc_fffc2fa5 ; jmp 0xfffc2fa5
+
+fcn_fffc31bb: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov ecx, dword [ebp + 0xc]
+mov edx, dword [eax + 0xd5]
+and edx, 0xfffffffd
+dec edx
+jne short loc_fffc31d5 ; jne 0xfffc31d5
+mov dl, byte [ecx + 0x29]
+jmp short loc_fffc31d8 ; jmp 0xfffc31d8
+
+loc_fffc31d5: ; not directly referenced
+mov dl, byte [ecx + 7]
+
+loc_fffc31d8: ; not directly referenced
+and edx, 0xf
+cmp edx, 8
+ja short loc_fffc3234 ; ja 0xfffc3234
+jmp dword [edx*4 + ref_fffd5988] ; ujmp: jmp dword [edx*4 - 0x2a678]
+
+loc_fffc31e7: ; not directly referenced
+mov byte [eax + 0xf4], 0
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc31f0: ; not directly referenced
+mov byte [eax + 0xf4], 2
+
+loc_fffc31f7: ; not directly referenced
+mov eax, 1
+jmp short loc_fffc323d ; jmp 0xfffc323d
+
+loc_fffc31fe: ; not directly referenced
+mov byte [eax + 0xf4], 3
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc3207: ; not directly referenced
+mov byte [eax + 0xf4], 4
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc3210: ; not directly referenced
+mov byte [eax + 0xf4], 5
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc3219: ; not directly referenced
+mov byte [eax + 0xf4], 6
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc3222: ; not directly referenced
+mov byte [eax + 0xf4], 7
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc322b: ; not directly referenced
+mov byte [eax + 0xf4], 8
+jmp short loc_fffc31f7 ; jmp 0xfffc31f7
+
+loc_fffc3234: ; not directly referenced
+mov byte [eax + 0xf4], 0
+xor eax, eax
+
+loc_fffc323d: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffc323f: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+push ebx
+mov edx, dword [ebp + 0xc]
+mov ebx, dword [ebp + 8]
+mov ecx, dword [eax + 0xd5]
+and ecx, 0xfffffffd
+dec ecx
+jne short loc_fffc32a9 ; jne 0xfffc32a9
+mov cl, byte [edx + 0x1f]
+shr cl, 7
+mov byte [eax + 0xd1], cl
+mov cl, byte [edx + 0x1f]
+shr cl, 3
+and ecx, 1
+mov byte [eax + 0xd2], cl
+xor ecx, ecx
+test byte [edx + 0x1f], 4
+je short loc_fffc3287 ; je 0xfffc3287
+xor ecx, ecx
+cmp byte [ebx + 0x18b7], 0
+setne cl
+
+loc_fffc3287: ; not directly referenced
+mov byte [eax + 0xd0], cl
+mov cl, byte [edx + 0x1f]
+shr cl, 1
+and ecx, 1
+mov byte [eax + 0xd4], cl
+mov dl, byte [edx + 0x1f]
+and edx, 1
+mov byte [eax + 0xd3], dl
+jmp short loc_fffc32cc ; jmp 0xfffc32cc
+
+loc_fffc32a9: ; not directly referenced
+mov byte [eax + 0xd1], 0
+mov byte [eax + 0xd2], 0
+mov byte [eax + 0xd0], 0
+mov byte [eax + 0xd4], 0
+mov byte [eax + 0xd3], 0
+
+loc_fffc32cc: ; not directly referenced
+xor edx, edx
+cmp byte [eax + 0xd0], 0
+jne short loc_fffc32ec ; jne 0xfffc32ec
+cmp byte [eax + 0xd3], 0
+je short loc_fffc32ec ; je 0xfffc32ec
+xor edx, edx
+cmp byte [ebx + 0x18b8], 0
+setne dl
+
+loc_fffc32ec: ; not directly referenced
+mov byte [eax + 0xcf], dl
+mov eax, 1
+pop ebx
+pop ebp
+ret
+
+fcn_fffc32fa: ; not directly referenced
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 0x10]
+push ebx
+mov eax, dword [ebp + 0xc]
+mov ebx, dword [ecx + 0xd5]
+mov edx, ebx
+and edx, 0xfffffffd
+dec edx
+jne short loc_fffc3317 ; jne 0xfffc3317
+mov dl, byte [eax + 0x3f]
+jmp short loc_fffc331d ; jmp 0xfffc331d
+
+loc_fffc3317: ; not directly referenced
+mov dl, byte [eax + 0x83]
+
+loc_fffc331d: ; not directly referenced
+and edx, 1
+mov eax, 1
+mov byte [ecx + 0xce], dl
+cmp ebx, 2
+jne short loc_fffc3340 ; jne 0xfffc3340
+dec dl
+jne short loc_fffc3340 ; jne 0xfffc3340
+xor eax, eax
+cmp dword [ecx + 0xd9], 3
+sete al
+
+loc_fffc3340: ; not directly referenced
+pop ebx
+pop ebp
+ret
+
+fcn_fffc3343: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+mov eax, dword [edx + 0xd5]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc336e ; jne 0xfffc336e
+mov eax, dword [ebp + 0xc]
+mov al, byte [eax + 8]
+shr al, 3
+and eax, 3
+dec al
+jne short loc_fffc336e ; jne 0xfffc336e
+mov byte [edx + 0xcc], 1
+jmp short loc_fffc3375 ; jmp 0xfffc3375
+
+loc_fffc336e: ; not directly referenced
+mov byte [edx + 0xcc], 0
+
+loc_fffc3375: ; not directly referenced
+mov eax, 1
+pop ebp
+ret
+
+fcn_fffc337c: ; not directly referenced
+push ebp
+mov ecx, 8
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd59ac ; mov esi, 0xfffd59ac
+push ebx
+sub esp, 0x20
+mov ebx, dword [ebp + 0x10]
+lea edi, [ebp - 0x2c]
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov dl, byte [ebx + 0xf1]
+test dl, dl
+je short loc_fffc33e6 ; je 0xfffc33e6
+mov al, byte [ebx + 0xf3]
+cmp al, 7
+ja short loc_fffc33e6 ; ja 0xfffc33e6
+movzx ecx, al
+movzx eax, byte [ebx + 0xf0]
+imul eax, dword [ebp + ecx*4 - 0x2c]
+movzx ecx, dl
+xor edx, edx
+div ecx
+movzx edx, byte [ebx + 0xed]
+imul eax, edx
+lea edx, [eax - 0x200]
+cmp edx, 0x3e00
+ja short loc_fffc33e6 ; ja 0xfffc33e6
+mov dword [ebx + 0xe1], eax
+mov eax, 1
+jmp short loc_fffc33f2 ; jmp 0xfffc33f2
+
+loc_fffc33e6: ; not directly referenced
+mov dword [ebx + 0xe1], 0
+xor eax, eax
+
+loc_fffc33f2: ; not directly referenced
+add esp, 0x20
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc33fa: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+mov ecx, dword [ebp + 0xc]
+mov eax, dword [edx + 0xd5]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc3414 ; jne 0xfffc3414
+mov al, byte [ecx + 7]
+jmp short loc_fffc3417 ; jmp 0xfffc3417
+
+loc_fffc3414: ; not directly referenced
+mov al, byte [ecx + 0xc]
+
+loc_fffc3417: ; not directly referenced
+shr al, 3
+and eax, 7
+inc eax
+cmp al, 2
+ja short loc_fffc342f ; ja 0xfffc342f
+mov byte [edx + 0xed], al
+mov eax, 1
+jmp short loc_fffc3438 ; jmp 0xfffc3438
+
+loc_fffc342f: ; not directly referenced
+mov byte [edx + 0xed], 0
+xor eax, eax
+
+loc_fffc3438: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffc343a: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+push esi
+mov eax, dword [ebp + 0xc]
+push ebx
+mov ecx, dword [edx + 0xd5]
+and ecx, 0xfffffffd
+dec ecx
+mov cl, byte [eax + 4]
+jne short loc_fffc3478 ; jne 0xfffc3478
+and ecx, 0xf
+mov byte [edx + 0xf3], cl
+test byte [eax + 4], 0x70
+jne short loc_fffc34c3 ; jne 0xfffc34c3
+mov byte [edx + 0xee], 8
+mov eax, 1
+mov byte [edx + 0xef], 0
+jmp short loc_fffc34c5 ; jmp 0xfffc34c5
+
+loc_fffc3478: ; not directly referenced
+and ecx, 0xf
+mov byte [edx + 0xf3], cl
+mov al, byte [eax + 4]
+mov cl, al
+shr cl, 4
+shr al, 6
+and ecx, 3
+mov esi, eax
+xor eax, eax
+cmp cl, 1
+ja short loc_fffc34aa ; ja 0xfffc34aa
+mov eax, 4
+shl eax, cl
+mov byte [edx + 0xee], al
+mov eax, 1
+
+loc_fffc34aa: ; not directly referenced
+lea ecx, [esi - 1]
+cmp cl, 1
+ja short loc_fffc34c3 ; ja 0xfffc34c3
+mov ebx, 1
+mov ecx, esi
+shl ebx, cl
+mov byte [edx + 0xef], bl
+jmp short loc_fffc34c5 ; jmp 0xfffc34c5
+
+loc_fffc34c3: ; not directly referenced
+xor eax, eax
+
+loc_fffc34c5: ; not directly referenced
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc34c9: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+mov ecx, dword [ebp + 0xc]
+mov eax, dword [edx + 0xd5]
+and eax, 0xfffffffd
+dec eax
+jne short loc_fffc34e3 ; jne 0xfffc34e3
+mov al, byte [ecx + 8]
+jmp short loc_fffc34e6 ; jmp 0xfffc34e6
+
+loc_fffc34e3: ; not directly referenced
+mov al, byte [ecx + 0xd]
+
+loc_fffc34e6: ; not directly referenced
+and eax, 7
+cmp al, 3
+jne short loc_fffc34fb ; jne 0xfffc34fb
+mov byte [edx + 0xf0], 0x40
+mov eax, 1
+jmp short loc_fffc3504 ; jmp 0xfffc3504
+
+loc_fffc34fb: ; not directly referenced
+mov byte [edx + 0xf0], 0
+xor eax, eax
+
+loc_fffc3504: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffc3506: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0xc]
+push ebx
+mov eax, dword [ebp + 8]
+mov ecx, dword [ebp + 0x10]
+mov dl, byte [edx + 5]
+mov eax, dword [eax + 0x1887]
+and edx, 7
+cmp dl, 2
+je short loc_fffc3567 ; je 0xfffc3567
+cmp dl, 3
+je short loc_fffc3592 ; je 0xfffc3592
+dec dl
+jne short loc_fffc35a4 ; jne 0xfffc35a4
+cmp eax, 0x40650
+je short loc_fffc355c ; je 0xfffc355c
+cmp eax, 0x40660
+sete bl
+cmp eax, 0x306c0
+sete dl
+or bl, dl
+jne short loc_fffc355c ; jne 0xfffc355c
+cmp eax, 0x40670
+sete bl
+cmp eax, 0x306d0
+sete dl
+or bl, dl
+je short loc_fffc356e ; je 0xfffc356e
+
+loc_fffc355c: ; not directly referenced
+mov word [ecx + 0xe9], 0x400
+jmp short loc_fffc358b ; jmp 0xfffc358b
+
+loc_fffc3567: ; not directly referenced
+cmp eax, 0x40650
+je short loc_fffc3582 ; je 0xfffc3582
+
+loc_fffc356e: ; not directly referenced
+cmp eax, 0x40670
+sete dl
+cmp eax, 0x306d0
+sete al
+or dl, al
+je short loc_fffc35a4 ; je 0xfffc35a4
+
+loc_fffc3582: ; not directly referenced
+mov word [ecx + 0xe9], 0x800
+
+loc_fffc358b: ; not directly referenced
+mov eax, 1
+jmp short loc_fffc35af ; jmp 0xfffc35af
+
+loc_fffc3592: ; not directly referenced
+cmp eax, 0x40650
+jne short loc_fffc35a4 ; jne 0xfffc35a4
+mov word [ecx + 0xe9], 0x1000
+jmp short loc_fffc358b ; jmp 0xfffc358b
+
+loc_fffc35a4: ; not directly referenced
+mov word [ecx + 0xe9], 0
+xor eax, eax
+
+loc_fffc35af: ; not directly referenced
+pop ebx
+pop ebp
+ret
+
+fcn_fffc35b2: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov edx, dword [ebp + 0x10]
+mov al, byte [eax + 5]
+shr al, 3
+and eax, 7
+cmp al, 4
+ja short loc_fffc3613 ; ja 0xfffc3613
+movzx eax, al
+jmp dword [eax*4 + ref_fffd59cc] ; ujmp: jmp dword [eax*4 - 0x2a634]
+
+loc_fffc35d2: ; not directly referenced
+mov dword [edx + 0xe5], 0x1000
+jmp short loc_fffc35e8 ; jmp 0xfffc35e8
+
+loc_fffc35de: ; not directly referenced
+mov dword [edx + 0xe5], 0x2000
+
+loc_fffc35e8: ; not directly referenced
+mov eax, 1
+jmp short loc_fffc361f ; jmp 0xfffc361f
+
+loc_fffc35ef: ; not directly referenced
+mov dword [edx + 0xe5], 0x4000
+jmp short loc_fffc35e8 ; jmp 0xfffc35e8
+
+loc_fffc35fb: ; not directly referenced
+mov dword [edx + 0xe5], 0x8000
+jmp short loc_fffc35e8 ; jmp 0xfffc35e8
+
+loc_fffc3607: ; not directly referenced
+mov dword [edx + 0xe5], 0x10000
+jmp short loc_fffc35e8 ; jmp 0xfffc35e8
+
+loc_fffc3613: ; not directly referenced
+mov dword [edx + 0xe5], 0
+xor eax, eax
+
+loc_fffc361f: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffc3621: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0x10]
+mov ecx, dword [ebp + 0xc]
+mov edx, dword [eax + 0xd5]
+and edx, 0xfffffffd
+dec edx
+jne short loc_fffc363b ; jne 0xfffc363b
+mov dl, byte [ecx + 7]
+jmp short loc_fffc363e ; jmp 0xfffc363e
+
+loc_fffc363b: ; not directly referenced
+mov dl, byte [ecx + 0xc]
+
+loc_fffc363e: ; not directly referenced
+and edx, 7
+mov byte [eax + 0xf2], dl
+mov dl, byte [eax + 0xf2]
+cmp dl, 2
+je short loc_fffc3664 ; je 0xfffc3664
+cmp dl, 3
+je short loc_fffc3672 ; je 0xfffc3672
+dec dl
+jne short loc_fffc367b ; jne 0xfffc367b
+mov byte [eax + 0xf1], 8
+jmp short loc_fffc366b ; jmp 0xfffc366b
+
+loc_fffc3664: ; not directly referenced
+mov byte [eax + 0xf1], 0x10
+
+loc_fffc366b: ; not directly referenced
+mov eax, 1
+jmp short loc_fffc3684 ; jmp 0xfffc3684
+
+loc_fffc3672: ; not directly referenced
+mov byte [eax + 0xf1], 0x20
+jmp short loc_fffc366b ; jmp 0xfffc366b
+
+loc_fffc367b: ; not directly referenced
+mov byte [eax + 0xf1], 0
+xor eax, eax
+
+loc_fffc3684: ; not directly referenced
+pop ebp
+ret
+
+fcn_fffc3686: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 1
+mov ebx, dword [ebp + 0xc]
+mov esi, dword [ebp + 8]
+mov edx, dword [ebp + 0x10]
+mov cl, byte [ebx + 6]
+mov eax, dword [esi + 0x1887]
+mov edi, dword [esi + 0x188b]
+mov byte [ebp - 0xd], cl
+mov cl, byte [ebx + 2]
+shr byte [ebp - 0xd], 1
+and byte [ebp - 0xd], 1
+cmp cl, 0xc
+je loc_fffc3749 ; je 0xfffc3749
+cmp cl, 0xf1
+je short loc_fffc370a ; je 0xfffc370a
+cmp cl, 0xb
+jne loc_fffc376a ; jne 0xfffc376a
+mov dword [edx + 0xd5], 1
+mov cl, byte [ebx + 3]
+add ebx, 0xb0
+and ecx, 0xf
+cmp eax, 0x306d0
+mov dword [edx + 0xd9], ecx
+sete cl
+cmp eax, 0x40650
+sete al
+or cl, al
+je loc_fffc3814 ; je 0xfffc3814
+cmp byte [ebp - 0xd], 0
+je short loc_fffc3780 ; je 0xfffc3780
+jmp near loc_fffc3814 ; jmp 0xfffc3814
+
+loc_fffc370a: ; not directly referenced
+cmp eax, 0x40650
+je short loc_fffc3728 ; je 0xfffc3728
+cmp eax, 0x40660
+sete cl
+cmp eax, 0x306c0
+sete al
+or cl, al
+jne short loc_fffc3728 ; jne 0xfffc3728
+dec edi
+jne short loc_fffc3749 ; jne 0xfffc3749
+
+loc_fffc3728: ; not directly referenced
+mov dword [edx + 0xd5], 3
+mov al, byte [ebx + 3]
+add ebx, 0xb0
+and eax, 0xf
+mov dword [edx + 0xd9], eax
+jmp near loc_fffc3814 ; jmp 0xfffc3814
+
+loc_fffc3749: ; not directly referenced
+mov dword [edx + 0xd5], 2
+mov al, byte [ebx + 3]
+add ebx, 0x180
+and eax, 0xf
+mov dword [edx + 0xd9], eax
+jmp near loc_fffc3814 ; jmp 0xfffc3814
+
+loc_fffc376a: ; not directly referenced
+mov dword [edx + 0xd5], 0
+xor ebx, ebx
+mov dword [edx + 0xd9], 0
+
+loc_fffc3780: ; not directly referenced
+xor eax, eax
+
+loc_fffc3782: ; not directly referenced
+mov byte [edx + 0xf6], 0
+test eax, eax
+je loc_fffc383c ; je 0xfffc383c
+cmp word [ebx], 0x4a0c
+mov eax, dword [esi + 0x18a7]
+jne short loc_fffc37bf ; jne 0xfffc37bf
+mov cl, byte [ebx + 3]
+and ecx, 0xfffffffe
+cmp cl, 0x12
+jne short loc_fffc37bf ; jne 0xfffc37bf
+cmp eax, 2
+jne short loc_fffc37b4 ; jne 0xfffc37b4
+test byte [ebx + 2], 1
+jmp short loc_fffc37bd ; jmp 0xfffc37bd
+
+loc_fffc37b4: ; not directly referenced
+cmp eax, 3
+jne short loc_fffc37cd ; jne 0xfffc37cd
+test byte [ebx + 2], 2
+
+loc_fffc37bd: ; not directly referenced
+jne short loc_fffc37cd ; jne 0xfffc37cd
+
+loc_fffc37bf: ; not directly referenced
+sub eax, 2
+cmp eax, 1
+seta al
+movzx eax, al
+jmp short loc_fffc37d9 ; jmp 0xfffc37d9
+
+loc_fffc37cd: ; not directly referenced
+or byte [esi + 0x3749], 1
+mov eax, 1
+
+loc_fffc37d9: ; not directly referenced
+cmp word [ebx], 0x4a0c
+jne short loc_fffc383c ; jne 0xfffc383c
+movzx edi, byte [ebx + 3]
+mov esi, edi
+and esi, 0xfffffffe
+mov ecx, esi
+cmp cl, 0x12
+jne short loc_fffc37f8 ; jne 0xfffc37f8
+mov ecx, edi
+mov byte [edx + 0xf7], cl
+
+loc_fffc37f8: ; not directly referenced
+test byte [ebx + 2], 1
+je short loc_fffc3805 ; je 0xfffc3805
+or byte [edx + 0xf6], 1
+
+loc_fffc3805: ; not directly referenced
+test byte [ebx + 2], 2
+je short loc_fffc383c ; je 0xfffc383c
+or byte [edx + 0xf6], 2
+jmp short loc_fffc383c ; jmp 0xfffc383c
+
+loc_fffc3814: ; not directly referenced
+mov eax, dword [edx + 0xd9]
+lea ecx, [eax - 2]
+xor eax, eax
+cmp ecx, 6
+ja loc_fffc3782 ; ja 0xfffc3782
+mov eax, 1
+shl eax, cl
+test al, 0x43
+setne al
+movzx eax, al
+jmp near loc_fffc3782 ; jmp 0xfffc3782
+
+loc_fffc383c: ; not directly referenced
+add esp, 1
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc3844: ; not directly referenced
+push ebp
+mov ebp, esp
+movzx eax, byte [ebp + 0x10]
+movzx edx, byte [ebp + 0x14]
+shl eax, 0xc
+add edx, eax
+movzx eax, byte [ebp + 0xc]
+shl eax, 0xf
+add edx, eax
+movzx eax, byte [ebp + 8]
+pop ebp
+shl eax, 0x14
+add eax, edx
+ret
+
+fcn_fffc3868: ; not directly referenced
+push ebp
+mov ebp, esp
+mov edx, dword [ebp + 0x10]
+movzx eax, byte [ebp + 0x14]
+and edx, 7
+shl edx, 8
+or eax, 0x80000000
+or eax, edx
+movzx edx, byte [ebp + 8]
+shl edx, 0x10
+or eax, edx
+movzx edx, byte [ebp + 0xc]
+pop ebp
+shl edx, 0xb
+movzx edx, dx
+or eax, edx
+ret
+
+fcn_fffc3896: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x1c], 0
+mov eax, dword [ebx + 0x2443]
+lea edi, [ebx + 0xfb9]
+mov dword [ebp - 0x20], eax
+mov al, byte [ebx + 0xfb8]
+mov byte [ebx + 0x3755], al
+mov eax, dword [ebx + 0xfb4]
+mov dword [ebx + 0x374e], eax
+
+loc_fffc38d0: ; not directly referenced
+imul esi, dword [ebp - 0x1c], 0x13c3
+xor edx, edx
+mov eax, dword [edi + 4]
+lea ecx, [ebx + esi + 0x3756]
+mov dword [ebx + esi + 0x3816], eax
+mov al, byte [edi + 8]
+mov byte [ebx + esi + 0x381a], al
+mov eax, dword [edi]
+mov dword [ebx + esi + 0x3756], eax
+
+loc_fffc38fd: ; not directly referenced
+push eax
+push 0x2e
+lea eax, [edi + edx + 9]
+push eax
+lea eax, [ecx + edx + 4]
+push eax
+mov eax, dword [ebp - 0x20]
+mov dword [ebp - 0x28], edx
+mov dword [ebp - 0x24], ecx
+call dword [eax + 0x58] ; ucall
+mov edx, dword [ebp - 0x28]
+add esp, 0x10
+mov ecx, dword [ebp - 0x24]
+add edx, 0x2e
+cmp edx, 0xb8
+jne short loc_fffc38fd ; jne 0xfffc38fd
+imul eax, dword [ebp - 0x1c], 0x54a
+lea esi, [ebx + esi + 0x48c9]
+mov dword [ebp - 0x24], esi
+lea edx, [edi + 0x313]
+mov byte [ebp - 0x29], 2
+lea esi, [ebx + eax + 0x1afb]
+lea eax, [edi + 0xc1]
+mov dword [ebp - 0x28], eax
+
+loc_fffc3955: ; not directly referenced
+mov eax, dword [ebp - 0x28]
+mov eax, dword [eax]
+lea ecx, [eax - 1]
+cmp ecx, 1
+ja short loc_fffc39d5 ; ja 0xfffc39d5
+push eax
+mov eax, dword [ebp - 0x20]
+push 0x128
+push dword [ebp - 0x28]
+push dword [ebp - 0x24]
+mov dword [ebp - 0x30], edx
+call dword [eax + 0x58] ; ucall
+mov edx, dword [ebp - 0x30]
+add esp, 0x10
+cmp byte [esi - 0x13e], 0xc
+jne short loc_fffc39a1 ; jne 0xfffc39a1
+mov cl, byte [edx - 2]
+mov eax, esi
+mov byte [esi - 0x13d], cl
+mov cl, byte [edx - 1]
+mov byte [esi - 0x133], cl
+mov ecx, 0x1d
+jmp short loc_fffc39be ; jmp 0xfffc39be
+
+loc_fffc39a1: ; not directly referenced
+mov al, byte [edx - 2]
+mov ecx, 0x1f
+mov byte [esi - 0x13d], al
+mov al, byte [edx - 1]
+mov byte [esi - 0x138], al
+lea eax, [esi - 0xcb]
+
+loc_fffc39be: ; not directly referenced
+sub esp, 4
+push ecx
+push edx
+push eax
+mov eax, dword [ebp - 0x20]
+mov dword [ebp - 0x30], edx
+call dword [eax + 0x58] ; ucall
+add esp, 0x10
+mov edx, dword [ebp - 0x30]
+jmp short loc_fffc39da ; jmp 0xfffc39da
+
+loc_fffc39d5: ; not directly referenced
+mov ecx, dword [ebp - 0x24]
+mov dword [ecx], eax
+
+loc_fffc39da: ; not directly referenced
+add dword [ebp - 0x28], 0x128
+add esi, 0x277
+add edx, 0x21
+add dword [ebp - 0x24], 0x128
+dec byte [ebp - 0x29]
+jne loc_fffc3955 ; jne 0xfffc3955
+inc dword [ebp - 0x1c]
+add edi, 0x433
+cmp dword [ebp - 0x1c], 2
+jne loc_fffc38d0 ; jne 0xfffc38d0
+mov eax, dword [ebx + 0x182c]
+xor ecx, ecx
+mov dword [ebx + 0x3735], eax
+mov eax, dword [ebx + 0x1830]
+mov dword [ebx + 0x3739], eax
+mov eax, dword [ebx + 0x1834]
+mov dword [ebx + 0x373d], eax
+mov eax, dword [ebx + 0x1838]
+mov dword [ebx + 0x3741], eax
+mov eax, dword [ebx + 0xfa4]
+mov dword [ebx + 0x1887], eax
+mov eax, dword [ebx + 0xfa0]
+mov dword [ebx + 0x1883], eax
+mov eax, dword [ebx + 0xfa8]
+mov dword [ebx + 0x188b], eax
+mov al, byte [ebx + 0x1842]
+mov byte [ebx + 0x190d], al
+mov eax, dword [ebx + 0x181f]
+mov dword [ebx + 0x36d7], eax
+mov eax, dword [ebx + 0x1823]
+mov dword [ebx + 0x36df], eax
+mov al, byte [ebx + 0x182b]
+mov byte [ebx + 0x36e7], al
+mov eax, dword [ebx + 0x1827]
+mov dword [ebx + 0x36e3], eax
+mov al, byte [ebx + 0x183c]
+mov byte [ebx + 0x3748], al
+mov eax, dword [ebx + 0x183d]
+mov dword [ebx + 0x2480], eax
+mov al, byte [ebx + 0x1841]
+mov byte [ebx + 0x3749], al
+mov al, byte [ebx + 0x184c]
+mov byte [ebx + 0x36ca], al
+mov eax, dword [ebx + 0x1843]
+mov dword [ebx + 0x36cb], eax
+mov eax, dword [ebx + 0x1847]
+mov dword [ebx + 0x1912], eax
+mov al, byte [ebx + 0x184b]
+mov byte [ebx + 0x1916], al
+mov al, byte [ebx + 0x184d]
+mov byte [ebx + 0x36a8], al
+
+loc_fffc3aff: ; not directly referenced
+mov eax, dword [ebx + ecx + 0x184e]
+mov edx, dword [ebx + ecx + 0x1852]
+mov dword [ebx + ecx + 0x36a9], eax
+mov dword [ebx + ecx + 0x36ad], edx
+add ecx, 8
+cmp ecx, 0x20
+jne short loc_fffc3aff ; jne 0xfffc3aff
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc3b2d: ; not directly referenced
+push ebp
+mov ebp, esp
+push ebx
+sub esp, 0x10
+mov ebx, dword [ebp + 8]
+mov al, byte [ebx + 0x18b1]
+mov ecx, dword [ebx + 0x18cd]
+mov byte [ebx + 0x2479], 0
+mov byte [ebx + 0x3748], al
+mov al, byte [ebx + 0x23ff]
+lea edx, [ecx + 0x18]
+mov byte [ebx + 0x3745], al
+mov eax, dword [ebx + 0x2443]
+push edx
+call dword [eax + 0x20] ; ucall
+add esp, 0x10
+mov edx, eax
+shr edx, 0x10
+test ax, ax
+jne short loc_fffc3b80 ; jne 0xfffc3b80
+cmp dx, 1
+jbe short loc_fffc3b80 ; jbe 0xfffc3b80
+mov al, dl
+jmp short loc_fffc3b86 ; jmp 0xfffc3b86
+
+loc_fffc3b80: ; not directly referenced
+mov al, byte [ebx + 0x2401]
+
+loc_fffc3b86: ; not directly referenced
+mov ecx, dword [ebx + 0x18cd]
+sub esp, 0xc
+mov byte [ebx + 0x3747], al
+mov eax, dword [ebx + 0x2443]
+lea edx, [ecx + 0x28]
+push edx
+call dword [eax + 0x20] ; ucall
+add esp, 0x10
+mov edx, eax
+shr edx, 0x10
+test ax, ax
+jne short loc_fffc3bb9 ; jne 0xfffc3bb9
+cmp dx, 1
+jbe short loc_fffc3bb9 ; jbe 0xfffc3bb9
+mov al, dl
+jmp short loc_fffc3bbf ; jmp 0xfffc3bbf
+
+loc_fffc3bb9: ; not directly referenced
+mov al, byte [ebx + 0x2400]
+
+loc_fffc3bbf: ; not directly referenced
+mov byte [ebx + 0x3746], al
+xor eax, eax
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffc3bcc: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffc3bd3: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+pop ebp
+ret
+
+fcn_fffc3bda: ; not directly referenced
+push ebp
+and edx, 0xff00
+mov ebp, esp
+push ebx
+xor ebx, ebx
+sub esp, 8
+push 0xe
+push ebx
+push edx
+call dword [eax + 0x68] ; ucall
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffc3bf5: ; not directly referenced
+push ebp
+movzx ecx, dl
+mov ebp, esp
+push ebx
+xor ebx, ebx
+sub esp, 8
+push 0x16
+push ebx
+push ecx
+call dword [eax + 0x68] ; ucall
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffc3c0d:
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov esi, dword [eax + 0x2443]
+lea ebx, [edx - 0xd]
+mov ecx, dword [eax + 0x2480]
+cmp ebx, 0x36
+ja loc_fffc3dad ; ja 0xfffc3dad
+jmp dword [ebx*4 + ref_fffd59e0] ; ujmp: jmp dword [ebx*4 - 0x2a620]
+
+loc_fffc3c31:
+cmp ecx, 3
+je loc_fffc3dad ; je 0xfffc3dad
+mov bl, byte [eax + 0x2403]
+jmp short loc_fffc3c98 ; jmp 0xfffc3c98
+
+loc_fffc3c42:
+mov bl, byte [eax + 0x2403]
+jmp short loc_fffc3cc0 ; jmp 0xfffc3cc0
+
+loc_fffc3c4a:
+mov bl, byte [eax + 0x2403]
+jmp near loc_fffc3d09 ; jmp 0xfffc3d09
+
+loc_fffc3c55:
+mov bl, byte [eax + 0x2403]
+jmp near loc_fffc3d14 ; jmp 0xfffc3d14
+
+loc_fffc3c60:
+mov bl, byte [eax + 0x2403]
+jmp near loc_fffc3d87 ; jmp 0xfffc3d87
+
+loc_fffc3c6b:
+mov bl, byte [eax + 0x2403]
+jmp short loc_fffc3cdd ; jmp 0xfffc3cdd
+
+loc_fffc3c73:
+mov bl, byte [eax + 0x2403]
+jmp near loc_fffc3d1f ; jmp 0xfffc3d1f
+
+loc_fffc3c7e:
+movsx ebx, byte [eax + 0x2403]
+jmp near loc_fffc3d51 ; jmp 0xfffc3d51
+
+loc_fffc3c8a:
+cmp ecx, 2
+jmp near loc_fffc3d7c ; jmp 0xfffc3d7c
+
+loc_fffc3c92:
+mov bl, byte [eax + 0x2404]
+
+loc_fffc3c98:
+not ebx
+jmp near loc_fffc3d25 ; jmp 0xfffc3d25
+
+loc_fffc3c9f:
+mov bl, byte [eax + 0x2406]
+jmp short loc_fffc3cdd ; jmp 0xfffc3cdd
+
+loc_fffc3ca7:
+mov bl, byte [eax + 0x2406]
+jmp near loc_fffc3d87 ; jmp 0xfffc3d87
+
+loc_fffc3cb2:
+mov bl, byte [eax + 0x2406]
+jmp short loc_fffc3d14 ; jmp 0xfffc3d14
+
+loc_fffc3cba:
+mov bl, byte [eax + 0x2404]
+
+loc_fffc3cc0:
+shr bl, 1
+jmp short loc_fffc3d22 ; jmp 0xfffc3d22
+
+loc_fffc3cc4:
+mov bl, byte [eax + 0x2404]
+jmp short loc_fffc3d09 ; jmp 0xfffc3d09
+
+loc_fffc3ccc:
+mov bl, byte [eax + 0x2404]
+jmp near loc_fffc3d87 ; jmp 0xfffc3d87
+
+loc_fffc3cd7:
+mov bl, byte [eax + 0x2404]
+
+loc_fffc3cdd:
+shr bl, 5
+jmp short loc_fffc3d22 ; jmp 0xfffc3d22
+
+loc_fffc3ce2:
+mov bl, byte [eax + 0x2404]
+jmp short loc_fffc3d1f ; jmp 0xfffc3d1f
+
+loc_fffc3cea:
+movsx ebx, byte [eax + 0x2404]
+jmp short loc_fffc3d51 ; jmp 0xfffc3d51
+
+loc_fffc3cf3:
+mov bl, byte [eax + 0x2405]
+jmp short loc_fffc3c98 ; jmp 0xfffc3c98
+
+loc_fffc3cfb:
+mov bl, byte [eax + 0x2405]
+jmp short loc_fffc3cc0 ; jmp 0xfffc3cc0
+
+loc_fffc3d03:
+mov bl, byte [eax + 0x2405]
+
+loc_fffc3d09:
+shr bl, 2
+jmp short loc_fffc3d22 ; jmp 0xfffc3d22
+
+loc_fffc3d0e:
+mov bl, byte [eax + 0x2405]
+
+loc_fffc3d14:
+shr bl, 3
+jmp short loc_fffc3d22 ; jmp 0xfffc3d22
+
+loc_fffc3d19:
+mov bl, byte [eax + 0x2405]
+
+loc_fffc3d1f:
+shr bl, 6
+
+loc_fffc3d22:
+xor ebx, 1
+
+loc_fffc3d25:
+and ebx, 1
+jmp near loc_fffc3daf ; jmp 0xfffc3daf
+
+loc_fffc3d2d:
+mov ebx, 1
+test byte [eax + 0x2405], 0x20
+je short loc_fffc3daf ; je 0xfffc3daf
+cmp dword [eax + 0x188b], 0
+
+loc_fffc3d42:
+sete bl
+
+loc_fffc3d45:
+movzx ebx, bl
+jmp short loc_fffc3daf ; jmp 0xfffc3daf
+
+loc_fffc3d4a:
+movsx ebx, byte [eax + 0x2405]
+
+loc_fffc3d51:
+not ebx
+shr ebx, 0x1f
+jmp short loc_fffc3daf ; jmp 0xfffc3daf
+
+loc_fffc3d58:
+mov ebx, 1
+test byte [eax + 0x2406], 1
+je short loc_fffc3daf ; je 0xfffc3daf
+
+loc_fffc3d66:
+cmp ecx, 3
+jmp short loc_fffc3d42 ; jmp 0xfffc3d42
+
+loc_fffc3d6b:
+mov ebx, 1
+test byte [eax + 0x2404], 8
+je short loc_fffc3daf ; je 0xfffc3daf
+
+loc_fffc3d79:
+cmp ecx, 3
+
+loc_fffc3d7c:
+setne bl
+jmp short loc_fffc3d45 ; jmp 0xfffc3d45
+
+loc_fffc3d81:
+mov bl, byte [eax + 0x2405]
+
+loc_fffc3d87:
+shr bl, 4
+jmp short loc_fffc3d22 ; jmp 0xfffc3d22
+
+loc_fffc3d8c:
+mov bl, byte [eax + 0x2406]
+jmp near loc_fffc3cc0 ; jmp 0xfffc3cc0
+
+loc_fffc3d97:
+mov bl, byte [eax + 0x2406]
+jmp near loc_fffc3d09 ; jmp 0xfffc3d09
+
+loc_fffc3da2:
+mov bl, byte [eax + 0x2406]
+jmp near loc_fffc3d1f ; jmp 0xfffc3d1f
+
+loc_fffc3dad:
+xor ebx, ebx
+
+loc_fffc3daf:
+push ecx
+push 0
+push edx
+push eax
+call dword [esi + 0x90] ; ucall
+lea esp, [ebp - 8]
+or eax, ebx
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffc3dc3:
+push ebp
+xor ecx, ecx
+mov ebp, esp
+push esi
+push ebx
+sub esp, 0x400
+
+loc_fffc3dd0:
+mov ebx, ecx
+mov esi, 8
+
+loc_fffc3dd7:
+test bl, 1
+je short loc_fffc3de6 ; je 0xfffc3de6
+shr ebx, 1
+xor ebx, 0xedb88320
+jmp short loc_fffc3de8 ; jmp 0xfffc3de8
+
+loc_fffc3de6:
+shr ebx, 1
+
+loc_fffc3de8:
+dec esi
+jne short loc_fffc3dd7 ; jne 0xfffc3dd7
+mov dword [ebp + ecx*4 - 0x408], ebx
+inc ecx
+cmp ecx, 0x100
+jne short loc_fffc3dd0 ; jne 0xfffc3dd0
+or ecx, 0xffffffff
+xor ebx, ebx
+
+loc_fffc3e00:
+cmp ebx, edx
+je short loc_fffc3e1b ; je 0xfffc3e1b
+mov esi, ecx
+xor cl, byte [eax + ebx]
+inc ebx
+shr esi, 8
+movzx ecx, cl
+xor esi, dword [ebp + ecx*4 - 0x408]
+mov ecx, esi
+jmp short loc_fffc3e00 ; jmp 0xfffc3e00
+
+loc_fffc3e1b:
+add esp, 0x400
+mov eax, ecx
+pop ebx
+not eax
+pop esi
+pop ebp
+ret
+
+fcn_fffc3e29:
+cmp dword [eax + 0x39], 1
+jne loc_fffc3f07 ; jne 0xfffc3f07
+push ebp
+add eax, 0x369
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 5
+mov ebx, dword [edx + 9]
+mov dword [ebp - 0x10], eax
+mov byte [ebp - 0x11], 2
+
+loc_fffc3e4b:
+mov ecx, dword [ebp - 0x10]
+xor esi, esi
+
+loc_fffc3e50:
+movzx edi, byte [ebx + 0x10]
+mov word [ecx - 0x18], di
+mov di, word [ebx + 8]
+mov word [ecx - 0x16], di
+mov di, word [ebx + 0x20]
+mov word [ecx - 0x14], di
+mov di, word [ebx + 0x1e]
+mov word [ecx - 0x12], di
+mov di, word [ebx + 0xe]
+mov word [ecx - 0x10], di
+mov di, word [ebx + 0x1c]
+mov word [ecx - 0xe], di
+mov di, word [ebx + 0xa]
+mov word [ecx - 0xc], di
+mov di, word [ebx + 0x22]
+mov word [ecx - 0xa], di
+mov di, word [ebx + 0x14]
+mov word [ecx - 8], di
+mov di, word [ebx + 0xc]
+mov word [ecx - 2], di
+cmp byte [edx], 5
+jbe short loc_fffc3eae ; jbe 0xfffc3eae
+mov di, word [ebx + 0x68]
+mov word [ecx], di
+jmp short loc_fffc3eb3 ; jmp 0xfffc3eb3
+
+loc_fffc3eae:
+mov word [ecx], 0
+
+loc_fffc3eb3:
+mov di, word [ebx + 0x16]
+inc esi
+add ecx, 0x277
+mov eax, esi
+mov word [ecx - 0x275], di
+mov di, word [ebx + 0x1a]
+mov word [ecx - 0x26f], di
+mov di, word [ebx + 0x12]
+mov word [ecx - 0x26d], di
+mov di, word [ebx + 0x18]
+mov word [ecx - 0x26b], di
+cmp al, 2
+jne loc_fffc3e50 ; jne 0xfffc3e50
+add dword [ebp - 0x10], 0x54a
+dec byte [ebp - 0x11]
+jne loc_fffc3e4b ; jne 0xfffc3e4b
+add esp, 5
+pop ebx
+pop esi
+pop edi
+pop ebp
+
+loc_fffc3f07:
+ret
+
+fcn_fffc3f08: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov ebx, dword [ebp + 8]
+cmp dword [ebx + 0x1887], 0x306d0
+je short loc_fffc3f54 ; je 0xfffc3f54
+
+loc_fffc3f20: ; not directly referenced
+mov ecx, 0x14
+mov edx, 0x5f08
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebx + 0x3756], 2
+jne loc_fffc407f ; jne 0xfffc407f
+mov ecx, 0x3000
+mov edx, 0x48a8
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffc407f ; jmp 0xfffc407f
+
+loc_fffc3f54: ; not directly referenced
+cmp byte [ebx + 0x18ed], 0
+je short loc_fffc3f20 ; je 0xfffc3f20
+mov eax, dword [ebx + 0x36e8]
+sub eax, 2
+cmp eax, 1
+ja short loc_fffc3f20 ; ja 0xfffc3f20
+mov dl, 0x10
+
+loc_fffc3f6d: ; not directly referenced
+mov eax, ebx
+mov dword [ebp - 0x2c], edx
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov edx, dword [ebp - 0x2c]
+dec dl
+jne short loc_fffc3f6d ; jne 0xfffc3f6d
+cmp dword [ebx + 0x36e8], 3
+jne short loc_fffc3f20 ; jne 0xfffc3f20
+mov eax, dword [ebx + 0x2443]
+mov esi, dword [ebx + 0x5edc]
+push edi
+push 0
+push 0x10
+lea edi, [ebp - 0x28]
+push edi
+mov dword [ebp - 0x3c], eax
+call dword [eax + 0x5c] ; ucall
+lea eax, [ebx + 0x3756]
+add esp, 0x10
+mov dword [ebp - 0x30], eax
+lea eax, [esi + 0x70]
+mov dword [ebp - 0x34], eax
+lea eax, [ebx + 0x2490]
+mov dword [ebp - 0x2c], 0
+mov dword [ebp - 0x40], eax
+mov dword [ebp - 0x44], edi
+
+loc_fffc3fc7: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+cmp dword [eax], 2
+je short loc_fffc3feb ; je 0xfffc3feb
+
+loc_fffc3fcf: ; not directly referenced
+inc dword [ebp - 0x2c]
+add dword [ebp - 0x30], 0x13c3
+add dword [ebp - 0x34], 0xcc
+cmp dword [ebp - 0x2c], 2
+jne short loc_fffc3fc7 ; jne 0xfffc3fc7
+jmp near loc_fffc3f20 ; jmp 0xfffc3f20
+
+loc_fffc3feb: ; not directly referenced
+mov cl, byte [ebp - 0x2c]
+xor esi, esi
+xor edx, edx
+mov dword [ebp - 0x38], 1
+shl dword [ebp - 0x38], cl
+
+loc_fffc3ffc: ; not directly referenced
+mov edi, dword [ebp - 0x30]
+mov eax, 1
+mov ecx, esi
+shl eax, cl
+test byte [edi + 0xc4], al
+je short loc_fffc4074 ; je 0xfffc4074
+test edx, edx
+jne short loc_fffc4074 ; jne 0xfffc4074
+mov edx, dword [ebp - 0x2c]
+mov ecx, eax
+mov eax, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+movzx edi, al
+test dword [ebp - 0x38], edi
+je short loc_fffc403f ; je 0xfffc403f
+push ecx
+push 0
+movzx eax, byte [ebx + 0x2488]
+push eax
+mov eax, dword [ebp - 0x3c]
+push dword [ebp - 0x34]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffc403f: ; not directly referenced
+sub esp, 0xc
+mov ecx, 0x11
+push 0
+mov edx, edi
+mov eax, ebx
+call fcn_fffb26ca ; call 0xfffb26ca
+mov ecx, edi
+pop eax
+mov eax, ebx
+pop edx
+mov edx, dword [ebp - 0x40]
+push 0
+push dword [ebp - 0x44]
+push 1
+push 1
+push 2
+push esi
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x20
+mov edx, 1
+
+loc_fffc4074: ; not directly referenced
+inc esi
+cmp esi, 4
+jne short loc_fffc3ffc ; jne 0xfffc3ffc
+jmp near loc_fffc3fcf ; jmp 0xfffc3fcf
+
+loc_fffc407f: ; not directly referenced
+cmp dword [ebx + 0x4b19], 2
+jne short loc_fffc4099 ; jne 0xfffc4099
+mov ecx, 0x3000
+mov edx, 0x48b0
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc4099: ; not directly referenced
+mov eax, ebx
+call fcn_fffae778 ; call 0xfffae778
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc40aa: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x60
+mov edi, dword [ebp + 8]
+mov eax, dword [edi + 0x5edc]
+mov esi, dword [edi + 0x188b]
+mov dword [ebp - 0x44], eax
+mov eax, dword [edi + 0x2443]
+mov ebx, eax
+mov dword [ebp - 0x48], eax
+mov eax, dword [edi + 0x1887]
+mov dword [ebp - 0x4c], eax
+mov eax, dword [edi + 0x1883]
+mov dword [ebp - 0x50], eax
+mov al, byte [edi + 0x248d]
+push 0
+push 0x10
+mov byte [ebp - 0x5b], al
+lea eax, [ebp - 0x28]
+push eax
+mov eax, ebx
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+cmp byte [edi + 0x36c9], 0
+jne short loc_fffc410e ; jne 0xfffc410e
+xor ebx, ebx
+test esi, esi
+je loc_fffc4551 ; je 0xfffc4551
+
+loc_fffc410e: ; not directly referenced
+cmp dword [edi + 0x2480], 3
+mov ecx, 0xa
+sete bl
+jne short loc_fffc4156 ; jne 0xfffc4156
+cmp dword [ebp - 0x50], 3
+sete dl
+cmp dword [ebp - 0x4c], 0x306d0
+sete al
+test dl, al
+jne loc_fffc453a ; jne 0xfffc453a
+cmp dword [ebp - 0x50], 0
+sete dl
+cmp dword [ebp - 0x4c], 0x40670
+sete al
+test dl, al
+jne loc_fffc453a ; jne 0xfffc453a
+mov ecx, 6
+
+loc_fffc4156: ; not directly referenced
+mov dword [ebp - 0x58], 0
+
+loc_fffc415d: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov al, byte [eax + 0x14]
+and eax, 0x7f
+mov dl, al
+or edx, 0xffffff80
+test al, 0x40
+cmovne eax, edx
+cbw
+lea eax, [eax + eax*4]
+add eax, eax
+dec esi
+mov word [ebp - 0x5a], ax
+sete al
+test al, bl
+je loc_fffc428d ; je 0xfffc428d
+mov eax, dword [ebp - 0x44]
+lea ebx, [ebp - 0x34]
+mov dword [ebp - 0x40], 0
+lea esi, [eax + 0x1c]
+
+loc_fffc4197: ; not directly referenced
+cmp byte [esi + 0xb5], 0
+je short loc_fffc41b9 ; je 0xfffc41b9
+
+loc_fffc41a0: ; not directly referenced
+inc dword [ebp - 0x40]
+add esi, 0xcc
+cmp dword [ebp - 0x40], 2
+jne short loc_fffc4197 ; jne 0xfffc4197
+mov ecx, 0xa
+jmp near loc_fffc428d ; jmp 0xfffc428d
+
+loc_fffc41b9: ; not directly referenced
+imul eax, dword [ebp - 0x40], 0x13c3
+mov byte [esi + 0xb5], 0xff
+mov dword [ebp - 0x3c], 0
+mov dword [ebp - 0x60], eax
+
+loc_fffc41d1: ; not directly referenced
+mov cl, byte [ebp - 0x3c]
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp - 0x60]
+test byte [edi + ecx + 0x381a], al
+jne short loc_fffc41f2 ; jne 0xfffc41f2
+
+loc_fffc41e7: ; not directly referenced
+inc dword [ebp - 0x3c]
+cmp dword [ebp - 0x3c], 4
+jne short loc_fffc41d1 ; jne 0xfffc41d1
+jmp short loc_fffc41a0 ; jmp 0xfffc41a0
+
+loc_fffc41f2: ; not directly referenced
+mov ecx, dword [ebp - 0x3c]
+mov edx, dword [ebp - 0x40]
+movzx eax, cl
+lea eax, [esi + eax*4 + 0xb6]
+mov dword [ebp - 0x54], eax
+push eax
+push eax
+mov eax, edi
+push ebx
+push 5
+call fcn_fffa686d ; call 0xfffa686d
+mov ecx, dword [ebp - 0x3c]
+pop eax
+pop edx
+mov edx, dword [ebp - 0x40]
+lea eax, [ebp - 0x30]
+push eax
+mov eax, edi
+push 6
+call fcn_fffa686d ; call 0xfffa686d
+mov edx, dword [ebp - 0x40]
+pop ecx
+pop eax
+mov ecx, dword [ebp - 0x3c]
+lea eax, [ebp - 0x2c]
+push eax
+mov eax, edi
+push 7
+call fcn_fffa686d ; call 0xfffa686d
+add esp, 0x10
+xor eax, eax
+
+loc_fffc4240: ; not directly referenced
+mov dl, byte [eax + ebx]
+mov ecx, dword [ebp - 0x54]
+mov byte [ecx + eax], dl
+mov dl, byte [eax + ebx]
+cmp dl, 1
+je short loc_fffc4258 ; je 0xfffc4258
+cmp dl, 3
+je short loc_fffc426d ; je 0xfffc426d
+jmp short loc_fffc4282 ; jmp 0xfffc4282
+
+loc_fffc4258: ; not directly referenced
+cmp byte [eax + ebp - 0x30], 1
+jne short loc_fffc426d ; jne 0xfffc426d
+cmp byte [ebp + eax - 0x2c], 0
+jne short loc_fffc426d ; jne 0xfffc426d
+mov byte [esi + 0xb5], 1
+
+loc_fffc426d: ; not directly referenced
+cmp byte [eax + ebp - 0x30], 0
+jne short loc_fffc4282 ; jne 0xfffc4282
+cmp byte [ebp + eax - 0x2c], 0
+jne short loc_fffc4282 ; jne 0xfffc4282
+mov byte [esi + 0xb5], 1
+
+loc_fffc4282: ; not directly referenced
+inc eax
+cmp eax, 4
+jne short loc_fffc4240 ; jne 0xfffc4240
+jmp near loc_fffc41e7 ; jmp 0xfffc41e7
+
+loc_fffc428d: ; not directly referenced
+movzx edx, byte [edi + 0x248e]
+sub esp, 0xc
+mov eax, edi
+push 0
+xor ebx, ebx
+call fcn_fffb2759 ; call 0xfffb2759
+mov eax, dword [ebp - 0x44]
+add esp, 0x10
+mov byte [ebp - 0x3c], 0
+lea esi, [eax + 0x70]
+
+loc_fffc42af: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edx, ebx
+movzx ecx, byte [edi + eax + 0x381a]
+mov eax, edi
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x3c], al
+movzx ecx, byte [ebp - 0x3c]
+bt ecx, ebx
+jae short loc_fffc42ed ; jae 0xfffc42ed
+push edx
+push 0
+movzx eax, byte [edi + 0x2488]
+mov dword [ebp - 0x40], ecx
+push eax
+mov eax, dword [ebp - 0x48]
+push esi
+call dword [eax + 0x64] ; ucall
+mov ecx, dword [ebp - 0x40]
+add esp, 0x10
+
+loc_fffc42ed: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne short loc_fffc42af ; jne 0xfffc42af
+push eax
+push eax
+push 0
+lea eax, [ebp - 0x28]
+push eax
+mov eax, edi
+push 0x36
+push 0
+push 0xd
+lea edx, [edi + 0x2490]
+push 0
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x14
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+mov eax, dword [ebp - 0x58]
+add esp, 0x10
+movsx edx, word [ebp - 0x5a]
+xor ecx, ecx
+mov dword [ebp - 0x48], 0x3e8
+mov dword [ebp - 0x54], 0
+add eax, 0x1e
+mov dword [ebp - 0x40], 0x7fffffff
+sub eax, edx
+mov dword [ebp - 0x3c], 0x7fffffff
+
+loc_fffc434c: ; not directly referenced
+imul edx, ecx, 0x13c3
+cmp dword [edi + edx + 0x3756], 2
+jne short loc_fffc43a9 ; jne 0xfffc43a9
+imul edx, ecx, 0x48
+mov esi, dword [ebp - 0x3c]
+mov ebx, dword [edi + edx + 0x3450]
+mov edx, dword [edi + edx + 0x3454]
+cmp esi, ebx
+cmovle ebx, esi
+mov esi, dword [ebp - 0x40]
+mov dword [ebp - 0x3c], ebx
+mov ebx, dword [ebp - 0x44]
+cmp esi, edx
+cmovle edx, esi
+mov esi, dword [ebp - 0x48]
+mov dword [ebp - 0x40], edx
+imul edx, ecx, 0xcc
+cmp byte [ebx + edx + 0xd1], 0
+mov edx, 1
+cmovle edx, dword [ebp - 0x54]
+cmovg esi, eax
+mov dword [ebp - 0x48], esi
+mov dword [ebp - 0x54], edx
+
+loc_fffc43a9: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne short loc_fffc434c ; jne 0xfffc434c
+mov eax, dword [ebp - 0x40]
+sub eax, dword [ebp - 0x3c]
+cdq
+idiv ecx
+cmp dword [ebp - 0x50], 3
+seta dl
+cmp dword [ebp - 0x4c], 0x306d0
+mov dword [ebp - 0x44], eax
+sete al
+test dl, al
+jne short loc_fffc43ea ; jne 0xfffc43ea
+cmp dword [ebp - 0x50], 0
+mov ebx, 1
+setne dl
+cmp dword [ebp - 0x4c], 0x40670
+sete al
+test dl, al
+je short loc_fffc4449 ; je 0xfffc4449
+
+loc_fffc43ea: ; not directly referenced
+cmp dword [edi + 0x2480], 2
+mov ebx, 1
+je short loc_fffc4449 ; je 0xfffc4449
+movsx eax, word [ebp - 0x5a]
+mov ecx, 1
+mov edx, 0xd
+mov esi, eax
+mov dword [ebp - 0x4c], eax
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+mov ecx, dword [ebp - 0x40]
+mov edx, esi
+add ecx, esi
+mov esi, 0
+cmovs ecx, esi
+mov esi, dword [ebp - 0x3c]
+sub esi, edx
+mov edx, esi
+mov esi, 0
+cmovs edx, esi
+cmp ecx, edx
+cmovle edx, ecx
+shr ax, 1
+movzx eax, ax
+cmp edx, eax
+jbe short loc_fffc4449 ; jbe 0xfffc4449
+mov eax, dword [ebp - 0x4c]
+xor bl, bl
+neg eax
+mov dword [ebp - 0x44], eax
+
+loc_fffc4449: ; not directly referenced
+mov eax, dword [ebp - 0x48]
+cmp dword [ebp - 0x44], eax
+mov byte [edi + 0x369f], bl
+setg al
+test byte [ebp - 0x54], al
+je short loc_fffc4469 ; je 0xfffc4469
+mov eax, dword [ebp - 0x48]
+test ebx, ebx
+cmove eax, dword [ebp - 0x44]
+mov dword [ebp - 0x44], eax
+
+loc_fffc4469: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov ecx, 0xa
+push 0
+push 0
+push 0
+cdq
+idiv ecx
+push 0
+push eax
+push 1
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x14
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+mov edx, 0xd
+xor ecx, ecx
+mov dword [ebp - 0x48], eax
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+mov esi, dword [ebp - 0x40]
+add esp, 0x10
+mov ebx, dword [ebp - 0x3c]
+lea edx, [esi + ebx]
+shr ax, 1
+movzx eax, ax
+cmp edx, eax
+jb short loc_fffc44d0 ; jb 0xfffc44d0
+
+loc_fffc44b7: ; not directly referenced
+mov esi, dword [ebp - 0x44]
+lea eax, [edi + 0x3450]
+xor ecx, ecx
+mov ebx, dword [ebp - 0x40]
+mov edx, dword [ebp - 0x3c]
+sub ebx, esi
+add edx, esi
+mov esi, ebx
+jmp short loc_fffc44f4 ; jmp 0xfffc44f4
+
+loc_fffc44d0: ; not directly referenced
+cmp byte [edi + 0x1965], 0
+je short loc_fffc44b7 ; je 0xfffc44b7
+cmp dword [edi + 0x188b], 1
+mov ebx, 0xc
+jne short loc_fffc44b7 ; jne 0xfffc44b7
+jmp short loc_fffc4551 ; jmp 0xfffc4551
+
+loc_fffc44e9: ; not directly referenced
+inc ecx
+add eax, 0x90
+cmp ecx, 4
+je short loc_fffc4507 ; je 0xfffc4507
+
+loc_fffc44f4: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x5b], bl
+je short loc_fffc44e9 ; je 0xfffc44e9
+mov dword [eax], edx
+mov dword [eax + 4], esi
+jmp short loc_fffc44e9 ; jmp 0xfffc44e9
+
+loc_fffc4507: ; not directly referenced
+cmp dword [edi + 0x3756], 2
+jne short loc_fffc451e ; jne 0xfffc451e
+xor cl, cl
+mov edx, 0x4198
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc451e: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+mov ebx, dword [ebp - 0x48]
+jne short loc_fffc4551 ; jne 0xfffc4551
+xor ecx, ecx
+mov edx, 0x4598
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+jmp short loc_fffc4551 ; jmp 0xfffc4551
+
+loc_fffc453a: ; not directly referenced
+mov eax, dword [ebp - 0x44]
+mov ecx, 6
+imul eax, dword [eax + 0x1b4], 0xa
+mov dword [ebp - 0x58], eax
+jmp near loc_fffc415d ; jmp 0xfffc415d
+
+loc_fffc4551: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc455b: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 8
+mov esi, dword [ebp + 8]
+mov ebx, dword [ebp + 0x14]
+mov dword [ebp - 0x10], esi
+mov esi, dword [ebp + 0xc]
+mov edi, ebx
+shr edi, 0x1d
+and edi, 1
+mov dword [ebp - 0x14], esi
+mov esi, dword [ebp + 0x10]
+cmp ax, di
+jne short loc_fffc45f0 ; jne 0xfffc45f0
+test dword [ebp + 0x18], 0x800
+jne short loc_fffc45d4 ; jne 0xfffc45d4
+mov eax, ebx
+shr eax, 0xc
+and eax, 1
+cmp dx, ax
+jne short loc_fffc45f0 ; jne 0xfffc45f0
+mov eax, ebx
+shr eax, 0xb
+and eax, 1
+cmp cx, ax
+jne short loc_fffc45f0 ; jne 0xfffc45f0
+mov edx, ebx
+shr edx, 8
+and edx, 7
+
+loc_fffc45ae: ; not directly referenced
+xor eax, eax
+cmp word [ebp - 0x10], dx
+jne short loc_fffc45f2 ; jne 0xfffc45f2
+mov edx, ebx
+shr edx, 0xd
+cmp word [ebp - 0x14], dx
+jne short loc_fffc45f2 ; jne 0xfffc45f2
+movzx ebx, bl
+and esi, 0xfffffff8
+shl ebx, 3
+xor eax, eax
+cmp si, bx
+sete al
+jmp short loc_fffc45f2 ; jmp 0xfffc45f2
+
+loc_fffc45d4: ; not directly referenced
+test dx, dx
+jne short loc_fffc45f0 ; jne 0xfffc45f0
+mov eax, ebx
+shr eax, 0xc
+and eax, 1
+cmp cx, ax
+jne short loc_fffc45f0 ; jne 0xfffc45f0
+mov edx, ebx
+shr edx, 8
+and edx, 0xf
+jmp short loc_fffc45ae ; jmp 0xfffc45ae
+
+loc_fffc45f0: ; not directly referenced
+xor eax, eax
+
+loc_fffc45f2: ; not directly referenced
+pop edx
+pop ecx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc45f9: ; not directly referenced
+push ebp
+xor eax, eax
+mov ebp, esp
+mov ecx, 8
+push edi
+mov edx, 0xcf8
+push esi
+push ebx
+lea edi, [ebp - 0xe8]
+sub esp, 0x198
+mov ebx, dword [ebp + 8]
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0xf8]
+mov dword [ebp - 0xbc], fcn_fffaafc2 ; mov dword [ebp - 0xbc], 0xfffaafc2
+mov dword [ebp - 0xb0], fcn_fffaafda ; mov dword [ebp - 0xb0], 0xfffaafda
+mov dword [ebp - 0x5c], fcn_fffab0f8 ; mov dword [ebp - 0x5c], 0xfffab0f8
+mov dword [ebp - 0x58], fcn_fffab0ef ; mov dword [ebp - 0x58], 0xfffab0ef
+mov dword [ebp - 0xa4], fcn_fffb3d4e ; mov dword [ebp - 0xa4], 0xfffb3d4e
+mov cl, 4
+rep stosd ; rep stosd dword es:[edi], eax
+mov eax, 0x80000048
+mov dword [ebp - 0xa0], fcn_fffb3dc0 ; mov dword [ebp - 0xa0], 0xfffb3dc0
+mov dword [ebp - 0x7c], fcn_fffc3868 ; mov dword [ebp - 0x7c], 0xfffc3868
+mov dword [ebp - 0x78], fcn_fffc3844 ; mov dword [ebp - 0x78], 0xfffc3844
+out dx, eax
+push 0xcfc
+call fcn_fffaafc2 ; call 0xfffaafc2
+add esp, 0x10
+mov esi, eax
+test al, 1
+jne short loc_fffc468a ; jne 0xfffc468a
+
+loc_fffc4683: ; not directly referenced
+xor eax, eax
+jmp near loc_fffc5449 ; jmp 0xfffc5449
+
+loc_fffc468a: ; not directly referenced
+push 0x60
+mov edi, dword [ebp - 0xb0]
+push 0
+push 0
+push 0
+call dword [ebp - 0x7c] ; ucall
+pop edx
+pop ecx
+push eax
+push 0xcf8
+call edi
+mov dword [esp], 0xcfc
+call dword [ebp - 0xbc] ; ucall
+add esp, 0x10
+test al, 1
+je short loc_fffc4683 ; je 0xfffc4683
+and eax, 0xfffffff8
+mov edi, eax
+call fcn_fffa6801 ; call 0xfffa6801
+mov dword [ebp - 0x12c], 0
+cmp eax, 0x40660
+setne cl
+cmp eax, 0x306c0
+setne dl
+test cl, dl
+je short loc_fffc46f2 ; je 0xfffc46f2
+cmp eax, 0x40650
+setne al
+movzx eax, al
+mov dword [ebp - 0x12c], eax
+
+loc_fffc46f2: ; not directly referenced
+push 0xbc
+and esi, 0xfffffffe
+push 0
+push 0
+push 0
+call dword [ebp - 0x78] ; ucall
+add eax, edi
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+push 0x90
+push 0
+push 0
+push 0
+mov dword [ebp - 0x168], eax
+call dword [ebp - 0x78] ; ucall
+add esp, 0x14
+add eax, edi
+push eax
+call dword [ebp - 0xa0] ; ucall
+push 0x98
+push 0
+push 0
+push 0
+mov dword [ebp - 0x184], edx
+mov dword [ebp - 0x180], eax
+call dword [ebp - 0x78] ; ucall
+add esp, 0x14
+add edi, eax
+push edi
+call dword [ebp - 0xa0] ; ucall
+mov dword [ebp - 0x188], eax
+lea eax, [esi + 0x5024]
+mov dword [ebp - 0x18c], edx
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [ebp - 0x14c], eax
+lea eax, [esi + 0x5014]
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [ebp - 0x150], eax
+lea eax, [esi + 0x5000]
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [ebp - 0x114], eax
+lea eax, [esi + 0x5004]
+add esi, 0x5008
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [esp], esi
+mov edi, eax
+call dword [ebp - 0xa4] ; ucall
+mov cl, byte [ebx + 4]
+add esp, 0x10
+mov dx, word [ebx + 5]
+mov dword [ebp - 0x104], edi
+mov dword [ebp - 0xfc], 0
+mov byte [ebp - 0x110], cl
+mov cl, byte [ebx + 3]
+mov word [ebp - 0x12e], dx
+mov dx, word [ebx + 7]
+mov dword [ebp - 0x100], eax
+mov byte [ebp - 0x134], cl
+mov cl, byte [ebx + 2]
+mov word [ebp - 0x130], dx
+mov dl, byte [ebx + 1]
+mov al, cl
+or eax, edx
+mov byte [ebp - 0x151], cl
+test al, 0xfe
+je short loc_fffc481b ; je 0xfffc481b
+
+loc_fffc4814: ; not directly referenced
+xor eax, eax
+jmp near loc_fffc5449 ; jmp 0xfffc5449
+
+loc_fffc481b: ; not directly referenced
+movzx eax, dl
+movzx edx, byte [ebp - 0x151]
+mov esi, dword [ebp + eax*4 - 0x104]
+mov dword [ebp - 0x140], eax
+mov dword [ebp - 0x16c], 0
+mov eax, esi
+shr eax, 0x10
+and eax, 1
+xor eax, edx
+mov edx, esi
+movzx eax, ax
+test eax, eax
+mov dword [ebp - 0x148], eax
+mov dword [ebp - 0x170], eax
+lea eax, [ebp - 0xc4]
+je short loc_fffc4868 ; je 0xfffc4868
+call fcn_fffc3bda ; call 0xfffc3bda
+jmp short loc_fffc486d ; jmp 0xfffc486d
+
+loc_fffc4868: ; not directly referenced
+call fcn_fffc3bf5 ; call 0xfffc3bf5
+
+loc_fffc486d: ; not directly referenced
+mov dword [ebp - 0x124], edx
+mov edx, dword [ebp - 0x124]
+mov dword [ebp - 0x128], eax
+mov eax, dword [ebp - 0x128]
+mov edi, edx
+or edi, eax
+je short loc_fffc4814 ; je 0xfffc4814
+movzx eax, byte [ebp - 0x134]
+mov dword [ebp - 0x144], eax
+test al, 0xfe
+jne loc_fffc4814 ; jne 0xfffc4814
+cmp dword [ebp - 0x148], 0
+mov ebx, esi
+je short loc_fffc48b0 ; je 0xfffc48b0
+shr ebx, 0x12
+jmp short loc_fffc48b3 ; jmp 0xfffc48b3
+
+loc_fffc48b0: ; not directly referenced
+shr ebx, 0x11
+
+loc_fffc48b3: ; not directly referenced
+and ebx, 1
+cmp byte [ebp - 0x134], 0
+mov eax, ebx
+setne cl
+xor eax, 1
+mov byte [ebp - 0x152], cl
+test cl, al
+jne loc_fffc4814 ; jne 0xfffc4814
+cmp dword [ebp - 0x148], 0
+mov ecx, esi
+mov edx, dword [ebp - 0x114]
+lea eax, [ebp - 0xc4]
+je short loc_fffc48fe ; je 0xfffc48fe
+call fcn_fffb8408 ; call 0xfffb8408
+test esi, 0x100000
+mov word [ebp - 0x118], ax
+jmp short loc_fffc4910 ; jmp 0xfffc4910
+
+loc_fffc48fe: ; not directly referenced
+call fcn_fffb8396 ; call 0xfffb8396
+test esi, 0x80000
+mov word [ebp - 0x118], ax
+
+loc_fffc4910: ; not directly referenced
+je short loc_fffc4919 ; je 0xfffc4919
+mov eax, 0x10
+jmp short loc_fffc4930 ; jmp 0xfffc4930
+
+loc_fffc4919: ; not directly referenced
+mov eax, dword [ebp - 0x114]
+shr eax, 0xa
+and eax, 1
+cmp eax, 1
+sbb eax, eax
+and eax, 0xffffffe8
+add eax, 0x20
+
+loc_fffc4930: ; not directly referenced
+mov edi, dword [ebp - 0x114]
+shr edi, 0xb
+mov dword [ebp - 0x13c], edi
+movzx edi, byte [ebp - 0x110]
+and dword [ebp - 0x13c], 1
+cmp ax, 8
+sete dl
+mov byte [ebp - 0x120], dl
+and edx, dword [ebp - 0x13c]
+mov dword [ebp - 0x138], edi
+movzx eax, dl
+shl eax, 3
+or eax, 7
+not eax
+test edi, eax
+jne loc_fffc4814 ; jne 0xfffc4814
+push eax
+mov al, byte [ebp - 0x118]
+add eax, ebx
+add edx, eax
+movzx edx, dl
+push edx
+push dword [ebp - 0x124]
+push dword [ebp - 0x128]
+call dword [ebp - 0x58] ; ucall
+movzx edi, word [ebp - 0x130]
+add esp, 0x10
+mov dword [ebp - 0x160], eax
+neg eax
+mov dword [ebp - 0x15c], edx
+test eax, edi
+jne loc_fffc4814 ; jne 0xfffc4814
+movzx eax, word [ebp - 0x12e]
+mov cl, byte [ebp - 0x118]
+mov edx, eax
+mov dword [ebp - 0x174], eax
+mov eax, 1
+shl eax, cl
+dec eax
+movzx eax, ax
+not eax
+test edx, eax
+jne loc_fffc4814 ; jne 0xfffc4814
+mov eax, esi
+shr eax, 0x15
+mov dword [ebp - 0x178], eax
+and eax, 1
+mov dword [ebp - 0x158], eax
+mov eax, esi
+shr eax, 0x1a
+mov dword [ebp - 0x17c], eax
+and eax, 1
+mov dword [ebp - 0x164], eax
+mov eax, esi
+shr eax, 0x16
+mov dword [ebp - 0x128], eax
+and dword [ebp - 0x128], 1
+cmp dword [ebp - 0x13c], 0
+je loc_fffc4d7f ; je 0xfffc4d7f
+push eax
+mov eax, dword [ebp - 0x110]
+xor edx, edx
+push 8
+push edx
+and eax, 3
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 2
+mov dword [ebp - 0x190], eax
+mov al, byte [ebp - 0x110]
+mov dword [ebp - 0x194], edx
+xor edx, edx
+push edx
+and eax, 4
+movzx eax, al
+push eax
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x118], eax
+mov eax, dword [ebp - 0x190]
+or dword [ebp - 0x118], eax
+mov eax, dword [ebp - 0x194]
+mov dword [ebp - 0x13c], edx
+mov edx, dword [ebp - 0x5c]
+or dword [ebp - 0x13c], eax
+test byte [ebp - 0x164], bl
+je loc_fffc4b64 ; je 0xfffc4b64
+mov ecx, esi
+mov ebx, 1
+shr ecx, 0x1b
+and ecx, 7
+add ecx, 4
+shl ebx, cl
+dec ebx
+cmp byte [ebp - 0x120], 1
+push esi
+mov esi, dword [ebp - 0x144]
+sbb eax, eax
+add eax, 0xb
+push eax
+mov eax, dword [ebp - 0x130]
+shl esi, cl
+and eax, ebx
+movzx ebx, bx
+not ebx
+movzx eax, ax
+and ebx, edi
+or eax, esi
+add ebx, ebx
+or eax, ebx
+mov ebx, eax
+sar ebx, 0x1f
+push ebx
+push eax
+call edx
+add esp, 0xc
+push 7
+mov esi, eax
+mov al, byte [ebp - 0x110]
+mov ebx, edx
+xor edx, edx
+push edx
+and eax, 8
+movzx eax, al
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+or eax, esi
+or edx, ebx
+or eax, dword [ebp - 0x118]
+or edx, dword [ebp - 0x13c]
+cmp dword [ebp - 0x128], 0
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+je loc_fffc4d3e ; je 0xfffc4d3e
+cmp byte [ebp - 0x120], 0
+mov eax, dword [ebp - 0x58]
+jne loc_fffc4cc9 ; jne 0xfffc4cc9
+push ebx
+push 3
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+mov ecx, dword [ebp - 0x110]
+mov ebx, dword [ebp - 0x10c]
+mov edi, ebx
+and eax, 0x300
+xor eax, ecx
+mov esi, eax
+jmp near loc_fffc4d20 ; jmp 0xfffc4d20
+
+loc_fffc4b64: ; not directly referenced
+cmp byte [ebp - 0x120], 1
+sbb eax, eax
+test byte [ebp - 0x158], bl
+je loc_fffc4c25 ; je 0xfffc4c25
+add eax, 0xc
+xor ebx, ebx
+push ecx
+push eax
+push ebx
+push edi
+call edx
+add esp, 0xc
+push 0xa
+mov esi, eax
+movzx eax, byte [ebp - 0x134]
+mov ebx, edx
+xor edx, edx
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 8
+or esi, eax
+mov al, byte [ebp - 0x110]
+or ebx, edx
+xor edx, edx
+push edx
+or esi, dword [ebp - 0x118]
+and eax, 8
+movzx eax, al
+or ebx, dword [ebp - 0x13c]
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+or esi, eax
+or ebx, edx
+cmp dword [ebp - 0x128], 0
+mov dword [ebp - 0x110], esi
+mov dword [ebp - 0x10c], ebx
+je loc_fffc4d3e ; je 0xfffc4d3e
+cmp byte [ebp - 0x120], 0
+mov eax, dword [ebp - 0x58]
+je loc_fffc4cc9 ; je 0xfffc4cc9
+push esi
+push 5
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+mov ecx, dword [ebp - 0x110]
+mov ebx, dword [ebp - 0x10c]
+add esp, 0xc
+push 0xc
+mov edi, ebx
+and eax, 0xf00
+xor eax, ecx
+mov esi, eax
+jmp near loc_fffc4d25 ; jmp 0xfffc4d25
+
+loc_fffc4c25: ; not directly referenced
+add eax, 0xb
+push ebx
+xor ebx, ebx
+push eax
+push ebx
+push edi
+call edx
+add esp, 0xc
+push 7
+mov esi, eax
+mov al, byte [ebp - 0x110]
+mov ebx, edx
+xor edx, edx
+push edx
+and eax, 8
+movzx eax, al
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+or eax, esi
+or edx, ebx
+or eax, dword [ebp - 0x118]
+or edx, dword [ebp - 0x13c]
+cmp byte [ebp - 0x152], 0
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+je short loc_fffc4cb0 ; je 0xfffc4cb0
+cmp byte [ebp - 0x120], 1
+push ecx
+sbb eax, eax
+add eax, 0xb
+push eax
+push dword [ebp - 0x15c]
+push dword [ebp - 0x160]
+call dword [ebp - 0x5c] ; ucall
+mov ecx, dword [ebp - 0x110]
+mov ebx, dword [ebp - 0x10c]
+add esp, 0x10
+or eax, ecx
+or edx, ebx
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+
+loc_fffc4cb0: ; not directly referenced
+cmp dword [ebp - 0x128], 0
+je loc_fffc4d3e ; je 0xfffc4d3e
+cmp byte [ebp - 0x120], 0
+mov eax, dword [ebp - 0x58]
+je short loc_fffc4cf8 ; je 0xfffc4cf8
+
+loc_fffc4cc9: ; not directly referenced
+push edx
+push 4
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+mov ecx, dword [ebp - 0x110]
+mov ebx, dword [ebp - 0x10c]
+add esp, 0xc
+push 0xb
+mov edi, ebx
+and eax, 0x700
+xor eax, ecx
+mov esi, eax
+jmp short loc_fffc4d25 ; jmp 0xfffc4d25
+
+loc_fffc4cf8: ; not directly referenced
+push edi
+push 3
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+mov edx, dword [ebp - 0x110]
+mov ecx, dword [ebp - 0x10c]
+mov edi, ecx
+and eax, 0x300
+xor eax, edx
+mov esi, eax
+
+loc_fffc4d20: ; not directly referenced
+add esp, 0xc
+push 0xa
+
+loc_fffc4d25: ; not directly referenced
+push edi
+push esi
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x10c], edi
+and eax, 1
+xor eax, esi
+mov dword [ebp - 0x110], eax
+
+loc_fffc4d3e: ; not directly referenced
+mov cx, word [ebp - 0x12e]
+mov ebx, dword [ebp - 0x10c]
+shr cx, 2
+and ecx, 0x3ffe
+mov eax, ecx
+cdq
+mov eax, ecx
+mov dword [ebp - 0x120], ecx
+mov ecx, dword [ebp - 0x110]
+mov dword [ebp - 0x11c], edx
+or eax, ecx
+mov esi, eax
+mov eax, dword [ebp - 0x11c]
+or eax, ebx
+mov edi, eax
+jmp near loc_fffc4f98 ; jmp 0xfffc4f98
+
+loc_fffc4d7f: ; not directly referenced
+test byte [ebp - 0x164], bl
+je short loc_fffc4de3 ; je 0xfffc4de3
+mov ebx, esi
+mov eax, 1
+shr ebx, 0x1b
+and ebx, 7
+lea ecx, [ebx + 4]
+shl eax, cl
+mov ecx, eax
+dec ecx
+movzx eax, cx
+and ecx, dword [ebp - 0x130]
+not eax
+and eax, edi
+add eax, eax
+movzx ecx, cx
+push esi
+or eax, ecx
+push 0xa
+cdq
+push edx
+push eax
+call dword [ebp - 0x58] ; ucall
+lea ecx, [ebx + 0xe]
+mov ebx, dword [ebp - 0x144]
+shl ebx, cl
+mov ecx, dword [ebp - 0x138]
+shl ecx, 7
+or ebx, ecx
+mov edi, ebx
+or eax, ebx
+sar edi, 0x1f
+mov dword [ebp - 0x110], eax
+or edx, edi
+jmp near loc_fffc4eec ; jmp 0xfffc4eec
+
+loc_fffc4de3: ; not directly referenced
+test byte [ebp - 0x158], bl
+je loc_fffc4ea2 ; je 0xfffc4ea2
+push ebx
+xor edx, edx
+push 0xb
+push edx
+push edi
+xor edi, edi
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 9
+mov dword [ebp - 0x110], eax
+movzx eax, byte [ebp - 0x134]
+mov dword [ebp - 0x120], edx
+xor edx, edx
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+mov esi, dword [ebp - 0x138]
+add esp, 0xc
+push 8
+push edi
+push esi
+mov dword [ebp - 0x134], eax
+mov dword [ebp - 0x13c], edx
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 7
+push edi
+push esi
+mov ebx, eax
+call dword [ebp - 0x5c] ; ucall
+mov edi, dword [ebp - 0x134]
+and ebx, 0x400
+or edi, dword [ebp - 0x110]
+add esp, 0x10
+mov edx, edi
+or edx, ebx
+and eax, 0x180
+mov edi, edx
+or edi, eax
+mov eax, dword [ebp - 0x13c]
+or eax, dword [ebp - 0x120]
+cmp dword [ebp - 0x128], 0
+mov dword [ebp - 0x110], edi
+mov dword [ebp - 0x10c], eax
+je loc_fffc4f2f ; je 0xfffc4f2f
+mov ebx, dword [ebp - 0x110]
+push ecx
+mov esi, dword [ebp - 0x10c]
+push 4
+mov edi, ebx
+and edi, 0x7800
+jmp short loc_fffc4f15 ; jmp 0xfffc4f15
+
+loc_fffc4ea2: ; not directly referenced
+mov ebx, dword [ebp - 0x138]
+mov eax, edi
+shl eax, 0xa
+shl ebx, 7
+or ebx, eax
+mov eax, ebx
+sar eax, 0x1f
+cmp byte [ebp - 0x152], 0
+mov dword [ebp - 0x110], ebx
+mov dword [ebp - 0x10c], eax
+je short loc_fffc4ef5 ; je 0xfffc4ef5
+push edx
+push 0xa
+push dword [ebp - 0x15c]
+push dword [ebp - 0x160]
+call dword [ebp - 0x5c] ; ucall
+or edx, dword [ebp - 0x10c]
+or ebx, eax
+mov dword [ebp - 0x110], ebx
+
+loc_fffc4eec: ; not directly referenced
+mov dword [ebp - 0x10c], edx
+add esp, 0x10
+
+loc_fffc4ef5: ; not directly referenced
+cmp dword [ebp - 0x128], 0
+je short loc_fffc4f2f ; je 0xfffc4f2f
+mov ebx, dword [ebp - 0x110]
+mov esi, dword [ebp - 0x10c]
+push eax
+push 3
+mov edi, ebx
+and edi, 0x1c00
+
+loc_fffc4f15: ; not directly referenced
+xor edx, edx
+push edx
+push edi
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+xor eax, ebx
+xor edx, esi
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+
+loc_fffc4f2f: ; not directly referenced
+cmp word [ebp - 0x118], 9
+jne short loc_fffc4f4d ; jne 0xfffc4f4d
+push eax
+push 1
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+jmp short loc_fffc4f69 ; jmp 0xfffc4f69
+
+loc_fffc4f4d: ; not directly referenced
+cmp word [ebp - 0x118], 0xb
+jne short loc_fffc4f78 ; jne 0xfffc4f78
+push eax
+push 1
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x5c] ; ucall
+
+loc_fffc4f69: ; not directly referenced
+mov dword [ebp - 0x110], eax
+add esp, 0x10
+mov dword [ebp - 0x10c], edx
+
+loc_fffc4f78: ; not directly referenced
+mov ax, word [ebp - 0x12e]
+mov edx, dword [ebp - 0x110]
+mov ecx, dword [ebp - 0x10c]
+shr ax, 3
+movzx eax, ax
+or eax, edx
+mov edi, ecx
+mov esi, eax
+
+loc_fffc4f98: ; not directly referenced
+mov eax, dword [ebp - 0x140]
+mov ebx, dword [ebp + eax*4 - 0x104]
+lea eax, [ebp - 0xc4]
+mov edx, ebx
+call fcn_fffc3bf5 ; call 0xfffc3bf5
+mov dword [ebp - 0x110], eax
+lea eax, [ebp - 0xc4]
+mov dword [ebp - 0x10c], edx
+mov edx, ebx
+call fcn_fffc3bda ; call 0xfffc3bda
+mov ecx, dword [ebp - 0x17c]
+or ecx, dword [ebp - 0x178]
+and cl, 1
+je short loc_fffc5033 ; je 0xfffc5033
+cmp edi, edx
+ja short loc_fffc502d ; ja 0xfffc502d
+jb short loc_fffc4fe6 ; jb 0xfffc4fe6
+cmp esi, eax
+jae short loc_fffc502d ; jae 0xfffc502d
+
+loc_fffc4fe6: ; not directly referenced
+push eax
+push 1
+push edi
+push esi
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 9
+push dword [ebp - 0x16c]
+push dword [ebp - 0x170]
+mov ebx, edx
+mov dword [ebp - 0x110], eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+mov ecx, eax
+mov eax, esi
+and eax, 0x1ff
+or edx, ebx
+or ecx, eax
+mov eax, dword [ebp - 0x110]
+mov edi, edx
+and eax, 0xfffffc00
+or ecx, eax
+mov esi, ecx
+jmp short loc_fffc5048 ; jmp 0xfffc5048
+
+loc_fffc502d: ; not directly referenced
+add esi, eax
+adc edi, edx
+jmp short loc_fffc5048 ; jmp 0xfffc5048
+
+loc_fffc5033: ; not directly referenced
+cmp dword [ebp - 0x148], 0
+je short loc_fffc5048 ; je 0xfffc5048
+add esi, dword [ebp - 0x110]
+adc edi, dword [ebp - 0x10c]
+
+loc_fffc5048: ; not directly referenced
+mov ebx, dword [ebp - 0x114]
+mov eax, ebx
+and eax, 3
+cmp eax, dword [ebp - 0x140]
+push eax
+movzx eax, byte [ebp - 0x150]
+push 0x16
+setne byte [ebp - 0x110]
+xor edx, edx
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 2
+mov dword [ebp - 0x128], eax
+mov eax, dword [ebp - 0x150]
+mov dword [ebp - 0x118], edx
+xor edx, edx
+push edx
+and eax, 0xff000000
+push eax
+call dword [ebp - 0x5c] ; ucall
+mov ecx, ebx
+add esp, 0x10
+shr ecx, 6
+mov dword [ebp - 0x120], ecx
+and dword [ebp - 0x120], 1
+cmp dword [ebp - 0x12c], 1
+jne short loc_fffc50c0 ; jne 0xfffc50c0
+mov ebx, dword [ebp - 0x128]
+mov ecx, dword [ebp - 0x118]
+jmp short loc_fffc50c4 ; jmp 0xfffc50c4
+
+loc_fffc50c0: ; not directly referenced
+mov ebx, eax
+mov ecx, edx
+
+loc_fffc50c4: ; not directly referenced
+cmp dword [ebp - 0x120], 0
+je short loc_fffc510b ; je 0xfffc510b
+mov ebx, dword [ebp - 0x114]
+push eax
+shr ebx, 7
+and ebx, 7
+push ebx
+add ebx, 0x16
+push 0
+push 0x400000
+call dword [ebp - 0x5c] ; ucall
+movzx eax, byte [ebp - 0x110]
+add esp, 0xc
+push ebx
+xor edx, edx
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+mov ecx, eax
+mov ebx, edx
+or ecx, esi
+or ebx, edi
+mov eax, ecx
+mov edx, ebx
+jmp near loc_fffc51ca ; jmp 0xfffc51ca
+
+loc_fffc510b: ; not directly referenced
+cmp edi, ecx
+ja loc_fffc51ea ; ja 0xfffc51ea
+jb short loc_fffc511d ; jb 0xfffc511d
+cmp esi, ebx
+jae loc_fffc51ea ; jae 0xfffc51ea
+
+loc_fffc511d: ; not directly referenced
+push ebx
+push 1
+push edi
+push esi
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x120], eax
+mov dword [ebp - 0x11c], edx
+test dword [ebp - 0x14c], 0x800000
+je loc_fffc51cf ; je 0xfffc51cf
+mov edi, dword [ebp - 0x14c]
+push ecx
+mov esi, edi
+shr esi, 0x15
+and esi, 3
+push esi
+push edx
+push eax
+call dword [ebp - 0x58] ; ucall
+mov edx, dword [ebp - 0x11c]
+add esp, 0xc
+push esi
+push 0
+push 1
+mov ebx, eax
+mov eax, dword [ebp - 0x120]
+and ebx, 1
+mov dword [ebp - 0x120], edx
+or ebx, eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+xor ecx, ecx
+not eax
+not edx
+and dword [ebp - 0x120], edx
+mov edx, edi
+and ebx, eax
+and dx, 0x3fff
+and edx, ebx
+xor eax, eax
+movzx edx, dx
+
+loc_fffc519c: ; not directly referenced
+mov edi, edx
+sar edi, cl
+inc ecx
+xor eax, edi
+cmp ecx, 0xe
+jne short loc_fffc519c ; jne 0xfffc519c
+xor eax, dword [ebp - 0x110]
+xor edx, edx
+push edi
+push esi
+and eax, 1
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+mov esi, edx
+mov ecx, eax
+or esi, dword [ebp - 0x120]
+or ecx, ebx
+mov eax, ecx
+mov edx, esi
+
+loc_fffc51ca: ; not directly referenced
+add esp, 0x10
+jmp short loc_fffc5203 ; jmp 0xfffc5203
+
+loc_fffc51cf: ; not directly referenced
+movzx ecx, byte [ebp - 0x110]
+mov ebx, dword [ebp - 0x120]
+mov esi, dword [ebp - 0x11c]
+or ecx, ebx
+mov eax, ecx
+mov edx, esi
+jmp short loc_fffc5203 ; jmp 0xfffc5203
+
+loc_fffc51ea: ; not directly referenced
+cmp dword [ebp - 0x12c], 1
+jne short loc_fffc51ff ; jne 0xfffc51ff
+mov eax, dword [ebp - 0x128]
+mov edx, dword [ebp - 0x118]
+
+loc_fffc51ff: ; not directly referenced
+add eax, esi
+adc edx, edi
+
+loc_fffc5203: ; not directly referenced
+mov edi, dword [ebp - 0x180]
+push ecx
+push 6
+push edx
+and edi, 0xfff00000
+mov dword [ebp - 0x110], edi
+mov edi, dword [ebp - 0x184]
+push eax
+and edi, 0x7f
+mov dword [ebp - 0x10c], edi
+mov edi, dword [ebp - 0x188]
+or edi, 0xfffff
+mov dword [ebp - 0x120], edi
+mov edi, dword [ebp - 0x18c]
+and edi, 0x7f
+mov dword [ebp - 0x11c], edi
+mov edi, 1
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+cmp edx, dword [ebp - 0x10c]
+ja short loc_fffc5269 ; ja 0xfffc5269
+jb short loc_fffc5267 ; jb 0xfffc5267
+cmp eax, dword [ebp - 0x110]
+jae short loc_fffc5269 ; jae 0xfffc5269
+
+loc_fffc5267: ; not directly referenced
+xor edi, edi
+
+loc_fffc5269: ; not directly referenced
+mov esi, 1
+cmp edx, dword [ebp - 0x11c]
+jb short loc_fffc5282 ; jb 0xfffc5282
+ja short loc_fffc5280 ; ja 0xfffc5280
+cmp eax, dword [ebp - 0x120]
+jbe short loc_fffc5282 ; jbe 0xfffc5282
+
+loc_fffc5280: ; not directly referenced
+xor esi, esi
+
+loc_fffc5282: ; not directly referenced
+mov ecx, dword [ebp + 0xc]
+and edi, esi
+mov ebx, edi
+movzx edi, bl
+mov dword [ecx], eax
+mov dword [ecx + 4], edx
+test edi, edi
+jne loc_fffc5322 ; jne 0xfffc5322
+mov esi, dword [ebp - 0x10c]
+cmp dword [ebp - 0x11c], esi
+jb short loc_fffc5322 ; jb 0xfffc5322
+ja short loc_fffc52b7 ; ja 0xfffc52b7
+mov esi, dword [ebp - 0x110]
+cmp dword [ebp - 0x120], esi
+jbe short loc_fffc5322 ; jbe 0xfffc5322
+
+loc_fffc52b7: ; not directly referenced
+mov esi, dword [ebp - 0x168]
+xor ebx, ebx
+mov dword [ebp - 0x124], ebx
+and esi, 0xfff00000
+mov ecx, esi
+add ecx, dword [ebp - 0x120]
+adc ebx, dword [ebp - 0x11c]
+sub ecx, dword [ebp - 0x110]
+sbb ebx, dword [ebp - 0x10c]
+mov dword [ebp - 0x128], esi
+cmp edx, ebx
+ja short loc_fffc5322 ; ja 0xfffc5322
+jb short loc_fffc52f5 ; jb 0xfffc52f5
+cmp eax, ecx
+ja short loc_fffc5322 ; ja 0xfffc5322
+
+loc_fffc52f5: ; not directly referenced
+cmp edx, 0
+ja short loc_fffc52fe ; ja 0xfffc52fe
+cmp eax, esi
+jb short loc_fffc5322 ; jb 0xfffc5322
+
+loc_fffc52fe: ; not directly referenced
+mov ecx, dword [ebp - 0x110]
+sub ecx, dword [ebp - 0x128]
+mov ebx, dword [ebp - 0x10c]
+sbb ebx, dword [ebp - 0x124]
+add ecx, eax
+mov eax, dword [ebp + 0xc]
+adc ebx, edx
+mov dword [eax], ecx
+mov dword [eax + 4], ebx
+
+loc_fffc5322: ; not directly referenced
+cmp dword [ebp - 0x12c], 1
+jne loc_fffc541b ; jne 0xfffc541b
+lea ebx, [ebp - 0xe8]
+lea esi, [ebp - 0xc8]
+
+loc_fffc533b: ; not directly referenced
+push eax
+mov eax, dword [ebp + 0xc]
+mov edx, dword [eax + 4]
+mov eax, dword [eax]
+push dword [ebx + 4]
+push dword [ebx]
+mov ecx, edx
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+mov edx, eax
+push edi
+lea eax, [ebp - 0xc4]
+call fcn_fffb726f ; call 0xfffb726f
+add esp, 0x10
+test eax, eax
+jne loc_fffc4814 ; jne 0xfffc4814
+add ebx, 8
+cmp ebx, esi
+jne short loc_fffc533b ; jne 0xfffc533b
+movzx eax, byte [ebp - 0x151]
+xor ebx, ebx
+mov dword [ebp - 0x110], eax
+movzx eax, word [ebp - 0x130]
+mov dword [ebp - 0x120], eax
+
+loc_fffc5393: ; not directly referenced
+mov edi, dword [ebp + ebx*2 - 0xe4]
+mov esi, dword [ebp + ebx*2 - 0xe8]
+push ecx
+push 0x3f
+push edi
+push esi
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+test al, 1
+je short loc_fffc540f ; je 0xfffc540f
+sub esp, 0xc
+mov ecx, dword [ebp - 0x144]
+push dword [ebp - 0x114]
+push dword [ebp + ebx - 0xf8]
+push dword [ebp - 0x174]
+push dword [ebp - 0x120]
+push dword [ebp - 0x138]
+mov edx, dword [ebp - 0x110]
+mov eax, dword [ebp - 0x140]
+call fcn_fffc455b ; call 0xfffc455b
+add esp, 0x20
+test eax, eax
+je short loc_fffc540f ; je 0xfffc540f
+mov edx, dword [ebp + 0xc]
+mov eax, esi
+and eax, 0xffffffc0
+mov dword [edx], eax
+mov eax, edi
+and eax, 0x7f
+mov dword [edx + 4], eax
+push edx
+push 0x3e
+push edi
+push esi
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+jmp short loc_fffc541b ; jmp 0xfffc541b
+
+loc_fffc540f: ; not directly referenced
+add ebx, 4
+cmp ebx, 0x10
+jne loc_fffc5393 ; jne 0xfffc5393
+
+loc_fffc541b: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+xor edx, edx
+mov ebx, dword [eax]
+mov esi, dword [eax + 4]
+push eax
+movzx eax, word [ebp - 0x12e]
+push 3
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+mov edi, dword [ebp + 0xc]
+add esp, 0x10
+mov dword [edi + 4], esi
+and eax, 0x3f
+or eax, ebx
+mov dword [edi], eax
+mov eax, 1
+
+loc_fffc5449: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc5451: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0xc]
+
+loc_fffc545d: ; not directly referenced
+mov eax, dword [0xff7d0178]
+mov esi, 0xff7d0004
+xor edi, edi
+mov dword [ebp - 0x1c], eax
+
+loc_fffc546c: ; not directly referenced
+cmp edi, dword [ebp - 0x1c]
+je short loc_fffc548b ; je 0xfffc548b
+push ecx
+add esi, 0xc
+push ecx
+push dword [ebx + 4]
+push dword [esi + 0x7c]
+call fcn_fffb884e ; call 0xfffb884e
+add esp, 0x10
+test al, al
+jne short loc_fffc5498 ; jne 0xfffc5498
+inc edi
+jmp short loc_fffc546c ; jmp 0xfffc546c
+
+loc_fffc548b: ; not directly referenced
+cmp edi, 0x13
+ja short loc_fffc54f2 ; ja 0xfffc54f2
+lea eax, [edi + 1]
+mov dword [0xff7d0178], eax
+
+loc_fffc5498: ; not directly referenced
+imul edi, edi, 0xc
+mov ecx, 3
+mov esi, ebx
+add edi, 0xff7d0088
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov edi, 0xff7d017c
+xor esi, esi
+
+loc_fffc54b1: ; not directly referenced
+cmp esi, dword [0xff7d026c]
+jae short loc_fffc54e1 ; jae 0xfffc54e1
+push edx
+push edx
+push dword [ebx + 4]
+push dword [edi + 4]
+call fcn_fffb884e ; call 0xfffb884e
+add esp, 0x10
+test al, al
+je short loc_fffc54db ; je 0xfffc54db
+push eax
+push dword [ebx + 8]
+push edi
+push dword [ebp + 8]
+call dword [edi + 8] ; ucall
+add esp, 0x10
+
+loc_fffc54db: ; not directly referenced
+inc esi
+add edi, 0xc
+jmp short loc_fffc54b1 ; jmp 0xfffc54b1
+
+loc_fffc54e1: ; not directly referenced
+mov eax, dword [ebx]
+add ebx, 0xc
+test eax, eax
+jns loc_fffc545d ; jns 0xfffc545d
+xor eax, eax
+jmp short loc_fffc54f7 ; jmp 0xfffc54f7
+
+loc_fffc54f2: ; not directly referenced
+mov eax, 0x80000009
+
+loc_fffc54f7: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc54ff: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+xor edi, edi
+push esi
+push ebx
+mov ebx, 0xff7d0088
+sub esp, 0x1c
+mov eax, dword [0xff7d0178]
+mov dword [ebp - 0x1c], eax
+
+loc_fffc5517: ; not directly referenced
+cmp edi, dword [ebp - 0x1c]
+je short loc_fffc5544 ; je 0xfffc5544
+push eax
+mov esi, ebx
+push eax
+add ebx, 0xc
+push dword [ebx - 8]
+push dword [ebp + 0xc]
+call fcn_fffb884e ; call 0xfffb884e
+add esp, 0x10
+test al, al
+je short loc_fffc5541 ; je 0xfffc5541
+mov eax, dword [ebp + 0x18]
+mov edx, dword [esi + 8]
+mov dword [eax], edx
+xor eax, eax
+jmp short loc_fffc5549 ; jmp 0xfffc5549
+
+loc_fffc5541: ; not directly referenced
+inc edi
+jmp short loc_fffc5517 ; jmp 0xfffc5517
+
+loc_fffc5544: ; not directly referenced
+mov eax, 0x8000000e
+
+loc_fffc5549: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc5551:
+push ebp
+mov ebp, esp
+push ebx
+push edx
+mov ebx, dword [ebp + 0xc]
+
+loc_fffc5559:
+mov ax, word [ebx]
+cmp ax, 0xffff
+je short loc_fffc5570 ; je 0xfffc5570
+cmp ax, 4
+je short loc_fffc5574 ; je 0xfffc5574
+
+loc_fffc5568:
+movzx eax, word [ebx + 2]
+add ebx, eax
+jmp short loc_fffc5559 ; jmp 0xfffc5559
+
+loc_fffc5570:
+xor eax, eax
+jmp short loc_fffc558b ; jmp 0xfffc558b
+
+loc_fffc5574:
+push eax
+push eax
+lea eax, [ebx + 8]
+push eax
+push dword [ebp + 8]
+call fcn_fffb884e ; call 0xfffb884e
+add esp, 0x10
+test al, al
+je short loc_fffc5568 ; je 0xfffc5568
+mov eax, ebx
+
+loc_fffc558b:
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffc5590: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2c
+mov eax, dword [ebp + 0x10]
+mov dword [ebp - 0x2c], eax
+lea eax, [ebp - 0x20]
+push eax
+push 0
+push 0
+push ref_fffd60dc ; push 0xfffd60dc
+call fcn_fffab40f ; call 0xfffab40f
+lea eax, [ebp - 0x24]
+push eax
+push 0
+push 0
+push ref_fffd604c ; push 0xfffd604c
+call fcn_fffab40f ; call 0xfffab40f
+mov eax, dword [0xff7d0084]
+add esp, 0x14
+mov eax, dword [eax + 0x14]
+lea ebx, [eax + 0xb0040]
+push ebx
+mov dword [ebp - 0x30], eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+mov edx, eax
+shr edx, 0x10
+and edx, 0xf
+cmp dl, 2
+je loc_fffc57da ; je 0xfffc57da
+movzx edx, ah
+xor eax, eax
+and dl, 0xf0
+jne loc_fffc57dc ; jne 0xfffc57dc
+call fcn_fffb481e ; call 0xfffb481e
+cmp eax, 2
+je loc_fffc5699 ; je 0xfffc5699
+
+loc_fffc560d: ; not directly referenced
+mov eax, dword [0xff7d0084]
+sub esp, 0xc
+mov edi, dword [eax + 0x14]
+lea eax, [edi + 0x70]
+add edi, 0x74
+push eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+mov dword [esp], edi
+mov esi, eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+shr esi, 4
+mov ecx, dword [ebp - 0x2c]
+mov edi, dword [ebp - 0x30]
+shl eax, 0x1c
+add eax, esi
+shr eax, 0x10
+mov esi, eax
+or eax, 0x10800000
+or esi, 0x10000000
+test cl, cl
+cmovs esi, eax
+mov eax, ecx
+and eax, 0x7f
+add edi, 0xb004c
+shl eax, 0x18
+mov dword [esp], edi
+or esi, eax
+call fcn_fffb3d4e ; call 0xfffb3d4e
+pop eax
+pop edx
+push esi
+mov esi, 0x1389
+push edi
+call fcn_fffb3d84 ; call 0xfffb3d84
+mov eax, dword [ebp - 0x24]
+add esp, 0xc
+push 0x44c
+push eax
+push dword [ebp + 8]
+call dword [eax + 4] ; ucall
+mov dword [esp], ebx
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+jmp near loc_fffc57ba ; jmp 0xfffc57ba
+
+loc_fffc5699: ; not directly referenced
+mov eax, dword [0xfed70044]
+test al, 1
+je loc_fffc560d ; je 0xfffc560d
+mov eax, dword [ebp - 0x20]
+cmp byte [eax + 1], 0
+jne loc_fffc560d ; jne 0xfffc560d
+cmp byte [ebp - 0x2c], 1
+je loc_fffc560d ; je 0xfffc560d
+lea eax, [ebp - 0x1c]
+mov esi, ref_fffd668c ; mov esi, 0xfffd668c
+push ecx
+push eax
+push 0x20
+push 4
+call fcn_fffab5ba ; call 0xfffab5ba
+mov eax, dword [ebp - 0x1c]
+mov ecx, 4
+lea edi, [eax + 8]
+add eax, 0x18
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+pop esi
+pop edi
+push 8
+push eax
+call fcn_fffac673 ; call 0xfffac673
+call fcn_fffab5f3 ; call 0xfffab5f3
+pop edx
+pop ecx
+push eax
+push ref_fffd668c ; push 0xfffd668c
+call fcn_fffc5551 ; call 0xfffc5551
+add esp, 0x10
+mov edx, eax
+test eax, eax
+je loc_fffc560d ; je 0xfffc560d
+mov eax, dword [ebp + 0x14]
+mov esi, 0x166
+mov dword [edx + 0x1c], 0
+mov dword [edx + 0x18], eax
+
+loc_fffc571b: ; not directly referenced
+mov eax, dword [0xfed70044]
+test al, 2
+je short loc_fffc5756 ; je 0xfffc5756
+mov esi, dword [edx + 0x18]
+xor edi, edi
+mov dword [0xfed70080], esi
+mov dword [0xfed70084], edi
+mov dword [0xfed7000c], 3
+cmp dword [ebp + 0x18], 0x20
+jne short loc_fffc574f ; jne 0xfffc574f
+mov dword [0xfed70040], 0
+
+loc_fffc574f: ; not directly referenced
+mov esi, 0x48
+jmp short loc_fffc578e ; jmp 0xfffc578e
+
+loc_fffc5756: ; not directly referenced
+mov eax, dword [ebp - 0x24]
+mov dword [ebp - 0x34], edx
+push edx
+push 0x8c
+push eax
+push dword [ebp + 8]
+call dword [eax + 4] ; ucall
+mov edx, dword [ebp - 0x34]
+add esp, 0x10
+dec esi
+jne short loc_fffc571b ; jne 0xfffc571b
+jmp short loc_fffc574f ; jmp 0xfffc574f
+
+loc_fffc5774: ; not directly referenced
+mov eax, dword [ebp - 0x24]
+push edi
+push 0x8c
+push eax
+push dword [ebp + 8]
+call dword [eax + 4] ; ucall
+add esp, 0x10
+dec esi
+je loc_fffc560d ; je 0xfffc560d
+
+loc_fffc578e: ; not directly referenced
+mov eax, dword [0xfed7000c]
+test eax, eax
+jne short loc_fffc5774 ; jne 0xfffc5774
+jmp near loc_fffc560d ; jmp 0xfffc560d
+
+loc_fffc579c: ; not directly referenced
+dec esi
+je short loc_fffc57c4 ; je 0xfffc57c4
+mov eax, dword [ebp - 0x24]
+push ecx
+push 0x3e8
+push eax
+push dword [ebp + 8]
+call dword [eax + 4] ; ucall
+mov dword [esp], ebx
+call fcn_fffb3d4e ; call 0xfffb3d4e
+add esp, 0x10
+
+loc_fffc57ba: ; not directly referenced
+mov edx, eax
+shr edx, 0x18
+and dl, 0xf0
+je short loc_fffc579c ; je 0xfffc579c
+
+loc_fffc57c4: ; not directly referenced
+shr eax, 0x19
+push edx
+and eax, 7
+push edx
+push eax
+push dword [ebp + 8]
+call fcn_fffb8736 ; call 0xfffb8736
+add esp, 0x10
+jmp short loc_fffc57dc ; jmp 0xfffc57dc
+
+loc_fffc57da: ; not directly referenced
+xor eax, eax
+
+loc_fffc57dc: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc57e4: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x4c
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x40], 0
+mov eax, dword [edi + 0x5edc]
+mov esi, dword [edi + 0x18a7]
+mov dword [ebp - 0x44], eax
+mov eax, dword [edi + 0x188b]
+mov dword [ebp - 0x34], eax
+mov al, byte [edi + 0x36c9]
+inc eax
+cmp byte [edi + 0x1965], 1
+mov byte [edi + 0x36c9], al
+jne short loc_fffc5831 ; jne 0xfffc5831
+xor ebx, ebx
+cmp dword [ebp - 0x34], 1
+sete bl
+mov dword [ebp - 0x40], ebx
+
+loc_fffc5831: ; not directly referenced
+cmp dword [edi + 0x2480], 3
+sete bl
+dec al
+movzx ecx, bl
+mov dword [ebp - 0x48], ecx
+mov ecx, 0xa
+jne short loc_fffc58c2 ; jne 0xfffc58c2
+cmp dword [ebp - 0x34], 1
+jne short loc_fffc58ac ; jne 0xfffc58ac
+cmp dword [edi + 0x3756], 2
+jne short loc_fffc587e ; jne 0xfffc587e
+cmp byte [edi + 0x190c], 0
+jne short loc_fffc587e ; jne 0xfffc587e
+mov eax, dword [ebp - 0x44]
+mov edx, 0x4004
+and byte [eax + 0xbf], 0xdf
+mov ecx, dword [eax + 0xbc]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc587e: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffc58ac ; jne 0xfffc58ac
+cmp byte [edi + 0x190c], 0
+jne short loc_fffc58ac ; jne 0xfffc58ac
+mov eax, dword [ebp - 0x44]
+mov edx, 0x4404
+and byte [eax + 0x18b], 0xdf
+mov ecx, dword [eax + 0x188]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc58ac: ; not directly referenced
+cmp dword [ebp - 0x34], 0
+sete dl
+xor eax, eax
+or dl, bl
+jne loc_fffc6049 ; jne 0xfffc6049
+mov ecx, 6
+
+loc_fffc58c2: ; not directly referenced
+mov al, byte [edi + 0x248d]
+sub esp, 0xc
+mov byte [ebp - 0x35], al
+movzx eax, byte [edi + 0x248e]
+push 1
+mov dword [ebp - 0x3c], eax
+mov edx, eax
+mov eax, edi
+call fcn_fffb2759 ; call 0xfffb2759
+add esp, 0x10
+cmp dword [ebp - 0x48], 0
+jne loc_fffc5bb3 ; jne 0xfffc5bb3
+cmp dword [edi + 0x3756], 2
+je short loc_fffc590b ; je 0xfffc590b
+cmp dword [edi + 0x4b19], 2
+mov al, 0x40
+jne short loc_fffc5928 ; jne 0xfffc5928
+mov eax, 1
+jmp short loc_fffc590d ; jmp 0xfffc590d
+
+loc_fffc590b: ; not directly referenced
+xor eax, eax
+
+loc_fffc590d: ; not directly referenced
+imul eax, eax, 0x13c3
+mov dl, 0x55
+imul esi, esi, 0x2e
+add esi, eax
+mov al, 0x40
+cmp word [edi + esi + 0x375e], 2
+cmove eax, edx
+
+loc_fffc5928: ; not directly referenced
+mov byte [ebp - 0x21], al
+lea esi, [edi + 0x381a]
+xor ebx, ebx
+mov byte [ebp - 0x22], al
+mov byte [ebp - 0x1f], 0x40
+mov byte [ebp - 0x20], 0x40
+
+loc_fffc593e: ; not directly referenced
+cmp dword [esi - 0xc4], 2
+jne short loc_fffc59b4 ; jne 0xfffc59b4
+push ecx
+push 1
+movzx eax, byte [esi + 0x17d]
+neg eax
+push eax
+push 1
+movzx eax, byte [esi]
+push eax
+push 0
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+movzx eax, byte [ebp + ebx - 0x22]
+add esp, 0x1c
+push 1
+push eax
+push 1
+movzx eax, byte [esi]
+push eax
+push 2
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+movzx eax, byte [ebp + ebx - 0x22]
+add esp, 0x1c
+push 1
+push eax
+push 1
+movzx eax, byte [esi]
+push eax
+push 1
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+movzx eax, byte [ebp + ebx - 0x20]
+add esp, 0x1c
+push 1
+push eax
+push 1
+movzx eax, byte [esi]
+push eax
+push 4
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffc59b4: ; not directly referenced
+inc ebx
+add esi, 0x13c3
+cmp ebx, 2
+jne loc_fffc593e ; jne 0xfffc593e
+movzx ebx, byte [ebp - 0x35]
+mov eax, edi
+push edx
+push edx
+xor edx, edx
+push 0
+push 1
+mov ecx, ebx
+call fcn_fffcf9c9 ; call 0xfffcf9c9
+mov cl, byte [ebp - 0x40]
+add esp, 0x10
+and ecx, 1
+mov byte [ebp - 0x2c], cl
+test eax, eax
+setne dl
+test cl, dl
+jne loc_fffc6049 ; jne 0xfffc6049
+cmp byte [edi + 0x36c9], 2
+je short loc_fffc5a0d ; je 0xfffc5a0d
+
+loc_fffc59fb: ; not directly referenced
+cmp byte [edi + 0x36c9], 2
+jne loc_fffc5ac2 ; jne 0xfffc5ac2
+jmp near loc_fffc5aa1 ; jmp 0xfffc5aa1
+
+loc_fffc5a0d: ; not directly referenced
+push eax
+mov edx, 2
+push eax
+mov ecx, ebx
+lea esi, [ebp - 0x22]
+mov eax, edi
+push esi
+push 1
+call fcn_fffcf9c9 ; call 0xfffcf9c9
+add esp, 0x10
+test eax, eax
+setne dl
+test byte [ebp - 0x2c], dl
+jne loc_fffc6049 ; jne 0xfffc6049
+push eax
+mov edx, 1
+push eax
+mov ecx, ebx
+push esi
+mov eax, edi
+push 1
+call fcn_fffcf9c9 ; call 0xfffcf9c9
+add esp, 0x10
+test eax, eax
+setne dl
+test byte [ebp - 0x2c], dl
+jne loc_fffc6049 ; jne 0xfffc6049
+xor ebx, ebx
+lea esi, [ebp - 0x20]
+
+loc_fffc5a5d: ; not directly referenced
+mov cl, bl
+mov eax, 1
+shl eax, cl
+mov cl, 0xc
+cmp bl, 2
+cmovne ecx, eax
+and cl, byte [ebp - 0x35]
+jne short loc_fffc5a7b ; jne 0xfffc5a7b
+
+loc_fffc5a73: ; not directly referenced
+inc ebx
+cmp ebx, 3
+jne short loc_fffc5a5d ; jne 0xfffc5a5d
+jmp short loc_fffc59fb ; jmp 0xfffc59fb
+
+loc_fffc5a7b: ; not directly referenced
+push eax
+mov edx, 4
+push eax
+movzx ecx, cl
+push esi
+mov eax, edi
+push 1
+call fcn_fffcf9c9 ; call 0xfffcf9c9
+add esp, 0x10
+test eax, eax
+setne dl
+test byte [ebp - 0x2c], dl
+je short loc_fffc5a73 ; je 0xfffc5a73
+jmp near loc_fffc6049 ; jmp 0xfffc6049
+
+loc_fffc5aa1: ; not directly referenced
+lea ebx, [edi + 0x3756]
+mov dword [ebp - 0x2c], 0
+
+loc_fffc5aae: ; not directly referenced
+cmp dword [ebx], 2
+je short loc_fffc5ae2 ; je 0xfffc5ae2
+
+loc_fffc5ab3: ; not directly referenced
+inc dword [ebp - 0x2c]
+add ebx, 0x13c3
+cmp dword [ebp - 0x2c], 2
+jne short loc_fffc5aae ; jne 0xfffc5aae
+
+loc_fffc5ac2: ; not directly referenced
+cmp dword [edi + 0x3756], 2
+jne loc_fffc5b8b ; jne 0xfffc5b8b
+xor ecx, ecx
+mov edx, 0x4198
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+jmp near loc_fffc5b8b ; jmp 0xfffc5b8b
+
+loc_fffc5ae2: ; not directly referenced
+mov eax, dword [ebx + 0x109]
+cmp dword [ebx + 0x111], eax
+cmovbe eax, dword [ebx + 0x111]
+cmp dword [ebp - 0x48], 0
+je short loc_fffc5b20 ; je 0xfffc5b20
+mov esi, dword [ebx + 0x115]
+cmp dword [ebx + 0x11d], esi
+cmovbe esi, dword [ebx + 0x11d]
+cmp esi, eax
+cmova esi, eax
+
+loc_fffc5b13: ; not directly referenced
+mov al, byte [ebx + 0xc4]
+xor ecx, ecx
+mov byte [ebp - 0x30], al
+jmp short loc_fffc5b2d ; jmp 0xfffc5b2d
+
+loc_fffc5b20: ; not directly referenced
+mov esi, dword [ebx + 0x119]
+cmp eax, esi
+cmovbe esi, eax
+jmp short loc_fffc5b13 ; jmp 0xfffc5b13
+
+loc_fffc5b2d: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x30], dl
+je short loc_fffc5b53 ; je 0xfffc5b53
+movzx eax, byte [ebx + ecx + 0x249]
+movzx edx, byte [ebx + ecx + 0x245]
+cmp eax, edx
+cmovbe edx, eax
+cmp esi, edx
+cmova esi, edx
+
+loc_fffc5b53: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffc5b2d ; jne 0xfffc5b2d
+push 1
+mov edx, dword [ebp - 0x2c]
+mov eax, esi
+push 1
+neg eax
+push eax
+mov cl, 0xff
+push 1
+mov eax, edi
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+mov edx, dword [ebp - 0x44]
+mov ecx, esi
+imul eax, dword [ebp - 0x2c], 0xcc
+add esp, 0x10
+mov byte [edx + eax + 0xe2], cl
+jmp near loc_fffc5ab3 ; jmp 0xfffc5ab3
+
+loc_fffc5b8b: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffc5ba2 ; jne 0xfffc5ba2
+xor ecx, ecx
+mov edx, 0x4598
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc5ba2: ; not directly referenced
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+jmp near loc_fffc6049 ; jmp 0xfffc6049
+
+loc_fffc5bb3: ; not directly referenced
+mov eax, dword [edi + 0x385f]
+mov edx, 3
+xor ebx, ebx
+mov ecx, dword [ebp - 0x3c]
+mov byte [ebp - 0x1e], al
+mov eax, dword [edi + 0x3867]
+mov byte [ebp - 0x1a], al
+mov eax, dword [edi + 0x4c22]
+mov byte [ebp - 0x1d], al
+mov eax, dword [edi + 0x4c2a]
+mov byte [ebp - 0x19], al
+movzx eax, byte [ebp - 0x35]
+mov esi, eax
+mov dword [ebp - 0x30], eax
+push eax
+push 1
+push 1
+push 0x14
+push 1
+lea eax, [ebp - 0x1e]
+push eax
+mov eax, edi
+push 1
+push esi
+call fcn_fffcfd43 ; call 0xfffcfd43
+add esp, 0x20
+mov dword [ebp - 0x2c], 0
+
+loc_fffc5c0b: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffc5c89 ; jne 0xfffc5c89
+imul ecx, ebx, 0x48
+mov esi, 0xa
+xor edx, edx
+mov eax, dword [edi + ecx + 0x3210]
+div esi
+xor edx, edx
+mov dword [ebp - 0x50], eax
+mov eax, dword [edi + ecx + 0x3214]
+mov ecx, 2
+div esi
+mov esi, dword [ebp - 0x50]
+mov edx, esi
+movsx edx, dl
+mov dword [ebp - 0x4c], eax
+movsx eax, byte [ebp - 0x4c]
+sub eax, edx
+cdq
+idiv ecx
+mov cl, byte [ebp - 0x4c]
+mov edx, 0xc
+add ecx, esi
+cmp cl, 0x11
+cmova edx, dword [ebp - 0x2c]
+mov dword [ebp - 0x2c], edx
+push edx
+push 1
+add al, byte [ebp + ebx - 0x1e]
+mov byte [ebp + ebx - 0x1e], al
+movzx eax, al
+push eax
+push 1
+push dword [ebp - 0x30]
+push 3
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffc5c89: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffc5c0b ; jne 0xfffc5c0b
+mov al, byte [ebp - 0x40]
+and eax, 1
+mov bl, al
+mov byte [ebp - 0x40], al
+mov eax, dword [ebp - 0x2c]
+test eax, eax
+setne dl
+test bl, dl
+jne loc_fffc6049 ; jne 0xfffc6049
+push eax
+mov ecx, dword [ebp - 0x3c]
+mov edx, 2
+push 1
+xor ebx, ebx
+push 1
+push 0x14
+push 1
+lea eax, [ebp - 0x1a]
+push eax
+mov eax, edi
+push 1
+push dword [ebp - 0x30]
+call fcn_fffcfd43 ; call 0xfffcfd43
+add esp, 0x20
+
+loc_fffc5cd4: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffc5d52 ; jne 0xfffc5d52
+imul ecx, ebx, 0x48
+mov esi, 0xa
+xor edx, edx
+mov eax, dword [edi + ecx + 0x3210]
+div esi
+xor edx, edx
+mov dword [ebp - 0x50], eax
+mov eax, dword [edi + ecx + 0x3214]
+mov ecx, 2
+div esi
+mov esi, dword [ebp - 0x50]
+mov edx, esi
+movsx edx, dl
+mov dword [ebp - 0x4c], eax
+movsx eax, byte [ebp - 0x4c]
+sub eax, edx
+cdq
+idiv ecx
+mov cl, byte [ebp - 0x4c]
+mov edx, 0xc
+add ecx, esi
+cmp cl, 0x11
+cmova edx, dword [ebp - 0x2c]
+push esi
+push 1
+mov dword [ebp - 0x2c], edx
+add al, byte [ebp + ebx - 0x1a]
+mov byte [ebp + ebx - 0x1a], al
+movzx eax, al
+push eax
+push 1
+push dword [ebp - 0x30]
+push 2
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffc5d52: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffc5cd4 ; jne 0xfffc5cd4
+mov eax, dword [ebp - 0x2c]
+test eax, eax
+setne dl
+test byte [ebp - 0x40], dl
+jne loc_fffc6049 ; jne 0xfffc6049
+mov eax, dword [edi + 0x386b]
+mov edx, 2
+xor bl, bl
+mov byte [ebp - 0x1a], al
+mov eax, dword [edi + 0x3873]
+mov byte [ebp - 0x1c], al
+mov eax, dword [edi + 0x4c2e]
+mov byte [ebp - 0x19], al
+mov eax, dword [edi + 0x4c36]
+push ecx
+mov ecx, dword [ebp - 0x3c]
+push 1
+push 1
+push 0x14
+push 1
+mov byte [ebp - 0x1b], al
+lea eax, [ebp - 0x1a]
+push eax
+mov eax, edi
+push 2
+push dword [ebp - 0x30]
+call fcn_fffcfd43 ; call 0xfffcfd43
+add esp, 0x20
+
+loc_fffc5db7: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffc5e35 ; jne 0xfffc5e35
+imul ecx, ebx, 0x48
+mov esi, 0xa
+xor edx, edx
+mov eax, dword [edi + ecx + 0x3210]
+div esi
+xor edx, edx
+mov dword [ebp - 0x50], eax
+mov eax, dword [edi + ecx + 0x3214]
+mov ecx, 2
+div esi
+mov esi, dword [ebp - 0x50]
+mov edx, esi
+movsx edx, dl
+mov dword [ebp - 0x4c], eax
+movsx eax, byte [ebp - 0x4c]
+sub eax, edx
+cdq
+idiv ecx
+mov cl, byte [ebp - 0x4c]
+mov edx, 0xc
+add ecx, esi
+cmp cl, 0x11
+cmova edx, dword [ebp - 0x2c]
+mov dword [ebp - 0x2c], edx
+push edx
+push 1
+add al, byte [ebp + ebx - 0x1a]
+mov byte [ebp + ebx - 0x1a], al
+movzx eax, al
+push eax
+push 2
+push dword [ebp - 0x30]
+push 2
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffc5e35: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffc5db7 ; jne 0xfffc5db7
+mov eax, dword [ebp - 0x2c]
+test eax, eax
+setne dl
+test byte [ebp - 0x40], dl
+jne loc_fffc6049 ; jne 0xfffc6049
+push eax
+mov ecx, dword [ebp - 0x3c]
+mov edx, 1
+push 1
+xor bl, bl
+push 1
+push 0x14
+push 1
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, edi
+push 2
+push dword [ebp - 0x30]
+call fcn_fffcfd43 ; call 0xfffcfd43
+add esp, 0x20
+
+loc_fffc5e76: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne short loc_fffc5ef4 ; jne 0xfffc5ef4
+imul ecx, ebx, 0x48
+mov esi, 0xa
+xor edx, edx
+mov eax, dword [edi + ecx + 0x3210]
+div esi
+xor edx, edx
+mov dword [ebp - 0x4c], eax
+mov eax, dword [edi + ecx + 0x3214]
+mov ecx, 2
+div esi
+mov esi, dword [ebp - 0x4c]
+mov edx, esi
+movsx edx, dl
+mov dword [ebp - 0x3c], eax
+movsx eax, byte [ebp - 0x3c]
+sub eax, edx
+cdq
+idiv ecx
+mov cl, byte [ebp - 0x3c]
+mov edx, 0xc
+add ecx, esi
+cmp cl, 0x11
+cmova edx, dword [ebp - 0x2c]
+push esi
+push 1
+mov dword [ebp - 0x2c], edx
+add al, byte [ebp + ebx - 0x1c]
+mov byte [ebp + ebx - 0x1c], al
+movzx eax, al
+push eax
+push 2
+push dword [ebp - 0x30]
+push 1
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffc5ef4: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffc5e76 ; jne 0xfffc5e76
+mov eax, dword [ebp - 0x2c]
+test eax, eax
+setne dl
+test byte [ebp - 0x40], dl
+jne loc_fffc6049 ; jne 0xfffc6049
+lea eax, [edi + 0x3756]
+mov bx, 0x4908
+mov dword [ebp - 0x2c], eax
+
+loc_fffc5f1c: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+cmp dword [eax], 2
+jne loc_fffc5fc5 ; jne 0xfffc5fc5
+xor ecx, ecx
+mov edx, ebx
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+xor eax, eax
+mov edx, 0x80080020
+mov ecx, eax
+or ecx, 0x80000
+and ecx, 0xfffff807
+or ecx, 8
+mov eax, ecx
+push ecx
+push ecx
+push edx
+lea esi, [ebx + ebx - 0x4900]
+push eax
+mov edx, esi
+mov eax, edi
+call fcn_fffae7cf ; call 0xfffae7cf
+mov edx, ebx
+mov ecx, 0x2c08
+shl edx, 8
+mov eax, edi
+sub edx, 0x48c668
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [ebx + 0x50]
+mov ecx, 0xff
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+add esp, 0x10
+cmp dword [ebp - 0x34], 1
+jne short loc_fffc5f9f ; jne 0xfffc5f9f
+lea edx, [ebx + 0x51]
+mov ecx, 0xff
+mov eax, edi
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc5f9f: ; not directly referenced
+push ecx
+mov eax, edi
+push ecx
+push 0
+push 0
+lea edx, [esi - 0x38]
+call fcn_fffae7cf ; call 0xfffae7cf
+pop eax
+mov eax, edi
+pop edx
+lea edx, [esi - 0x28]
+push 0
+push 0x3f8
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+
+loc_fffc5fc5: ; not directly referenced
+add ebx, 4
+add dword [ebp - 0x2c], 0x13c3
+cmp ebx, 0x4910
+jne loc_fffc5f1c ; jne 0xfffc5f1c
+xor bx, bx
+lea esi, [ebp - 0x20]
+
+loc_fffc5fe1: ; not directly referenced
+mov eax, 1
+mov cl, bl
+shl eax, cl
+test byte [ebp - 0x35], al
+jne short loc_fffc5ffa ; jne 0xfffc5ffa
+
+loc_fffc5fef: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffc5fe1 ; jne 0xfffc5fe1
+jmp near loc_fffc59fb ; jmp 0xfffc59fb
+
+loc_fffc5ffa: ; not directly referenced
+test byte [edi + 0x381a], al
+jne short loc_fffc6008 ; jne 0xfffc6008
+mov byte [ebp - 0x20], 0
+jmp short loc_fffc6012 ; jmp 0xfffc6012
+
+loc_fffc6008: ; not directly referenced
+mov dl, byte [edi + ebx + 0x399b]
+mov byte [ebp - 0x20], dl
+
+loc_fffc6012: ; not directly referenced
+test byte [edi + 0x4bdd], al
+je short loc_fffc6026 ; je 0xfffc6026
+mov dl, byte [edi + ebx + 0x4d5e]
+mov byte [ebp - 0x1f], dl
+jmp short loc_fffc602a ; jmp 0xfffc602a
+
+loc_fffc6026: ; not directly referenced
+mov byte [ebp - 0x1f], 0
+
+loc_fffc602a: ; not directly referenced
+push edx
+mov ecx, eax
+push edx
+mov edx, 4
+push esi
+push eax
+mov eax, edi
+call fcn_fffcf9c9 ; call 0xfffcf9c9
+add esp, 0x10
+test eax, eax
+setne dl
+test byte [ebp - 0x40], dl
+je short loc_fffc5fef ; je 0xfffc5fef
+
+loc_fffc6049: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc6051: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0xdc
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x4c], ecx
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x70], cl
+mov cl, byte [ebp + 0x10]
+mov dword [ebp - 0x50], edx
+xor edx, edx
+mov dword [ebp - 0x5c], eax
+mov byte [ebp - 0xc8], bl
+mov byte [ebp - 0xb1], cl
+mov cl, byte [ebp + 0x14]
+mov byte [ebp - 0x6d], al
+mov byte [ebp - 0x6f], cl
+mov ecx, dword [edi + 0x2443]
+mov dword [ebp - 0xb8], ecx
+cmp al, 0x21
+ja short loc_fffc60a5 ; ja 0xfffc60a5
+movzx eax, byte [ebp - 0x5c]
+mov dl, byte [eax + ref_fffd5f1c] ; mov dl, byte [eax - 0x2a0e4]
+
+loc_fffc60a5: ; not directly referenced
+mov eax, dword [edi + 0x188b]
+cmp byte [edi + 0x248b], 1
+mov esi, dword [edi + 0x2480]
+mov dword [ebp - 0x88], eax
+jne short loc_fffc60da ; jne 0xfffc60da
+mov al, byte [edi + 0x248c]
+lea ecx, [eax + 4]
+mov byte [ebp - 0x24], al
+mov byte [ebp - 0x23], al
+add eax, 2
+mov byte [ebp - 0x22], cl
+mov byte [ebp - 0x21], al
+jmp short loc_fffc60ea ; jmp 0xfffc60ea
+
+loc_fffc60da: ; not directly referenced
+mov byte [ebp - 0x24], 1
+mov byte [ebp - 0x23], 1
+mov byte [ebp - 0x22], 1
+mov byte [ebp - 0x21], 1
+
+loc_fffc60ea: ; not directly referenced
+mov eax, dword [ebp - 0x5c]
+mov dword [ebp - 0x9c], 1
+cmp al, 0x21
+sete cl
+cmp al, 0x11
+sete al
+or cl, al
+jne short loc_fffc6114 ; jne 0xfffc6114
+xor eax, eax
+cmp byte [ebp - 0x5c], 5
+sete al
+mov dword [ebp - 0x9c], eax
+
+loc_fffc6114: ; not directly referenced
+cmp byte [ebp - 0x5c], 0xd
+mov dword [ebp - 0x74], 0
+jne short loc_fffc613b ; jne 0xfffc613b
+movzx eax, byte [ebp - 0x4c]
+mov dword [ebp - 0x54], edx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov edx, dword [ebp - 0x54]
+cmp al, 1
+seta al
+movzx eax, al
+mov dword [ebp - 0x74], eax
+
+loc_fffc613b: ; not directly referenced
+mov eax, 2
+cmp bl, 3
+ja loc_fffc6e98 ; ja 0xfffc6e98
+mov al, byte [ebp - 0x5c]
+movzx edx, dl
+mov dword [ebp - 0x68], 1
+mov dword [ebp - 0x7c], 0
+mov byte [ebp - 0x6e], 0
+shr al, 4
+inc eax
+mov byte [ebp - 0xa1], al
+xor eax, eax
+cmp esi, 3
+sete al
+cmp esi, 2
+mov dword [ebp - 0x8c], eax
+movzx eax, bl
+sete byte [ebp - 0xa2]
+mov cl, al
+imul edx, edx, 0x240
+mov dword [ebp - 0x64], eax
+imul eax, eax, 0x90
+add edx, dword [ebp - 0x50]
+shl dword [ebp - 0x68], cl
+shr bl, 1
+mov esi, eax
+movzx ebx, bl
+mov dword [ebp - 0xdc], eax
+movzx eax, byte [ebp - 0x4c]
+mov dword [ebp - 0x54], edx
+add edx, esi
+mov dword [ebp - 0xac], ebx
+mov dword [ebp - 0x94], edx
+mov dword [ebp - 0x6c], eax
+sar eax, 1
+mov dword [ebp - 0xa0], eax
+mov eax, dword [ebp - 0xc8]
+and dword [ebp - 0xa0], 1
+mov dword [ebp - 0x4c], 0
+and eax, 1
+mov dword [ebp - 0x84], 0
+mov byte [ebp - 0x58], 0
+mov dword [ebp - 0xe0], eax
+
+loc_fffc61f5: ; not directly referenced
+mov esi, dword [ebp - 0xb8]
+mov ebx, dword [ebp - 0x4c]
+push eax
+push 0
+push 4
+lea eax, [ebp - 0x28]
+push eax
+mov eax, esi
+mov byte [ebp - 0x80], bl
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x40]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+mov cl, byte [ebp - 0x6f]
+add esp, 0x10
+lea esi, [edi + 0x3756]
+mov dword [ebp - 0xa8], esi
+mov dword [ebp - 0x50], esi
+mov al, cl
+neg eax
+test bl, bl
+cmovne eax, ecx
+xor ebx, ebx
+mov byte [ebp - 0xb0], al
+mov eax, dword [ebp - 0x7c]
+add eax, dword [ebp - 0xdc]
+add eax, dword [ebp - 0x54]
+mov dword [ebp - 0x90], eax
+mov dword [ebp - 0x60], eax
+movzx eax, byte [ebp - 0x58]
+imul eax, eax, 0x12
+mov dword [ebp - 0xcc], eax
+
+loc_fffc6267: ; not directly referenced
+mov al, byte [ebp - 0x6f]
+mov byte [ebp + ebx - 0x3e], 0x7f
+mov dword [ebp + ebx*4 - 0x20], 0
+mov byte [ebp + ebx - 0x3a], 0
+mov byte [ebp + ebx - 0x42], al
+mov eax, dword [ebp - 0x6c]
+mov byte [ebp + ebx - 0x3c], 0
+bt eax, ebx
+jb short loc_fffc629e ; jb 0xfffc629e
+mov word [ebp + ebx*2 - 0x28], 1
+mov byte [ebp + ebx - 0x40], 1
+jmp near loc_fffc64cc ; jmp 0xfffc64cc
+
+loc_fffc629e: ; not directly referenced
+cmp byte [ebp - 0x6d], 1
+jne short loc_fffc62dd ; jne 0xfffc62dd
+mov al, byte [edi + 0x2488]
+xor esi, esi
+mov byte [ebp - 0x78], al
+
+loc_fffc62af: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0x78], al
+jbe loc_fffc646d ; jbe 0xfffc646d
+push eax
+movzx eax, byte [ebp + ebx - 0x42]
+mov ecx, 0xff
+mov edx, ebx
+push eax
+mov eax, edi
+push dword [ebp - 0x4c]
+push esi
+inc esi
+call fcn_fffaec68 ; call 0xfffaec68
+add esp, 0x10
+mov byte [ebp + ebx - 0x42], al
+jmp short loc_fffc62af ; jmp 0xfffc62af
+
+loc_fffc62dd: ; not directly referenced
+cmp byte [ebp - 0x6d], 0xd
+je short loc_fffc62f9 ; je 0xfffc62f9
+cmp dword [ebp - 0x88], 1
+sete al
+test byte [ebp - 0x9c], al
+je loc_fffc637d ; je 0xfffc637d
+
+loc_fffc62f9: ; not directly referenced
+cmp byte [ebp - 0x6d], 0xd
+mov edx, dword [edi + 0x5edc]
+jne short loc_fffc630d ; jne 0xfffc630d
+mov al, byte [edx + 0x14]
+and eax, 0x7f
+jmp short loc_fffc6334 ; jmp 0xfffc6334
+
+loc_fffc630d: ; not directly referenced
+test bl, bl
+jne short loc_fffc6323 ; jne 0xfffc6323
+mov al, byte [edx + 0x15]
+movzx edx, byte [edx + 0x16]
+shr al, 6
+and edx, 0x1f
+shl edx, 2
+jmp short loc_fffc6332 ; jmp 0xfffc6332
+
+loc_fffc6323: ; not directly referenced
+mov al, byte [edx + 0x14]
+movzx edx, byte [edx + 0x15]
+shr al, 7
+and edx, 0x3f
+add edx, edx
+
+loc_fffc6332: ; not directly referenced
+or eax, edx
+
+loc_fffc6334: ; not directly referenced
+mov esi, dword [ebp - 0xb0]
+mov dl, al
+or edx, 0xffffff80
+test al, 0xc0
+cmovne eax, edx
+lea ecx, [eax + esi]
+mov esi, dword [ebp - 0x80]
+cmp cl, 0xca
+mov byte [ebp - 0x78], cl
+setl cl
+xor esi, 1
+mov edx, esi
+test dl, cl
+je short loc_fffc6361 ; je 0xfffc6361
+lea edx, [eax + 0x36]
+jmp short loc_fffc6374 ; jmp 0xfffc6374
+
+loc_fffc6361: ; not directly referenced
+cmp byte [ebp - 0x78], 0x36
+mov dl, byte [ebp - 0x6f]
+setg cl
+test byte [ebp - 0x4c], cl
+je short loc_fffc6374 ; je 0xfffc6374
+mov dl, 0x36
+sub edx, eax
+
+loc_fffc6374: ; not directly referenced
+mov byte [ebp + ebx - 0x42], dl
+jmp near loc_fffc646d ; jmp 0xfffc646d
+
+loc_fffc637d: ; not directly referenced
+cmp byte [ebp - 0x6d], 0xc
+jne loc_fffc646d ; jne 0xfffc646d
+cmp dword [ebp - 0x8c], 1
+mov ecx, dword [ebp - 0x50]
+sbb eax, eax
+mov dword [ebp - 0x78], eax
+mov esi, dword [ecx + 0x11d]
+mov eax, dword [ecx + 0x111]
+mov cl, byte [ecx + 0xc4]
+add byte [ebp - 0x78], 4
+cmp byte [ebp - 0x80], 0
+mov byte [ebp - 0x98], cl
+jne short loc_fffc6409 ; jne 0xfffc6409
+cmp eax, esi
+cmovae eax, esi
+xor ecx, ecx
+mov esi, 1
+
+loc_fffc63c4: ; not directly referenced
+mov edx, esi
+shl edx, cl
+test byte [ebp - 0x98], dl
+je short loc_fffc63df ; je 0xfffc63df
+mov edx, dword [ebp - 0x50]
+mov dl, byte [edx + ecx + 0x245]
+cmp al, dl
+cmova eax, edx
+
+loc_fffc63df: ; not directly referenced
+inc ecx
+cmp byte [ebp - 0x78], cl
+ja short loc_fffc63c4 ; ja 0xfffc63c4
+cmp dword [ebp - 0x8c], 0
+je short loc_fffc645e ; je 0xfffc645e
+mov esi, dword [ebp - 0x50]
+mov edx, dword [esi + 0x109]
+cmp al, dl
+cmovae eax, edx
+mov edx, dword [esi + 0x115]
+cmp al, dl
+cmovae eax, edx
+jmp short loc_fffc645e ; jmp 0xfffc645e
+
+loc_fffc6409: ; not directly referenced
+cmp eax, esi
+mov dl, al
+cmovbe edx, esi
+xor ecx, ecx
+mov esi, 1
+
+loc_fffc6417: ; not directly referenced
+mov eax, esi
+shl eax, cl
+test byte [ebp - 0x98], al
+je short loc_fffc6432 ; je 0xfffc6432
+mov eax, dword [ebp - 0x50]
+mov al, byte [eax + ecx + 0x245]
+cmp dl, al
+cmovb edx, eax
+
+loc_fffc6432: ; not directly referenced
+inc ecx
+cmp byte [ebp - 0x78], cl
+ja short loc_fffc6417 ; ja 0xfffc6417
+cmp dword [ebp - 0x8c], 0
+je short loc_fffc645a ; je 0xfffc645a
+mov esi, dword [ebp - 0x50]
+mov eax, dword [esi + 0x109]
+cmp dl, al
+cmovbe edx, eax
+mov eax, dword [esi + 0x115]
+cmp dl, al
+cmovbe edx, eax
+
+loc_fffc645a: ; not directly referenced
+mov al, 0x7f
+sub eax, edx
+
+loc_fffc645e: ; not directly referenced
+movzx esi, byte [ebp - 0x6f]
+mov ecx, esi
+cmp al, cl
+cmova eax, esi
+mov byte [ebp + ebx - 0x42], al
+
+loc_fffc646d: ; not directly referenced
+mov esi, dword [ebp - 0x60]
+mov ecx, 0xa
+xor edx, edx
+mov eax, dword [esi]
+div ecx
+mov dword [esi], eax
+movzx edx, byte [ebp + ebx - 0x42]
+cmp eax, edx
+jbe short loc_fffc6488 ; jbe 0xfffc6488
+mov dword [esi], edx
+
+loc_fffc6488: ; not directly referenced
+cmp dword [ebp - 0x74], 0
+je short loc_fffc64ab ; je 0xfffc64ab
+mov eax, dword [ebp - 0x60]
+mov esi, dword [ebp - 0x54]
+mov edx, dword [eax]
+imul eax, dword [ebp - 0x64], 0x24
+add eax, dword [ebp - 0xcc]
+add eax, dword [ebp - 0x4c]
+cmp dword [esi + eax*4], edx
+jbe short loc_fffc64ab ; jbe 0xfffc64ab
+mov dword [esi + eax*4], edx
+
+loc_fffc64ab: ; not directly referenced
+mov eax, dword [ebp - 0x60]
+mov edx, ebx
+xor ecx, ecx
+shl edx, 0xa
+add edx, 0x40f0
+mov eax, dword [eax]
+mov byte [ebp + ebx - 0x3a], al
+mov byte [ebp + ebx - 0x3c], al
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc64cc: ; not directly referenced
+inc ebx
+add dword [ebp - 0x60], 0x48
+add dword [ebp - 0x50], 0x13c3
+cmp ebx, 2
+jne loc_fffc6267 ; jne 0xfffc6267
+cmp dword [ebp - 0x74], 0
+jne short loc_fffc64f9 ; jne 0xfffc64f9
+
+loc_fffc64e7: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+lea eax, [eax + eax - 1]
+mov dword [ebp - 0xd8], eax
+jmp near loc_fffc66b2 ; jmp 0xfffc66b2
+
+loc_fffc64f9: ; not directly referenced
+test byte [ebp - 0x70], 1
+je short loc_fffc652a ; je 0xfffc652a
+movzx eax, byte [ebp - 0x58]
+imul edx, dword [ebp - 0x64], 0x24
+mov esi, dword [ebp - 0x54]
+mov ebx, dword [ebp - 0x94]
+imul eax, eax, 0x12
+mov ecx, dword [ebp - 0x7c]
+add eax, edx
+add eax, dword [ebp - 0x4c]
+mov edx, dword [esi + eax*4]
+mov dword [ebx + ecx], edx
+mov eax, dword [esi + eax*4]
+mov byte [ebp - 0x3a], al
+mov byte [ebp - 0x3c], al
+
+loc_fffc652a: ; not directly referenced
+cmp dword [ebp - 0xa0], 0
+je short loc_fffc64e7 ; je 0xfffc64e7
+movzx eax, byte [ebp - 0x58]
+imul edx, dword [ebp - 0x64], 0x24
+mov esi, dword [ebp - 0x54]
+mov ebx, dword [ebp - 0x94]
+imul eax, eax, 0x12
+mov ecx, dword [ebp - 0x7c]
+add eax, edx
+add eax, dword [ebp - 0x4c]
+mov edx, dword [esi + eax*4]
+mov dword [ebx + ecx + 0x48], edx
+mov eax, dword [esi + eax*4]
+mov byte [ebp - 0x39], al
+mov byte [ebp - 0x3b], al
+jmp short loc_fffc64e7 ; jmp 0xfffc64e7
+
+loc_fffc6561: ; not directly referenced
+cmp byte [ebp - 0x6d], 0xc
+jne loc_fffc67ac ; jne 0xfffc67ac
+mov eax, dword [ebp - 0x60]
+cmp byte [ebp - 0x6e], 0
+mov al, byte [eax + 0xc4]
+setne dl
+cmp dword [ebp + 0x1c], 0
+mov byte [ebp - 0x78], al
+setne al
+test dl, al
+jne loc_fffc66fa ; jne 0xfffc66fa
+
+loc_fffc658d: ; not directly referenced
+cmp dword [ebp - 0x88], 0
+movzx ecx, byte [ebp - 0x78]
+jne loc_fffc6795 ; jne 0xfffc6795
+push esi
+push 0
+push dword [ebp - 0x50]
+push 3
+push ecx
+push 0
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffc65b3: ; not directly referenced
+inc ebx
+add dword [ebp - 0x60], 0x13c3
+cmp ebx, 2
+je loc_fffc6648 ; je 0xfffc6648
+
+loc_fffc65c4: ; not directly referenced
+mov eax, dword [ebp - 0x6c]
+bt eax, ebx
+jae short loc_fffc65b3 ; jae 0xfffc65b3
+imul eax, ebx, 0x48
+mov ecx, dword [ebp - 0x90]
+mov esi, dword [ebp - 0xd8]
+imul esi, dword [ecx + eax]
+cmp byte [ebp - 0x6d], 0xd
+mov dword [ebp - 0x50], esi
+jne loc_fffc6561 ; jne 0xfffc6561
+cmp byte [ebp - 0x6e], 0
+setne dl
+cmp dword [ebp + 0x1c], 0
+setne al
+test dl, al
+je short loc_fffc661e ; je 0xfffc661e
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x14
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+
+loc_fffc661e: ; not directly referenced
+push 0
+push 0
+push 0
+push 0
+push dword [ebp - 0x50]
+push 0
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+cmp dword [ebp + 0x1c], 0
+jne short loc_fffc6648 ; jne 0xfffc6648
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+
+loc_fffc6648: ; not directly referenced
+push eax
+xor eax, eax
+movzx ecx, byte [edi + 0x248b]
+cmp dword [ebp - 0x80], 0
+mov edx, dword [ebp - 0x6c]
+push 0
+sete al
+push eax
+lea eax, [ebp - 0x24]
+push eax
+mov eax, edi
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+mov byte [ebp - 0x6e], al
+movzx eax, al
+or dword [ebp - 0xb0], eax
+cmp byte [ebp - 0xb1], 0
+jne loc_fffc689e ; jne 0xfffc689e
+movzx eax, byte [ebp - 0xa1]
+dec eax
+cmp dword [ebp - 0x80], eax
+jae loc_fffc689e ; jae 0xfffc689e
+movzx eax, byte [ebp - 0x70]
+cmp dword [ebp - 0xb0], eax
+jne loc_fffc689e ; jne 0xfffc689e
+
+loc_fffc66a7: ; not directly referenced
+cmp word [ebp - 0x28], 0
+jne loc_fffc6c97 ; jne 0xfffc6c97
+
+loc_fffc66b2: ; not directly referenced
+mov ecx, 4
+mov edx, 0x4800
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov dword [ebp - 0xb0], 0
+mov dword [ebp - 0x80], 0
+
+loc_fffc66d4: ; not directly referenced
+movzx eax, byte [ebp - 0xa1]
+cmp dword [ebp - 0x80], eax
+jae short loc_fffc66a7 ; jae 0xfffc66a7
+mov eax, dword [ebp - 0xa8]
+xor ebx, ebx
+mov dword [ebp - 0x98], 0
+mov dword [ebp - 0x60], eax
+jmp near loc_fffc65c4 ; jmp 0xfffc65c4
+
+loc_fffc66fa: ; not directly referenced
+cmp dword [ebp - 0x98], 0
+jne loc_fffc658d ; jne 0xfffc658d
+cmp dword [ebp - 0x8c], 0
+jne short loc_fffc672b ; jne 0xfffc672b
+
+loc_fffc6710: ; not directly referenced
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+mov dword [ebp - 0x98], 1
+jmp near loc_fffc658d ; jmp 0xfffc658d
+
+loc_fffc672b: ; not directly referenced
+movzx eax, byte [ebp - 0x6e]
+xor esi, esi
+mov dword [ebp - 0xcc], eax
+movzx eax, byte [ebp - 0x78]
+mov dword [ebp - 0x98], eax
+
+loc_fffc6741: ; not directly referenced
+mov eax, dword [ebp - 0xcc]
+bt eax, esi
+jae short loc_fffc678a ; jae 0xfffc678a
+cmp dword [ebp - 0x88], 0
+jne short loc_fffc6770 ; jne 0xfffc6770
+push eax
+push 0
+push 0
+push 3
+push dword [ebp - 0x98]
+push 0
+push esi
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+jmp short loc_fffc678a ; jmp 0xfffc678a
+
+loc_fffc6770: ; not directly referenced
+push 0
+mov ecx, dword [ebp - 0x98]
+mov edx, ebx
+push 0
+mov eax, edi
+push 0
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffc678a: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffc6741 ; jne 0xfffc6741
+jmp near loc_fffc6710 ; jmp 0xfffc6710
+
+loc_fffc6795: ; not directly referenced
+push 0
+mov edx, ebx
+push 0
+mov eax, edi
+push dword [ebp - 0x50]
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+jmp near loc_fffc6844 ; jmp 0xfffc6844
+
+loc_fffc67ac: ; not directly referenced
+mov eax, dword [ebp - 0x6c]
+lea ecx, [ebx + 1]
+sar eax, cl
+mov cl, byte [ebp - 0x6d]
+mov dword [ebp - 0x78], eax
+cmp cl, 5
+sete al
+test byte [ebp - 0xa2], al
+jne short loc_fffc67d2 ; jne 0xfffc67d2
+xor edx, edx
+movzx esi, cl
+jmp near loc_fffc6891 ; jmp 0xfffc6891
+
+loc_fffc67d2: ; not directly referenced
+imul edx, dword [ebp - 0xe0], 0x18
+imul eax, dword [ebp - 0xac], 0x128
+mov esi, dword [ebp - 0x60]
+mov ecx, dword [ebp - 0x68]
+add eax, edx
+lea esi, [esi + eax + 0x1266]
+mov ax, word [esi + 0xb]
+push edx
+push edx
+mov edx, ebx
+or eax, 0x10
+movzx eax, ax
+push eax
+mov eax, edi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+push dword [ebp - 0x78]
+push 1
+push 0xff
+push dword [ebp - 0x68]
+push dword [ebp - 0x50]
+push 0
+push ebx
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+mov ax, word [esi + 0xb]
+add esp, 0x28
+mov ecx, dword [ebp - 0x68]
+mov edx, ebx
+and eax, 0xffef
+push eax
+mov eax, edi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+mov dword [ebp - 0x84], eax
+
+loc_fffc6844: ; not directly referenced
+add esp, 0x10
+jmp near loc_fffc65b3 ; jmp 0xfffc65b3
+
+loc_fffc684c: ; not directly referenced
+push 1
+movzx eax, dl
+push dword [ebp - 0x78]
+mov dword [ebp - 0xcc], edx
+push 0
+push 0
+push eax
+push 0xff
+push ebx
+push 0
+push dword [ebp - 0x80]
+push dword [ebp - 0x50]
+push esi
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+cmp dword [ebp - 0x9c], 0
+mov dword [ebp - 0x84], eax
+jne loc_fffc65b3 ; jne 0xfffc65b3
+mov edx, dword [ebp - 0xcc]
+inc edx
+
+loc_fffc6891: ; not directly referenced
+cmp dl, byte [edi + 0x2488]
+jb short loc_fffc684c ; jb 0xfffc684c
+jmp near loc_fffc65b3 ; jmp 0xfffc65b3
+
+loc_fffc689e: ; not directly referenced
+mov eax, dword [ebp - 0x90]
+xor ebx, ebx
+mov dword [ebp - 0x98], eax
+jmp short loc_fffc68c6 ; jmp 0xfffc68c6
+
+loc_fffc68ae: ; not directly referenced
+cmp byte [ebp + ebx - 0x40], 1
+jne short loc_fffc68d0 ; jne 0xfffc68d0
+
+loc_fffc68b5: ; not directly referenced
+inc ebx
+add dword [ebp - 0x98], 0x48
+cmp ebx, 2
+je loc_fffc6bb5 ; je 0xfffc6bb5
+
+loc_fffc68c6: ; not directly referenced
+cmp word [ebp + ebx*2 - 0x28], 1
+mov al, bl
+je short loc_fffc68ae ; je 0xfffc68ae
+
+loc_fffc68d0: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+bt esi, ebx
+jae short loc_fffc68b5 ; jae 0xfffc68b5
+xor esi, esi
+mov edx, ebx
+cmp dword [ebp - 0x74], 0
+cmove esi, eax
+mov eax, esi
+shl edx, 0xa
+add edx, 0x4114
+mov byte [ebp - 0x58], al
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov esi, dword [ebp - 0x98]
+mov dl, byte [ebp + ebx - 0x3e]
+mov esi, dword [esi]
+mov ecx, esi
+sub ecx, edx
+and eax, 0x7fffff
+mov dword [ebp - 0x78], eax
+movzx eax, byte [ebp - 0x58]
+mov dword [ebp - 0x50], esi
+mov byte [ebp - 0x60], cl
+jne loc_fffc69cb ; jne 0xfffc69cb
+mov cl, byte [ebp - 0x50]
+cmp cl, byte [ebp + eax - 0x3c]
+jne short loc_fffc698c ; jne 0xfffc698c
+cmp byte [ebp - 0x60], 0
+jns short loc_fffc6951 ; jns 0xfffc6951
+cmp byte [ebp + eax - 0x3a], cl
+jne short loc_fffc6941 ; jne 0xfffc6941
+
+loc_fffc6935: ; not directly referenced
+mov al, byte [ebp - 0x50]
+mov byte [ebp + ebx - 0x3e], al
+jmp near loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc6941: ; not directly referenced
+mov dword [ebp - 0x2c], 1
+
+loc_fffc6948: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+test eax, eax
+jne short loc_fffc6948 ; jne 0xfffc6948
+jmp short loc_fffc6935 ; jmp 0xfffc6935
+
+loc_fffc6951: ; not directly referenced
+cmp byte [ebp - 0x60], 1
+jne short loc_fffc696d ; jne 0xfffc696d
+mov eax, dword [ebp + ebx*4 - 0x20]
+shr eax, 8
+xor ah, ah
+mov dword [ebp + ebx*4 - 0x20], eax
+mov al, byte [ebp - 0x50]
+mov byte [ebx + ebp - 0x3e], al
+jmp short loc_fffc69b3 ; jmp 0xfffc69b3
+
+loc_fffc696d: ; not directly referenced
+xor eax, eax
+cmp byte [ebp - 0x60], 2
+je loc_fffc6a1d ; je 0xfffc6a1d
+mov dword [ebp - 0x30], 1
+
+loc_fffc6980: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+test eax, eax
+jne short loc_fffc6980 ; jne 0xfffc6980
+jmp near loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc698c: ; not directly referenced
+mov cl, byte [ebp - 0x50]
+cmp cl, byte [ebp + eax - 0x3a]
+jne loc_fffc6b0b ; jne 0xfffc6b0b
+cmp word [ebp + ebx*2 - 0x28], 1
+je loc_fffc68b5 ; je 0xfffc68b5
+cmp byte [ebp - 0x60], 0xff
+jne short loc_fffc69bf ; jne 0xfffc69bf
+and dword [ebp + ebx*4 - 0x20], 0xffffff00
+
+loc_fffc69b3: ; not directly referenced
+mov word [ebp + ebx*2 - 0x28], 1
+jmp near loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc69bf: ; not directly referenced
+mov al, byte [ebp - 0x50]
+mov byte [ebx + ebp - 0x3e], al
+jmp near loc_fffc6b02 ; jmp 0xfffc6b02
+
+loc_fffc69cb: ; not directly referenced
+mov cl, byte [ebp + eax - 0x3c]
+mov byte [ebp - 0xcc], cl
+cmp byte [ebp - 0x50], cl
+jne short loc_fffc6a3f ; jne 0xfffc6a3f
+cmp byte [ebp - 0x60], 2
+jle short loc_fffc69f3 ; jle 0xfffc69f3
+mov dword [ebp - 0x34], 1
+
+loc_fffc69e7: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+test eax, eax
+jne short loc_fffc69e7 ; jne 0xfffc69e7
+jmp near loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc69f3: ; not directly referenced
+mov eax, dword [ebp - 0x78]
+je short loc_fffc6a1d ; je 0xfffc6a1d
+call fcn_fffaebf8 ; call 0xfffaebf8
+mov edx, dword [ebp + ebx*4 - 0x20]
+mov byte [ebp + ebx - 0x40], 0
+and edx, 0xff00ffff
+movzx eax, al
+shl eax, 0x10
+or eax, edx
+mov dword [ebp + ebx*4 - 0x20], eax
+jmp near loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc6a1d: ; not directly referenced
+call fcn_fffaebf8 ; call 0xfffaebf8
+mov edx, dword [ebp + ebx*4 - 0x20]
+mov byte [ebp + ebx - 0x40], 1
+and edx, 0xffffff
+shl eax, 0x18
+or eax, edx
+mov dword [ebp + ebx*4 - 0x20], eax
+jmp near loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc6a3f: ; not directly referenced
+mov cl, byte [ebp - 0x50]
+cmp cl, byte [ebp + eax - 0x3a]
+jne loc_fffc6b0b ; jne 0xfffc6b0b
+inc dl
+je short loc_fffc6ac9 ; je 0xfffc6ac9
+cmp byte [ebp - 0x60], 0
+jg short loc_fffc6ac9 ; jg 0xfffc6ac9
+movsx eax, byte [ebp - 0x60]
+mov esi, eax
+mov eax, dword [ebp - 0x78]
+call fcn_fffaebf8 ; call 0xfffaebf8
+mov ecx, dword [ebp + ebx*4 - 0x20]
+mov edx, 1
+sub edx, esi
+shl edx, 3
+mov dword [ebp - 0xd4], ecx
+lea ecx, [edx + 0x1f]
+mov dword [ebp - 0xd0], eax
+mov eax, esi
+xor esi, esi
+cmp cl, 0x3e
+ja short loc_fffc6abb ; ja 0xfffc6abb
+mov esi, eax
+mov eax, 0xff
+lea ecx, [esi*8 + 8]
+movzx esi, byte [ebp - 0xd0]
+shl eax, cl
+not eax
+and eax, dword [ebp - 0xd4]
+shl esi, cl
+mov cl, dl
+or esi, eax
+test dl, dl
+jle short loc_fffc6ab7 ; jle 0xfffc6ab7
+shl esi, cl
+jmp short loc_fffc6abb ; jmp 0xfffc6abb
+
+loc_fffc6ab7: ; not directly referenced
+neg ecx
+shr esi, cl
+
+loc_fffc6abb: ; not directly referenced
+mov al, byte [ebp - 0x50]
+mov dword [ebp + ebx*4 - 0x20], esi
+dec eax
+mov byte [ebp + ebx - 0x3e], al
+jmp short loc_fffc6aec ; jmp 0xfffc6aec
+
+loc_fffc6ac9: ; not directly referenced
+mov eax, dword [ebp - 0x78]
+mov esi, dword [ebp + ebx*4 - 0x20]
+call fcn_fffaebf8 ; call 0xfffaebf8
+movzx edx, si
+and esi, 0xff0000
+shr esi, 8
+add esi, eax
+shl esi, 0x10
+or esi, edx
+mov dword [ebp + ebx*4 - 0x20], esi
+
+loc_fffc6aec: ; not directly referenced
+mov al, byte [ebp - 0xcc]
+cmp byte [ebp - 0x50], al
+jae short loc_fffc6afc ; jae 0xfffc6afc
+mov byte [ebp + ebx - 0x40], 1
+
+loc_fffc6afc: ; not directly referenced
+cmp byte [ebp - 0x60], 0
+jg short loc_fffc6b19 ; jg 0xfffc6b19
+
+loc_fffc6b02: ; not directly referenced
+mov word [ebp + ebx*2 - 0x28], 0
+jmp short loc_fffc6b19 ; jmp 0xfffc6b19
+
+loc_fffc6b0b: ; not directly referenced
+mov dword [ebp - 0x38], 1
+
+loc_fffc6b12: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+test eax, eax
+jne short loc_fffc6b12 ; jne 0xfffc6b12
+
+loc_fffc6b19: ; not directly referenced
+mov al, byte [ebp + ebx - 0x42]
+cmp byte [ebp - 0x50], al
+jne short loc_fffc6b27 ; jne 0xfffc6b27
+mov byte [ebp + ebx - 0x40], 1
+
+loc_fffc6b27: ; not directly referenced
+cmp dword [ebp - 0x78], 0
+jne short loc_fffc6b42 ; jne 0xfffc6b42
+cmp al, byte [ebp + ebx - 0x3e]
+jne short loc_fffc6b42 ; jne 0xfffc6b42
+cmp word [ebp + ebx*2 - 0x28], 1
+jne short loc_fffc6b42 ; jne 0xfffc6b42
+mov word [ebp + ebx*4 - 0x1e], 0xfffe
+
+loc_fffc6b42: ; not directly referenced
+cmp byte [ebp - 0x50], 0
+jne short loc_fffc6b66 ; jne 0xfffc6b66
+cmp dword [ebp - 0x78], 0
+mov word [ebp + ebx*2 - 0x28], 1
+je short loc_fffc6b66 ; je 0xfffc6b66
+mov byte [ebp + ebx - 0x40], 1
+mov byte [ebp + ebx - 0x3e], 0
+mov word [ebp + ebx*4 - 0x1e], 0x707
+
+loc_fffc6b66: ; not directly referenced
+cmp dword [ebp - 0x74], 0
+jne loc_fffc68b5 ; jne 0xfffc68b5
+cmp word [ebp + ebx*2 - 0x28], 1
+jne short loc_fffc6b9c ; jne 0xfffc6b9c
+cmp byte [ebp + ebx - 0x40], 1
+je loc_fffc68b5 ; je 0xfffc68b5
+mov al, byte [ebp + ebx - 0x3c]
+mov esi, dword [ebp - 0x98]
+inc eax
+mov byte [ebp + ebx - 0x3c], al
+movzx eax, al
+mov dword [esi], eax
+jmp near loc_fffc68b5 ; jmp 0xfffc68b5
+
+loc_fffc6b9c: ; not directly referenced
+mov al, byte [ebp + ebx - 0x3a]
+mov ecx, dword [ebp - 0x98]
+dec eax
+mov byte [ebp + ebx - 0x3a], al
+movzx eax, al
+mov dword [ecx], eax
+jmp near loc_fffc68b5 ; jmp 0xfffc68b5
+
+loc_fffc6bb5: ; not directly referenced
+cmp dword [ebp - 0x74], 0
+je loc_fffc6c8f ; je 0xfffc6c8f
+cmp word [ebp - 0x28], 1
+jne loc_fffc6c7b ; jne 0xfffc6c7b
+cmp word [ebp - 0x26], 1
+jne loc_fffc6c7b ; jne 0xfffc6c7b
+cmp byte [ebp - 0x40], 1
+jne short loc_fffc6be5 ; jne 0xfffc6be5
+cmp byte [ebp - 0x3f], 1
+je loc_fffc6c8f ; je 0xfffc6c8f
+
+loc_fffc6be5: ; not directly referenced
+movzx eax, byte [ebp - 0x58]
+mov bl, byte [ebp + eax - 0x3c]
+lea edx, [ebx + 1]
+mov byte [ebp + eax - 0x3c], dl
+
+loc_fffc6bf4: ; not directly referenced
+imul ecx, dword [ebp - 0x64], 0x24
+movzx edx, dl
+imul eax, eax, 0x12
+mov ebx, dword [ebp - 0x54]
+add eax, ecx
+add eax, dword [ebp - 0x4c]
+mov dword [ebx + eax*4], edx
+test byte [ebp - 0x70], 1
+je short loc_fffc6c3f ; je 0xfffc6c3f
+movzx eax, byte [ebp - 0x58]
+imul ecx, dword [ebp - 0x64], 0x24
+mov ebx, dword [ebp - 0x54]
+mov esi, dword [ebp - 0x7c]
+imul edx, eax, 0x12
+add edx, ecx
+add edx, dword [ebp - 0x4c]
+mov edx, dword [ebx + edx*4]
+mov ebx, dword [ebp - 0x94]
+mov dword [ebx + esi], edx
+mov dl, byte [ebp + eax - 0x3a]
+mov al, byte [ebp + eax - 0x3c]
+mov byte [ebp - 0x3a], dl
+mov byte [ebp - 0x3c], al
+
+loc_fffc6c3f: ; not directly referenced
+cmp dword [ebp - 0xa0], 0
+je short loc_fffc6c8f ; je 0xfffc6c8f
+movzx eax, byte [ebp - 0x58]
+imul ecx, dword [ebp - 0x64], 0x24
+mov ebx, dword [ebp - 0x94]
+mov esi, dword [ebp - 0x7c]
+imul edx, eax, 0x12
+add edx, ecx
+mov ecx, dword [ebp - 0x54]
+add edx, dword [ebp - 0x4c]
+mov edx, dword [ecx + edx*4]
+mov dword [ebx + esi + 0x48], edx
+mov dl, byte [ebp + eax - 0x3a]
+mov al, byte [ebp + eax - 0x3c]
+mov byte [ebp - 0x39], dl
+mov byte [ebp - 0x3b], al
+jmp short loc_fffc6c8f ; jmp 0xfffc6c8f
+
+loc_fffc6c7b: ; not directly referenced
+movzx eax, byte [ebp - 0x58]
+mov bl, byte [ebp + eax - 0x3a]
+lea edx, [ebx - 1]
+mov byte [ebp + eax - 0x3a], dl
+jmp near loc_fffc6bf4 ; jmp 0xfffc6bf4
+
+loc_fffc6c8f: ; not directly referenced
+inc dword [ebp - 0x80]
+jmp near loc_fffc66d4 ; jmp 0xfffc66d4
+
+loc_fffc6c97: ; not directly referenced
+cmp byte [ebp - 0x40], 0
+je loc_fffc66b2 ; je 0xfffc66b2
+cmp word [ebp - 0x26], 0
+je loc_fffc66b2 ; je 0xfffc66b2
+cmp byte [ebp - 0x3f], 0
+je loc_fffc66b2 ; je 0xfffc66b2
+xor ebx, ebx
+
+loc_fffc6cb8: ; not directly referenced
+mov eax, dword [ebp - 0x6c]
+bt eax, ebx
+jae short loc_fffc6d0d ; jae 0xfffc6d0d
+cmp byte [ebp - 0xb1], 0
+je short loc_fffc6cf9 ; je 0xfffc6cf9
+mov edx, dword [ebp + ebx*4 - 0x20]
+sub esp, 0xc
+movzx eax, byte [ebp + ebx - 0x3e]
+push dword [ebp + 0x18]
+mov ecx, edx
+shr edx, 0x10
+shr ecx, 0x18
+movzx edx, dl
+call fcn_fffaa348 ; call 0xfffaa348
+imul edx, ebx, 0x48
+mov ecx, dword [ebp - 0x90]
+add esp, 0x10
+mov dword [ecx + edx], eax
+jmp short loc_fffc6d0d ; jmp 0xfffc6d0d
+
+loc_fffc6cf9: ; not directly referenced
+movzx edx, byte [ebp + ebx - 0x3e]
+imul eax, ebx, 0x48
+mov esi, dword [ebp - 0x90]
+imul edx, edx, 0xa
+mov dword [esi + eax], edx
+
+loc_fffc6d0d: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc6cb8 ; jne 0xfffc6cb8
+inc dword [ebp - 0x4c]
+add dword [ebp - 0x7c], 4
+cmp dword [ebp - 0x4c], 2
+jne loc_fffc61f5 ; jne 0xfffc61f5
+cmp byte [ebp - 0x5c], 0xd
+jne short loc_fffc6d46 ; jne 0xfffc6d46
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+jmp near loc_fffc6e84 ; jmp 0xfffc6e84
+
+loc_fffc6d46: ; not directly referenced
+cmp byte [ebp - 0x5c], 0xc
+jne short loc_fffc6d9a ; jne 0xfffc6d9a
+xor ebx, ebx
+
+loc_fffc6d4e: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [ebp - 0x88], 0
+movzx ecx, byte [edi + eax + 0x381a]
+jne short loc_fffc6d7b ; jne 0xfffc6d7b
+push esi
+push 0
+push 0
+push 3
+push ecx
+push 0
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+jmp short loc_fffc6d8f ; jmp 0xfffc6d8f
+
+loc_fffc6d7b: ; not directly referenced
+push 0
+mov edx, ebx
+push 0
+mov eax, edi
+push 0
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffc6d8f: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc6d4e ; jne 0xfffc6d4e
+jmp near loc_fffc6e84 ; jmp 0xfffc6e84
+
+loc_fffc6d9a: ; not directly referenced
+cmp byte [ebp - 0x5c], 5
+sete al
+test byte [ebp - 0xa2], al
+je loc_fffc6e5c ; je 0xfffc6e5c
+mov edx, dword [ebp - 0xc8]
+xor ebx, ebx
+mov eax, dword [ebp - 0xa8]
+and edx, 1
+mov dword [ebp - 0x4c], eax
+imul edx, edx, 0x18
+imul eax, dword [ebp - 0xac], 0x128
+add eax, edx
+mov dword [ebp - 0x58], eax
+
+loc_fffc6dd3: ; not directly referenced
+mov esi, dword [ebp - 0x6c]
+lea eax, [ebx + 1]
+mov cl, al
+mov edx, dword [ebp - 0x58]
+mov dword [ebp - 0x50], eax
+sar esi, cl
+mov ecx, dword [ebp - 0x4c]
+mov dword [ebp - 0x54], esi
+lea esi, [ecx + edx + 0x1266]
+mov ecx, dword [ebp - 0x68]
+mov ax, word [esi + 0xb]
+push edx
+push edx
+mov edx, ebx
+or eax, 0x10
+movzx eax, ax
+push eax
+mov eax, edi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+push dword [ebp - 0x54]
+push 1
+push 0xff
+push dword [ebp - 0x68]
+push 0
+push 0
+push ebx
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+mov ax, word [esi + 0xb]
+add esp, 0x28
+mov ecx, dword [ebp - 0x68]
+mov edx, ebx
+and eax, 0xffef
+push eax
+mov eax, edi
+push 3
+call fcn_fffafd52 ; call 0xfffafd52
+mov ebx, dword [ebp - 0x50]
+add esp, 0x10
+add dword [ebp - 0x4c], 0x13c3
+mov dword [ebp - 0x84], eax
+cmp ebx, 2
+jne loc_fffc6dd3 ; jne 0xfffc6dd3
+jmp short loc_fffc6e84 ; jmp 0xfffc6e84
+
+loc_fffc6e5c: ; not directly referenced
+push 2
+movzx eax, byte [ebp - 0x5c]
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push eax
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov dword [ebp - 0x84], eax
+
+loc_fffc6e84: ; not directly referenced
+mov eax, edi
+xor ecx, ecx
+mov edx, 0x4cf0
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp - 0x84]
+
+loc_fffc6e98: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc6ea0: ; not directly referenced
+push ebp
+mov ecx, 8
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x178
+mov eax, dword [ebp + 8]
+lea edi, [ebp - 0xe8]
+mov edx, dword [ebp + 0xc]
+mov dword [ebp - 0xbc], fcn_fffaafc2 ; mov dword [ebp - 0xbc], 0xfffaafc2
+mov dword [ebp - 0xb0], fcn_fffaafda ; mov dword [ebp - 0xb0], 0xfffaafda
+mov dword [ebp - 0x130], eax
+xor eax, eax
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0xf8]
+mov dword [ebp - 0x12c], edx
+mov edx, 0xcf8
+mov dword [ebp - 0x5c], fcn_fffab0f8 ; mov dword [ebp - 0x5c], 0xfffab0f8
+mov dword [ebp - 0x58], fcn_fffab0ef ; mov dword [ebp - 0x58], 0xfffab0ef
+mov dword [ebp - 0xa4], fcn_fffb3d4e ; mov dword [ebp - 0xa4], 0xfffb3d4e
+mov dword [ebp - 0xa0], fcn_fffb3dc0 ; mov dword [ebp - 0xa0], 0xfffb3dc0
+mov cl, 4
+rep stosd ; rep stosd dword es:[edi], eax
+mov eax, 0x80000048
+mov dword [ebp - 0x7c], fcn_fffc3868 ; mov dword [ebp - 0x7c], 0xfffc3868
+mov dword [ebp - 0x78], fcn_fffc3844 ; mov dword [ebp - 0x78], 0xfffc3844
+out dx, eax
+push 0xcfc
+call fcn_fffaafc2 ; call 0xfffaafc2
+add esp, 0x10
+mov ebx, eax
+test al, 1
+jne short loc_fffc6f40 ; jne 0xfffc6f40
+
+loc_fffc6f39: ; not directly referenced
+xor eax, eax
+jmp near loc_fffc82ec ; jmp 0xfffc82ec
+
+loc_fffc6f40: ; not directly referenced
+push 0x60
+mov esi, dword [ebp - 0xb0]
+push 0
+push 0
+push 0
+call dword [ebp - 0x7c] ; ucall
+pop edi
+pop edx
+push eax
+push 0xcf8
+call esi
+mov dword [esp], 0xcfc
+call dword [ebp - 0xbc] ; ucall
+add esp, 0x10
+test al, 1
+je short loc_fffc6f39 ; je 0xfffc6f39
+and eax, 0xfffffff8
+mov esi, eax
+call fcn_fffa6801 ; call 0xfffa6801
+mov dword [ebp - 0x144], 0
+cmp eax, 0x40660
+setne cl
+cmp eax, 0x306c0
+setne dl
+test cl, dl
+je short loc_fffc6fa8 ; je 0xfffc6fa8
+cmp eax, 0x40650
+setne al
+movzx eax, al
+mov dword [ebp - 0x144], eax
+
+loc_fffc6fa8: ; not directly referenced
+push 0xbc
+and ebx, 0xfffffffe
+push 0
+push 0
+push 0
+call dword [ebp - 0x78] ; ucall
+add eax, esi
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+push 0x90
+push 0
+push 0
+push 0
+mov dword [ebp - 0x160], eax
+call dword [ebp - 0x78] ; ucall
+add esp, 0x14
+add eax, esi
+push eax
+call dword [ebp - 0xa0] ; ucall
+push 0x98
+push 0
+push 0
+push 0
+mov dword [ebp - 0x150], edx
+mov dword [ebp - 0x138], eax
+call dword [ebp - 0x78] ; ucall
+add esp, 0x14
+add esi, eax
+push esi
+call dword [ebp - 0xa0] ; ucall
+mov edi, eax
+lea eax, [ebx + 0x5024]
+or edi, 0xfffff
+mov dword [ebp - 0x164], edx
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [ebp - 0x154], eax
+lea eax, [ebx + 0x5014]
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [ebp - 0x140], eax
+lea eax, [ebx + 0x5000]
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [ebp - 0x148], eax
+lea eax, [ebx + 0x5004]
+add ebx, 0x5008
+mov dword [esp], eax
+call dword [ebp - 0xa4] ; ucall
+mov dword [esp], ebx
+mov esi, eax
+call dword [ebp - 0xa4] ; ucall
+mov ecx, dword [ebp - 0x138]
+add esp, 0xc
+mov ebx, dword [ebp - 0x140]
+mov edx, dword [ebp - 0x164]
+push 0x16
+and ecx, 0xfff00000
+mov dword [ebp - 0x110], ecx
+mov ecx, dword [ebp - 0x150]
+mov dword [ebp - 0x138], edi
+xor edi, edi
+and edx, 0x7f
+push edi
+and ecx, 0x7f
+mov dword [ebp - 0x10c], ecx
+movzx ecx, bl
+push ecx
+mov dword [ebp - 0x104], esi
+mov esi, ecx
+mov dword [ebp - 0x100], eax
+mov dword [ebp - 0xfc], 0
+mov dword [ebp - 0x134], edx
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 0x16
+push edi
+mov edi, ebx
+push esi
+mov dword [ebp - 0x150], eax
+mov dword [ebp - 0x14c], edx
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+xor edx, edx
+push 0xe
+mov eax, ebx
+and eax, 0xff00
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+mov eax, ebx
+push 6
+and eax, 0xff0000
+xor edx, edx
+and edi, 0xff000000
+push edx
+push eax
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 2
+mov dword [ebp - 0x168], edx
+xor edx, edx
+push edx
+push edi
+mov dword [ebp - 0x164], eax
+call dword [ebp - 0x5c] ; ucall
+mov dword [ebp - 0x140], eax
+mov eax, dword [ebp - 0x148]
+mov dword [ebp - 0x13c], edx
+and eax, 1
+mov ebx, dword [ebp + eax*4 - 0x104]
+lea eax, [ebp - 0xc4]
+mov edx, ebx
+call fcn_fffc3bf5 ; call 0xfffc3bf5
+mov esi, eax
+mov edi, edx
+lea eax, [ebp - 0xc4]
+mov edx, ebx
+call fcn_fffc3bda ; call 0xfffc3bda
+add eax, esi
+adc edx, edi
+add esp, 0x10
+cmp dword [ebp - 0x144], 1
+jne short loc_fffc718e ; jne 0xfffc718e
+add eax, dword [ebp - 0x150]
+adc edx, dword [ebp - 0x14c]
+jmp short loc_fffc719a ; jmp 0xfffc719a
+
+loc_fffc718e: ; not directly referenced
+add eax, dword [ebp - 0x140]
+adc edx, dword [ebp - 0x13c]
+
+loc_fffc719a: ; not directly referenced
+mov esi, eax
+mov eax, dword [ebp - 0x10c]
+mov edi, edx
+cmp dword [ebp - 0x134], eax
+jb loc_fffc729e ; jb 0xfffc729e
+ja short loc_fffc71c4 ; ja 0xfffc71c4
+mov eax, dword [ebp - 0x110]
+cmp dword [ebp - 0x138], eax
+jbe loc_fffc729e ; jbe 0xfffc729e
+
+loc_fffc71c4: ; not directly referenced
+mov eax, dword [ebp - 0x160]
+mov cl, 1
+mov ebx, dword [ebp - 0x134]
+mov dword [ebp - 0x15c], 0
+and eax, 0xfff00000
+mov edx, eax
+mov dword [ebp - 0x160], eax
+cmp dword [ebp - 0x12c], ebx
+jb short loc_fffc7203 ; jb 0xfffc7203
+ja short loc_fffc7201 ; ja 0xfffc7201
+mov ebx, dword [ebp - 0x138]
+cmp dword [ebp - 0x130], ebx
+jbe short loc_fffc7203 ; jbe 0xfffc7203
+
+loc_fffc7201: ; not directly referenced
+xor ecx, ecx
+
+loc_fffc7203: ; not directly referenced
+mov eax, dword [ebp - 0x10c]
+mov bl, 1
+cmp dword [ebp - 0x12c], eax
+ja short loc_fffc7225 ; ja 0xfffc7225
+jb short loc_fffc7223 ; jb 0xfffc7223
+mov eax, dword [ebp - 0x110]
+cmp dword [ebp - 0x130], eax
+jae short loc_fffc7225 ; jae 0xfffc7225
+
+loc_fffc7223: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc7225: ; not directly referenced
+test cl, bl
+je short loc_fffc724f ; je 0xfffc724f
+mov eax, dword [ebp - 0x160]
+mov edx, dword [ebp - 0x15c]
+sub eax, dword [ebp - 0x110]
+sbb edx, dword [ebp - 0x10c]
+add eax, dword [ebp - 0x130]
+adc edx, dword [ebp - 0x12c]
+jmp short loc_fffc72aa ; jmp 0xfffc72aa
+
+loc_fffc724f: ; not directly referenced
+cmp dword [ebp - 0x12c], 0
+ja short loc_fffc7260 ; ja 0xfffc7260
+cmp dword [ebp - 0x130], edx
+jb short loc_fffc729e ; jb 0xfffc729e
+
+loc_fffc7260: ; not directly referenced
+mov eax, dword [ebp - 0x160]
+mov edx, dword [ebp - 0x15c]
+add eax, dword [ebp - 0x138]
+adc edx, dword [ebp - 0x134]
+sub eax, dword [ebp - 0x110]
+sbb edx, dword [ebp - 0x10c]
+cmp dword [ebp - 0x12c], edx
+ja short loc_fffc729e ; ja 0xfffc729e
+jb loc_fffc826e ; jb 0xfffc826e
+cmp dword [ebp - 0x130], eax
+jbe loc_fffc826e ; jbe 0xfffc826e
+
+loc_fffc729e: ; not directly referenced
+mov eax, dword [ebp - 0x130]
+mov edx, dword [ebp - 0x12c]
+
+loc_fffc72aa: ; not directly referenced
+push ecx
+push 6
+push edx
+push eax
+call dword [ebp - 0x58] ; ucall
+mov ebx, dword [ebp - 0x148]
+add esp, 0x10
+shr ebx, 6
+and ebx, 1
+cmp dword [ebp - 0x144], 1
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+jne short loc_fffc72f7 ; jne 0xfffc72f7
+push edx
+push 1
+push dword [ebp - 0x14c]
+push dword [ebp - 0x150]
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x164], eax
+mov dword [ebp - 0x168], edx
+
+loc_fffc72f7: ; not directly referenced
+test ebx, ebx
+je short loc_fffc7360 ; je 0xfffc7360
+cmp dword [ebp - 0x10c], edi
+ja loc_fffc826e ; ja 0xfffc826e
+jb short loc_fffc7315 ; jb 0xfffc7315
+cmp dword [ebp - 0x110], esi
+jae loc_fffc826e ; jae 0xfffc826e
+
+loc_fffc7315: ; not directly referenced
+push eax
+mov eax, dword [ebp - 0x148]
+shr eax, 7
+and eax, 7
+push eax
+push 0
+push 0x400000
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+cmp dword [ebp - 0x10c], edx
+jb loc_fffc74a0 ; jb 0xfffc74a0
+ja short loc_fffc734a ; ja 0xfffc734a
+cmp dword [ebp - 0x110], eax
+jb loc_fffc74a0 ; jb 0xfffc74a0
+
+loc_fffc734a: ; not directly referenced
+sub dword [ebp - 0x110], eax
+mov edi, 1
+sbb dword [ebp - 0x10c], edx
+jmp near loc_fffc74a2 ; jmp 0xfffc74a2
+
+loc_fffc7360: ; not directly referenced
+mov eax, dword [ebp - 0x168]
+cmp dword [ebp - 0x10c], eax
+ja loc_fffc744d ; ja 0xfffc744d
+jb short loc_fffc7386 ; jb 0xfffc7386
+mov eax, dword [ebp - 0x164]
+cmp dword [ebp - 0x110], eax
+jae loc_fffc744d ; jae 0xfffc744d
+
+loc_fffc7386: ; not directly referenced
+test dword [ebp - 0x154], 0x800000
+je loc_fffc7421 ; je 0xfffc7421
+mov eax, dword [ebp - 0x154]
+mov edx, 1
+xor edi, edi
+mov esi, eax
+and ax, 0x3fff
+shr esi, 0x15
+and esi, 3
+mov ecx, esi
+shl edx, cl
+xor ecx, ecx
+or eax, edx
+and eax, dword [ebp - 0x110]
+movzx eax, ax
+
+loc_fffc73c0: ; not directly referenced
+mov edx, eax
+sar edx, cl
+inc ecx
+xor edi, edx
+cmp ecx, 0xe
+jne short loc_fffc73c0 ; jne 0xfffc73c0
+push eax
+and edi, 1
+push esi
+push 0
+push 1
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push esi
+mov ebx, eax
+mov ecx, edx
+mov eax, dword [ebp - 0x110]
+mov edx, dword [ebp - 0x10c]
+not ebx
+not ecx
+and ebx, eax
+and ecx, edx
+xor edx, edx
+mov dword [ebp - 0x138], ecx
+mov ecx, ebx
+and ecx, 1
+push edx
+push ecx
+call dword [ebp - 0x5c] ; ucall
+mov ecx, dword [ebp - 0x138]
+add esp, 0x10
+or ebx, eax
+or ecx, edx
+mov dword [ebp - 0x110], ebx
+mov dword [ebp - 0x10c], ecx
+jmp short loc_fffc742a ; jmp 0xfffc742a
+
+loc_fffc7421: ; not directly referenced
+mov edi, dword [ebp - 0x110]
+and edi, 1
+
+loc_fffc742a: ; not directly referenced
+push eax
+push 1
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+jmp short loc_fffc74a2 ; jmp 0xfffc74a2
+
+loc_fffc744d: ; not directly referenced
+cmp dword [ebp - 0x10c], edi
+ja loc_fffc826e ; ja 0xfffc826e
+jb short loc_fffc7467 ; jb 0xfffc7467
+cmp dword [ebp - 0x110], esi
+jae loc_fffc826e ; jae 0xfffc826e
+
+loc_fffc7467: ; not directly referenced
+cmp dword [ebp - 0x144], 1
+jne short loc_fffc7488 ; jne 0xfffc7488
+mov eax, dword [ebp - 0x150]
+mov edx, dword [ebp - 0x14c]
+mov dword [ebp - 0x140], eax
+mov dword [ebp - 0x13c], edx
+
+loc_fffc7488: ; not directly referenced
+mov eax, dword [ebp - 0x140]
+mov edx, dword [ebp - 0x13c]
+sub dword [ebp - 0x110], eax
+sbb dword [ebp - 0x10c], edx
+
+loc_fffc74a0: ; not directly referenced
+xor edi, edi
+
+loc_fffc74a2: ; not directly referenced
+mov eax, dword [ebp - 0x148]
+movzx edi, di
+lea ecx, [edi + edi]
+shr eax, cl
+and eax, 1
+mov word [ebp - 0x158], ax
+movzx eax, ax
+mov ebx, dword [ebp + eax*4 - 0x104]
+mov dword [ebp - 0x16c], eax
+lea eax, [ebp - 0xc4]
+mov edx, ebx
+call fcn_fffc3bf5 ; call 0xfffc3bf5
+mov dword [ebp - 0x138], eax
+lea eax, [ebp - 0xc4]
+mov dword [ebp - 0x134], edx
+mov edx, ebx
+call fcn_fffc3bda ; call 0xfffc3bda
+mov ecx, ebx
+shr ecx, 0x16
+mov dword [ebp - 0x150], ecx
+and dword [ebp - 0x150], 1
+mov dword [ebp - 0x140], eax
+mov eax, ebx
+shr eax, 0x15
+mov edi, eax
+mov dword [ebp - 0x13c], edx
+mov edx, ebx
+and edi, 1
+shr edx, 0x1a
+mov dword [ebp - 0x164], edi
+mov edi, edx
+or eax, edx
+and edi, 1
+mov dword [ebp - 0x168], edi
+test al, 1
+je loc_fffc75fd ; je 0xfffc75fd
+push eax
+push 1
+push dword [ebp - 0x13c]
+push dword [ebp - 0x140]
+call dword [ebp - 0x5c] ; ucall
+add esp, 0x10
+cmp dword [ebp - 0x10c], edx
+ja short loc_fffc75b1 ; ja 0xfffc75b1
+jb short loc_fffc755f ; jb 0xfffc755f
+cmp dword [ebp - 0x110], eax
+jae short loc_fffc75b1 ; jae 0xfffc75b1
+
+loc_fffc755f: ; not directly referenced
+push eax
+push 9
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 1
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov esi, eax
+call dword [ebp - 0x58] ; ucall
+mov ecx, dword [ebp - 0x110]
+and esi, 1
+add esp, 0x10
+and ecx, 0x1ff
+and eax, 0xfffffe00
+or eax, ecx
+mov dword [ebp - 0x110], eax
+mov dword [ebp - 0x10c], edx
+jmp near loc_fffc766e ; jmp 0xfffc766e
+
+loc_fffc75b1: ; not directly referenced
+mov eax, dword [ebp - 0x140]
+mov edx, dword [ebp - 0x13c]
+add eax, dword [ebp - 0x138]
+adc edx, dword [ebp - 0x134]
+cmp dword [ebp - 0x10c], edx
+ja loc_fffc826e ; ja 0xfffc826e
+jb short loc_fffc75e3 ; jb 0xfffc75e3
+cmp dword [ebp - 0x110], eax
+jae loc_fffc826e ; jae 0xfffc826e
+
+loc_fffc75e3: ; not directly referenced
+mov eax, dword [ebp - 0x140]
+mov edx, dword [ebp - 0x13c]
+sub dword [ebp - 0x110], eax
+sbb dword [ebp - 0x10c], edx
+jmp short loc_fffc766c ; jmp 0xfffc766c
+
+loc_fffc75fd: ; not directly referenced
+mov eax, dword [ebp - 0x134]
+cmp dword [ebp - 0x10c], eax
+jb short loc_fffc766c ; jb 0xfffc766c
+ja short loc_fffc761b ; ja 0xfffc761b
+mov eax, dword [ebp - 0x138]
+cmp dword [ebp - 0x110], eax
+jb short loc_fffc766c ; jb 0xfffc766c
+
+loc_fffc761b: ; not directly referenced
+mov eax, dword [ebp - 0x140]
+mov edx, dword [ebp - 0x13c]
+add eax, dword [ebp - 0x138]
+adc edx, dword [ebp - 0x134]
+cmp dword [ebp - 0x10c], edx
+ja loc_fffc826e ; ja 0xfffc826e
+jb short loc_fffc764d ; jb 0xfffc764d
+cmp dword [ebp - 0x110], eax
+jae loc_fffc826e ; jae 0xfffc826e
+
+loc_fffc764d: ; not directly referenced
+mov eax, dword [ebp - 0x138]
+mov esi, 1
+mov edx, dword [ebp - 0x134]
+sub dword [ebp - 0x110], eax
+sbb dword [ebp - 0x10c], edx
+jmp short loc_fffc766e ; jmp 0xfffc766e
+
+loc_fffc766c: ; not directly referenced
+xor esi, esi
+
+loc_fffc766e: ; not directly referenced
+mov eax, dword [ebp - 0x148]
+shr eax, 0xa
+mov dword [ebp - 0x154], eax
+mov eax, ebx
+shr eax, 0x10
+and eax, 1
+mov word [ebp - 0x118], ax
+and dword [ebp - 0x154], 1
+xor word [ebp - 0x118], si
+test si, si
+je short loc_fffc76d9 ; je 0xfffc76d9
+mov edx, dword [ebp - 0x148]
+mov eax, ebx
+mov ecx, ebx
+shr eax, 0x12
+mov edi, dword [ebp - 0x140]
+mov dword [ebp - 0x138], eax
+lea eax, [ebp - 0xc4]
+and dword [ebp - 0x138], 1
+call fcn_fffb8408 ; call 0xfffb8408
+test ebx, 0x100000
+mov word [ebp - 0x116], ax
+jmp short loc_fffc7711 ; jmp 0xfffc7711
+
+loc_fffc76d9: ; not directly referenced
+mov edx, dword [ebp - 0x148]
+mov eax, ebx
+mov ecx, ebx
+shr eax, 0x11
+mov edi, dword [ebp - 0x138]
+mov dword [ebp - 0x138], eax
+lea eax, [ebp - 0xc4]
+and dword [ebp - 0x138], 1
+call fcn_fffb8396 ; call 0xfffb8396
+test ebx, 0x80000
+mov word [ebp - 0x116], ax
+
+loc_fffc7711: ; not directly referenced
+je short loc_fffc771a ; je 0xfffc771a
+mov esi, 0x10
+jmp short loc_fffc7729 ; jmp 0xfffc7729
+
+loc_fffc771a: ; not directly referenced
+cmp dword [ebp - 0x154], 1
+sbb esi, esi
+and esi, 0xffffffe8
+add esi, 0x20
+
+loc_fffc7729: ; not directly referenced
+mov eax, dword [ebp - 0x148]
+shr eax, 0xb
+mov dword [ebp - 0x140], eax
+and dword [ebp - 0x140], 1
+cmp dword [ebp - 0x144], 1
+jne short loc_fffc7762 ; jne 0xfffc7762
+mov eax, dword [ebp - 0x110]
+mov edx, eax
+shr dx, 1
+cmp dword [ebp - 0x140], 0
+cmovne eax, edx
+shl eax, 3
+jmp short loc_fffc779a ; jmp 0xfffc779a
+
+loc_fffc7762: ; not directly referenced
+push eax
+push 3
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x5c] ; ucall
+add esp, 0xc
+push 3
+push dword [ebp - 0x12c]
+push dword [ebp - 0x130]
+mov dword [ebp - 0x160], eax
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+or eax, dword [ebp - 0x160]
+
+loc_fffc779a: ; not directly referenced
+mov cl, byte [ebp - 0x116]
+mov edx, 1
+shl edx, cl
+lea ecx, [edx - 1]
+mov word [ebp - 0x160], cx
+and word [ebp - 0x160], ax
+mov eax, dword [ebp - 0x160]
+cmp dword [ebp - 0x140], 0
+mov word [ebp - 0x156], ax
+je loc_fffc7cd6 ; je 0xfffc7cd6
+push ecx
+push 8
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+mov ecx, dword [ebp - 0x110]
+xor edx, edx
+add esp, 0xc
+push 2
+and ecx, 1
+push edx
+push ecx
+mov dword [ebp - 0x114], eax
+call dword [ebp - 0x5c] ; ucall
+mov ecx, dword [ebp - 0x114]
+add esp, 0x10
+and ecx, 3
+mov word [ebp - 0x114], cx
+or word [ebp - 0x114], ax
+mov al, byte [ebp - 0x168]
+test byte [ebp - 0x138], al
+mov eax, dword [ebp - 0x58]
+je loc_fffc7a04 ; je 0xfffc7a04
+shr ebx, 0x1b
+and ebx, 7
+cmp si, 8
+jne loc_fffc794a ; jne 0xfffc794a
+push edx
+push 7
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0x10
+mov esi, eax
+and esi, 8
+or esi, dword [ebp - 0x114]
+cmp dword [ebp - 0x150], 0
+jne short loc_fffc786f ; jne 0xfffc786f
+mov word [ebp - 0x114], si
+jmp short loc_fffc78dd ; jmp 0xfffc78dd
+
+loc_fffc786f: ; not directly referenced
+push eax
+push 0xc
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 9
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov dword [ebp - 0x114], eax
+call dword [ebp - 0x58] ; ucall
+mov ecx, dword [ebp - 0x114]
+add esp, 0xc
+push 0xb
+push dword [ebp - 0x10c]
+and ecx, 3
+mov word [ebp - 0x114], cx
+and eax, 4
+push dword [ebp - 0x110]
+xor word [ebp - 0x114], ax
+xor word [ebp - 0x114], si
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 8
+xor word [ebp - 0x114], ax
+
+loc_fffc78dd: ; not directly referenced
+lea eax, [ebx + 0xf]
+movzx ebx, bx
+push ecx
+movzx eax, al
+push eax
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 0xb
+push dword [ebp - 0x10c]
+and eax, 1
+push dword [ebp - 0x110]
+mov word [ebp - 0x116], ax
+call dword [ebp - 0x58] ; ucall
+lea ecx, [ebx + 4]
+mov edx, 1
+shl edx, cl
+dec edx
+mov ecx, edx
+not ecx
+mov esi, eax
+and edx, eax
+shr si, 1
+mov eax, edi
+mov word [ebp - 0x128], si
+shr eax, 0xc
+and word [ebp - 0x128], cx
+or word [ebp - 0x128], dx
+jmp near loc_fffc79f4 ; jmp 0xfffc79f4
+
+loc_fffc794a: ; not directly referenced
+cmp dword [ebp - 0x150], 0
+je short loc_fffc798c ; je 0xfffc798c
+push edx
+push 0xb
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0xc
+push 8
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov esi, eax
+call dword [ebp - 0x58] ; ucall
+and esi, 3
+add esp, 0x10
+and eax, 4
+xor esi, eax
+xor word [ebp - 0x114], si
+
+loc_fffc798c: ; not directly referenced
+lea eax, [ebx + 0xe]
+movzx ebx, bx
+push esi
+movzx eax, al
+push eax
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 0xa
+push dword [ebp - 0x10c]
+and eax, 1
+push dword [ebp - 0x110]
+mov word [ebp - 0x116], ax
+call dword [ebp - 0x58] ; ucall
+lea ecx, [ebx + 4]
+mov edx, 1
+shl edx, cl
+dec edx
+mov ecx, edx
+not ecx
+mov esi, eax
+and edx, eax
+shr si, 1
+mov eax, edi
+mov word [ebp - 0x128], si
+shr eax, 0xb
+and word [ebp - 0x128], cx
+or word [ebp - 0x128], dx
+
+loc_fffc79f4: ; not directly referenced
+dec eax
+
+loc_fffc79f5: ; not directly referenced
+and word [ebp - 0x128], ax
+
+loc_fffc79fc: ; not directly referenced
+add esp, 0x10
+jmp near loc_fffc8107 ; jmp 0xfffc8107
+
+loc_fffc7a04: ; not directly referenced
+mov cl, byte [ebp - 0x164]
+test byte [ebp - 0x138], cl
+je loc_fffc7b71 ; je 0xfffc7b71
+push ecx
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0x10
+and eax, 1
+cmp si, 8
+mov word [ebp - 0x116], ax
+mov eax, dword [ebp - 0x58]
+jne loc_fffc7aed ; jne 0xfffc7aed
+push edx
+push 8
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0x10
+and eax, 8
+or word [ebp - 0x114], ax
+cmp dword [ebp - 0x150], 0
+je short loc_fffc7ad6 ; je 0xfffc7ad6
+push eax
+push 0xd
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov ebx, eax
+call dword [ebp - 0x58] ; ucall
+and ebx, 3
+mov esi, dword [ebp - 0x10c]
+add esp, 0xc
+push 0xd
+push esi
+and eax, 4
+xor ebx, eax
+xor word [ebp - 0x114], bx
+mov ebx, dword [ebp - 0x110]
+push ebx
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 0xf
+push esi
+push ebx
+and eax, 8
+xor word [ebp - 0x114], ax
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 1
+xor word [ebp - 0x116], ax
+
+loc_fffc7ad6: ; not directly referenced
+push esi
+push 0xc
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+shr edi, 0xc
+jmp short loc_fffc7b62 ; jmp 0xfffc7b62
+
+loc_fffc7aed: ; not directly referenced
+cmp dword [ebp - 0x150], 0
+je short loc_fffc7b4d ; je 0xfffc7b4d
+push ebx
+push 0xc
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0xc
+push 9
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov ebx, eax
+call dword [ebp - 0x58] ; ucall
+and ebx, 3
+add esp, 0xc
+push 0xe
+push dword [ebp - 0x10c]
+and eax, 4
+push dword [ebp - 0x110]
+xor ebx, eax
+xor word [ebp - 0x114], bx
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 1
+xor word [ebp - 0x116], ax
+
+loc_fffc7b4d: ; not directly referenced
+push ecx
+push 0xb
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+shr edi, 0xb
+
+loc_fffc7b62: ; not directly referenced
+lea edi, [edi - 1]
+mov word [ebp - 0x128], di
+jmp near loc_fffc79f5 ; jmp 0xfffc79f5
+
+loc_fffc7b71: ; not directly referenced
+mov edx, edi
+shr edx, 1
+test dword [ebp - 0x110], edx
+setne dl
+mov ecx, edx
+and ecx, dword [ebp - 0x138]
+mov word [ebp - 0x116], cx
+cmp si, 8
+jne loc_fffc7c68 ; jne 0xfffc7c68
+push edx
+push 7
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0x10
+mov ebx, eax
+and ebx, 8
+or ebx, dword [ebp - 0x114]
+cmp dword [ebp - 0x150], 0
+jne short loc_fffc7bc8 ; jne 0xfffc7bc8
+mov word [ebp - 0x114], bx
+jmp short loc_fffc7c2c ; jmp 0xfffc7c2c
+
+loc_fffc7bc8: ; not directly referenced
+push eax
+push 0xc
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 9
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov esi, eax
+call dword [ebp - 0x58] ; ucall
+and esi, 3
+mov word [ebp - 0x114], si
+add esp, 0xc
+push 0xb
+push dword [ebp - 0x10c]
+and eax, 4
+push dword [ebp - 0x110]
+xor word [ebp - 0x114], ax
+xor word [ebp - 0x114], bx
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 8
+xor word [ebp - 0x114], ax
+
+loc_fffc7c2c: ; not directly referenced
+push esi
+push 0xb
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+xor edx, edx
+add esp, 0xc
+mov ebx, eax
+mov eax, dword [ebp - 0x138]
+add eax, 0xb
+push eax
+push edx
+push edi
+call dword [ebp - 0x58] ; ucall
+dec eax
+mov word [ebp - 0x128], ax
+and word [ebp - 0x128], bx
+jmp near loc_fffc79fc ; jmp 0xfffc79fc
+
+loc_fffc7c68: ; not directly referenced
+cmp dword [ebp - 0x150], 0
+je short loc_fffc7caa ; je 0xfffc7caa
+push ebx
+push 0xb
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call eax
+add esp, 0xc
+push 8
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov ebx, eax
+call dword [ebp - 0x58] ; ucall
+and ebx, 3
+add esp, 0x10
+and eax, 4
+xor ebx, eax
+xor word [ebp - 0x114], bx
+
+loc_fffc7caa: ; not directly referenced
+push ecx
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+mov ecx, dword [ebp - 0x138]
+add ecx, 0xa
+shr edi, cl
+lea esi, [edi - 1]
+mov word [ebp - 0x128], si
+jmp near loc_fffc79f5 ; jmp 0xfffc79f5
+
+loc_fffc7cd6: ; not directly referenced
+cmp word [ebp - 0x116], 9
+jne short loc_fffc7d0d ; jne 0xfffc7d0d
+push edx
+push 1
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x5c] ; ucall
+mov ecx, dword [ebp - 0x144]
+add esp, 0x10
+dec ecx
+mov dword [ebp - 0x110], eax
+lea eax, [edi + edi]
+mov dword [ebp - 0x10c], edx
+jmp short loc_fffc7d43 ; jmp 0xfffc7d43
+
+loc_fffc7d0d: ; not directly referenced
+cmp word [ebp - 0x116], 0xb
+jne short loc_fffc7d46 ; jne 0xfffc7d46
+push eax
+push 1
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x110], eax
+mov eax, edi
+shr eax, 1
+cmp dword [ebp - 0x144], 1
+mov dword [ebp - 0x10c], edx
+
+loc_fffc7d43: ; not directly referenced
+cmove edi, eax
+
+loc_fffc7d46: ; not directly referenced
+mov al, byte [ebp - 0x168]
+test byte [ebp - 0x138], al
+je loc_fffc7e1d ; je 0xfffc7e1d
+shr ebx, 0x1b
+and ebx, 7
+push eax
+lea eax, [ebx + 0xe]
+movzx eax, al
+push eax
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 7
+push dword [ebp - 0x10c]
+and eax, 1
+push dword [ebp - 0x110]
+mov word [ebp - 0x116], ax
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+cmp dword [ebp - 0x150], 0
+mov word [ebp - 0x114], ax
+je short loc_fffc7dc8 ; je 0xfffc7dc8
+push eax
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+xor word [ebp - 0x114], ax
+
+loc_fffc7dc8: ; not directly referenced
+push eax
+movzx ebx, bx
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+lea ecx, [ebx + 4]
+mov edx, 1
+shl edx, cl
+lea ecx, [edx - 1]
+mov ebx, ecx
+add esp, 0x10
+not ebx
+mov edx, eax
+and eax, ecx
+shr dx, 1
+and edx, ebx
+or edx, eax
+mov al, byte [ebp - 0x144]
+lea ecx, [eax + 0xa]
+mov eax, edi
+shr eax, cl
+dec eax
+mov word [ebp - 0x128], ax
+and word [ebp - 0x128], dx
+jmp near loc_fffc8107 ; jmp 0xfffc8107
+
+loc_fffc7e1d: ; not directly referenced
+mov al, byte [ebp - 0x164]
+test byte [ebp - 0x138], al
+je loc_fffc7ef8 ; je 0xfffc7ef8
+cmp dword [ebp - 0x150], 0
+je short loc_fffc7e62 ; je 0xfffc7e62
+mov esi, dword [ebp - 0x10c]
+mov ebx, dword [ebp - 0x110]
+push eax
+push 4
+push esi
+push ebx
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x10c], esi
+and eax, 0x780
+xor eax, ebx
+mov dword [ebp - 0x110], eax
+
+loc_fffc7e62: ; not directly referenced
+mov esi, dword [ebp - 0x10c]
+mov ebx, dword [ebp - 0x110]
+push eax
+push 9
+push esi
+push ebx
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 8
+push esi
+push ebx
+mov dword [ebp - 0x110], ebx
+and eax, 1
+mov word [ebp - 0x116], ax
+mov dword [ebp - 0x10c], esi
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+push 7
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+mov ebx, eax
+call dword [ebp - 0x58] ; ucall
+add esp, 0xc
+and ebx, 4
+push 0xb
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+and eax, 3
+mov word [ebp - 0x114], ax
+or word [ebp - 0x114], bx
+call dword [ebp - 0x58] ; ucall
+mov cl, byte [ebp - 0x144]
+add esp, 0x10
+add ecx, 0xa
+shr edi, cl
+lea edi, [edi - 1]
+mov word [ebp - 0x128], di
+and word [ebp - 0x128], ax
+jmp near loc_fffc8107 ; jmp 0xfffc8107
+
+loc_fffc7ef8: ; not directly referenced
+cmp dword [ebp - 0x144], 1
+jne loc_fffc7f9a ; jne 0xfffc7f9a
+mov ecx, dword [ebp - 0x110]
+mov eax, edi
+shr eax, 1
+mov ebx, dword [ebp - 0x10c]
+push esi
+push 7
+test ecx, eax
+setne al
+and eax, dword [ebp - 0x138]
+push ebx
+push ecx
+mov word [ebp - 0x116], ax
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+cmp dword [ebp - 0x150], 0
+mov word [ebp - 0x114], ax
+je short loc_fffc7f64 ; je 0xfffc7f64
+push ebx
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+xor word [ebp - 0x114], ax
+
+loc_fffc7f64: ; not directly referenced
+push ecx
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+mov ecx, dword [ebp - 0x138]
+add esp, 0x10
+add ecx, 0xa
+shr edi, cl
+lea esi, [edi - 1]
+mov word [ebp - 0x128], si
+and word [ebp - 0x128], ax
+jmp near loc_fffc8114 ; jmp 0xfffc8114
+
+loc_fffc7f9a: ; not directly referenced
+cmp dword [ebp - 0x138], 0
+je loc_fffc8089 ; je 0xfffc8089
+mov al, byte [ebp - 0x154]
+and eax, 1
+cmp word [ebp - 0x116], 0xb
+sete dl
+test dl, al
+je short loc_fffc7fdf ; je 0xfffc7fdf
+cmp edi, 0x4000000
+je short loc_fffc7fda ; je 0xfffc7fda
+cmp edi, 0x8000000
+jne loc_fffc8257 ; jne 0xfffc8257
+mov edi, 0x4000000
+jmp short loc_fffc7fdf ; jmp 0xfffc7fdf
+
+loc_fffc7fda: ; not directly referenced
+mov edi, 0x2000000
+
+loc_fffc7fdf: ; not directly referenced
+cmp word [ebp - 0x116], 9
+sete dl
+test dl, al
+je short loc_fffc7ffb ; je 0xfffc7ffb
+cmp edi, 0x1000000
+je short loc_fffc805d ; je 0xfffc805d
+jmp near loc_fffc8257 ; jmp 0xfffc8257
+
+loc_fffc7ffb: ; not directly referenced
+cmp edi, 0x2000000
+je short loc_fffc805d ; je 0xfffc805d
+ja short loc_fffc8025 ; ja 0xfffc8025
+cmp edi, 0x800000
+je short loc_fffc8045 ; je 0xfffc8045
+cmp edi, 0x1000000
+jne loc_fffc8257 ; jne 0xfffc8257
+mov eax, 0x17
+mov esi, 0x7ffc00
+jmp short loc_fffc8067 ; jmp 0xfffc8067
+
+loc_fffc8025: ; not directly referenced
+cmp edi, 0x4000000
+je short loc_fffc8051 ; je 0xfffc8051
+cmp edi, 0x8000000
+jne loc_fffc8257 ; jne 0xfffc8257
+mov eax, 0x1a
+mov esi, 0x3fffc00
+jmp short loc_fffc8067 ; jmp 0xfffc8067
+
+loc_fffc8045: ; not directly referenced
+mov eax, 0x16
+mov esi, 0x3ffc00
+jmp short loc_fffc8067 ; jmp 0xfffc8067
+
+loc_fffc8051: ; not directly referenced
+mov eax, 0x19
+mov esi, 0x1fffc00
+jmp short loc_fffc8067 ; jmp 0xfffc8067
+
+loc_fffc805d: ; not directly referenced
+mov eax, 0x18
+mov esi, 0xfffc00
+
+loc_fffc8067: ; not directly referenced
+push edx
+xor ebx, ebx
+push eax
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 1
+mov word [ebp - 0x116], ax
+jmp short loc_fffc809a ; jmp 0xfffc809a
+
+loc_fffc8089: ; not directly referenced
+mov word [ebp - 0x116], 0
+mov esi, 0xfffffc00
+or ebx, 0xffffffff
+
+loc_fffc809a: ; not directly referenced
+push eax
+push 7
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+cmp dword [ebp - 0x150], 0
+mov word [ebp - 0x114], ax
+je short loc_fffc80e1 ; je 0xfffc80e1
+push edi
+push 0xa
+push dword [ebp - 0x10c]
+push dword [ebp - 0x110]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+and eax, 7
+xor word [ebp - 0x114], ax
+
+loc_fffc80e1: ; not directly referenced
+mov edi, dword [ebp - 0x10c]
+mov ecx, esi
+mov esi, dword [ebp - 0x110]
+and edi, ebx
+push ebx
+and ecx, esi
+push 0xa
+push edi
+push ecx
+call dword [ebp - 0x58] ; ucall
+mov word [ebp - 0x128], ax
+jmp near loc_fffc8252 ; jmp 0xfffc8252
+
+loc_fffc8107: ; not directly referenced
+cmp dword [ebp - 0x144], 1
+jne loc_fffc8262 ; jne 0xfffc8262
+
+loc_fffc8114: ; not directly referenced
+movzx esi, word [ebp - 0x116]
+xor ebx, ebx
+movzx edi, word [ebp - 0x118]
+
+loc_fffc8124: ; not directly referenced
+push ecx
+push 0x3f
+push dword [ebp + ebx*2 - 0xe4]
+push dword [ebp + ebx*2 - 0xe8]
+call dword [ebp - 0x58] ; ucall
+add esp, 0x10
+test al, 1
+je short loc_fffc8181 ; je 0xfffc8181
+sub esp, 0xc
+movzx eax, word [ebp - 0x160]
+mov ecx, esi
+push dword [ebp - 0x148]
+mov edx, edi
+push dword [ebp + ebx - 0xf8]
+push eax
+movzx eax, word [ebp - 0x128]
+push eax
+movzx eax, word [ebp - 0x114]
+push eax
+mov eax, dword [ebp - 0x16c]
+call fcn_fffc455b ; call 0xfffc455b
+add esp, 0x20
+test eax, eax
+jne loc_fffc826e ; jne 0xfffc826e
+
+loc_fffc8181: ; not directly referenced
+add ebx, 4
+cmp ebx, 0x10
+jne short loc_fffc8124 ; jne 0xfffc8124
+xor bl, bl
+
+loc_fffc818b: ; not directly referenced
+push edx
+mov ecx, dword [ebp - 0x12c]
+push dword [ebp + ebx*8 - 0xe4]
+push dword [ebp + ebx*8 - 0xe8]
+mov edx, dword [ebp - 0x130]
+lea eax, [ebp - 0xc4]
+push 0
+call fcn_fffb726f ; call 0xfffb726f
+add esp, 0x10
+test eax, eax
+je short loc_fffc822c ; je 0xfffc822c
+mov eax, dword [ebp + ebx*4 - 0xf8]
+mov edx, eax
+shr edx, 0x1d
+mov esi, edx
+mov edx, eax
+and esi, 1
+shr edx, 0xc
+cmp dword [ebp - 0x140], 0
+mov word [ebp - 0x158], si
+jne loc_fffc82c1 ; jne 0xfffc82c1
+mov edi, edx
+mov edx, eax
+and edi, 1
+shr edx, 0xb
+mov word [ebp - 0x118], di
+mov esi, edx
+mov edi, eax
+and esi, 1
+shr edi, 8
+mov word [ebp - 0x116], si
+mov esi, edi
+and esi, 7
+mov word [ebp - 0x114], si
+
+loc_fffc8212: ; not directly referenced
+mov edi, eax
+movzx eax, al
+shr edi, 0xd
+shl eax, 3
+mov dword [ebp - 0x128], edi
+mov word [ebp - 0x156], ax
+jmp short loc_fffc8236 ; jmp 0xfffc8236
+
+loc_fffc822c: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffc818b ; jne 0xfffc818b
+
+loc_fffc8236: ; not directly referenced
+push eax
+push 3
+push dword [ebp - 0x12c]
+push dword [ebp - 0x130]
+call dword [ebp - 0x58] ; ucall
+and eax, 7
+or word [ebp - 0x156], ax
+
+loc_fffc8252: ; not directly referenced
+add esp, 0x10
+jmp short loc_fffc8262 ; jmp 0xfffc8262
+
+loc_fffc8257: ; not directly referenced
+mov word [ebp - 0x116], 0
+jmp short loc_fffc8278 ; jmp 0xfffc8278
+
+loc_fffc8262: ; not directly referenced
+mov dword [ebp - 0x140], 1
+jmp short loc_fffc8278 ; jmp 0xfffc8278
+
+loc_fffc826e: ; not directly referenced
+mov dword [ebp - 0x140], 0
+
+loc_fffc8278: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov ecx, dword [ebp - 0x128]
+mov si, word [ebp - 0x156]
+mov byte [eax], 0
+mov edi, eax
+mov al, byte [ebp - 0x158]
+mov word [edi + 7], cx
+mov word [edi + 5], si
+mov byte [edi + 1], al
+mov al, byte [ebp - 0x118]
+mov byte [edi + 2], al
+mov al, byte [ebp - 0x116]
+mov byte [edi + 3], al
+mov al, byte [ebp - 0x114]
+mov byte [edi + 4], al
+mov al, byte [ebp - 0x140]
+jmp short loc_fffc82ec ; jmp 0xfffc82ec
+
+loc_fffc82c1: ; not directly referenced
+mov esi, edx
+mov edi, eax
+and esi, 1
+shr edi, 8
+mov word [ebp - 0x116], si
+mov esi, edi
+and esi, 0xf
+mov word [ebp - 0x114], si
+mov word [ebp - 0x118], 0
+jmp near loc_fffc8212 ; jmp 0xfffc8212
+
+loc_fffc82ec: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc82f4: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x4c
+mov eax, dword [ebp + 8]
+call fcn_fffb0e8a ; call 0xfffb0e8a
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+call fcn_fffa6828 ; call 0xfffa6828
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+mov ecx, 0xf
+mov edx, 0x4d94
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 3
+jne loc_fffc849f ; jne 0xfffc849f
+mov ecx, 0xf
+mov edx, 0x4d90
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 0x5030
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5030
+or eax, 0x400000
+mov ecx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffc839d ; jne 0xfffc839d
+movzx ecx, byte [eax + 0x47e8]
+mov edx, 0x4192
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc839d: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffc83ba ; jne 0xfffc83ba
+movzx ecx, byte [eax + 0x5bab]
+mov edx, 0x4592
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc83ba: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0xbb8
+xor ebx, ebx
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+lea edi, [eax + 0x3756]
+
+loc_fffc83d2: ; not directly referenced
+cmp dword [edi], 2
+je short loc_fffc83f4 ; je 0xfffc83f4
+
+loc_fffc83d7: ; not directly referenced
+inc ebx
+add edi, 0x13c3
+cmp ebx, 2
+jne short loc_fffc83d2 ; jne 0xfffc83d2
+mov eax, dword [ebp + 8]
+mov edx, 0x96
+xor esi, esi
+call fcn_fffa834b ; call 0xfffa834b
+jmp short loc_fffc8471 ; jmp 0xfffc8471
+
+loc_fffc83f4: ; not directly referenced
+mov dword [ebp - 0x30], 0
+
+loc_fffc83fb: ; not directly referenced
+mov cl, byte [ebp - 0x30]
+mov eax, 1
+shl eax, cl
+test byte [edi + 0xc4], al
+jne short loc_fffc8418 ; jne 0xfffc8418
+
+loc_fffc840d: ; not directly referenced
+inc dword [ebp - 0x30]
+cmp dword [ebp - 0x30], 4
+jne short loc_fffc83fb ; jne 0xfffc83fb
+jmp short loc_fffc83d7 ; jmp 0xfffc83d7
+
+loc_fffc8418: ; not directly referenced
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x247c], 0
+je short loc_fffc8451 ; je 0xfffc8451
+push 0
+mov ecx, eax
+mov eax, dword [ebp + 8]
+lea esi, [ebp - 0x24]
+mov edx, ebx
+push esi
+push 0
+push 7
+mov dword [ebp - 0x24], 0x8600
+call fcn_fffafb06 ; call 0xfffafb06
+mov eax, dword [ebp + 8]
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+add esp, 0x10
+
+loc_fffc8451: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, ebx
+push ecx
+mov ecx, dword [ebp - 0x30]
+push 1
+push 0xfc
+push 0x3f
+call fcn_fffaa505 ; call 0xfffaa505
+add esp, 0x10
+mov esi, eax
+test eax, eax
+je short loc_fffc840d ; je 0xfffc840d
+
+loc_fffc8471: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x247c], 0
+je short loc_fffc848b ; je 0xfffc848b
+sub esp, 0xc
+push eax
+call fcn_fffb1d2f ; call 0xfffb1d2f
+add esp, 0x10
+mov esi, eax
+
+loc_fffc848b: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x4d94
+call fcn_fffaeb7c ; call 0xfffaeb7c
+jmp near loc_fffc9120 ; jmp 0xfffc9120
+
+loc_fffc849f: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, dword [eax + 0x1887]
+mov esi, dword [eax + 0x2443]
+cmp edx, 0x306d0
+sete al
+cmp edx, 0x40650
+sete dl
+or eax, edx
+movzx eax, al
+mov dword [ebp - 0x34], eax
+mov edi, eax
+mov eax, dword [ebp + 8]
+mov ebx, dword [eax + 0x18c1]
+push 0xf0
+push 0
+push 0x1f
+push 0
+call dword [esi + 0x4c] ; ucall
+add ebx, eax
+mov dword [esp], ebx
+xor ebx, ebx
+call dword [esi + 0x20] ; ucall
+add esp, 0x10
+mov dword [ebp - 0x30], eax
+and dword [ebp - 0x30], 0xfffffffe
+test edi, edi
+je short loc_fffc851b ; je 0xfffc851b
+mov eax, dword [ebp - 0x30]
+sub esp, 0xc
+lea edi, [eax + 0x333c]
+push edi
+call dword [esi + 0x20] ; ucall
+mov ebx, eax
+pop eax
+or ebx, 0x4000000
+pop edx
+push ebx
+push edi
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+
+loc_fffc851b: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, 0x102
+mov edx, 0x5030
+mov edi, 0x102
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov ecx, 0xf
+mov edx, 0x4d90
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x34], 0
+je short loc_fffc8564 ; je 0xfffc8564
+push eax
+and ebx, 0xfbffffff
+push eax
+mov eax, dword [ebp - 0x30]
+push ebx
+add eax, 0x333c
+push eax
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+jmp short loc_fffc8585 ; jmp 0xfffc8585
+
+loc_fffc8564: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x5030
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5030
+mov edi, eax
+mov eax, dword [ebp + 8]
+and edi, 0xfffffffd
+mov ecx, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc8585: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0xc8
+mov ecx, dword [ebp + 8]
+mov eax, dword [eax + 0x18a7]
+mov ecx, dword [ecx + eax*4 + 0x3735]
+test ecx, ecx
+je loc_fffc8636 ; je 0xfffc8636
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x2479], 0
+jne loc_fffc8636 ; jne 0xfffc8636
+mov edx, dword [eax + 0x2443]
+mov dword [ebp - 0x3c], ecx
+push ecx
+movzx eax, byte [eax + 0x187f]
+mov dword [ebp - 0x38], edx
+push eax
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x18b0]
+push eax
+mov eax, dword [ebp + 8]
+push dword [eax + 0x18c1]
+call dword [edx + 0x88] ; ucall
+mov ecx, dword [ebp - 0x3c]
+add esp, 0x10
+cmp ecx, eax
+je short loc_fffc861a ; je 0xfffc861a
+mov eax, dword [ebp + 8]
+push ecx
+mov edx, dword [ebp - 0x38]
+movzx eax, byte [eax + 0x187f]
+push eax
+mov eax, dword [ebp + 8]
+movzx eax, byte [eax + 0x18b0]
+push eax
+mov eax, dword [ebp + 8]
+push dword [eax + 0x18c1]
+call dword [edx + 0x8c] ; ucall
+add esp, 0x10
+
+loc_fffc861a: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x18ee]
+mov dword [ebp - 0x38], eax
+lea edx, [eax + 0xc8]
+mov eax, dword [ebp + 8]
+mov byte [eax + 0x2479], 1
+
+loc_fffc8636: ; not directly referenced
+imul edx, edx, 0xf
+mov eax, dword [ebp + 8]
+call fcn_fffa834b ; call 0xfffa834b
+cmp dword [ebp - 0x34], 0
+je short loc_fffc8661 ; je 0xfffc8661
+push eax
+or ebx, 0x4000000
+push eax
+mov eax, dword [ebp - 0x30]
+push ebx
+add eax, 0x333c
+push eax
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+jmp short loc_fffc8673 ; jmp 0xfffc8673
+
+loc_fffc8661: ; not directly referenced
+mov eax, dword [ebp + 8]
+or edi, 2
+mov edx, 0x5030
+mov ecx, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc8673: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 0x1d4c
+or edi, 0x400000
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+mov ecx, edi
+mov edx, 0x5030
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x3756], 2
+jne short loc_fffc86bf ; jne 0xfffc86bf
+movzx ecx, byte [eax + 0x381a]
+mov edx, 0x4192
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc86bf: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x4b19], 2
+jne short loc_fffc86dc ; jne 0xfffc86dc
+movzx ecx, byte [eax + 0x4bdd]
+mov edx, 0x4592
+call fcn_fffae566 ; call 0xfffae566
+
+loc_fffc86dc: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 8]
+cmp dword [eax + 0x2480], 2
+jne loc_fffc8ce3 ; jne 0xfffc8ce3
+mov edi, dword [eax + 0x36d7]
+xor eax, eax
+cmp edi, 0x640
+jbe short loc_fffc8714 ; jbe 0xfffc8714
+cmp edi, 0x961
+sbb eax, eax
+add eax, 2
+
+loc_fffc8714: ; not directly referenced
+mov esi, dword [ebp + 8]
+cmp al, 3
+mov bl, 3
+cmovbe ebx, eax
+xor eax, eax
+and ebx, 3
+shl ebx, 9
+add esi, 0x374e
+mov byte [ebp - 0x30], 0
+mov dword [ebp - 0x34], esi
+
+loc_fffc8733: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x30], 1
+setbe dl
+test cl, dl
+je loc_fffc87f6 ; je 0xfffc87f6
+movzx edx, byte [ebp - 0x30]
+xor eax, eax
+mov ecx, dword [ebp + 8]
+imul esi, edx, 0x13c3
+add ecx, esi
+cmp dword [ecx + 0x3756], 2
+jne loc_fffc87ee ; jne 0xfffc87ee
+mov eax, dword [ebp - 0x34]
+lea eax, [eax + esi + 8]
+test byte [ecx + 0x381a], 1
+je short loc_fffc879e ; je 0xfffc879e
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x247b], 0
+jne short loc_fffc8795 ; jne 0xfffc8795
+mov word [eax + 0x1271], bx
+mov word [eax + 0x1289], bx
+
+loc_fffc878f: ; not directly referenced
+mov word [ebp - 0x24], bx
+jmp short loc_fffc879e ; jmp 0xfffc879e
+
+loc_fffc8795: ; not directly referenced
+mov bx, word [eax + 0x1271]
+jmp short loc_fffc878f ; jmp 0xfffc878f
+
+loc_fffc879e: ; not directly referenced
+imul ecx, edx, 0x13c3
+mov esi, dword [ebp + 8]
+test byte [esi + ecx + 0x381a], 4
+je short loc_fffc87d7 ; je 0xfffc87d7
+cmp byte [esi + 0x247b], 0
+jne short loc_fffc87ce ; jne 0xfffc87ce
+mov word [eax + 0x1399], bx
+mov word [eax + 0x13b1], bx
+
+loc_fffc87c8: ; not directly referenced
+mov word [ebp - 0x22], bx
+jmp short loc_fffc87d7 ; jmp 0xfffc87d7
+
+loc_fffc87ce: ; not directly referenced
+mov bx, word [eax + 0x1399]
+jmp short loc_fffc87c8 ; jmp 0xfffc87c8
+
+loc_fffc87d7: ; not directly referenced
+sub esp, 0xc
+mov ecx, 3
+lea eax, [ebp - 0x24]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+
+loc_fffc87ee: ; not directly referenced
+inc byte [ebp - 0x30]
+jmp near loc_fffc8733 ; jmp 0xfffc8733
+
+loc_fffc87f6: ; not directly referenced
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+mov bl, 4
+movzx eax, byte [eax + 0x247d]
+mov dword [ebp - 0x34], eax
+cmp edi, 0x535
+jbe short loc_fffc882c ; jbe 0xfffc882c
+mov bl, 5
+cmp edi, 0x74b
+jbe short loc_fffc882c ; jbe 0xfffc882c
+cmp edi, 0x961
+sbb ebx, ebx
+add ebx, 7
+
+loc_fffc882c: ; not directly referenced
+sub ebx, 4
+mov al, 3
+cmp bl, 3
+cmova ebx, eax
+mov eax, dword [ebp + 8]
+xor esi, esi
+and ebx, 7
+shl ebx, 0xa
+or bl, 0x8d
+mov byte [ebp - 0x30], 0
+lea edi, [eax + 0x374e]
+
+loc_fffc884f: ; not directly referenced
+test esi, esi
+sete dl
+cmp byte [ebp - 0x30], 1
+setbe al
+test dl, al
+je loc_fffc891d ; je 0xfffc891d
+movzx edx, byte [ebp - 0x30]
+xor esi, esi
+mov ecx, dword [ebp + 8]
+imul eax, edx, 0x13c3
+add ecx, eax
+cmp dword [ecx + 0x3756], 2
+jne loc_fffc8915 ; jne 0xfffc8915
+lea eax, [edi + eax + 8]
+test byte [ecx + 0x381a], 1
+je short loc_fffc88bd ; je 0xfffc88bd
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x247b], 0
+je short loc_fffc88a7 ; je 0xfffc88a7
+
+loc_fffc889a: ; not directly referenced
+mov bx, word [eax + 0x1277]
+
+loc_fffc88a1: ; not directly referenced
+mov word [ebp - 0x24], bx
+jmp short loc_fffc88bd ; jmp 0xfffc88bd
+
+loc_fffc88a7: ; not directly referenced
+cmp dword [ebp - 0x34], 0
+jne short loc_fffc889a ; jne 0xfffc889a
+mov word [eax + 0x1277], bx
+mov word [eax + 0x128f], bx
+jmp short loc_fffc88a1 ; jmp 0xfffc88a1
+
+loc_fffc88bd: ; not directly referenced
+imul ecx, edx, 0x13c3
+mov esi, dword [ebp + 8]
+test byte [esi + ecx + 0x381a], 4
+je short loc_fffc88fc ; je 0xfffc88fc
+cmp byte [esi + 0x247b], 0
+je short loc_fffc88e6 ; je 0xfffc88e6
+
+loc_fffc88d9: ; not directly referenced
+mov bx, word [eax + 0x139f]
+
+loc_fffc88e0: ; not directly referenced
+mov word [ebp - 0x22], bx
+jmp short loc_fffc88fc ; jmp 0xfffc88fc
+
+loc_fffc88e6: ; not directly referenced
+cmp dword [ebp - 0x34], 0
+jne short loc_fffc88d9 ; jne 0xfffc88d9
+mov word [eax + 0x139f], bx
+mov word [eax + 0x13b7], bx
+jmp short loc_fffc88e0 ; jmp 0xfffc88e0
+
+loc_fffc88fc: ; not directly referenced
+sub esp, 0xc
+mov ecx, 6
+lea eax, [ebp - 0x24]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+mov esi, eax
+
+loc_fffc8915: ; not directly referenced
+inc byte [ebp - 0x30]
+jmp near loc_fffc884f ; jmp 0xfffc884f
+
+loc_fffc891d: ; not directly referenced
+mov dword [ebp - 0x38], esi
+test esi, esi
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+mov ebx, 0x20
+mov byte [ebp - 0x30], 0
+add eax, 0x374e
+mov dword [ebp - 0x40], eax
+
+loc_fffc893c: ; not directly referenced
+test esi, esi
+sete dl
+cmp byte [ebp - 0x30], 1
+setbe al
+test dl, al
+je loc_fffc8a13 ; je 0xfffc8a13
+movzx eax, byte [ebp - 0x30]
+imul edx, eax, 0x13c3
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp + 8]
+add eax, edx
+cmp dword [eax + 0x3756], 2
+jne loc_fffc8a08 ; jne 0xfffc8a08
+mov edi, dword [ebp - 0x40]
+mov dword [ebp - 0x3c], eax
+lea esi, [edi + edx + 0x127d]
+xor edi, edi
+
+loc_fffc897e: ; not directly referenced
+mov ecx, edi
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp - 0x3c]
+test byte [ecx + 0x381a], al
+je short loc_fffc89dc ; je 0xfffc89dc
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x247b], 0
+je short loc_fffc89a3 ; je 0xfffc89a3
+mov bx, word [esi]
+jmp short loc_fffc89d7 ; jmp 0xfffc89d7
+
+loc_fffc89a3: ; not directly referenced
+mov edx, dword [ebp - 0x34]
+mov eax, dword [ebp + 8]
+call fcn_fffa6c42 ; call 0xfffa6c42
+test eax, eax
+je loc_fffc8ec5 ; je 0xfffc8ec5
+movzx ecx, byte [eax + 2]
+sub esp, 0xc
+mov edx, dword [ebp + 8]
+lea eax, [ebp - 0x2a]
+push ebx
+call fcn_fffa6cab ; call 0xfffa6cab
+mov bx, word [ebp - 0x2a]
+add esp, 0x10
+mov word [esi], bx
+mov word [esi + 0x18], bx
+
+loc_fffc89d7: ; not directly referenced
+mov word [ebp + edi - 0x24], bx
+
+loc_fffc89dc: ; not directly referenced
+add edi, 2
+add esi, 0x128
+cmp edi, 4
+jne short loc_fffc897e ; jne 0xfffc897e
+sub esp, 0xc
+mov edx, dword [ebp - 0x34]
+mov ecx, 5
+lea eax, [ebp - 0x24]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+mov esi, eax
+jmp short loc_fffc8a0b ; jmp 0xfffc8a0b
+
+loc_fffc8a08: ; not directly referenced
+mov esi, dword [ebp - 0x38]
+
+loc_fffc8a0b: ; not directly referenced
+inc byte [ebp - 0x30]
+jmp near loc_fffc893c ; jmp 0xfffc893c
+
+loc_fffc8a13: ; not directly referenced
+test esi, esi
+jne loc_fffc9116 ; jne 0xfffc9116
+mov edi, dword [ebp + 8]
+xor ebx, ebx
+xor eax, eax
+mov byte [ebp - 0x30], 0
+add edi, 0x374e
+
+loc_fffc8a2c: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x30], 1
+setbe dl
+test cl, dl
+je loc_fffc8aec ; je 0xfffc8aec
+movzx edx, byte [ebp - 0x30]
+xor eax, eax
+mov ecx, dword [ebp + 8]
+imul esi, edx, 0x13c3
+add ecx, esi
+cmp dword [ecx + 0x3756], 2
+jne loc_fffc8ae4 ; jne 0xfffc8ae4
+lea eax, [edi + esi + 8]
+test byte [ecx + 0x381a], 1
+je short loc_fffc8a94 ; je 0xfffc8a94
+mov esi, dword [ebp + 8]
+cmp byte [esi + 0x247b], 0
+jne short loc_fffc8a8b ; jne 0xfffc8a8b
+mov word [eax + 0x1273], bx
+mov word [eax + 0x128b], bx
+
+loc_fffc8a85: ; not directly referenced
+mov word [ebp - 0x24], bx
+jmp short loc_fffc8a94 ; jmp 0xfffc8a94
+
+loc_fffc8a8b: ; not directly referenced
+mov bx, word [eax + 0x1273]
+jmp short loc_fffc8a85 ; jmp 0xfffc8a85
+
+loc_fffc8a94: ; not directly referenced
+imul ecx, edx, 0x13c3
+mov esi, dword [ebp + 8]
+test byte [esi + ecx + 0x381a], 4
+je short loc_fffc8acd ; je 0xfffc8acd
+cmp byte [esi + 0x247b], 0
+jne short loc_fffc8ac4 ; jne 0xfffc8ac4
+mov word [eax + 0x139b], bx
+mov word [eax + 0x13b3], bx
+
+loc_fffc8abe: ; not directly referenced
+mov word [ebp - 0x22], bx
+jmp short loc_fffc8acd ; jmp 0xfffc8acd
+
+loc_fffc8ac4: ; not directly referenced
+mov bx, word [eax + 0x139b]
+jmp short loc_fffc8abe ; jmp 0xfffc8abe
+
+loc_fffc8acd: ; not directly referenced
+sub esp, 0xc
+mov ecx, 4
+lea eax, [ebp - 0x24]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+
+loc_fffc8ae4: ; not directly referenced
+inc byte [ebp - 0x30]
+jmp near loc_fffc8a2c ; jmp 0xfffc8a2c
+
+loc_fffc8aec: ; not directly referenced
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0x30], 0
+add eax, 0x374e
+mov dword [ebp - 0x48], eax
+mov eax, dword [ebp + 8]
+imul eax, dword [eax + 0x18a7], 0x2e
+mov dword [ebp - 0x4c], eax
+
+loc_fffc8b12: ; not directly referenced
+test esi, esi
+sete dl
+cmp byte [ebp - 0x30], 1
+setbe al
+test dl, al
+je loc_fffc8c8a ; je 0xfffc8c8a
+movzx eax, byte [ebp - 0x30]
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x38], eax
+imul eax, eax, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffc8c80 ; jne 0xfffc8c80
+mov edi, dword [ebp - 0x48]
+lea edi, [edi + eax + 8]
+mov eax, dword [ebp - 0x4c]
+movzx eax, word [edi + eax + 0xc]
+cmp ax, 0xc
+ja short loc_fffc8b5e ; ja 0xfffc8b5e
+sub eax, 9
+jmp short loc_fffc8b6c ; jmp 0xfffc8b6c
+
+loc_fffc8b5e: ; not directly referenced
+sub eax, 0xe
+mov ecx, 2
+cdq
+idiv ecx
+or eax, 4
+
+loc_fffc8b6c: ; not directly referenced
+and eax, 7
+lea ebx, [eax*8]
+imul eax, dword [ebp - 0x38], 0x13c3
+add eax, dword [ebp + 8]
+mov dword [ebp - 0x3c], 0
+mov dword [ebp - 0x40], eax
+movzx eax, byte [ebp - 0x30]
+mov dword [ebp - 0x44], eax
+
+loc_fffc8b91: ; not directly referenced
+mov esi, dword [ebp - 0x3c]
+mov eax, esi
+mov ecx, esi
+mov byte [ebp - 0x34], al
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp - 0x40]
+test byte [ecx + 0x381a], al
+je loc_fffc8c54 ; je 0xfffc8c54
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x247b], 0
+je short loc_fffc8bd4 ; je 0xfffc8bd4
+mov eax, esi
+shr al, 1
+movzx eax, al
+imul eax, eax, 0x128
+mov bx, word [edi + eax + 0x126f]
+jmp short loc_fffc8c47 ; jmp 0xfffc8c47
+
+loc_fffc8bd4: ; not directly referenced
+mov edx, dword [ebp - 0x38]
+mov eax, dword [ebp + 8]
+call fcn_fffa6c42 ; call 0xfffa6c42
+test eax, eax
+je loc_fffc8ec5 ; je 0xfffc8ec5
+mov dl, byte [eax]
+cmp dl, 0x78
+je short loc_fffc8c08 ; je 0xfffc8c08
+ja short loc_fffc8bf7 ; ja 0xfffc8bf7
+mov al, 4
+cmp dl, 0x50
+jmp short loc_fffc8c02 ; jmp 0xfffc8c02
+
+loc_fffc8bf7: ; not directly referenced
+mov al, 2
+cmp dl, 0xf0
+je short loc_fffc8c0a ; je 0xfffc8c0a
+mov al, 3
+inc dl
+
+loc_fffc8c02: ; not directly referenced
+je short loc_fffc8c0a ; je 0xfffc8c0a
+xor eax, eax
+jmp short loc_fffc8c0a ; jmp 0xfffc8c0a
+
+loc_fffc8c08: ; not directly referenced
+mov al, 1
+
+loc_fffc8c0a: ; not directly referenced
+shl eax, 9
+and bh, 0xf1
+mov edx, dword [ebp - 0x44]
+or ebx, eax
+mov al, byte [ebp - 0x34]
+sub esp, 0xc
+shr al, 1
+movzx esi, al
+movzx eax, bx
+mov ecx, esi
+imul esi, esi, 0x128
+push eax
+mov eax, dword [ebp + 8]
+add esi, edi
+call fcn_fffa8733 ; call 0xfffa8733
+add esp, 0x10
+mov word [esi + 0x126f], bx
+mov word [esi + 0x1287], bx
+
+loc_fffc8c47: ; not directly referenced
+mov al, byte [ebp - 0x34]
+shr al, 1
+movzx eax, al
+mov word [ebp + eax*2 - 0x24], bx
+
+loc_fffc8c54: ; not directly referenced
+add dword [ebp - 0x3c], 2
+cmp dword [ebp - 0x3c], 4
+jne loc_fffc8b91 ; jne 0xfffc8b91
+sub esp, 0xc
+mov edx, dword [ebp - 0x38]
+mov ecx, 2
+lea eax, [ebp - 0x24]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+mov esi, eax
+jmp short loc_fffc8c82 ; jmp 0xfffc8c82
+
+loc_fffc8c80: ; not directly referenced
+xor esi, esi
+
+loc_fffc8c82: ; not directly referenced
+inc byte [ebp - 0x30]
+jmp near loc_fffc8b12 ; jmp 0xfffc8b12
+
+loc_fffc8c8a: ; not directly referenced
+test esi, esi
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+call fcn_fffac67c ; call 0xfffac67c
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+mov edx, 1
+call fcn_fffb14e1 ; call 0xfffb14e1
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 3
+call fcn_fffb1bed ; call 0xfffb1bed
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+mov byte [eax + 0x247d], 1
+jmp near loc_fffc9116 ; jmp 0xfffc9116
+
+loc_fffc8ce3: ; not directly referenced
+mov edi, dword [ebp + 8]
+xor eax, eax
+mov byte [ebp - 0x30], 0
+add edi, 0x374e
+mov dword [ebp - 0x4c], edi
+mov edi, dword [ebp + 8]
+imul edi, dword [edi + 0x18a7], 0x2e
+mov dword [ebp - 0x50], edi
+
+loc_fffc8d02: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x30], 1
+setbe dl
+test cl, dl
+je loc_fffc8eb2 ; je 0xfffc8eb2
+movzx eax, byte [ebp - 0x30]
+imul edx, eax, 0x13c3
+mov dword [ebp - 0x34], eax
+mov eax, dword [ebp + 8]
+add eax, edx
+cmp dword [eax + 0x3756], 2
+jne loc_fffc8ea8 ; jne 0xfffc8ea8
+mov edi, dword [ebp - 0x4c]
+mov dword [ebp - 0x44], eax
+mov eax, dword [ebp - 0x34]
+lea esi, [edi + edx + 8]
+mov edi, dword [ebp - 0x50]
+mov dword [ebp - 0x48], eax
+mov di, word [esi + edi + 0xc]
+mov word [ebp - 0x38], di
+mov edi, dword [ebp - 0x38]
+mov dword [ebp - 0x38], 0
+lea ebx, [edi - 5]
+and ebx, 7
+shl ebx, 3
+
+loc_fffc8d64: ; not directly referenced
+mov edi, dword [ebp - 0x38]
+mov eax, edi
+mov ecx, edi
+mov edi, dword [ebp - 0x44]
+mov byte [ebp - 0x3c], al
+mov eax, 1
+shl eax, cl
+test byte [edi + 0x381a], al
+je loc_fffc8e7e ; je 0xfffc8e7e
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x247b], 0
+je short loc_fffc8daa ; je 0xfffc8daa
+mov al, cl
+shr al, 1
+movzx eax, al
+imul eax, eax, 0x128
+mov bx, word [esi + eax + 0x126f]
+jmp near loc_fffc8e71 ; jmp 0xfffc8e71
+
+loc_fffc8daa: ; not directly referenced
+mov al, byte [ebp - 0x3c]
+shr al, 1
+movzx edi, al
+mov byte [ebp - 0x40], al
+imul eax, edi, 0x128
+cmp byte [esi + eax + 0x1243], 1
+jne short loc_fffc8de3 ; jne 0xfffc8de3
+mov eax, dword [ebp + 8]
+cmp byte [eax + 0x190d], 0
+je short loc_fffc8df8 ; je 0xfffc8df8
+cmp dword [eax + 0x36cb], 1
+jne short loc_fffc8df8 ; jne 0xfffc8df8
+cmp byte [eax + 0x247f], 1
+je short loc_fffc8df8 ; je 0xfffc8df8
+
+loc_fffc8de3: ; not directly referenced
+imul eax, edi, 0x128
+cmp byte [esi + eax + 0x1242], 1
+sete al
+xor edx, edx
+jmp short loc_fffc8dfc ; jmp 0xfffc8dfc
+
+loc_fffc8df8: ; not directly referenced
+xor eax, eax
+mov dl, 1
+
+loc_fffc8dfc: ; not directly referenced
+and edx, 1
+and bl, 0x3f
+shl edx, 6
+and eax, 1
+shl eax, 7
+or ebx, edx
+mov edx, dword [ebp - 0x34]
+or ebx, eax
+mov eax, dword [ebp + 8]
+mov ecx, edi
+call fcn_fffa69ea ; call 0xfffa69ea
+test eax, eax
+je loc_fffc8ec5 ; je 0xfffc8ec5
+movzx eax, byte [eax]
+xor edx, edx
+cmp al, 0x78
+ja short loc_fffc8e37 ; ja 0xfffc8e37
+mov cl, 0x3c
+div cl
+test ah, 0x3f
+cmove edx, eax
+
+loc_fffc8e37: ; not directly referenced
+and edx, 3
+and bh, 0xf9
+movzx ecx, byte [ebp - 0x40]
+shl edx, 9
+sub esp, 0xc
+or ebx, edx
+mov edx, dword [ebp - 0x48]
+movzx eax, bx
+imul edi, edi, 0x128
+push eax
+mov eax, dword [ebp + 8]
+add edi, esi
+call fcn_fffa8733 ; call 0xfffa8733
+add esp, 0x10
+mov word [edi + 0x126f], bx
+mov word [edi + 0x1287], bx
+
+loc_fffc8e71: ; not directly referenced
+mov al, byte [ebp - 0x3c]
+shr al, 1
+movzx eax, al
+mov word [ebp + eax*2 - 0x24], bx
+
+loc_fffc8e7e: ; not directly referenced
+add dword [ebp - 0x38], 2
+cmp dword [ebp - 0x38], 4
+jne loc_fffc8d64 ; jne 0xfffc8d64
+sub esp, 0xc
+mov edx, dword [ebp - 0x34]
+mov ecx, 2
+lea eax, [ebp - 0x24]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+jmp short loc_fffc8eaa ; jmp 0xfffc8eaa
+
+loc_fffc8ea8: ; not directly referenced
+xor eax, eax
+
+loc_fffc8eaa: ; not directly referenced
+inc byte [ebp - 0x30]
+jmp near loc_fffc8d02 ; jmp 0xfffc8d02
+
+loc_fffc8eb2: ; not directly referenced
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+xor eax, eax
+xor ebx, ebx
+lea edi, [ebp - 0x24]
+jmp short loc_fffc8f07 ; jmp 0xfffc8f07
+
+loc_fffc8ec5: ; not directly referenced
+mov esi, 1
+jmp near loc_fffc9116 ; jmp 0xfffc9116
+
+loc_fffc8ecf: ; not directly referenced
+movzx edx, bl
+mov esi, dword [ebp + 8]
+xor eax, eax
+imul ecx, edx, 0x13c3
+cmp dword [esi + ecx + 0x3756], 2
+jne short loc_fffc8f06 ; jne 0xfffc8f06
+sub esp, 0xc
+mov ecx, 3
+push edi
+mov eax, esi
+mov word [ebp - 0x24], 0
+mov word [ebp - 0x22], 0
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+
+loc_fffc8f06: ; not directly referenced
+inc ebx
+
+loc_fffc8f07: ; not directly referenced
+test eax, eax
+sete cl
+cmp bl, 1
+setbe dl
+test cl, dl
+jne short loc_fffc8ecf ; jne 0xfffc8ecf
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+call fcn_fffb1a87 ; call 0xfffb1a87
+mov esi, eax
+test eax, eax
+jne loc_fffc9116 ; jne 0xfffc9116
+lea edi, [ebp - 0x24]
+mov esi, ref_fffd5abc ; mov esi, 0xfffd5abc
+mov ecx, 3
+mov ebx, 0x100
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov edi, dword [ebp + 8]
+xor eax, eax
+mov byte [ebp - 0x34], 0
+add edi, 0x374e
+mov dword [ebp - 0x3c], edi
+mov edi, dword [ebp + 8]
+imul edi, dword [edi + 0x18a7], 0x2e
+mov dword [ebp - 0x40], edi
+
+loc_fffc8f65: ; not directly referenced
+test eax, eax
+sete cl
+cmp byte [ebp - 0x34], 1
+setbe dl
+test cl, dl
+je loc_fffc90e3 ; je 0xfffc90e3
+movzx eax, byte [ebp - 0x34]
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x38], eax
+imul eax, eax, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffc90d9 ; jne 0xfffc90d9
+mov edi, dword [ebp - 0x3c]
+lea edi, [edi + eax + 8]
+mov eax, dword [ebp - 0x40]
+add eax, edi
+mov cx, word [eax + 0xa]
+movzx eax, word [eax + 0x2a]
+mov word [ebp - 0x30], cx
+cmp ax, 4
+jbe loc_fffc90eb ; jbe 0xfffc90eb
+cmp ax, 0xa
+setne cl
+cmp ax, 8
+seta dl
+test cl, dl
+je short loc_fffc8fe0 ; je 0xfffc8fe0
+mov edx, eax
+and edx, 0xfffffffd
+cmp dx, 0xc
+je short loc_fffc8fe0 ; je 0xfffc8fe0
+cmp ax, 0x10
+jne loc_fffc90eb ; jne 0xfffc90eb
+
+loc_fffc8fe0: ; not directly referenced
+mov esi, dword [ebp - 0x30]
+movzx eax, byte [ebp + eax - 0x29]
+cmp si, 0xc
+sbb ecx, ecx
+and ebx, 0xffffff8b
+mov esi, ebx
+mov bl, byte [ebp - 0x30]
+mov edx, ecx
+and edx, 0xfffffff8
+and eax, 7
+add edx, 0xc
+lea ecx, [ecx*4 + 4]
+sub ebx, edx
+and ecx, 4
+mov dl, bl
+or esi, ecx
+and edx, 7
+shl edx, 4
+or esi, edx
+shl eax, 9
+and si, 0xf1ff
+or esi, eax
+mov eax, dword [ebp + 8]
+mov ebx, esi
+mov al, byte [eax + 0x1906]
+cmp al, 6
+setne cl
+cmp al, 1
+seta dl
+and bh, 0xef
+test cl, dl
+jne short loc_fffc904c ; jne 0xfffc904c
+cmp al, 1
+setbe al
+and eax, 1
+shl eax, 0xc
+or ebx, eax
+
+loc_fffc904c: ; not directly referenced
+imul eax, dword [ebp - 0x38], 0x13c3
+mov esi, dword [ebp + 8]
+test byte [esi + eax + 0x381a], 1
+je short loc_fffc9086 ; je 0xfffc9086
+cmp byte [esi + 0x247b], 0
+jne short loc_fffc907d ; jne 0xfffc907d
+mov word [edi + 0x126b], bx
+mov word [edi + 0x1283], bx
+
+loc_fffc9077: ; not directly referenced
+mov word [ebp - 0x28], bx
+jmp short loc_fffc9086 ; jmp 0xfffc9086
+
+loc_fffc907d: ; not directly referenced
+mov bx, word [edi + 0x126b]
+jmp short loc_fffc9077 ; jmp 0xfffc9077
+
+loc_fffc9086: ; not directly referenced
+imul eax, dword [ebp - 0x38], 0x13c3
+mov ecx, dword [ebp + 8]
+test byte [ecx + eax + 0x381a], 4
+je short loc_fffc90c0 ; je 0xfffc90c0
+cmp byte [ecx + 0x247b], 0
+jne short loc_fffc90b7 ; jne 0xfffc90b7
+mov word [edi + 0x1393], bx
+mov word [edi + 0x13ab], bx
+
+loc_fffc90b1: ; not directly referenced
+mov word [ebp - 0x26], bx
+jmp short loc_fffc90c0 ; jmp 0xfffc90c0
+
+loc_fffc90b7: ; not directly referenced
+mov bx, word [edi + 0x1393]
+jmp short loc_fffc90b1 ; jmp 0xfffc90b1
+
+loc_fffc90c0: ; not directly referenced
+sub esp, 0xc
+mov edx, dword [ebp - 0x38]
+xor ecx, ecx
+lea eax, [ebp - 0x28]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb14b3 ; call 0xfffb14b3
+add esp, 0x10
+jmp short loc_fffc90db ; jmp 0xfffc90db
+
+loc_fffc90d9: ; not directly referenced
+xor eax, eax
+
+loc_fffc90db: ; not directly referenced
+inc byte [ebp - 0x34]
+jmp near loc_fffc8f65 ; jmp 0xfffc8f65
+
+loc_fffc90e3: ; not directly referenced
+mov esi, eax
+test eax, eax
+jne short loc_fffc9116 ; jne 0xfffc9116
+jmp short loc_fffc90f2 ; jmp 0xfffc90f2
+
+loc_fffc90eb: ; not directly referenced
+mov esi, 0xd
+jmp short loc_fffc9116 ; jmp 0xfffc9116
+
+loc_fffc90f2: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 3
+call fcn_fffb1bed ; call 0xfffb1bed
+mov esi, eax
+test eax, eax
+jne short loc_fffc9116 ; jne 0xfffc9116
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+mov edx, 0x4d94
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffc9116: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov byte [eax + 0x247b], 1
+
+loc_fffc9120: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc912a: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, edx
+push ebx
+sub esp, 0x50
+mov eax, dword [ebp + 8]
+push 1
+push 7
+mov dword [ebp - 0x48], eax
+mov eax, dword [edi + 0x2443]
+mov byte [ebp - 0x49], dl
+lea edx, [ebp - 0x27]
+push edx
+mov byte [ebp - 0x4b], cl
+call dword [eax + 0x5c] ; ucall
+mov ecx, esi
+add esp, 0x10
+movzx esi, cl
+xor eax, eax
+lea edx, [edi + 0x3756]
+mov dword [ebp - 0x40], esi
+
+loc_fffc9167: ; not directly referenced
+mov esi, dword [ebp - 0x40]
+bt esi, eax
+jae loc_fffc9234 ; jae 0xfffc9234
+mov esi, dword [edx + 0x109]
+mov ecx, dword [edx + 0x111]
+mov dword [ebp + eax*4 - 0x20], 0
+mov dword [ebp - 0x3c], esi
+mov ebx, esi
+mov esi, dword [edx + 0x11d]
+cmp byte [edx + 0x11d], bl
+mov bl, byte [ebp - 0x3c]
+cmovg esi, ebx
+mov ebx, esi
+cmp bl, cl
+cmovg esi, ecx
+mov ebx, esi
+cmp bl, byte [edx + 0x115]
+mov bl, byte [edx + 0x115]
+cmovg esi, ebx
+mov ebx, esi
+mov esi, dword [edx + 0x11d]
+mov byte [ebp + eax - 0x2f], bl
+mov bl, byte [ebp - 0x3c]
+cmp byte [edx + 0x11d], bl
+cmovge ebx, esi
+mov esi, dword [edx + 0x115]
+cmp bl, cl
+cmovl ebx, ecx
+mov cl, byte [edx + 0xc4]
+cmp bl, byte [edx + 0x115]
+cmovl ebx, esi
+mov byte [ebp - 0x44], cl
+xor ecx, ecx
+mov byte [ebp + eax - 0x2d], bl
+
+loc_fffc91f1: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x44], bl
+je short loc_fffc922c ; je 0xfffc922c
+mov bl, byte [edx + ecx + 0x245]
+movzx esi, byte [ebp + eax - 0x2f]
+cmp bl, byte [ebp + eax - 0x2f]
+mov byte [ebp - 0x3c], bl
+cmovle esi, ebx
+mov ebx, esi
+movzx esi, byte [ebp + eax - 0x2d]
+mov byte [ebp + eax - 0x2f], bl
+mov bl, byte [ebp - 0x3c]
+cmp bl, byte [ebp + eax - 0x2d]
+cmovl ebx, esi
+mov byte [ebp + eax - 0x2d], bl
+
+loc_fffc922c: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffc91f1 ; jne 0xfffc91f1
+jmp short loc_fffc9246 ; jmp 0xfffc9246
+
+loc_fffc9234: ; not directly referenced
+mov dword [ebp + eax*4 - 0x20], 1
+mov byte [ebp + eax - 0x2f], 0
+mov byte [ebp + eax - 0x2d], 0x7f
+
+loc_fffc9246: ; not directly referenced
+inc eax
+add edx, 0x13c3
+cmp eax, 2
+jne loc_fffc9167 ; jne 0xfffc9167
+cmp byte [ebp - 0x48], 0
+je short loc_fffc9281 ; je 0xfffc9281
+mov dl, byte [ebp - 0x2d]
+mov al, 0x5f
+cmp byte [ebp - 0x2d], 0x5f
+mov dword [ebp - 0x3c], 1
+cmovl edx, eax
+mov byte [ebp - 0x2b], dl
+mov dl, byte [ebp - 0x2c]
+cmp byte [ebp - 0x2c], 0x5f
+cmovge eax, edx
+mov byte [ebp - 0x2a], al
+jmp short loc_fffc92a4 ; jmp 0xfffc92a4
+
+loc_fffc9281: ; not directly referenced
+mov dl, byte [ebp - 0x2f]
+mov al, 0x20
+cmp byte [ebp - 0x2f], 0x20
+mov dword [ebp - 0x3c], 0xffffffff
+cmovg edx, eax
+mov byte [ebp - 0x2b], dl
+mov dl, byte [ebp - 0x2e]
+cmp byte [ebp - 0x2e], 0x20
+cmovle eax, edx
+mov byte [ebp - 0x2a], al
+
+loc_fffc92a4: ; not directly referenced
+mov al, byte [ebp - 0x2b]
+mov dword [ebp - 0x44], 0
+mov byte [ebp - 0x29], al
+mov al, byte [ebp - 0x2a]
+mov byte [ebp - 0x28], al
+mov eax, dword [ebp - 0x40]
+sar eax, 1
+mov dword [ebp - 0x48], eax
+mov al, byte [ebp - 0x49]
+and dword [ebp - 0x48], 1
+and eax, 1
+mov byte [ebp - 0x4c], al
+
+loc_fffc92cc: ; not directly referenced
+mov eax, dword [ebp - 0x3c]
+xor ebx, ebx
+add dword [ebp - 0x44], eax
+
+loc_fffc92d4: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+bt eax, ebx
+jae short loc_fffc930b ; jae 0xfffc930b
+mov al, byte [ebp - 0x3c]
+mov edx, ebx
+add byte [ebp + ebx - 0x2b], al
+imul eax, ebx, 0x13c3
+mov cl, byte [ebp - 0x4b]
+and cl, byte [edi + eax + 0x381a]
+mov eax, edi
+push 0
+push 0
+push dword [ebp - 0x44]
+movzx ecx, cl
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffc930b: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffc92d4 ; jne 0xfffc92d4
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0xc
+movzx ecx, byte [edi + 0x248b]
+mov edx, dword [ebp - 0x40]
+lea eax, [ebp - 0x27]
+push 0
+push 1
+push eax
+mov eax, edi
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+xor ecx, ecx
+mov byte [ebp - 0x4a], al
+
+loc_fffc933e: ; not directly referenced
+mov eax, 1
+shl eax, cl
+test byte [ebp - 0x49], al
+je short loc_fffc93c0 ; je 0xfffc93c0
+cmp dword [ebp + ecx*4 - 0x20], 0
+jne short loc_fffc93c0 ; jne 0xfffc93c0
+test byte [ebp - 0x4a], al
+je short loc_fffc9389 ; je 0xfffc9389
+mov bl, byte [ebp + ecx - 0x2b]
+mov dl, byte [ebp + ecx - 0x29]
+mov dword [ebp + ecx*4 - 0x20], 1
+movsx eax, bl
+sub eax, dword [ebp - 0x3c]
+movsx esi, dl
+cmp eax, esi
+jns short loc_fffc937c ; jns 0xfffc937c
+mov al, byte [ebp - 0x3c]
+add eax, edx
+sub eax, ebx
+jmp short loc_fffc9383 ; jmp 0xfffc9383
+
+loc_fffc937c: ; not directly referenced
+mov al, bl
+sub eax, dword [ebp - 0x3c]
+sub eax, edx
+
+loc_fffc9383: ; not directly referenced
+mov esi, dword [ebp + 0xc]
+mov byte [esi + ecx], al
+
+loc_fffc9389: ; not directly referenced
+mov al, byte [ebp + ecx - 0x2b]
+cmp al, 0x7f
+sete bl
+test al, al
+sete dl
+or bl, dl
+je short loc_fffc93c0 ; je 0xfffc93c0
+mov bl, byte [ebp + ecx - 0x29]
+movsx edx, al
+movsx esi, byte [ebp + ecx - 0x29]
+mov dword [ebp + ecx*4 - 0x20], 1
+sub ebx, eax
+sub al, byte [ebp + ecx - 0x29]
+cmp edx, esi
+cmovns ebx, eax
+mov eax, dword [ebp + 0xc]
+mov byte [eax + ecx], bl
+
+loc_fffc93c0: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne loc_fffc933e ; jne 0xfffc933e
+cmp byte [ebp - 0x4c], 0
+mov al, 1
+je short loc_fffc93d9 ; je 0xfffc93d9
+cmp dword [ebp - 0x20], 0
+setne al
+
+loc_fffc93d9: ; not directly referenced
+cmp dword [ebp - 0x48], 0
+je short loc_fffc93e9 ; je 0xfffc93e9
+cmp dword [ebp - 0x1c], 0
+je loc_fffc92cc ; je 0xfffc92cc
+
+loc_fffc93e9: ; not directly referenced
+test al, al
+je loc_fffc92cc ; je 0xfffc92cc
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc93f9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x30
+mov edi, dword [ebx + 0x2443]
+movzx eax, cl
+push 0
+push 4
+lea esi, [ebp - 0x1a]
+push esi
+mov byte [ebp - 0x31], dl
+mov byte [ebp - 0x30], cl
+mov dword [ebp - 0x2c], eax
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 4
+lea eax, [ebp - 0x1c]
+push eax
+call dword [edi + 0x5c] ; ucall
+mov ecx, dword [ebp - 0x2c]
+xor edx, edx
+mov eax, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+mov ecx, dword [ebp - 0x2c]
+mov edx, 1
+mov edi, eax
+mov eax, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+pop ecx
+mov ecx, dword [ebp - 0x2c]
+or eax, edi
+movzx edi, al
+pop eax
+mov edx, edi
+mov eax, ebx
+push esi
+xor esi, esi
+push 0
+call fcn_fffc912a ; call 0xfffc912a
+add esp, 0x10
+
+loc_fffc9467: ; not directly referenced
+bt edi, esi
+jae short loc_fffc9493 ; jae 0xfffc9493
+imul eax, esi, 0x13c3
+mov cl, byte [ebp - 0x30]
+mov edx, esi
+and cl, byte [ebx + eax + 0x381a]
+mov eax, ebx
+push 0
+push 0
+push 0
+movzx ecx, cl
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffc9493: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffc9467 ; jne 0xfffc9467
+sub esp, 0xc
+xor si, si
+push ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+mov ecx, dword [ebp - 0x2c]
+pop eax
+pop edx
+mov edx, edi
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, ebx
+push 1
+call fcn_fffc912a ; call 0xfffc912a
+add esp, 0x10
+
+loc_fffc94bc: ; not directly referenced
+bt edi, esi
+jae short loc_fffc94e8 ; jae 0xfffc94e8
+imul eax, esi, 0x13c3
+mov cl, byte [ebp - 0x30]
+mov edx, esi
+and cl, byte [ebx + eax + 0x381a]
+mov eax, ebx
+push 0
+push 0
+push 0
+movzx ecx, cl
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffc94e8: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffc94bc ; jne 0xfffc94bc
+sub esp, 0xc
+xor edi, edi
+push ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+movzx eax, byte [ebp - 0x31]
+lea esi, [ebx + 0x3218]
+add esp, 0x10
+mov dword [ebp - 0x30], eax
+
+loc_fffc9509: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+bt eax, edi
+jb short loc_fffc9522 ; jb 0xfffc9522
+
+loc_fffc9511: ; not directly referenced
+inc edi
+add esi, 0x48
+cmp edi, 2
+jne short loc_fffc9509 ; jne 0xfffc9509
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffc9522: ; not directly referenced
+push 0
+mov ecx, dword [ebp - 0x2c]
+mov edx, edi
+push 0
+mov eax, ebx
+push 0
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+movzx edx, byte [ebp + edi - 0x1c]
+add esp, 0x10
+movzx eax, byte [ebp + edi - 0x1a]
+imul edx, edx, 0xa
+imul eax, eax, 0xa
+mov dword [esi], edx
+mov dword [esi + 4], eax
+mov dword [esi + 0x90], edx
+mov dword [esi + 0x94], eax
+mov dword [esi + 0x120], edx
+mov dword [esi + 0x124], eax
+mov dword [esi + 0x1b0], edx
+mov dword [esi + 0x1b4], eax
+jmp short loc_fffc9511 ; jmp 0xfffc9511
+
+fcn_fffc9574: ; not directly referenced
+push ebp
+mov eax, 0x80000002
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x1c
+mov ebx, dword [ebp + 0x20]
+mov ecx, dword [ebp + 0x10]
+mov esi, dword [ebp + 0x14]
+mov edi, dword [ebp + 0x18]
+test ebx, ebx
+je loc_fffc964a ; je 0xfffc964a
+cmp ecx, 0xb
+ja loc_fffc964a ; ja 0xfffc964a
+push eax
+mov edx, ecx
+push dword [ebp + 0x1c]
+mov eax, 1
+mov dword [ebp - 0x1c], ecx
+push edi
+push esi
+call fcn_fffac5c7 ; call 0xfffac5c7
+add esp, 0x10
+mov ecx, dword [ebp - 0x1c]
+test eax, eax
+js loc_fffc964a ; js 0xfffc964a
+mov al, byte [ecx + ref_fffd5ac8] ; mov al, byte [ecx - 0x2a538]
+mov dword [ebp - 0x24], 0
+mov byte [ebp - 0x1e], al
+mov eax, ecx
+and eax, 3
+mov dword [ebp - 0x1c], eax
+movzx eax, byte [eax + ref_fffd5ad4] ; movzx eax, byte [eax - 0x2a52c]
+dec eax
+test ebx, eax
+movzx eax, byte [ecx + ref_fffd5ad4] ; movzx eax, byte [ecx - 0x2a52c]
+sete byte [ebp - 0x1d]
+mov dword [ebp - 0x28], eax
+
+loc_fffc95f2: ; not directly referenced
+cmp dword [ebp + 0x1c], 0
+je short loc_fffc9648 ; je 0xfffc9648
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffc9604 ; jne 0xfffc9604
+mov dl, byte [ebx]
+mov byte [esi], dl
+jmp short loc_fffc9637 ; jmp 0xfffc9637
+
+loc_fffc9604: ; not directly referenced
+cmp dword [ebp - 0x1c], 1
+jne short loc_fffc9618 ; jne 0xfffc9618
+movzx eax, word [ebx]
+push edx
+push edx
+push eax
+push esi
+call fcn_fffb3d20 ; call 0xfffb3d20
+jmp short loc_fffc9628 ; jmp 0xfffc9628
+
+loc_fffc9618: ; not directly referenced
+cmp dword [ebp - 0x1c], 2
+jne short loc_fffc962d ; jne 0xfffc962d
+push eax
+push eax
+push dword [ebx]
+push esi
+call fcn_fffb3d84 ; call 0xfffb3d84
+
+loc_fffc9628: ; not directly referenced
+add esp, 0x10
+jmp short loc_fffc9637 ; jmp 0xfffc9637
+
+loc_fffc962d: ; not directly referenced
+mov eax, dword [ebx]
+mov edx, dword [ebx + 4]
+mov dword [esi], eax
+mov dword [esi + 4], edx
+
+loc_fffc9637: ; not directly referenced
+movzx eax, byte [ebp - 0x1e]
+add esi, dword [ebp - 0x28]
+adc edi, dword [ebp - 0x24]
+dec dword [ebp + 0x1c]
+add ebx, eax
+jmp short loc_fffc95f2 ; jmp 0xfffc95f2
+
+loc_fffc9648: ; not directly referenced
+xor eax, eax
+
+loc_fffc964a: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffc9652: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x2cc
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x264], 1
+mov eax, dword [edi + 0x5edc]
+mov edx, dword [edi + 0x2480]
+mov dword [ebp - 0x260], eax
+mov eax, dword [edi + 0x2443]
+cmp edx, 3
+mov dword [ebp - 0x2a8], eax
+sete al
+movzx ebx, al
+mov dword [ebp - 0x28c], ebx
+mov ebx, dword [edi + 0x1887]
+mov esi, ebx
+mov dword [ebp - 0x2b0], ebx
+mov ebx, dword [edi + 0x1883]
+mov ecx, ebx
+mov dword [ebp - 0x290], ebx
+mov ebx, dword [edi + 0x188b]
+mov dword [ebp - 0x294], ebx
+xor ebx, ebx
+cmp edx, 2
+sete bl
+cmp esi, 0x306d0
+mov dword [ebp - 0x2b4], ebx
+sete bl
+cmp ecx, 3
+setbe dl
+mov byte [ebp - 0x27b], bl
+test bl, dl
+jne short loc_fffc9703 ; jne 0xfffc9703
+test ecx, ecx
+sete dl
+xor ebx, ebx
+cmp esi, 0x40670
+sete bl
+mov dword [ebp - 0x264], ebx
+and dword [ebp - 0x264], edx
+
+loc_fffc9703: ; not directly referenced
+and al, byte [ebp - 0x27b]
+cmp dword [ebp - 0x294], 1
+movzx eax, al
+mov dword [ebp - 0x2b8], eax
+mov eax, dword [ebp - 0x260]
+movzx eax, byte [eax + 0x1c5]
+mov dword [ebp - 0x298], eax
+movzx eax, byte [edi + 0x1965]
+mov dword [ebp - 0x288], eax
+jne short loc_fffc9780 ; jne 0xfffc9780
+cmp dword [ebp - 0x290], 4
+mov byte [ebp - 0x27a], 0x10
+mov byte [ebp - 0x280], 0xf0
+setbe al
+test byte [ebp - 0x27b], al
+mov byte [ebp - 0x279], 4
+je short loc_fffc9795 ; je 0xfffc9795
+cmp dword [edi + 0x36d7], 0x640
+mov eax, 0
+cmovbe eax, dword [ebp - 0x288]
+mov dword [ebp - 0x288], eax
+jmp short loc_fffc9795 ; jmp 0xfffc9795
+
+loc_fffc9780: ; not directly referenced
+mov byte [ebp - 0x27a], 8
+mov byte [ebp - 0x280], 0xf8
+mov byte [ebp - 0x279], 1
+
+loc_fffc9795: ; not directly referenced
+mov eax, dword [ebp - 0x260]
+xor esi, esi
+add eax, 0x1c
+mov dword [ebp - 0x2a0], eax
+mov dword [ebp - 0x268], eax
+
+loc_fffc97ac: ; not directly referenced
+imul eax, esi, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+je short loc_fffc97ce ; je 0xfffc97ce
+
+loc_fffc97bc: ; not directly referenced
+inc esi
+add dword [ebp - 0x268], 0xcc
+cmp esi, 2
+jne short loc_fffc97ac ; jne 0xfffc97ac
+jmp short loc_fffc9837 ; jmp 0xfffc9837
+
+loc_fffc97ce: ; not directly referenced
+mov byte [ebp - 0x25c], 0
+
+loc_fffc97d5: ; not directly referenced
+mov al, byte [ebp - 0x25c]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffc97bc ; jae 0xfffc97bc
+movzx ecx, byte [ebp - 0x25c]
+mov eax, dword [ebp - 0x268]
+mov edx, dword [ebp - 0x298]
+mov ebx, dword [eax + ecx*4 + 0x28]
+or ebx, 0x60
+mov eax, ebx
+and eax, 0xffbfffff
+test edx, edx
+mov edx, dword [ebp - 0x2b4]
+cmovne ebx, eax
+mov eax, ebx
+and eax, 0xffdfffff
+test edx, edx
+mov edx, esi
+cmovne ebx, eax
+mov eax, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0x25c]
+jmp short loc_fffc97d5 ; jmp 0xfffc97d5
+
+loc_fffc9837: ; not directly referenced
+cmp dword [ebp - 0x298], 0
+je short loc_fffc9894 ; je 0xfffc9894
+mov edx, 0x3a28
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a28
+mov dword [ebp - 0x2ac], eax
+mov eax, edi
+and dword [ebp - 0x2ac], 0xfffffffd
+mov ecx, dword [ebp - 0x2ac]
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x5f08
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5f08
+or ah, 1
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x96
+mov eax, edi
+call fcn_fffa834b ; call 0xfffa834b
+
+loc_fffc9894: ; not directly referenced
+movzx eax, byte [ebp - 0x280]
+mov dword [ebp - 0x278], 1
+mov dword [ebp - 0x26c], 0
+mov dword [ebp - 0x2c8], eax
+
+loc_fffc98b5: ; not directly referenced
+mov ebx, dword [ebp - 0x278]
+mov byte [ebp - 0x270], bl
+test bl, bl
+je short loc_fffc98db ; je 0xfffc98db
+cmp dword [ebp - 0x294], 0
+sete al
+or al, byte [ebp - 0x264]
+jne loc_fffca060 ; jne 0xfffca060
+
+loc_fffc98db: ; not directly referenced
+mov esi, dword [ebp - 0x2a8]
+push eax
+push 0
+push 0x24
+lea eax, [ebp - 0x1c8]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x24
+lea eax, [ebp - 0x1ec]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push dword [ebp - 0x2c8]
+lea eax, [ebp - 0x234]
+push 0x12
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0xff
+push 0x12
+lea eax, [ebp - 0x210]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x12
+lea eax, [ebp - 0x222]
+push eax
+mov eax, esi
+call dword [eax + 0x5c] ; ucall
+lea eax, [edi + 0x3756]
+add esp, 0x10
+mov dword [ebp - 0x274], eax
+mov esi, eax
+mov dword [ebp - 0x268], 0
+
+loc_fffc9960: ; not directly referenced
+cmp dword [esi], 2
+je short loc_fffc999c ; je 0xfffc999c
+
+loc_fffc9965: ; not directly referenced
+inc dword [ebp - 0x268]
+add esi, 0x13c3
+cmp dword [ebp - 0x268], 2
+jne short loc_fffc9960 ; jne 0xfffc9960
+mov al, byte [ebp - 0x280]
+mov byte [ebp - 0x29c], 0
+mov byte [ebp - 0x25c], al
+imul eax, dword [ebp - 0x278], 0x12
+mov dword [ebp - 0x2c0], eax
+jmp short loc_fffc9a0c ; jmp 0xfffc9a0c
+
+loc_fffc999c: ; not directly referenced
+xor ebx, ebx
+
+loc_fffc999e: ; not directly referenced
+cmp bl, byte [edi + 0x2488]
+jae short loc_fffc9965 ; jae 0xfffc9965
+movzx eax, bl
+mov dword [ebp - 0x26c], eax
+mov byte [esi + eax + 0x101d], 0
+mov dword [ebp - 0x25c], 0
+
+loc_fffc99c1: ; not directly referenced
+mov cl, byte [ebp - 0x25c]
+mov eax, 1
+shl eax, cl
+test byte [esi + 0xc4], al
+je short loc_fffc99fa ; je 0xfffc99fa
+push eax
+mov ecx, dword [ebp - 0x25c]
+mov eax, edi
+push 0
+mov edx, dword [ebp - 0x268]
+push 0xff
+push dword [ebp - 0x26c]
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffc99fa: ; not directly referenced
+inc dword [ebp - 0x25c]
+cmp dword [ebp - 0x25c], 4
+jne short loc_fffc99c1 ; jne 0xfffc99c1
+inc ebx
+jmp short loc_fffc999e ; jmp 0xfffc999e
+
+loc_fffc9a0c: ; not directly referenced
+cmp byte [ebp - 0x270], 0
+jne short loc_fffc9a42 ; jne 0xfffc9a42
+push 0
+movsx eax, byte [ebp - 0x25c]
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push eax
+push 4
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov dword [ebp - 0x26c], eax
+jmp short loc_fffc9a96 ; jmp 0xfffc9a96
+
+loc_fffc9a42: ; not directly referenced
+push 0
+mov bl, byte [ebp - 0x25c]
+push 0
+push 0
+push 0
+push 0
+and ebx, 1
+push 0
+movzx eax, bl
+push 0
+push 1
+push 0
+push eax
+push 4
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+mov esi, dword [ebp - 0x25c]
+mov dl, 2
+add esp, 0x30
+mov dword [ebp - 0x26c], eax
+mov eax, esi
+cbw
+idiv dl
+mov edx, esi
+shr dl, 7
+mov byte [ebp - 0x29c], al
+test bl, dl
+je short loc_fffc9a96 ; je 0xfffc9a96
+dec eax
+mov byte [ebp - 0x29c], al
+
+loc_fffc9a96: ; not directly referenced
+mov eax, edi
+or edx, 0xffffffff
+call fcn_fffaa226 ; call 0xfffaa226
+mov eax, dword [ebp - 0x274]
+mov dword [ebp - 0x268], 0
+mov dword [ebp - 0x284], eax
+
+loc_fffc9ab6: ; not directly referenced
+mov eax, dword [ebp - 0x284]
+cmp dword [eax], 2
+jne loc_fffc9c1d ; jne 0xfffc9c1d
+cmp byte [ebp - 0x270], 1
+je short loc_fffc9b2c ; je 0xfffc9b2c
+
+loc_fffc9ace: ; not directly referenced
+mov esi, dword [ebp - 0x268]
+mov ecx, 0xff
+mov ebx, dword [ebp - 0x260]
+imul eax, esi, 0xcc
+mov edx, esi
+mov ebx, dword [ebx + eax + 0x1c]
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+and ebx, 0xfe0ffff7
+or ebx, 0x1100008
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, edi
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+lea eax, [esi + esi*8]
+lea esi, [ebp - 0x18]
+add eax, esi
+mov byte [ebp - 0x2a4], 0
+mov dword [ebp - 0x2bc], eax
+jmp short loc_fffc9b9d ; jmp 0xfffc9b9d
+
+loc_fffc9b2c: ; not directly referenced
+mov byte [ebp - 0x2a4], 0
+
+loc_fffc9b33: ; not directly referenced
+mov al, byte [ebp - 0x2a4]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffc9ace ; jae 0xfffc9ace
+mov ebx, dword [ebp - 0x284]
+movzx esi, byte [ebp - 0x2a4]
+mov al, byte [ebp - 0x29c]
+mov byte [ebx + esi + 0x101d], al
+xor ebx, ebx
+
+loc_fffc9b5d: ; not directly referenced
+mov cl, bl
+mov eax, 1
+shl eax, cl
+mov ecx, dword [ebp - 0x284]
+test byte [ecx + 0xc4], al
+je short loc_fffc9b8f ; je 0xfffc9b8f
+mov edx, dword [ebp - 0x268]
+mov ecx, ebx
+push eax
+mov eax, edi
+push 0
+push 0xff
+push esi
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffc9b8f: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne short loc_fffc9b5d ; jne 0xfffc9b5d
+inc byte [ebp - 0x2a4]
+jmp short loc_fffc9b33 ; jmp 0xfffc9b33
+
+loc_fffc9b9d: ; not directly referenced
+mov al, byte [ebp - 0x2a4]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffc9bfd ; jae 0xfffc9bfd
+movzx esi, byte [ebp - 0x2a4]
+mov eax, edi
+mov edx, dword [ebp - 0x268]
+mov ecx, esi
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+movzx edx, al
+movzx eax, dx
+mov dword [ebp - 0x2c4], edx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov edx, dword [ebp - 0x2c4]
+add esi, dword [ebp - 0x2bc]
+inc byte [ebp - 0x2a4]
+and byte [esi - 0x1f8], dl
+neg eax
+mov byte [esi - 0x22e], al
+jmp short loc_fffc9b9d ; jmp 0xfffc9b9d
+
+loc_fffc9bfd: ; not directly referenced
+mov edx, dword [ebp - 0x268]
+mov ecx, 0xff
+mov eax, edi
+and ebx, 0xfffffff7
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffc9c1d: ; not directly referenced
+inc dword [ebp - 0x268]
+add dword [ebp - 0x284], 0x13c3
+cmp dword [ebp - 0x268], 2
+jne loc_fffc9ab6 ; jne 0xfffc9ab6
+mov eax, edi
+mov edx, 0x11111111
+call fcn_fffaa226 ; call 0xfffaa226
+mov eax, dword [ebp - 0x274]
+xor esi, esi
+mov dword [ebp - 0x2a4], eax
+
+loc_fffc9c54: ; not directly referenced
+mov eax, dword [ebp - 0x2a4]
+cmp dword [eax], 2
+jne loc_fffc9dce ; jne 0xfffc9dce
+mov ebx, dword [ebp - 0x260]
+imul eax, esi, 0xcc
+mov ecx, 0xff
+mov edx, esi
+mov eax, dword [ebx + eax + 0x1c]
+lea ebx, [ebp - 0x18]
+mov dword [ebp - 0x268], eax
+mov eax, edi
+and dword [ebp - 0x268], 0xfe0ffff7
+or dword [ebp - 0x268], 0x1100008
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [ebp - 0x268]
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, edi
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+lea eax, [esi + esi*8]
+add ebx, eax
+mov byte [ebp - 0x284], 0
+mov dword [ebp - 0x2bc], eax
+mov dword [ebp - 0x2c4], ebx
+
+loc_fffc9cd1: ; not directly referenced
+mov al, byte [ebp - 0x284]
+cmp al, byte [edi + 0x2488]
+jae loc_fffc9dac ; jae 0xfffc9dac
+movzx ebx, byte [ebp - 0x284]
+mov edx, esi
+mov eax, edi
+mov ecx, ebx
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+movzx ecx, al
+movzx eax, cx
+mov dword [ebp - 0x2cc], ecx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov ecx, dword [ebp - 0x2c4]
+lea edx, [ecx + ebx]
+mov ecx, dword [ebp - 0x2cc]
+or byte [edx - 0x20a], cl
+add al, byte [edx - 0x22e]
+mov byte [edx - 0x22e], al
+cmp al, byte [edx - 0x21c]
+jle short loc_fffc9d81 ; jle 0xfffc9d81
+mov byte [edx - 0x21c], al
+mov eax, dword [ebp - 0x2c0]
+lea ecx, [ebp - 0x18]
+add eax, dword [ebp - 0x2bc]
+add eax, ecx
+mov cl, byte [ebp - 0x25c]
+add eax, ebx
+cmp byte [ebp - 0x270], 0
+mov byte [eax - 0x1b0], cl
+mov byte [eax - 0x1d4], cl
+jne short loc_fffc9da1 ; jne 0xfffc9da1
+mov ecx, dword [ebp - 0x2a4]
+mov al, byte [ebp - 0x25c]
+mov byte [ecx + ebx + 0x101d], al
+jmp short loc_fffc9da1 ; jmp 0xfffc9da1
+
+loc_fffc9d81: ; not directly referenced
+jne short loc_fffc9da1 ; jne 0xfffc9da1
+mov eax, dword [ebp - 0x2c0]
+lea ecx, [ebp - 0x18]
+add eax, dword [ebp - 0x2bc]
+add eax, ecx
+mov cl, byte [ebp - 0x25c]
+mov byte [ebx + eax - 0x1b0], cl
+
+loc_fffc9da1: ; not directly referenced
+inc byte [ebp - 0x284]
+jmp near loc_fffc9cd1 ; jmp 0xfffc9cd1
+
+loc_fffc9dac: ; not directly referenced
+mov ecx, 0xff
+mov edx, esi
+mov ebx, dword [ebp - 0x268]
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+and ebx, 0xfffffff7
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffc9dce: ; not directly referenced
+inc esi
+add dword [ebp - 0x2a4], 0x13c3
+cmp esi, 2
+jne loc_fffc9c54 ; jne 0xfffc9c54
+inc byte [ebp - 0x25c]
+mov al, byte [ebp - 0x27a]
+cmp byte [ebp - 0x25c], al
+jle loc_fffc9a0c ; jle 0xfffc9a0c
+push 0
+xor ebx, ebx
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push 4
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+mov eax, dword [ebp - 0x274]
+add esp, 0x30
+mov dword [ebp - 0x25c], eax
+imul eax, dword [ebp - 0x278], 0x12
+mov dword [ebp - 0x2a4], eax
+
+loc_fffc9e34: ; not directly referenced
+mov eax, dword [ebp - 0x25c]
+mov dword [ebp + ebx*4 - 0x250], 0
+cmp dword [eax], 2
+je short loc_fffc9e5f ; je 0xfffc9e5f
+
+loc_fffc9e4a: ; not directly referenced
+inc ebx
+add dword [ebp - 0x25c], 0x13c3
+cmp ebx, 2
+jne short loc_fffc9e34 ; jne 0xfffc9e34
+jmp near loc_fffc9fa4 ; jmp 0xfffc9fa4
+
+loc_fffc9e5f: ; not directly referenced
+lea eax, [ebx + ebx*8]
+lea esi, [ebp - 0x18]
+add esi, eax
+mov byte [ebp - 0x284], 0
+mov dword [ebp - 0x29c], eax
+mov dword [ebp - 0x2bc], esi
+
+loc_fffc9e7a: ; not directly referenced
+mov al, byte [ebp - 0x284]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffc9e4a ; jae 0xfffc9e4a
+mov ecx, dword [ebp - 0x2a4]
+lea eax, [ebp - 0x18]
+add ecx, dword [ebp - 0x29c]
+movzx esi, byte [ebp - 0x284]
+add ecx, eax
+add ecx, esi
+mov dl, byte [ecx - 0x1d4]
+mov al, byte [ecx - 0x1b0]
+sub eax, edx
+mov byte [ecx - 0x168], al
+mov cl, 2
+cbw
+idiv cl
+add eax, edx
+cmp dword [ebp - 0x264], 0
+mov dl, al
+je short loc_fffc9efd ; je 0xfffc9efd
+mov ecx, dword [ebp - 0x2bc]
+mov byte [esi + ecx - 0x1e6], al
+movsx eax, al
+push 0
+push 0
+push 0
+push 0
+push esi
+push 0xff
+push ebx
+push 0
+push 0
+push eax
+push 4
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+jmp near loc_fffc9f99 ; jmp 0xfffc9f99
+
+loc_fffc9efd: ; not directly referenced
+cmp byte [ebp - 0x270], 0
+jne short loc_fffc9f13 ; jne 0xfffc9f13
+lea eax, [edx - 1]
+test dl, dl
+lea ecx, [edx + 1]
+cmovns eax, ecx
+mov dl, al
+
+loc_fffc9f13: ; not directly referenced
+movsx eax, dl
+mov cl, 2
+add dword [ebp + ebx*4 - 0x250], eax
+movsx ax, dl
+idiv cl
+mov ecx, dword [ebp - 0x25c]
+mov edx, dword [ebp - 0x2a4]
+add edx, dword [ebp - 0x29c]
+mov dword [ebp - 0x268], 0
+mov byte [ecx + esi + 0x101d], al
+lea ecx, [ebp - 0x18]
+add edx, ecx
+mov byte [esi + edx - 0x18c], al
+
+loc_fffc9f54: ; not directly referenced
+mov cl, byte [ebp - 0x268]
+mov eax, 1
+mov edx, dword [ebp - 0x25c]
+shl eax, cl
+test byte [edx + 0xc4], al
+je short loc_fffc9f8a ; je 0xfffc9f8a
+push ecx
+mov ecx, dword [ebp - 0x268]
+mov edx, ebx
+push 0
+mov eax, edi
+push 0xff
+push esi
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffc9f8a: ; not directly referenced
+inc dword [ebp - 0x268]
+cmp dword [ebp - 0x268], 4
+jne short loc_fffc9f54 ; jne 0xfffc9f54
+
+loc_fffc9f99: ; not directly referenced
+inc byte [ebp - 0x284]
+jmp near loc_fffc9e7a ; jmp 0xfffc9e7a
+
+loc_fffc9fa4: ; not directly referenced
+cmp dword [ebp - 0x294], 0
+sete al
+or al, byte [ebp - 0x264]
+jne loc_fffca060 ; jne 0xfffca060
+cmp byte [ebp - 0x270], 1
+je loc_fffca060 ; je 0xfffca060
+lea edx, [ebp - 0x180]
+lea ecx, [ebp - 0x1a4]
+
+loc_fffc9fd3: ; not directly referenced
+mov eax, dword [ebp - 0x274]
+cmp dword [eax], 2
+jne short loc_fffca042 ; jne 0xfffca042
+mov al, byte [edi + 0x2488]
+mov byte [ebp - 0x25c], al
+xor eax, eax
+
+loc_fffc9fec: ; not directly referenced
+cmp byte [ebp - 0x25c], al
+jbe short loc_fffca042 ; jbe 0xfffca042
+cmp dword [ebp - 0x288], 0
+je short loc_fffca03f ; je 0xfffca03f
+movsx esi, byte [edx + eax + 0x12]
+movsx ebx, byte [edx + eax]
+sub ebx, esi
+mov esi, ebx
+sar esi, 0x1f
+xor ebx, esi
+sub ebx, esi
+cmp ebx, 4
+jle short loc_fffca03f ; jle 0xfffca03f
+movsx esi, byte [ecx + eax + 0x12]
+movsx ebx, byte [ecx + eax]
+sub ebx, esi
+mov esi, ebx
+sar esi, 0x1f
+xor ebx, esi
+sub ebx, esi
+mov esi, 5
+cmp ebx, 3
+cmovl esi, dword [ebp - 0x26c]
+mov dword [ebp - 0x26c], esi
+
+loc_fffca03f: ; not directly referenced
+inc eax
+jmp short loc_fffc9fec ; jmp 0xfffc9fec
+
+loc_fffca042: ; not directly referenced
+add edx, 9
+add ecx, 9
+lea eax, [ebp - 0x16e]
+add dword [ebp - 0x274], 0x13c3
+cmp edx, eax
+jne loc_fffc9fd3 ; jne 0xfffc9fd3
+
+loc_fffca060: ; not directly referenced
+dec dword [ebp - 0x278]
+cmp dword [ebp - 0x278], 0xffffffff
+jne loc_fffc98b5 ; jne 0xfffc98b5
+cmp dword [ebp - 0x294], 1
+jne loc_fffca197 ; jne 0xfffca197
+cmp dword [ebp - 0x26c], 5
+mov eax, 5
+sete cl
+cmp dword [ebp - 0x288], 0
+setne dl
+test cl, dl
+jne loc_fffca879 ; jne 0xfffca879
+cmp dword [ebp - 0x290], 3
+seta al
+test byte [ebp - 0x27b], al
+jne short loc_fffca0ce ; jne 0xfffca0ce
+cmp dword [ebp - 0x290], 0
+setne dl
+cmp dword [ebp - 0x2b0], 0x40670
+sete al
+test dl, al
+je short loc_fffca140 ; je 0xfffca140
+
+loc_fffca0ce: ; not directly referenced
+mov eax, dword [ebp - 0x250]
+movzx ecx, byte [edi + 0x2488]
+add eax, dword [ebp - 0x24c]
+add ecx, ecx
+cdq
+idiv ecx
+mov dword [ebp - 0x250], eax
+
+loc_fffca0ec: ; not directly referenced
+cmp dword [edi + 0x3756], 2
+mov eax, dword [ebp - 0x250]
+jne short loc_fffca107 ; jne 0xfffca107
+mov ebx, dword [ebp - 0x260]
+mov dword [ebx + 0xe3], eax
+
+loc_fffca107: ; not directly referenced
+cmp dword [edi + 0x4b19], 2
+jne short loc_fffca11c ; jne 0xfffca11c
+mov ebx, dword [ebp - 0x260]
+mov dword [ebx + 0x1af], eax
+
+loc_fffca11c: ; not directly referenced
+mov ebx, dword [ebp - 0x260]
+cmp dword [ebp - 0x28c], 0
+mov dword [ebx + 0x1b4], eax
+mov ebx, eax
+je short loc_fffca14c ; je 0xfffca14c
+mov ebx, 3
+cmp eax, 3
+cmovle ebx, eax
+jmp short loc_fffca14c ; jmp 0xfffca14c
+
+loc_fffca140: ; not directly referenced
+mov dword [ebp - 0x250], 0xfffffff0
+jmp short loc_fffca0ec ; jmp 0xfffca0ec
+
+loc_fffca14c: ; not directly referenced
+push 1
+push 0
+push 0
+push 0xff
+push ebx
+push 1
+push 0
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+push 1
+push 0
+push 0
+push 0xff
+push ebx
+push 1
+push 1
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+push 0
+push 0
+push 0
+push 0xff
+push ebx
+push 1
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+
+loc_fffca197: ; not directly referenced
+mov eax, dword [ebp - 0x2a8]
+lea ebx, [ebp - 0x15c]
+push edx
+push 0
+push 0xa2
+push ebx
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+mov eax, dword [ebp - 0x2a8]
+push 0
+push 0xa2
+lea esi, [ebp - 0xba]
+push esi
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+cmp dword [ebp - 0x28c], 1
+mov dword [ebp - 0x260], 1
+mov dword [ebp - 0x288], esi
+sbb eax, eax
+mov dword [ebp - 0x26c], eax
+add byte [ebp - 0x26c], 9
+mov dword [ebp - 0x290], ebx
+
+loc_fffca1f8: ; not directly referenced
+mov al, byte [ebp - 0x260]
+xor ecx, ecx
+xor edx, edx
+mov byte [ebp - 0x278], al
+
+loc_fffca208: ; not directly referenced
+mov eax, dword [ebp - 0x260]
+shl eax, cl
+add ecx, 4
+add edx, eax
+cmp ecx, 0x20
+jne short loc_fffca208 ; jne 0xfffca208
+mov eax, edi
+call fcn_fffaa226 ; call 0xfffaa226
+mov eax, dword [ebp - 0x2a0]
+mov dword [ebp - 0x25c], 0
+mov dword [ebp - 0x270], eax
+mov eax, dword [ebp - 0x260]
+and eax, 0xf
+mov dword [ebp - 0x280], eax
+shl dword [ebp - 0x280], 9
+
+loc_fffca24d: ; not directly referenced
+imul eax, dword [ebp - 0x25c], 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffca428 ; jne 0xfffca428
+cmp dword [ebp - 0x28c], 0
+jne short loc_fffca2c2 ; jne 0xfffca2c2
+
+loc_fffca26e: ; not directly referenced
+mov eax, dword [ebp - 0x270]
+mov ecx, 0xff
+mov esi, dword [ebp - 0x25c]
+mov ebx, dword [eax]
+mov eax, edi
+mov edx, esi
+call fcn_fffa7288 ; call 0xfffa7288
+and ebx, 0xfe0ffff7
+or ebx, 0x1100008
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, edi
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+imul eax, esi, 0x51
+mov byte [ebp - 0x268], 0
+mov dword [ebp - 0x284], eax
+jmp near loc_fffca39e ; jmp 0xfffca39e
+
+loc_fffca2c2: ; not directly referenced
+mov byte [ebp - 0x268], 0
+
+loc_fffca2c9: ; not directly referenced
+mov al, byte [ebp - 0x268]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffca26e ; jae 0xfffca26e
+movzx esi, byte [ebp - 0x268]
+mov eax, dword [ebp - 0x270]
+mov ecx, dword [ebp - 0x298]
+mov edx, dword [ebp - 0x25c]
+lea eax, [eax + esi*4]
+mov dword [ebp - 0x274], eax
+mov eax, dword [eax + 0x28]
+and ah, 0xe1
+or eax, dword [ebp - 0x280]
+or eax, 0x60
+mov ebx, eax
+and eax, 0xfffffe7f
+and ebx, 0xffbffe7f
+test ecx, ecx
+mov ecx, dword [ebp - 0x2b4]
+cmove ebx, eax
+mov eax, ebx
+and eax, 0xffdfffff
+test ecx, ecx
+mov ecx, esi
+cmovne ebx, eax
+mov eax, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x2b8], 0
+je short loc_fffca370 ; je 0xfffca370
+mov edx, dword [ebp - 0x25c]
+mov ecx, esi
+mov eax, edi
+call fcn_fffa724b ; call 0xfffa724b
+mov esi, dword [ebp - 0x274]
+mov ecx, dword [esi + 4]
+mov edx, eax
+mov eax, edi
+and ecx, 0xc7ffffff
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffca370: ; not directly referenced
+inc byte [ebp - 0x268]
+jmp near loc_fffca2c9 ; jmp 0xfffca2c9
+
+loc_fffca37b: ; not directly referenced
+mov eax, dword [ebp - 0x274]
+bt eax, edx
+jae short loc_fffca3f7 ; jae 0xfffca3f7
+mov al, byte [ebp - 0x278]
+mov byte [ecx + edx], al
+
+loc_fffca38f: ; not directly referenced
+inc edx
+cmp byte [ebp - 0x26c], dl
+ja short loc_fffca37b ; ja 0xfffca37b
+inc byte [ebp - 0x268]
+
+loc_fffca39e: ; not directly referenced
+mov al, byte [ebp - 0x268]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffca408 ; jae 0xfffca408
+movzx esi, byte [ebp - 0x268]
+mov eax, edi
+mov edx, dword [ebp - 0x25c]
+mov ecx, esi
+call fcn_fffa7617 ; call 0xfffa7617
+lea esi, [esi + esi*8]
+mov edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+xor edx, edx
+add esi, dword [ebp - 0x284]
+mov dword [ebp - 0x274], eax
+mov eax, dword [ebp - 0x288]
+and dword [ebp - 0x274], 0x1ff
+lea ecx, [eax + esi]
+add esi, dword [ebp - 0x290]
+jmp short loc_fffca37b ; jmp 0xfffca37b
+
+loc_fffca3f7: ; not directly referenced
+cmp byte [esi + edx], 0
+jne short loc_fffca38f ; jne 0xfffca38f
+mov al, byte [ebp - 0x278]
+mov byte [esi + edx], al
+jmp short loc_fffca38f ; jmp 0xfffca38f
+
+loc_fffca408: ; not directly referenced
+mov edx, dword [ebp - 0x25c]
+mov ecx, 0xff
+mov eax, edi
+and ebx, 0xfffffff7
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, ebx
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffca428: ; not directly referenced
+inc dword [ebp - 0x25c]
+add dword [ebp - 0x270], 0xcc
+cmp dword [ebp - 0x25c], 2
+jne loc_fffca24d ; jne 0xfffca24d
+inc dword [ebp - 0x260]
+cmp dword [ebp - 0x260], 0x10
+jne loc_fffca1f8 ; jne 0xfffca1f8
+mov ebx, dword [ebp - 0x2a0]
+lea eax, [edi + 0x3756]
+mov dword [ebp - 0x280], eax
+mov dword [ebp - 0x260], eax
+mov dword [ebp - 0x25c], 0
+mov dword [ebp - 0x278], ebx
+
+loc_fffca480: ; not directly referenced
+mov eax, dword [ebp - 0x260]
+cmp dword [eax], 2
+je short loc_fffca4b3 ; je 0xfffca4b3
+
+loc_fffca48b: ; not directly referenced
+inc dword [ebp - 0x25c]
+add dword [ebp - 0x260], 0x13c3
+add dword [ebp - 0x278], 0xcc
+cmp dword [ebp - 0x25c], 2
+jne short loc_fffca480 ; jne 0xfffca480
+jmp near loc_fffca660 ; jmp 0xfffca660
+
+loc_fffca4b3: ; not directly referenced
+mov esi, dword [ebp - 0x25c]
+mov byte [ebp - 0x268], 0
+mov eax, esi
+imul esi, esi, 0x51
+shl eax, 8
+mov dword [ebp - 0x29c], eax
+add eax, 0x4c
+mov dword [ebp - 0x288], eax
+mov dword [ebp - 0x284], esi
+
+loc_fffca4dd: ; not directly referenced
+movzx eax, byte [ebp - 0x268]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffca48b ; jae 0xfffca48b
+mov esi, eax
+mov dword [ebp - 0x270], eax
+lea eax, [eax + eax*8]
+add eax, dword [ebp - 0x284]
+lea ebx, [ebp - 0x15c]
+lea edx, [ebp - 0xba]
+add ebx, eax
+add eax, edx
+mov dword [ebp - 0x294], eax
+imul eax, esi, 0x18
+mov dword [ebp - 0x2a4], ebx
+xor ebx, ebx
+mov dword [ebp - 0x274], 0
+mov dword [ebp - 0x290], eax
+
+loc_fffca52e: ; not directly referenced
+mov eax, dword [ebp - 0x2a4]
+mov dl, byte [eax + ebx]
+mov eax, dword [ebp - 0x294]
+movsx ecx, byte [eax + ebx]
+mov al, 0xf
+test dl, dl
+je short loc_fffca55a ; je 0xfffca55a
+xor eax, eax
+test cl, cl
+je short loc_fffca55a ; je 0xfffca55a
+movsx eax, dl
+mov esi, 2
+add eax, ecx
+cdq
+idiv esi
+
+loc_fffca55a: ; not directly referenced
+cmp dword [ebp - 0x28c], 0
+je short loc_fffca5ba ; je 0xfffca5ba
+cmp bl, 8
+jne short loc_fffca5ba ; jne 0xfffca5ba
+mov dl, 0xf
+cmp al, 6
+jg short loc_fffca574 ; jg 0xfffca574
+lea edx, [eax + 8]
+and edx, 0xf
+
+loc_fffca574: ; not directly referenced
+mov eax, dword [ebp - 0x270]
+and edx, 0xf
+mov esi, dword [ebp - 0x278]
+add edx, edx
+lea ecx, [eax + 8]
+mov al, byte [esi + ecx*4 + 9]
+and eax, 0xffffffe1
+or eax, edx
+mov byte [esi + ecx*4 + 9], al
+
+loc_fffca595: ; not directly referenced
+mov eax, dword [ebp - 0x270]
+mov ebx, dword [ebp - 0x288]
+mov esi, dword [ebp - 0x29c]
+shl eax, 9
+add ebx, eax
+mov dword [ebp - 0x270], ebx
+lea esi, [esi + eax + 0x50]
+xor ebx, ebx
+jmp short loc_fffca604 ; jmp 0xfffca604
+
+loc_fffca5ba: ; not directly referenced
+mov edx, eax
+lea esi, [ebx + ebx*2]
+and edx, 0xf
+add esi, dword [ebp - 0x290]
+add esi, dword [ebp - 0x260]
+lea ecx, [ebx*4]
+shl edx, cl
+add dword [ebp - 0x274], edx
+xor edx, edx
+
+loc_fffca5df: ; not directly referenced
+imul ecx, edx, 0xd8
+inc edx
+mov byte [esi + ecx + 0x942], al
+cmp byte [ebp - 0x279], dl
+ja short loc_fffca5df ; ja 0xfffca5df
+inc ebx
+cmp byte [ebp - 0x26c], bl
+ja loc_fffca52e ; ja 0xfffca52e
+jmp short loc_fffca595 ; jmp 0xfffca595
+
+loc_fffca604: ; not directly referenced
+mov eax, dword [edi + 0x188b]
+mov edx, dword [ebp - 0x270]
+test eax, eax
+je short loc_fffca61a ; je 0xfffca61a
+xor edx, edx
+dec eax
+cmove edx, esi
+
+loc_fffca61a: ; not directly referenced
+mov ecx, dword [ebp - 0x274]
+mov eax, edi
+inc ebx
+add esi, 4
+call fcn_fffae58c ; call 0xfffae58c
+cmp bl, byte [ebp - 0x279]
+jb short loc_fffca604 ; jb 0xfffca604
+sub esp, 0xc
+mov edx, dword [ebp - 0x25c]
+mov ecx, 1
+push 0
+mov eax, edi
+push 1
+push 0
+push 0
+push 0
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+inc byte [ebp - 0x268]
+jmp near loc_fffca4dd ; jmp 0xfffca4dd
+
+loc_fffca660: ; not directly referenced
+cmp dword [ebp - 0x264], 0
+jne short loc_fffca6b9 ; jne 0xfffca6b9
+
+loc_fffca669: ; not directly referenced
+cmp dword [ebp - 0x298], 0
+je loc_fffca7b3 ; je 0xfffca7b3
+mov ecx, dword [ebp - 0x2ac]
+mov eax, edi
+mov edx, 0x3a28
+or ecx, 2
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x5f08
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x5f08
+or ah, 1
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0xe1
+mov eax, edi
+call fcn_fffa834b ; call 0xfffa834b
+jmp near loc_fffca7b3 ; jmp 0xfffca7b3
+
+loc_fffca6b9: ; not directly referenced
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push 4
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+mov ebx, dword [ebp - 0x280]
+add esp, 0x30
+mov dword [ebp - 0x260], 0
+
+loc_fffca6e8: ; not directly referenced
+cmp dword [ebx], 2
+je short loc_fffca708 ; je 0xfffca708
+
+loc_fffca6ed: ; not directly referenced
+inc dword [ebp - 0x260]
+add ebx, 0x13c3
+cmp dword [ebp - 0x260], 2
+je loc_fffca669 ; je 0xfffca669
+jmp short loc_fffca6e8 ; jmp 0xfffca6e8
+
+loc_fffca708: ; not directly referenced
+imul eax, dword [ebp - 0x260], 9
+lea esi, [ebp - 0x18]
+mov byte [ebp - 0x264], 0
+add eax, esi
+mov dword [ebp - 0x268], eax
+
+loc_fffca721: ; not directly referenced
+mov al, byte [ebp - 0x264]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffca6ed ; jae 0xfffca6ed
+movzx esi, byte [ebp - 0x264]
+mov eax, dword [ebp - 0x268]
+mov dword [ebp - 0x25c], 0
+mov dl, byte [esi + eax - 0x1e6]
+test dl, dl
+lea eax, [edx - 1]
+lea ecx, [edx + 1]
+mov dl, 2
+cmovns eax, ecx
+cbw
+idiv dl
+mov byte [ebx + esi + 0x101d], al
+
+loc_fffca765: ; not directly referenced
+mov cl, byte [ebp - 0x25c]
+mov eax, 1
+shl eax, cl
+test byte [ebx + 0xc4], al
+je short loc_fffca799 ; je 0xfffca799
+mov ecx, dword [ebp - 0x25c]
+push eax
+mov edx, dword [ebp - 0x260]
+mov eax, edi
+push 0
+push 0xff
+push esi
+call fcn_fffa7499 ; call 0xfffa7499
+add esp, 0x10
+
+loc_fffca799: ; not directly referenced
+inc dword [ebp - 0x25c]
+cmp dword [ebp - 0x25c], 4
+jne short loc_fffca765 ; jne 0xfffca765
+inc byte [ebp - 0x264]
+jmp near loc_fffca721 ; jmp 0xfffca721
+
+loc_fffca7b3: ; not directly referenced
+mov esi, dword [ebp - 0x2a0]
+xor ebx, ebx
+
+loc_fffca7bb: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [edi + eax + 0x3756], 2
+jne loc_fffca862 ; jne 0xfffca862
+mov byte [ebp - 0x25c], 0
+
+loc_fffca7d6: ; not directly referenced
+mov al, byte [ebp - 0x25c]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffca849 ; jae 0xfffca849
+movzx eax, byte [ebp - 0x25c]
+mov edx, ebx
+mov ecx, eax
+mov dword [ebp - 0x260], eax
+mov eax, edi
+call fcn_fffa720e ; call 0xfffa720e
+mov ecx, dword [ebp - 0x260]
+lea ecx, [esi + ecx*4]
+mov dword [ebp - 0x264], ecx
+mov ecx, dword [ecx + 0x28]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x2b8], 0
+je short loc_fffca841 ; je 0xfffca841
+mov ecx, dword [ebp - 0x260]
+mov edx, ebx
+mov eax, edi
+call fcn_fffa724b ; call 0xfffa724b
+mov ecx, dword [ebp - 0x264]
+mov ecx, dword [ecx + 4]
+mov edx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffca841: ; not directly referenced
+inc byte [ebp - 0x25c]
+jmp short loc_fffca7d6 ; jmp 0xfffca7d6
+
+loc_fffca849: ; not directly referenced
+mov ecx, 0xff
+mov edx, ebx
+mov eax, edi
+call fcn_fffa7288 ; call 0xfffa7288
+mov ecx, dword [esi]
+mov edx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffca862: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne loc_fffca7bb ; jne 0xfffca7bb
+mov eax, edi
+call fcn_fffb0e8a ; call 0xfffb0e8a
+
+loc_fffca879: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffca881: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+push edx
+push edx
+movzx ecx, byte [ebx + 0x248e]
+lea esi, [ebx + 0x2490]
+mov eax, ebx
+push 0
+mov edx, esi
+push 0xf
+push 1
+push 0
+push 1
+push 2
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+test eax, eax
+jne short loc_fffca8f5 ; jne 0xfffca8f5
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffca8d4 ; jne 0xfffca8d4
+cmp dword [ebx + 0x2480], 1
+jne short loc_fffca8d4 ; jne 0xfffca8d4
+mov ecx, 2
+mov edx, esi
+mov eax, ebx
+call fcn_fffbd80c ; call 0xfffbd80c
+
+loc_fffca8d4: ; not directly referenced
+push eax
+mov edx, esi
+push eax
+movzx ecx, byte [ebx + 0x248e]
+mov eax, ebx
+push 1
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+
+loc_fffca8f5: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffca8fc: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+mov ebx, dword [ebp + 8]
+push edx
+push edx
+movzx ecx, byte [ebx + 0x248e]
+lea esi, [ebx + 0x2490]
+mov eax, ebx
+push 0
+mov edx, esi
+push 0xf
+push 1
+push 0
+push 1
+push 1
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+test eax, eax
+jne short loc_fffca967 ; jne 0xfffca967
+cmp dword [ebx + 0x188b], 1
+jne short loc_fffca946 ; jne 0xfffca946
+mov ecx, 1
+mov edx, esi
+mov eax, ebx
+call fcn_fffbd80c ; call 0xfffbd80c
+
+loc_fffca946: ; not directly referenced
+push eax
+mov edx, esi
+push eax
+movzx ecx, byte [ebx + 0x248e]
+mov eax, ebx
+push 1
+push 0xf
+push 0
+push 1
+push 0
+push 1
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+
+loc_fffca967: ; not directly referenced
+lea esp, [ebp - 8]
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffca96e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0xad10
+mov esi, dword [ebp + 0x20]
+mov ebx, dword [ebp + 0x24]
+mov dword [ebp - 0xacb4], edx
+mov dl, byte [ebp + 0x14]
+mov dword [ebp - 0xac88], ecx
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0xacb0], esi
+mov dword [ebp - 0xacac], ebx
+mov ebx, dword [ebp + 0x28]
+mov byte [ebp - 0xace6], dl
+mov edx, esi
+mov esi, dword [edi + 0x5edc]
+mov byte [ebp - 0xac90], dl
+mov dl, byte [ebp - 0xacac]
+mov dword [ebp - 0xac98], eax
+mov ecx, ebx
+mov byte [ebp - 0xac8c], al
+mov byte [ebp - 0xaca1], dl
+mov dl, cl
+mov ecx, dword [edi + 0x2480]
+mov dword [ebp - 0xaca0], edx
+mov dl, byte [ebp + 0x30]
+mov dword [ebp - 0xac94], ebx
+mov ebx, dword [ebp + 0x2c]
+mov dword [ebp - 0xaca8], esi
+mov esi, dword [edi + 0x2443]
+mov dword [ebp - 0xacc4], ecx
+mov byte [ebp - 0xad09], dl
+mov edx, dword [edi + 0x188b]
+mov dword [ebp - 0xacc0], edx
+dec edx
+sete dl
+cmp al, 6
+sete al
+mov byte [ebp - 0xacbb], dl
+mov byte [ebp - 0xace7], al
+and eax, edx
+movzx eax, al
+mov dword [ebp - 0xacc8], eax
+mov al, byte [ebp - 0xac88]
+and al, byte [edi + 0x248e]
+push 0
+push 0x5ab4
+mov byte [ebp - 0xac88], al
+mov eax, dword [ebp + 8]
+and al, byte [edi + 0x248d]
+mov byte [ebp - 0xac9c], al
+lea eax, [ebp - 0x5acc]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0xff
+push 0x3e
+push dword [ebp - 0xacb4]
+call dword [esi + 0x5c] ; ucall
+lea eax, [ebp - 0xabcc]
+add esp, 0xc
+push 0
+push 0x280
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x80
+lea eax, [ebp - 0xac4c]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x680
+lea eax, [ebp - 0xa94c]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0xac75]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x10
+lea eax, [ebp - 0xac5c]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0xac73]
+push eax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x4800
+lea eax, [ebp - 0xa2cc]
+push eax
+call dword [esi + 0x5c] ; ucall
+mov edx, dword [ebp - 0xaca0]
+add esp, 0x10
+xor eax, eax
+
+loc_fffcab02: ; not directly referenced
+mov byte [ebp + eax - 0xac71], al
+inc eax
+cmp eax, 9
+jne short loc_fffcab02 ; jne 0xfffcab02
+mov byte [edi + 0x247a], 0
+cmp bl, 9
+jne short loc_fffcab24 ; jne 0xfffcab24
+mov dl, byte [ebp - 0xac94]
+dec edx
+jmp short loc_fffcab33 ; jmp 0xfffcab33
+
+loc_fffcab24: ; not directly referenced
+mov al, byte [ebp - 0xac94]
+sub eax, 3
+cmp bl, 0xa
+cmove edx, eax
+
+loc_fffcab33: ; not directly referenced
+mov ecx, dword [ebp - 0xac98]
+mov al, cl
+sub eax, 0xa
+cmp cl, 0xf
+sete cl
+cmp al, 2
+mov byte [ebp - 0xacbc], al
+setbe al
+or al, cl
+mov byte [ebp - 0xac94], cl
+movzx ecx, dl
+movzx edx, byte [ebp - 0xac88]
+je short loc_fffcab7e ; je 0xfffcab7e
+sub esp, 0xc
+mov eax, edi
+push 0
+call fcn_fffb2759 ; call 0xfffb2759
+add esp, 0x10
+mov dword [ebp - 0xacf0], 1
+jmp short loc_fffcab97 ; jmp 0xfffcab97
+
+loc_fffcab7e: ; not directly referenced
+sub esp, 0xc
+mov eax, edi
+push 0
+call fcn_fffb26ca ; call 0xfffb26ca
+add esp, 0x10
+mov dword [ebp - 0xacf0], 0
+
+loc_fffcab97: ; not directly referenced
+test bl, bl
+je short loc_fffcaba1 ; je 0xfffcaba1
+mov byte [edi + 0x248b], bl
+
+loc_fffcaba1: ; not directly referenced
+mov eax, dword [ebp - 0xaca8]
+xor ebx, ebx
+mov byte [ebp - 0xaca3], 0
+add eax, 0x70
+mov dword [ebp - 0xaca0], eax
+movzx eax, byte [ebp - 0xac88]
+mov dword [ebp - 0xac88], eax
+
+loc_fffcabc6: ; not directly referenced
+mov eax, dword [ebp - 0xac88]
+bt eax, ebx
+jae short loc_fffcac14 ; jae 0xfffcac14
+imul eax, ebx, 0x13c3
+mov cl, byte [ebp - 0xac9c]
+mov edx, ebx
+and cl, byte [edi + eax + 0x381a]
+mov eax, edi
+mov byte [ebp + ebx - 0xac75], cl
+movzx ecx, cl
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0xaca3], al
+push eax
+movzx eax, byte [edi + 0x2488]
+push 0
+push eax
+push dword [ebp - 0xaca0]
+call dword [esi + 0x5c] ; ucall
+add esp, 0x10
+
+loc_fffcac14: ; not directly referenced
+inc ebx
+add dword [ebp - 0xaca0], 0xcc
+cmp ebx, 2
+jne short loc_fffcabc6 ; jne 0xfffcabc6
+cmp byte [ebp - 0xaca3], 0
+je loc_fffcbd35 ; je 0xfffcbd35
+movzx esi, byte [ebp - 0xac9c]
+xor eax, eax
+mov dword [ebp - 0xacec], esi
+
+loc_fffcac40: ; not directly referenced
+mov esi, dword [ebp - 0xacec]
+mov byte [ebp - 0xaca4], al
+bt esi, eax
+jb short loc_fffcac5e ; jb 0xfffcac5e
+inc eax
+cmp eax, 4
+jne short loc_fffcac40 ; jne 0xfffcac40
+mov byte [ebp - 0xaca4], 0
+
+loc_fffcac5e: ; not directly referenced
+mov ecx, dword [ebp - 0xac98]
+mov al, byte [edi + 0x2488]
+mov bl, al
+mov al, cl
+sub eax, 7
+cmp al, 5
+mov byte [ebp - 0xace8], al
+setbe al
+or al, byte [ebp - 0xac94]
+mov al, 1
+cmovne ebx, eax
+mov eax, ecx
+cmp cl, 3
+sete cl
+cmp al, 1
+setbe dl
+mov eax, 1
+or cl, dl
+mov byte [ebp - 0xaca2], bl
+jne short loc_fffcacaf ; jne 0xfffcacaf
+xor eax, eax
+cmp byte [ebp - 0xac98], 2
+sete al
+
+loc_fffcacaf: ; not directly referenced
+mov dword [ebp - 0xaccc], eax
+xor eax, 1
+test byte [ebp - 0xacbb], al
+je short loc_fffcacd9 ; je 0xfffcacd9
+cmp byte [ebp - 0xacbc], 1
+setbe al
+or eax, dword [ebp - 0xac94]
+movzx eax, al
+mov dword [ebp - 0xaccc], eax
+
+loc_fffcacd9: ; not directly referenced
+cmp dword [ebp - 0xaccc], 0
+mov byte [ebp - 0xac88], 0
+je loc_fffcae2f ; je 0xfffcae2f
+xor esi, esi
+xor ebx, ebx
+cmp byte [ebp - 0xac98], 1
+jne short loc_fffcad17 ; jne 0xfffcad17
+mov edx, 0x3a04
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+cmp dword [ebp - 0xacc0], 0
+mov esi, eax
+je loc_fffcadb4 ; je 0xfffcadb4
+jmp short loc_fffcad4e ; jmp 0xfffcad4e
+
+loc_fffcad17: ; not directly referenced
+mov edx, 0x3a00
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+cmp dword [ebp - 0xacc0], 0
+mov ebx, eax
+jne short loc_fffcad4e ; jne 0xfffcad4e
+mov ecx, dword [ebp - 0xac98]
+cmp cl, 2
+je short loc_fffcad44 ; je 0xfffcad44
+cmp cl, 3
+je short loc_fffcad49 ; je 0xfffcad49
+test cl, cl
+jne short loc_fffcadbd ; jne 0xfffcadbd
+jmp short loc_fffcadb4 ; jmp 0xfffcadb4
+
+loc_fffcad44: ; not directly referenced
+shr eax, 0x1a
+jmp short loc_fffcad93 ; jmp 0xfffcad93
+
+loc_fffcad49: ; not directly referenced
+shr eax, 0x14
+jmp short loc_fffcadb4 ; jmp 0xfffcadb4
+
+loc_fffcad4e: ; not directly referenced
+mov edx, 0x3a08
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, 0x3a0c
+mov dword [ebp - 0xac88], eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov eax, dword [ebp - 0xac98]
+cmp al, 0xf
+ja short loc_fffcadc1 ; ja 0xfffcadc1
+movzx eax, al
+mov ecx, dword [ebp - 0xac88]
+jmp dword [eax*4 + ref_fffd5ae0] ; ujmp: jmp dword [eax*4 - 0x2a520]
+
+loc_fffcad86: ; not directly referenced
+mov al, bl
+jmp short loc_fffcadb4 ; jmp 0xfffcadb4
+
+loc_fffcad8a: ; not directly referenced
+mov eax, esi
+jmp short loc_fffcadb4 ; jmp 0xfffcadb4
+
+loc_fffcad8e: ; not directly referenced
+shr ebx, 0x14
+mov al, bl
+
+loc_fffcad93: ; not directly referenced
+and eax, 0x1f
+mov byte [ebp - 0xac88], al
+mov al, 0x1f
+jmp short loc_fffcadca ; jmp 0xfffcadca
+
+loc_fffcada0: ; not directly referenced
+shr ebx, 0x1a
+mov dword [ebp - 0xac88], ebx
+jmp short loc_fffcadbd ; jmp 0xfffcadbd
+
+loc_fffcadab: ; not directly referenced
+mov eax, ecx
+shr eax, 0xc
+jmp short loc_fffcadb4 ; jmp 0xfffcadb4
+
+loc_fffcadb2: ; not directly referenced
+mov al, cl
+
+loc_fffcadb4: ; not directly referenced
+and eax, 0x3f
+mov byte [ebp - 0xac88], al
+
+loc_fffcadbd: ; not directly referenced
+mov al, 0x3f
+jmp short loc_fffcadca ; jmp 0xfffcadca
+
+loc_fffcadc1: ; not directly referenced
+mov al, 0x3f
+mov byte [ebp - 0xac88], 0
+
+loc_fffcadca: ; not directly referenced
+cmp byte [ebp - 0xac98], 0xa
+sete dl
+or dl, byte [ebp - 0xac94]
+jne short loc_fffcae01 ; jne 0xfffcae01
+mov esi, dword [ebp - 0xacb0]
+mov bl, byte [ebp - 0xac88]
+mov ecx, esi
+lea edx, [ebx + ecx - 3]
+mov bl, byte [ebp - 0xac90]
+sub ecx, edx
+test dl, dl
+cmovs ebx, ecx
+mov byte [ebp - 0xac90], bl
+
+loc_fffcae01: ; not directly referenced
+movzx esi, byte [ebp - 0xaca1]
+sub eax, 3
+sub eax, dword [ebp - 0xac88]
+cmp al, byte [ebp - 0xacac]
+cmovs esi, eax
+mov eax, esi
+mov esi, dword [ebp - 0xac90]
+mov ebx, esi
+cmp al, bl
+cmovl eax, esi
+mov byte [ebp - 0xaca1], al
+
+loc_fffcae2f: ; not directly referenced
+mov eax, dword [ebp + 0x1c]
+mov dword [ebp - 0xace4], eax
+movzx eax, byte [ebp - 0xaca4]
+imul esi, eax, 0x90
+mov dword [ebp - 0xacd8], eax
+mov dword [ebp - 0xad08], esi
+add esi, 4
+mov dword [ebp - 0xad00], esi
+mov esi, dword [ebp + 0x10]
+mov dword [ebp - 0xacb8], esi
+movzx esi, byte [ebp - 0xace6]
+mov word [ebp - 0xacba], si
+
+loc_fffcae71: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov esi, dword [ebp - 0xacb8]
+mov word [ebp - 0xad04], ax
+sub esi, eax
+cmp si, word [ebp - 0xacba]
+jae loc_fffcb350 ; jae 0xfffcb350
+mov eax, dword [ebp - 0xacb8]
+mov al, byte [eax]
+mov cl, al
+mov byte [ebp - 0xac98], al
+movzx eax, al
+mov ebx, eax
+mov dword [ebp - 0xacb0], eax
+xor eax, eax
+cmp cl, 0x21
+ja short loc_fffcaeb9 ; ja 0xfffcaeb9
+movzx eax, byte [ebx + ref_fffd5f1c] ; movzx eax, byte [ebx - 0x2a0e4]
+
+loc_fffcaeb9: ; not directly referenced
+cmp al, 8
+mov ebx, 8
+cmovbe ebx, eax
+mov al, byte [ebp - 0xac98]
+sub eax, 0xc
+mov byte [ebp - 0xacdc], al
+cmp al, 1
+jbe short loc_fffcaefa ; jbe 0xfffcaefa
+push eax
+mov ecx, dword [ebp - 0xacb0]
+push eax
+mov eax, edi
+push dword [ebp - 0xacec]
+push dword [ebp - 0xacd8]
+lea edx, [edi + 0x2490]
+call fcn_fffa7e6c ; call 0xfffa7e6c
+add esp, 0x10
+
+loc_fffcaefa: ; not directly referenced
+cmp dword [ebp - 0xacc4], 2
+jne short loc_fffcaf27 ; jne 0xfffcaf27
+mov al, byte [ebp - 0xac98]
+mov byte [ebp - 0xac9c], 0x25
+cmp al, 0x11
+sete dl
+cmp al, 5
+sete al
+or dl, al
+jne short loc_fffcaf83 ; jne 0xfffcaf83
+cmp byte [ebp - 0xac98], 0x21
+je short loc_fffcaf83 ; je 0xfffcaf83
+
+loc_fffcaf27: ; not directly referenced
+mov al, byte [ebp - 0xac98]
+mov byte [ebp - 0xac9c], 0x36
+cmp al, 0x10
+sete dl
+cmp al, 4
+sete al
+or dl, al
+jne short loc_fffcaf83 ; jne 0xfffcaf83
+mov al, byte [ebp - 0xac98]
+cmp al, 5
+sete dl
+cmp al, 0x20
+sete al
+or dl, al
+jne short loc_fffcaf83 ; jne 0xfffcaf83
+mov al, byte [ebp - 0xac98]
+cmp al, 0x21
+sete dl
+cmp al, 0x11
+sete al
+or dl, al
+jne short loc_fffcaf83 ; jne 0xfffcaf83
+mov al, byte [ebp - 0xac98]
+cmp al, 0xd
+je short loc_fffcaf83 ; je 0xfffcaf83
+cmp al, 0xc
+mov cl, 0x1f
+mov al, 0x40
+cmove ecx, eax
+mov byte [ebp - 0xac9c], cl
+
+loc_fffcaf83: ; not directly referenced
+mov eax, dword [ebp - 0xace4]
+mov ecx, 0x14
+xor edx, edx
+movzx esi, si
+mov ax, word [eax]
+div cx
+mov cl, byte [ebp - 0xac9c]
+movzx edx, cl
+cmp dx, ax
+cmova ecx, eax
+imul ebx, ebx, 0x240
+lea eax, [edi + 0x2490]
+mov dword [ebp - 0xace0], eax
+mov byte [ebp - 0xac9c], cl
+add eax, ebx
+add eax, dword [ebp - 0xad00]
+add ebx, dword [ebp - 0xad08]
+mov dword [ebp - 0xad04], eax
+imul eax, esi, 0x1200
+mov dword [ebp - 0xacf8], ebx
+mov dword [ebp - 0xacfc], eax
+movsx eax, byte [ebp - 0xac90]
+mov byte [ebp - 0xaca0], al
+mov dword [ebp - 0xad10], eax
+movzx eax, byte [ebp - 0xaca3]
+mov dword [ebp - 0xacac], eax
+
+loc_fffcb006: ; not directly referenced
+mov al, byte [ebp - 0xaca0]
+cmp byte [ebp - 0xaca1], al
+jl loc_fffcb33e ; jl 0xfffcb33e
+movsx eax, byte [ebp - 0xaca0]
+mov dword [ebp - 0xacd0], eax
+mov eax, dword [ebp - 0xad10]
+sub dword [ebp - 0xacd0], eax
+cmp dword [ebp - 0xacc8], 0
+jne short loc_fffcb04d ; jne 0xfffcb04d
+
+loc_fffcb03a: ; not directly referenced
+movsx ax, byte [ebp - 0xaca0]
+xor ebx, ebx
+mov word [ebp - 0xacf4], ax
+jmp short loc_fffcb0a4 ; jmp 0xfffcb0a4
+
+loc_fffcb04d: ; not directly referenced
+movsx ax, byte [ebp - 0xaca0]
+mov dl, 8
+mov esi, dword [ebp - 0xaca8]
+idiv dl
+movsx ecx, ah
+mov dl, al
+cmp cl, 1
+movsx eax, al
+setle bl
+test dl, dl
+mov al, byte [esi + eax + 0x1bc]
+sete dl
+test bl, dl
+jne loc_fffcb333 ; jne 0xfffcb333
+mov edx, 1
+shl edx, cl
+test al, dl
+je short loc_fffcb03a ; je 0xfffcb03a
+jmp near loc_fffcb333 ; jmp 0xfffcb333
+
+loc_fffcb091: ; not directly referenced
+cmp byte [ebp - 0xacbb], 0
+jne short loc_fffcb113 ; jne 0xfffcb113
+
+loc_fffcb09a: ; not directly referenced
+inc ebx
+cmp ebx, 2
+je loc_fffcb14a ; je 0xfffcb14a
+
+loc_fffcb0a4: ; not directly referenced
+mov eax, dword [ebp - 0xacac]
+bt eax, ebx
+jae short loc_fffcb09a ; jae 0xfffcb09a
+xor eax, eax
+cmp byte [ebp - 0xac8c], 7
+jne short loc_fffcb0d0 ; jne 0xfffcb0d0
+imul edx, ebx, 0x13c3
+cmp dword [edi + edx + 0x3816], 2
+mov edx, 0x20
+cmove eax, edx
+
+loc_fffcb0d0: ; not directly referenced
+xor esi, esi
+mov word [ebp - 0xacd4], ax
+
+loc_fffcb0d9: ; not directly referenced
+mov eax, esi
+cmp byte [ebp - 0xaca2], al
+jbe short loc_fffcb091 ; jbe 0xfffcb091
+mov eax, dword [ebp - 0xacf4]
+mov edx, ebx
+add eax, dword [ebp - 0xacd4]
+push 0
+movzx ecx, byte [ebp + ebx - 0xac75]
+cwde
+push eax
+movzx eax, byte [ebp - 0xac8c]
+push eax
+mov eax, edi
+push esi
+inc esi
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+jmp short loc_fffcb0d9 ; jmp 0xfffcb0d9
+
+loc_fffcb113: ; not directly referenced
+mov al, byte [ebp - 0xac8c]
+and eax, 0xfffffff7
+dec al
+jne loc_fffcb09a ; jne 0xfffcb09a
+mov eax, dword [ebp - 0xaca8]
+cmp byte [eax + 0x1c5], 0
+je loc_fffcb09a ; je 0xfffcb09a
+xor ecx, ecx
+mov edx, 1
+mov eax, edi
+call fcn_fffb9560 ; call 0xfffb9560
+jmp near loc_fffcb09a ; jmp 0xfffcb09a
+
+loc_fffcb14a: ; not directly referenced
+cmp byte [ebp - 0xacdc], 1
+ja loc_fffcb1ec ; ja 0xfffcb1ec
+cmp dword [ebp - 0xacc4], 3
+je short loc_fffcb1a5 ; je 0xfffcb1a5
+
+loc_fffcb160: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0xacac]
+push eax
+mov edx, dword [ebp - 0xace0]
+push 1
+lea eax, [ebp - 0xac5c]
+push eax
+movzx eax, byte [ebp - 0xac9c]
+push eax
+mov eax, edi
+push 0
+push dword [ebp - 0xacb0]
+push dword [ebp - 0xacd8]
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x14
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+jmp near loc_fffcb228 ; jmp 0xfffcb228
+
+loc_fffcb1a5: ; not directly referenced
+mov eax, dword [ebp - 0xad04]
+xor edx, edx
+xor ecx, ecx
+
+loc_fffcb1af: ; not directly referenced
+cmp dword [edi + edx + 0x3756], 2
+jne short loc_fffcb1d5 ; jne 0xfffcb1d5
+mov ebx, dword [eax - 4]
+cmp ebx, 0x29
+lea esi, [ebx - 0x28]
+mov ebx, dword [eax]
+cmovb esi, ecx
+mov dword [eax - 4], esi
+cmp ebx, 0x29
+lea esi, [ebx - 0x28]
+cmovb esi, ecx
+mov dword [eax], esi
+
+loc_fffcb1d5: ; not directly referenced
+add edx, 0x13c3
+add eax, 0x48
+cmp edx, 0x2786
+je loc_fffcb160 ; je 0xfffcb160
+jmp short loc_fffcb1af ; jmp 0xfffcb1af
+
+loc_fffcb1ec: ; not directly referenced
+push eax
+mov ecx, dword [ebp - 0xacac]
+push eax
+mov edx, dword [ebp - 0xace0]
+lea eax, [ebp - 0xac5c]
+push eax
+movzx eax, byte [ebp - 0xac9c]
+push eax
+lea eax, [ebp - 0xac71]
+push eax
+mov eax, dword [ebp - 0xacd8]
+push dword [ebp - 0xacb0]
+push eax
+push eax
+mov eax, edi
+call fcn_fffd13ed ; call 0xfffd13ed
+add esp, 0x20
+
+loc_fffcb228: ; not directly referenced
+movsx eax, byte [ebp - 0xacd0]
+xor ecx, ecx
+mov esi, dword [ebp - 0xacfc]
+imul eax, eax, 0x48
+lea eax, [esi + eax + 4]
+lea eax, [ebp + eax - 0xa2cc]
+mov dword [ebp - 0xacd4], eax
+
+loc_fffcb24b: ; not directly referenced
+mov eax, dword [ebp - 0xacac]
+bt eax, ecx
+jae loc_fffcb322 ; jae 0xfffcb322
+imul esi, ecx, 0x48
+mov eax, dword [ebp - 0xacd4]
+add esi, dword [ebp - 0xacf8]
+lea ebx, [eax - 4]
+add esi, edi
+
+loc_fffcb26e: ; not directly referenced
+mov al, byte [edi + 0x2488]
+mov word [ebp - 0xacd0], 0xffff
+mov byte [ebp - 0xacf4], al
+xor eax, eax
+
+loc_fffcb285: ; not directly referenced
+cmp byte [ebp - 0xacf4], al
+jbe short loc_fffcb2c0 ; jbe 0xfffcb2c0
+mov edx, dword [esi + eax*8 + 0x2490]
+mov word [ebx + eax*4], dx
+mov edx, dword [ebp - 0xacd0]
+cmp dx, word [esi + eax*8 + 0x2490]
+cmova dx, word [esi + eax*8 + 0x2490]
+inc eax
+cmp byte [ebp - 0xacdc], 1
+mov word [ebp - 0xacd0], dx
+ja short loc_fffcb285 ; ja 0xfffcb285
+
+loc_fffcb2c0: ; not directly referenced
+cmp byte [ebp - 0xaca2], 1
+jne short loc_fffcb2d2 ; jne 0xfffcb2d2
+mov eax, dword [ebp - 0xacd0]
+mov word [ebx], ax
+
+loc_fffcb2d2: ; not directly referenced
+cmp byte [ebp - 0xac94], 0
+je short loc_fffcb310 ; je 0xfffcb310
+mov al, byte [ebp - 0xac98]
+cmp al, 0xc
+je short loc_fffcb2ee ; je 0xfffcb2ee
+cmp al, 0xd
+jne short loc_fffcb310 ; jne 0xfffcb310
+jmp near loc_fffcbd2b ; jmp 0xfffcbd2b
+
+loc_fffcb2ee: ; not directly referenced
+mov eax, 0x8c
+
+loc_fffcb2f3: ; not directly referenced
+cmp word [ebx], ax
+ja short loc_fffcb310 ; ja 0xfffcb310
+sub esp, 0xc
+push edi
+mov dword [ebp - 0xacd0], ecx
+call fcn_fffc82f4 ; call 0xfffc82f4
+mov ecx, dword [ebp - 0xacd0]
+add esp, 0x10
+
+loc_fffcb310: ; not directly referenced
+add ebx, 2
+add esi, 4
+cmp ebx, dword [ebp - 0xacd4]
+jne loc_fffcb26e ; jne 0xfffcb26e
+
+loc_fffcb322: ; not directly referenced
+inc ecx
+add dword [ebp - 0xacd4], 0x24
+cmp ecx, 2
+jne loc_fffcb24b ; jne 0xfffcb24b
+
+loc_fffcb333: ; not directly referenced
+inc byte [ebp - 0xaca0]
+jmp near loc_fffcb006 ; jmp 0xfffcb006
+
+loc_fffcb33e: ; not directly referenced
+add dword [ebp - 0xace4], 2
+inc dword [ebp - 0xacb8]
+jmp near loc_fffcae71 ; jmp 0xfffcae71
+
+loc_fffcb350: ; not directly referenced
+movsx esi, byte [ebp - 0xaca1]
+movsx eax, byte [ebp - 0xac90]
+mov dword [ebp - 0xac98], 0
+mov dword [ebp - 0xacd4], esi
+sub dword [ebp - 0xacd4], eax
+mov esi, dword [ebp - 0xacd4]
+mov dword [ebp - 0xacd0], eax
+mov eax, esi
+mov byte [ebp - 0xad00], al
+inc eax
+mov byte [ebp - 0xacac], al
+lea eax, [ebp - 0x5acc]
+mov dword [ebp - 0xacf8], eax
+lea eax, [edi + 0x3756]
+mov dword [ebp - 0xacb0], eax
+mov eax, dword [ebp - 0xacb4]
+mov dword [ebp - 0xace0], eax
+movzx eax, byte [ebp - 0xace6]
+mov dword [ebp - 0xad08], eax
+shl eax, 6
+mov dword [ebp - 0xacdc], eax
+
+loc_fffcb3c9: ; not directly referenced
+movzx eax, byte [ebp - 0xaca3]
+mov esi, dword [ebp - 0xac98]
+mov dword [ebp - 0xace4], eax
+bt eax, esi
+jae loc_fffcbabc ; jae 0xfffcbabc
+mov eax, dword [ebp - 0xacf8]
+mov dword [ebp - 0xac9c], 0
+mov dword [ebp - 0xacec], eax
+
+loc_fffcb3fb: ; not directly referenced
+mov al, byte [ebp - 0xac9c]
+cmp byte [ebp - 0xaca2], al
+jbe loc_fffcbabc ; jbe 0xfffcbabc
+imul eax, dword [ebp - 0xac98], 9
+mov word [ebp - 0xacd8], 0
+mov dword [ebp - 0xacfc], eax
+
+loc_fffcb423: ; not directly referenced
+mov ax, word [ebp - 0xacba]
+mov esi, dword [ebp - 0xacd8]
+cmp si, ax
+jae loc_fffcb5de ; jae 0xfffcb5de
+mov al, byte [ebp - 0xac90]
+movzx ebx, si
+mov byte [ebp - 0xaca0], al
+mov eax, ebx
+shl eax, 6
+mov dword [ebp - 0xacb8], eax
+
+loc_fffcb453: ; not directly referenced
+mov al, byte [ebp - 0xaca0]
+cmp byte [ebp - 0xaca1], al
+jl loc_fffcb5d2 ; jl 0xfffcb5d2
+mov al, byte [ebp - 0xaca0]
+sub eax, dword [ebp - 0xacd0]
+movsx esi, al
+mov eax, dword [ebp - 0xacb8]
+add eax, esi
+cmp dword [ebp - 0xacc8], 0
+mov word [ebp + eax*2 - 0xabcc], 0
+je short loc_fffcb4df ; je 0xfffcb4df
+movsx ax, byte [ebp - 0xaca0]
+mov dl, 8
+mov ecx, dword [ebp - 0xaca8]
+idiv dl
+mov byte [ebp - 0xace6], ah
+mov dl, al
+movsx eax, al
+cmp byte [ebp - 0xace6], 1
+mov al, byte [ecx + eax + 0x1bc]
+setle cl
+test dl, dl
+sete dl
+test cl, dl
+jne loc_fffcb5c7 ; jne 0xfffcb5c7
+mov cl, byte [ebp - 0xace6]
+mov edx, 1
+shl edx, cl
+test al, dl
+jne loc_fffcb5c7 ; jne 0xfffcb5c7
+
+loc_fffcb4df: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov al, byte [eax + ebx]
+lea edx, [eax - 4]
+cmp dl, 1
+setbe cl
+cmp al, 0x21
+sete dl
+or cl, dl
+jne short loc_fffcb503 ; jne 0xfffcb503
+cmp al, 0x20
+je short loc_fffcb503 ; je 0xfffcb503
+cmp al, 0xd
+jne loc_fffcb587 ; jne 0xfffcb587
+
+loc_fffcb503: ; not directly referenced
+mov eax, dword [ebp + 0x18]
+imul ecx, esi, 0x12
+movzx edx, byte [eax + ebx]
+imul eax, ebx, 0x480
+add eax, ecx
+mov ecx, edx
+add eax, dword [ebp - 0xacfc]
+add eax, dword [ebp - 0xac9c]
+imul cx, word [ebp + eax*4 - 0xa2ca]
+imul edx, dword [ebp + eax*4 - 0xa2cc]
+mov word [ebp - 0xace6], dx
+mov eax, edx
+mov edx, ecx
+sub dx, word [ebp - 0xace6]
+add eax, ecx
+add eax, eax
+mov word [ebp - 0xacf4], dx
+mov edx, eax
+sub eax, dword [ebp - 0xacf4]
+add edx, dword [ebp - 0xacf4]
+cmp cx, word [ebp - 0xace6]
+mov ecx, 2
+cmovbe eax, edx
+mov edx, eax
+sar dx, 0xf
+idiv cx
+add esi, dword [ebp - 0xacb8]
+mov word [ebp + esi*2 - 0xabcc], ax
+jmp short loc_fffcb5c7 ; jmp 0xfffcb5c7
+
+loc_fffcb587: ; not directly referenced
+mov ecx, dword [ebp + 0x18]
+mov eax, dword [ebp - 0xacb8]
+movzx edx, byte [ecx + ebx]
+imul ecx, ebx, 0x480
+add eax, esi
+imul esi, esi, 0x12
+add esi, ecx
+add esi, dword [ebp - 0xacfc]
+add esi, dword [ebp - 0xac9c]
+movzx ecx, word [ebp + esi*4 - 0xa2ca]
+add ecx, dword [ebp + esi*4 - 0xa2cc]
+imul ecx, edx
+mov word [ebp + eax*2 - 0xabcc], cx
+
+loc_fffcb5c7: ; not directly referenced
+inc byte [ebp - 0xaca0]
+jmp near loc_fffcb453 ; jmp 0xfffcb453
+
+loc_fffcb5d2: ; not directly referenced
+inc word [ebp - 0xacd8]
+jmp near loc_fffcb423 ; jmp 0xfffcb423
+
+loc_fffcb5de: ; not directly referenced
+cmp byte [ebp - 0xac8c], 0xc
+mov byte [ebp - 0xaca0], 1
+sete bl
+cmp byte [ebp - 0xace8], 2
+mov byte [ebp - 0xace6], bl
+setbe al
+or al, bl
+jne loc_fffcb73c ; jne 0xfffcb73c
+cmp byte [ebp - 0xace7], 0
+je short loc_fffcb666 ; je 0xfffcb666
+cmp byte [ebp - 0xacbb], 0
+mov byte [ebp - 0xaca0], 3
+je loc_fffcb73c ; je 0xfffcb73c
+mov al, byte [ebp - 0xaca1]
+push ecx
+push ecx
+mov ecx, 8
+push 3
+lea ebx, [eax + 1]
+sub ebx, dword [ebp - 0xac90]
+push 0
+lea eax, [ebp - 0xabcc]
+movzx ebx, bl
+mov edx, ebx
+call fcn_fffa7047 ; call 0xfffa7047
+mov ecx, 8
+mov edx, ebx
+pop esi
+pop eax
+lea eax, [ebp - 0xab4c]
+push 3
+push 0
+jmp near loc_fffcb6eb ; jmp 0xfffcb6eb
+
+loc_fffcb666: ; not directly referenced
+cmp byte [ebp - 0xac8c], 5
+jne loc_fffcb6fc ; jne 0xfffcb6fc
+cmp dword [ebp - 0xacc0], 0
+je short loc_fffcb68e ; je 0xfffcb68e
+movzx eax, byte [ebp - 0xacd4]
+mov ebx, 1
+xor ecx, ecx
+mov dl, 4
+jmp short loc_fffcb69b ; jmp 0xfffcb69b
+
+loc_fffcb68e: ; not directly referenced
+movzx eax, byte [ebp - 0xacac]
+xor ebx, ebx
+mov cl, 2
+mov dl, 5
+
+loc_fffcb69b: ; not directly referenced
+movzx esi, cl
+movzx ecx, dl
+mov dword [ebp - 0xaca0], esi
+mov edx, eax
+push esi
+push esi
+push 1
+push dword [ebp - 0xaca0]
+lea esi, [ebp - 0xabcc]
+lea eax, [ebx + ebx]
+add eax, esi
+mov esi, edx
+mov dword [ebp - 0xacb8], ecx
+call fcn_fffa7047 ; call 0xfffa7047
+mov ecx, dword [ebp - 0xacb8]
+pop eax
+pop edx
+mov edx, esi
+lea eax, [ebp + ebx - 0xabcc]
+lea eax, [eax + ebx + 0x80]
+push 1
+push dword [ebp - 0xaca0]
+
+loc_fffcb6eb: ; not directly referenced
+call fcn_fffa7047 ; call 0xfffa7047
+add esp, 0x10
+mov byte [ebp - 0xaca0], 1
+jmp short loc_fffcb73c ; jmp 0xfffcb73c
+
+loc_fffcb6fc: ; not directly referenced
+cmp byte [ebp - 0xac8c], 0xa
+mov byte [ebp - 0xaca0], 5
+sete al
+or al, byte [ebp - 0xac94]
+jne short loc_fffcb73c ; jne 0xfffcb73c
+cmp byte [ebp - 0xacac], 6
+mov byte [ebp - 0xaca0], 7
+jg short loc_fffcb73c ; jg 0xfffcb73c
+mov al, byte [ebp - 0xad00]
+mov esi, dword [ebp - 0xacac]
+test al, al
+cmove eax, esi
+mov byte [ebp - 0xaca0], al
+
+loc_fffcb73c: ; not directly referenced
+mov dword [ebp - 0xacd8], 0
+
+loc_fffcb746: ; not directly referenced
+movsx ebx, byte [ebp - 0xacd8]
+movsx esi, byte [ebp - 0xacac]
+movzx eax, byte [ebp - 0xac8c]
+cmp ebx, esi
+mov dword [ebp - 0xacb8], eax
+jge loc_fffcb9c9 ; jge 0xfffcb9c9
+movsx eax, byte [ebp - 0xac88]
+push edx
+push edx
+mov edx, dword [ebp - 0xac98]
+mov ecx, eax
+mov dword [ebp - 0xacf4], eax
+mov al, byte [ebp - 0xac90]
+add eax, dword [ebp - 0xacd8]
+mov dword [ebp - 0xac68], 0
+movsx esi, al
+lea eax, [ebp - 0xac68]
+push eax
+mov eax, edi
+push 0
+push ecx
+xor ecx, ecx
+push esi
+push dword [ebp - 0xacb8]
+push dword [ebp - 0xac9c]
+call fcn_fffb887d ; call 0xfffb887d
+add esp, 0x20
+cmp byte [ebp - 0xac8c], 0xa
+mov word [ebp + ebx*2 - 0xac4c], ax
+sete al
+mov byte [ebp - 0xacfc], al
+or al, byte [ebp - 0xace6]
+jne short loc_fffcb7e5 ; jne 0xfffcb7e5
+cmp byte [ebp - 0xac94], 0
+je short loc_fffcb811 ; je 0xfffcb811
+
+loc_fffcb7e5: ; not directly referenced
+imul eax, ebx, 0x1a
+mov edx, dword [ebp - 0xac68]
+lea ecx, [ebp - 0x18]
+add eax, ecx
+mov ecx, dword [ebp - 0xac64]
+mov dword [eax - 0xa91e], edx
+mov dword [eax - 0xa932], ecx
+mov ecx, dword [ebp - 0xac60]
+mov dword [eax - 0xa92e], ecx
+
+loc_fffcb811: ; not directly referenced
+cmp byte [ebp - 0xacbc], 1
+setbe al
+or al, byte [ebp - 0xac94]
+je short loc_fffcb8a0 ; je 0xfffcb8a0
+push eax
+mov edx, dword [ebp - 0xac98]
+xor ecx, ecx
+push eax
+lea eax, [ebp - 0xac68]
+push eax
+mov eax, edi
+push 0
+push dword [ebp - 0xacf4]
+mov dword [ebp - 0xac68], 1
+push esi
+push dword [ebp - 0xacb8]
+push dword [ebp - 0xac9c]
+imul esi, ebx, 0x1a
+call fcn_fffb887d ; call 0xfffb887d
+add esp, 0x20
+lea ecx, [ebp - 0x18]
+lea edx, [ecx + esi]
+mov word [ebp + esi - 0xa94c], ax
+mov al, byte [ebp - 0xacfc]
+or al, byte [ebp - 0xac94]
+je short loc_fffcb8a0 ; je 0xfffcb8a0
+mov eax, dword [ebp - 0xac64]
+mov dword [edx - 0xa92a], eax
+mov eax, dword [ebp - 0xac60]
+mov dword [edx - 0xa926], eax
+mov eax, dword [ebp - 0xac68]
+mov dword [edx - 0xa922], eax
+
+loc_fffcb8a0: ; not directly referenced
+imul edx, ebx, 0x1a
+mov ax, word [ebp + ebx*2 - 0xac4c]
+mov esi, dword [ebp - 0xacdc]
+mov ecx, eax
+add cx, word [ebp + edx - 0xa94c]
+cmp dword [ebp - 0xacc8], 0
+lea edx, [esi + ebx]
+mov word [ebp + edx*2 - 0xabcc], cx
+je short loc_fffcb8e1 ; je 0xfffcb8e1
+mov esi, 0x3e8
+xor edx, edx
+div si
+mov word [ebp + ebx*2 - 0xac4c], ax
+
+loc_fffcb8e1: ; not directly referenced
+mov al, byte [ebp - 0xac8c]
+test al, al
+sete dl
+cmp al, 9
+sete al
+or dl, al
+jne short loc_fffcb8fe ; jne 0xfffcb8fe
+cmp byte [ebp - 0xac8c], 1
+jne short loc_fffcb91a ; jne 0xfffcb91a
+
+loc_fffcb8fe: ; not directly referenced
+mov eax, dword [ebp - 0xacdc]
+movzx ecx, cx
+lea esi, [eax + ebx]
+mov eax, 0xdb88
+cdq
+idiv ecx
+mov word [ebp + esi*2 - 0xabcc], ax
+
+loc_fffcb91a: ; not directly referenced
+cmp byte [ebp - 0xac8c], 4
+jne loc_fffcb9be ; jne 0xfffcb9be
+mov eax, dword [ebp - 0xacb0]
+cmp dword [eax + 0xc0], 1
+jne loc_fffcb9be ; jne 0xfffcb9be
+movzx edx, byte [eax + 0xc4]
+xor eax, eax
+
+loc_fffcb943: ; not directly referenced
+bt edx, eax
+jb short loc_fffcb950 ; jb 0xfffcb950
+inc eax
+cmp eax, 4
+jne short loc_fffcb943 ; jne 0xfffcb943
+jmp short loc_fffcb956 ; jmp 0xfffcb956
+
+loc_fffcb950: ; not directly referenced
+mov byte [ebp - 0xaca4], al
+
+loc_fffcb956: ; not directly referenced
+cmp dword [ebp - 0xacc4], 3
+jne short loc_fffcb971 ; jne 0xfffcb971
+
+loc_fffcb95f: ; not directly referenced
+add ebx, dword [ebp - 0xacdc]
+mov word [ebp + ebx*2 - 0xabcc], 1
+jmp short loc_fffcb9be ; jmp 0xfffcb9be
+
+loc_fffcb971: ; not directly referenced
+mov al, byte [ebp - 0xaca4]
+mov esi, dword [ebp - 0xacb0]
+mov edx, eax
+shr al, 1
+and edx, 1
+movzx eax, al
+imul edx, edx, 0x18
+imul eax, eax, 0x128
+add eax, edx
+mov ax, word [esi + eax + 0x126d]
+mov ecx, eax
+mov edx, eax
+shr cx, 9
+shr dx, 6
+and ecx, 1
+and edx, 1
+shl ecx, 2
+add edx, edx
+shr ax, 2
+or edx, ecx
+and eax, 1
+or dl, al
+je short loc_fffcb95f ; je 0xfffcb95f
+
+loc_fffcb9be: ; not directly referenced
+inc dword [ebp - 0xacd8]
+jmp near loc_fffcb746 ; jmp 0xfffcb746
+
+loc_fffcb9c9: ; not directly referenced
+sub esp, 0xc
+mov edx, dword [ebp - 0xac98]
+push dword [ebp - 0xacb8]
+movzx eax, byte [ebp - 0xacac]
+lea ebx, [ebp - 0xabcc]
+movzx ecx, byte [ebp + edx - 0xac75]
+push 1
+push dword [ebp - 0xad08]
+push dword [ebp + 0x18]
+push dword [ebp + 0x10]
+push eax
+mov eax, edi
+push 0x40
+push ebx
+push 0
+call fcn_fffb97c0 ; call 0xfffb97c0
+movsx eax, byte [ebp - 0xad09]
+add esp, 0x2c
+mov ecx, ebx
+push eax
+movzx eax, byte [ebp - 0xaca0]
+push dword [ebp + 0x1c]
+push dword [ebp - 0xacf0]
+push eax
+mov eax, edi
+push dword [ebp + 0x18]
+push esi
+mov esi, dword [ebp - 0xacec]
+push 0x40
+mov edx, esi
+call fcn_fffa5d2d ; call 0xfffa5d2d
+movsx bx, byte [esi + 2]
+add esp, 0x20
+add bx, word [esi]
+xor edx, edx
+cmp byte [ebp - 0xac8c], 7
+jne short loc_fffcba66 ; jne 0xfffcba66
+mov eax, dword [ebp - 0xacb0]
+cmp dword [eax + 0xc0], 2
+mov eax, 0x20
+cmove edx, eax
+
+loc_fffcba66: ; not directly referenced
+movsx ax, byte [ebp - 0xac90]
+push 1
+mov esi, dword [ebp - 0xac9c]
+sub eax, edx
+mov edx, dword [ebp - 0xac98]
+add ebx, eax
+movsx eax, bx
+push eax
+mov eax, edi
+push dword [ebp - 0xacb8]
+movzx ecx, byte [ebp + edx - 0xac75]
+push esi
+call fcn_fffafdb2 ; call 0xfffafdb2
+mov ecx, dword [ebp - 0xace0]
+add esp, 0x10
+inc dword [ebp - 0xac9c]
+add dword [ebp - 0xacec], 0x50a
+mov word [ecx + esi*2], bx
+jmp near loc_fffcb3fb ; jmp 0xfffcb3fb
+
+loc_fffcbabc: ; not directly referenced
+inc dword [ebp - 0xac98]
+add dword [ebp - 0xacf8], 0x2d5a
+add dword [ebp - 0xace0], 0x12
+add dword [ebp - 0xacb0], 0x13c3
+cmp dword [ebp - 0xac98], 2
+jne loc_fffcb3c9 ; jne 0xfffcb3c9
+cmp dword [ebp - 0xaccc], 0
+je short loc_fffcbb0b ; je 0xfffcbb0b
+mov eax, dword [ebp - 0xaca8]
+mov edx, 0x2008
+mov ecx, dword [eax + 0x18]
+mov eax, edi
+or ecx, 0x20
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffcbb0b: ; not directly referenced
+lea eax, [edi + 0x2490]
+xor esi, esi
+mov dword [ebp - 0xac94], eax
+
+loc_fffcbb19: ; not directly referenced
+mov eax, dword [ebp - 0xacb4]
+cmp word [ebp - 0xacba], si
+jbe loc_fffcbc10 ; jbe 0xfffcbc10
+mov dword [ebp - 0xac88], eax
+imul eax, esi, 0x480
+xor edx, edx
+mov dword [ebp - 0xac90], eax
+
+loc_fffcbb40: ; not directly referenced
+mov eax, dword [ebp - 0xace4]
+bt eax, edx
+jb short loc_fffcbb77 ; jb 0xfffcbb77
+
+loc_fffcbb4b: ; not directly referenced
+inc edx
+add dword [ebp - 0xac88], 0x12
+cmp edx, 2
+jne short loc_fffcbb40 ; jne 0xfffcbb40
+mov eax, dword [ebp + 0x10]
+sub esp, 0xc
+mov edx, dword [ebp - 0xac94]
+movzx ecx, byte [eax + esi]
+mov eax, edi
+inc esi
+push 0
+call fcn_fffa7d98 ; call 0xfffa7d98
+add esp, 0x10
+jmp short loc_fffcbb19 ; jmp 0xfffcbb19
+
+loc_fffcbb77: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+xor ebx, ebx
+movzx eax, byte [eax + esi]
+cmp al, 0x21
+ja short loc_fffcbb8b ; ja 0xfffcbb8b
+movzx ebx, byte [eax + ref_fffd5f1c] ; movzx ebx, byte [eax - 0x2a0e4]
+
+loc_fffcbb8b: ; not directly referenced
+imul ebx, ebx, 0x240
+imul eax, edx, 0x48
+add eax, ebx
+add eax, edi
+lea ebx, [edx + edx*8]
+mov ecx, eax
+mov dword [ebp - 0xac8c], ebx
+xor eax, eax
+
+loc_fffcbba5: ; not directly referenced
+cmp byte [ebp - 0xaca2], al
+jbe short loc_fffcbb4b ; jbe 0xfffcbb4b
+mov ebx, dword [ebp - 0xac88]
+movsx ebx, word [ebx + eax*2]
+sub ebx, dword [ebp - 0xacd0]
+imul ebx, ebx, 0x12
+add ebx, dword [ebp - 0xac90]
+add ebx, dword [ebp - 0xac8c]
+add ebx, eax
+movzx ebx, word [ebp + ebx*4 - 0xa2cc]
+mov dword [ecx + eax*8 + 0x2490], ebx
+mov ebx, dword [ebp - 0xac88]
+movsx ebx, word [ebx + eax*2]
+sub ebx, dword [ebp - 0xacd0]
+imul ebx, ebx, 0x12
+add ebx, dword [ebp - 0xac90]
+add ebx, dword [ebp - 0xac8c]
+add ebx, eax
+movzx ebx, word [ebp + ebx*4 - 0xa2ca]
+mov dword [ecx + eax*8 + 0x2494], ebx
+inc eax
+jmp short loc_fffcbba5 ; jmp 0xfffcbba5
+
+loc_fffcbc10: ; not directly referenced
+mov esi, dword [ebp + 0x10]
+add eax, 0x24
+mov byte [eax + 0x18], 4
+mov dword [ebp - 0xac90], eax
+
+loc_fffcbc20: ; not directly referenced
+mov ecx, esi
+sub ecx, dword [ebp - 0xad04]
+cmp cx, word [ebp - 0xacba]
+jae loc_fffcbd22 ; jae 0xfffcbd22
+movzx edx, byte [esi]
+xor eax, eax
+cmp dl, 0x21
+ja short loc_fffcbc46 ; ja 0xfffcbc46
+movzx eax, byte [edx + ref_fffd5f1c] ; movzx eax, byte [edx - 0x2a0e4]
+
+loc_fffcbc46: ; not directly referenced
+mov ebx, dword [ebp - 0xacb4]
+movzx ecx, cx
+imul eax, eax, 0x240
+mov dword [ebp - 0xac88], 0
+lea ebx, [ebx + ecx*2]
+mov dword [ebp - 0xac94], ebx
+mov ebx, dword [ebp - 0xac90]
+add eax, edi
+mov dword [ebp - 0xac8c], ebx
+
+loc_fffcbc76: ; not directly referenced
+mov ecx, dword [ebp - 0xace4]
+mov edx, dword [ebp - 0xac88]
+bt ecx, edx
+jae short loc_fffcbcf8 ; jae 0xfffcbcf8
+xor edx, edx
+
+loc_fffcbc89: ; not directly referenced
+cmp dl, byte [ebp - 0xaca2]
+jae short loc_fffcbce6 ; jae 0xfffcbce6
+test dl, dl
+jne short loc_fffcbca3 ; jne 0xfffcbca3
+mov ecx, dword [eax + 0x2490]
+add ecx, dword [eax + 0x2494]
+jmp short loc_fffcbcda ; jmp 0xfffcbcda
+
+loc_fffcbca3: ; not directly referenced
+mov ecx, dword [eax + edx*8 + 0x2494]
+mov ebx, dword [eax + edx*8 + 0x2490]
+mov dword [ebp - 0xac9c], eax
+mov eax, dword [ebp - 0xac8c]
+mov dword [ebp - 0xac98], ecx
+add ecx, ebx
+movzx eax, word [eax]
+cmp eax, ecx
+mov eax, dword [ebp - 0xac9c]
+jbe short loc_fffcbce3 ; jbe 0xfffcbce3
+mov ecx, ebx
+add ecx, dword [ebp - 0xac98]
+
+loc_fffcbcda: ; not directly referenced
+mov ebx, dword [ebp - 0xac8c]
+mov word [ebx], cx
+
+loc_fffcbce3: ; not directly referenced
+inc edx
+jmp short loc_fffcbc89 ; jmp 0xfffcbc89
+
+loc_fffcbce6: ; not directly referenced
+mov dl, byte [esi]
+mov ecx, dword [ebp - 0xac94]
+mov ebx, dword [ebp - 0xac88]
+mov byte [ecx + ebx + 0x34], dl
+
+loc_fffcbcf8: ; not directly referenced
+inc dword [ebp - 0xac88]
+add eax, 0x48
+add dword [ebp - 0xac8c], 2
+cmp dword [ebp - 0xac88], 2
+jne loc_fffcbc76 ; jne 0xfffcbc76
+add dword [ebp - 0xac90], 4
+inc esi
+jmp near loc_fffcbc20 ; jmp 0xfffcbc20
+
+loc_fffcbd22: ; not directly referenced
+mov byte [edi + 0x247a], 0
+jmp short loc_fffcbd35 ; jmp 0xfffcbd35
+
+loc_fffcbd2b: ; not directly referenced
+mov eax, 0xdc
+jmp near loc_fffcb2f3 ; jmp 0xfffcb2f3
+
+loc_fffcbd35: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcbd3d: ; not directly referenced
+push ebp
+mov ebp, esp
+push esi
+push ebx
+sub esp, 0x54
+mov ebx, dword [ebp + 8]
+lea esi, [ebp - 0x50]
+mov byte [ebp - 0x57], 4
+mov byte [ebp - 0x56], 1
+mov eax, dword [ebx + 0x2443]
+push 0
+push 5
+push esi
+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
+call dword [eax + 0x60] ; ucall
+movzx edx, byte [ebp - 0x57]
+mov ecx, 1
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+movzx edx, byte [ebp - 0x56]
+mov ecx, 1
+mov word [ebp - 0x50], ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add esp, 0x10
+cmp dword [ebx + 0x2480], 3
+mov word [ebp - 0x4e], ax
+jne short loc_fffcbdd5 ; jne 0xfffcbdd5
+push eax
+mov ecx, 3
+push 0
+push 0
+push 0xf
+push 2
+push 0
+push esi
+lea eax, [ebp - 0x55]
+push eax
+push 2
+lea eax, [ebp - 0x57]
+push eax
+mov eax, ebx
+push 9
+push 0xf
+lea edx, [ebp - 0x46]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffcbdd5: ; not directly referenced
+lea esp, [ebp - 8]
+xor eax, eax
+pop ebx
+pop esi
+pop ebp
+ret
+
+fcn_fffcbdde: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+add esp, 0xffffff80
+mov edi, dword [ebp + 8]
+lea edx, [ebp - 0x60]
+mov byte [ebp - 0x6f], 4
+mov byte [ebp - 0x6e], 1
+mov eax, dword [edi + 0x2443]
+mov ebx, dword [edi + 0x1887]
+mov esi, dword [edi + 0x5edc]
+push 0
+push 5
+push edx
+mov byte [ebp - 0x6a], 1
+mov byte [ebp - 0x69], 2
+mov byte [ebp - 0x68], 1
+mov byte [ebp - 0x67], 0
+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
+call dword [eax + 0x60] ; ucall
+mov edx, 0x3a04
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+add esp, 0x10
+mov edx, dword [edi + 0x2480]
+and eax, 0x3f
+cmp ebx, 0x306d0
+mov byte [ebp - 0x88], al
+sete al
+cmp ebx, 0x40650
+sete cl
+or al, cl
+je short loc_fffcbe8f ; je 0xfffcbe8f
+cmp edx, 3
+je short loc_fffcbeb2 ; je 0xfffcbeb2
+mov byte [ebp - 0x85], 9
+mov byte [ebp - 0x7e], 0x1e
+mov word [ebp - 0x80], 0xe6
+jmp short loc_fffcbea0 ; jmp 0xfffcbea0
+
+loc_fffcbe8f: ; not directly referenced
+mov byte [ebp - 0x85], 9
+mov byte [ebp - 0x7e], 0x1e
+mov word [ebp - 0x80], 0xb4
+
+loc_fffcbea0: ; not directly referenced
+lea eax, [ebp - 0x6a]
+mov dword [ebp - 0x84], eax
+lea eax, [ebp - 0x6f]
+mov byte [ebp - 0x7d], 2
+jmp short loc_fffcbed3 ; jmp 0xfffcbed3
+
+loc_fffcbeb2: ; not directly referenced
+lea eax, [ebp - 0x65]
+mov dword [ebp - 0x84], eax
+lea eax, [ebp - 0x6d]
+mov byte [ebp - 0x85], 0xa
+mov byte [ebp - 0x7e], 0x50
+mov word [ebp - 0x80], 0xe6
+mov byte [ebp - 0x7d], 3
+
+loc_fffcbed3: ; not directly referenced
+mov dword [ebp - 0x7c], eax
+xor ebx, ebx
+
+loc_fffcbed8: ; not directly referenced
+mov eax, dword [ebp - 0x7c]
+mov ecx, 1
+movzx edx, byte [eax + ebx]
+mov eax, edi
+call fcn_fffb13cf ; call 0xfffb13cf
+mov word [ebp + ebx*2 - 0x60], ax
+inc ebx
+cmp byte [ebp - 0x7d], bl
+ja short loc_fffcbed8 ; ja 0xfffcbed8
+mov ecx, dword [esi + 0xc]
+mov esi, ecx
+shr ecx, 0xf
+mov al, cl
+and eax, 0x1f
+shr esi, 3
+and esi, 1
+and cl, 0x10
+lea edx, [eax - 0x20]
+cmove edx, eax
+mov eax, edi
+movsx edx, dl
+call fcn_fffa6cfe ; call 0xfffa6cfe
+movzx ecx, byte [ebp - 0x88]
+mov edx, esi
+xor edx, 1
+movzx esi, dl
+shl esi, 4
+mov ebx, eax
+movzx eax, dl
+shl eax, 4
+xor edx, edx
+add eax, ecx
+imul ebx, eax
+movzx eax, byte [ebp - 0x88]
+mov word [ebp - 0x88], ax
+mov eax, ebx
+div word [ebp - 0x80]
+mov ecx, eax
+movzx eax, bx
+movzx ebx, byte [ebp - 0x7e]
+cdq
+sub ecx, esi
+sub ecx, dword [ebp - 0x88]
+idiv ebx
+mov dl, 0xf0
+sub eax, esi
+sub eax, dword [ebp - 0x88]
+cmp cx, 0xfff1
+cmovge edx, ecx
+movsx ecx, dl
+add edx, 0x17
+movsx esi, al
+lea ebx, [ecx + 0x17]
+cmp esi, ebx
+cmovg eax, edx
+push edx
+movzx edx, byte [ebp - 0x85]
+cmp al, 0xf
+push 0
+push edx
+mov dl, 0xf
+cmovle edx, eax
+push 0x11
+movsx edx, dl
+push edx
+push ecx
+mov ecx, 3
+lea eax, [ebp - 0x60]
+push eax
+movzx eax, byte [ebp - 0x7d]
+push dword [ebp - 0x84]
+lea edx, [ebp - 0x56]
+push eax
+mov eax, edi
+push dword [ebp - 0x7c]
+push 1
+push 0xf
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x28
+mov eax, edi
+push 0
+mov ecx, 3
+push 0x11
+push 0
+push 0
+push 0
+lea edx, [edi + 0x2490]
+push 1
+call fcn_fffc0a2d ; call 0xfffc0a2d
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcbfee: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd5b20 ; mov esi, 0xfffd5b20
+push ebx
+sub esp, 0x7c
+mov eax, dword [ebp + 8]
+lea edi, [ebp - 0x60]
+mov byte [ebp - 0x6e], 4
+lea ebx, [ebp - 0x60]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov byte [ebp - 0x6d], 1
+lea esi, [eax + 0x3756]
+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 - 0x7c], 0
+
+loc_fffcc059: ; not directly referenced
+cmp dword [esi], 2
+jne loc_fffcc10d ; jne 0xfffcc10d
+mov cl, byte [ebp - 0x7c]
+mov edi, 1
+shl edi, cl
+cmp dword [esi + 0xc0], 2
+jne short loc_fffcc0e3 ; jne 0xfffcc0e3
+push edx
+mov ecx, edi
+push 0
+push 0
+push 0xf
+push 4
+push 1
+push ebx
+lea eax, [ebp - 0x6a]
+push eax
+push 4
+lea eax, [ebp - 0x6e]
+push eax
+mov eax, dword [ebp + 8]
+push 7
+push 0xf
+lea edx, [ebp - 0x56]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x2c
+mov ecx, edi
+push 0
+push 0
+push 0xf
+push 2
+push 1
+push ebx
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x70]
+push eax
+mov eax, dword [ebp + 8]
+push 8
+push 3
+lea edx, [ebp - 0x56]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x2c
+push 0
+push 0
+push 0xf
+push 2
+push 1
+push ebx
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x70]
+push eax
+push 8
+push 0xc
+jmp short loc_fffcc0fd ; jmp 0xfffcc0fd
+
+loc_fffcc0e3: ; not directly referenced
+push eax
+push 0
+push 0
+push 0xf
+push 2
+push 0
+push ebx
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x70]
+push eax
+push 7
+push 0xf
+
+loc_fffcc0fd: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov ecx, edi
+lea edx, [ebp - 0x56]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffcc10d: ; not directly referenced
+inc dword [ebp - 0x7c]
+add esi, 0x13c3
+cmp dword [ebp - 0x7c], 2
+jne loc_fffcc059 ; jne 0xfffcc059
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcc12a: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd5b2c ; mov esi, 0xfffd5b2c
+push ebx
+sub esp, 0x5c
+mov ebx, dword [ebp + 8]
+lea edi, [ebp - 0x60]
+mov byte [ebp - 0x67], 5
+mov byte [ebp - 0x66], 2
+mov eax, dword [ebx + 0x1887]
+mov byte [ebp - 0x65], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 0
+cmp eax, 0x306d0
+sete dl
+cmp eax, 0x40650
+sete al
+or dl, al
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+je short loc_fffcc1e4 ; je 0xfffcc1e4
+mov cl, 1
+mov edx, 5
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+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_fffb13cf ; call 0xfffb13cf
+mov dx, word [ebp - 0x5e]
+mov ecx, 3
+cmp ax, dx
+cmovae edx, eax
+push eax
+push 0
+push 0
+push 0xf
+push 8
+push 0xfffffffffffffff1
+lea eax, [ebp - 0x60]
+push eax
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x67]
+push eax
+mov eax, ebx
+push 2
+push 0xf
+mov word [ebp - 0x5e], dx
+lea edx, [ebp - 0x56]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffcc1e4: ; not directly referenced
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcc1ee: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x6c
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x67], 0xd
+mov byte [ebp - 0x66], 0xc
+mov byte [ebp - 0x65], 1
+cmp dword [ebx + 0x188b], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+jne loc_fffcc2f7 ; jne 0xfffcc2f7
+movzx esi, byte [ebx + 0x248e]
+lea ecx, [ebp - 0x60]
+movzx edi, byte [ebx + 0x248d]
+push eax
+mov eax, dword [ebx + 0x2443]
+push 0
+push 5
+push ecx
+call dword [eax + 0x60] ; ucall
+movzx edx, byte [ebp - 0x67]
+mov ecx, 1
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+movzx edx, byte [ebp - 0x66]
+mov ecx, 1
+mov word [ebp - 0x60], ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add esp, 0xc
+mov ecx, edi
+push 0
+push 0
+push 0xf
+push 0
+push 0xfffffffffffffff8
+lea edi, [ebp - 0x67]
+mov word [ebp - 0x5e], ax
+mov eax, esi
+lea esi, [ebp - 0x60]
+push esi
+lea esi, [ebp - 0x65]
+push esi
+push 2
+push edi
+push 0xf
+push ecx
+lea edx, [ebp - 0x56]
+mov dword [ebp - 0x6c], ecx
+mov ecx, eax
+mov dword [ebp - 0x70], eax
+mov eax, ebx
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+mov edx, 0x3a08
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, eax
+shr edx, 0x12
+shr eax, 0xc
+and edx, 0x3f
+and eax, 0x3f
+cmp dl, al
+push ecx
+cmovle eax, edx
+mov ecx, dword [ebp - 0x70]
+mov dl, 5
+push 0
+sub edx, eax
+push 0
+cmp dl, 0xf8
+mov al, 0xf8
+push 0xf
+cmovge eax, edx
+push 0
+movsx eax, al
+push eax
+mov eax, ebx
+lea edx, [ebp - 0x60]
+push edx
+push esi
+push 2
+push edi
+push 0xa
+push dword [ebp - 0x6c]
+lea edx, [ebp - 0x56]
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffcc2f7: ; not directly referenced
+sub esp, 0xc
+push ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcc30a: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x6c
+mov ebx, dword [ebp + 8]
+mov byte [ebp - 0x67], 0xd
+mov byte [ebp - 0x66], 0xc
+mov byte [ebp - 0x65], 1
+cmp dword [ebx + 0x188b], 1
+mov byte [ebp - 0x64], 2
+mov byte [ebp - 0x63], 1
+mov byte [ebp - 0x62], 0
+mov byte [ebp - 0x61], 0
+jne short loc_fffcc3b3 ; jne 0xfffcc3b3
+movzx eax, byte [ebx + 0x248d]
+lea esi, [ebp - 0x60]
+movzx edi, byte [ebx + 0x248e]
+mov dword [ebp - 0x6c], eax
+push eax
+mov eax, dword [ebx + 0x2443]
+push 0
+push 5
+push esi
+call dword [eax + 0x60] ; ucall
+movzx edx, byte [ebp - 0x67]
+mov ecx, 1
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+movzx edx, byte [ebp - 0x66]
+mov ecx, 1
+mov word [ebp - 0x60], ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add esp, 0xc
+mov ecx, edi
+push 0
+push 0
+push 0xf
+push 3
+push 0
+push esi
+lea edx, [ebp - 0x56]
+mov word [ebp - 0x5e], ax
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x67]
+push eax
+mov eax, dword [ebp - 0x6c]
+push 0xc
+push eax
+mov eax, ebx
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+
+loc_fffcc3b3: ; not directly referenced
+sub esp, 0xc
+push ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+lea esp, [ebp - 0xc]
+xor eax, eax
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcc3c6: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, ecx
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x70
+mov eax, dword [eax + 0x2443]
+push 0
+push 5
+lea esi, [ebp - 0x60]
+push esi
+mov dword [ebp - 0x6c], edx
+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
+call dword [eax + 0x60] ; ucall
+movzx edx, byte [ebp - 0x67]
+mov ecx, 1
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+movzx edx, byte [ebp - 0x66]
+mov ecx, 1
+mov word [ebp - 0x60], ax
+mov eax, ebx
+call fcn_fffb13cf ; call 0xfffb13cf
+add esp, 0xc
+movzx ecx, byte [ebp - 0x6c]
+cmp dword [ebx + 0x188b], 1
+push 1
+push 0
+push 0xf
+push 0xa
+lea edx, [ebp - 0x56]
+mov word [ebp - 0x5e], ax
+sbb eax, eax
+and eax, 4
+sub eax, 0x11
+movsx eax, al
+push eax
+push esi
+lea eax, [ebp - 0x65]
+push eax
+push 2
+lea eax, [ebp - 0x67]
+push eax
+mov eax, ebx
+push 0
+push 0xf
+call fcn_fffca96e ; call 0xfffca96e
+add esp, 0x30
+xor eax, eax
+cmp dword [ebp + 8], 0
+je short loc_fffcc493 ; je 0xfffcc493
+push eax
+mov ecx, 3
+push eax
+mov eax, ebx
+push 0
+push edi
+push 0
+push 0
+push 0
+push 2
+lea edx, [ebx + 0x2490]
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+
+loc_fffcc493: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcc49b: ; not directly referenced
+push ebp
+mov ecx, 0xf
+mov ebp, esp
+mov edx, 3
+mov eax, dword [ebp + 8]
+mov dword [ebp + 8], 1
+pop ebp
+jmp near fcn_fffcc3c6 ; jmp 0xfffcc3c6
+
+fcn_fffcc4b8: ; not directly referenced
+push ebp
+mov ebp, esp
+mov ecx, dword [ebp + 0x10]
+mov eax, dword [ebp + 0x18]
+mov edx, dword [ebp + 0x1c]
+mov dword [ecx], eax
+mov dword [ecx + 4], edx
+pop ebp
+ret
+
+fcn_fffcc4cb: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x3c
+mov eax, dword [ebp + 0x14]
+mov ebx, dword [ebp + 0xc]
+mov edi, dword [ebp + 8]
+mov edx, dword [ebp + 0x10]
+mov dword [ebp - 0x2c], eax
+mov eax, dword [ebp + 0x20]
+mov dword [ebp - 0x24], ebx
+mov byte [ebp - 0x32], bl
+mov byte [ebp - 0x31], dl
+mov dword [ebp - 0x3c], eax
+mov eax, dword [ebp + 0x24]
+mov dword [ebp - 0x40], eax
+mov al, byte [ebp + 0x18]
+mov byte [ebp - 0x33], al
+mov al, byte [ebp + 0x1c]
+mov byte [ebp - 0x34], al
+mov eax, dword [edi + 0x5edc]
+cmp bl, 1
+ja loc_fffcc70e ; ja 0xfffcc70e
+cmp dword [edi + 0x2480], 2
+jne loc_fffcc70e ; jne 0xfffcc70e
+movzx eax, byte [ebp - 0x24]
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x38], eax
+imul eax, eax, 0x13c3
+lea ebx, [edi + eax + 0x3756]
+add eax, edi
+mov dword [ebp - 0x48], eax
+
+loc_fffcc540: ; not directly referenced
+mov cl, byte [ebp - 0x1c]
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x33], dl
+je loc_fffcc6f7 ; je 0xfffcc6f7
+mov eax, dword [ebp - 0x48]
+test byte [eax + 0x381a], dl
+je loc_fffcc6f7 ; je 0xfffcc6f7
+mov esi, dword [ebp - 0x1c]
+imul eax, esi, 0x18
+mov dword [ebp - 0x30], eax
+mov ax, word [ebx + eax + 0x1277]
+mov word [ebp - 0x28], ax
+or word [ebp - 0x28], 0x80
+mov eax, dword [ebp - 0x28]
+cmp dword [ebp - 0x3c], 0
+mov word [ebp - 0x20], ax
+je loc_fffcc666 ; je 0xfffcc666
+movzx eax, byte [ebp - 0x34]
+imul esi, esi, 0x70
+mov dword [ebp - 0x28], 0
+mov dword [ebp - 0x30], eax
+movzx eax, byte [ebp - 0x32]
+add esi, ebx
+mov dword [ebp - 0x44], eax
+
+loc_fffcc5a8: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+mov edx, dword [ebp - 0x28]
+bt eax, edx
+jae loc_fffcc651 ; jae 0xfffcc651
+mov cx, word [esi + 0x109f]
+mov al, cl
+and ecx, 0x3f
+and eax, 0x7f
+mov dl, al
+or edx, 0xffffffc0
+test al, 0x60
+cmove edx, ecx
+lea eax, [edx - 0xd]
+cmp dl, 0xc
+jg short loc_fffcc5e3 ; jg 0xfffcc5e3
+xor eax, eax
+cmp dl, 0xe4
+lea ecx, [edx + 0x1b]
+cmovle eax, ecx
+
+loc_fffcc5e3: ; not directly referenced
+add eax, dword [ebp - 0x2c]
+cmp al, 0x25
+jg short loc_fffcc5f4 ; jg 0xfffcc5f4
+cmp al, 0xdb
+jl short loc_fffcc5fb ; jl 0xfffcc5fb
+test al, al
+jns short loc_fffcc5f6 ; jns 0xfffcc5f6
+jmp short loc_fffcc5fd ; jmp 0xfffcc5fd
+
+loc_fffcc5f4: ; not directly referenced
+mov al, 0x25
+
+loc_fffcc5f6: ; not directly referenced
+add eax, 0xd
+jmp short loc_fffcc600 ; jmp 0xfffcc600
+
+loc_fffcc5fb: ; not directly referenced
+mov al, 0xdb
+
+loc_fffcc5fd: ; not directly referenced
+sub eax, 0x1b
+
+loc_fffcc600: ; not directly referenced
+and eax, 0x7f
+mov cl, byte [ebp - 0x28]
+mov dl, al
+and eax, 0x3f
+shr dl, 6
+and word [ebp - 0x20], 0xff80
+and edx, 1
+shl edx, 6
+or word [ebp - 0x20], dx
+or word [ebp - 0x20], ax
+mov eax, 1
+push edx
+mov edx, dword [ebp - 0x44]
+shl eax, cl
+mov ecx, dword [ebp - 0x1c]
+push eax
+movzx eax, word [ebp - 0x20]
+push 6
+push eax
+mov eax, edi
+call fcn_fffaa285 ; call 0xfffaa285
+add esp, 0x10
+cmp byte [ebp - 0x31], 0
+je short loc_fffcc651 ; je 0xfffcc651
+mov eax, dword [ebp - 0x20]
+mov word [esi + 0x109f], ax
+
+loc_fffcc651: ; not directly referenced
+inc dword [ebp - 0x28]
+add esi, 0xe
+cmp dword [ebp - 0x28], 8
+jne loc_fffcc5a8 ; jne 0xfffcc5a8
+jmp near loc_fffcc6f7 ; jmp 0xfffcc6f7
+
+loc_fffcc666: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+mov si, word [ebx + eax + 0x1277]
+mov ecx, esi
+and esi, 0x3f
+and ecx, 0x7f
+mov al, cl
+or eax, 0xffffffc0
+and cl, 0x60
+cmove eax, esi
+lea ecx, [eax - 0xd]
+cmp al, 0xc
+jg short loc_fffcc695 ; jg 0xfffcc695
+xor ecx, ecx
+cmp al, 0xe4
+lea esi, [eax + 0x1b]
+cmovle ecx, esi
+
+loc_fffcc695: ; not directly referenced
+add ecx, dword [ebp - 0x2c]
+cmp cl, 0x25
+jg short loc_fffcc6a8 ; jg 0xfffcc6a8
+cmp cl, 0xdb
+jl short loc_fffcc6af ; jl 0xfffcc6af
+test cl, cl
+js short loc_fffcc6b1 ; js 0xfffcc6b1
+jmp short loc_fffcc6aa ; jmp 0xfffcc6aa
+
+loc_fffcc6a8: ; not directly referenced
+mov cl, 0x25
+
+loc_fffcc6aa: ; not directly referenced
+add ecx, 0xd
+jmp short loc_fffcc6b4 ; jmp 0xfffcc6b4
+
+loc_fffcc6af: ; not directly referenced
+mov cl, 0xdb
+
+loc_fffcc6b1: ; not directly referenced
+sub ecx, 0x1b
+
+loc_fffcc6b4: ; not directly referenced
+and ecx, 0x7f
+mov esi, dword [ebp - 0x28]
+mov al, cl
+and ecx, 0x3f
+shr al, 6
+and eax, 1
+shl eax, 6
+and esi, 0xffffff80
+or esi, eax
+or esi, ecx
+mov ecx, edx
+mov edx, dword [ebp - 0x38]
+push eax
+push eax
+movzx eax, si
+push eax
+mov eax, edi
+push 6
+call fcn_fffafd52 ; call 0xfffafd52
+add esp, 0x10
+cmp byte [ebp - 0x31], 0
+je short loc_fffcc6f7 ; je 0xfffcc6f7
+mov eax, dword [ebp - 0x30]
+mov word [ebx + eax + 0x1277], si
+
+loc_fffcc6f7: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 2
+jne loc_fffcc540 ; jne 0xfffcc540
+mov ebx, 0x40000000
+jmp near loc_fffcc866 ; jmp 0xfffcc866
+
+loc_fffcc70e: ; not directly referenced
+mov ebx, dword [ebp - 0x24]
+cmp bl, 1
+je short loc_fffcc73b ; je 0xfffcc73b
+jb short loc_fffcc729 ; jb 0xfffcc729
+cmp bl, 2
+jne loc_fffcc8f8 ; jne 0xfffcc8f8
+mov cl, byte [eax + 0x14]
+and ecx, 0x7f
+jmp short loc_fffcc74c ; jmp 0xfffcc74c
+
+loc_fffcc729: ; not directly referenced
+movzx ebx, byte [eax + 0x16]
+mov cl, byte [eax + 0x15]
+and ebx, 0x1f
+shr cl, 6
+shl ebx, 2
+jmp short loc_fffcc74a ; jmp 0xfffcc74a
+
+loc_fffcc73b: ; not directly referenced
+movzx ebx, byte [eax + 0x15]
+mov cl, byte [eax + 0x14]
+and ebx, 0x3f
+shr cl, 7
+add ebx, ebx
+
+loc_fffcc74a: ; not directly referenced
+or ecx, ebx
+
+loc_fffcc74c: ; not directly referenced
+mov bl, cl
+mov esi, 0xffffffca
+or ebx, 0xffffff80
+test cl, 0xc0
+cmovne ecx, ebx
+mov ebx, 0x36
+movsx ecx, cl
+add ecx, dword [ebp - 0x2c]
+cmp ecx, 0xffffffca
+cmovge esi, ecx
+cmp esi, 0x36
+cmovle ebx, esi
+test dl, dl
+je short loc_fffcc7e6 ; je 0xfffcc7e6
+mov edx, dword [ebp - 0x24]
+cmp dl, 1
+je short loc_fffcc7c1 ; je 0xfffcc7c1
+jb short loc_fffcc79c ; jb 0xfffcc79c
+cmp dl, 2
+jne loc_fffcc8f8 ; jne 0xfffcc8f8
+mov dl, byte [eax + 0x14]
+mov cl, bl
+and ecx, 0x7f
+and edx, 0xffffff80
+or edx, ecx
+mov byte [eax + 0x14], dl
+jmp short loc_fffcc7e6 ; jmp 0xfffcc7e6
+
+loc_fffcc79c: ; not directly referenced
+mov dl, byte [eax + 0x15]
+mov cl, bl
+shl ecx, 6
+and edx, 0x3f
+or edx, ecx
+mov ecx, ebx
+mov byte [eax + 0x15], dl
+mov dl, byte [eax + 0x16]
+shr ecx, 2
+and ecx, 0x1f
+and edx, 0xffffffe0
+or edx, ecx
+mov byte [eax + 0x16], dl
+jmp short loc_fffcc7e6 ; jmp 0xfffcc7e6
+
+loc_fffcc7c1: ; not directly referenced
+mov dl, byte [eax + 0x14]
+mov ecx, ebx
+and ecx, 1
+shl ecx, 7
+and edx, 0x7f
+or edx, ecx
+mov ecx, ebx
+mov byte [eax + 0x14], dl
+mov dl, byte [eax + 0x15]
+shr ecx, 1
+and ecx, 0x3f
+and edx, 0xffffffc0
+or edx, ecx
+mov byte [eax + 0x15], dl
+
+loc_fffcc7e6: ; not directly referenced
+cmp dword [edi + 0x188b], 1
+mov eax, 0xf84
+mov edx, 0xf78
+cmove edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, dword [ebp - 0x24]
+cmp dl, 1
+je short loc_fffcc837 ; je 0xfffcc837
+jb short loc_fffcc823 ; jb 0xfffcc823
+cmp dl, 2
+jne loc_fffcc8f8 ; jne 0xfffcc8f8
+and ebx, 0x7f
+and eax, 0xffffff80
+or eax, ebx
+mov ebx, 0x20000000
+jmp short loc_fffcc849 ; jmp 0xfffcc849
+
+loc_fffcc823: ; not directly referenced
+and ebx, 0x7f
+and eax, 0xffe03fff
+shl ebx, 0xe
+or eax, ebx
+mov ebx, 0x40000000
+jmp short loc_fffcc849 ; jmp 0xfffcc849
+
+loc_fffcc837: ; not directly referenced
+and ebx, 0x7f
+and eax, 0xffffc07f
+shl ebx, 7
+or eax, ebx
+mov ebx, 0x80000000
+
+loc_fffcc849: ; not directly referenced
+cmp dword [edi + 0x188b], 1
+mov ecx, 0xf84
+mov edx, 0xf78
+cmove edx, ecx
+mov ecx, eax
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+
+loc_fffcc866: ; not directly referenced
+cmp byte [ebp - 0x40], 0
+jne loc_fffcc8f8 ; jne 0xfffcc8f8
+cmp dword [edi + 0x2480], 2
+jne short loc_fffcc884 ; jne 0xfffcc884
+cmp byte [ebp - 0x24], 1
+mov edx, 3
+jbe short loc_fffcc8ce ; jbe 0xfffcc8ce
+
+loc_fffcc884: ; not directly referenced
+cmp dword [edi + 0x188b], 1
+mov cl, 0x4b
+mov byte [ebp - 0x1c], 0
+sete al
+mov esi, eax
+mov al, 0x32
+lea esi, [esi + esi*4 + 5]
+cmovne ecx, eax
+
+loc_fffcc89f: ; not directly referenced
+cmp dword [edi + 0x188b], 1
+mov eax, 0xf84
+mov edx, 0xf78
+mov dword [ebp - 0x20], ecx
+cmove edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov ecx, dword [ebp - 0x20]
+and eax, ebx
+cmp eax, ebx
+jne short loc_fffcc8dc ; jne 0xfffcc8dc
+
+loc_fffcc8c6: ; not directly referenced
+mov eax, esi
+movzx esi, al
+imul edx, esi, 0xf
+
+loc_fffcc8ce: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, edi
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffa834b ; jmp 0xfffa834b
+
+loc_fffcc8dc: ; not directly referenced
+mov edx, 0xf
+mov eax, edi
+mov dword [ebp - 0x20], ecx
+call fcn_fffa834b ; call 0xfffa834b
+mov ecx, dword [ebp - 0x20]
+inc byte [ebp - 0x1c]
+cmp byte [ebp - 0x1c], cl
+jb short loc_fffcc89f ; jb 0xfffcc89f
+jmp short loc_fffcc8c6 ; jmp 0xfffcc8c6
+
+loc_fffcc8f8: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcc900: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x4c
+mov eax, dword [ebp + 0x18]
+mov esi, dword [ebp + 0x20]
+mov edi, dword [ebp + 0x2c]
+mov ecx, dword [ebp + 0xc]
+mov dword [ebp - 0x30], eax
+mov ebx, dword [ebp + 0x1c]
+mov byte [ebp - 0x2b], al
+mov eax, esi
+mov edx, dword [ebp + 0x24]
+mov byte [ebp - 0x48], al
+mov eax, edi
+mov byte [ebp - 0x29], al
+mov al, byte [ebp + 0x30]
+cmp cl, 6
+mov dword [ebp - 0x40], ebx
+mov byte [ebp - 0x2c], bl
+sete bl
+cmp cl, 3
+mov dword [ebp - 0x20], esi
+mov byte [ebp - 0x50], al
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x44], edx
+mov dword [ebp - 0x34], edi
+mov byte [ebp - 0x49], dl
+mov eax, dword [eax + 0x5edc]
+mov byte [ebp - 0x2a], bl
+mov dword [ebp - 0x38], eax
+setbe al
+or al, bl
+jne short loc_fffcc98e ; jne 0xfffcc98e
+lea eax, [ecx - 8]
+cmp al, 2
+jbe short loc_fffcc992 ; jbe 0xfffcc992
+mov eax, dword [ebp + 8]
+mov bl, 0x36
+cmp dword [eax + 0x2480], 2
+jne short loc_fffcc998 ; jne 0xfffcc998
+cmp cl, 0x11
+sete dl
+cmp cl, 5
+sete al
+or dl, al
+jne short loc_fffcc996 ; jne 0xfffcc996
+cmp cl, 0x21
+jne short loc_fffcc998 ; jne 0xfffcc998
+jmp short loc_fffcc9a9 ; jmp 0xfffcc9a9
+
+loc_fffcc98e: ; not directly referenced
+mov bl, 0x1f
+jmp short loc_fffcc998 ; jmp 0xfffcc998
+
+loc_fffcc992: ; not directly referenced
+mov bl, 0xff
+jmp short loc_fffcc998 ; jmp 0xfffcc998
+
+loc_fffcc996: ; not directly referenced
+mov bl, 0x25
+
+loc_fffcc998: ; not directly referenced
+cmp cl, 0x1f
+ja short loc_fffcc9ab ; ja 0xfffcc9ab
+mov eax, dword [ebp + 0x14]
+lea esi, [eax + eax - 1]
+mov eax, dword [ebp + 0x10]
+jmp short loc_fffcc9d6 ; jmp 0xfffcc9d6
+
+loc_fffcc9a9: ; not directly referenced
+mov bl, 0x25
+
+loc_fffcc9ab: ; not directly referenced
+imul esi, dword [ebp + 0x14], 3
+mov edi, 2
+lea eax, [esi - 5]
+imul eax, dword [ebp + 0x14]
+cdq
+idiv edi
+cmp dword [ebp + 0x14], 0
+mov esi, eax
+mov eax, dword [ebp + 0x10]
+mov dword [ebp - 0x1c], eax
+jne short loc_fffcc9d9 ; jne 0xfffcc9d9
+lea eax, [eax + eax*4]
+mov di, 4
+cdq
+idiv edi
+
+loc_fffcc9d6: ; not directly referenced
+mov dword [ebp - 0x1c], eax
+
+loc_fffcc9d9: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+mov edi, 3
+imul eax, esi
+movzx esi, bl
+cdq
+idiv edi
+cmp dword [ebp - 0x1c], esi
+jg short loc_fffcc9f9 ; jg 0xfffcc9f9
+mov edi, dword [ebp - 0x1c]
+neg esi
+cmp edi, esi
+cmovge esi, edi
+
+loc_fffcc9f9: ; not directly referenced
+mov ebx, dword [ebp - 0x20]
+cmp eax, 0xffffffe1
+mov edx, 0xffffffe1
+cmovge edx, eax
+mov edi, 0x1f
+cmp edx, 0x1f
+cmovle edi, edx
+xor eax, eax
+mov edx, dword [ebp + 8]
+cmp bl, 0xff
+cmovne eax, ebx
+mov byte [ebp - 0x24], al
+movzx eax, byte [ebp - 0x40]
+mov ebx, eax
+mov dword [ebp - 0x20], eax
+imul eax, eax, 0x13c3
+lea eax, [edx + eax + 0x3756]
+mov dword [ebp - 0x28], eax
+movzx eax, byte [ebp - 0x44]
+mov edx, eax
+mov dword [ebp - 0x1c], eax
+imul eax, ebx, 0xcc
+mov ebx, dword [ebp - 0x38]
+lea eax, [ebx + eax + 0x1c]
+lea eax, [eax + edx*4]
+mov dword [ebp - 0x3c], eax
+mov ebx, dword [eax + 0x54]
+cmp cl, 0x21
+ja loc_fffccfba ; ja 0xfffccfba
+movzx eax, cl
+jmp dword [eax*4 + ref_fffd5b38] ; ujmp: jmp dword [eax*4 - 0x2a4c8]
+
+loc_fffcca6b: ; not directly referenced
+and esi, 0x3f
+and ebx, 0xffffffc0
+jmp near loc_fffccc11 ; jmp 0xfffccc11
+
+loc_fffcca76: ; not directly referenced
+and esi, 0x3f
+and ebx, 0xfffff03f
+shl esi, 6
+jmp near loc_fffccc11 ; jmp 0xfffccc11
+
+loc_fffcca87: ; not directly referenced
+and esi, 0x3f
+and ebx, 0xfffc0fff
+shl esi, 0xc
+jmp near loc_fffccc11 ; jmp 0xfffccc11
+
+loc_fffcca98: ; not directly referenced
+and esi, 0x3f
+and ebx, 0xff03ffff
+shl esi, 0x12
+jmp near loc_fffccc11 ; jmp 0xfffccc11
+
+loc_fffccaa9: ; not directly referenced
+and esi, 0x7f
+and ebx, 0x80ffffff
+shl esi, 0x18
+jmp near loc_fffccc11 ; jmp 0xfffccc11
+
+loc_fffccaba: ; not directly referenced
+mov ebx, dword [ebp - 0x20]
+mov eax, dword [ebp + 8]
+shl ebx, 0xa
+add ebx, 0x4028
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+cmp esi, 0
+mov edi, eax
+mov eax, dword [ebp - 0x28]
+mov eax, dword [eax + 0x1019]
+jle short loc_fffccae7 ; jle 0xfffccae7
+lea esi, [esi + esi - 0x10]
+dec eax
+jmp short loc_fffccaee ; jmp 0xfffccaee
+
+loc_fffccae7: ; not directly referenced
+je short loc_fffccaee ; je 0xfffccaee
+lea esi, [esi + esi + 0x10]
+inc eax
+
+loc_fffccaee: ; not directly referenced
+movzx ecx, byte [ebp - 0x24]
+and eax, 0x3f
+and edi, 0xffc0ffff
+mov edx, dword [ebp - 0x1c]
+shl eax, 0x10
+or edi, eax
+lea eax, [ecx + ecx*8]
+lea eax, [edx + eax + 0xd8]
+mov edx, dword [ebp - 0x28]
+movzx eax, word [edx + eax*2 + 1]
+push edx
+add esi, eax
+mov eax, 0x1ff
+cmp esi, 0x1ff
+cmovle eax, esi
+xor edx, edx
+test eax, eax
+cmovns edx, eax
+mov eax, dword [ebp + 8]
+push edx
+mov edx, dword [ebp - 0x20]
+push 0
+push dword [ebp - 0x1c]
+call fcn_fffa7499 ; call 0xfffa7499
+mov eax, dword [ebp + 8]
+mov ecx, edi
+mov edx, ebx
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffccb52: ; not directly referenced
+movzx eax, byte [ebp - 0x50]
+xor ebx, ebx
+mov dword [ebp - 0x28], eax
+movzx eax, byte [ebp - 0x48]
+mov dword [ebp - 0x48], eax
+
+loc_fffccb62: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov edx, dword [ebp + 8]
+cmp dword [edx + eax + 0x3756], 2
+jne short loc_fffccbb1 ; jne 0xfffccbb1
+cmp byte [ebp - 0x2c], bl
+sete dl
+cmp byte [ebp - 0x2b], 1
+sete al
+or dl, al
+je short loc_fffccbb1 ; je 0xfffccbb1
+push dword [ebp - 0x28]
+xor eax, eax
+cmp byte [ebp - 0x49], 0
+mov dword [ebp - 0x50], ecx
+setne al
+push eax
+movzx eax, byte [ebp - 0x29]
+push dword [ebp - 0x1c]
+push dword [ebp - 0x48]
+push esi
+push eax
+push ebx
+push dword [ebp + 8]
+call fcn_fffcc4cb ; call 0xfffcc4cb
+mov ecx, dword [ebp - 0x50]
+add esp, 0x20
+
+loc_fffccbb1: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffccb62 ; jne 0xfffccb62
+cmp cl, 0x21
+sete dl
+cmp cl, 0x11
+sete al
+or dl, al
+je loc_fffcd148 ; je 0xfffcd148
+mov eax, dword [ebp - 0x3c]
+mov ebx, dword [eax + 0x54]
+mov eax, edi
+and eax, 0x3f
+shl eax, 0xc
+and ebx, 0xfffc0fff
+jmp short loc_fffccbf7 ; jmp 0xfffccbf7
+
+loc_fffccbe1: ; not directly referenced
+and esi, 0x7f
+mov eax, edi
+shl esi, 0x18
+and ebx, 0x80fff03f
+and eax, 0x3f
+or ebx, esi
+shl eax, 6
+
+loc_fffccbf7: ; not directly referenced
+or ebx, eax
+jmp near loc_fffccfc4 ; jmp 0xfffccfc4
+
+loc_fffccbfe: ; not directly referenced
+and esi, 0x3f
+and ebx, 0xff000fff
+mov eax, esi
+shl eax, 0xc
+shl esi, 0x12
+or ebx, eax
+
+loc_fffccc11: ; not directly referenced
+or ebx, esi
+jmp near loc_fffccfc4 ; jmp 0xfffccfc4
+
+loc_fffccc18: ; not directly referenced
+cmp byte [ebp - 0x30], 0
+movzx ebx, byte [ebp - 0x24]
+je loc_fffcccca ; je 0xfffcccca
+mov eax, dword [ebp + 8]
+lea edx, [ebx*4 + 0x3630]
+xor edi, edi
+mov ecx, dword [ebp + 0x10]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+imul eax, ebx, 0xd8
+mov dword [ebp - 0x20], eax
+
+loc_fffccc43: ; not directly referenced
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+mov ecx, 1
+push 1
+mov edx, edi
+push 0
+push 0
+push dword [ebp + 0x34]
+push ebx
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x29], 0
+jne short loc_fffccc73 ; jne 0xfffccc73
+
+loc_fffccc68: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffccc43 ; jne 0xfffccc43
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffccc73: ; not directly referenced
+imul eax, edi, 0x13c3
+add eax, dword [ebp - 0x20]
+mov byte [ebp - 0x1c], 0
+mov dword [ebp - 0x24], eax
+
+loc_fffccc83: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov cl, byte [ebp - 0x1c]
+cmp cl, byte [eax + 0x2488]
+jae short loc_fffccc68 ; jae 0xfffccc68
+movzx esi, cl
+imul esi, esi, 0x18
+add esi, dword [ebp - 0x24]
+add esi, eax
+xor eax, eax
+mov dword [ebp - 0x28], esi
+
+loc_fffccca1: ; not directly referenced
+mov esi, dword [ebp + 0x10]
+lea ecx, [eax*4]
+lea edx, [eax + eax*2]
+inc eax
+sar esi, cl
+mov ecx, esi
+mov esi, dword [ebp - 0x28]
+and ecx, 0xf
+mov byte [esi + edx + 0x3d38], cl
+cmp eax, 8
+jne short loc_fffccca1 ; jne 0xfffccca1
+inc byte [ebp - 0x1c]
+jmp short loc_fffccc83 ; jmp 0xfffccc83
+
+loc_fffcccca: ; not directly referenced
+mov edi, dword [ebp - 0x1c]
+mov esi, dword [ebp - 0x20]
+mov ecx, dword [ebp + 0x10]
+mov eax, edi
+shl eax, 7
+lea edx, [eax + ebx + 0xc]
+mov eax, esi
+shl eax, 6
+add edx, eax
+mov eax, dword [ebp + 8]
+shl edx, 2
+call fcn_fffae58c ; call 0xfffae58c
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+push 1
+xor ecx, ecx
+push 0
+mov edx, esi
+push edi
+push dword [ebp + 0x34]
+push ebx
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x34], 0
+je loc_fffcd148 ; je 0xfffcd148
+imul eax, dword [ebp - 0x1c], 0x18
+xor ecx, ecx
+imul ebx, ebx, 0xd8
+add ebx, eax
+xor eax, eax
+add ebx, dword [ebp - 0x28]
+
+loc_fffccd26: ; not directly referenced
+mov edx, dword [ebp + 0x10]
+sar edx, cl
+add ecx, 4
+and edx, 0xf
+mov byte [ebx + eax + 0x5e2], dl
+add eax, 3
+cmp ecx, 0x20
+jne short loc_fffccd26 ; jne 0xfffccd26
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffccd45: ; not directly referenced
+cmp byte [ebp - 0x30], 0
+movzx ebx, byte [ebp - 0x24]
+je loc_fffccdf7 ; je 0xfffccdf7
+mov eax, dword [ebp + 8]
+lea edx, [ebx*4 + 0x3610]
+xor edi, edi
+mov ecx, dword [ebp + 0x10]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+imul eax, ebx, 0xd8
+mov dword [ebp - 0x24], eax
+
+loc_fffccd70: ; not directly referenced
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+mov ecx, 1
+push 0
+mov edx, edi
+push 1
+push 0
+push dword [ebp + 0x34]
+push ebx
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x29], 0
+jne short loc_fffccda0 ; jne 0xfffccda0
+
+loc_fffccd95: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffccd70 ; jne 0xfffccd70
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffccda0: ; not directly referenced
+imul eax, edi, 0x13c3
+add eax, dword [ebp - 0x24]
+mov byte [ebp - 0x1c], 0
+mov dword [ebp - 0x20], eax
+
+loc_fffccdb0: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov cl, byte [ebp - 0x1c]
+cmp cl, byte [eax + 0x2488]
+jae short loc_fffccd95 ; jae 0xfffccd95
+movzx esi, cl
+imul esi, esi, 0x18
+add esi, dword [ebp - 0x20]
+add esi, eax
+xor eax, eax
+mov dword [ebp - 0x28], esi
+
+loc_fffccdce: ; not directly referenced
+mov esi, dword [ebp + 0x10]
+lea ecx, [eax*4]
+lea edx, [eax + eax*2]
+inc eax
+sar esi, cl
+mov ecx, esi
+mov esi, dword [ebp - 0x28]
+and ecx, 0xf
+mov byte [esi + edx + 0x39d8], cl
+cmp eax, 8
+jne short loc_fffccdce ; jne 0xfffccdce
+inc byte [ebp - 0x1c]
+jmp short loc_fffccdb0 ; jmp 0xfffccdb0
+
+loc_fffccdf7: ; not directly referenced
+mov edi, dword [ebp - 0x1c]
+mov esi, dword [ebp - 0x20]
+mov ecx, dword [ebp + 0x10]
+mov eax, edi
+shl eax, 7
+lea edx, [eax + ebx + 4]
+mov eax, esi
+shl eax, 6
+add edx, eax
+mov eax, dword [ebp + 8]
+shl edx, 2
+call fcn_fffae58c ; call 0xfffae58c
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+push 0
+xor ecx, ecx
+push 1
+mov edx, esi
+push edi
+push dword [ebp + 0x34]
+push ebx
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x34], 0
+je loc_fffcd148 ; je 0xfffcd148
+imul eax, dword [ebp - 0x1c], 0x18
+xor ecx, ecx
+imul ebx, ebx, 0xd8
+add ebx, eax
+xor eax, eax
+add ebx, dword [ebp - 0x28]
+
+loc_fffcce53: ; not directly referenced
+mov edx, dword [ebp + 0x10]
+sar edx, cl
+add ecx, 4
+and edx, 0xf
+mov byte [ebx + eax + 0x282], dl
+add eax, 3
+cmp ecx, 0x20
+jne short loc_fffcce53 ; jne 0xfffcce53
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffcce72: ; not directly referenced
+cmp byte [ebp - 0x30], 0
+movzx edi, byte [ebp - 0x24]
+je loc_fffccf1d ; je 0xfffccf1d
+mov eax, dword [ebp + 8]
+xor ebx, ebx
+mov edx, dword [ebp + 0x10]
+call fcn_fffaa226 ; call 0xfffaa226
+imul eax, edi, 0xd8
+mov dword [ebp - 0x20], eax
+
+loc_fffcce96: ; not directly referenced
+sub esp, 0xc
+mov eax, dword [ebp + 8]
+mov ecx, 1
+push 0
+mov edx, ebx
+push 1
+push 0
+push dword [ebp + 0x34]
+push edi
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x29], 0
+jne short loc_fffccec6 ; jne 0xfffccec6
+
+loc_fffccebb: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffcce96 ; jne 0xfffcce96
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffccec6: ; not directly referenced
+imul eax, ebx, 0x13c3
+add eax, dword [ebp - 0x20]
+mov byte [ebp - 0x1c], 0
+mov dword [ebp - 0x24], eax
+
+loc_fffcced6: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov cl, byte [ebp - 0x1c]
+cmp cl, byte [eax + 0x2488]
+jae short loc_fffccebb ; jae 0xfffccebb
+movzx esi, cl
+imul esi, esi, 0x18
+add esi, dword [ebp - 0x24]
+add esi, eax
+xor eax, eax
+mov dword [ebp - 0x28], esi
+
+loc_fffccef4: ; not directly referenced
+mov esi, dword [ebp + 0x10]
+lea ecx, [eax*4]
+lea edx, [eax + eax*2]
+inc eax
+sar esi, cl
+mov ecx, esi
+mov esi, dword [ebp - 0x28]
+and ecx, 0xf
+mov byte [esi + edx + 0x4098], cl
+cmp eax, 8
+jne short loc_fffccef4 ; jne 0xfffccef4
+inc byte [ebp - 0x1c]
+jmp short loc_fffcced6 ; jmp 0xfffcced6
+
+loc_fffccf1d: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x188b]
+test eax, eax
+jne short loc_fffccf3c ; jne 0xfffccf3c
+mov edx, dword [ebp - 0x20]
+mov eax, dword [ebp - 0x1c]
+shl edx, 8
+shl eax, 9
+lea edx, [edx + eax + 0x4c]
+jmp short loc_fffccf55 ; jmp 0xfffccf55
+
+loc_fffccf3c: ; not directly referenced
+dec eax
+jne short loc_fffccf53 ; jne 0xfffccf53
+mov eax, dword [ebp - 0x20]
+shl eax, 8
+lea edx, [eax + edi*4 + 0x50]
+mov eax, dword [ebp - 0x1c]
+shl eax, 9
+add edx, eax
+jmp short loc_fffccf55 ; jmp 0xfffccf55
+
+loc_fffccf53: ; not directly referenced
+xor edx, edx
+
+loc_fffccf55: ; not directly referenced
+mov ecx, dword [ebp + 0x10]
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+sub esp, 0xc
+mov edx, dword [ebp - 0x20]
+push 0
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+push 1
+push dword [ebp - 0x1c]
+push dword [ebp + 0x34]
+push edi
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x34], 0
+je loc_fffcd148 ; je 0xfffcd148
+imul eax, dword [ebp - 0x1c], 0x18
+xor ecx, ecx
+imul edx, edi, 0xd8
+add edx, eax
+xor eax, eax
+add edx, dword [ebp - 0x28]
+
+loc_fffccf9b: ; not directly referenced
+mov ebx, dword [ebp + 0x10]
+sar ebx, cl
+add ecx, 4
+and ebx, 0xf
+mov byte [edx + eax + 0x942], bl
+add eax, 3
+cmp ecx, 0x20
+jne short loc_fffccf9b ; jne 0xfffccf9b
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffccfba: ; not directly referenced
+mov eax, 2
+jmp near loc_fffcd14a ; jmp 0xfffcd14a
+
+loc_fffccfc4: ; not directly referenced
+test cl, cl
+sete dl
+cmp cl, 0xb
+sete al
+or dl, al
+jne short loc_fffcd01d ; jne 0xfffcd01d
+cmp cl, 4
+sete dl
+cmp cl, 1
+sete al
+or dl, al
+jne short loc_fffcd01d ; jne 0xfffcd01d
+cmp cl, 0x20
+sete dl
+cmp cl, 0x10
+sete al
+or dl, al
+jne short loc_fffcd01d ; jne 0xfffcd01d
+mov dl, byte [ebp - 0x2a]
+lea eax, [ecx - 2]
+cmp al, 1
+setbe al
+or dl, al
+jne short loc_fffcd014 ; jne 0xfffcd014
+cmp cl, 0x21
+sete al
+cmp cl, 0x11
+mov esi, eax
+sete al
+or esi, eax
+jmp short loc_fffcd019 ; jmp 0xfffcd019
+
+loc_fffcd014: ; not directly referenced
+mov esi, 1
+
+loc_fffcd019: ; not directly referenced
+xor edi, edi
+jmp short loc_fffcd024 ; jmp 0xfffcd024
+
+loc_fffcd01d: ; not directly referenced
+xor esi, esi
+mov edi, 1
+
+loc_fffcd024: ; not directly referenced
+cmp byte [ebp - 0x30], 0
+mov edx, 0x3670
+je loc_fffcd0d4 ; je 0xfffcd0d4
+mov eax, dword [ebp + 8]
+mov ecx, ebx
+cmp dword [eax + 0x188b], 1
+mov eax, 0x367c
+cmove edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffaeb7c ; call 0xfffaeb7c
+mov eax, dword [ebp - 0x38]
+mov dword [ebp - 0x1c], 0
+add eax, 0x1c
+mov dword [ebp - 0x20], eax
+mov eax, esi
+movzx esi, al
+mov eax, edi
+movzx edi, al
+
+loc_fffcd069: ; not directly referenced
+imul eax, dword [ebp - 0x1c], 0x13c3
+mov ecx, dword [ebp + 8]
+cmp dword [ecx + eax + 0x3756], 2
+je short loc_fffcd092 ; je 0xfffcd092
+
+loc_fffcd07d: ; not directly referenced
+inc dword [ebp - 0x1c]
+add dword [ebp - 0x20], 0xcc
+cmp dword [ebp - 0x1c], 2
+jne short loc_fffcd069 ; jne 0xfffcd069
+jmp near loc_fffcd148 ; jmp 0xfffcd148
+
+loc_fffcd092: ; not directly referenced
+sub esp, 0xc
+movzx eax, byte [ebp - 0x24]
+mov ecx, 1
+push esi
+mov edx, dword [ebp - 0x1c]
+push edi
+push 0
+push dword [ebp + 0x34]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+xor eax, eax
+
+loc_fffcd0b6: ; not directly referenced
+mov ecx, dword [ebp + 8]
+cmp al, byte [ecx + 0x2488]
+jae short loc_fffcd07d ; jae 0xfffcd07d
+cmp byte [ebp - 0x29], 0
+je short loc_fffcd0d1 ; je 0xfffcd0d1
+mov ecx, dword [ebp - 0x20]
+movzx edx, al
+mov dword [ecx + edx*4 + 0x54], ebx
+
+loc_fffcd0d1: ; not directly referenced
+inc eax
+jmp short loc_fffcd0b6 ; jmp 0xfffcd0b6
+
+loc_fffcd0d4: ; not directly referenced
+cmp byte [ebp - 0x40], 1
+ja short loc_fffcd0f8 ; ja 0xfffcd0f8
+mov edx, dword [ebp - 0x20]
+shl edx, 8
+cmp byte [ebp - 0x44], 8
+jbe short loc_fffcd0ee ; jbe 0xfffcd0ee
+add edx, 0x3070
+jmp short loc_fffcd0f8 ; jmp 0xfffcd0f8
+
+loc_fffcd0ee: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+shl eax, 9
+lea edx, [edx + eax + 0x70]
+
+loc_fffcd0f8: ; not directly referenced
+mov ecx, dword [ebp + 8]
+lea eax, [edx + 0xc]
+cmp dword [ecx + 0x188b], 1
+mov ecx, ebx
+cmove edx, eax
+mov eax, dword [ebp + 8]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, esi
+sub esp, 0xc
+movzx esi, al
+mov eax, edi
+mov edx, dword [ebp - 0x20]
+push esi
+movzx edi, al
+movzx eax, byte [ebp - 0x24]
+push edi
+xor ecx, ecx
+push dword [ebp - 0x1c]
+push dword [ebp + 0x34]
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffa72c5 ; call 0xfffa72c5
+add esp, 0x20
+cmp byte [ebp - 0x34], 0
+je short loc_fffcd148 ; je 0xfffcd148
+mov eax, dword [ebp - 0x3c]
+mov dword [eax + 0x54], ebx
+
+loc_fffcd148: ; not directly referenced
+xor eax, eax
+
+loc_fffcd14a: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcd152:
+push ebp
+mov ebp, esp
+push ebx
+sub esp, 0x14
+mov eax, dword [ebp + 0xc]
+lea ebx, [eax - 4]
+cmp byte [ebx + 0x18], 1
+je short loc_fffcd1a5 ; je 0xfffcd1a5
+mov eax, dword [ebx + 0x14]
+test eax, eax
+jne short loc_fffcd17f ; jne 0xfffcd17f
+
+loc_fffcd16c:
+mov eax, dword [ebx + 0x10]
+mov ecx, ebx
+mov edx, dword [ebp + 8]
+mov byte [ebx + 0x18], 1
+call fcn_fffa1e8f ; call 0xfffa1e8f
+jmp short loc_fffcd1a7 ; jmp 0xfffcd1a7
+
+loc_fffcd17f:
+test byte [eax + 1], 1
+je short loc_fffcd16c ; je 0xfffcd16c
+lea eax, [ebp - 0xc]
+push eax
+push 0
+push 0
+push ref_fffd65ec ; push 0xfffd65ec
+call fcn_fffab40f ; call 0xfffab40f
+add esp, 0x10
+test eax, eax
+je short loc_fffcd16c ; je 0xfffcd16c
+mov eax, 0x80000006
+jmp short loc_fffcd1a7 ; jmp 0xfffcd1a7
+
+loc_fffcd1a5:
+xor eax, eax
+
+loc_fffcd1a7:
+mov ebx, dword [ebp - 4]
+leave
+ret
+
+fcn_fffcd1ac: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x190
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0x14c], edx
+mov edx, dword [esi + 0x5edc]
+lea eax, [ebp - 0x13f]
+push 1
+mov edi, dword [ebp + 0xc]
+push 7
+push eax
+mov dword [ebp - 0x180], edx
+mov edx, dword [esi + 0x2443]
+mov dword [ebp - 0x16c], ecx
+mov byte [ebp - 0x151], cl
+mov dword [ebp - 0x184], edx
+call dword [edx + 0x5c] ; ucall
+mov eax, dword [ebp - 0x16c]
+add esp, 0x10
+mov edx, dword [ebp - 0x14c]
+cmp al, 0xb
+setne cl
+dec eax
+cmp al, 1
+seta al
+test cl, al
+mov byte [ebp - 0x152], cl
+jne loc_fffcd946 ; jne 0xfffcd946
+cmp byte [ebp - 0x16c], 0xb
+movzx edx, dl
+jne short loc_fffcd25f ; jne 0xfffcd25f
+sub esp, 0xc
+mov eax, esi
+lea ecx, [edi - 3]
+push 0
+movzx ecx, cl
+call fcn_fffb26ca ; call 0xfffb26ca
+add esp, 0x10
+dec bl
+mov byte [esi + 0x248b], 0xa
+je short loc_fffcd258 ; je 0xfffcd258
+
+loc_fffcd24c: ; not directly referenced
+mov dword [ebp - 0x158], 0
+jmp short loc_fffcd2ac ; jmp 0xfffcd2ac
+
+loc_fffcd258: ; not directly referenced
+mov eax, 8
+jmp short loc_fffcd285 ; jmp 0xfffcd285
+
+loc_fffcd25f: ; not directly referenced
+sub esp, 0xc
+mov eax, edi
+movzx ecx, al
+mov eax, esi
+push 0
+call fcn_fffb26ca ; call 0xfffb26ca
+add esp, 0x10
+dec bl
+jne short loc_fffcd24c ; jne 0xfffcd24c
+cmp byte [ebp - 0x16c], 1
+jne short loc_fffcd258 ; jne 0xfffcd258
+mov eax, 9
+
+loc_fffcd285: ; not directly referenced
+push 1
+push 0
+push 1
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0x88888888
+push eax
+push esi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov dword [ebp - 0x158], eax
+
+loc_fffcd2ac: ; not directly referenced
+lea eax, [esi + 0x3756]
+mov dword [ebp - 0x178], eax
+movzx eax, byte [ebp - 0x151]
+mov dword [ebp - 0x150], 0
+mov dword [ebp - 0x164], 0
+mov dword [ebp - 0x17c], eax
+
+loc_fffcd2d9: ; not directly referenced
+mov edi, dword [ebp - 0x180]
+xor ebx, ebx
+mov eax, dword [ebp - 0x150]
+mov dword [ebp - 0x170], 1
+mov byte [ebp - 0x15c], 0
+add edi, 0x70
+mov cl, al
+mov dword [ebp - 0x160], edi
+mov edi, dword [ebp - 0x178]
+lea eax, [eax + eax*8]
+shl dword [ebp - 0x170], cl
+mov dword [ebp - 0x174], eax
+
+loc_fffcd318: ; not directly referenced
+mov ecx, dword [ebp - 0x170]
+mov edx, ebx
+mov eax, esi
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x15c], al
+movzx eax, byte [ebp - 0x15c]
+bt eax, ebx
+mov dword [ebp - 0x168], eax
+jae loc_fffcd434 ; jae 0xfffcd434
+mov eax, dword [ebp - 0x174]
+mov byte [ebp - 0x14c], 0
+add eax, edi
+mov dword [ebp - 0x188], eax
+
+loc_fffcd358: ; not directly referenced
+movzx eax, byte [esi + 0x2488]
+cmp byte [ebp - 0x14c], al
+jb short loc_fffcd396 ; jb 0xfffcd396
+
+loc_fffcd367: ; not directly referenced
+push edx
+push 0
+push eax
+mov eax, dword [ebp - 0x184]
+push dword [ebp - 0x160]
+call dword [eax + 0x64] ; ucall
+mov edx, ebx
+xor ecx, ecx
+shl edx, 0xa
+mov eax, esi
+add edx, 0x40f0
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+jmp near loc_fffcd434 ; jmp 0xfffcd434
+
+loc_fffcd396: ; not directly referenced
+cmp byte [ebp - 0x152], 0
+je short loc_fffcd367 ; je 0xfffcd367
+cmp byte [ebp - 0x151], 1
+jne short loc_fffcd3e0 ; jne 0xfffcd3e0
+movzx eax, byte [ebp - 0x14c]
+mov ecx, dword [ebp - 0x188]
+lea edx, [ecx + eax]
+mov ecx, dword [ebp - 0x150]
+mov byte [edx + 0x104a], 0x20
+mov byte [edx + 0x106e], 0x20
+push edx
+mov edx, ebx
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffa7499 ; call 0xfffa7499
+jmp short loc_fffcd426 ; jmp 0xfffcd426
+
+loc_fffcd3e0: ; not directly referenced
+cmp byte [ebp - 0x151], 2
+jne short loc_fffcd429 ; jne 0xfffcd429
+movzx eax, byte [ebp - 0x14c]
+mov ecx, dword [ebp - 0x174]
+lea edx, [eax + ecx]
+add edx, edx
+add edx, edi
+mov cx, word [edx + 0x121]
+add ecx, 0x20
+mov word [edx + 0x169], cx
+mov edx, ebx
+push ecx
+mov ecx, dword [ebp - 0x150]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffa73b0 ; call 0xfffa73b0
+
+loc_fffcd426: ; not directly referenced
+add esp, 0x10
+
+loc_fffcd429: ; not directly referenced
+inc byte [ebp - 0x14c]
+jmp near loc_fffcd358 ; jmp 0xfffcd358
+
+loc_fffcd434: ; not directly referenced
+inc ebx
+add edi, 0x13c3
+add dword [ebp - 0x160], 0xcc
+cmp ebx, 2
+jne loc_fffcd318 ; jne 0xfffcd318
+cmp byte [ebp - 0x15c], 0
+je loc_fffcd91b ; je 0xfffcd91b
+mov edi, 0xffffffe1
+
+loc_fffcd460: ; not directly referenced
+cmp byte [ebp - 0x151], 0xb
+jne short loc_fffcd4ba ; jne 0xfffcd4ba
+xor ebx, ebx
+
+loc_fffcd46b: ; not directly referenced
+mov eax, dword [ebp - 0x168]
+bt eax, ebx
+jb short loc_fffcd47e ; jb 0xfffcd47e
+
+loc_fffcd476: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffcd46b ; jne 0xfffcd46b
+jmp short loc_fffcd4dc ; jmp 0xfffcd4dc
+
+loc_fffcd47e: ; not directly referenced
+xor edx, edx
+
+loc_fffcd480: ; not directly referenced
+cmp dl, byte [esi + 0x2488]
+jae short loc_fffcd476 ; jae 0xfffcd476
+push 1
+movzx eax, dl
+push 0
+push 0
+push 0
+push eax
+push dword [ebp - 0x150]
+mov dword [ebp - 0x14c], edx
+push ebx
+push 0
+push 0
+push edi
+push 0xb
+push esi
+call fcn_fffcc900 ; call 0xfffcc900
+mov edx, dword [ebp - 0x14c]
+add esp, 0x30
+inc edx
+jmp short loc_fffcd480 ; jmp 0xfffcd480
+
+loc_fffcd4ba: ; not directly referenced
+push 1
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push edi
+push dword [ebp - 0x17c]
+push esi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+
+loc_fffcd4dc: ; not directly referenced
+movzx ecx, byte [esi + 0x248b]
+lea eax, [ebp - 0x13f]
+push ebx
+mov edx, dword [ebp - 0x168]
+push 0
+push 1
+push eax
+mov eax, esi
+call fcn_fffb0f94 ; call 0xfffb0f94
+lea eax, [ebp - 0x60]
+add esp, 0x10
+mov dword [ebp - 0x14c], eax
+lea eax, [ebp - 0xa8]
+mov dword [ebp - 0x158], eax
+lea eax, [ebp - 0x138]
+mov dword [ebp - 0x15c], eax
+lea eax, [edi - 1]
+lea ebx, [ebp - 0xf0]
+mov dword [ebp - 0x160], 0
+mov dword [ebp - 0x190], eax
+
+loc_fffcd539: ; not directly referenced
+mov eax, dword [ebp - 0x168]
+mov ecx, dword [ebp - 0x160]
+bt eax, ecx
+jb short loc_fffcd576 ; jb 0xfffcd576
+
+loc_fffcd54a: ; not directly referenced
+inc dword [ebp - 0x160]
+add ebx, 0x24
+add dword [ebp - 0x14c], 0x24
+add dword [ebp - 0x158], 0x24
+add dword [ebp - 0x15c], 0x24
+cmp dword [ebp - 0x160], 2
+jne short loc_fffcd539 ; jne 0xfffcd539
+jmp near loc_fffcd689 ; jmp 0xfffcd689
+
+loc_fffcd576: ; not directly referenced
+mov edx, dword [ebp - 0x160]
+mov eax, esi
+shl edx, 0xa
+add edx, 0x40ec
+call fcn_fffae52a ; call 0xfffae52a
+mov cl, byte [esi + 0x2488]
+mov byte [ebp - 0x170], cl
+xor ecx, ecx
+movzx eax, ax
+mov dword [ebp - 0x18c], eax
+
+loc_fffcd5a3: ; not directly referenced
+cmp byte [ebp - 0x170], cl
+jbe short loc_fffcd54a ; jbe 0xfffcd54a
+mov eax, dword [ebp - 0x18c]
+sar eax, cl
+and eax, 1
+xor eax, 1
+cmp edi, 0xffffffe1
+jne short loc_fffcd61f ; jne 0xfffcd61f
+test eax, eax
+mov eax, dword [ebp - 0x14c]
+je short loc_fffcd5f5 ; je 0xfffcd5f5
+mov dword [eax + ecx*4], 0xffffffe1
+mov eax, dword [ebp - 0x158]
+mov dword [ebx + ecx*4], 0xffffffe1
+mov dword [eax + ecx*4], 0xffffffe1
+mov eax, dword [ebp - 0x15c]
+mov dword [eax + ecx*4], 0xffffffe1
+jmp near loc_fffcd683 ; jmp 0xfffcd683
+
+loc_fffcd5f5: ; not directly referenced
+mov dword [eax + ecx*4], 0xffffffdf
+mov eax, dword [ebp - 0x158]
+mov dword [ebx + ecx*4], 0xffffffdf
+mov dword [eax + ecx*4], 0xffffffdf
+mov eax, dword [ebp - 0x15c]
+mov dword [eax + ecx*4], 0xffffffdf
+jmp short loc_fffcd683 ; jmp 0xfffcd683
+
+loc_fffcd61f: ; not directly referenced
+test eax, eax
+je short loc_fffcd683 ; je 0xfffcd683
+mov eax, dword [ebp - 0x190]
+cmp dword [ebx + ecx*4], eax
+je short loc_fffcd637 ; je 0xfffcd637
+mov eax, dword [ebp - 0x15c]
+mov dword [eax + ecx*4], edi
+
+loc_fffcd637: ; not directly referenced
+mov eax, dword [ebp - 0x15c]
+mov dword [ebx + ecx*4], edi
+mov eax, dword [eax + ecx*4]
+mov edx, eax
+mov dword [ebp - 0x174], eax
+mov eax, edi
+sub eax, edx
+mov edx, dword [ebp - 0x158]
+mov dword [ebp - 0x188], eax
+mov eax, dword [ebp - 0x14c]
+mov eax, dword [eax + ecx*4]
+sub eax, dword [edx + ecx*4]
+cmp dword [ebp - 0x188], eax
+jle short loc_fffcd683 ; jle 0xfffcd683
+mov eax, edx
+mov edx, dword [ebp - 0x174]
+mov dword [eax + ecx*4], edx
+mov eax, dword [ebp - 0x14c]
+mov dword [eax + ecx*4], edi
+
+loc_fffcd683: ; not directly referenced
+inc ecx
+jmp near loc_fffcd5a3 ; jmp 0xfffcd5a3
+
+loc_fffcd689: ; not directly referenced
+inc edi
+cmp edi, 0x20
+jne loc_fffcd460 ; jne 0xfffcd460
+push 2
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push dword [ebp - 0x17c]
+push esi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov dword [ebp - 0x14c], 0
+mov dword [ebp - 0x158], eax
+mov eax, dword [ebp - 0x178]
+mov dword [ebp - 0x15c], eax
+mov eax, dword [ebp - 0x150]
+lea ebx, [eax + eax*8]
+imul eax, eax, 0x12
+mov dword [ebp - 0x170], ebx
+mov dword [ebp - 0x174], eax
+
+loc_fffcd6ea: ; not directly referenced
+mov eax, dword [ebp - 0x168]
+mov ebx, dword [ebp - 0x14c]
+bt eax, ebx
+jae loc_fffcd8fe ; jae 0xfffcd8fe
+mov eax, dword [ebp - 0x170]
+add eax, dword [ebp - 0x15c]
+mov byte [ebp - 0x160], 0
+mov dword [ebp - 0x188], eax
+
+loc_fffcd718: ; not directly referenced
+mov al, byte [ebp - 0x160]
+cmp al, byte [esi + 0x2488]
+jae loc_fffcd8b8 ; jae 0xfffcd8b8
+movzx eax, byte [ebp - 0x160]
+imul edx, dword [ebp - 0x14c], 9
+add edx, eax
+mov ebx, dword [ebp + edx*4 - 0x60]
+mov edx, dword [ebp + edx*4 - 0xa8]
+mov ecx, ebx
+sub ecx, edx
+cmp ecx, 7
+jg short loc_fffcd769 ; jg 0xfffcd769
+cmp byte [esi + 0x1965], 0
+mov ecx, 9
+cmove ecx, dword [ebp - 0x158]
+mov dword [ebp - 0x158], ecx
+jmp short loc_fffcd773 ; jmp 0xfffcd773
+
+loc_fffcd769: ; not directly referenced
+sar ecx, 1
+add ecx, edx
+mov dword [ebp - 0x164], ecx
+
+loc_fffcd773: ; not directly referenced
+imul edi, edx, 0xfffffff6
+imul ecx, edx, 0xa
+test edx, edx
+cmovs ecx, edi
+imul edx, ebx, 0xa
+imul edi, ebx, 0xfffffff6
+test ebx, ebx
+cmovs edx, edi
+cmp byte [ebp - 0x151], 1
+jne short loc_fffcd7d1 ; jne 0xfffcd7d1
+imul ebx, dword [ebp - 0x14c], 9
+add ebx, dword [ebp - 0x174]
+mov edi, dword [ebp - 0x188]
+lea ebx, [eax + ebx + 0x50]
+mov dword [esi + ebx*8 + 0x2450], ecx
+mov ecx, dword [ebp - 0x164]
+mov dword [esi + ebx*8 + 0x2454], edx
+lea edx, [edi + eax]
+add byte [edx + 0x104a], cl
+add byte [edx + 0x106e], cl
+jmp near loc_fffcd88e ; jmp 0xfffcd88e
+
+loc_fffcd7d1: ; not directly referenced
+cmp byte [ebp - 0x151], 2
+jne short loc_fffcd83d ; jne 0xfffcd83d
+imul ebx, dword [ebp - 0x14c], 9
+add ebx, dword [ebp - 0x174]
+mov edi, dword [ebp - 0x164]
+lea ebx, [eax + ebx + 0xe0]
+mov dword [esi + ebx*8 + 0x2454], edx
+movzx edx, byte [ebp - 0x160]
+mov dword [esi + ebx*8 + 0x2450], ecx
+mov ebx, dword [ebp - 0x15c]
+add edx, dword [ebp - 0x170]
+add edx, edx
+add word [ebx + edx + 0x169], di
+push ecx
+mov edx, dword [ebp - 0x14c]
+mov ecx, dword [ebp - 0x150]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffa73b0 ; call 0xfffa73b0
+jmp short loc_fffcd8aa ; jmp 0xfffcd8aa
+
+loc_fffcd83d: ; not directly referenced
+cmp byte [ebp - 0x151], 0xb
+jne short loc_fffcd8ad ; jne 0xfffcd8ad
+imul ebx, dword [ebp - 0x14c], 9
+add ebx, dword [ebp - 0x174]
+mov edi, dword [ebp - 0x164]
+lea ebx, [eax + ebx + 0x128]
+mov dword [esi + ebx*8 + 0x2454], edx
+movzx edx, byte [ebp - 0x160]
+mov dword [esi + ebx*8 + 0x2450], ecx
+lea ecx, [edi + edi]
+mov edi, dword [ebp - 0x15c]
+add edx, dword [ebp - 0x170]
+add edx, edx
+add word [edi + edx + 0x1b1], cx
+
+loc_fffcd88e: ; not directly referenced
+mov ecx, dword [ebp - 0x150]
+push edx
+mov edx, dword [ebp - 0x14c]
+push 0
+push 0xff
+push eax
+mov eax, esi
+call fcn_fffa7499 ; call 0xfffa7499
+
+loc_fffcd8aa: ; not directly referenced
+add esp, 0x10
+
+loc_fffcd8ad: ; not directly referenced
+inc byte [ebp - 0x160]
+jmp near loc_fffcd718 ; jmp 0xfffcd718
+
+loc_fffcd8b8: ; not directly referenced
+cmp byte [ebp - 0x151], 0xb
+jne short loc_fffcd8fe ; jne 0xfffcd8fe
+mov ebx, dword [ebp - 0x14c]
+mov eax, esi
+shl ebx, 0xa
+add ebx, 0x4028
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edi, dword [ebp - 0x15c]
+movzx edx, byte [edi + 0x1019]
+and eax, 0xffc0ffff
+and edx, 0x3f
+shl edx, 0x10
+or eax, edx
+mov edx, ebx
+mov ecx, eax
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffcd8fe: ; not directly referenced
+inc dword [ebp - 0x14c]
+add dword [ebp - 0x15c], 0x13c3
+cmp dword [ebp - 0x14c], 2
+jne loc_fffcd6ea ; jne 0xfffcd6ea
+
+loc_fffcd91b: ; not directly referenced
+inc dword [ebp - 0x150]
+cmp dword [ebp - 0x150], 4
+jne loc_fffcd2d9 ; jne 0xfffcd2d9
+cmp byte [ebp - 0x16c], 0xb
+mov ebx, dword [ebp - 0x158]
+jne short loc_fffcd94b ; jne 0xfffcd94b
+mov eax, esi
+call fcn_fffb0e8a ; call 0xfffb0e8a
+jmp short loc_fffcd94b ; jmp 0xfffcd94b
+
+loc_fffcd946: ; not directly referenced
+mov ebx, 2
+
+loc_fffcd94b: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, ebx
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcd955: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+xor ebx, ebx
+sub esp, 0x2c
+mov eax, dword [eax + 0x2480]
+mov dword [ebp - 0x2c], ecx
+lea edi, [esi + 0x3756]
+mov byte [ebp - 0x25], dl
+mov dword [ebp - 0x24], eax
+
+loc_fffcd977: ; not directly referenced
+cmp dword [edi], 2
+jne loc_fffcda73 ; jne 0xfffcda73
+mov dl, byte [ebp - 0x25]
+and dl, byte [edi + 0xc4]
+je loc_fffcda73 ; je 0xfffcda73
+mov eax, dword [ebp - 0x2c]
+movzx ecx, dl
+mov dword [ebp - 0x20], ecx
+movzx eax, byte [eax + ebx]
+push edx
+push 0
+push eax
+push 3
+push ecx
+push 0
+push ebx
+push esi
+mov dword [ebp - 0x1c], eax
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+xor edx, edx
+
+loc_fffcd9b4: ; not directly referenced
+mov eax, dword [ebp - 0x20]
+bt eax, edx
+jae short loc_fffcd9c9 ; jae 0xfffcd9c9
+movzx edx, byte [edi + edx + 0x245]
+add edx, dword [ebp - 0x1c]
+jmp short loc_fffcd9d1 ; jmp 0xfffcd9d1
+
+loc_fffcd9c9: ; not directly referenced
+inc edx
+cmp edx, 4
+jne short loc_fffcd9b4 ; jne 0xfffcd9b4
+xor dl, dl
+
+loc_fffcd9d1: ; not directly referenced
+push ecx
+push 0
+push edx
+push 1
+push dword [ebp - 0x20]
+push 4
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+mov edx, dword [ebp - 0x1c]
+push 0
+add edx, dword [edi + 0x111]
+push edx
+push 1
+push dword [ebp - 0x20]
+push 2
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+mov edx, dword [ebp - 0x1c]
+push 0
+add edx, dword [edi + 0x119]
+push edx
+push 1
+push dword [ebp - 0x20]
+push 1
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+cmp dword [ebp - 0x24], 3
+jne short loc_fffcda55 ; jne 0xfffcda55
+mov eax, dword [ebp - 0x1c]
+add dword [edi + 0x111], eax
+push edx
+push 0
+mov edx, dword [edi + 0x115]
+add edx, eax
+push edx
+push 2
+push dword [ebp - 0x20]
+push 2
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+mov edx, dword [ebp - 0x1c]
+add esp, 0x20
+sub dword [edi + 0x111], edx
+
+loc_fffcda55: ; not directly referenced
+mov edx, dword [ebp - 0x1c]
+push eax
+push 0
+add edx, dword [edi + 0x109]
+push edx
+push 1
+push dword [ebp - 0x20]
+push 3
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcda73: ; not directly referenced
+inc ebx
+add edi, 0x13c3
+cmp ebx, 2
+jne loc_fffcd977 ; jne 0xfffcd977
+sub esp, 0xc
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcda94: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, edx
+sub esp, 0x3d0
+mov edi, dword [ebp + 0xc]
+mov dword [ebp - 0x3cc], ecx
+mov ecx, dword [ebp + 0x14]
+mov byte [ebp - 0x38e], dl
+mov dl, byte [ebp + 8]
+mov esi, dword [ebp + 0x10]
+mov dword [ebp - 0x34c], eax
+xor eax, eax
+cmp bl, 0xc
+mov dword [ebp - 0x37c], ecx
+mov ecx, dword [ebp + 0x24]
+mov dword [ebp - 0x374], edi
+mov byte [ebp - 0x3a4], dl
+mov edx, edi
+lea edi, [ebp - 0x2e0]
+mov dword [ebp - 0x380], ecx
+mov ecx, dword [ebp + 0x2c]
+mov byte [ebp - 0x34d], dl
+mov edx, esi
+mov byte [ebp - 0x364], dl
+mov dl, byte [ebp + 0x20]
+mov dword [ebp - 0x378], esi
+mov esi, ref_fffd5bc0 ; mov esi, 0xfffd5bc0
+mov dword [ebp - 0x384], ecx
+mov ecx, 0xb
+rep stosd ; rep stosd dword es:[edi], eax
+lea edi, [ebp - 0x321]
+mov byte [ebp - 0x38f], dl
+mov dl, byte [ebp + 0x28]
+mov word [ebp - 0x2d8], 7
+mov word [ebp - 0x2d2], 0x3ff
+mov word [ebp - 0x2bc], 1
+mov byte [ebp - 0x34e], dl
+mov cl, 0xd
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+lea edi, [ebp - 0x302]
+mov esi, ref_fffd5bd0 ; mov esi, 0xfffd5bd0
+mov word [ebp - 0x2b6], 1
+mov cl, 4
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov eax, dword [ebp - 0x34c]
+lea edi, [ebp - 0x288]
+mov esi, ref_fffd5be0 ; mov esi, 0xfffd5be0
+mov byte [ebp - 0x33e], 0
+mov byte [ebp - 0x33d], 0
+mov word [ebp - 0x32c], 0
+mov dword [ebp - 0x32a], 0
+mov cl, 0xc
+rep movsd ; rep movsd dword es:[edi], dword ptr [esi]
+mov edi, dword [eax + 0x2443]
+mov esi, 0xa
+mov al, 0x14
+cmovne esi, eax
+push 0
+mov eax, esi
+push 2
+mov byte [ebp - 0x3b6], al
+lea eax, [ebp - 0x33a]
+push eax
+mov dword [ebp - 0x326], 7
+mov byte [ebp - 0x322], 0
+call dword [edi + 0x60] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x33c]
+push eax
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x10
+lea eax, [ebp - 0x314]
+push eax
+call dword [edi + 0x5c] ; ucall
+add esp, 0xc
+push 0x2c
+lea eax, [ebp - 0x2e0]
+push eax
+lea eax, [ebp - 0x2b4]
+push eax
+call dword [edi + 0x58] ; ucall
+add esp, 0x10
+xor eax, eax
+
+loc_fffcdc0a: ; not directly referenced
+mov byte [ebp + eax - 0x335], al
+inc eax
+cmp eax, 9
+jne short loc_fffcdc0a ; jne 0xfffcdc0a
+cmp bl, 0xc
+sete al
+mov byte [ebp - 0x34f], al
+movzx eax, al
+mov dword [ebp - 0x354], eax
+lea eax, [ebx - 8]
+cmp al, 1
+setbe dl
+cmp bl, 0xb
+sete al
+or dl, al
+mov dword [ebp - 0x35c], 1
+jne short loc_fffcdc56 ; jne 0xfffcdc56
+xor eax, eax
+cmp bl, 0xa
+sete al
+mov dword [ebp - 0x35c], eax
+
+loc_fffcdc56: ; not directly referenced
+mov al, byte [ebp - 0x33d]
+mov esi, dword [ebp - 0x34c]
+movzx ecx, byte [ebp - 0x38e]
+mov dword [ebp - 0x358], 0
+mov byte [ebp - 0x360], al
+mov al, byte [ebp - 0x33e]
+add esi, 0x381a
+mov dword [ebp - 0x388], ecx
+
+loc_fffcdc8b: ; not directly referenced
+mov cl, byte [esi]
+test cl, cl
+je loc_fffcdd4f ; je 0xfffcdd4f
+mov dl, cl
+and edx, 0xc
+cmp dl, 0xc
+je short loc_fffcdcb5 ; je 0xfffcdcb5
+mov dl, cl
+and edx, 3
+cmp dl, 3
+sete dl
+movzx edx, dl
+mov dword [ebp - 0x370], edx
+jmp short loc_fffcdcbf ; jmp 0xfffcdcbf
+
+loc_fffcdcb5: ; not directly referenced
+mov dword [ebp - 0x370], 1
+
+loc_fffcdcbf: ; not directly referenced
+test byte [ebp - 0x34e], cl
+je loc_fffcdd4f ; je 0xfffcdd4f
+mov cl, byte [ebp - 0x358]
+mov edx, 1
+shl edx, cl
+mov ecx, dword [ebp - 0x388]
+mov dword [ebp - 0x368], edx
+mov cl, byte [ebp + ecx - 0x321]
+mov byte [ebp - 0x36c], cl
+and cl, 2
+je short loc_fffcdd11 ; je 0xfffcdd11
+mov cl, byte [ebp - 0x360]
+mov dl, byte [ebp - 0x368]
+or edx, ecx
+cmp dword [esi - 4], 2
+cmove ecx, edx
+mov byte [ebp - 0x360], cl
+
+loc_fffcdd11: ; not directly referenced
+test byte [ebp - 0x36c], 1
+je short loc_fffcdd23 ; je 0xfffcdd23
+cmp dword [ebp - 0x370], 0
+jne short loc_fffcdd2c ; jne 0xfffcdd2c
+
+loc_fffcdd23: ; not directly referenced
+cmp dword [ebp - 0x354], 0
+je short loc_fffcdd32 ; je 0xfffcdd32
+
+loc_fffcdd2c: ; not directly referenced
+or eax, dword [ebp - 0x368]
+
+loc_fffcdd32: ; not directly referenced
+cmp dword [ebp - 0x35c], 0
+je short loc_fffcdd4f ; je 0xfffcdd4f
+mov edx, dword [ebp - 0x358]
+movzx ecx, al
+bt ecx, edx
+jb short loc_fffcdd4f ; jb 0xfffcdd4f
+or eax, dword [ebp - 0x368]
+
+loc_fffcdd4f: ; not directly referenced
+inc dword [ebp - 0x358]
+add esi, 0x13c3
+cmp dword [ebp - 0x358], 2
+jne loc_fffcdc8b ; jne 0xfffcdc8b
+mov dl, byte [ebp - 0x360]
+mov cl, byte [ebp - 0x374]
+cmp byte [ebp - 0x378], cl
+mov byte [ebp - 0x33e], al
+mov byte [ebp - 0x33d], dl
+setle cl
+or al, dl
+mov byte [ebp - 0x358], al
+sete al
+or cl, al
+je short loc_fffcdda2 ; je 0xfffcdda2
+
+loc_fffcdd98: ; not directly referenced
+mov eax, 1
+jmp near loc_fffceaf5 ; jmp 0xfffceaf5
+
+loc_fffcdda2: ; not directly referenced
+mov eax, dword [ebp - 0x34c]
+mov byte [eax + 0x248b], 3
+lea eax, [ebx - 6]
+cmp al, 1
+ja short loc_fffcddd1 ; ja 0xfffcddd1
+mov eax, dword [ebp - 0x34c]
+mov edx, 1
+mov ecx, 4
+mov byte [eax + 0x248b], 5
+mov al, 0xd
+jmp short loc_fffcddf3 ; jmp 0xfffcddf3
+
+loc_fffcddd1: ; not directly referenced
+cmp dword [ebp - 0x35c], 0
+je short loc_fffcddfa ; je 0xfffcddfa
+mov eax, dword [ebp - 0x34c]
+mov edx, 1
+mov ecx, 5
+mov byte [eax + 0x248b], 6
+mov al, 0xd
+
+loc_fffcddf3: ; not directly referenced
+mov esi, 0x80
+jmp short loc_fffcde1c ; jmp 0xfffcde1c
+
+loc_fffcddfa: ; not directly referenced
+cmp byte [ebp - 0x34f], 1
+sbb eax, eax
+xor edx, edx
+and eax, 0xfffffffd
+xor ecx, ecx
+add eax, 0x10
+cmp byte [ebp - 0x34f], 1
+sbb esi, esi
+and esi, 0x7c
+add esi, 4
+
+loc_fffcde1c: ; not directly referenced
+movzx eax, al
+movzx esi, si
+mov dword [ebp - 0x35c], ebx
+mov ebx, dword [ebp - 0x34c]
+mov word [ebp - 0x32c], ax
+movzx eax, byte [ebp - 0x37c]
+mov dword [ebp - 0x2a0], edx
+mov dword [ebp - 0x294], edx
+mov bl, byte [ebx + 0x248b]
+mov edx, eax
+movzx eax, byte [ebp - 0x358]
+push 0
+push 0
+push 0
+mov byte [ebp - 0x322], bl
+mov ebx, eax
+mov dword [ebp - 0x3a0], eax
+lea eax, [ebp - 0x32c]
+push eax
+push 0
+lea eax, [ebp - 0x2b4]
+push eax
+push edx
+push esi
+mov dword [ebp - 0x358], edx
+mov edx, ebx
+mov ebx, dword [ebp - 0x34c]
+mov eax, ebx
+call fcn_fffb20e5 ; call 0xfffb20e5
+add esp, 0x20
+lea eax, [esi - 1]
+mov esi, ebx
+call fcn_fffaec34 ; call 0xfffaec34
+mov cl, byte [ebp - 0x358]
+mov edx, 1
+sub ecx, eax
+mov eax, edx
+shl eax, cl
+mov ecx, eax
+mov al, 1
+test cl, cl
+cmovg eax, ecx
+mov byte [ebx + 0x248c], al
+mov ebx, dword [ebp - 0x35c]
+movzx ecx, byte [esi + 0x2488]
+mov dword [ebp - 0x35c], 0
+lea eax, [ebx - 0xa]
+cmp al, 1
+mov byte [ebp - 0x3b5], al
+setbe al
+movzx eax, al
+shl edx, cl
+cmp bl, 0xa
+mov bl, byte [ebp - 0x364]
+mov dword [ebp - 0x38c], eax
+lea eax, [edx - 1]
+mov dl, byte [ebp - 0x34d]
+mov word [ebp - 0x3a2], ax
+sete al
+lea eax, [eax + eax - 1]
+mov cl, al
+mov byte [ebp - 0x358], al
+mov al, byte [ebp - 0x378]
+cmove eax, edx
+mov dl, al
+mov byte [ebp - 0x34d], al
+mov al, byte [ebp - 0x374]
+cmove eax, ebx
+add esi, 0x3756
+mov byte [ebp - 0x364], al
+mov al, byte [ebp - 0x384]
+imul eax, ecx
+sub edx, eax
+mov byte [ebp - 0x350], al
+movzx eax, dl
+mov dword [ebp - 0x36c], eax
+
+loc_fffcdf57: ; not directly referenced
+cmp dword [esi], 2
+je short loc_fffcdfce ; je 0xfffcdfce
+
+loc_fffcdf5c: ; not directly referenced
+add dword [ebp - 0x35c], 9
+add esi, 0x13c3
+cmp dword [ebp - 0x35c], 0x12
+jne short loc_fffcdf57 ; jne 0xfffcdf57
+movzx eax, byte [ebp - 0x380]
+movzx edi, byte [ebp - 0x38e]
+mov dword [ebp - 0x37c], 0
+mov dword [ebp - 0x3b0], eax
+imul eax, eax, 0x90
+mov dword [ebp - 0x398], edi
+movzx edi, byte [ebp - 0x34e]
+mov dword [ebp - 0x3c4], eax
+mov al, byte [ebp - 0x364]
+mov dword [ebp - 0x39c], edi
+mov byte [ebp - 0x36c], al
+mov al, byte [ebp - 0x34d]
+mov byte [ebp - 0x374], al
+xor eax, eax
+jmp near loc_fffce1f4 ; jmp 0xfffce1f4
+
+loc_fffcdfce: ; not directly referenced
+mov ebx, dword [ebp - 0x34c]
+push ecx
+push dword [ebp - 0x36c]
+movzx eax, byte [ebx + 0x2488]
+push eax
+mov eax, dword [ebp - 0x35c]
+lea eax, [ebp + eax - 0x2f2]
+push eax
+call dword [edi + 0x5c] ; ucall
+mov al, byte [ebx + 0x2488]
+add esp, 0x10
+xor edx, edx
+mov byte [ebp - 0x368], al
+
+loc_fffce005: ; not directly referenced
+cmp dl, byte [ebp - 0x368]
+je loc_fffcdf5c ; je 0xfffcdf5c
+movzx ecx, dl
+add ecx, dword [ebp - 0x35c]
+lea eax, [ebp - 0x258]
+mov byte [ebp - 0x360], 0
+add ecx, ecx
+add ecx, eax
+xor eax, eax
+
+loc_fffce02d: ; not directly referenced
+mov bl, byte [ebp - 0x3a4]
+cmp byte [ebp - 0x360], bl
+je short loc_fffce07b ; je 0xfffce07b
+mov bl, byte [ebp - 0x38f]
+test bl, bl
+je short loc_fffce06e ; je 0xfffce06e
+mov word [ecx + eax], 0x500
+cmp bl, 1
+jbe short loc_fffce057 ; jbe 0xfffce057
+mov word [ecx + eax + 0x24], 0x500
+
+loc_fffce057: ; not directly referenced
+cmp byte [ebp - 0x38f], 1
+mov word [ecx + eax + 0x48], 0x500
+jbe short loc_fffce06e ; jbe 0xfffce06e
+mov word [ecx + eax + 0x6c], 0x500
+
+loc_fffce06e: ; not directly referenced
+inc byte [ebp - 0x360]
+add eax, 0x90
+jmp short loc_fffce02d ; jmp 0xfffce02d
+
+loc_fffce07b: ; not directly referenced
+inc edx
+jmp short loc_fffce005 ; jmp 0xfffce005
+
+loc_fffce07e: ; not directly referenced
+test al, al
+jne loc_fffce210 ; jne 0xfffce210
+mov al, byte [ebp - 0x34d]
+sub eax, dword [ebp - 0x374]
+imul eax, dword [ebp - 0x358]
+mov byte [ebp - 0x38d], al
+dec al
+sete al
+test byte [ebp - 0x34f], al
+je short loc_fffce0d0 ; je 0xfffce0d0
+mov al, byte [ebp - 0x36c]
+add ecx, dword [ebp - 0x374]
+neg byte [ebp - 0x358]
+mov byte [ebp - 0x374], dl
+mov byte [ebp - 0x34d], al
+mov byte [ebp - 0x36c], cl
+
+loc_fffce0d0: ; not directly referenced
+movzx eax, byte [ebp - 0x34d]
+xor esi, esi
+mov edi, eax
+shl edi, 0x18
+mov dword [ebp - 0x360], edi
+mov edi, 0x48dc
+mov dword [ebp - 0x368], eax
+
+loc_fffce0ef: ; not directly referenced
+imul eax, esi, 0x13c3
+mov ebx, dword [ebp - 0x34c]
+mov al, byte [ebx + eax + 0x381a]
+mov ebx, dword [ebp - 0x3a0]
+bt ebx, esi
+jb loc_fffce23a ; jb 0xfffce23a
+
+loc_fffce111: ; not directly referenced
+inc esi
+add edi, 8
+cmp esi, 2
+jne short loc_fffce0ef ; jne 0xfffce0ef
+mov al, byte [ebp - 0x34d]
+sub eax, dword [ebp - 0x358]
+mov dword [ebp - 0x3a8], 0
+mov dword [ebp - 0x368], 0
+mov byte [ebp - 0x390], al
+mov al, byte [ebp - 0x350]
+sub byte [ebp - 0x390], al
+
+loc_fffce14c: ; not directly referenced
+mov eax, dword [ebp - 0x368]
+movzx eax, byte [ebp + eax - 0x33e]
+mov byte [ebp - 0x3a3], al
+test al, al
+je loc_fffce98f ; je 0xfffce98f
+mov dword [ebp - 0x35c], eax
+xor esi, esi
+imul eax, dword [ebp - 0x368], 6
+mov dword [ebp - 0x364], eax
+
+loc_fffce17d: ; not directly referenced
+mov eax, dword [ebp - 0x35c]
+bt eax, esi
+jb loc_fffce35a ; jb 0xfffce35a
+
+loc_fffce18c: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffce17d ; jne 0xfffce17d
+mov eax, dword [ebp - 0x35c]
+mov byte [ebp - 0x360], 0
+and eax, 2
+mov dword [ebp - 0x3b4], eax
+mov eax, dword [ebp + 0x1c]
+mov dword [ebp - 0x394], eax
+
+loc_fffce1b1: ; not directly referenced
+mov al, byte [ebp - 0x394]
+sub eax, dword [ebp + 0x1c]
+mov byte [ebp - 0x364], al
+cmp al, byte [ebp - 0x38f]
+jae short loc_fffce1d5 ; jae 0xfffce1d5
+cmp byte [ebp - 0x360], 0
+je loc_fffce40a ; je 0xfffce40a
+
+loc_fffce1d5: ; not directly referenced
+cmp dword [ebp - 0x368], 1
+jne loc_fffce99b ; jne 0xfffce99b
+
+loc_fffce1e2: ; not directly referenced
+mov al, byte [ebp - 0x358]
+add byte [ebp - 0x34d], al
+mov al, byte [ebp - 0x360]
+
+loc_fffce1f4: ; not directly referenced
+mov edi, dword [ebp - 0x358]
+mov dl, byte [ebp - 0x36c]
+mov ecx, edi
+add edx, edi
+cmp byte [ebp - 0x34d], dl
+jne loc_fffce07e ; jne 0xfffce07e
+
+loc_fffce210: ; not directly referenced
+cmp dword [ebp - 0x354], 1
+jne loc_fffce9be ; jne 0xfffce9be
+mov al, byte [ebp - 0x374]
+add eax, dword [ebp - 0x358]
+neg byte [ebp - 0x358]
+mov byte [ebp - 0x36c], al
+jmp near loc_fffce9be ; jmp 0xfffce9be
+
+loc_fffce23a: ; not directly referenced
+and al, byte [ebp - 0x34e]
+mov byte [ebp - 0x364], al
+je loc_fffce111 ; je 0xfffce111
+mov ebx, dword [ebp - 0x34c]
+mov edx, edi
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+mov dword [ebp - 0x34c], ebx
+xor al, al
+or eax, dword [ebp - 0x398]
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x34c]
+lea ebx, [edi - 4]
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, ebx
+lea ebx, [edi + 0x10]
+and eax, 0xffffff
+or eax, dword [ebp - 0x360]
+mov ecx, eax
+mov eax, dword [ebp - 0x34c]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x34c]
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, ebx
+lea ebx, [edi + 0xc]
+xor al, al
+or eax, dword [ebp - 0x398]
+mov ecx, eax
+mov eax, dword [ebp - 0x34c]
+call fcn_fffae58c ; call 0xfffae58c
+mov eax, dword [ebp - 0x34c]
+mov edx, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, ebx
+and eax, 0xffffff
+or eax, dword [ebp - 0x360]
+mov ecx, eax
+mov eax, dword [ebp - 0x34c]
+call fcn_fffae58c ; call 0xfffae58c
+cmp dword [ebp - 0x38c], 0
+mov byte [ebp - 0x35c], 1
+je short loc_fffce311 ; je 0xfffce311
+mov eax, dword [ebp - 0x34c]
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x35c], al
+
+loc_fffce311: ; not directly referenced
+movzx eax, byte [ebp - 0x364]
+xor ebx, ebx
+mov dword [ebp - 0x364], eax
+
+loc_fffce320: ; not directly referenced
+cmp byte [ebp - 0x35c], bl
+jbe loc_fffce111 ; jbe 0xfffce111
+sub esp, 0xc
+mov eax, dword [ebp - 0x34c]
+mov ecx, ebx
+push dword [ebp - 0x364]
+mov edx, esi
+inc ebx
+push 0
+push 0
+push dword [ebp - 0x368]
+push dword [ebp - 0x398]
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x20
+jmp short loc_fffce320 ; jmp 0xfffce320
+
+loc_fffce35a: ; not directly referenced
+imul eax, esi, 0x13c3
+mov edi, dword [ebp - 0x34c]
+mov dl, byte [ebp - 0x34e]
+and dl, byte [edi + eax + 0x381a]
+je loc_fffce18c ; je 0xfffce18c
+cmp dword [ebp - 0x354], 0
+mov eax, 0x3210
+jne short loc_fffce3a4 ; jne 0xfffce3a4
+movzx ecx, dl
+movzx ecx, byte [ebp + ecx - 0x302]
+cmp cl, 0xf
+je short loc_fffce3a4 ; je 0xfffce3a4
+add ecx, dword [ebp - 0x364]
+mov eax, dword [ebp + ecx*4 - 0x288]
+
+loc_fffce3a4: ; not directly referenced
+mov dword [ebp - 0x360], 0
+xor ebx, ebx
+movzx edx, dl
+
+loc_fffce3b3: ; not directly referenced
+test eax, eax
+je short loc_fffce3d9 ; je 0xfffce3d9
+mov cl, al
+and ecx, 0xf
+shr eax, 4
+bt edx, ecx
+movzx edi, cl
+jae short loc_fffce3b3 ; jae 0xfffce3b3
+lea ecx, [ebx*4]
+inc ebx
+shl edi, cl
+or dword [ebp - 0x360], edi
+jmp short loc_fffce3b3 ; jmp 0xfffce3b3
+
+loc_fffce3d9: ; not directly referenced
+mov edi, dword [ebp - 0x34c]
+lea edx, [esi*4 + 0x4930]
+dec ebx
+mov ecx, dword [ebp - 0x360]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+movzx ecx, bl
+mov eax, edi
+lea edx, [esi*8 + 0x48ef]
+call fcn_fffae566 ; call 0xfffae566
+jmp near loc_fffce18c ; jmp 0xfffce18c
+
+loc_fffce40a: ; not directly referenced
+mov eax, dword [ebp - 0x394]
+cmp dword [ebp - 0x354], 0
+mov bl, byte [eax]
+je short loc_fffce45e ; je 0xfffce45e
+mov edi, dword [ebp - 0x360]
+lea ecx, [ebp - 0x33c]
+test byte [ebp - 0x3a3], 1
+mov edx, dword [ebp - 0x39c]
+mov eax, edi
+cmovne eax, ebx
+cmp dword [ebp - 0x3b4], 0
+mov byte [ebp - 0x33c], al
+mov eax, edi
+cmovne eax, ebx
+mov byte [ebp - 0x33b], al
+mov eax, dword [ebp - 0x34c]
+call fcn_fffcd955 ; call 0xfffcd955
+jmp short loc_fffce4ce ; jmp 0xfffce4ce
+
+loc_fffce45e: ; not directly referenced
+cmp byte [ebp - 0x368], 1
+movzx eax, bl
+jne short loc_fffce497 ; jne 0xfffce497
+mov esi, dword [ebp - 0x35c]
+sub esp, 0xc
+mov ecx, 3
+mov edi, dword [ebp - 0x34c]
+neg ebx
+push eax
+mov edx, esi
+mov eax, edi
+call fcn_fffcfce5 ; call 0xfffcfce5
+movzx eax, bl
+mov ecx, 0xc
+mov dword [esp], eax
+jmp short loc_fffce4c2 ; jmp 0xfffce4c2
+
+loc_fffce497: ; not directly referenced
+mov esi, dword [ebp - 0x35c]
+sub esp, 0xc
+mov ecx, 5
+mov edi, dword [ebp - 0x34c]
+neg ebx
+push eax
+mov edx, esi
+mov eax, edi
+call fcn_fffcfce5 ; call 0xfffcfce5
+movzx eax, bl
+mov ecx, 0xa
+mov dword [esp], eax
+
+loc_fffce4c2: ; not directly referenced
+mov edx, esi
+mov eax, edi
+call fcn_fffcfce5 ; call 0xfffcfce5
+add esp, 0x10
+
+loc_fffce4ce: ; not directly referenced
+movzx ebx, byte [ebp - 0x364]
+mov dword [ebp - 0x388], 0
+imul ebx, ebx, 0x24
+add ebx, dword [ebp - 0x3a8]
+mov dword [ebp - 0x3c8], ebx
+
+loc_fffce4ee: ; not directly referenced
+mov al, byte [ebp - 0x388]
+cmp byte [ebp - 0x3a4], al
+jbe loc_fffce935 ; jbe 0xfffce935
+mov eax, dword [ebp - 0x3cc]
+mov edi, dword [ebp - 0x388]
+mov bl, byte [eax + edi]
+test bl, bl
+je loc_fffcdd98 ; je 0xfffcdd98
+movzx eax, bl
+mov dword [ebp - 0x378], eax
+mov byte [ebp - 0x370], 0
+cmp bl, 0x21
+ja short loc_fffce538 ; ja 0xfffce538
+mov al, byte [eax + ref_fffd5f1c] ; mov al, byte [eax - 0x2a0e4]
+mov byte [ebp - 0x370], al
+
+loc_fffce538: ; not directly referenced
+mov esi, dword [ebp - 0x34c]
+xor ecx, ecx
+mov edx, dword [ebp - 0x378]
+mov eax, esi
+call fcn_fffb13cf ; call 0xfffb13cf
+cmp dword [esi + 0x2480], 2
+mov word [ebp - 0x3b8], ax
+jne short loc_fffce572 ; jne 0xfffce572
+cmp bl, 0x11
+sete dl
+cmp bl, 5
+sete al
+or dl, al
+jne short loc_fffce5ac ; jne 0xfffce5ac
+cmp bl, 0x21
+je short loc_fffce5ac ; je 0xfffce5ac
+
+loc_fffce572: ; not directly referenced
+cmp bl, 0x10
+sete dl
+cmp bl, 4
+sete al
+or dl, al
+jne short loc_fffce5b0 ; jne 0xfffce5b0
+cmp bl, 5
+sete dl
+cmp bl, 0x20
+sete al
+or dl, al
+jne short loc_fffce5b0 ; jne 0xfffce5b0
+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_fffce5b2 ; jmp 0xfffce5b2
+
+loc_fffce5ac: ; not directly referenced
+mov bl, 0x25
+jmp short loc_fffce5b2 ; jmp 0xfffce5b2
+
+loc_fffce5b0: ; not directly referenced
+mov bl, 0x36
+
+loc_fffce5b2: ; not directly referenced
+xor eax, eax
+mov dl, 1
+
+loc_fffce5b6: ; not directly referenced
+mov esi, dword [ebp - 0x35c]
+bt esi, eax
+jae short loc_fffce60f ; jae 0xfffce60f
+imul esi, eax, 0x13c3
+mov edi, dword [ebp - 0x34c]
+mov cl, byte [ebp - 0x34e]
+test byte [edi + esi + 0x381a], cl
+je short loc_fffce60f ; je 0xfffce60f
+cmp byte [ebp - 0x3b5], 2
+ja short loc_fffce5fe ; ja 0xfffce5fe
+mov di, word [ebp - 0x3a2]
+cmp word [ebp + eax*2 - 0x33a], di
+mov edi, 0
+cmovne edx, edi
+jmp short loc_fffce60f ; jmp 0xfffce60f
+
+loc_fffce5fe: ; not directly referenced
+cmp word [ebp + eax*2 - 0x33a], 0
+mov edi, 0
+cmove edx, edi
+
+loc_fffce60f: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffce5b6 ; jne 0xfffce5b6
+test dl, dl
+jne loc_fffce92e ; jne 0xfffce92e
+mov edi, dword [ebp - 0x34c]
+mov ecx, dword [ebp - 0x378]
+push edx
+push edx
+mov eax, edi
+add eax, 0x2490
+push 0xf
+mov edx, eax
+push 0
+mov esi, eax
+mov dword [ebp - 0x3bc], eax
+mov eax, edi
+call fcn_fffa7e6c ; call 0xfffa7e6c
+add esp, 0x10
+test eax, eax
+jne loc_fffceaf5 ; jne 0xfffceaf5
+push eax
+movzx ebx, bl
+mov ecx, dword [ebp - 0x35c]
+push eax
+mov edx, esi
+lea eax, [ebp - 0x314]
+push eax
+push ebx
+lea eax, [ebp - 0x335]
+push eax
+mov eax, edi
+push dword [ebp - 0x378]
+push 0xff
+push dword [ebp - 0x3b0]
+call fcn_fffd13ed ; call 0xfffd13ed
+add esp, 0x20
+mov dword [ebp - 0x37c], eax
+test eax, eax
+jne loc_fffceaef ; jne 0xfffceaef
+imul eax, dword [ebp - 0x388], 0x90
+mov esi, 0x64
+add eax, dword [ebp - 0x3c8]
+mov bl, byte [ebp - 0x370]
+lea edi, [ebp - 0x2f2]
+mov dword [ebp - 0x364], edi
+lea eax, [ebp + eax - 0x258]
+mov dword [ebp - 0x384], eax
+movzx eax, byte [ebp - 0x3b6]
+movzx edi, bl
+imul edi, edi, 0x240
+add edi, dword [ebp + 0x18]
+add edi, dword [ebp - 0x3c4]
+sub esi, eax
+mov byte [ebp - 0x380], 1
+mov dword [ebp - 0x3d4], esi
+mov dword [ebp - 0x3ac], edi
+xor edi, edi
+
+loc_fffce6fb: ; not directly referenced
+imul eax, edi, 0x13c3
+mov esi, dword [ebp - 0x34c]
+mov al, byte [esi + eax + 0x381a]
+mov esi, dword [ebp - 0x35c]
+bt esi, edi
+jae loc_fffce8d2 ; jae 0xfffce8d2
+test byte [ebp - 0x34e], al
+je loc_fffce8d2 ; je 0xfffce8d2
+mov eax, dword [ebp - 0x34c]
+xor ecx, ecx
+mov al, byte [eax + 0x2488]
+mov byte [ebp - 0x3bf], al
+
+loc_fffce73d: ; not directly referenced
+cmp byte [ebp - 0x3bf], cl
+jbe loc_fffce8d2 ; jbe 0xfffce8d2
+mov eax, dword [ebp - 0x3ac]
+mov dword [ebp - 0x370], 1
+shl dword [ebp - 0x370], cl
+movzx ebx, word [eax + ecx*8 + 4]
+movzx edx, word [eax + ecx*8]
+mov esi, ebx
+lea eax, [ebx + edx]
+sub esi, edx
+add eax, eax
+mov word [ebp - 0x3be], ax
+sub eax, esi
+add si, word [ebp - 0x3be]
+cmp bx, dx
+mov ebx, dword [ebp - 0x370]
+cmovbe eax, esi
+mov si, word [ebp + edi*2 - 0x33a]
+and bx, si
+mov word [ebp - 0x3be], bx
+je short loc_fffce7ae ; je 0xfffce7ae
+cmp dword [ebp - 0x354], 0
+je loc_fffce8cc ; je 0xfffce8cc
+
+loc_fffce7ae: ; not directly referenced
+mov edx, eax
+mov ebx, 2
+sar dx, 0xf
+idiv bx
+cmp ax, word [ebp - 0x3b8]
+jae short loc_fffce806 ; jae 0xfffce806
+cmp dword [ebp - 0x354], 1
+jne loc_fffce862 ; jne 0xfffce862
+cmp byte [ebp - 0x38d], 0
+mov byte [ebp - 0x380], 0
+jne loc_fffce8cc ; jne 0xfffce8cc
+mov ax, word [ebp - 0x3a2]
+mov word [ebp + edi*2 - 0x33a], ax
+mov al, byte [ebp - 0x38d]
+mov byte [ebp - 0x380], al
+jmp near loc_fffce8cc ; jmp 0xfffce8cc
+
+loc_fffce806: ; not directly referenced
+cmp byte [ebp - 0x38d], 0
+jne short loc_fffce828 ; jne 0xfffce828
+mov esi, dword [ebp - 0x384]
+cmp word [esi + ecx*2], ax
+jbe loc_fffce8cc ; jbe 0xfffce8cc
+mov word [esi + ecx*2], ax
+jmp near loc_fffce8cc ; jmp 0xfffce8cc
+
+loc_fffce828: ; not directly referenced
+movzx eax, ax
+mov ebx, 0x64
+mov dword [ebp - 0x3d0], eax
+mov eax, dword [ebp - 0x384]
+movzx eax, word [eax + ecx*2]
+imul eax, dword [ebp - 0x3d4]
+cdq
+idiv ebx
+cmp dword [ebp - 0x3d0], eax
+jge short loc_fffce87e ; jge 0xfffce87e
+cmp dword [ebp - 0x354], 0
+mov byte [ebp - 0x380], 0
+jne short loc_fffce8cc ; jne 0xfffce8cc
+
+loc_fffce862: ; not directly referenced
+or esi, dword [ebp - 0x370]
+mov al, byte [ebp - 0x390]
+mov word [ebp + edi*2 - 0x33a], si
+mov esi, dword [ebp - 0x364]
+jmp short loc_fffce8c9 ; jmp 0xfffce8c9
+
+loc_fffce87e: ; not directly referenced
+cmp dword [ebp - 0x354], 1
+jne short loc_fffce8b7 ; jne 0xfffce8b7
+mov ebx, dword [ebp - 0x370]
+cmp word [ebp - 0x3be], bx
+je short loc_fffce8cc ; je 0xfffce8cc
+mov al, byte [ebp - 0x34d]
+or esi, ebx
+mov edx, dword [ebp - 0x364]
+sub eax, dword [ebp - 0x350]
+mov word [ebp + edi*2 - 0x33a], si
+mov byte [edx + ecx], al
+jmp short loc_fffce8cc ; jmp 0xfffce8cc
+
+loc_fffce8b7: ; not directly referenced
+mov al, byte [ebp - 0x34d]
+mov esi, dword [ebp - 0x364]
+sub eax, dword [ebp - 0x350]
+
+loc_fffce8c9: ; not directly referenced
+mov byte [esi + ecx], al
+
+loc_fffce8cc: ; not directly referenced
+inc ecx
+jmp near loc_fffce73d ; jmp 0xfffce73d
+
+loc_fffce8d2: ; not directly referenced
+inc edi
+add dword [ebp - 0x384], 0x12
+add dword [ebp - 0x364], 9
+add dword [ebp - 0x3ac], 0x48
+cmp edi, 2
+jne loc_fffce6fb ; jne 0xfffce6fb
+cmp byte [ebp - 0x380], 0
+je short loc_fffce923 ; je 0xfffce923
+sub esp, 0xc
+mov ecx, dword [ebp - 0x378]
+push dword [ebp - 0x3b0]
+mov edx, dword [ebp - 0x3bc]
+mov eax, dword [ebp - 0x34c]
+call fcn_fffa7d98 ; call 0xfffa7d98
+add esp, 0x10
+mov dword [ebp - 0x37c], eax
+
+loc_fffce923: ; not directly referenced
+inc dword [ebp - 0x388]
+jmp near loc_fffce4ee ; jmp 0xfffce4ee
+
+loc_fffce92e: ; not directly referenced
+mov byte [ebp - 0x360], 1
+
+loc_fffce935: ; not directly referenced
+cmp dword [ebp - 0x354], 0
+je short loc_fffce965 ; je 0xfffce965
+mov edx, dword [ebp - 0x39c]
+lea ecx, [ebp - 0x33c]
+mov eax, dword [ebp - 0x34c]
+mov byte [ebp - 0x33c], 0
+mov byte [ebp - 0x33b], 0
+call fcn_fffcd955 ; call 0xfffcd955
+jmp short loc_fffce984 ; jmp 0xfffce984
+
+loc_fffce965: ; not directly referenced
+mov ecx, dword [ebp - 0x39c]
+sub esp, 0xc
+mov edx, dword [ebp - 0x35c]
+mov eax, dword [ebp - 0x34c]
+push 0
+call fcn_fffcfce5 ; call 0xfffcfce5
+add esp, 0x10
+
+loc_fffce984: ; not directly referenced
+inc dword [ebp - 0x394]
+jmp near loc_fffce1b1 ; jmp 0xfffce1b1
+
+loc_fffce98f: ; not directly referenced
+mov byte [ebp - 0x360], 0
+jmp near loc_fffce1d5 ; jmp 0xfffce1d5
+
+loc_fffce99b: ; not directly referenced
+add dword [ebp - 0x3a8], 0x48
+cmp byte [ebp - 0x360], 0
+jne loc_fffce1e2 ; jne 0xfffce1e2
+mov dword [ebp - 0x368], 1
+jmp near loc_fffce14c ; jmp 0xfffce14c
+
+loc_fffce9be: ; not directly referenced
+movzx eax, byte [ebp - 0x38e]
+xor esi, esi
+mov dword [ebp - 0x35c], eax
+
+loc_fffce9cd: ; not directly referenced
+mov eax, dword [ebp - 0x3a0]
+bt eax, esi
+jae loc_fffceae5 ; jae 0xfffceae5
+imul eax, esi, 0x13c3
+mov edi, dword [ebp - 0x34c]
+mov bl, byte [ebp - 0x34e]
+and bl, byte [edi + eax + 0x381a]
+mov byte [ebp - 0x354], bl
+je loc_fffceae5 ; je 0xfffceae5
+movzx ebx, byte [ebp - 0x36c]
+lea edi, [esi + esi*8]
+lea eax, [ebp - 0x18]
+mov byte [ebp - 0x34d], 0
+add edi, eax
+
+loc_fffcea17: ; not directly referenced
+mov ecx, dword [ebp - 0x34c]
+mov al, byte [ebp - 0x34d]
+cmp al, byte [ecx + 0x2488]
+jae loc_fffceab4 ; jae 0xfffceab4
+cmp byte [ebp - 0x358], 1
+jne short loc_fffcea4e ; jne 0xfffcea4e
+movzx eax, byte [ebp - 0x34d]
+movzx eax, byte [eax + edi - 0x2da]
+cmp bl, al
+cmovg ebx, eax
+jmp short loc_fffcea6b ; jmp 0xfffcea6b
+
+loc_fffcea4e: ; not directly referenced
+cmp byte [ebp - 0x358], 0xff
+jne short loc_fffcea6b ; jne 0xfffcea6b
+movzx eax, byte [ebp - 0x34d]
+movzx eax, byte [eax + edi - 0x2da]
+cmp bl, al
+cmovl ebx, eax
+
+loc_fffcea6b: ; not directly referenced
+cmp dword [ebp - 0x38c], 0
+je short loc_fffceaa9 ; je 0xfffceaa9
+movzx eax, byte [ebp - 0x354]
+sub esp, 0xc
+mov edx, esi
+movzx ecx, byte [ebp - 0x34d]
+push eax
+push 1
+push 1
+movzx eax, byte [ecx + edi - 0x2da]
+push eax
+mov eax, dword [ebp - 0x34c]
+push dword [ebp - 0x35c]
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x20
+
+loc_fffceaa9: ; not directly referenced
+inc byte [ebp - 0x34d]
+jmp near loc_fffcea17 ; jmp 0xfffcea17
+
+loc_fffceab4: ; not directly referenced
+cmp dword [ebp - 0x38c], 0
+jne short loc_fffceae5 ; jne 0xfffceae5
+movzx eax, byte [ebp - 0x354]
+sub esp, 0xc
+xor ecx, ecx
+mov edx, esi
+push eax
+mov eax, dword [ebp - 0x34c]
+push 1
+push 1
+push ebx
+push dword [ebp - 0x35c]
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x20
+
+loc_fffceae5: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffce9cd ; jne 0xfffce9cd
+
+loc_fffceaef: ; not directly referenced
+mov eax, dword [ebp - 0x37c]
+
+loc_fffceaf5: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffceafd: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+sub esp, 0x2c
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0x1c], 4
+mov byte [ebp - 0x1b], 1
+mov byte [ebp - 0x1a], 5
+mov eax, dword [eax + 0x5edc]
+mov byte [ebp - 0x19], 2
+mov byte [ebp - 0x22], 4
+mov byte [ebp - 0x21], 1
+lea edx, [eax + 0x1c]
+xor eax, eax
+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
+
+loc_fffceb4c: ; not directly referenced
+mov edi, dword [ebp + 8]
+mov cl, byte [edi + eax + 0x381a]
+test cl, cl
+je short loc_fffcebb4 ; je 0xfffcebb4
+cmp dword [ebp - 0x2c], 0
+mov ebx, 1
+jne short loc_fffceb72 ; jne 0xfffceb72
+xor ebx, ebx
+cmp dword [edi + eax + 0x3816], 2
+sete bl
+
+loc_fffceb72: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+mov edi, 1
+mov dword [ebp - 0x2c], ebx
+jne short loc_fffceb99 ; jne 0xfffceb99
+mov esi, ecx
+and esi, 0xc
+mov ebx, esi
+cmp bl, 0xc
+je short loc_fffceb99 ; je 0xfffceb99
+and ecx, 3
+xor ebx, ebx
+cmp cl, 3
+sete bl
+mov edi, ebx
+
+loc_fffceb99: ; not directly referenced
+movzx ecx, byte [edx + 0xa5]
+mov bl, byte [edx + 0xa4]
+mov dword [ebp - 0x30], edi
+and ecx, 3
+shr bl, 6
+shl ecx, 2
+or ebx, ecx
+
+loc_fffcebb4: ; not directly referenced
+add eax, 0x13c3
+add edx, 0xcc
+cmp eax, 0x2786
+jne short loc_fffceb4c ; jne 0xfffceb4c
+mov eax, dword [ebp + 8]
+mov edx, 1
+lea edi, [ebp - 0x1e]
+call fcn_fffb0b30 ; call 0xfffb0b30
+mov eax, dword [ebp + 8]
+mov edx, 0xa
+lea esi, [eax + 0x2490]
+push ecx
+push ecx
+push 1
+push 0xf
+push 0
+push 2
+push edi
+push esi
+push 0xc
+push 3
+push 0
+push 2
+lea ecx, [ebp - 0x22]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x28
+mov eax, dword [ebp + 8]
+push 1
+mov edx, 0xb
+push 0xf
+push 0
+push 2
+push edi
+push esi
+push 0xc
+push 0
+push 0xfffffffffffffffe
+push 2
+lea ecx, [ebp - 0x22]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x30
+cmp dword [ebp - 0x2c], 0
+je short loc_fffceca9 ; je 0xfffceca9
+push edx
+mov eax, dword [ebp + 8]
+push edx
+mov edx, 1
+push 0
+push 0xf
+push 0
+push 2
+push edi
+push esi
+push 0xc
+push 7
+push 6
+push 2
+lea ecx, [ebp - 0x22]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x28
+mov eax, dword [ebp + 8]
+push 0
+mov edx, 3
+push 0xf
+push 0
+push 2
+push edi
+push esi
+push 0xc
+push 8
+push 7
+push 2
+lea ecx, [ebp - 0x20]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x28
+mov edx, 7
+push 0
+push 0xf
+push 0
+push 2
+push edi
+push esi
+lea eax, [ebx + 1]
+push 0xc
+movsx eax, al
+push eax
+lea eax, [ebx - 1]
+movsx eax, al
+push eax
+mov eax, dword [ebp + 8]
+push 4
+lea ecx, [ebp - 0x1c]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x30
+
+loc_fffceca9: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+je short loc_fffced28 ; je 0xfffced28
+push eax
+xor edx, edx
+push eax
+mov eax, dword [ebp + 8]
+push 0
+push 0xf
+push 0
+push 2
+lea edi, [ebp - 0x1e]
+push edi
+push esi
+push 0xc
+push 7
+push 6
+push 2
+lea ecx, [ebp - 0x22]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x28
+mov eax, dword [ebp + 8]
+push 0
+mov edx, 2
+push 0xf
+push 0
+push 2
+push edi
+push esi
+push 0xc
+push 8
+push 7
+push 2
+lea ecx, [ebp - 0x20]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x28
+mov edx, 6
+push 0
+push 0xf
+push 0
+push 2
+push edi
+push esi
+lea eax, [ebx + 1]
+dec ebx
+push 0xc
+movsx eax, al
+push eax
+mov eax, dword [ebp + 8]
+movsx ebx, bl
+push ebx
+push 4
+lea ecx, [ebp - 0x1c]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x30
+
+loc_fffced28: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffced30: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+xor ebx, ebx
+sub esp, 0x3c
+mov edi, dword [ebp + 8]
+mov byte [ebp - 0x1a], 1
+mov byte [ebp - 0x19], 0x19
+mov dword [ebp - 0x38], 0
+mov eax, dword [edi + 0x5edc]
+mov dword [ebp - 0x30], eax
+
+loc_fffced56: ; not directly referenced
+mov esi, 1
+mov cl, bl
+shl esi, cl
+mov eax, esi
+test byte [edi + 0x248d], al
+je loc_fffcee06 ; je 0xfffcee06
+test byte [edi + 0x381a], al
+je short loc_fffced95 ; je 0xfffced95
+mov cl, byte [edi + ebx + 0x4767]
+mov dl, 0xf
+movsx eax, byte [edi + ebx + 0x476b]
+cmp cl, 0xf
+cmovbe edx, ecx
+mov cl, al
+mov byte [ebp - 0x29], dl
+sub ecx, edx
+jmp short loc_fffced9d ; jmp 0xfffced9d
+
+loc_fffced95: ; not directly referenced
+mov byte [ebp - 0x29], 0xf
+xor eax, eax
+xor ecx, ecx
+
+loc_fffced9d: ; not directly referenced
+mov edx, esi
+test byte [edi + 0x4bdd], dl
+je short loc_fffcedc7 ; je 0xfffcedc7
+movsx ecx, byte [edi + ebx + 0x5b2e]
+mov dl, byte [ebp - 0x29]
+cmp al, cl
+cmovb eax, ecx
+mov cl, byte [edi + ebx + 0x5b2a]
+cmp dl, cl
+cmova edx, ecx
+mov cl, al
+sub ecx, edx
+
+loc_fffcedc7: ; not directly referenced
+mov dl, 0
+test cl, cl
+cmovs ecx, edx
+push edx
+movzx ecx, cl
+push edx
+push 0
+push esi
+push ebx
+push 1
+lea esi, [ebp - 0x19]
+push esi
+lea edx, [edi + 0x2490]
+push edx
+mov edx, 0xc
+push 0xa
+push eax
+mov eax, edi
+push ecx
+push 1
+lea ecx, [ebp - 0x1a]
+call fcn_fffcda94 ; call 0xfffcda94
+add esp, 0x30
+mov dword [ebp - 0x38], eax
+dec eax
+je loc_fffcef18 ; je 0xfffcef18
+
+loc_fffcee06: ; not directly referenced
+inc ebx
+cmp ebx, 4
+jne loc_fffced56 ; jne 0xfffced56
+mov esi, dword [ebp - 0x30]
+lea ebx, [edi + 0x3756]
+mov dword [ebp - 0x34], 0
+add esi, 0x1c
+
+loc_fffcee23: ; not directly referenced
+cmp dword [ebx], 2
+je short loc_fffcee45 ; je 0xfffcee45
+
+loc_fffcee28: ; not directly referenced
+inc dword [ebp - 0x34]
+add ebx, 0x13c3
+add esi, 0xcc
+cmp dword [ebp - 0x34], 2
+jne short loc_fffcee23 ; jne 0xfffcee23
+mov eax, dword [ebp - 0x38]
+jmp near loc_fffcef1d ; jmp 0xfffcef1d
+
+loc_fffcee45: ; not directly referenced
+mov al, byte [esi + 0xa1]
+movzx edx, byte [esi + 0xa2]
+mov byte [ebp - 0x29], 0
+shr al, 7
+and edx, 7
+movzx eax, al
+add edx, edx
+or edx, eax
+mov al, byte [esi + 0xa2]
+shr al, 3
+and eax, 0xf
+cmp al, dl
+cmovb eax, edx
+xor edx, edx
+lea eax, [eax + eax - 8]
+test al, al
+cmovns edx, eax
+mov al, byte [ebx + 0xc4]
+xor ecx, ecx
+mov byte [ebp - 0x2a], dl
+mov byte [ebp - 0x30], al
+
+loc_fffcee8d: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x30], dl
+je short loc_fffceeab ; je 0xfffceeab
+mov al, byte [ebp - 0x29]
+mov dl, byte [ebx + ecx + 0x1015]
+cmp al, dl
+cmovb eax, edx
+mov byte [ebp - 0x29], al
+
+loc_fffceeab: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffcee8d ; jne 0xfffcee8d
+mov al, byte [ebp - 0x29]
+sub al, byte [ebp - 0x2a]
+mov dword [ebp - 0x30], 0
+movzx eax, al
+mov dword [ebp - 0x3c], eax
+
+loc_fffceec4: ; not directly referenced
+mov cl, byte [ebp - 0x30]
+mov eax, 1
+shl eax, cl
+test byte [ebx + 0xc4], al
+je short loc_fffcef0a ; je 0xfffcef0a
+mov ecx, dword [ebp - 0x30]
+mov dl, byte [ebp - 0x29]
+sub dl, byte [ebx + ecx + 0x1015]
+movsx ecx, byte [ebp - 0x2a]
+movzx edx, dl
+cmp edx, ecx
+jle short loc_fffcef0a ; jle 0xfffcef0a
+sub esp, 0xc
+mov edx, dword [ebp - 0x34]
+xor ecx, ecx
+push eax
+mov eax, edi
+push 0
+push 1
+push dword [ebp - 0x3c]
+push 0xc
+call fcn_fffb579d ; call 0xfffb579d
+add esp, 0x20
+
+loc_fffcef0a: ; not directly referenced
+inc dword [ebp - 0x30]
+cmp dword [ebp - 0x30], 4
+jne short loc_fffceec4 ; jne 0xfffceec4
+jmp near loc_fffcee28 ; jmp 0xfffcee28
+
+loc_fffcef18: ; not directly referenced
+mov eax, 0x19
+
+loc_fffcef1d: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcef25: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x40
+mov al, byte [ebp + 8]
+mov edi, dword [ebp + 0xc]
+mov ebx, dword [ebp + 0x18]
+mov byte [ebp - 0x41], dl
+mov edx, dword [esi + 0x2443]
+push 0
+push 2
+mov byte [ebp - 0x33], al
+mov eax, edi
+mov byte [ebp - 0x34], al
+lea eax, [ebp - 0x23]
+push eax
+mov byte [ebp - 0x32], cl
+mov dword [ebp - 0x30], ecx
+mov dword [ebp - 0x2c], edx
+mov byte [ebp - 0x42], bl
+call dword [edx + 0x5c] ; ucall
+add esp, 0xc
+mov edx, dword [ebp - 0x2c]
+push 1
+push 7
+lea eax, [ebp - 0x1f]
+push eax
+call dword [edx + 0x5c] ; ucall
+add esp, 0x10
+mov ecx, dword [ebp - 0x30]
+cmp dword [esi + 0x188b], 1
+mov dword [ebp - 0x2c], 0
+jne short loc_fffcefbc ; jne 0xfffcefbc
+xor eax, eax
+cmp dword [esi + 0x2480], 3
+sete al
+mov dword [ebp - 0x2c], eax
+jne short loc_fffcefbc ; jne 0xfffcefbc
+test bl, bl
+je short loc_fffcefa2 ; je 0xfffcefa2
+mov eax, dword [ebp + 0x10]
+jmp short loc_fffcefa5 ; jmp 0xfffcefa5
+
+loc_fffcefa2: ; not directly referenced
+mov eax, dword [ebp + 0x14]
+
+loc_fffcefa5: ; not directly referenced
+mov al, byte [eax]
+mov byte [ebp - 0x21], al
+test bl, bl
+jne short loc_fffcefb3 ; jne 0xfffcefb3
+mov eax, dword [ebp + 0x14]
+jmp short loc_fffcefb6 ; jmp 0xfffcefb6
+
+loc_fffcefb3: ; not directly referenced
+mov eax, dword [ebp + 0x10]
+
+loc_fffcefb6: ; not directly referenced
+mov al, byte [eax + 1]
+mov byte [ebp - 0x20], al
+
+loc_fffcefbc: ; not directly referenced
+movzx eax, cl
+mov dword [ebp - 0x38], eax
+sar eax, 1
+mov dword [ebp - 0x40], eax
+movzx eax, byte [ebp - 0x42]
+shr edi, 1
+mov dword [ebp - 0x30], edi
+and dword [ebp - 0x40], 1
+and dword [ebp - 0x30], 1
+mov dword [ebp - 0x48], eax
+movzx eax, byte [ebp - 0x41]
+mov dword [ebp - 0x3c], eax
+
+loc_fffcefe2: ; not directly referenced
+xor edi, edi
+
+loc_fffcefe4: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+bt eax, edi
+jb short loc_fffceff4 ; jb 0xfffceff4
+
+loc_fffcefec: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffcefe4 ; jne 0xfffcefe4
+jmp short loc_fffcf061 ; jmp 0xfffcf061
+
+loc_fffceff4: ; not directly referenced
+mov eax, dword [ebp + 0x14]
+mov bl, byte [ebp - 0x33]
+movzx edx, byte [eax + edi]
+mov eax, dword [ebp + 0x10]
+movzx eax, byte [eax + edi]
+add eax, edx
+imul edx, edi, 0x13c3
+add eax, dword [ebp - 0x48]
+sar eax, 1
+mov byte [ebp + edi - 0x23], al
+and bl, byte [esi + edx + 0x381a]
+test byte [ebp - 0x34], 1
+je short loc_fffcf03d ; je 0xfffcf03d
+push edx
+movzx eax, al
+push 0
+push eax
+movzx eax, bl
+push 1
+push eax
+push dword [ebp - 0x3c]
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcf03d: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+je short loc_fffcefec ; je 0xfffcefec
+push eax
+movzx eax, byte [ebp + edi - 0x23]
+movzx ebx, bl
+push 0
+push eax
+push 2
+push ebx
+push dword [ebp - 0x3c]
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+jmp short loc_fffcefec ; jmp 0xfffcefec
+
+loc_fffcf061: ; not directly referenced
+cmp dword [ebp - 0x2c], 0
+jne short loc_fffcf073 ; jne 0xfffcf073
+sub esp, 0xc
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+
+loc_fffcf073: ; not directly referenced
+xor ebx, ebx
+mov byte [ebp - 0x31], 0
+lea edi, [ebp - 0x1f]
+
+loc_fffcf07c: ; not directly referenced
+mov eax, dword [ebp + 0x1c]
+push 0
+push 0
+push 0
+push 0
+movsx eax, byte [eax + ebx]
+push eax
+push 0
+push 2
+push esi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x1c
+movzx ecx, byte [esi + 0x248b]
+mov edx, dword [ebp - 0x38]
+mov eax, esi
+push 0
+push 1
+push edi
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+or byte [ebp - 0x31], al
+mov al, byte [ebp - 0x32]
+cmp byte [ebp - 0x31], al
+jne short loc_fffcf0da ; jne 0xfffcf0da
+
+loc_fffcf0bd: ; not directly referenced
+cmp byte [ebp - 0x31], 0
+setne al
+test byte [ebp - 0x2c], al
+je loc_fffcf154 ; je 0xfffcf154
+mov al, byte [ebp - 0x34]
+xor edi, edi
+and eax, 1
+mov byte [ebp - 0x43], al
+jmp short loc_fffcf0e2 ; jmp 0xfffcf0e2
+
+loc_fffcf0da: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffcf07c ; jne 0xfffcf07c
+jmp short loc_fffcf0bd ; jmp 0xfffcf0bd
+
+loc_fffcf0e2: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+bt eax, edi
+jb short loc_fffcf0fe ; jb 0xfffcf0fe
+
+loc_fffcf0ea: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffcf0e2 ; jne 0xfffcf0e2
+sub esp, 0xc
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+jmp short loc_fffcf154 ; jmp 0xfffcf154
+
+loc_fffcf0fe: ; not directly referenced
+imul edx, edi, 0x13c3
+mov bl, byte [ebp - 0x33]
+and bl, byte [esi + edx + 0x381a]
+cmp byte [ebp - 0x43], 0
+je short loc_fffcf130 ; je 0xfffcf130
+movzx edx, byte [ebp + edi - 0x21]
+push eax
+push 0
+push edx
+movzx edx, bl
+push 1
+push edx
+push dword [ebp - 0x3c]
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcf130: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+je short loc_fffcf0ea ; je 0xfffcf0ea
+movzx edx, byte [ebp + edi - 0x21]
+movzx ebx, bl
+push ecx
+push 0
+push edx
+push 2
+push ebx
+push dword [ebp - 0x3c]
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+jmp short loc_fffcf0ea ; jmp 0xfffcf0ea
+
+loc_fffcf154: ; not directly referenced
+xor ecx, ecx
+mov eax, 1
+
+loc_fffcf15b: ; not directly referenced
+mov edx, eax
+shl edx, cl
+test byte [ebp - 0x32], dl
+je short loc_fffcf1a4 ; je 0xfffcf1a4
+mov ebx, dword [ebp + 0x10]
+mov edi, dword [ebp + 0x14]
+mov bl, byte [ebx + ecx]
+cmp byte [edi + ecx], bl
+jbe short loc_fffcf1a4 ; jbe 0xfffcf1a4
+and dl, byte [ebp - 0x31]
+cmp byte [ebp - 0x42], 0
+je short loc_fffcf18d ; je 0xfffcf18d
+test dl, dl
+mov dl, byte [ebp + ecx - 0x23]
+je short loc_fffcf188 ; je 0xfffcf188
+dec edx
+mov ebx, edi
+jmp short loc_fffcf1a1 ; jmp 0xfffcf1a1
+
+loc_fffcf188: ; not directly referenced
+mov ebx, dword [ebp + 0x10]
+jmp short loc_fffcf1a1 ; jmp 0xfffcf1a1
+
+loc_fffcf18d: ; not directly referenced
+test dl, dl
+mov dl, byte [ebp + ecx - 0x23]
+je short loc_fffcf19e ; je 0xfffcf19e
+mov edi, dword [ebp + 0x10]
+inc edx
+mov byte [edi + ecx], dl
+jmp short loc_fffcf1a4 ; jmp 0xfffcf1a4
+
+loc_fffcf19e: ; not directly referenced
+mov ebx, dword [ebp + 0x14]
+
+loc_fffcf1a1: ; not directly referenced
+mov byte [ebx + ecx], dl
+
+loc_fffcf1a4: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne short loc_fffcf15b ; jne 0xfffcf15b
+mov al, 1
+test byte [ebp - 0x32], 1
+je short loc_fffcf1bf ; je 0xfffcf1bf
+mov eax, dword [ebp + 0x10]
+mov ecx, dword [ebp + 0x14]
+mov al, byte [eax]
+cmp byte [ecx], al
+setbe al
+
+loc_fffcf1bf: ; not directly referenced
+cmp dword [ebp - 0x40], 0
+je short loc_fffcf1d7 ; je 0xfffcf1d7
+mov ecx, dword [ebp + 0x10]
+mov edi, dword [ebp + 0x14]
+mov cl, byte [ecx + 1]
+cmp byte [edi + 1], cl
+ja loc_fffcefe2 ; ja 0xfffcefe2
+
+loc_fffcf1d7: ; not directly referenced
+test al, al
+je loc_fffcefe2 ; je 0xfffcefe2
+push 0
+xor edi, edi
+push 0
+push 0
+push 0
+push 0
+push 0
+push 2
+push esi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+cmp dword [ebp - 0x2c], 0
+jne short loc_fffcf20f ; jne 0xfffcf20f
+
+loc_fffcf1fe: ; not directly referenced
+sub esp, 0xc
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffcf20f: ; not directly referenced
+mov al, byte [ebp - 0x34]
+and eax, 1
+mov byte [ebp - 0x31], al
+movzx eax, byte [ebp - 0x41]
+mov dword [ebp - 0x2c], eax
+
+loc_fffcf21f: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+bt eax, edi
+jb short loc_fffcf22f ; jb 0xfffcf22f
+
+loc_fffcf227: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffcf21f ; jne 0xfffcf21f
+jmp short loc_fffcf1fe ; jmp 0xfffcf1fe
+
+loc_fffcf22f: ; not directly referenced
+imul edx, edi, 0x13c3
+mov bl, byte [ebp - 0x33]
+and bl, byte [esi + edx + 0x381a]
+cmp byte [ebp - 0x31], 0
+je short loc_fffcf261 ; je 0xfffcf261
+push edx
+movzx edx, byte [ebp + edi - 0x21]
+push 0
+push edx
+movzx edx, bl
+push 1
+push edx
+push dword [ebp - 0x2c]
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcf261: ; not directly referenced
+cmp dword [ebp - 0x30], 0
+je short loc_fffcf227 ; je 0xfffcf227
+movzx edx, byte [ebp + edi - 0x21]
+movzx ebx, bl
+push eax
+push 0
+push edx
+push 2
+push ebx
+push dword [ebp - 0x2c]
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+jmp short loc_fffcf227 ; jmp 0xfffcf227
+
+fcn_fffcf285: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+xor ebx, ebx
+sub esp, 0x40
+mov al, byte [ebp + 8]
+push 1
+movzx edi, byte [ebp + 0xc]
+push 7
+mov byte [ebp - 0x31], al
+mov eax, dword [ebp + 0x14]
+mov byte [ebp - 0x2a], dl
+lea edx, [ebp - 0x27]
+push edx
+mov word [ebp - 0x2c], ax
+mov eax, dword [ebp + 0x18]
+mov byte [ebp - 0x29], cl
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x20], 0
+mov word [ebp - 0x34], ax
+mov eax, dword [esi + 0x2443]
+call dword [eax + 0x5c] ; ucall
+movzx eax, byte [ebp - 0x29]
+add esp, 0x10
+mov dword [ebp - 0x3c], edi
+mov dword [ebp - 0x30], eax
+
+loc_fffcf2dc: ; not directly referenced
+movsx eax, bx
+xor edi, edi
+mov dword [ebp - 0x38], eax
+
+loc_fffcf2e4: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+bt eax, edi
+jae short loc_fffcf318 ; jae 0xfffcf318
+cmp dword [ebp + edi*4 - 0x20], 0
+jne short loc_fffcf318 ; jne 0xfffcf318
+mov eax, dword [ebp + 0x10]
+push edx
+push 0
+movzx edx, byte [eax + edi]
+add edx, dword [ebp - 0x38]
+push edx
+movzx edx, byte [ebp - 0x31]
+push dword [ebp - 0x3c]
+push edx
+movzx edx, byte [ebp - 0x2a]
+push edx
+push edi
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcf318: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffcf2e4 ; jne 0xfffcf2e4
+cmp dword [ebp + 0x20], 0
+jne short loc_fffcf330 ; jne 0xfffcf330
+sub esp, 0xc
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+
+loc_fffcf330: ; not directly referenced
+mov edx, dword [ebp - 0x30]
+push eax
+movzx ecx, byte [esi + 0x248b]
+push 0
+push 1
+lea eax, [ebp - 0x27]
+push eax
+mov eax, esi
+call fcn_fffb0f94 ; call 0xfffb0f94
+mov dl, bl
+add esp, 0x10
+neg edx
+test bx, bx
+cmovns edx, ebx
+test byte [ebp - 0x29], 1
+je short loc_fffcf375 ; je 0xfffcf375
+cmp dword [ebp - 0x20], 0
+jne short loc_fffcf375 ; jne 0xfffcf375
+test al, 1
+je short loc_fffcf370 ; je 0xfffcf370
+mov dword [ebp - 0x20], 1
+jmp short loc_fffcf375 ; jmp 0xfffcf375
+
+loc_fffcf370: ; not directly referenced
+mov ecx, dword [ebp + 0x1c]
+mov byte [ecx], dl
+
+loc_fffcf375: ; not directly referenced
+test byte [ebp - 0x29], 2
+je short loc_fffcf394 ; je 0xfffcf394
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffcf394 ; jne 0xfffcf394
+test al, 2
+jne short loc_fffcf38d ; jne 0xfffcf38d
+mov eax, dword [ebp + 0x1c]
+mov byte [eax + 1], dl
+jmp short loc_fffcf394 ; jmp 0xfffcf394
+
+loc_fffcf38d: ; not directly referenced
+mov dword [ebp - 0x1c], 1
+
+loc_fffcf394: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+add ebx, eax
+test ax, ax
+jle short loc_fffcf3a7 ; jle 0xfffcf3a7
+cmp bx, word [ebp - 0x2c]
+setg al
+jmp short loc_fffcf3ae ; jmp 0xfffcf3ae
+
+loc_fffcf3a7: ; not directly referenced
+cmp bx, word [ebp - 0x2c]
+setl al
+
+loc_fffcf3ae: ; not directly referenced
+cmp dword [ebp - 0x20], 0
+movzx eax, al
+je short loc_fffcf3bd ; je 0xfffcf3bd
+cmp dword [ebp - 0x1c], 0
+jne short loc_fffcf3c5 ; jne 0xfffcf3c5
+
+loc_fffcf3bd: ; not directly referenced
+test eax, eax
+je loc_fffcf2dc ; je 0xfffcf2dc
+
+loc_fffcf3c5: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcf3cd: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, edx
+push ebx
+sub esp, 0x90
+mov eax, dword [ebp + 0x10]
+push 1
+push 7
+mov ebx, eax
+mov dword [ebp - 0x78], eax
+mov al, byte [ebp + 8]
+mov byte [ebp - 0x89], bl
+mov ebx, dword [edi + 0x2443]
+mov dword [ebp - 0x88], edx
+mov byte [ebp - 0x69], dl
+mov byte [ebp - 0x6a], al
+mov al, byte [ebp + 0xc]
+mov byte [ebp - 0x68], cl
+mov byte [ebp - 0x74], al
+mov al, byte [ebp + 0x14]
+mov byte [ebp - 0x7c], al
+mov al, byte [ebp + 0x18]
+mov byte [ebp - 0x8a], al
+lea eax, [ebp - 0x4f]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x53]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x51]
+push eax
+call dword [ebx + 0x5c] ; ucall
+xor eax, eax
+add esp, 0x10
+cmp dword [edi + 0x2480], 3
+sete al
+mov dword [ebp - 0x60], eax
+mov eax, esi
+cmp al, 6
+je short loc_fffcf489 ; je 0xfffcf489
+
+loc_fffcf457: ; not directly referenced
+cmp dword [ebp - 0x60], 1
+sbb eax, eax
+mov dword [ebp - 0x60], eax
+movsx ax, byte [ebp - 0x78]
+and byte [ebp - 0x60], 4
+add byte [ebp - 0x60], 2
+mov word [ebp - 0x6c], ax
+mov word [ebp - 0x64], ax
+mov al, byte [ebp - 0x7c]
+sub eax, dword [ebp - 0x60]
+movzx eax, al
+mov dword [ebp - 0x94], eax
+jmp near loc_fffcf604 ; jmp 0xfffcf604
+
+loc_fffcf489: ; not directly referenced
+movzx esi, byte [ebp - 0x68]
+lea eax, [edi + 0x3756]
+mov dword [ebp - 0x5c], eax
+xor eax, eax
+mov dword [ebp - 0x70], esi
+
+loc_fffcf49b: ; not directly referenced
+mov esi, dword [ebp - 0x70]
+bt esi, eax
+jae loc_fffcf567 ; jae 0xfffcf567
+mov esi, dword [ebp - 0x5c]
+mov ebx, dword [esi + 0x111]
+mov ecx, dword [esi + 0x11d]
+cmp bl, cl
+mov esi, ecx
+cmovl esi, ebx
+cmp cl, bl
+mov edx, esi
+mov esi, dword [ebp - 0x5c]
+cmovbe ecx, ebx
+mov byte [ebp + eax - 0x53], dl
+mov byte [ebp + eax - 0x51], cl
+xor ecx, ecx
+mov dl, byte [esi + 0xc4]
+mov byte [ebp - 0x64], dl
+
+loc_fffcf4da: ; not directly referenced
+mov ebx, 1
+shl ebx, cl
+test byte [ebp - 0x64], bl
+je short loc_fffcf512 ; je 0xfffcf512
+mov esi, dword [ebp - 0x5c]
+mov bl, byte [esi + ecx + 0x245]
+movzx esi, byte [ebp + eax - 0x53]
+cmp bl, byte [ebp + eax - 0x53]
+cmovle esi, ebx
+mov edx, esi
+movzx esi, byte [ebp + eax - 0x51]
+cmp bl, byte [ebp + eax - 0x51]
+mov byte [ebp + eax - 0x53], dl
+cmovb ebx, esi
+mov byte [ebp + eax - 0x51], bl
+
+loc_fffcf512: ; not directly referenced
+inc ecx
+cmp ecx, 4
+jne short loc_fffcf4da ; jne 0xfffcf4da
+cmp dword [ebp - 0x60], 0
+je short loc_fffcf559 ; je 0xfffcf559
+mov ecx, dword [ebp - 0x5c]
+mov esi, dword [ecx + 0x109]
+mov ecx, dword [ecx + 0x115]
+mov edx, esi
+mov ebx, esi
+cmp cl, dl
+mov dl, byte [ebp + eax - 0x53]
+cmovl ebx, ecx
+cmp bl, byte [ebp + eax - 0x53]
+cmovg ebx, edx
+mov edx, esi
+mov byte [ebp + eax - 0x53], bl
+mov bl, byte [ebp + eax - 0x51]
+cmp bl, dl
+cmovbe ebx, esi
+cmp bl, cl
+cmovbe ebx, ecx
+mov byte [ebp + eax - 0x51], bl
+
+loc_fffcf559: ; not directly referenced
+mov cl, 0x7f
+neg byte [ebp + eax - 0x53]
+sub cl, byte [ebp + eax - 0x51]
+mov byte [ebp + eax - 0x51], cl
+
+loc_fffcf567: ; not directly referenced
+inc eax
+add dword [ebp - 0x5c], 0x13c3
+cmp eax, 2
+jne loc_fffcf49b ; jne 0xfffcf49b
+jmp near loc_fffcf457 ; jmp 0xfffcf457
+
+loc_fffcf57d: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+bt eax, ebx
+jb loc_fffcf62c ; jb 0xfffcf62c
+
+loc_fffcf589: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffcf57d ; jne 0xfffcf57d
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+cmp dword [ebp + 0x24], 0
+je loc_fffcf67f ; je 0xfffcf67f
+movzx ecx, byte [edi + 0x248b]
+push eax
+mov edx, dword [ebp - 0x70]
+push 0
+push 1
+lea eax, [ebp - 0x4f]
+push eax
+mov eax, edi
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+mov byte [ebp - 0x5c], al
+
+loc_fffcf5c5: ; not directly referenced
+cmp byte [ebp - 0x69], 6
+je loc_fffcf6d8 ; je 0xfffcf6d8
+
+loc_fffcf5cf: ; not directly referenced
+movzx eax, byte [ebp - 0x60]
+mov edx, esi
+xor ecx, ecx
+sub edx, eax
+mov dword [ebp - 0x70], eax
+movsx eax, byte [ebp - 0x89]
+mov dword [ebp - 0x80], edx
+
+loc_fffcf5e6: ; not directly referenced
+mov edx, 1
+shl edx, cl
+test byte [ebp - 0x68], dl
+jne loc_fffcf712 ; jne 0xfffcf712
+
+loc_fffcf5f6: ; not directly referenced
+inc ecx
+cmp ecx, 2
+jne short loc_fffcf5e6 ; jne 0xfffcf5e6
+movzx eax, byte [ebp - 0x60]
+add word [ebp - 0x64], ax
+
+loc_fffcf604: ; not directly referenced
+movzx eax, byte [ebp - 0x7c]
+movsx esi, word [ebp - 0x64]
+mov dword [ebp - 0x5c], eax
+cmp esi, eax
+jg loc_fffcf7f0 ; jg 0xfffcf7f0
+movzx eax, byte [ebp - 0x68]
+xor ebx, ebx
+mov dword [ebp - 0x70], eax
+movzx eax, byte [ebp - 0x74]
+mov dword [ebp - 0x5c], eax
+jmp near loc_fffcf57d ; jmp 0xfffcf57d
+
+loc_fffcf62c: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov cl, byte [ebp - 0x6a]
+and cl, byte [edi + eax + 0x381a]
+movzx eax, byte [ebp - 0x69]
+movzx ecx, cl
+cmp al, 6
+je short loc_fffcf65f ; je 0xfffcf65f
+push edx
+push 0
+push esi
+push dword [ebp - 0x5c]
+push ecx
+push eax
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+jmp near loc_fffcf589 ; jmp 0xfffcf589
+
+loc_fffcf65f: ; not directly referenced
+xor eax, eax
+mov edx, ebx
+cmp dword [ebp + 0x20], 0
+sete al
+push eax
+mov eax, edi
+push 0
+push esi
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+jmp near loc_fffcf589 ; jmp 0xfffcf589
+
+loc_fffcf67f: ; not directly referenced
+xor ebx, ebx
+mov byte [ebp - 0x5c], 0
+
+loc_fffcf685: ; not directly referenced
+mov eax, dword [ebp + 0x1c]
+push 0
+push 0
+push 0
+push 0
+movsx eax, byte [eax + ebx]
+push eax
+push 0
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x1c
+movzx ecx, byte [edi + 0x248b]
+mov edx, dword [ebp - 0x70]
+lea eax, [ebp - 0x4f]
+push 0
+push 1
+push eax
+mov eax, edi
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+or byte [ebp - 0x5c], al
+mov al, byte [ebp - 0x68]
+cmp byte [ebp - 0x5c], al
+je loc_fffcf5c5 ; je 0xfffcf5c5
+inc ebx
+cmp ebx, 2
+jne short loc_fffcf685 ; jne 0xfffcf685
+jmp near loc_fffcf5c5 ; jmp 0xfffcf5c5
+
+loc_fffcf6d8: ; not directly referenced
+movsx ax, byte [ebp - 0x53]
+cmp word [ebp - 0x64], ax
+jge short loc_fffcf6e9 ; jge 0xfffcf6e9
+
+loc_fffcf6e3: ; not directly referenced
+or byte [ebp - 0x5c], 1
+jmp short loc_fffcf6f1 ; jmp 0xfffcf6f1
+
+loc_fffcf6e9: ; not directly referenced
+movzx eax, byte [ebp - 0x51]
+cmp esi, eax
+jg short loc_fffcf6e3 ; jg 0xfffcf6e3
+
+loc_fffcf6f1: ; not directly referenced
+movsx ax, byte [ebp - 0x52]
+cmp word [ebp - 0x64], ax
+jge short loc_fffcf705 ; jge 0xfffcf705
+
+loc_fffcf6fc: ; not directly referenced
+or byte [ebp - 0x5c], 2
+jmp near loc_fffcf5cf ; jmp 0xfffcf5cf
+
+loc_fffcf705: ; not directly referenced
+movzx eax, byte [ebp - 0x50]
+cmp esi, eax
+jg short loc_fffcf6fc ; jg 0xfffcf6fc
+jmp near loc_fffcf5cf ; jmp 0xfffcf5cf
+
+loc_fffcf712: ; not directly referenced
+test byte [ebp - 0x5c], dl
+mov ebx, dword [ebp - 0x6c]
+sete dl
+movzx edx, dl
+cmp word [ebp - 0x64], bx
+jne short loc_fffcf767 ; jne 0xfffcf767
+test edx, edx
+je short loc_fffcf745 ; je 0xfffcf745
+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_fffcf5f6 ; jmp 0xfffcf5f6
+
+loc_fffcf745: ; not directly referenced
+mov edx, eax
+sub edx, dword [ebp - 0x70]
+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_fffcf5f6 ; jmp 0xfffcf5f6
+
+loc_fffcf767: ; not directly referenced
+test edx, edx
+je loc_fffcf5f6 ; je 0xfffcf5f6
+mov ebx, dword [ebp - 0x80]
+cmp dword [ebp + ecx*4 - 0x40], ebx
+jne short loc_fffcf77c ; jne 0xfffcf77c
+mov dword [ebp + ecx*4 - 0x40], esi
+
+loc_fffcf77c: ; not directly referenced
+mov ebx, dword [ebp - 0x80]
+cmp dword [ebp + ecx*4 - 0x30], ebx
+mov dword [ebp + ecx*4 - 0x30], esi
+je short loc_fffcf78d ; je 0xfffcf78d
+mov dword [ebp + ecx*4 - 0x38], esi
+
+loc_fffcf78d: ; not directly referenced
+cmp esi, dword [ebp - 0x94]
+jl short loc_fffcf7b3 ; jl 0xfffcf7b3
+cmp dword [ebp + ecx*4 - 0x48], eax
+jne short loc_fffcf7b3 ; jne 0xfffcf7b3
+cmp byte [ebp - 0x8a], 0
+je short loc_fffcf7b3 ; je 0xfffcf7b3
+mov edx, dword [ebp + ecx*4 - 0x40]
+sub edx, eax
+add edx, dword [ebp - 0x70]
+add edx, esi
+mov dword [ebp + ecx*4 - 0x30], edx
+
+loc_fffcf7b3: ; not directly referenced
+mov edx, dword [ebp + ecx*4 - 0x30]
+mov ebx, dword [ebp + ecx*4 - 0x38]
+mov dword [ebp - 0x84], edx
+sub edx, ebx
+mov dword [ebp - 0x90], edx
+mov edx, dword [ebp + ecx*4 - 0x20]
+sub edx, dword [ebp + ecx*4 - 0x28]
+cmp dword [ebp - 0x90], edx
+jle loc_fffcf5f6 ; jle 0xfffcf5f6
+mov dword [ebp + ecx*4 - 0x28], ebx
+mov ebx, dword [ebp - 0x84]
+mov dword [ebp + ecx*4 - 0x20], ebx
+jmp near loc_fffcf5f6 ; jmp 0xfffcf5f6
+
+loc_fffcf7f0: ; not directly referenced
+movzx eax, byte [ebp - 0x60]
+mov ecx, 2
+xor ebx, ebx
+mov esi, dword [ebp - 0x5c]
+lea eax, [eax + eax*2]
+mov dword [ebp - 0x7c], eax
+movsx eax, byte [ebp - 0x78]
+add esi, eax
+mov dword [ebp - 0x78], eax
+mov eax, esi
+cdq
+idiv ecx
+mov dword [ebp - 0x70], eax
+movzx eax, byte [ebp - 0x68]
+mov dword [ebp - 0x68], eax
+movzx eax, byte [ebp - 0x74]
+mov dword [ebp - 0x74], eax
+
+loc_fffcf823: ; not directly referenced
+mov eax, dword [ebp - 0x68]
+bt eax, ebx
+jb short loc_fffcf837 ; jb 0xfffcf837
+
+loc_fffcf82b: ; not directly referenced
+inc ebx
+cmp ebx, 2
+je loc_fffcf90e ; je 0xfffcf90e
+jmp short loc_fffcf823 ; jmp 0xfffcf823
+
+loc_fffcf837: ; not directly referenced
+mov esi, dword [ebp + ebx*4 - 0x20]
+mov eax, dword [ebp + ebx*4 - 0x28]
+mov ecx, esi
+mov dword [ebp - 0x60], eax
+sub ecx, eax
+cmp ecx, dword [ebp - 0x7c]
+jl short loc_fffcf855 ; jl 0xfffcf855
+mov edx, dword [ebp - 0x5c]
+sub edx, dword [ebp - 0x78]
+cmp ecx, edx
+jl short loc_fffcf86c ; jl 0xfffcf86c
+
+loc_fffcf855: ; not directly referenced
+cmp byte [edi + 0x1965], 0
+je short loc_fffcf87b ; je 0xfffcf87b
+cmp dword [edi + 0x188b], 1
+jne short loc_fffcf87b ; jne 0xfffcf87b
+jmp near loc_fffcf9bc ; jmp 0xfffcf9bc
+
+loc_fffcf86c: ; not directly referenced
+mov eax, dword [ebp - 0x60]
+mov ecx, 2
+add eax, esi
+cdq
+idiv ecx
+jmp short loc_fffcf87e ; jmp 0xfffcf87e
+
+loc_fffcf87b: ; not directly referenced
+mov eax, dword [ebp - 0x70]
+
+loc_fffcf87e: ; not directly referenced
+imul edx, ebx, 0x13c3
+mov cl, byte [ebp - 0x6a]
+and cl, byte [edi + edx + 0x381a]
+cmp dword [ebp + 0x20], 0
+mov byte [ebp - 0x64], cl
+jne short loc_fffcf8ba ; jne 0xfffcf8ba
+mov dl, byte [ebp - 0x69]
+cmp dl, 6
+je short loc_fffcf8ba ; je 0xfffcf8ba
+sub esp, 4
+push 1
+push eax
+movzx eax, cl
+push dword [ebp - 0x74]
+push eax
+movzx eax, dl
+push eax
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcf8ba: ; not directly referenced
+mov edx, dword [ebp - 0x60]
+movzx ecx, byte [ebp - 0x64]
+mov eax, edx
+sar eax, 0x1f
+xor edx, eax
+sub edx, eax
+imul eax, edx, 0xa
+imul edx, ebx, 0x48
+mov dword [ebp - 0x64], ecx
+mov dword [ebp - 0x60], eax
+mov eax, esi
+sar eax, 0x1f
+add edx, edi
+xor esi, eax
+sub esi, eax
+xor eax, eax
+imul esi, esi, 0xa
+
+loc_fffcf8e6: ; not directly referenced
+mov ecx, dword [ebp - 0x64]
+bt ecx, eax
+jae short loc_fffcf8fd ; jae 0xfffcf8fd
+mov ecx, dword [ebp - 0x60]
+mov dword [edx + 0x3214], esi
+mov dword [edx + 0x3210], ecx
+
+loc_fffcf8fd: ; not directly referenced
+inc eax
+add edx, 0x90
+cmp eax, 4
+jne short loc_fffcf8e6 ; jne 0xfffcf8e6
+jmp near loc_fffcf82b ; jmp 0xfffcf82b
+
+loc_fffcf90e: ; not directly referenced
+cmp dword [ebp + 0x24], 0
+jne short loc_fffcf92b ; jne 0xfffcf92b
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 2
+push edi
+call fcn_fffcc4cb ; call 0xfffcc4cb
+add esp, 0x20
+
+loc_fffcf92b: ; not directly referenced
+cmp byte [ebp - 0x88], 6
+je short loc_fffcf942 ; je 0xfffcf942
+
+loc_fffcf934: ; not directly referenced
+sub esp, 0xc
+push edi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+jmp short loc_fffcf9c1 ; jmp 0xfffcf9c1
+
+loc_fffcf942: ; not directly referenced
+xor ebx, ebx
+
+loc_fffcf944: ; not directly referenced
+mov eax, dword [ebp - 0x68]
+bt eax, ebx
+jb short loc_fffcf954 ; jb 0xfffcf954
+
+loc_fffcf94c: ; not directly referenced
+inc ebx
+cmp ebx, 2
+je short loc_fffcf934 ; je 0xfffcf934
+jmp short loc_fffcf944 ; jmp 0xfffcf944
+
+loc_fffcf954: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov dl, byte [ebp - 0x6a]
+and dl, byte [edi + eax + 0x381a]
+xor eax, eax
+cmp dword [ebp + 0x20], 0
+movzx esi, dl
+mov edx, ebx
+sete al
+mov ecx, esi
+push eax
+mov eax, edi
+push 0
+push 0
+push 0
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+imul eax, ebx, 0x48
+add esp, 0x10
+xor edx, edx
+add eax, edi
+
+loc_fffcf98c: ; not directly referenced
+bt esi, edx
+jae short loc_fffcf9af ; jae 0xfffcf9af
+mov ecx, dword [eax + 0x3210]
+mov dword [ebp - 0x5c], ecx
+mov ecx, dword [eax + 0x3214]
+mov dword [eax + 0x3210], ecx
+mov ecx, dword [ebp - 0x5c]
+mov dword [eax + 0x3214], ecx
+
+loc_fffcf9af: ; not directly referenced
+inc edx
+add eax, 0x90
+cmp edx, 4
+jne short loc_fffcf98c ; jne 0xfffcf98c
+jmp short loc_fffcf94c ; jmp 0xfffcf94c
+
+loc_fffcf9bc: ; not directly referenced
+mov eax, 0xc
+
+loc_fffcf9c1: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcf9c9: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x40
+mov edi, dword [ebp + 8]
+mov dword [ebp - 0x2c], eax
+mov dword [ebp - 0x44], ecx
+mov byte [ebp - 0x3d], cl
+mov esi, edi
+mov ebx, esi
+mov esi, eax
+mov byte [ebp - 0x3e], bl
+mov ebx, dword [eax + 0x2443]
+lea eax, [ebp - 0x24]
+push 0
+push 2
+push eax
+mov dword [ebp - 0x3c], edx
+mov dword [ebp - 0x38], edi
+mov edi, dword [ebp + 0xc]
+mov byte [ebp - 0x1a], 0xf8
+mov byte [ebp - 0x19], 8
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x22]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0x10
+cmp byte [ebp - 0x3c], 0
+setne cl
+cmp dword [esi + 0x2480], 3
+mov byte [ebp - 0x30], cl
+sete al
+test cl, al
+je short loc_fffcfa69 ; je 0xfffcfa69
+mov al, byte [edi]
+xor ecx, ecx
+lea edx, [eax - 0x20]
+cmp al, 0x21
+cmovb edx, ecx
+cmp al, 0x5e
+lea ebx, [eax + 0x20]
+mov al, byte [edi + 1]
+mov byte [ebp - 0x1e], dl
+mov dl, 0x7f
+cmova ebx, edx
+mov byte [ebp - 0x1c], bl
+cmp al, 0x21
+lea ebx, [eax - 0x20]
+cmovae ecx, ebx
+cmp al, 0x5e
+mov byte [ebp - 0x1d], cl
+lea ecx, [eax + 0x20]
+cmovbe edx, ecx
+mov byte [ebp - 0x1b], dl
+jmp short loc_fffcfa86 ; jmp 0xfffcfa86
+
+loc_fffcfa69: ; not directly referenced
+push eax
+push 0
+push 2
+lea eax, [ebp - 0x1e]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0x7f
+push 2
+lea eax, [ebp - 0x1c]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0x10
+
+loc_fffcfa86: ; not directly referenced
+test edi, edi
+mov eax, 1
+sete dl
+test byte [ebp - 0x30], dl
+jne loc_fffcfcdd ; jne 0xfffcfcdd
+movzx esi, byte [ebp - 0x3d]
+xor ebx, ebx
+mov byte [ebp - 0x34], 0
+
+loc_fffcfaa3: ; not directly referenced
+mov eax, dword [ebp - 0x2c]
+mov ecx, esi
+mov edx, ebx
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0x34], al
+cmp byte [ebp - 0x30], 0
+je short loc_fffcfabf ; je 0xfffcfabf
+mov al, byte [edi + ebx]
+mov byte [ebp + ebx - 0x20], al
+
+loc_fffcfabf: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffcfaa3 ; jne 0xfffcfaa3
+cmp byte [ebp - 0x3c], 0
+jne loc_fffcfbe2 ; jne 0xfffcfbe2
+mov eax, dword [ebp - 0x2c]
+cmp dword [eax + 0x188b], 0
+je short loc_fffcfae5 ; je 0xfffcfae5
+mov al, byte [ebp - 0x44]
+and eax, 5
+cmp al, 5
+je short loc_fffcfb15 ; je 0xfffcfb15
+
+loc_fffcfae5: ; not directly referenced
+push 0
+movzx ecx, byte [ebp - 0x34]
+xor edx, edx
+push 0
+lea eax, [ebp - 0x1a]
+push eax
+movzx eax, byte [ebp - 0x1c]
+push 1
+push eax
+movsx eax, byte [ebp - 0x1e]
+push eax
+movzx eax, byte [ebp - 0x38]
+push eax
+mov eax, dword [ebp - 0x2c]
+push esi
+call fcn_fffcf3cd ; call 0xfffcf3cd
+add esp, 0x20
+jmp near loc_fffcfcdd ; jmp 0xfffcfcdd
+
+loc_fffcfb15: ; not directly referenced
+movzx edi, byte [ebp - 0x3e]
+xor eax, eax
+mov dword [ebp - 0x30], 0
+mov dword [ebp - 0x38], edi
+
+loc_fffcfb25: ; not directly referenced
+mov cl, byte [ebp - 0x30]
+mov ebx, 3
+xor esi, esi
+mov edi, dword [ebp - 0x2c]
+shl ebx, cl
+mov byte [ebp - 0x34], bl
+add edi, 0x3756
+
+loc_fffcfb3d: ; not directly referenced
+cmp dword [edi], 2
+jne short loc_fffcfb77 ; jne 0xfffcfb77
+cmp byte [ebp - 0x34], 3
+mov ecx, 0x40
+mov dword [ebp - 0x3c], eax
+mov edx, 0xffffffc0
+push eax
+push 1
+cmove edx, ecx
+push edx
+push 1
+mov dl, byte [edi + 0xc4]
+and edx, 0xc
+push edx
+push 0
+push esi
+push dword [ebp - 0x2c]
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp - 0x3c]
+add esp, 0x20
+
+loc_fffcfb77: ; not directly referenced
+inc esi
+add edi, 0x13c3
+cmp esi, 2
+jne short loc_fffcfb3d ; jne 0xfffcfb3d
+test byte [ebp - 0x3d], bl
+je short loc_fffcfbcf ; je 0xfffcfbcf
+mov edi, dword [ebp - 0x2c]
+mov ecx, ebx
+xor edx, edx
+mov eax, edi
+call fcn_fffaac43 ; call 0xfffaac43
+mov ecx, ebx
+mov edx, 1
+mov esi, eax
+mov eax, edi
+call fcn_fffaac43 ; call 0xfffaac43
+xor edx, edx
+push 0
+push 0
+or eax, esi
+movzx ecx, al
+lea eax, [ebp - 0x1a]
+push eax
+movzx eax, byte [ebp - 0x1c]
+push 1
+push eax
+movsx eax, byte [ebp - 0x1e]
+push eax
+mov eax, edi
+push dword [ebp - 0x38]
+push ebx
+call fcn_fffcf3cd ; call 0xfffcf3cd
+add esp, 0x20
+
+loc_fffcfbcf: ; not directly referenced
+add dword [ebp - 0x30], 2
+cmp dword [ebp - 0x30], 4
+je loc_fffcfcdd ; je 0xfffcfcdd
+jmp near loc_fffcfb25 ; jmp 0xfffcfb25
+
+loc_fffcfbe2: ; not directly referenced
+movzx eax, byte [ebp - 0x38]
+push ebx
+push ebx
+lea ebx, [ebp - 0x1a]
+mov edx, eax
+mov dword [ebp - 0x30], eax
+movzx eax, byte [ebp - 0x34]
+push ebx
+push 0
+lea ebx, [ebp - 0x20]
+mov ecx, eax
+mov dword [ebp - 0x38], eax
+movzx eax, byte [ebp - 0x3c]
+push ebx
+mov dword [ebp - 0x3c], eax
+lea eax, [ebp - 0x1e]
+push eax
+mov eax, dword [ebp - 0x2c]
+push edx
+mov edx, dword [ebp - 0x3c]
+push esi
+call fcn_fffcef25 ; call 0xfffcef25
+mov al, byte [ebp - 0x20]
+add esp, 0x18
+lea edx, [ebp - 0x1a]
+mov ecx, dword [ebp - 0x38]
+mov byte [ebp - 0x24], al
+mov al, byte [ebp - 0x1f]
+mov byte [ebp - 0x23], al
+mov al, byte [edi]
+mov byte [ebp - 0x20], al
+mov al, byte [edi + 1]
+push edx
+mov edx, dword [ebp - 0x3c]
+push 1
+mov byte [ebp - 0x1f], al
+lea eax, [ebp - 0x1c]
+push eax
+mov eax, dword [ebp - 0x2c]
+push ebx
+push dword [ebp - 0x30]
+push esi
+xor esi, esi
+call fcn_fffcef25 ; call 0xfffcef25
+mov al, byte [ebp - 0x20]
+add esp, 0x20
+mov dword [ebp - 0x34], 0
+mov byte [ebp - 0x22], al
+mov al, byte [ebp - 0x1f]
+mov byte [ebp - 0x21], al
+
+loc_fffcfc67: ; not directly referenced
+mov eax, dword [ebp - 0x38]
+bt eax, esi
+jae short loc_fffcfcd4 ; jae 0xfffcfcd4
+mov ebx, dword [ebp - 0x2c]
+imul eax, esi, 0x13c3
+mov cl, byte [ebp - 0x3d]
+movzx edx, byte [ebp + esi - 0x22]
+and cl, byte [ebx + eax + 0x381a]
+mov bl, dl
+mov byte [ebp - 0x44], cl
+movzx ecx, byte [ebp + esi - 0x24]
+sub ebx, ecx
+cmp dl, 0x7f
+jne short loc_fffcfca1 ; jne 0xfffcfca1
+test cl, cl
+jne short loc_fffcfca1 ; jne 0xfffcfca1
+mov al, byte [edi + esi]
+jmp short loc_fffcfcb6 ; jmp 0xfffcfcb6
+
+loc_fffcfca1: ; not directly referenced
+lea eax, [ecx + edx + 1]
+mov edx, 0xc
+shr eax, 1
+cmp bl, 0x11
+cmova edx, dword [ebp - 0x34]
+mov dword [ebp - 0x34], edx
+
+loc_fffcfcb6: ; not directly referenced
+push edx
+movzx eax, al
+push 1
+push eax
+movzx eax, byte [ebp - 0x44]
+push dword [ebp - 0x30]
+push eax
+push dword [ebp - 0x3c]
+push esi
+push dword [ebp - 0x2c]
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffcfcd4: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffcfc67 ; jne 0xfffcfc67
+mov eax, dword [ebp - 0x34]
+
+loc_fffcfcdd: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffcfce5: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, edx
+push esi
+mov esi, eax
+push ebx
+xor ebx, ebx
+sub esp, 0x1c
+mov byte [ebp - 0x19], cl
+movzx ecx, byte [ebp + 8]
+
+loc_fffcfcfb: ; not directly referenced
+bt edi, ebx
+jae short loc_fffcfd2e ; jae 0xfffcfd2e
+imul eax, ebx, 0x13c3
+mov dl, byte [ebp - 0x19]
+and dl, byte [esi + eax + 0x381a]
+movzx eax, dl
+je short loc_fffcfd2e ; je 0xfffcfd2e
+push edx
+push 0
+push ecx
+push 3
+push eax
+push 0
+push ebx
+push esi
+mov dword [ebp - 0x20], ecx
+call fcn_fffa9178 ; call 0xfffa9178
+mov ecx, dword [ebp - 0x20]
+add esp, 0x20
+
+loc_fffcfd2e: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffcfcfb ; jne 0xfffcfcfb
+mov dword [ebp + 8], esi
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+jmp near fcn_fffc82f4 ; jmp 0xfffc82f4
+
+fcn_fffcfd43: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x3c
+mov edi, dword [ebp + 0xc]
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x2c], ecx
+mov esi, dword [ebx + 0x2443]
+mov dword [ebp - 0x30], edx
+mov edx, dword [ebp + 0x18]
+mov ecx, edi
+inc cl
+mov dword [ebp - 0x3c], eax
+mov eax, dword [ebp + 0x14]
+je short loc_fffcfd80 ; je 0xfffcfd80
+movsx cx, dl
+movzx edx, dl
+mov word [ebp - 0x34], cx
+neg word [ebp - 0x34]
+jmp short loc_fffcfd8b ; jmp 0xfffcfd8b
+
+loc_fffcfd80: ; not directly referenced
+mov edx, 0x20
+mov word [ebp - 0x34], 0xffe0
+
+loc_fffcfd8b: ; not directly referenced
+push ecx
+movzx eax, al
+push 0
+inc eax
+lea ecx, [ebp - 0x1c]
+push 2
+push ecx
+mov dword [ebp - 0x44], edx
+mov dword [ebp - 0x40], ecx
+mov word [ebp - 0x36], ax
+call dword [esi + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0x1a]
+push eax
+call dword [esi + 0x5c] ; ucall
+movzx ecx, byte [ebp - 0x2c]
+add esp, 0xc
+movzx edx, byte [ebp - 0x30]
+mov eax, edi
+push dword [ebp + 0x1c]
+movzx edi, al
+movzx eax, word [ebp - 0x36]
+mov dword [ebp - 0x2c], ecx
+mov ecx, dword [ebp - 0x40]
+mov dword [ebp - 0x30], edx
+mov edx, dword [ebp - 0x44]
+movzx esi, byte [ebp - 0x3c]
+push ecx
+mov ecx, dword [ebp - 0x2c]
+push eax
+movsx edx, dx
+push edx
+mov edx, dword [ebp - 0x30]
+mov eax, ebx
+push dword [ebp + 0x10]
+push edi
+push esi
+call fcn_fffcf285 ; call 0xfffcf285
+add esp, 0x20
+cmp dword [ebp + 0x1c], 0
+je short loc_fffcfe37 ; je 0xfffcfe37
+xor eax, eax
+
+loc_fffcfdfd: ; not directly referenced
+mov ecx, dword [ebp - 0x2c]
+bt ecx, eax
+jae short loc_fffcfe25 ; jae 0xfffcfe25
+mov ecx, dword [ebp + 0x10]
+push edx
+push 0
+movzx edx, byte [ecx + eax]
+mov dword [ebp - 0x3c], eax
+push edx
+push edi
+push esi
+push dword [ebp - 0x30]
+push eax
+push ebx
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp - 0x3c]
+add esp, 0x20
+
+loc_fffcfe25: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffcfdfd ; jne 0xfffcfdfd
+sub esp, 0xc
+push ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+
+loc_fffcfe37: ; not directly referenced
+push ecx
+mov edx, dword [ebp - 0x30]
+push dword [ebp + 0x1c]
+lea eax, [ebp - 0x1a]
+mov ecx, dword [ebp - 0x2c]
+push eax
+mov ax, word [ebp - 0x36]
+neg eax
+cwde
+push eax
+movsx eax, word [ebp - 0x34]
+push eax
+mov eax, ebx
+push dword [ebp + 0x10]
+push edi
+push esi
+call fcn_fffcf285 ; call 0xfffcf285
+add esp, 0x20
+cmp dword [ebp + 0x1c], 0
+je short loc_fffcfea3 ; je 0xfffcfea3
+xor eax, eax
+
+loc_fffcfe69: ; not directly referenced
+mov ecx, dword [ebp - 0x2c]
+bt ecx, eax
+jae short loc_fffcfe91 ; jae 0xfffcfe91
+push edx
+mov edx, dword [ebp + 0x10]
+push 0
+mov dword [ebp - 0x34], eax
+movzx edx, byte [edx + eax]
+push edx
+push edi
+push esi
+push dword [ebp - 0x30]
+push eax
+push ebx
+call fcn_fffa9178 ; call 0xfffa9178
+mov eax, dword [ebp - 0x34]
+add esp, 0x20
+
+loc_fffcfe91: ; not directly referenced
+inc eax
+cmp eax, 2
+jne short loc_fffcfe69 ; jne 0xfffcfe69
+sub esp, 0xc
+push ebx
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+
+loc_fffcfea3: ; not directly referenced
+xor eax, eax
+
+loc_fffcfea5: ; not directly referenced
+mov edi, dword [ebp - 0x2c]
+bt edi, eax
+jb short loc_fffcfebe ; jb 0xfffcfebe
+
+loc_fffcfead: ; not directly referenced
+inc eax
+add ebx, 0x48
+cmp eax, 2
+jne short loc_fffcfea5 ; jne 0xfffcfea5
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffcfebe: ; not directly referenced
+mov ecx, ebx
+xor edx, edx
+
+loc_fffcfec2: ; not directly referenced
+bt esi, edx
+jae short loc_fffcfee3 ; jae 0xfffcfee3
+movzx edi, byte [ebp + eax - 0x1a]
+imul edi, edi, 0xa
+mov dword [ecx + 0x3210], edi
+movzx edi, byte [ebp + eax - 0x1c]
+imul edi, edi, 0xa
+mov dword [ecx + 0x3214], edi
+
+loc_fffcfee3: ; not directly referenced
+inc edx
+add ecx, 0x90
+cmp edx, 4
+jne short loc_fffcfec2 ; jne 0xfffcfec2
+jmp short loc_fffcfead ; jmp 0xfffcfead
+
+fcn_fffcfef1: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0xfc
+mov esi, dword [ebp + 8]
+mov dword [ebp - 0xd4], 0
+mov eax, dword [esi + 0x2443]
+mov dword [ebp - 0xd8], eax
+mov eax, dword [esi + 0x5edc]
+mov dword [ebp - 0xdc], eax
+lea eax, [esi + 0x2490]
+mov dword [ebp - 0xe0], eax
+mov eax, dword [esi + 0x188b]
+mov dword [ebp - 0xe4], eax
+mov al, byte [esi + 0x2441]
+mov byte [ebp - 0xf9], al
+test byte [esi + 0x2405], 0x20
+je short loc_fffcff61 ; je 0xfffcff61
+xor eax, eax
+cmp dword [ebp - 0xe4], 1
+sete al
+mov dword [ebp - 0xd4], eax
+
+loc_fffcff61: ; not directly referenced
+cmp dword [esi + 0x2480], 3
+mov edi, dword [ebp - 0xd8]
+push ebx
+sete al
+push 0
+push 0x10
+lea ebx, [ebp - 0xa8]
+mov byte [ebp - 0xfa], al
+movzx eax, al
+mov dword [ebp - 0xcc], eax
+mov eax, edi
+push ebx
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0xb0]
+push eax
+mov eax, edi
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+mov eax, edi
+push 0xff
+lea edx, [ebp - 0x98]
+push 0x80
+push edx
+mov dword [ebp - 0xbc], edx
+call dword [eax + 0x5c] ; ucall
+add esp, 0x10
+mov edx, dword [ebp - 0xbc]
+cmp dword [ebp - 0xcc], 1
+mov byte [ebp - 0xad], 0
+mov byte [ebp - 0xae], 0
+sbb eax, eax
+and eax, 7
+add eax, 0xa
+cmp dword [ebp - 0xd4], 1
+movzx eax, al
+mov dword [ebp - 0xf8], edx
+mov dword [ebp - 0xec], edx
+sbb edi, edi
+mov dword [ebp - 0xc8], edi
+mov edi, esi
+and dword [ebp - 0xc8], 0xfffffff8
+add dword [ebp - 0xc8], 0xd
+mov dword [ebp - 0xc4], 0
+mov dword [ebp - 0xc0], 0
+mov dword [ebp - 0xf4], ebx
+mov dword [ebp - 0x100], eax
+
+loc_fffd0037: ; not directly referenced
+mov eax, dword [ebp - 0xdc]
+xor ebx, ebx
+mov cl, byte [ebp - 0xc4]
+mov dword [ebp - 0xd0], 1
+shl dword [ebp - 0xd0], cl
+add eax, 0x70
+mov dword [ebp - 0xf0], eax
+mov byte [ebp - 0xe8], 0
+
+loc_fffd0065: ; not directly referenced
+mov ecx, dword [ebp - 0xd0]
+mov edx, ebx
+mov eax, esi
+call fcn_fffaac43 ; call 0xfffaac43
+or byte [ebp - 0xe8], al
+movzx eax, byte [ebp - 0xe8]
+bt eax, ebx
+mov dword [ebp - 0xbc], eax
+jae short loc_fffd00a9 ; jae 0xfffd00a9
+push ecx
+push 0
+movzx eax, byte [esi + 0x2488]
+push eax
+mov eax, dword [ebp - 0xd8]
+push dword [ebp - 0xf0]
+call dword [eax + 0x64] ; ucall
+add esp, 0x10
+
+loc_fffd00a9: ; not directly referenced
+inc ebx
+add dword [ebp - 0xf0], 0xcc
+cmp ebx, 2
+jne short loc_fffd0065 ; jne 0xfffd0065
+cmp byte [ebp - 0xe8], 0
+je loc_fffd03c2 ; je 0xfffd03c2
+mov edx, dword [ebp - 0xbc]
+sub esp, 0xc
+mov ecx, 0x11
+push 0
+mov eax, esi
+mov bl, 1
+call fcn_fffb26ca ; call 0xfffb26ca
+add esp, 0x10
+
+loc_fffd00e2: ; not directly referenced
+cmp ebx, 3
+je short loc_fffd0142 ; je 0xfffd0142
+cmp ebx, 1
+jne short loc_fffd00f5 ; jne 0xfffd00f5
+mov byte [esi + 0x248b], 9
+jmp short loc_fffd0101 ; jmp 0xfffd0101
+
+loc_fffd00f5: ; not directly referenced
+cmp ebx, 4
+jne short loc_fffd0101 ; jne 0xfffd0101
+mov byte [esi + 0x248b], 0
+
+loc_fffd0101: ; not directly referenced
+lea eax, [ebx - 4]
+mov ecx, dword [ebp - 0xbc]
+push edx
+cmp eax, 2
+push edx
+sbb eax, eax
+mov edx, dword [ebp - 0xe0]
+push 0
+and eax, 0x17
+push dword [ebp - 0xf4]
+add eax, 0x1f
+movzx eax, al
+push eax
+mov eax, esi
+push 1
+push ebx
+push dword [ebp - 0xc4]
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x20
+mov dword [ebp - 0xc0], eax
+
+loc_fffd0142: ; not directly referenced
+inc ebx
+cmp ebx, 6
+jne short loc_fffd00e2 ; jne 0xfffd00e2
+cmp dword [ebp - 0xd4], 0
+je loc_fffd03c2 ; je 0xfffd03c2
+mov ecx, dword [ebp - 0x100]
+sub esp, 0xc
+mov eax, esi
+mov edx, dword [ebp - 0xbc]
+push 0
+call fcn_fffb2759 ; call 0xfffb2759
+add esp, 0x10
+cmp dword [ebp - 0xcc], 0
+je short loc_fffd01a5 ; je 0xfffd01a5
+push eax
+mov ecx, dword [ebp - 0xbc]
+xor edx, edx
+push 0
+push 0
+push 0x20
+push 0
+lea eax, [ebp - 0xae]
+push eax
+mov eax, esi
+push 0xff
+push dword [ebp - 0xd0]
+call fcn_fffcfd43 ; call 0xfffcfd43
+jmp short loc_fffd01f5 ; jmp 0xfffd01f5
+
+loc_fffd01a5: ; not directly referenced
+push 1
+mov ecx, dword [ebp - 0xbc]
+xor edx, edx
+push 1
+lea eax, [ebp - 0xb0]
+push eax
+mov eax, esi
+push 1
+push 0x40
+push 0xffffffffffffffc0
+push 3
+push 0xff
+call fcn_fffcf3cd ; call 0xfffcf3cd
+mov ebx, dword [ebp - 0xec]
+mov eax, dword [edi + 0x3210]
+mov dword [ebx], eax
+mov eax, dword [edi + 0x3214]
+mov dword [ebx + 4], eax
+mov eax, dword [edi + 0x3258]
+mov dword [ebx + 0x10], eax
+mov eax, dword [edi + 0x325c]
+mov dword [ebx + 0x14], eax
+
+loc_fffd01f5: ; not directly referenced
+add esp, 0x20
+cmp byte [ebp - 0xf9], 0
+je short loc_fffd0278 ; je 0xfffd0278
+
+loc_fffd0201: ; not directly referenced
+push ecx
+push 0
+push 0
+push 3
+push 0xff
+push 0
+push 0
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 0
+push 0
+push 3
+push 0xff
+push 0
+push 1
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x14
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+mov ecx, dword [ebp - 0xbc]
+pop ebx
+pop eax
+mov eax, esi
+mov edx, dword [ebp - 0xe0]
+push 0
+push dword [ebp - 0xf4]
+push 0x36
+push 0
+push 0xd
+push dword [ebp - 0xc4]
+call fcn_fffc6051 ; call 0xfffc6051
+add esp, 0x14
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+mov dword [ebp - 0xc0], eax
+jmp near loc_fffd03c2 ; jmp 0xfffd03c2
+
+loc_fffd0278: ; not directly referenced
+xor ebx, ebx
+
+loc_fffd027a: ; not directly referenced
+imul eax, ebx, 0x13c3
+cmp dword [esi + eax + 0x3756], 2
+jne short loc_fffd02ce ; jne 0xfffd02ce
+push edx
+push 0
+push 0
+push 3
+push 0xff
+push 0
+push ebx
+push esi
+call fcn_fffa9178 ; call 0xfffa9178
+mov ecx, dword [ebp - 0xdc]
+imul eax, ebx, 0xcc
+add esp, 0x20
+mov edx, ebx
+push 0
+push 1
+movzx eax, byte [ecx + eax + 0xe2]
+mov ecx, 0xff
+push eax
+mov eax, esi
+push 1
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+
+loc_fffd02ce: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffd027a ; jne 0xfffd027a
+sub esp, 0xc
+push esi
+call fcn_fffc82f4 ; call 0xfffc82f4
+add esp, 0x10
+cmp dword [ebp - 0xcc], 0
+je short loc_fffd0316 ; je 0xfffd0316
+mov ecx, dword [ebp - 0xd0]
+mov eax, esi
+mov edx, dword [ebp - 0xbc]
+call fcn_fffc93f9 ; call 0xfffc93f9
+
+loc_fffd02fc: ; not directly referenced
+mov eax, dword [ebp - 0xec]
+mov ebx, edi
+mov dword [ebp - 0xc0], 0
+mov dword [ebp - 0xd0], eax
+jmp short loc_fffd0362 ; jmp 0xfffd0362
+
+loc_fffd0316: ; not directly referenced
+push 1
+mov ecx, dword [ebp - 0xbc]
+mov edx, 6
+push 1
+lea eax, [ebp - 0xb0]
+push eax
+mov eax, esi
+push 0
+push 0x40
+push 0xffffffffffffffc0
+push 3
+push 0xff
+call fcn_fffcf3cd ; call 0xfffcf3cd
+add esp, 0x20
+jmp short loc_fffd02fc ; jmp 0xfffd02fc
+
+loc_fffd0345: ; not directly referenced
+inc dword [ebp - 0xc0]
+add ebx, 0x48
+add dword [ebp - 0xd0], 0x10
+cmp dword [ebp - 0xc0], 2
+je loc_fffd0201 ; je 0xfffd0201
+
+loc_fffd0362: ; not directly referenced
+imul eax, dword [ebp - 0xc0], 0x13c3
+cmp dword [esi + eax + 0x3756], 2
+jne short loc_fffd0345 ; jne 0xfffd0345
+mov eax, dword [ebx + 0x3210]
+mov edx, dword [ebp - 0xd0]
+mov ecx, dword [ebp - 0xdc]
+mov dword [edx + 8], eax
+mov eax, dword [ebx + 0x3214]
+mov dword [edx + 0xc], eax
+mov edx, dword [ebp - 0xc0]
+push 0
+push 1
+imul eax, edx, 0xcc
+movzx eax, byte [ecx + eax + 0xe2]
+mov ecx, 0xff
+neg eax
+push eax
+mov eax, esi
+push 1
+call fcn_fffb0cb4 ; call 0xfffb0cb4
+add esp, 0x10
+jmp short loc_fffd0345 ; jmp 0xfffd0345
+
+loc_fffd03c2: ; not directly referenced
+inc dword [ebp - 0xc4]
+add edi, 0x90
+add dword [ebp - 0xec], 0x20
+cmp dword [ebp - 0xc4], 4
+jne loc_fffd0037 ; jne 0xfffd0037
+cmp dword [ebp - 0xcc], 0
+jne short loc_fffd0439 ; jne 0xfffd0439
+mov eax, dword [ebp - 0xf8]
+lea edx, [esi + 0x3210]
+lea ebx, [ebp - 0x18]
+
+loc_fffd03fa: ; not directly referenced
+mov ecx, dword [eax]
+cmp dword [eax + 8], ecx
+cmovbe ecx, dword [eax + 8]
+mov dword [edx], ecx
+mov ecx, dword [eax + 4]
+cmp dword [eax + 0xc], ecx
+cmovbe ecx, dword [eax + 0xc]
+mov dword [edx + 4], ecx
+mov ecx, dword [eax + 0x18]
+cmp dword [eax + 0x10], ecx
+cmovbe ecx, dword [eax + 0x10]
+mov dword [edx + 0x48], ecx
+mov ecx, dword [eax + 0x1c]
+cmp dword [eax + 0x14], ecx
+cmovbe ecx, dword [eax + 0x14]
+add eax, 0x20
+add edx, 0x90
+mov dword [edx - 0x44], ecx
+cmp eax, ebx
+jne short loc_fffd03fa ; jne 0xfffd03fa
+
+loc_fffd0439: ; not directly referenced
+mov dword [ebp - 0xcc], 0
+xor edi, edi
+mov dword [ebp - 0xd0], 0
+mov byte [ebp - 0xc4], 0
+
+loc_fffd0456: ; not directly referenced
+mov byte [ebp - 0xbc], 0
+
+loc_fffd045d: ; not directly referenced
+mov cl, byte [ebp - 0xc4]
+mov eax, 1
+movzx edx, byte [ebp - 0xbc]
+movzx ebx, cl
+shl eax, cl
+imul ecx, edx, 0x13c3
+test byte [esi + ecx + 0x381a], al
+je loc_fffd0601 ; je 0xfffd0601
+imul ebx, ebx, 0x90
+imul edx, edx, 0x48
+mov dword [ebp - 0xd4], edi
+lea eax, [ebx + edx]
+mov ebx, 1
+mov dword [ebp - 0xe8], eax
+
+loc_fffd04a4: ; not directly referenced
+lea eax, [ebx - 6]
+cmp eax, 5
+setbe dl
+cmp ebx, 3
+sete al
+or dl, al
+jne loc_fffd05de ; jne 0xfffd05de
+mov ecx, 2
+mov edx, ebx
+movzx edi, byte [ebx + ref_fffd5f1c] ; movzx edi, byte [ebx - 0x2a0e4]
+mov eax, esi
+call fcn_fffb13cf ; call 0xfffb13cf
+mov ecx, 0xa
+xor edx, edx
+imul edi, edi, 0x240
+div cx
+mov word [ebp - 0xec], ax
+push eax
+push 0xffff
+push 2
+lea eax, [ebp - 0xac]
+push eax
+mov eax, dword [ebp - 0xd8]
+call dword [eax + 0x60] ; ucall
+lea eax, [ebx - 0xc]
+add esp, 0x10
+add edi, dword [ebp - 0xe0]
+xor ecx, ecx
+add edi, dword [ebp - 0xe8]
+mov dword [ebp - 0xf0], eax
+mov dword [ebp - 0xdc], edi
+
+loc_fffd051f: ; not directly referenced
+mov eax, dword [ebp - 0xdc]
+xor edx, edx
+mov edi, 0xa
+mov eax, dword [eax + ecx*2]
+div di
+mov dx, word [ecx + ebp - 0xac]
+cmp ax, dx
+cmovbe edx, eax
+mov word [ecx + ebp - 0xac], dx
+cmp ax, word [ebp - 0xec]
+ja short loc_fffd05ac ; ja 0xfffd05ac
+cmp ebx, 4
+sete dl
+cmp ebx, 1
+sete al
+or dl, al
+jne short loc_fffd058c ; jne 0xfffd058c
+cmp ebx, 5
+sete dl
+cmp ebx, 2
+sete al
+or dl, al
+jne short loc_fffd0598 ; jne 0xfffd0598
+cmp dword [ebp - 0xf0], 1
+mov eax, 1
+cmova eax, dword [ebp - 0xcc]
+mov dword [ebp - 0xcc], eax
+jmp short loc_fffd05a2 ; jmp 0xfffd05a2
+
+loc_fffd058c: ; not directly referenced
+mov dword [ebp - 0xd0], 1
+jmp short loc_fffd05a2 ; jmp 0xfffd05a2
+
+loc_fffd0598: ; not directly referenced
+mov dword [ebp - 0xd4], 1
+
+loc_fffd05a2: ; not directly referenced
+mov dword [ebp - 0xc0], 0x1c
+
+loc_fffd05ac: ; not directly referenced
+add ecx, 2
+cmp ecx, 4
+jne loc_fffd051f ; jne 0xfffd051f
+mov eax, dword [ebp - 0xd0]
+mov edi, dword [ebp - 0xd4]
+dec eax
+jne short loc_fffd05de ; jne 0xfffd05de
+cmp edi, 1
+jne short loc_fffd05de ; jne 0xfffd05de
+cmp dword [ebp - 0xcc], 1
+je short loc_fffd05f3 ; je 0xfffd05f3
+cmp dword [ebp - 0xe4], 0
+je short loc_fffd05f3 ; je 0xfffd05f3
+
+loc_fffd05de: ; not directly referenced
+inc ebx
+cmp ebx, dword [ebp - 0xc8]
+jbe loc_fffd04a4 ; jbe 0xfffd04a4
+mov edi, dword [ebp - 0xd4]
+jmp short loc_fffd0601 ; jmp 0xfffd0601
+
+loc_fffd05f3: ; not directly referenced
+mov byte [ebp - 0xc4], 4
+mov byte [ebp - 0xbc], 2
+
+loc_fffd0601: ; not directly referenced
+inc byte [ebp - 0xbc]
+cmp byte [ebp - 0xbc], 1
+jbe loc_fffd045d ; jbe 0xfffd045d
+inc byte [ebp - 0xc4]
+cmp byte [ebp - 0xc4], 3
+jbe loc_fffd0456 ; jbe 0xfffd0456
+cmp dword [ebp - 0xc0], 0x1c
+jne loc_fffd079e ; jne 0xfffd079e
+mov dl, byte [ebp - 0xfa]
+xor edx, 1
+cmp dword [ebp - 0xe4], 1
+sete al
+test dl, al
+jne short loc_fffd0655 ; jne 0xfffd0655
+
+loc_fffd064b: ; not directly referenced
+mov eax, 1
+jmp near loc_fffd06e5 ; jmp 0xfffd06e5
+
+loc_fffd0655: ; not directly referenced
+lea eax, [esi + 0x3756]
+mov ebx, 0x4020
+mov dword [ebp - 0xc4], eax
+
+loc_fffd0666: ; not directly referenced
+mov eax, dword [ebp - 0xc4]
+cmp dword [eax], 2
+jne short loc_fffd06ae ; jne 0xfffd06ae
+mov edx, ebx
+mov eax, esi
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, ebx
+mov dword [ebp - 0xbc], eax
+mov eax, esi
+or dword [ebp - 0xbc], 0x40000000
+mov ecx, dword [ebp - 0xbc]
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp - 0xbc]
+mov edx, ebx
+mov eax, esi
+and ecx, 0xbfffffff
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffd06ae: ; not directly referenced
+add ebx, 0x400
+add dword [ebp - 0xc4], 0x13c3
+cmp ebx, 0x4820
+jne short loc_fffd0666 ; jne 0xfffd0666
+jmp short loc_fffd064b ; jmp 0xfffd064b
+
+loc_fffd06c8: ; not directly referenced
+cmp eax, 4
+sete cl
+cmp eax, 1
+sete dl
+or cl, dl
+je short loc_fffd06ee ; je 0xfffd06ee
+
+loc_fffd06d8: ; not directly referenced
+inc eax
+cmp eax, dword [ebp - 0xc8]
+ja loc_fffd079e ; ja 0xfffd079e
+
+loc_fffd06e5: ; not directly referenced
+cmp dword [ebp - 0xd0], 0
+je short loc_fffd06c8 ; je 0xfffd06c8
+
+loc_fffd06ee: ; not directly referenced
+test edi, edi
+jne short loc_fffd0702 ; jne 0xfffd0702
+cmp eax, 5
+sete cl
+cmp eax, 2
+sete dl
+or cl, dl
+jne short loc_fffd06d8 ; jne 0xfffd06d8
+
+loc_fffd0702: ; not directly referenced
+cmp dword [ebp - 0xcc], 0
+jne short loc_fffd0713 ; jne 0xfffd0713
+lea edx, [eax - 0xc]
+cmp edx, 1
+jbe short loc_fffd06d8 ; jbe 0xfffd06d8
+
+loc_fffd0713: ; not directly referenced
+cmp eax, 3
+je short loc_fffd06d8 ; je 0xfffd06d8
+lea edx, [eax - 6]
+cmp edx, 5
+jbe short loc_fffd06d8 ; jbe 0xfffd06d8
+mov dword [ebp - 0xbc], 0
+mov byte [ebp - 0xd4], al
+
+loc_fffd0730: ; not directly referenced
+mov ecx, dword [esi + 0x5edc]
+mov ecx, dword [ecx + 4]
+mov dword [ebp - 0xc4], ecx
+mov ebx, ecx
+xor ecx, ecx
+
+loc_fffd0743: ; not directly referenced
+mov dl, byte [ebp - 0xd4]
+cmp dl, byte [ebx]
+jne short loc_fffd075a ; jne 0xfffd075a
+mov edx, dword [ebp - 0xbc]
+movzx ebx, word [ebx + edx*2 + 1]
+jmp short loc_fffd0765 ; jmp 0xfffd0765
+
+loc_fffd075a: ; not directly referenced
+inc ecx
+add ebx, 7
+cmp ecx, 0xb
+jne short loc_fffd0743 ; jne 0xfffd0743
+xor ebx, ebx
+
+loc_fffd0765: ; not directly referenced
+add ebx, 0x28
+mov edx, 0xffff
+imul ecx, ecx, 7
+add ecx, dword [ebp - 0xc4]
+cmp ebx, 0xffff
+cmovg ebx, edx
+mov edx, dword [ebp - 0xbc]
+inc dword [ebp - 0xbc]
+cmp dword [ebp - 0xbc], 2
+mov word [ecx + edx*2 + 1], bx
+jne short loc_fffd0730 ; jne 0xfffd0730
+jmp near loc_fffd06d8 ; jmp 0xfffd06d8
+
+loc_fffd079e: ; not directly referenced
+mov eax, dword [ebp - 0xc0]
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd07ac: ; not directly referenced
+push ebp
+mov ecx, 0xa
+mov ebp, esp
+push edi
+push esi
+mov esi, ref_fffd5f40 ; mov esi, 0xfffd5f40
+push ebx
+sub esp, 0xe0f0
+mov eax, dword [ebp + 8]
+lea edi, [ebp - 0xe044]
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+mov byte [ebp - 0xe06e], 6
+mov eax, dword [eax + 0x5edc]
+mov byte [ebp - 0xe069], 0
+mov byte [ebp - 0xe068], 4
+mov byte [ebp - 0xe065], 6
+mov edi, eax
+mov dword [ebp - 0xe0e0], eax
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0xe064], 0
+mov byte [ebp - 0xe063], 4
+mov byte [ebp - 0xe056], 1
+mov ebx, dword [eax + 0x2443]
+movzx eax, byte [eax + 0x2488]
+mov byte [ebp - 0xe055], 1
+mov byte [ebp - 0xe054], 1
+mov byte [ebp - 0xe053], 1
+mov dword [ebp - 0xe0d0], eax
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0xe052], 1
+mov byte [ebp - 0xe051], 1
+mov byte [ebp - 0xe050], 1
+mov esi, dword [eax + 0x1887]
+mov eax, dword [eax + 0x188b]
+mov byte [ebp - 0xe04f], 1
+mov byte [ebp - 0xe04e], 0
+mov byte [ebp - 0xe04d], 0
+mov byte [ebp - 0xe067], 6
+mov byte [ebp - 0xe066], 5
+mov dword [ebp - 0xe088], eax
+mov eax, dword [ebp + 8]
+mov eax, dword [eax + 0x2480]
+push 0
+push 0x50a
+mov dword [ebp - 0xe0e4], eax
+lea eax, [ebp - 0xdea0]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0xd97e
+lea eax, [ebp - 0xd996]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 0x19a
+lea eax, [ebp - 0xe03a]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 2
+lea eax, [ebp - 0xe06d]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 8
+lea eax, [ebp - 0xe04c]
+push eax
+call dword [ebx + 0x5c] ; ucall
+add esp, 0x10
+cmp esi, 0x306d0
+sete bl
+cmp esi, 0x40650
+sete al
+or ebx, eax
+mov al, bl
+xor eax, 1
+cmp byte [edi + 0x1c5], 1
+mov byte [ebp - 0xe0ba], al
+mov eax, edi
+mov word [ebp - 0xe07a], 0
+sbb edi, edi
+not edi
+and edi, 0x10
+cmp byte [eax + 0x1c5], 1
+mov eax, dword [ebp + 8]
+mov byte [ebp - 0xe07c], 0
+sbb esi, esi
+mov dword [ebp - 0xe0b8], esi
+mov al, byte [eax + 0x248e]
+mov dword [ebp - 0xe098], esi
+and byte [ebp - 0xe0b8], 0xe
+and byte [ebp - 0xe098], 0xfc
+add byte [ebp - 0xe0b8], 2
+add byte [ebp - 0xe098], 6
+mov byte [ebp - 0xe0b9], al
+mov eax, dword [ebp + 8]
+and byte [ebp - 0xe0b9], 3
+movzx esi, byte [ebp - 0xe0b9]
+mov dword [ebp - 0xe0a8], 0
+mov al, byte [eax + 0x248d]
+mov dword [ebp - 0xe0a0], 0
+mov dword [ebp - 0xe080], esi
+mov byte [ebp - 0xe0c0], al
+mov eax, dword [ebp + 8]
+and byte [ebp - 0xe0c0], 0xf
+lea edx, [eax + 0x39b5]
+xor eax, eax
+
+loc_fffd09b9: ; not directly referenced
+mov esi, dword [ebp - 0xe080]
+bt esi, eax
+jae loc_fffd0a91 ; jae 0xfffd0a91
+cmp dword [edx - 0x19f], 2
+lea ecx, [eax*4]
+jne short loc_fffd09f3 ; jne 0xfffd09f3
+mov esi, 3
+shl esi, cl
+mov ecx, esi
+mov dword [ebp - 0xe0a0], 1
+or byte [ebp - 0xe07c], cl
+jmp short loc_fffd0a0c ; jmp 0xfffd0a0c
+
+loc_fffd09f3: ; not directly referenced
+mov esi, 1
+shl esi, cl
+mov ecx, esi
+or byte [ebp - 0xe07c], cl
+mov dword [ebp - 0xe0a8], 1
+
+loc_fffd0a0c: ; not directly referenced
+mov esi, dword [ebp + 8]
+mov cl, byte [ebp - 0xe0c0]
+and cl, byte [edx - 0x19b]
+mov esi, dword [esi + 0x2480]
+mov byte [ebp + eax - 0xe06d], cl
+cmp esi, 3
+setne cl
+add ecx, ecx
+cmp dword [ebp - 0xe088], 1
+mov byte [ebp + eax*2 - 0xe062], cl
+jne short loc_fffd0a5d ; jne 0xfffd0a5d
+mov cl, byte [edx - 0x12]
+and ecx, 0x30
+cmp cl, 0x30
+mov ecx, 3
+cmovne cx, word [ebp - 0xe07a]
+mov word [ebp - 0xe07a], cx
+
+loc_fffd0a5d: ; not directly referenced
+cmp esi, 3
+setne cl
+add ecx, ecx
+cmp dword [ebp - 0xe088], 1
+mov byte [ebp + eax*2 - 0xe061], cl
+jne short loc_fffd0a91 ; jne 0xfffd0a91
+mov cl, byte [edx]
+mov esi, 3
+and ecx, 0x30
+cmp cl, 0x30
+cmovne si, word [ebp - 0xe07a]
+mov word [ebp - 0xe07a], si
+
+loc_fffd0a91: ; not directly referenced
+inc eax
+add edx, 0x13c3
+cmp eax, 2
+jne loc_fffd09b9 ; jne 0xfffd09b9
+cmp dword [ebp - 0xe0a0], 0
+jne short loc_fffd0ac8 ; jne 0xfffd0ac8
+test bl, bl
+je short loc_fffd0aea ; je 0xfffd0aea
+mov eax, dword [ebp + 8]
+test byte [eax + 0x2404], 0x20
+lea eax, [ebp - 0xe051]
+mov dword [ebp - 0xe0a4], eax
+jne short loc_fffd0b05 ; jne 0xfffd0b05
+jmp short loc_fffd0af6 ; jmp 0xfffd0af6
+
+loc_fffd0ac8: ; not directly referenced
+lea eax, [ebp - 0xe056]
+mov dword [ebp - 0xe0a4], eax
+lea esi, [ebp - 0xe065]
+mov byte [ebp - 0xe09c], 3
+mov byte [ebp - 0xe07b], 2
+jmp short loc_fffd0b19 ; jmp 0xfffd0b19
+
+loc_fffd0aea: ; not directly referenced
+lea eax, [ebp - 0xe051]
+mov dword [ebp - 0xe0a4], eax
+
+loc_fffd0af6: ; not directly referenced
+mov byte [ebp - 0xe09c], 1
+lea esi, [ebp - 0xe06e]
+jmp short loc_fffd0b12 ; jmp 0xfffd0b12
+
+loc_fffd0b05: ; not directly referenced
+mov byte [ebp - 0xe09c], 2
+lea esi, [ebp - 0xe067]
+
+loc_fffd0b12: ; not directly referenced
+mov byte [ebp - 0xe07b], 1
+
+loc_fffd0b19: ; not directly referenced
+cmp dword [ebp - 0xe088], 0
+je short loc_fffd0b41 ; je 0xfffd0b41
+mov dx, word [ebp - 0xe07a]
+mov ebx, dword [ebp - 0xe088]
+mov eax, edx
+add eax, 0xc
+dec ebx
+cmovne eax, edx
+mov word [ebp - 0xe07a], ax
+jmp short loc_fffd0b4a ; jmp 0xfffd0b4a
+
+loc_fffd0b41: ; not directly referenced
+mov word [ebp - 0xe07a], 0xc
+
+loc_fffd0b4a: ; not directly referenced
+lea eax, [edi - 0x10]
+mov byte [ebp - 0xe0bc], al
+movzx eax, byte [ebp - 0xe098]
+mov byte [ebp - 0xe084], 0
+mov byte [ebp - 0xe0c8], 0
+mov dword [ebp - 0xe0f4], eax
+movzx eax, byte [ebp - 0xe0ba]
+mov dword [ebp - 0xe0dc], eax
+
+loc_fffd0b7b: ; not directly referenced
+movsx eax, byte [ebp - 0xe0c8]
+cmp eax, dword [ebp - 0xe0f4]
+jge loc_fffd0d6d ; jge 0xfffd0d6d
+movzx eax, byte [ebp - 0xe07b]
+xor edi, edi
+add eax, dword [ebp - 0xe0dc]
+mov dword [ebp - 0xe0d8], eax
+
+loc_fffd0ba3: ; not directly referenced
+mov bl, byte [ebp - 0xe0ba]
+mov al, bl
+add eax, edi
+mov dl, al
+mov byte [ebp - 0xe0bb], al
+movsx eax, al
+cmp eax, dword [ebp - 0xe0d8]
+jge loc_fffd0d56 ; jge 0xfffd0d56
+mov al, dl
+add eax, 2
+mov byte [ebp - 0xe0e5], al
+mov al, bl
+lea eax, [eax + edi - 1]
+mov byte [ebp - 0xe098], al
+movsx eax, word [ebp - 0xe07a]
+mov dword [ebp - 0xe0ec], eax
+movzx eax, byte [ebp - 0xe09c]
+mov dword [ebp - 0xe0f0], eax
+
+loc_fffd0bf5: ; not directly referenced
+movsx eax, byte [ebp - 0xe098]
+cmp eax, dword [ebp - 0xe0d8]
+je loc_fffd0d38 ; je 0xfffd0d38
+cmp eax, dword [ebp - 0xe0dc]
+jl loc_fffd0d38 ; jl 0xfffd0d38
+cmp byte [ebp - 0xe098], 1
+mov dword [ebp - 0xe0cc], 0
+sete dl
+cmp byte [ebp - 0xe0bb], 1
+sete al
+or dl, al
+je short loc_fffd0c42 ; je 0xfffd0c42
+mov eax, dword [ebp - 0xe0a0]
+mov dword [ebp - 0xe0cc], eax
+
+loc_fffd0c42: ; not directly referenced
+xor ebx, ebx
+
+loc_fffd0c44: ; not directly referenced
+mov eax, dword [ebp - 0xe080]
+bt eax, ebx
+jb short loc_fffd0c57 ; jb 0xfffd0c57
+
+loc_fffd0c4f: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffd0c44 ; jne 0xfffd0c44
+jmp short loc_fffd0cd2 ; jmp 0xfffd0cd2
+
+loc_fffd0c57: ; not directly referenced
+mov al, byte [ebp - 0xe0bb]
+mov byte [ebp - 0xe0c4], 0
+mov byte [ebp + ebx*2 - 0xe05e], al
+mov al, byte [ebp - 0xe098]
+mov byte [ebp + ebx*2 - 0xe05d], al
+
+loc_fffd0c78: ; not directly referenced
+movzx eax, byte [ebp - 0xe0c4]
+mov dword [ebp - 0xe0d4], eax
+cmp eax, dword [ebp - 0xe0d0]
+jae short loc_fffd0c4f ; jae 0xfffd0c4f
+push 1
+mov eax, dword [ebp + 8]
+xor ecx, ecx
+push 0
+mov edx, ebx
+push 0
+push dword [ebp - 0xe0d4]
+call fcn_fffafdb2 ; call 0xfffafdb2
+movzx ecx, byte [ebp + ebx - 0xe06d]
+mov edx, ebx
+push 1
+mov eax, dword [ebp + 8]
+push dword [ebp - 0xe0ec]
+push 4
+push dword [ebp - 0xe0d4]
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x20
+inc byte [ebp - 0xe0c4]
+jmp short loc_fffd0c78 ; jmp 0xfffd0c78
+
+loc_fffd0cd2: ; not directly referenced
+cmp byte [ebp - 0xe084], 0x28
+ja short loc_fffd0d38 ; ja 0xfffd0d38
+movzx eax, byte [ebp - 0xe084]
+sub esp, 0xc
+push 0
+mov ecx, dword [ebp - 0xe080]
+push dword [ebp - 0xe0cc]
+push dword [ebp - 0xe0f0]
+imul eax, eax, 0x54e
+push esi
+lea edx, [ebp + eax - 0xd996]
+movsx eax, byte [ebp - 0xe0bc]
+push eax
+lea eax, [ebp - 0xe062]
+push eax
+lea eax, [ebp - 0xe05e]
+push eax
+movzx eax, byte [ebp - 0xe0c0]
+push 0
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffbf2e9 ; call 0xfffbf2e9
+add esp, 0x30
+inc byte [ebp - 0xe084]
+
+loc_fffd0d38: ; not directly referenced
+inc byte [ebp - 0xe098]
+mov al, byte [ebp - 0xe0e5]
+cmp byte [ebp - 0xe098], al
+jne loc_fffd0bf5 ; jne 0xfffd0bf5
+inc edi
+jmp near loc_fffd0ba3 ; jmp 0xfffd0ba3
+
+loc_fffd0d56: ; not directly referenced
+mov al, byte [ebp - 0xe0b8]
+inc byte [ebp - 0xe0c8]
+add byte [ebp - 0xe0bc], al
+jmp near loc_fffd0b7b ; jmp 0xfffd0b7b
+
+loc_fffd0d6d: ; not directly referenced
+movzx eax, byte [ebp - 0xe07c]
+xor ebx, ebx
+mov dword [ebp - 0xe09c], eax
+movzx eax, byte [ebp - 0xe084]
+mov dword [ebp - 0xe0b8], eax
+
+loc_fffd0d89: ; not directly referenced
+mov eax, dword [ebp - 0xe080]
+mov byte [ebp + ebx - 0xe06b], 0
+bt eax, ebx
+jae loc_fffd0efc ; jae 0xfffd0efc
+mov al, byte [ebp - 0xd467]
+mov byte [ebp - 0xe098], 0
+mov byte [ebp - 0xe07b], al
+
+loc_fffd0db3: ; not directly referenced
+mov edi, dword [ebp - 0xe098]
+mov al, byte [ebp - 0xe084]
+mov edx, edi
+cmp dl, al
+je short loc_fffd0e08 ; je 0xfffd0e08
+movzx ecx, dl
+imul esi, ecx, 0x2a7
+add ecx, ecx
+lea eax, [ebp - 0xd996]
+add esi, ebx
+add esi, esi
+add esi, eax
+lea eax, [ebp - 0xe03a]
+add ecx, eax
+xor eax, eax
+
+loc_fffd0de6: ; not directly referenced
+cmp byte [ebp - 0xe07b], al
+jbe short loc_fffd0e00 ; jbe 0xfffd0e00
+imul edi, eax, 0x52
+mov dx, word [esi + eax*4 + 0x53a]
+inc eax
+mov word [ecx + edi], dx
+jmp short loc_fffd0de6 ; jmp 0xfffd0de6
+
+loc_fffd0e00: ; not directly referenced
+inc byte [ebp - 0xe098]
+jmp short loc_fffd0db3 ; jmp 0xfffd0db3
+
+loc_fffd0e08: ; not directly referenced
+mov eax, dword [ebp - 0xe09c]
+lea ecx, [ebx*4]
+sub esp, 0xc
+mov edi, dword [ebp - 0xe0a4]
+lea esi, [ebp - 0xe03a]
+mov edx, ebx
+push 7
+push 0
+sar eax, cl
+mov ecx, eax
+movzx eax, byte [ebp - 0xd467]
+push eax
+push edi
+lea eax, [ebp - 0xd466]
+push eax
+push dword [ebp - 0xe0b8]
+lea eax, [ebp - 0xd996]
+push 0x29
+push esi
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb97c0 ; call 0xfffb97c0
+add esp, 0x2c
+mov ecx, esi
+push 0
+lea eax, [ebp - 0xe044]
+push eax
+movsx eax, byte [ebp - 0xe084]
+push 1
+push 1
+push edi
+push eax
+mov eax, dword [ebp + 8]
+push 0x29
+lea edx, [ebp - 0xdea0]
+call fcn_fffa5d2d ; call 0xfffa5d2d
+movsx di, byte [ebp - 0xde9e]
+lea eax, [ebp - 0xd996]
+add edi, dword [ebp - 0xdea0]
+mov cl, bl
+mov edx, 1
+add esp, 0x18
+shl edx, cl
+movsx edi, di
+imul esi, edi, 0x54e
+imul edi, edi, 0x2a7
+push 0
+push 0
+add eax, esi
+mov ecx, eax
+mov eax, dword [ebp + 8]
+add edi, ebx
+call fcn_fffb3a79 ; call 0xfffb3a79
+mov al, byte [ebp + edi*2 - 0xd996]
+add esp, 0x10
+mov byte [ebp + ebx*2 - 0xe05a], al
+mov al, byte [ebp + edi*2 - 0xd995]
+mov byte [ebp + ebx*2 - 0xe059], al
+lea eax, [ebp + esi - 0xd996]
+mov dl, byte [eax + 8]
+mov eax, dword [eax + 9]
+mov byte [ebp + ebx - 0xe06b], dl
+mov dword [ebp + ebx*4 - 0xe04c], eax
+
+loc_fffd0efc: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffd0d89 ; jne 0xfffd0d89
+test byte [ebp - 0xe080], 1
+je short loc_fffd0f1f ; je 0xfffd0f1f
+mov al, byte [ebp - 0xe06b]
+mov bl, 1
+mov byte [ebp - 0xe084], al
+jmp short loc_fffd0f28 ; jmp 0xfffd0f28
+
+loc_fffd0f1f: ; not directly referenced
+mov byte [ebp - 0xe084], 0
+xor ebx, ebx
+
+loc_fffd0f28: ; not directly referenced
+mov eax, dword [ebp - 0xe080]
+shr eax, 1
+je short loc_fffd0f41 ; je 0xfffd0f41
+mov al, byte [ebp - 0xe06a]
+inc ebx
+add byte [ebp - 0xe084], al
+jmp short loc_fffd0f47 ; jmp 0xfffd0f47
+
+loc_fffd0f41: ; not directly referenced
+test bl, bl
+je short loc_fffd0f5a ; je 0xfffd0f5a
+mov bl, 1
+
+loc_fffd0f47: ; not directly referenced
+movsx eax, byte [ebp - 0xe084]
+movzx ecx, bl
+cdq
+idiv ecx
+mov byte [ebp - 0xe084], al
+
+loc_fffd0f5a: ; not directly referenced
+movzx ecx, byte [ebp - 0xe084]
+sub esp, 0xc
+xor edx, edx
+mov eax, dword [ebp + 8]
+push 1
+call fcn_fffa83c9 ; call 0xfffa83c9
+add esp, 0x10
+mov edi, eax
+cmp bl, 2
+je short loc_fffd0fd2 ; je 0xfffd0fd2
+
+loc_fffd0f7a: ; not directly referenced
+mov eax, dword [ebp + 8]
+mov esi, dword [ebp - 0xe080]
+push edx
+push 0
+add eax, 0x2490
+mov edx, eax
+mov edi, eax
+mov dword [ebp - 0xe0b8], eax
+mov eax, dword [ebp + 8]
+mov ecx, esi
+push 0
+push 0
+call fcn_fffc19af ; call 0xfffc19af
+mov eax, dword [ebp + 8]
+mov edx, edi
+pop ecx
+mov ecx, esi
+pop ebx
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 1
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+cmp dword [ebp - 0xe0e4], 3
+jne loc_fffd105e ; jne 0xfffd105e
+jmp near loc_fffd110a ; jmp 0xfffd110a
+
+loc_fffd0fd2: ; not directly referenced
+mov esi, dword [ebp - 0xe0e0]
+xor ebx, ebx
+add esi, 0x1c
+
+loc_fffd0fdd: ; not directly referenced
+mov eax, dword [ebp - 0xe080]
+bt eax, ebx
+jb short loc_fffd0ff6 ; jb 0xfffd0ff6
+
+loc_fffd0fe8: ; not directly referenced
+inc ebx
+add esi, 0xcc
+cmp ebx, 2
+jne short loc_fffd0fdd ; jne 0xfffd0fdd
+jmp short loc_fffd0f7a ; jmp 0xfffd0f7a
+
+loc_fffd0ff6: ; not directly referenced
+sub dword [ebp + ebx*4 - 0xe04c], edi
+mov byte [ebp - 0xe098], 0
+
+loc_fffd1004: ; not directly referenced
+mov edx, dword [ebp + 8]
+mov al, byte [ebp - 0xe098]
+cmp al, byte [edx + 0x2488]
+jae short loc_fffd0fe8 ; jae 0xfffd0fe8
+movzx edx, byte [ebp - 0xe098]
+push 1
+lea eax, [edx + 0x1c]
+mov cl, byte [esi + eax*4 + 9]
+movzx eax, byte [esi + eax*4 + 0xa]
+shr cl, 4
+and eax, 1
+movzx ecx, cl
+shl eax, 4
+or eax, ecx
+mov ecx, 0xf
+add eax, dword [ebp + ebx*4 - 0xe04c]
+cwde
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push edx
+mov edx, ebx
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+inc byte [ebp - 0xe098]
+jmp short loc_fffd1004 ; jmp 0xfffd1004
+
+loc_fffd105e: ; not directly referenced
+mov eax, dword [ebp + 8]
+cmp dword [ebp - 0xe0a8], 0
+mov byte [ebp - 0xe07b], 1
+mov al, byte [eax + 0x2411]
+sete dl
+test byte [ebp - 0xe0a0], dl
+jne short loc_fffd1092 ; jne 0xfffd1092
+test al, al
+mov edi, 1
+cmove edi, eax
+mov eax, edi
+mov byte [ebp - 0xe07b], al
+
+loc_fffd1092: ; not directly referenced
+lea eax, [ebp - 0xe062]
+mov dword [ebp - 0xe09c], eax
+movsx eax, byte [ebp - 0xe084]
+mov dword [ebp - 0xe098], 0
+mov dword [ebp - 0xe0c8], eax
+
+loc_fffd10b5: ; not directly referenced
+mov eax, dword [ebp - 0xe098]
+mov ebx, 3
+mov ecx, eax
+add ecx, eax
+mov eax, dword [ebp + 8]
+shl ebx, cl
+test byte [eax + 0x248d], bl
+jne short loc_fffd1143 ; jne 0xfffd1143
+
+loc_fffd10d1: ; not directly referenced
+inc dword [ebp - 0xe098]
+inc dword [ebp - 0xe09c]
+cmp dword [ebp - 0xe098], 2
+jne short loc_fffd10b5 ; jne 0xfffd10b5
+movsx edi, word [ebp - 0xe07a]
+xor ebx, ebx
+
+loc_fffd10ef: ; not directly referenced
+mov eax, dword [ebp + 8]
+xor esi, esi
+movzx eax, byte [eax + 0x248e]
+bt eax, ebx
+jb loc_fffd1379 ; jb 0xfffd1379
+
+loc_fffd1104: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffd10ef ; jne 0xfffd10ef
+
+loc_fffd110a: ; not directly referenced
+mov eax, dword [ebp + 8]
+sub esp, 0xc
+xor ecx, ecx
+movzx edx, byte [eax + 0x248e]
+push 0
+call fcn_fffcc3c6 ; call 0xfffcc3c6
+add esp, 0x10
+cmp dword [ebp - 0xe088], 0
+jne loc_fffd13a8 ; jne 0xfffd13a8
+sub esp, 0xc
+push dword [ebp + 8]
+call fcn_fffbdcd9 ; call 0xfffbdcd9
+add esp, 0x10
+jmp near loc_fffd13a8 ; jmp 0xfffd13a8
+
+loc_fffd1143: ; not directly referenced
+test byte [ebp - 0xe06d], bl
+setne al
+mov dl, al
+or edx, 2
+test byte [ebp - 0xe06c], bl
+cmovne eax, edx
+xor esi, esi
+and al, byte [ebp - 0xe0b9]
+lea edx, [ebp - 0xd996]
+mov edi, edx
+movzx eax, al
+mov dword [ebp - 0xe0a4], eax
+
+loc_fffd1173: ; not directly referenced
+mov al, byte [ebp - 0xe07b]
+sub esp, 0xc
+mov edx, dword [ebp - 0xe09c]
+mov ecx, dword [ebp - 0xe0a4]
+add eax, esi
+test al, al
+mov byte [edx], al
+mov byte [edx + 2], al
+sete al
+mov edx, edi
+and eax, dword [ebp - 0xe0a8]
+add edi, 0x54e
+push eax
+push 0
+push 2
+lea eax, [ebp - 0xe069]
+push eax
+push dword [ebp - 0xe0c8]
+lea eax, [ebp - 0xe062]
+push eax
+lea eax, [ebp - 0xe05a]
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push ebx
+call fcn_fffbf2e9 ; call 0xfffbf2e9
+lea eax, [esi + 1]
+inc esi
+mov byte [ebp - 0xe0a0], al
+mov al, byte [ebp - 0xe07b]
+add esp, 0x30
+add eax, esi
+cmp al, 2
+jbe short loc_fffd1173 ; jbe 0xfffd1173
+movsx eax, byte [ebp - 0xe0a0]
+mov cl, byte [ebp - 0xe098]
+mov dword [ebp - 0xe084], 1
+shl dword [ebp - 0xe084], cl
+movzx ebx, al
+mov dword [ebp - 0xe080], 0
+mov dword [ebp - 0xe0c0], ebx
+mov dword [ebp - 0xe0c4], eax
+
+loc_fffd121c: ; not directly referenced
+mov eax, dword [ebp - 0xe0a4]
+mov edx, dword [ebp - 0xe080]
+bt eax, edx
+jae loc_fffd1361 ; jae 0xfffd1361
+mov al, byte [ebp - 0xd467]
+xor edx, edx
+mov byte [ebp - 0xe07c], al
+
+loc_fffd123f: ; not directly referenced
+movzx ecx, dl
+imul ebx, ecx, 0x2a7
+add ecx, ecx
+add ebx, dword [ebp - 0xe080]
+lea eax, [ebp - 0xd996]
+add ebx, ebx
+add ebx, eax
+lea eax, [ebp - 0xe03a]
+add ecx, eax
+xor eax, eax
+
+loc_fffd1264: ; not directly referenced
+cmp byte [ebp - 0xe07c], al
+jbe short loc_fffd127e ; jbe 0xfffd127e
+imul esi, eax, 0x52
+mov di, word [ebx + eax*4 + 0x53a]
+inc eax
+mov word [ecx + esi], di
+jmp short loc_fffd1264 ; jmp 0xfffd1264
+
+loc_fffd127e: ; not directly referenced
+inc edx
+cmp dl, byte [ebp - 0xe0a0]
+jne short loc_fffd123f ; jne 0xfffd123f
+movzx eax, byte [ebp - 0xd467]
+sub esp, 0xc
+push 8
+mov ecx, dword [ebp - 0xe084]
+push 0
+mov edx, dword [ebp - 0xe080]
+lea ebx, [ebp - 0xe051]
+push eax
+push ebx
+lea eax, [ebp - 0xd466]
+push eax
+push dword [ebp - 0xe0c0]
+lea esi, [ebp - 0xe03a]
+lea eax, [ebp - 0xd996]
+lea edi, [ebp - 0xd996]
+push 0x29
+push esi
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffb97c0 ; call 0xfffb97c0
+add esp, 0x2c
+mov ecx, esi
+push 0
+lea eax, [ebp - 0xe044]
+push eax
+mov eax, dword [ebp + 8]
+push 1
+push 1
+push ebx
+push dword [ebp - 0xe0c4]
+lea edx, [ebp - 0xdea0]
+push 0x29
+call fcn_fffa5d2d ; call 0xfffa5d2d
+movsx si, byte [ebp - 0xde9e]
+add esp, 0x18
+add esi, dword [ebp - 0xdea0]
+mov edx, 1
+push 0
+push 1
+movsx esi, si
+imul eax, esi, 0x54e
+imul esi, esi, 0x2a7
+lea ebx, [edi + eax]
+mov edi, dword [ebp - 0xe080]
+mov eax, dword [ebp + 8]
+mov ecx, edi
+add esi, edi
+shl edx, cl
+mov ecx, ebx
+call fcn_fffb3a79 ; call 0xfffb3a79
+add esi, esi
+mov edx, edi
+lea eax, [ebp - 0x18]
+mov edi, dword [ebp - 0xe09c]
+add esp, 0x10
+add esi, eax
+mov eax, dword [ebp - 0xe098]
+mov al, byte [eax + esi - 0xd97a]
+mov byte [edi + edx*2], al
+
+loc_fffd1361: ; not directly referenced
+inc dword [ebp - 0xe080]
+cmp dword [ebp - 0xe080], 2
+jne loc_fffd121c ; jne 0xfffd121c
+jmp near loc_fffd10d1 ; jmp 0xfffd10d1
+
+loc_fffd1379: ; not directly referenced
+mov eax, esi
+movzx eax, al
+cmp eax, dword [ebp - 0xe0d0]
+jae loc_fffd1104 ; jae 0xfffd1104
+push 1
+movzx ecx, byte [ebp + ebx - 0xe06d]
+mov edx, ebx
+push edi
+inc esi
+push 4
+push eax
+mov eax, dword [ebp + 8]
+call fcn_fffafdb2 ; call 0xfffafdb2
+add esp, 0x10
+jmp short loc_fffd1379 ; jmp 0xfffd1379
+
+loc_fffd13a8: ; not directly referenced
+push eax
+mov edx, dword [ebp - 0xe0b8]
+push eax
+mov eax, dword [ebp + 8]
+movzx ecx, byte [eax + 0x248e]
+push 0
+push 0xf
+push 0
+push 0
+push 0
+push 2
+call fcn_fffc0a2d ; call 0xfffc0a2d
+add esp, 0x20
+cmp dword [ebp - 0xe088], 1
+jne short loc_fffd13e5 ; jne 0xfffd13e5
+sub esp, 0xc
+push dword [ebp + 8]
+call fcn_fffbdcd9 ; call 0xfffbdcd9
+add esp, 0x10
+
+loc_fffd13e5: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd13ed: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+push ebx
+sub esp, 0x10c
+mov eax, dword [ebp + 0x10]
+mov byte [ebp - 0xfa], cl
+mov cl, byte [ebp + 0xc]
+mov ebx, dword [ebp + 8]
+mov dword [ebp - 0xbc], edx
+mov dword [ebp - 0xe4], eax
+mov byte [ebp - 0xd4], cl
+mov ecx, eax
+mov byte [ebp - 0xeb], al
+mov al, byte [ebp + 0x18]
+mov byte [ebp - 0xec], bl
+mov byte [ebp - 0xd3], al
+mov eax, dword [edi + 0x2443]
+mov dword [ebp - 0xf8], eax
+mov al, cl
+shr al, 4
+inc eax
+mov byte [ebp - 0xf9], al
+xor eax, eax
+cmp cl, 0x21
+ja short loc_fffd1460 ; ja 0xfffd1460
+movzx eax, byte [ebp - 0xe4]
+movzx eax, byte [eax + ref_fffd5f1c] ; movzx eax, byte [eax - 0x2a0e4]
+
+loc_fffd1460: ; not directly referenced
+mov ecx, dword [ebp - 0xe4]
+mov dword [ebp - 0xd8], 1
+cmp cl, 0x21
+sete dl
+cmp cl, 0x11
+sete cl
+or dl, cl
+jne short loc_fffd1492 ; jne 0xfffd1492
+xor ecx, ecx
+cmp byte [ebp - 0xe4], 5
+sete cl
+mov dword [ebp - 0xd8], ecx
+
+loc_fffd1492: ; not directly referenced
+movzx ecx, byte [edi + 0x2488]
+mov esi, 1
+shl esi, cl
+dec esi
+cmp byte [edi + 0x248b], 1
+mov word [ebp - 0xea], si
+jne short loc_fffd151e ; jne 0xfffd151e
+mov cl, byte [edi + 0x248c]
+lea esi, [ecx + 4]
+mov byte [ebp - 0x9a], cl
+mov edx, esi
+mov byte [ebp - 0x99], cl
+add ecx, 2
+mov byte [ebp - 0x98], dl
+mov byte [ebp - 0x97], cl
+
+loc_fffd14d7: ; not directly referenced
+imul eax, eax, 0x240
+movzx ebx, bl
+add eax, dword [ebp - 0xbc]
+mov dword [ebp - 0xc4], 0
+mov byte [ebp - 0xd2], 0
+mov dword [ebp - 0xc8], eax
+imul eax, ebx, 0x24
+mov dword [ebp - 0x110], eax
+movzx eax, byte [ebp - 0xec]
+mov dword [ebp - 0x118], eax
+imul eax, eax, 0x12
+mov dword [ebp - 0xd0], eax
+jmp short loc_fffd1559 ; jmp 0xfffd1559
+
+loc_fffd151e: ; 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_fffd14d7 ; jmp 0xfffd14d7
+
+loc_fffd153c: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne loc_fffd1f38 ; jne 0xfffd1f38
+inc dword [ebp - 0xc4]
+cmp dword [ebp - 0xc4], 2
+je loc_fffd1fc4 ; je 0xfffd1fc4
+
+loc_fffd1559: ; not directly referenced
+mov ebx, dword [ebp - 0xf8]
+lea eax, [ebp - 0xa2]
+xor esi, esi
+push ecx
+push 0
+push 4
+push eax
+mov eax, ebx
+call dword [eax + 0x5c] ; ucall
+add esp, 0xc
+push 0
+push 4
+lea eax, [ebp - 0x9e]
+push eax
+mov eax, ebx
+call dword [eax + 0x5c] ; ucall
+lea eax, [ebp - 0x72]
+add esp, 0x10
+mov dword [ebp - 0xbc], eax
+
+loc_fffd1591: ; not directly referenced
+movzx eax, byte [ebp - 0xfa]
+bt eax, esi
+mov dword [ebp - 0xe0], eax
+jb short loc_fffd15bf ; jb 0xfffd15bf
+mov ax, word [ebp - 0xea]
+mov word [ebp + esi*2 - 0xa2], ax
+mov word [ebp + esi*2 - 0x9e], ax
+jmp near loc_fffd1766 ; jmp 0xfffd1766
+
+loc_fffd15bf: ; not directly referenced
+mov eax, dword [ebp - 0xbc]
+mov byte [ebp - 0xc0], 0
+mov byte [eax], 0x7f
+mov eax, esi
+shl eax, 0xa
+add eax, 0x40f0
+mov dword [ebp - 0xf0], eax
+lea eax, [esi + esi*8]
+mov dword [ebp - 0xe8], eax
+
+loc_fffd15e8: ; not directly referenced
+mov al, byte [ebp - 0xc0]
+cmp al, byte [edi + 0x2488]
+jae loc_fffd171e ; jae 0xfffd171e
+movzx eax, byte [ebp - 0xc0]
+lea ecx, [ebp - 0x18]
+mov ebx, eax
+mov dword [ebp - 0xcc], eax
+lea eax, [esi + esi*8]
+lea edx, [ecx + eax]
+add eax, ebx
+mov dword [ebp + eax*4 - 0x60], 0
+movzx eax, byte [ebp - 0xd3]
+cmp byte [ebp - 0xeb], 1
+mov byte [ebx + edx - 0x7e], 0x7f
+mov byte [ebp - 0xd1], al
+jne short loc_fffd1659 ; jne 0xfffd1659
+push edx
+movzx ecx, byte [ebp - 0xd4]
+mov edx, esi
+push eax
+mov eax, edi
+push dword [ebp - 0xc4]
+push ebx
+call fcn_fffaec68 ; call 0xfffaec68
+add esp, 0x10
+mov byte [ebp - 0xd1], al
+
+loc_fffd1659: ; not directly referenced
+lea eax, [esi + esi*8]
+xor edx, edx
+mov dword [ebp - 0xdc], eax
+mov eax, dword [ebp - 0xd0]
+mov ecx, 0xa
+mov ebx, dword [ebp - 0xdc]
+add ebx, eax
+mov eax, dword [ebp - 0xc8]
+add ebx, dword [ebp - 0xcc]
+add ebx, ebx
+add ebx, dword [ebp - 0xc4]
+mov eax, dword [eax + ebx*4]
+div ecx
+movzx edx, byte [ebp - 0xd1]
+cmp eax, edx
+cmova eax, edx
+mov edx, dword [ebp - 0xc8]
+cmp dword [ebp - 0xd8], 1
+mov dword [edx + ebx*4], eax
+jne short loc_fffd16d2 ; jne 0xfffd16d2
+mov ebx, dword [ebp - 0xbc]
+movzx edx, byte [ebx]
+cmp eax, edx
+jae short loc_fffd16e9 ; jae 0xfffd16e9
+mov ebx, dword [ebp - 0xe8]
+mov byte [ebp + ebx - 0x84], al
+mov ebx, dword [ebp - 0xbc]
+mov byte [ebx], al
+jmp short loc_fffd16e9 ; jmp 0xfffd16e9
+
+loc_fffd16d2: ; not directly referenced
+mov ecx, dword [ebp - 0xdc]
+lea ebx, [ebp - 0x18]
+add ecx, ebx
+add ecx, dword [ebp - 0xcc]
+mov byte [ecx - 0x6c], al
+mov byte [ecx - 0x5a], al
+
+loc_fffd16e9: ; not directly referenced
+movzx eax, byte [ebp - 0xc0]
+mov ebx, dword [ebp + 0x14]
+movzx ecx, byte [ebx + eax]
+mov eax, dword [ebp - 0xf0]
+mov ebx, dword [ebp - 0xcc]
+and ecx, 0x7f
+or ch, 1
+lea edx, [eax + ebx*4]
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+inc byte [ebp - 0xc0]
+jmp near loc_fffd15e8 ; jmp 0xfffd15e8
+
+loc_fffd171e: ; not directly referenced
+cmp dword [ebp - 0xd8], 1
+jne short loc_fffd1766 ; jne 0xfffd1766
+lea edx, [esi + esi*8]
+xor eax, eax
+add edx, dword [ebp - 0xd0]
+mov dword [ebp - 0xc0], edx
+
+loc_fffd1738: ; not directly referenced
+cmp al, byte [edi + 0x2488]
+jae short loc_fffd1766 ; jae 0xfffd1766
+mov ebx, dword [ebp - 0xbc]
+movzx ecx, al
+inc eax
+add ecx, dword [ebp - 0xc0]
+mov edx, dword [ebp - 0xc8]
+movzx ebx, byte [ebx]
+add ecx, ecx
+add ecx, dword [ebp - 0xc4]
+mov dword [edx + ecx*4], ebx
+jmp short loc_fffd1738 ; jmp 0xfffd1738
+
+loc_fffd1766: ; not directly referenced
+inc esi
+add dword [ebp - 0xbc], 9
+cmp esi, 2
+jne loc_fffd1591 ; jne 0xfffd1591
+mov eax, dword [ebp - 0xc4]
+lea esi, [eax + eax - 1]
+mov dword [ebp - 0x114], esi
+mov esi, dword [ebp - 0xc8]
+add eax, dword [ebp - 0x110]
+lea eax, [esi + eax*4]
+mov dword [ebp - 0xf0], eax
+
+loc_fffd179c: ; not directly referenced
+mov ecx, 4
+mov edx, 0x4800
+mov eax, edi
+xor esi, esi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffd17af: ; not directly referenced
+movzx eax, byte [ebp - 0xf9]
+cmp esi, eax
+jae loc_fffd1883 ; jae 0xfffd1883
+xor ebx, ebx
+
+loc_fffd17c0: ; not directly referenced
+mov eax, dword [ebp - 0xe0]
+bt eax, ebx
+jb short loc_fffd17fd ; jb 0xfffd17fd
+
+loc_fffd17cb: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffd17c0 ; jne 0xfffd17c0
+xor eax, eax
+mov edx, dword [ebp - 0xe0]
+test esi, esi
+push ecx
+movzx ecx, byte [edi + 0x248b]
+sete al
+push 0
+inc esi
+push eax
+lea eax, [ebp - 0x9a]
+push eax
+mov eax, edi
+call fcn_fffb0f94 ; call 0xfffb0f94
+add esp, 0x10
+jmp short loc_fffd17af ; jmp 0xfffd17af
+
+loc_fffd17fd: ; not directly referenced
+mov eax, dword [ebp - 0xe0]
+lea ecx, [ebx + 1]
+xor edx, edx
+sar eax, cl
+mov dword [ebp - 0xbc], eax
+
+loc_fffd1810: ; not directly referenced
+cmp dl, byte [edi + 0x2488]
+jae short loc_fffd17cb ; jae 0xfffd17cb
+push 1
+movzx eax, dl
+push dword [ebp - 0xbc]
+lea ecx, [ebx + ebx*8]
+add ecx, dword [ebp - 0xd0]
+mov dword [ebp - 0xc0], edx
+mov edx, dword [ebp - 0xc8]
+push 0
+push 0
+push eax
+add eax, ecx
+mov ecx, dword [ebp - 0x114]
+push dword [ebp - 0x118]
+add eax, eax
+add eax, dword [ebp - 0xc4]
+push ebx
+push 0
+push esi
+imul ecx, dword [edx + eax*4]
+movzx eax, byte [ebp - 0xeb]
+push ecx
+push eax
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov edx, dword [ebp - 0xc0]
+cmp dword [ebp - 0xd8], 0
+jne loc_fffd17cb ; jne 0xfffd17cb
+inc edx
+jmp short loc_fffd1810 ; jmp 0xfffd1810
+
+loc_fffd1883: ; not directly referenced
+xor esi, esi
+
+loc_fffd1885: ; not directly referenced
+mov eax, dword [ebp - 0xe0]
+bt eax, esi
+jae loc_fffd1edf ; jae 0xfffd1edf
+mov eax, esi
+shl eax, 0xa
+add eax, 0x4114
+mov dword [ebp - 0x10c], eax
+mov byte [ebp - 0xe8], 0
+
+loc_fffd18ab: ; not directly referenced
+mov al, byte [ebp - 0xe8]
+cmp al, byte [edi + 0x2488]
+jae loc_fffd1e18 ; jae 0xfffd1e18
+mov cl, byte [ebp - 0xe8]
+movzx eax, cl
+mov dword [ebp - 0xbc], eax
+mov eax, 1
+shl eax, cl
+mov ebx, eax
+mov dword [ebp - 0xc0], eax
+mov ax, word [ebp + esi*2 - 0x9e]
+and ax, word [ebp + esi*2 - 0xa2]
+test bx, ax
+jne loc_fffd1e0d ; jne 0xfffd1e0d
+xor eax, eax
+mov bl, cl
+mov edx, dword [ebp - 0x10c]
+cmp dword [ebp - 0xd8], 1
+cmovne eax, ebx
+mov ebx, dword [ebp - 0xbc]
+mov byte [ebp - 0xd2], al
+mov eax, edi
+lea edx, [edx + ebx*4]
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, dword [ebp - 0xd0]
+lea ebx, [esi + esi*8]
+mov ecx, dword [ebp - 0xbc]
+add edx, ebx
+add edx, ecx
+mov dword [ebp - 0xdc], eax
+mov eax, dword [ebp - 0xc8]
+add edx, edx
+add edx, dword [ebp - 0xc4]
+mov edx, dword [eax + edx*4]
+lea eax, [ebp - 0x18]
+add eax, ebx
+add ecx, eax
+mov dword [ebp - 0xf4], eax
+mov al, byte [ecx - 0x7e]
+mov dword [ebp - 0xcc], edx
+mov byte [ebp - 0x100], al
+sub edx, eax
+mov eax, dword [ebp - 0xdc]
+mov byte [ebp - 0xd1], dl
+mov edx, dword [ebp - 0xf4]
+and eax, 0x7fffff
+mov dword [ebp - 0xdc], eax
+movzx eax, byte [ebp - 0xd2]
+jne loc_fffd1abc ; jne 0xfffd1abc
+add edx, eax
+mov al, byte [ebp - 0xcc]
+cmp al, byte [edx - 0x6c]
+jne loc_fffd1a4e ; jne 0xfffd1a4e
+cmp byte [ebp - 0xd1], 0
+jns short loc_fffd19e2 ; jns 0xfffd19e2
+cmp byte [edx - 0x5a], al
+jne short loc_fffd19cc ; jne 0xfffd19cc
+
+loc_fffd19af: ; not directly referenced
+lea ebx, [ebp - 0x18]
+mov ecx, dword [ebp - 0xbc]
+lea eax, [esi + esi*8]
+add eax, ebx
+mov bl, byte [ebp - 0xcc]
+mov byte [ecx + eax - 0x7e], bl
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd19cc: ; not directly referenced
+mov dword [ebp - 0xa8], 1
+
+loc_fffd19d6: ; not directly referenced
+mov eax, dword [ebp - 0xa8]
+test eax, eax
+jne short loc_fffd19d6 ; jne 0xfffd19d6
+jmp short loc_fffd19af ; jmp 0xfffd19af
+
+loc_fffd19e2: ; not directly referenced
+cmp byte [ebp - 0xd1], 1
+jne short loc_fffd1a1a ; jne 0xfffd1a1a
+add ebx, dword [ebp - 0xbc]
+mov eax, dword [ebp + ebx*4 - 0x60]
+shr eax, 8
+xor ah, ah
+mov dword [ebp + ebx*4 - 0x60], eax
+mov al, byte [ebp - 0xcc]
+mov byte [ecx - 0x7e], al
+mov eax, dword [ebp - 0xc0]
+or word [ebp + esi*2 - 0xa2], ax
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1a1a: ; not directly referenced
+cmp byte [ebp - 0xd1], 2
+jne short loc_fffd1a35 ; jne 0xfffd1a35
+xor eax, eax
+call fcn_fffaebf8 ; call 0xfffaebf8
+add ebx, dword [ebp - 0xbc]
+jmp near loc_fffd1b3b ; jmp 0xfffd1b3b
+
+loc_fffd1a35: ; not directly referenced
+mov dword [ebp - 0xac], 1
+
+loc_fffd1a3f: ; not directly referenced
+mov eax, dword [ebp - 0xac]
+test eax, eax
+jne short loc_fffd1a3f ; jne 0xfffd1a3f
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1a4e: ; not directly referenced
+mov al, byte [ebp - 0xcc]
+cmp al, byte [edx - 0x5a]
+jne loc_fffd1c91 ; jne 0xfffd1c91
+mov ax, word [ebp + esi*2 - 0xa2]
+test word [ebp - 0xc0], ax
+jne loc_fffd1e0d ; jne 0xfffd1e0d
+cmp byte [ebp - 0xd1], 0xff
+jne short loc_fffd1a9c ; jne 0xfffd1a9c
+add ebx, dword [ebp - 0xbc]
+or eax, dword [ebp - 0xc0]
+and dword [ebp + ebx*4 - 0x60], 0xffffff00
+mov word [ebp + esi*2 - 0xa2], ax
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1a9c: ; not directly referenced
+mov edx, dword [ebp - 0xc0]
+mov bl, byte [ebp - 0xcc]
+not edx
+and edx, eax
+mov byte [ecx - 0x7e], bl
+mov word [ebp + esi*2 - 0xa2], dx
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1abc: ; not directly referenced
+add edx, eax
+mov al, byte [edx - 0x6c]
+mov byte [ebp - 0xf4], al
+cmp byte [ebp - 0xcc], al
+jne loc_fffd1b61 ; jne 0xfffd1b61
+cmp byte [ebp - 0xd1], 2
+jle short loc_fffd1af5 ; jle 0xfffd1af5
+mov dword [ebp - 0xb0], 1
+
+loc_fffd1ae6: ; not directly referenced
+mov eax, dword [ebp - 0xb0]
+test eax, eax
+jne short loc_fffd1ae6 ; jne 0xfffd1ae6
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1af5: ; not directly referenced
+mov eax, dword [ebp - 0xbc]
+lea ebx, [ebx + eax]
+mov eax, dword [ebp - 0xdc]
+je short loc_fffd1b36 ; je 0xfffd1b36
+call fcn_fffaebf8 ; call 0xfffaebf8
+mov edx, dword [ebp + ebx*4 - 0x60]
+and edx, 0xff00ffff
+movzx eax, al
+shl eax, 0x10
+or eax, edx
+mov dword [ebp + ebx*4 - 0x60], eax
+mov eax, dword [ebp - 0xc0]
+not eax
+and word [ebp + esi*2 - 0x9e], ax
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1b36: ; not directly referenced
+call fcn_fffaebf8 ; call 0xfffaebf8
+
+loc_fffd1b3b: ; not directly referenced
+mov edx, dword [ebp + ebx*4 - 0x60]
+shl eax, 0x18
+and edx, 0xffffff
+or eax, edx
+mov dword [ebp + ebx*4 - 0x60], eax
+mov eax, dword [ebp - 0xc0]
+or word [ebp + esi*2 - 0x9e], ax
+jmp near loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1b61: ; not directly referenced
+mov al, byte [ebp - 0xcc]
+cmp al, byte [edx - 0x5a]
+jne loc_fffd1c91 ; jne 0xfffd1c91
+cmp byte [ebp - 0x100], 0xff
+je loc_fffd1c27 ; je 0xfffd1c27
+cmp byte [ebp - 0xd1], 0
+jg loc_fffd1c27 ; jg 0xfffd1c27
+movsx eax, byte [ebp - 0xd1]
+mov dword [ebp - 0x100], eax
+mov eax, dword [ebp - 0xdc]
+call fcn_fffaebf8 ; call 0xfffaebf8
+mov edx, 1
+add ebx, dword [ebp - 0xbc]
+mov ebx, dword [ebp + ebx*4 - 0x60]
+mov dword [ebp - 0x104], eax
+mov eax, dword [ebp - 0x100]
+mov dword [ebp - 0x108], ebx
+xor ebx, ebx
+sub edx, eax
+shl edx, 3
+lea ecx, [edx + 0x1f]
+cmp cl, 0x3e
+ja short loc_fffd1c03 ; ja 0xfffd1c03
+mov cl, al
+movzx ebx, byte [ebp - 0x104]
+mov eax, 0xff
+lea ecx, [ecx*8 + 8]
+shl eax, cl
+not eax
+and eax, dword [ebp - 0x108]
+shl ebx, cl
+mov cl, dl
+or ebx, eax
+test dl, dl
+jle short loc_fffd1bff ; jle 0xfffd1bff
+shl ebx, cl
+jmp short loc_fffd1c03 ; jmp 0xfffd1c03
+
+loc_fffd1bff: ; not directly referenced
+neg ecx
+shr ebx, cl
+
+loc_fffd1c03: ; not directly referenced
+mov ecx, dword [ebp - 0xbc]
+lea eax, [esi + esi*8]
+lea edx, [eax + ecx]
+mov dword [ebp + edx*4 - 0x60], ebx
+lea ebx, [ebp - 0x18]
+add eax, ebx
+mov bl, byte [ebp - 0xcc]
+lea edx, [ebx - 1]
+mov byte [ecx + eax - 0x7e], dl
+jmp short loc_fffd1c5a ; jmp 0xfffd1c5a
+
+loc_fffd1c27: ; not directly referenced
+mov ebx, dword [ebp - 0xbc]
+lea eax, [esi + esi*8]
+lea edx, [eax + ebx]
+mov eax, dword [ebp - 0xdc]
+mov ebx, dword [ebp + edx*4 - 0x60]
+mov dword [ebp - 0x100], edx
+call fcn_fffaebf8 ; call 0xfffaebf8
+mov edx, dword [ebp - 0x100]
+movzx ebx, bx
+shl eax, 0x10
+or eax, ebx
+mov dword [ebp + edx*4 - 0x60], eax
+
+loc_fffd1c5a: ; not directly referenced
+mov al, byte [ebp - 0xf4]
+cmp byte [ebp - 0xcc], al
+jae short loc_fffd1c76 ; jae 0xfffd1c76
+mov eax, dword [ebp - 0xc0]
+or word [ebp + esi*2 - 0x9e], ax
+
+loc_fffd1c76: ; not directly referenced
+cmp byte [ebp - 0xd1], 0
+jg short loc_fffd1ca5 ; jg 0xfffd1ca5
+mov eax, dword [ebp - 0xc0]
+not eax
+and word [ebp + esi*2 - 0xa2], ax
+jmp short loc_fffd1ca5 ; jmp 0xfffd1ca5
+
+loc_fffd1c91: ; not directly referenced
+mov dword [ebp - 0xb4], 1
+
+loc_fffd1c9b: ; not directly referenced
+mov eax, dword [ebp - 0xb4]
+test eax, eax
+jne short loc_fffd1c9b ; jne 0xfffd1c9b
+
+loc_fffd1ca5: ; not directly referenced
+cmp byte [ebp - 0xeb], 1
+movzx eax, byte [ebp - 0xd3]
+jne short loc_fffd1cd6 ; jne 0xfffd1cd6
+push edx
+movzx ecx, byte [ebp - 0xd4]
+mov edx, esi
+push eax
+mov eax, edi
+push dword [ebp - 0xc4]
+push dword [ebp - 0xbc]
+call fcn_fffaec68 ; call 0xfffaec68
+add esp, 0x10
+
+loc_fffd1cd6: ; not directly referenced
+cmp byte [ebp - 0xcc], al
+jne short loc_fffd1cec ; jne 0xfffd1cec
+mov ebx, dword [ebp - 0xc0]
+or word [ebp + esi*2 - 0x9e], bx
+
+loc_fffd1cec: ; not directly referenced
+cmp dword [ebp - 0xdc], 0
+jne short loc_fffd1d23 ; jne 0xfffd1d23
+lea ebx, [ebp - 0x18]
+lea edx, [esi + esi*8]
+lea ecx, [ebx + edx]
+mov ebx, dword [ebp - 0xbc]
+cmp al, byte [ebx + ecx - 0x7e]
+jne short loc_fffd1d23 ; jne 0xfffd1d23
+mov eax, dword [ebp - 0xc0]
+test word [ebp + esi*2 - 0xa2], ax
+je short loc_fffd1d23 ; je 0xfffd1d23
+add edx, ebx
+mov word [ebp + edx*4 - 0x5e], 0xfffe
+
+loc_fffd1d23: ; not directly referenced
+cmp byte [ebp - 0xcc], 0
+jne short loc_fffd1d68 ; jne 0xfffd1d68
+mov eax, dword [ebp - 0xc0]
+or word [ebp + esi*2 - 0xa2], ax
+cmp dword [ebp - 0xdc], 0
+je short loc_fffd1d68 ; je 0xfffd1d68
+lea ebx, [ebp - 0x18]
+or word [ebp + esi*2 - 0x9e], ax
+lea eax, [esi + esi*8]
+lea edx, [ebx + eax]
+mov ebx, dword [ebp - 0xbc]
+add eax, ebx
+mov byte [ebx + edx - 0x7e], 0
+mov word [ebp + eax*4 - 0x5e], 0x707
+
+loc_fffd1d68: ; not directly referenced
+cmp dword [ebp - 0xd8], 0
+jne loc_fffd1e0d ; jne 0xfffd1e0d
+mov cx, word [ebp + esi*2 - 0x9e]
+mov dx, word [ebp + esi*2 - 0xa2]
+mov eax, ecx
+and eax, edx
+test word [ebp - 0xc0], ax
+jne short loc_fffd1e0d ; jne 0xfffd1e0d
+cmp dword [ebp - 0xdc], 0
+movzx eax, byte [ebp - 0xd2]
+jne short loc_fffd1dc1 ; jne 0xfffd1dc1
+test word [ebp - 0xc0], cx
+jne short loc_fffd1db6 ; jne 0xfffd1db6
+lea ecx, [esi + esi*8]
+lea ebx, [ebp - 0x18]
+lea edx, [ebx + ecx]
+jmp short loc_fffd1de0 ; jmp 0xfffd1de0
+
+loc_fffd1db6: ; not directly referenced
+lea ecx, [esi + esi*8]
+lea ebx, [ebp - 0x18]
+lea edx, [ebx + ecx]
+jmp short loc_fffd1dd3 ; jmp 0xfffd1dd3
+
+loc_fffd1dc1: ; not directly referenced
+test word [ebp - 0xc0], dx
+lea ecx, [esi + esi*8]
+lea ebx, [ebp - 0x18]
+lea edx, [ebx + ecx]
+jne short loc_fffd1de0 ; jne 0xfffd1de0
+
+loc_fffd1dd3: ; not directly referenced
+add eax, edx
+mov bl, byte [eax - 0x5a]
+lea edx, [ebx - 1]
+mov byte [eax - 0x5a], dl
+jmp short loc_fffd1deb ; jmp 0xfffd1deb
+
+loc_fffd1de0: ; not directly referenced
+add eax, edx
+mov bl, byte [eax - 0x6c]
+lea edx, [ebx + 1]
+mov byte [eax - 0x6c], dl
+
+loc_fffd1deb: ; not directly referenced
+mov eax, dword [ebp - 0xd0]
+movzx edx, dl
+add eax, ecx
+mov ecx, dword [ebp - 0xc8]
+add eax, dword [ebp - 0xbc]
+add eax, eax
+add eax, dword [ebp - 0xc4]
+mov dword [ecx + eax*4], edx
+
+loc_fffd1e0d: ; not directly referenced
+inc byte [ebp - 0xe8]
+jmp near loc_fffd18ab ; jmp 0xfffd18ab
+
+loc_fffd1e18: ; not directly referenced
+cmp dword [ebp - 0xd8], 1
+jne loc_fffd1edf ; jne 0xfffd1edf
+mov ax, word [ebp + esi*2 - 0xa2]
+mov bx, word [ebp - 0xea]
+mov edx, eax
+and dx, word [ebp + esi*2 - 0x9e]
+cmp dx, bx
+je loc_fffd1edf ; je 0xfffd1edf
+lea edx, [esi + esi*8]
+lea ecx, [ebp - 0x18]
+add edx, ecx
+cmp ax, bx
+movzx eax, byte [ebp - 0xd2]
+je short loc_fffd1e8f ; je 0xfffd1e8f
+add eax, edx
+mov ebx, dword [ebp - 0xf0]
+mov cl, byte [eax - 0x5a]
+dec ecx
+mov byte [eax - 0x5a], cl
+imul eax, esi, 0x48
+movzx ecx, cl
+mov dword [ebx + eax], ecx
+
+loc_fffd1e73: ; not directly referenced
+imul eax, esi, 0x48
+lea ebx, [esi + esi*8]
+add ebx, dword [ebp - 0xd0]
+mov dword [ebp - 0xbc], eax
+xor eax, eax
+mov dword [ebp - 0xc0], ebx
+jmp short loc_fffd1ea9 ; jmp 0xfffd1ea9
+
+loc_fffd1e8f: ; not directly referenced
+add edx, eax
+mov ecx, dword [ebp - 0xf0]
+mov al, byte [edx - 0x6c]
+inc eax
+mov byte [edx - 0x6c], al
+imul edx, esi, 0x48
+movzx eax, al
+mov dword [ecx + edx], eax
+jmp short loc_fffd1e73 ; jmp 0xfffd1e73
+
+loc_fffd1ea9: ; not directly referenced
+cmp al, byte [edi + 0x2488]
+jae short loc_fffd1edf ; jae 0xfffd1edf
+mov ebx, dword [ebp - 0xbc]
+mov edx, dword [ebp - 0xf0]
+mov edx, dword [edx + ebx]
+mov ebx, dword [ebp - 0xc8]
+mov ecx, edx
+movzx edx, al
+add edx, dword [ebp - 0xc0]
+inc eax
+add edx, edx
+add edx, dword [ebp - 0xc4]
+mov dword [ebx + edx*4], ecx
+jmp short loc_fffd1ea9 ; jmp 0xfffd1ea9
+
+loc_fffd1edf: ; not directly referenced
+inc esi
+cmp esi, 2
+jne loc_fffd1885 ; jne 0xfffd1885
+mov si, word [ebp - 0xea]
+mov eax, esi
+and ax, word [ebp - 0xa2]
+cmp ax, si
+jne loc_fffd179c ; jne 0xfffd179c
+mov eax, esi
+and ax, word [ebp - 0x9e]
+cmp ax, si
+jne loc_fffd179c ; jne 0xfffd179c
+mov eax, esi
+and eax, dword [ebp - 0xa0]
+cmp ax, si
+jne loc_fffd179c ; jne 0xfffd179c
+mov eax, esi
+and eax, dword [ebp - 0x9c]
+cmp ax, si
+jne loc_fffd179c ; jne 0xfffd179c
+xor ebx, ebx
+
+loc_fffd1f38: ; not directly referenced
+mov eax, dword [ebp - 0xe0]
+bt eax, ebx
+jae loc_fffd153c ; jae 0xfffd153c
+mov byte [ebp - 0xbc], 0
+
+loc_fffd1f4e: ; not directly referenced
+mov al, byte [ebp - 0xbc]
+cmp al, byte [edi + 0x2488]
+jae loc_fffd153c ; jae 0xfffd153c
+movzx esi, byte [ebp - 0xbc]
+lea eax, [ebx + ebx*8]
+sub esp, 0xc
+mov dword [ebp - 0xc0], eax
+add eax, esi
+mov edx, dword [ebp + eax*4 - 0x60]
+lea eax, [ebp - 0x18]
+add eax, dword [ebp - 0xc0]
+movzx eax, byte [esi + eax - 0x7e]
+mov ecx, edx
+push dword [ebp + 0x1c]
+shr edx, 0x10
+shr ecx, 0x18
+movzx edx, dl
+call fcn_fffaa348 ; call 0xfffaa348
+mov edx, dword [ebp - 0xc0]
+add esp, 0x10
+add edx, dword [ebp - 0xd0]
+mov ecx, dword [ebp - 0xc8]
+inc byte [ebp - 0xbc]
+add esi, edx
+add esi, esi
+add esi, dword [ebp - 0xc4]
+mov dword [ecx + esi*4], eax
+jmp short loc_fffd1f4e ; jmp 0xfffd1f4e
+
+loc_fffd1fc4: ; not directly referenced
+cmp byte [ebp - 0xe4], 0xb
+je short loc_fffd1ffb ; je 0xfffd1ffb
+
+loc_fffd1fcd: ; not directly referenced
+push 2
+movzx eax, byte [ebp - 0xe4]
+xor ebx, ebx
+push 0
+push 0
+push 0
+push 0
+push 0
+push 0
+push 1
+push 0
+push 0
+push eax
+push edi
+call fcn_fffcc900 ; call 0xfffcc900
+add esp, 0x30
+mov esi, eax
+jmp near loc_fffd20a3 ; jmp 0xfffd20a3
+
+loc_fffd1ffb: ; not directly referenced
+movzx eax, byte [ebp - 0xec]
+xor ebx, ebx
+mov dword [ebp - 0xc4], eax
+
+loc_fffd200a: ; not directly referenced
+mov eax, dword [ebp - 0xe0]
+bt eax, ebx
+jb short loc_fffd201d ; jb 0xfffd201d
+
+loc_fffd2015: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffd200a ; jne 0xfffd200a
+jmp short loc_fffd1fcd ; jmp 0xfffd1fcd
+
+loc_fffd201d: ; not directly referenced
+mov eax, ebx
+imul esi, ebx, 0x13c3
+shl eax, 0xa
+add eax, 0x4028
+mov dword [ebp - 0xc0], eax
+mov byte [ebp - 0xbc], 0
+
+loc_fffd203a: ; not directly referenced
+mov al, byte [ebp - 0xbc]
+cmp al, byte [edi + 0x2488]
+jae short loc_fffd2015 ; jae 0xfffd2015
+push eax
+movzx eax, byte [ebp - 0xbc]
+mov edx, ebx
+mov ecx, dword [ebp - 0xc4]
+push 0
+push 0xff
+push eax
+mov eax, edi
+call fcn_fffa7499 ; call 0xfffa7499
+mov edx, dword [ebp - 0xc0]
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+movzx edx, byte [edi + esi + 0x476f]
+and edx, 0x3f
+shl edx, 0x10
+and eax, 0xffc0ffff
+or eax, edx
+mov edx, dword [ebp - 0xc0]
+mov ecx, eax
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+add esp, 0x10
+inc byte [ebp - 0xbc]
+jmp short loc_fffd203a ; jmp 0xfffd203a
+
+loc_fffd20a3: ; not directly referenced
+cmp bl, byte [edi + 0x2488]
+jae short loc_fffd20c1 ; jae 0xfffd20c1
+movzx eax, bl
+xor ecx, ecx
+lea edx, [eax*4 + 0x4cf0]
+mov eax, edi
+call fcn_fffaeb7c ; call 0xfffaeb7c
+inc ebx
+jmp short loc_fffd20a3 ; jmp 0xfffd20a3
+
+loc_fffd20c1: ; not directly referenced
+lea esp, [ebp - 0xc]
+mov eax, esi
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd20cb: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+sub esp, 0x4c
+mov ebx, dword [ebp + 8]
+mov eax, dword [ebx + 0x2443]
+lea ecx, [ebx + 0x5f98]
+movzx esi, byte [ebx + 0x18ed]
+mov dword [ebx + 0x3711], 0
+mov dword [ebp - 0x3c], eax
+mov eax, dword [ebx + 0x188b]
+mov dword [ebp - 0x40], eax
+lea eax, [ebx + 0x3812]
+
+loc_fffd2106: ; not directly referenced
+cmp dword [eax - 0xbc], 2
+mov dword [eax], 0
+jne short loc_fffd214a ; jne 0xfffd214a
+cmp dword [eax + 0x10b7], 2
+jne short loc_fffd2126 ; jne 0xfffd2126
+mov edx, dword [eax + 0x1198]
+mov dword [eax], edx
+
+loc_fffd2126: ; not directly referenced
+cmp dword [eax + 0x11df], 2
+jne short loc_fffd2137 ; jne 0xfffd2137
+mov edx, dword [eax + 0x12c0]
+add dword [eax], edx
+
+loc_fffd2137: ; not directly referenced
+mov edx, dword [ebx + 0x2484]
+cmp dword [eax], edx
+cmovbe edx, dword [eax]
+mov dword [eax], edx
+add dword [ebx + 0x3711], edx
+
+loc_fffd214a: ; not directly referenced
+add eax, 0x13c3
+cmp eax, ecx
+jne short loc_fffd2106 ; jne 0xfffd2106
+mov edi, dword [ebx + 0x3711]
+mov eax, dword [ebx + 0x18d9]
+mov ecx, edi
+sub ecx, dword [ebx + 0x18d5]
+cmp byte [ebx + 0x2402], 0
+mov dword [ebx + 0x36ec], ecx
+je short loc_fffd218c ; je 0xfffd218c
+cmp edi, 0x1000
+ja short loc_fffd218c ; ja 0xfffd218c
+shr edi, 1
+mov edx, 0x1000
+sub edx, edi
+cmp eax, edx
+cmovb eax, edx
+
+loc_fffd218c: ; not directly referenced
+mov edx, 0x1000
+sub edx, eax
+cmp edx, ecx
+cmovbe ecx, edx
+mov dword [ebx + 0x36f0], ecx
+test esi, esi
+je short loc_fffd21cc ; je 0xfffd21cc
+mov eax, dword [ebx + 0x3812]
+mov edx, dword [ebx + 0x4bd5]
+cmp eax, edx
+je short loc_fffd21cc ; je 0xfffd21cc
+test eax, eax
+je short loc_fffd21cc ; je 0xfffd21cc
+test edx, edx
+je short loc_fffd21cc ; je 0xfffd21cc
+cmp edx, eax
+cmova edx, eax
+add edx, edx
+cmp ecx, edx
+cmovbe edx, ecx
+mov dword [ebx + 0x36f0], edx
+
+loc_fffd21cc: ; not directly referenced
+mov eax, dword [ebx + 0x36f0]
+sub eax, dword [ebx + 0x246d]
+mov edi, dword [ebx + 0x18c1]
+mov dword [ebx + 0x36f4], eax
+sub eax, dword [ebx + 0x2471]
+mov dword [ebx + 0x36f8], eax
+mov eax, dword [ebp - 0x3c]
+push 0x50
+push 0
+push 0
+push 0
+call dword [eax + 0x4c] ; ucall
+add edi, eax
+mov eax, dword [ebp - 0x3c]
+mov dword [esp], edi
+call dword [eax + 0x20] ; ucall
+add esp, 0x10
+mov ecx, dword [ebx + 0x246d]
+cmp dword [ebp - 0x40], 0
+jne short loc_fffd2275 ; jne 0xfffd2275
+xor edx, edx
+cmp byte [ebx + 0x18b3], 1
+sete dl
+and ah, 0xbc
+mov edi, edx
+mov edx, 3
+shl edi, 0xe
+cmp dword [ebx + 0x2471], 3
+cmovbe edx, dword [ebx + 0x2471]
+or eax, edi
+and edx, 3
+shl edx, 8
+or eax, edx
+cmp ecx, 0x400
+jne short loc_fffd2257 ; jne 0xfffd2257
+and al, 7
+or al, 0x88
+jmp short loc_fffd22b9 ; jmp 0xfffd22b9
+
+loc_fffd2257: ; not directly referenced
+mov dl, 0x1f
+cmp ecx, 0x3ff
+ja short loc_fffd2269 ; ja 0xfffd2269
+shr ecx, 5
+mov dl, cl
+and edx, 0x1f
+
+loc_fffd2269: ; not directly referenced
+and edx, 0x1f
+and al, 7
+shl edx, 3
+or eax, edx
+jmp short loc_fffd22b9 ; jmp 0xfffd22b9
+
+loc_fffd2275: ; not directly referenced
+xor edx, edx
+mov edi, dword [ebx + 0x2471]
+cmp byte [ebx + 0x18b3], 1
+sete dl
+and eax, 0xfffffffb
+shl edx, 2
+or eax, edx
+mov dl, 3
+cmp edi, 7
+ja short loc_fffd229d ; ja 0xfffd229d
+shr edi, 1
+mov edx, edi
+and edx, 3
+
+loc_fffd229d: ; not directly referenced
+and edx, 3
+and al, 0x3f
+shl edx, 6
+mov edi, ecx
+or eax, edx
+mov dl, 0xff
+shr edi, 5
+cmp ecx, 0x1fff
+cmovbe edx, edi
+mov ah, dl
+
+loc_fffd22b9: ; not directly referenced
+mov ecx, dword [ebx + 0x36f8]
+mov dword [ebx + 0x36fc], eax
+mov eax, dword [ebx + 0x18dd]
+mov edx, dword [ebx + 0x18e5]
+mov dword [ebp - 0x40], ecx
+sub dword [ebp - 0x40], eax
+neg eax
+and eax, dword [ebp - 0x40]
+mov dword [ebx + 0x372d], edx
+mov dword [ebx + 0x3700], eax
+test esi, esi
+jne short loc_fffd2312 ; jne 0xfffd2312
+
+loc_fffd22ec: ; not directly referenced
+mov eax, dword [ebp - 0x40]
+sub eax, dword [ebx + 0x3700]
+je loc_fffd23fb ; je 0xfffd23fb
+sub dword [ebx + 0x36f8], eax
+sub dword [ebx + 0x36f4], eax
+sub dword [ebx + 0x36f0], eax
+jmp near loc_fffd23fb ; jmp 0xfffd23fb
+
+loc_fffd2312: ; not directly referenced
+or edx, 0xffffffff
+sub edx, dword [ebx + 0x18e9]
+mov dword [ebp - 0x4c], 0
+lea esi, [ebp - 0x2a]
+mov dword [ebp - 0x48], 0
+add eax, edx
+shl eax, 0x14
+mov dword [ebp - 0x50], eax
+
+loc_fffd2334: ; not directly referenced
+mov ecx, dword [ebp - 0x48]
+imul eax, ecx, 0x13c3
+mov byte [ebp - 0x44], cl
+cmp dword [ebx + eax + 0x3756], 2
+jne loc_fffd23e6 ; jne 0xfffd23e6
+
+loc_fffd234e: ; not directly referenced
+push eax
+push esi
+push dword [ebp - 0x4c]
+push dword [ebp - 0x50]
+call fcn_fffc6ea0 ; call 0xfffc6ea0
+mov al, byte [ebp - 0x44]
+add dword [ebp - 0x50], 0x40
+adc dword [ebp - 0x4c], 0
+add esp, 0x10
+cmp byte [esi + 1], al
+jne short loc_fffd234e ; jne 0xfffd234e
+mov ax, word [esi + 7]
+movzx ecx, byte [esi + 5]
+mov edx, eax
+movzx edi, ah
+movzx eax, byte [esi + 3]
+shl edx, 0x18
+shl ecx, 3
+or ecx, edx
+movzx edx, byte [esi + 4]
+and eax, 7
+shl eax, 0x18
+and edx, 0xf
+shl edx, 0x10
+or edi, edx
+or edi, eax
+cmp byte [ebp - 0x44], 1
+lea edx, [ebp - 0x30]
+push edx
+sbb eax, eax
+not eax
+and eax, 0x200
+push ecx
+or eax, 0x1e
+push eax
+mov eax, dword [ebp - 0x3c]
+push 1
+call dword [eax + 0x84] ; ucall
+add esp, 0x10
+cmp byte [ebp - 0x44], 1
+lea ecx, [ebp - 0x30]
+push ecx
+sbb eax, eax
+and eax, 0xfffffe00
+add eax, 0x300
+push edi
+or eax, 0x1e
+push eax
+mov eax, dword [ebp - 0x3c]
+push 1
+call dword [eax + 0x84] ; ucall
+add esp, 0x10
+
+loc_fffd23e6: ; not directly referenced
+inc dword [ebp - 0x48]
+add esi, 9
+cmp dword [ebp - 0x48], 2
+jne loc_fffd2334 ; jne 0xfffd2334
+jmp near loc_fffd22ec ; jmp 0xfffd22ec
+
+loc_fffd23fb: ; not directly referenced
+cmp byte [ebx + 0x18b6], 0
+mov eax, dword [ebx + 0x36ec]
+je short loc_fffd2446 ; je 0xfffd2446
+mov ecx, dword [ebx + 0x36f0]
+cmp eax, ecx
+jbe short loc_fffd2446 ; jbe 0xfffd2446
+mov edx, 0x1000
+cmp eax, 0x1000
+mov esi, edx
+cmovbe edx, eax
+cmovae esi, eax
+add edx, esi
+sub edx, ecx
+mov dword [ebx + 0x370d], edx
+dec edx
+mov byte [ebx + 0x3704], 1
+mov dword [ebx + 0x3705], esi
+mov dword [ebx + 0x3709], edx
+jmp short loc_fffd2453 ; jmp 0xfffd2453
+
+loc_fffd2446: ; not directly referenced
+mov byte [ebx + 0x3704], 0
+mov dword [ebx + 0x370d], eax
+
+loc_fffd2453: ; not directly referenced
+cmp byte [ebx + 0x3745], 0
+je short loc_fffd24bf ; je 0xfffd24bf
+cmp byte [ebx + 0x2402], 0
+je short loc_fffd247b ; je 0xfffd247b
+cmp dword [ebx + 0x3711], 0x1000
+mov edx, eax
+ja short loc_fffd2487 ; ja 0xfffd2487
+mov edx, dword [ebx + 0x370d]
+jmp short loc_fffd2487 ; jmp 0xfffd2487
+
+loc_fffd247b: ; not directly referenced
+mov edx, dword [ebx + 0x3700]
+sub edx, dword [ebx + 0x18e5]
+
+loc_fffd2487: ; not directly referenced
+movzx ecx, byte [ebx + 0x3747]
+shl ecx, 3
+mov dword [ebx + 0x3721], ecx
+not ecx
+add edx, ecx
+movzx ecx, byte [ebx + 0x3746]
+and edx, 0xffffffc0
+mov dword [ebx + 0x371d], edx
+shl ecx, 3
+sub edx, ecx
+sub edx, 0x40
+mov dword [ebx + 0x3729], ecx
+mov dword [ebx + 0x3725], edx
+
+loc_fffd24bf: ; not directly referenced
+mov dword [ebx + 0x3715], eax
+mov eax, dword [ebx + 0x18d5]
+mov edx, dword [ebx + 0x3711]
+mov esi, dword [ebx + 0x2443]
+mov dword [ebx + 0x3719], eax
+mov eax, dword [ebx + 0x18cd]
+mov dword [ebp - 0x40], eax
+mov eax, dword [ebx + 0x18c1]
+push 0xa0
+push 0
+push 0
+mov edi, eax
+mov dword [ebp - 0x3c], eax
+mov eax, edx
+shr edx, 0xc
+and edx, 0x7f
+shl eax, 0x14
+push 0
+mov dword [ebp - 0x48], edx
+mov dword [ebp - 0x44], eax
+call dword [esi + 0x4c] ; ucall
+pop ecx
+mov dword [ebp - 0x3c], edi
+lea edi, [eax + edi]
+pop eax
+push dword [ebp - 0x44]
+push edi
+call dword [esi + 0x30] ; ucall
+lea ecx, [edi + 4]
+pop eax
+pop edx
+mov edx, dword [ebp - 0x48]
+push edx
+push ecx
+call dword [esi + 0x30] ; ucall
+movzx edi, word [ebx + 0x36f0]
+push 0xbc
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+shl edi, 0x14
+add esp, 0x18
+push edi
+mov edi, dword [ebp - 0x3c]
+add eax, edi
+push eax
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebx + 0x370d]
+push 0xa8
+push 0
+push 0
+mov eax, edx
+shr edx, 0xc
+and edx, 0x7f
+shl eax, 0x14
+mov dword [ebp - 0x48], edx
+push 0
+mov dword [ebp - 0x44], eax
+call dword [esi + 0x4c] ; ucall
+add esp, 0x18
+push dword [ebp - 0x44]
+lea edi, [eax + edi]
+push edi
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebp - 0x48]
+pop ecx
+pop eax
+lea ecx, [edi + 4]
+push edx
+push ecx
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+cmp byte [ebx + 0x3704], 0
+je loc_fffd2626 ; je 0xfffd2626
+mov edx, dword [ebx + 0x3705]
+push 0x90
+push 0
+push 0
+mov eax, edx
+shr edx, 0xc
+and edx, 0x7f
+shl eax, 0x14
+push 0
+mov dword [ebp - 0x48], edx
+mov dword [ebp - 0x44], eax
+call dword [esi + 0x4c] ; ucall
+mov ecx, dword [ebp - 0x3c]
+lea edi, [eax + ecx]
+pop eax
+pop edx
+push dword [ebp - 0x44]
+push edi
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebp - 0x48]
+pop ecx
+pop eax
+lea ecx, [edi + 4]
+push edx
+push ecx
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebx + 0x3709]
+push 0x98
+push 0
+push 0
+mov eax, edx
+shr edx, 0xc
+and edx, 0x7f
+shl eax, 0x14
+mov dword [ebp - 0x48], edx
+push 0
+mov dword [ebp - 0x44], eax
+call dword [esi + 0x4c] ; ucall
+mov ecx, dword [ebp - 0x3c]
+add esp, 0x18
+push dword [ebp - 0x44]
+lea edi, [eax + ecx]
+push edi
+call dword [esi + 0x30] ; ucall
+lea ecx, [edi + 4]
+pop eax
+pop edx
+mov edx, dword [ebp - 0x48]
+push edx
+push ecx
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+
+loc_fffd2626: ; not directly referenced
+push 0xb8
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+movzx edx, word [ebx + 0x3700]
+pop edi
+pop ecx
+add eax, dword [ebp - 0x3c]
+shl edx, 0x14
+push edx
+push eax
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+cmp dword [ebx + 0x372d], 0
+je short loc_fffd2689 ; je 0xfffd2689
+push 0x5c
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+mov ecx, dword [ebp - 0x3c]
+lea edi, [eax + ecx]
+mov dword [esp], edi
+call dword [esi + 0x20] ; ucall
+movzx edx, byte [ebx + 0x372d]
+shl edx, 4
+and eax, 0xfffff00f
+or eax, edx
+pop edx
+or eax, 4
+pop ecx
+push eax
+push edi
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+
+loc_fffd2689: ; not directly referenced
+push 0xb0
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+movzx edx, word [ebx + 0x36f4]
+pop ecx
+pop edi
+mov edi, dword [ebp - 0x3c]
+shl edx, 0x14
+push edx
+add eax, edi
+push eax
+call dword [esi + 0x30] ; ucall
+push 0xb4
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+movzx edx, word [ebx + 0x36f8]
+add esp, 0x18
+shl edx, 0x14
+push edx
+add eax, edi
+push eax
+call dword [esi + 0x30] ; ucall
+mov eax, dword [ebx + 0x3719]
+add esp, 0x10
+test eax, eax
+je loc_fffd2764 ; je 0xfffd2764
+mov edi, 0x80000
+sub edi, eax
+push 0x78
+mov edx, edi
+push 0
+shl edx, 0x14
+push 0
+or dh, 8
+push 0
+shr edi, 0xc
+mov dword [ebp - 0x44], edx
+and edi, 0x7f
+call dword [esi + 0x4c] ; ucall
+mov ecx, dword [ebp - 0x3c]
+add ecx, eax
+pop eax
+pop edx
+mov edx, dword [ebp - 0x44]
+mov dword [ebp - 0x44], ecx
+push edx
+push ecx
+call dword [esi + 0x30] ; ucall
+pop ecx
+mov ecx, dword [ebp - 0x44]
+pop eax
+add ecx, 4
+push edi
+push ecx
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebx + 0x3715]
+push 0x70
+push 0
+push 0
+mov eax, edx
+shr edx, 0xc
+and edx, 0x7f
+shl eax, 0x14
+mov dword [ebp - 0x48], edx
+push 0
+mov dword [ebp - 0x44], eax
+call dword [esi + 0x4c] ; ucall
+mov ecx, dword [ebp - 0x3c]
+add esp, 0x18
+push dword [ebp - 0x44]
+lea edi, [eax + ecx]
+push edi
+call dword [esi + 0x30] ; ucall
+lea ecx, [edi + 4]
+pop eax
+pop edx
+mov edx, dword [ebp - 0x48]
+push edx
+push ecx
+call dword [esi + 0x30] ; ucall
+add esp, 0x10
+
+loc_fffd2764: ; not directly referenced
+push 0x50
+push 0
+push 0
+push 0
+call dword [esi + 0x4c] ; ucall
+pop edx
+pop ecx
+push dword [ebx + 0x36fc]
+add eax, dword [ebp - 0x3c]
+push eax
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebx + 0x371d]
+pop edi
+pop eax
+mov eax, dword [ebx + 0x3721]
+mov edi, dword [ebp - 0x40]
+add eax, edx
+shr eax, 3
+shr edx, 3
+shl eax, 0x10
+or eax, edx
+push eax
+mov eax, edi
+add eax, 0x18
+push eax
+call dword [esi + 0x30] ; ucall
+pop eax
+mov eax, dword [ebx + 0x371d]
+pop edx
+shl eax, 0xe
+push eax
+mov eax, edi
+add eax, 0x10
+push eax
+call dword [esi + 0x30] ; ucall
+pop ecx
+pop eax
+mov eax, dword [ebx + 0x371d]
+and eax, 0x40000
+shr eax, 0x12
+push eax
+mov eax, edi
+add eax, 0x14
+push eax
+call dword [esi + 0x30] ; ucall
+mov edx, dword [ebx + 0x3725]
+pop eax
+mov eax, dword [ebx + 0x3729]
+pop ecx
+add eax, edx
+shr eax, 3
+shr edx, 3
+shl eax, 0x10
+or eax, edx
+push eax
+mov eax, edi
+add eax, 0x28
+push eax
+call dword [esi + 0x30] ; ucall
+pop eax
+mov eax, dword [ebx + 0x3725]
+pop edx
+shl eax, 0xe
+push eax
+mov eax, edi
+add eax, 0x20
+push eax
+call dword [esi + 0x30] ; ucall
+pop ecx
+pop eax
+mov eax, dword [ebx + 0x3725]
+and eax, 0x40000
+shr eax, 0x12
+or eax, 4
+push eax
+mov eax, edi
+add eax, 0x24
+push eax
+call dword [esi + 0x30] ; ucall
+xor eax, eax
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffd2836:
+push esi
+push edi
+mov esi, dword [esp + 0x10]
+mov edi, dword [esp + 0xc]
+mov edx, dword [esp + 0x14]
+cmp edi, esi
+je short loc_fffd2865 ; je 0xfffd2865
+cmp edx, 0
+je short loc_fffd2865 ; je 0xfffd2865
+lea eax, [esi + edx - 1]
+cmp esi, edi
+jae short loc_fffd2860 ; jae 0xfffd2860
+cmp eax, edi
+jb short loc_fffd2860 ; jb 0xfffd2860
+mov esi, eax
+lea edi, [edi + edx - 1]
+std
+
+loc_fffd2860:
+mov ecx, edx
+rep movsb ; rep movsb byte es:[edi], byte ptr [esi]
+cld
+
+loc_fffd2865:
+mov eax, dword [esp + 0xc]
+pop edi
+pop esi
+ret
+
+loc_fffd286c:
+push edi
+xor eax, eax
+mov edi, dword [esp + 8]
+mov ecx, dword [esp + 0xc]
+mov edx, ecx
+shr ecx, 2
+and edx, 3
+push edi
+rep stosd ; rep stosd dword es:[edi], eax
+mov ecx, edx
+rep stosb ; rep stosb byte es:[edi], al
+pop eax
+pop edi
+ret
+
+fcn_fffd2889:
+mov eax, dword [esp + 8]
+mov ecx, dword [esp + 0xc]
+xor edx, edx
+div ecx
+mov eax, dword [esp + 4]
+div ecx
+mov eax, edx
+ret
+
+fcn_fffd289e:
+mov eax, dword [esp + 8]
+mov ecx, dword [esp + 0xc]
+xor edx, edx
+div ecx
+push eax
+mov eax, dword [esp + 8]
+div ecx
+pop edx
+ret
+
+fcn_fffd28b3:
+mov ecx, dword [esp + 0xc]
+mov eax, dword [esp + 8]
+xor edx, edx
+div ecx
+push eax
+mov eax, dword [esp + 8]
+div ecx
+mov ecx, dword [esp + 0x14]
+jecxz loc_fffd28ce ; jecxz 0xfffd28ce
+mov dword [ecx], edx
+
+loc_fffd28ce:
+pop edx
+ret
+
+fcn_fffd28d0:
+push ebx
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+cpuid
+push ecx
+mov ecx, dword [ebp + 0x10]
+jecxz loc_fffd28e1 ; jecxz 0xfffd28e1
+mov dword [ecx], eax
+
+loc_fffd28e1:
+mov ecx, dword [ebp + 0x14]
+jecxz loc_fffd28e8 ; jecxz 0xfffd28e8
+mov dword [ecx], ebx
+
+loc_fffd28e8:
+mov ecx, dword [ebp + 0x18]
+jecxz loc_fffd28ef ; jecxz 0xfffd28ef
+pop dword [ecx]
+
+loc_fffd28ef:
+mov ecx, dword [ebp + 0x1c]
+jecxz loc_fffd28f6 ; jecxz 0xfffd28f6
+mov dword [ecx], edx
+
+loc_fffd28f6:
+mov eax, dword [ebp + 0xc]
+leave
+pop ebx
+ret
+
+loc_fffd28fc: ; not directly referenced
+mov cl, byte [esp + 0xc]
+xor eax, eax
+mov edx, dword [esp + 4]
+test cl, 0x20
+cmove eax, edx
+cmove edx, dword [esp + 8]
+shld edx, eax, cl
+shl eax, cl
+ret
+
+loc_fffd2917:
+mov cl, byte [esp + 0xc]
+xor edx, edx
+mov eax, dword [esp + 8]
+test cl, 0x20
+cmove edx, eax
+cmove eax, dword [esp + 4]
+shrd eax, edx, cl
+shr edx, cl
+ret
+
+loc_fffd2932:
+push edi
+mov ecx, dword [esp + 0xc]
+mov al, byte [esp + 0x10]
+mov ah, al
+shrd edx, eax, 0x10
+shld eax, edx, 0x10
+mov edx, ecx
+mov edi, dword [esp + 8]
+shr ecx, 2
+rep stosd ; rep stosd dword es:[edi], eax
+mov ecx, edx
+and ecx, 3
+rep stosb ; rep stosb byte es:[edi], al
+mov eax, dword [esp + 8]
+pop edi
+ret
+
+loc_fffd295d:
+db 0x57
+db 0x8b
+db 0x44
+dd 0x7c8b1024
+dd 0x4c8b0824
+dd 0xabf30c24
+dd 0x0824448b
+db 0x5f
+db 0xc3
+
+loc_fffd2972: ; not directly referenced
+mov ecx, dword [esp + 0xc]
+mov eax, ecx
+imul ecx, dword [esp + 8]
+mul dword [esp + 4]
+add edx, ecx
+ret
+
+loc_fffd2984: ; not directly referenced
+mov ecx, dword [esp + 0x10]
+test ecx, ecx
+jne short loc_fffd299f ; jne 0xfffd299f
+mov ecx, dword [esp + 0x14]
+jecxz loc_fffd299a ; jecxz 0xfffd299a
+and dword [ecx + 4], 0
+mov dword [esp + 0x10], ecx
+
+loc_fffd299a: ; not directly referenced
+jmp near fcn_fffd28b3 ; jmp 0xfffd28b3
+
+loc_fffd299f: ; not directly referenced
+push ebx
+push esi
+push edi
+mov edx, dword [esp + 0x14]
+mov eax, dword [esp + 0x10]
+mov edi, edx
+mov esi, eax
+mov ebx, dword [esp + 0x18]
+
+loc_fffd29b2: ; not directly referenced
+shr edx, 1
+rcr eax, 1
+shrd ebx, ecx, 1
+shr ecx, 1
+jne short loc_fffd29b2 ; jne 0xfffd29b2
+div ebx
+mov ebx, eax
+mov ecx, dword [esp + 0x1c]
+mul dword [esp + 0x18]
+imul ecx, ebx
+add edx, ecx
+mov ecx, dword [esp + 0x20]
+jb short loc_fffd29df ; jb 0xfffd29df
+cmp edi, edx
+ja short loc_fffd29ea ; ja 0xfffd29ea
+jb short loc_fffd29df ; jb 0xfffd29df
+cmp esi, eax
+jae short loc_fffd29ea ; jae 0xfffd29ea
+
+loc_fffd29df: ; not directly referenced
+dec ebx
+jecxz loc_fffd29f5 ; jecxz 0xfffd29f5
+sub eax, dword [esp + 0x18]
+sbb edx, dword [esp + 0x1c]
+
+loc_fffd29ea: ; not directly referenced
+jecxz loc_fffd29f5 ; jecxz 0xfffd29f5
+sub esi, eax
+sbb edi, edx
+mov dword [ecx], esi
+mov dword [ecx + 4], edi
+
+loc_fffd29f5: ; not directly referenced
+mov eax, ebx
+xor edx, edx
+pop edi
+pop esi
+pop ebx
+ret
+
+loc_fffd29fd:
+db 0x53
+
+fcn_fffd29fe: ; not directly referenced
+push ebp
+mov ebp, esp
+mov eax, dword [ebp + 0xc]
+mov ecx, dword [ebp + 0x10]
+cpuid
+push ecx
+mov ecx, dword [ebp + 0x14]
+jecxz loc_fffd2a11 ; jecxz 0xfffd2a11
+mov dword [ecx], eax
+
+loc_fffd2a11: ; not directly referenced
+mov ecx, dword [ebp + 0x18]
+jecxz loc_fffd2a18 ; jecxz 0xfffd2a18
+mov dword [ecx], ebx
+
+loc_fffd2a18: ; not directly referenced
+mov ecx, dword [ebp + 0x20]
+jecxz loc_fffd2a1f ; jecxz 0xfffd2a1f
+mov dword [ecx], edx
+
+loc_fffd2a1f: ; not directly referenced
+mov ecx, dword [ebp + 0x1c]
+jecxz loc_fffd2a26 ; jecxz 0xfffd2a26
+pop dword [ecx]
+
+loc_fffd2a26: ; not directly referenced
+mov eax, dword [ebp + 0xc]
+leave
+pop ebx
+ret
+
+fcn_fffd2a2c: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+xor esi, esi
+push ebx
+mov ebx, eax
+sub esp, 0x1c
+mov dword [ebp - 0x1c], edx
+
+loc_fffd2a3c: ; not directly referenced
+lea eax, [esi*8 + 0x48a8]
+mov dword [ebp - 0x20], eax
+mov edx, eax
+mov eax, ebx
+call fcn_fffae548 ; call 0xfffae548
+mov edi, dword [ebp - 0x1c]
+bt edi, esi
+mov ecx, eax
+jae short loc_fffd2a61 ; jae 0xfffd2a61
+and ch, 0xcf
+or ch, 0x18
+jmp short loc_fffd2a64 ; jmp 0xfffd2a64
+
+loc_fffd2a61: ; not directly referenced
+and ch, 0xf7
+
+loc_fffd2a64: ; not directly referenced
+push edi
+mov eax, ebx
+push edi
+inc esi
+push edx
+mov edx, dword [ebp - 0x20]
+push ecx
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+cmp esi, 2
+jne short loc_fffd2a3c ; jne 0xfffd2a3c
+mov ecx, 2
+mov edx, 0x4d98
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, 1
+mov edx, 0x4800
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x4800
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+xor ecx, ecx
+mov edx, 0x4d98
+mov esi, eax
+mov eax, ebx
+and esi, 0xfffffffe
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, esi
+mov edx, 0x4800
+or ecx, 2
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 0x4800
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+xor esi, esi
+
+loc_fffd2adb: ; not directly referenced
+mov eax, dword [ebp - 0x1c]
+bt eax, esi
+jae short loc_fffd2b0a ; jae 0xfffd2b0a
+lea edi, [esi*8 + 0x48a8]
+mov eax, ebx
+mov edx, edi
+call fcn_fffae548 ; call 0xfffae548
+mov ecx, eax
+and ch, 0xf7
+mov eax, ecx
+push ecx
+push ecx
+push edx
+mov edx, edi
+push eax
+mov eax, ebx
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+
+loc_fffd2b0a: ; not directly referenced
+inc esi
+cmp esi, 2
+jne short loc_fffd2adb ; jne 0xfffd2adb
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd2b18: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, edx
+shl esi, 0xa
+push ebx
+mov ebx, eax
+lea edi, [esi + 0x41a0]
+sub esp, 0x2c
+mov edx, edi
+mov byte [ebp - 0x29], cl
+call fcn_fffae52a ; call 0xfffae52a
+mov edx, edi
+and eax, 0xfffffccc
+or eax, 0x111
+mov ecx, eax
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp + 0x10]
+lea edx, [esi + 0x41a4]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp + 0x14]
+lea edx, [esi + 0x41a8]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, dword [ebp + 0x18]
+lea edx, [esi + 0x41ac]
+mov eax, ebx
+call fcn_fffae58c ; call 0xfffae58c
+lea edx, [esi + 0x41bc]
+mov eax, ebx
+xor ecx, ecx
+call fcn_fffae58c ; call 0xfffae58c
+lea eax, [esi + 0x41c0]
+mov dword [ebp - 0x28], eax
+mov eax, dword [ebp + 8]
+mov dword [ebp - 0x20], 0
+mov dword [ebp - 0x1c], 0
+mov dword [ebp - 0x24], 0
+lea esi, [eax + 4]
+
+loc_fffd2bb0: ; not directly referenced
+mov eax, dword [ebp - 0x24]
+cmp eax, dword [ebp + 0xc]
+je loc_fffd2c4b ; je 0xfffd2c4b
+mov ecx, dword [esi - 4]
+add esi, 0xc
+movzx eax, byte [esi - 0xc]
+mov edx, ecx
+mov edi, ecx
+and edx, 0x7c
+or ah, 0x80
+shl edx, 6
+and edi, 1
+or eax, edx
+mov edx, ecx
+and edx, 2
+add edi, edi
+shr edx, 1
+and ecx, 0x380
+or edx, edi
+mov edi, dword [esi - 0xc]
+shl ecx, 0x11
+or edx, 4
+shl edx, 8
+and edi, 0x300
+shl edi, 5
+or eax, edi
+mov word [ebp - 0x20], ax
+mov eax, dword [ebp - 0x20]
+and eax, 0xf0ffffff
+or eax, ecx
+mov cl, byte [ebp - 0x29]
+mov dword [ebp - 0x20], eax
+mov eax, dword [ebp - 0x1c]
+and ah, 0xf0
+or eax, edx
+mov edx, dword [esi - 8]
+and eax, 0xfffffff0
+shl edx, cl
+not edx
+and edx, 0xf
+or eax, edx
+mov edx, dword [ebp - 0x28]
+mov dword [ebp - 0x1c], eax
+push eax
+push eax
+mov eax, ebx
+push dword [ebp - 0x1c]
+push dword [ebp - 0x20]
+call fcn_fffae7cf ; call 0xfffae7cf
+add esp, 0x10
+inc dword [ebp - 0x24]
+jmp near loc_fffd2bb0 ; jmp 0xfffd2bb0
+
+loc_fffd2c4b: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd2c53: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+mov esi, eax
+push ebx
+sub esp, 0x2c
+cmp dword [ebp + 8], 1
+je short loc_fffd2c90 ; je 0xfffd2c90
+jb short loc_fffd2c80 ; jb 0xfffd2c80
+cmp dword [ebp + 8], 2
+jne loc_fffd2d7c ; jne 0xfffd2d7c
+mov dword [ebp - 0x24], 0xa8
+mov dword [ebp - 0x20], 0x2a
+jmp short loc_fffd2c9e ; jmp 0xfffd2c9e
+
+loc_fffd2c80: ; not directly referenced
+mov dword [ebp - 0x24], 0xa4
+mov dword [ebp - 0x20], 0x29
+jmp short loc_fffd2c9e ; jmp 0xfffd2c9e
+
+loc_fffd2c90: ; not directly referenced
+mov dword [ebp - 0x24], 0xc0
+mov dword [ebp - 0x20], 0x30
+
+loc_fffd2c9e: ; not directly referenced
+lea eax, [esi + 0x381a]
+xor ebx, ebx
+mov dword [ebp - 0x28], eax
+movzx eax, dl
+mov dword [ebp - 0x30], eax
+movzx eax, cl
+mov dword [ebp - 0x34], eax
+
+loc_fffd2cb5: ; not directly referenced
+mov eax, dword [ebp - 0x30]
+bt eax, ebx
+jae loc_fffd2d67 ; jae 0xfffd2d67
+mov eax, dword [ebp - 0x28]
+movzx edi, byte [eax + 0xfce]
+mov eax, ebx
+shl eax, 0xa
+add eax, 0x4190
+mov edx, eax
+and edi, 0xf
+shl edi, 0x10
+or edi, 0xf
+mov dword [ebp - 0x2c], eax
+mov ecx, edi
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+mov edx, 1
+mov eax, esi
+call fcn_fffa834b ; call 0xfffa834b
+mov dword [ebp - 0x1c], 0
+
+loc_fffd2cff: ; not directly referenced
+mov cl, byte [ebp - 0x1c]
+mov eax, 1
+mov edx, dword [ebp - 0x28]
+shl eax, cl
+test byte [edx], al
+jne short loc_fffd2d1b ; jne 0xfffd2d1b
+
+loc_fffd2d10: ; not directly referenced
+inc dword [ebp - 0x1c]
+cmp dword [ebp - 0x1c], 4
+jne short loc_fffd2cff ; jne 0xfffd2cff
+jmp short loc_fffd2d43 ; jmp 0xfffd2d43
+
+loc_fffd2d1b: ; not directly referenced
+mov eax, dword [ebp - 0x34]
+mov edx, dword [ebp - 0x1c]
+bt eax, edx
+jae short loc_fffd2d10 ; jae 0xfffd2d10
+push eax
+mov ecx, edx
+push 1
+mov edx, ebx
+push dword [ebp - 0x24]
+mov eax, esi
+push dword [ebp - 0x20]
+call fcn_fffaa505 ; call 0xfffaa505
+add esp, 0x10
+test eax, eax
+je short loc_fffd2d10 ; je 0xfffd2d10
+jmp short loc_fffd2d81 ; jmp 0xfffd2d81
+
+loc_fffd2d43: ; not directly referenced
+cmp dword [ebp + 8], 2
+je short loc_fffd2d67 ; je 0xfffd2d67
+mov edx, 1
+mov eax, esi
+call fcn_fffa834b ; call 0xfffa834b
+mov edx, dword [ebp - 0x2c]
+and edi, 0xfff0ffff
+mov ecx, edi
+mov eax, esi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffd2d67: ; not directly referenced
+inc ebx
+add dword [ebp - 0x28], 0x13c3
+cmp ebx, 2
+jne loc_fffd2cb5 ; jne 0xfffd2cb5
+xor eax, eax
+jmp short loc_fffd2d81 ; jmp 0xfffd2d81
+
+loc_fffd2d7c: ; not directly referenced
+mov eax, 1
+
+loc_fffd2d81: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd2d89: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+push esi
+push ebx
+mov ebx, eax
+sub esp, 0x50
+mov al, byte [ebp + 8]
+push 0
+push 2
+mov byte [ebp - 0x34], al
+mov eax, dword [ebx + 0x2443]
+mov byte [ebp - 0x33], cl
+lea ecx, [ebp - 0x1a]
+push ecx
+mov dword [ebp - 0x2c], edx
+call dword [eax + 0x5c] ; ucall
+mov edx, dword [ebp - 0x2c]
+add esp, 0x10
+mov byte [ebp - 0x2c], 0x60
+movzx eax, dl
+mov edi, eax
+mov ecx, edi
+mov dword [ebp - 0x48], eax
+mov eax, 1
+shl eax, cl
+test byte [ebx + 0x381a], al
+mov byte [ebp - 0x32], al
+setne dl
+mov cl, dl
+or ecx, 2
+test byte [ebx + 0x4bdd], al
+movzx eax, al
+mov dword [ebp - 0x38], eax
+cmovne edx, ecx
+movzx eax, dl
+mov dword [ebp - 0x50], eax
+
+loc_fffd2df2: ; not directly referenced
+movzx esi, byte [ebp - 0x2c]
+xor edi, edi
+
+loc_fffd2df8: ; not directly referenced
+imul eax, edi, 0x13c3
+mov cl, byte [ebp - 0x32]
+test byte [ebx + eax + 0x381a], cl
+je short loc_fffd2e47 ; je 0xfffd2e47
+push eax
+push 0
+push esi
+push 3
+push dword [ebp - 0x38]
+push 1
+push edi
+push ebx
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 0
+push esi
+push 3
+push dword [ebp - 0x38]
+push 2
+push edi
+push ebx
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x1c
+push 0
+push esi
+push 3
+push dword [ebp - 0x38]
+push 3
+push edi
+push ebx
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffd2e47: ; not directly referenced
+inc edi
+cmp edi, 2
+jne short loc_fffd2df8 ; jne 0xfffd2df8
+mov edx, dword [ebp - 0x50]
+mov eax, ebx
+xor esi, esi
+call fcn_fffd2a2c ; call 0xfffd2a2c
+mov eax, ebx
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+mov edi, dword [ebp + 0xc]
+imul eax, dword [ebp - 0x48], 9
+mov dword [ebp - 0x4c], eax
+
+loc_fffd2e6f: ; not directly referenced
+imul eax, esi, 0x13c3
+mov dword [ebp - 0x40], eax
+mov ecx, eax
+mov al, byte [ebp - 0x32]
+test byte [ebx + ecx + 0x381a], al
+jne short loc_fffd2e90 ; jne 0xfffd2e90
+mov byte [ebp + esi - 0x1a], 0xff
+jmp near loc_fffd2f40 ; jmp 0xfffd2f40
+
+loc_fffd2e90: ; not directly referenced
+cmp byte [ebp + esi - 0x1a], 0xff
+je loc_fffd2f40 ; je 0xfffd2f40
+imul eax, esi, 0x54a
+mov byte [ebp - 0x31], 0
+lea eax, [ebx + eax + 0x196b]
+mov dword [ebp - 0x44], eax
+
+loc_fffd2eaf: ; not directly referenced
+mov al, byte [ebp - 0x31]
+cmp al, byte [ebx + 0x2488]
+jae loc_fffd2f40 ; jae 0xfffd2f40
+mov cl, byte [ebp - 0x31]
+mov edx, dword [ebp - 0x40]
+mov dword [ebp - 0x30], 1
+shl dword [ebp - 0x30], cl
+movzx eax, cl
+mov ecx, dword [ebp - 0x44]
+cmp byte [ebx + edx + 0x49ba], 0x20
+mov dword [ebp - 0x3c], eax
+mov al, byte [ecx + eax + 0x4f6]
+jne short loc_fffd2ef5 ; jne 0xfffd2ef5
+test al, 2
+je short loc_fffd2ef5 ; je 0xfffd2ef5
+mov al, byte [ebp - 0x30]
+or byte [ebp + esi - 0x1a], al
+jmp short loc_fffd2f38 ; jmp 0xfffd2f38
+
+loc_fffd2ef5: ; not directly referenced
+mov ecx, dword [ebp - 0x3c]
+mov edx, esi
+mov eax, ebx
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, ebx
+call fcn_fffae52a ; call 0xfffae52a
+mov dl, byte [ebp + esi - 0x1a]
+test byte [ebp - 0x30], dl
+jne short loc_fffd2f38 ; jne 0xfffd2f38
+movzx eax, al
+mov dword [ebp - 0x54], edx
+call fcn_fffaeba2 ; call 0xfffaeba2
+cmp al, 4
+je short loc_fffd2f38 ; je 0xfffd2f38
+mov eax, dword [ebp - 0x3c]
+mov cl, byte [ebp - 0x2c]
+mov edx, dword [ebp - 0x54]
+add eax, dword [ebp - 0x4c]
+or edx, dword [ebp - 0x30]
+mov byte [edi + eax], cl
+mov byte [esi + ebp - 0x1a], dl
+
+loc_fffd2f38: ; not directly referenced
+inc byte [ebp - 0x31]
+jmp near loc_fffd2eaf ; jmp 0xfffd2eaf
+
+loc_fffd2f40: ; not directly referenced
+inc esi
+add edi, 0x24
+cmp esi, 2
+jne loc_fffd2e6f ; jne 0xfffd2e6f
+cmp byte [ebp - 0x1a], 0xff
+jne short loc_fffd2f59 ; jne 0xfffd2f59
+cmp byte [ebp - 0x19], 0xff
+je short loc_fffd2f86 ; je 0xfffd2f86
+
+loc_fffd2f59: ; not directly referenced
+mov al, byte [ebp - 0x34]
+add byte [ebp - 0x2c], al
+test al, al
+jle short loc_fffd2f6e ; jle 0xfffd2f6e
+mov al, byte [ebp - 0x33]
+cmp byte [ebp - 0x2c], al
+seta al
+jmp short loc_fffd2f7b ; jmp 0xfffd2f7b
+
+loc_fffd2f6e: ; not directly referenced
+movzx eax, byte [ebp - 0x33]
+movsx edx, byte [ebp - 0x2c]
+cmp edx, eax
+setl al
+
+loc_fffd2f7b: ; not directly referenced
+movzx eax, al
+test eax, eax
+je loc_fffd2df2 ; je 0xfffd2df2
+
+loc_fffd2f86: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+fcn_fffd2f8e: ; not directly referenced
+push ebp
+mov ebp, esp
+push edi
+mov edi, eax
+push esi
+mov esi, ecx
+push ebx
+mov ebx, edx
+sub esp, 0x70
+mov al, byte [ebp + 8]
+push 0
+push 2
+lea edx, [ebp - 0x2c]
+mov byte [ebp - 0x53], al
+mov eax, dword [edi + 0x2443]
+mov byte [ebp - 0x52], cl
+push edx
+call dword [eax + 0x5c] ; ucall
+movzx ecx, bl
+mov eax, 1
+shl eax, cl
+add esp, 0x10
+mov byte [ebp - 0x3e], al
+movzx eax, al
+mov dword [ebp - 0x50], eax
+lea eax, [ecx + ecx*8]
+mov dword [ebp - 0x60], eax
+mov eax, esi
+movzx eax, al
+mov byte [ebp - 0x40], 0
+mov byte [ebp - 0x3d], 0x40
+mov dword [ebp - 0x64], eax
+
+loc_fffd2fe3: ; not directly referenced
+movzx esi, byte [ebp - 0x3d]
+xor ebx, ebx
+
+loc_fffd2fe9: ; not directly referenced
+imul eax, ebx, 0x13c3
+mov dl, byte [ebp - 0x3e]
+test byte [edi + eax + 0x381a], dl
+je short loc_fffd3010 ; je 0xfffd3010
+push eax
+push 0
+push esi
+push 1
+push dword [ebp - 0x50]
+push 4
+push ebx
+push edi
+call fcn_fffa9178 ; call 0xfffa9178
+add esp, 0x20
+
+loc_fffd3010: ; not directly referenced
+inc ebx
+cmp ebx, 2
+jne short loc_fffd2fe9 ; jne 0xfffd2fe9
+mov dword [ebp - 0x3c], 0
+
+loc_fffd301d: ; not directly referenced
+mov al, byte [ebp - 0x3e]
+test byte [edi + 0x381a], al
+je short loc_fffd3069 ; je 0xfffd3069
+or byte [ebp - 0x40], 1
+mov edx, 0x41a4
+cmp dword [ebp - 0x3c], 1
+mov eax, edi
+sbb ecx, ecx
+and ecx, 0xffffc000
+add ecx, 0x7000
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, 0x4000
+mov edx, 0x41a8
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+xor ecx, ecx
+mov edx, 0x41ac
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffd3069: ; not directly referenced
+mov al, byte [ebp - 0x3e]
+test byte [edi + 0x4bdd], al
+je short loc_fffd30b5 ; je 0xfffd30b5
+or byte [ebp - 0x40], 2
+mov edx, 0x45a4
+cmp dword [ebp - 0x3c], 1
+mov eax, edi
+sbb ecx, ecx
+and ecx, 0xffffc000
+add ecx, 0x7000
+call fcn_fffae58c ; call 0xfffae58c
+mov ecx, 0x4000
+mov edx, 0x45a8
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+xor ecx, ecx
+mov edx, 0x45ac
+mov eax, edi
+call fcn_fffae58c ; call 0xfffae58c
+
+loc_fffd30b5: ; not directly referenced
+movzx edx, byte [ebp - 0x40]
+mov eax, edi
+xor esi, esi
+call fcn_fffd2a2c ; call 0xfffd2a2c
+mov eax, edi
+mov edx, 0xf
+call fcn_fffa834b ; call 0xfffa834b
+mov eax, dword [ebp + 0xc]
+mov dword [ebp - 0x48], eax
+
+loc_fffd30d4: ; not directly referenced
+imul eax, esi, 0x13c3
+mov dword [ebp - 0x5c], eax
+mov ebx, eax
+mov al, byte [ebp - 0x3e]
+test byte [edi + ebx + 0x381a], al
+jne short loc_fffd30f5 ; jne 0xfffd30f5
+mov byte [ebp + esi - 0x2c], 0xff
+jmp near loc_fffd31d4 ; jmp 0xfffd31d4
+
+loc_fffd30f5: ; not directly referenced
+cmp byte [ebp + esi - 0x2c], 0xff
+je loc_fffd31d4 ; je 0xfffd31d4
+imul eax, esi, 0x54a
+lea ebx, [ebp - 0x18]
+mov byte [ebp - 0x3f], 0
+lea eax, [edi + eax + 0x196b]
+mov dword [ebp - 0x58], eax
+lea eax, [esi + esi*8]
+add eax, ebx
+mov dword [ebp - 0x4c], eax
+
+loc_fffd311f: ; not directly referenced
+mov al, byte [ebp - 0x3f]
+cmp al, byte [edi + 0x2488]
+jae loc_fffd31d4 ; jae 0xfffd31d4
+mov edx, dword [ebp - 0x5c]
+mov cl, byte [ebp - 0x3f]
+mov eax, dword [ebp - 0x58]
+mov dword [ebp - 0x44], 1
+shl dword [ebp - 0x44], cl
+cmp byte [edi + edx + 0x49ba], 0x20
+movzx ebx, cl
+mov al, byte [eax + ebx + 0x4f6]
+jne short loc_fffd3162 ; jne 0xfffd3162
+test al, 2
+je short loc_fffd3162 ; je 0xfffd3162
+mov al, byte [ebp - 0x44]
+or byte [ebp + esi - 0x2c], al
+jmp short loc_fffd31cc ; jmp 0xfffd31cc
+
+loc_fffd3162: ; not directly referenced
+mov ecx, ebx
+mov edx, esi
+mov eax, edi
+call fcn_fffa7617 ; call 0xfffa7617
+mov edx, eax
+mov eax, edi
+call fcn_fffae52a ; call 0xfffae52a
+mov cl, byte [ebp + esi - 0x2c]
+test byte [ebp - 0x44], cl
+jne short loc_fffd31cc ; jne 0xfffd31cc
+cmp dword [ebp - 0x3c], 0
+movzx edx, al
+jne short loc_fffd3191 ; jne 0xfffd3191
+mov eax, dword [ebp - 0x4c]
+mov byte [ebx + eax - 0x12], dl
+jmp short loc_fffd31cc ; jmp 0xfffd31cc
+
+loc_fffd3191: ; not directly referenced
+mov eax, dword [ebp - 0x4c]
+mov dword [ebp - 0x6c], ecx
+mov dword [ebp - 0x68], edx
+mov al, byte [ebx + eax - 0x12]
+mov byte [ebp - 0x51], al
+mov eax, edx
+call fcn_fffaeba2 ; call 0xfffaeba2
+mov edx, dword [ebp - 0x68]
+mov ecx, dword [ebp - 0x6c]
+cmp al, 4
+jne short loc_fffd31b7 ; jne 0xfffd31b7
+cmp byte [ebp - 0x51], dl
+jne short loc_fffd31cc ; jne 0xfffd31cc
+
+loc_fffd31b7: ; not directly referenced
+mov eax, dword [ebp - 0x60]
+mov edx, dword [ebp - 0x48]
+or ecx, dword [ebp - 0x44]
+add eax, ebx
+mov bl, byte [ebp - 0x3d]
+mov byte [ebp + esi - 0x2c], cl
+mov byte [edx + eax], bl
+
+loc_fffd31cc: ; not directly referenced
+inc byte [ebp - 0x3f]
+jmp near loc_fffd311f ; jmp 0xfffd311f
+
+loc_fffd31d4: ; not directly referenced
+inc esi
+add dword [ebp - 0x48], 0x24
+cmp esi, 2
+jne loc_fffd30d4 ; jne 0xfffd30d4
+inc dword [ebp - 0x3c]
+cmp dword [ebp - 0x3c], 2
+jne loc_fffd301d ; jne 0xfffd301d
+cmp byte [ebp - 0x2c], 0xff
+jne short loc_fffd31fb ; jne 0xfffd31fb
+cmp byte [ebp - 0x2b], 0xff
+je short loc_fffd3225 ; je 0xfffd3225
+
+loc_fffd31fb: ; not directly referenced
+mov al, byte [ebp - 0x53]
+add byte [ebp - 0x3d], al
+test al, al
+jle short loc_fffd3210 ; jle 0xfffd3210
+mov al, byte [ebp - 0x52]
+cmp byte [ebp - 0x3d], al
+seta al
+jmp short loc_fffd321a ; jmp 0xfffd321a
+
+loc_fffd3210: ; not directly referenced
+movsx eax, byte [ebp - 0x3d]
+cmp eax, dword [ebp - 0x64]
+setl al
+
+loc_fffd321a: ; not directly referenced
+movzx eax, al
+test eax, eax
+je loc_fffd2fe3 ; je 0xfffd2fe3
+
+loc_fffd3225: ; not directly referenced
+lea esp, [ebp - 0xc]
+pop ebx
+pop esi
+pop edi
+pop ebp
+ret
+
+loc_fffd322d:
+db 0x66
+db 0x90
+db 0x90
+
+ref_fffd3230:
+dd 0x00000801
+dd 0x01000402
+
+ref_fffd3238:
+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 0x0c000001
+dd 0x01900118
+dd 0x080d008c
+dd 0xbe028002
+dd 0x00000000
+
+ref_fffd3288:
+dd 0x4443524d
+dd 0x90906600
+
+ref_fffd3290:
+dd 0x05010400
+dd 0x07030602
+dd 0x00000008
+
+ref_fffd329c:
+dd 0xff830000
+dd 0xffe1ffc2
+dd 0x007d00fa
+dd 0x001f003e
+
+ref_fffd32ac:
+dd 0x02030304
+dd 0x02030404
+dd 0x03030405
+dd 0x03040405
+dd 0x03040405
+dd 0x02030304
+dd 0x02030404
+dd 0x03030405
+dd 0x03040405
+dd 0x03030404
+
+ref_fffd32d4:
+dd 0x05060605
+dd 0x05060605
+dd 0x06060604
+dd 0x05060607
+dd 0x05060607
+dd 0x06060607
+
+ref_fffd32ec:
+dd loc_fffa6b75
+dd loc_fffa6ab2
+dd loc_fffa6ae7
+dd loc_fffa6b47
+dd loc_fffa6a85
+dd loc_fffa6b75
+dd loc_fffa6b75
+
+ref_fffd3308:
+dd loc_fffa83ff
+dd loc_fffa840d
+dd loc_fffa841d
+dd loc_fffa850b
+dd loc_fffa8432
+dd loc_fffa843d
+dd loc_fffa844a
+dd loc_fffa847b
+dd loc_fffa8498
+
+ref_fffd332c:
+dd loc_fffa8691
+dd loc_fffa86c5
+dd loc_fffa8702
+dd loc_fffa86e1
+dd loc_fffa8691
+dd loc_fffa86c5
+dd loc_fffa86e1
+dd loc_fffa8636
+
+ref_fffd334c:
+dd 0x50f00050
+dd 0x0000f000
+dd 0x00000000
+
+ref_fffd3358:
+dd 0x50f00050
+dd 0x0000f000
+dd 0x00000000
+
+ref_fffd3364:
+dd 0x3c3c3c3c
+dd 0x283c283c
+dd 0x283c283c
+dd 0x3c3c3c3c
+dd 0x283c283c
+dd 0x283c283c
+
+ref_fffd337c:
+dd 0x3c3c3c3c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+dd 0x3c3c3c3c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+
+ref_fffd3394:
+dd 0x00780078
+dd 0x00000000
+
+ref_fffd339c:
+dd 0x003c003c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+dd 0x003c003c
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+
+ref_fffd33b4:
+dd 0x28002800
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+dd 0x28002800
+dd 0x1e3c1e3c
+dd 0x1e3c1e3c
+
+ref_fffd33cc:
+dd 0x00780078
+dd 0x00000000
+
+ref_fffd33d4:
+dd fcn_fffc3686
+dd fcn_fffc3621
+dd fcn_fffc34c9
+dd fcn_fffc33fa
+dd fcn_fffc343a
+dd fcn_fffc337c
+dd fcn_fffc35b2
+dd fcn_fffc3506
+dd fcn_fffc3343
+dd fcn_fffc32fa
+dd fcn_fffc323f
+dd fcn_fffc31bb
+dd fcn_fffac83c
+
+ref_fffd3408:
+dd fcn_fffc2f86
+dd fcn_fffaeda5
+dd fcn_fffa7852
+dd fcn_fffc2cf5
+dd fcn_fffc2912
+dd fcn_fffc2693
+dd fcn_fffc247a
+dd fcn_fffae2eb
+dd fcn_fffae11e
+dd fcn_fffadc1a
+dd fcn_fffada63
+dd fcn_fffc2b14
+dd fcn_fffad8ba
+dd fcn_fffad37a
+dd fcn_fffad193
+dd fcn_fffacfea
+dd fcn_fffadfa3
+dd fcn_fffade28
+dd fcn_fffad70d
+dd fcn_fffad560
+dd fcn_ffface9c
+dd fcn_fffacd4e
+dd fcn_fffacb8e
+dd fcn_fffac879
+
+ref_fffd3468:
+dd 0x00000000
+dd 0x00010105
+dd 0x01050100
+
+ref_fffd3474:
+dd 0x00000000
+dd 0x04000101
+dd 0x01050000
+
+ref_fffd3480:
+dd 0x01000001
+dd 0x04010101
+dd 0x01050100
+
+ref_fffd348c:
+dd 0x00000000
+dd 0x04000103
+dd 0x01070000
+
+ref_fffd3498:
+dd 0x00000000
+dd 0x04000003
+dd 0x00070000
+
+ref_fffd34a4:
+dd 0x00010000
+dd 0x04000103
+dd 0x01070001
+
+ref_fffd34b0:
+dd 0xffffffff
+
+ref_fffd34b4:
+dd 0x7fffffff
+
+ref_fffd34b8:
+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 0x10020000
+dd 0x55000e50
+dd 0x01000008
+dd 0x000ddf22
+dd 0x00000898
+dd 0x0cb73502
+dd 0x00096000
+dd 0xbcce0300
+dd 0x0a28000b
+dd 0xb0020000
+dd 0x6b000b71
+dd 0x0100000a
+dd 0x000ae62d
+dd 0x00000af0
+dd 0x0a675a02
+dd 0x000b7500
+dd 0x2c2a0100
+dd 0x0bb8000a
+dd 0x68020000
+dd 0x80000989
+dd 0x0300000c
+dd 0x00000000
+dd 0x00000000
+dd 0x90906600
+
+ref_fffd3570:
+dd 0x86186186
+dd 0x18618618
+dd 0x30c30c30
+dd 0xa28a28a2
+dd 0x8a28a28a
+dd 0x14514514
+dd 0x28a28a28
+dd 0x92492492
+dd 0x24924924
+
+ref_fffd3594:
+dd 0x00a10ca1
+dd 0x00ef0d08
+dd 0x00ad0a1e
+
+ref_fffd35a0:
+dd 0x00010000
+dd 0x02000201
+dd 0x00030900
+dd 0x7801001f
+dd 0x01007d00
+dd 0x01480140
+dd 0x5c014909
+dd 0x00200101
+dd 0x7e010077
+dd 0x0100ff00
+dd 0x017f015d
+dd 0x83018001
+dd 0x01840101
+dd 0x89010188
+dd 0x0101a701
+dd 0x01ca01ac
+dd 0x00000001
+
+ref_fffd35e4:
+dd 0x00010000
+dd 0x02000201
+dd 0x00030900
+dd 0x3c010029
+dd 0x01003f00
+dd 0x007f0075
+dd 0x91008009
+dd 0x00270100
+dd 0x4001003b
+dd 0x01007d00
+dd 0x00b300b0
+dd 0xb800b401
+dd 0x00b90100
+dd 0xdc0100d7
+dd 0x0100fa00
+
+ref_fffd3620:
+dd 0x20445053
+dd 0x90906600
+
+ref_fffd3628:
+dd 0x02010000
+dd 0x06050403
+dd 0x08080707
+dd 0x0a090909
+dd 0x00000a0a
+
+ref_fffd363c:
+dd 0x003c0000
+dd 0x48004806
+dd 0x004c0600
+dd 0x5002004c
+dd 0x04005000
+dd 0x00540054
+dd 0x58005806
+dd 0x005c0400
+dd 0x6006005c
+dd 0x06006000
+dd 0x00640064
+dd 0x60006002
+dd 0x00640700
+dd 0x68030064
+dd 0x06006800
+dd 0x0070006c
+dd 0x78007407
+dd 0x00740600
+dd 0x7c070074
+dd 0x04008c00
+dd 0x00800080
+dd 0x3c010005
+dd 0x01480601
+dd 0x4c060148
+dd 0x02014c01
+dd 0x01500150
+dd 0x54015404
+dd 0x01580601
+dd 0x5c040158
+dd 0x06015c01
+dd 0x01600160
+dd 0x64016406
+dd 0x01600201
+dd 0x64070160
+dd 0x03016401
+dd 0x01680168
+dd 0x70016c06
+dd 0x01740701
+dd 0x74060178
+dd 0x07017401
+dd 0x018c017c
+dd 0x80018004
+dd 0x02000501
+dd 0x4806023c
+dd 0x06024802
+dd 0x024c024c
+dd 0x50025002
+dd 0x02540402
+dd 0x58060254
+dd 0x04025802
+dd 0x025c025c
+dd 0x60026006
+dd 0x02640602
+dd 0x60020264
+dd 0x07026002
+dd 0x02640264
+dd 0x68026803
+dd 0x026c0602
+dd 0x74070270
+dd 0x06027802
+dd 0x02740274
+dd 0x8c027c07
+dd 0x02800402
+dd 0x00050280
+dd 0x06033c03
+dd 0x03480348
+dd 0x4c034c06
+dd 0x03500203
+dd 0x54040350
+dd 0x06035403
+dd 0x03580358
+dd 0x5c035c04
+dd 0x03600603
+dd 0x64060360
+dd 0x02036403
+dd 0x03600360
+dd 0x64036407
+dd 0x03680303
+dd 0x6c060368
+dd 0x07037003
+dd 0x03780374
+dd 0x74037406
+dd 0x037c0703
+dd 0x8004038c
+dd 0x05038003
+dd 0x043c0400
+dd 0x48044806
+dd 0x044c0604
+dd 0x5002044c
+dd 0x04045004
+dd 0x04540454
+dd 0x58045806
+dd 0x045c0404
+dd 0x6006045c
+dd 0x06046004
+dd 0x04640464
+dd 0x60046002
+dd 0x04640704
+dd 0x68030464
+dd 0x06046804
+dd 0x0470046c
+dd 0x78047407
+dd 0x04740604
+dd 0x7c070474
+dd 0x04048c04
+dd 0x04800480
+dd 0x3c050005
+dd 0x05480605
+dd 0x4c060548
+dd 0x02054c05
+dd 0x05500550
+dd 0x54055404
+dd 0x05580605
+dd 0x5c040558
+dd 0x06055c05
+dd 0x05600560
+dd 0x64056406
+dd 0x05600205
+dd 0x64070560
+dd 0x03056405
+dd 0x05680568
+dd 0x70056c06
+dd 0x05740705
+dd 0x74060578
+dd 0x07057405
+dd 0x058c057c
+dd 0x80058004
+dd 0x06000505
+dd 0x4806063c
+dd 0x06064806
+dd 0x064c064c
+dd 0x50065002
+dd 0x06540406
+dd 0x58060654
+dd 0x04065806
+dd 0x065c065c
+dd 0x60066006
+dd 0x06640606
+dd 0x60020664
+dd 0x07066006
+dd 0x06640664
+dd 0x68066803
+dd 0x066c0606
+dd 0x74070670
+dd 0x06067806
+dd 0x06740674
+dd 0x8c067c07
+dd 0x06800406
+dd 0x00050680
+dd 0x06073c07
+dd 0x07480748
+dd 0x4c074c06
+dd 0x07500207
+dd 0x54040750
+dd 0x06075407
+dd 0x07580758
+dd 0x5c075c04
+dd 0x07600607
+dd 0x64060760
+dd 0x02076407
+dd 0x07600760
+dd 0x64076407
+dd 0x07680307
+dd 0x6c060768
+dd 0x07077007
+dd 0x07780774
+dd 0x74077406
+dd 0x077c0707
+dd 0x8004078c
+dd 0x05078007
+dd 0x083c0800
+dd 0x48084806
+dd 0x084c0608
+dd 0x5002084c
+dd 0x04085008
+dd 0x08540854
+dd 0x58085806
+dd 0x085c0408
+dd 0x6006085c
+dd 0x06086008
+dd 0x08640864
+dd 0x60086002
+dd 0x08640708
+dd 0x68030864
+dd 0x06086808
+dd 0x0870086c
+dd 0x78087407
+dd 0x08740608
+dd 0x7c070874
+dd 0x04088c08
+dd 0x08800880
+dd 0x3c090005
+dd 0x09480609
+dd 0x4c060948
+dd 0x02094c09
+dd 0x09500950
+dd 0x54095404
+dd 0x09580609
+dd 0x5c040958
+dd 0x06095c09
+dd 0x09600960
+dd 0x64096406
+dd 0x09600209
+dd 0x64070960
+dd 0x03096409
+dd 0x09680968
+dd 0x70096c06
+dd 0x09740709
+dd 0x74060978
+dd 0x07097409
+dd 0x098c097c
+dd 0x80098004
+dd 0x0a000509
+dd 0x48060a3c
+dd 0x060a480a
+dd 0x0a4c0a4c
+dd 0x500a5002
+dd 0x0a54040a
+dd 0x58060a54
+dd 0x040a580a
+dd 0x0a5c0a5c
+dd 0x600a6006
+dd 0x0a64060a
+dd 0x60020a64
+dd 0x070a600a
+dd 0x0a640a64
+dd 0x680a6803
+dd 0x0a6c060a
+dd 0x74070a70
+dd 0x060a780a
+dd 0x0a740a74
+dd 0x8c0a7c07
+dd 0x0a80040a
+dd 0x00050a80
+dd 0x060b3c0b
+dd 0x0b480b48
+dd 0x4c0b4c06
+dd 0x0b50020b
+dd 0x54040b50
+dd 0x060b540b
+dd 0x0b580b58
+dd 0x5c0b5c04
+dd 0x0b60060b
+dd 0x64060b60
+dd 0x020b640b
+dd 0x0b600b60
+dd 0x640b6407
+dd 0x0b68030b
+dd 0x6c060b68
+dd 0x070b700b
+dd 0x0b780b74
+dd 0x740b7406
+dd 0x0b7c070b
+dd 0x80040b8c
+dd 0x050b800b
+dd 0x0c3c0c00
+dd 0x480c4806
+dd 0x0c4c060c
+dd 0x50020c4c
+dd 0x040c500c
+dd 0x0c540c54
+dd 0x580c5806
+dd 0x0c5c040c
+dd 0x60060c5c
+dd 0x060c600c
+dd 0x0c640c64
+dd 0x600c6002
+dd 0x0c64070c
+dd 0x68030c64
+dd 0x060c680c
+dd 0x0c700c6c
+dd 0x780c7407
+dd 0x0c74060c
+dd 0x7c070c74
+dd 0x040c8c0c
+dd 0x0c800c80
+dd 0x3c0d0005
+dd 0x0d48060d
+dd 0x4c060d48
+dd 0x020d4c0d
+dd 0x0d500d50
+dd 0x540d5404
+dd 0x0d58060d
+dd 0x5c040d58
+dd 0x060d5c0d
+dd 0x0d600d60
+dd 0x640d6406
+dd 0x0d60020d
+dd 0x64070d60
+dd 0x030d640d
+dd 0x0d680d68
+dd 0x700d6c06
+dd 0x0d74070d
+dd 0x74060d78
+dd 0x070d740d
+dd 0x0d8c0d7c
+dd 0x800d8004
+dd 0x0e00050d
+dd 0x48060e3c
+dd 0x060e480e
+dd 0x0e4c0e4c
+dd 0x500e5002
+dd 0x0e54040e
+dd 0x58060e54
+dd 0x040e580e
+dd 0x0e5c0e5c
+dd 0x600e6006
+dd 0x0e64060e
+dd 0x60020e64
+dd 0x070e600e
+dd 0x0e640e64
+dd 0x680e6803
+dd 0x0e6c060e
+dd 0x74070e70
+dd 0x060e780e
+dd 0x0e740e74
+dd 0x8c0e7c07
+dd 0x0e80040e
+dd 0x00050e80
+dd 0x060f3c0f
+dd 0x0f480f48
+dd 0x4c0f4c06
+dd 0x0f50020f
+dd 0x54040f50
+dd 0x060f540f
+dd 0x0f580f58
+dd 0x5c0f5c04
+dd 0x0f60060f
+dd 0x64060f60
+dd 0x020f640f
+dd 0x0f600f60
+dd 0x640f6407
+dd 0x0f68030f
+dd 0x6c060f68
+dd 0x070f700f
+dd 0x0f780f74
+dd 0x740f7406
+dd 0x0f7c070f
+dd 0x80040f8c
+dd 0x050f800f
+dd 0x0f840f84
+dd 0x3c100005
+dd 0x10480610
+dd 0x4c061048
+dd 0x02104c10
+dd 0x10501050
+dd 0x54105404
+dd 0x10580610
+dd 0x5c041058
+dd 0x06105c10
+dd 0x10601060
+dd 0x64106406
+dd 0x10600210
+dd 0x64071060
+dd 0x03106410
+dd 0x10681068
+dd 0x70106c06
+dd 0x10740710
+dd 0x74061078
+dd 0x07107410
+dd 0x108c107c
+dd 0x80108004
+dd 0x11000510
+dd 0x4806113c
+dd 0x06114811
+dd 0x114c114c
+dd 0x50115002
+dd 0x11540411
+dd 0x58061154
+dd 0x04115811
+dd 0x115c115c
+dd 0x60116006
+dd 0x11640611
+dd 0x60021164
+dd 0x07116011
+dd 0x11641164
+dd 0x68116803
+dd 0x116c0611
+dd 0x74071170
+dd 0x06117811
+dd 0x11741174
+dd 0x8c117c07
+dd 0x11800411
+dd 0x04051180
+dd 0x06120812
+dd 0x121c1214
+dd 0x20122006
+dd 0x13040412
+dd 0x14061308
+dd 0x06131c13
+dd 0x13201320
+dd 0x0c140404
+dd 0x15040614
+dd 0x0006150c
+dd 0x04180018
+dd 0x18101808
+dd 0x18181806
+dd 0x18200418
+dd 0x00041820
+dd 0x04190019
+dd 0x19101908
+dd 0x18191806
+dd 0x19200419
+dd 0x04041920
+dd 0x061a0c1a
+dd 0x1b0c1b04
+dd 0x1c1c1406
+dd 0x1c20061c
+dd 0x14041c20
+dd 0x061d1c1d
+dd 0x1d201d20
+dd 0x04200004
+dd 0x20080720
+dd 0xb8062008
+dd 0x022bb82b
+dd 0x36783678
+dd 0x283a0004
+dd 0x3a2c063a
+dd 0x30043a2c
+dd 0x043a343a
+dd 0x40044000
+dd 0x04400406
+dd 0x40080740
+dd 0x1006400c
+dd 0x07401440
+dd 0x40184018
+dd 0x20402005
+dd 0x40240740
+dd 0x2c064028
+dd 0x04403840
+dd 0x40ac40a4
+dd 0xcc40b404
+dd 0x40d00440
+dd 0xd40640d0
+dd 0x0440d440
+dd 0x42104210
+dd 0x24422004
+dd 0x42280642
+dd 0x8c044244
+dd 0x04429042
+dd 0x42944294
+dd 0x98429806
+dd 0x429c0442
+dd 0xa006429c
+dd 0x0742a042
+dd 0x42ac42a4
+dd 0xe842e405
+dd 0x42ec0542
+dd 0x280742fc
+dd 0x07432843
+dd 0x43744340
+dd 0x90438c05
+dd 0x44000643
+dd 0x04064404
+dd 0x07440444
+dd 0x440c4408
+dd 0x14441006
+dd 0x44180744
+dd 0x20054418
+dd 0x07442044
+dd 0x44284424
+dd 0x38442c06
+dd 0x44a40444
+dd 0xb40444ac
+dd 0x0444cc44
+dd 0x44d044d0
+dd 0xd444d406
+dd 0x46100444
+dd 0x20044610
+dd 0x06462446
+dd 0x46444628
+dd 0x90468c04
+dd 0x46940446
+dd 0x98064694
+dd 0x04469846
+dd 0x469c469c
+dd 0xa046a006
+dd 0x46a40746
+dd 0xe40546ac
+dd 0x0546e846
+dd 0x46fc46ec
+dd 0x28472807
+dd 0x47400747
+dd 0x8c054774
+dd 0x06479047
+dd 0x48c048a8
+dd 0xf448d802
+dd 0x49080248
+dd 0x6802491c
+dd 0x04496849
+dd 0x498c4980
+dd 0x444e3802
+dd 0x5000024e
+dd 0x04065000
+dd 0x07500850
+dd 0x5018500c
+dd 0x1c501c06
+dd 0x50200750
+dd 0x38065034
+dd 0x02503c50
+dd 0x50585040
+dd 0x5c505c06
+dd 0x50600250
+dd 0x64075060
+dd 0x02507c50
+dd 0x50845080
+dd 0x8c508806
+dd 0x50900250
+dd 0x98065094
+dd 0x02509c50
+dd 0x50a450a0
+dd 0xac50a806
+dd 0x50b00250
+dd 0xd00650cc
+dd 0x0250dc50
+dd 0x58805880
+dd 0x88588407
+dd 0x588c0758
+dd 0x9005588c
+dd 0x07589c58
+dd 0x58a458a4
+dd 0xdc58d006
+dd 0x58e00758
+dd 0xb80758e4
+dd 0x0759b859
+
+ref_fffd3e70:
+dd 0x02000100
+dd 0x08000400
+dd 0x20001000
+dd 0x80004000
+
+ref_fffd3e80:
+dd 0x00100000
+dd 0x00110001
+dd 0x00800081
+
+ref_fffd3e8c:
+dd 0x00010000
+dd 0x00030002
+dd 0x00050004
+dd 0x00070006
+
+ref_fffd3e9c:
+dd 0x00000000
+dd 0x00000000
+dd 0x00070000
+dd 0x03ff07ff
+dd 0x00000000
+dd 0x00000020
+dd 0x00000003
+dd 0x00000003
+dd 0x00000000
+dd 0x00010001
+dd 0x00350049
+
+ref_fffd3ec8:
+dd 0x00000401
+dd 0x00000203
+
+ref_fffd3ed0:
+dd 0x00010001
+dd 0x00000307
+
+ref_fffd3ed8:
+dd 0x00010000
+dd 0x90660000
+
+ref_fffd3ee0:
+dd loc_fffb407d
+dd loc_fffb40ab
+dd loc_fffb40e5
+dd loc_fffb415f
+dd loc_fffb415f
+dd loc_fffb415f
+dd loc_fffb415f
+dd loc_fffb415f
+dd loc_fffb415f
+dd loc_fffb415f
+dd loc_fffb4103
+dd loc_fffb4136
+
+ref_fffd3f10:
+dd loc_fffb4beb
+dd loc_fffb4bdc
+dd loc_fffb4bfa
+dd loc_fffb4c84
+dd loc_fffb4c84
+dd loc_fffb4c84
+
+ref_fffd3f28:
+dd loc_fffb52b2
+dd loc_fffb52ad
+dd loc_fffb52d3
+dd loc_fffb52c6
+dd loc_fffb530f
+dd loc_fffb52f1
+dd loc_fffb5344
+dd loc_fffb535a
+dd loc_fffb53b3
+dd loc_fffb5399
+dd loc_fffb53cc
+dd loc_fffb5414
+
+ref_fffd3f58:
+dd loc_fffb56de
+dd loc_fffb561b
+dd loc_fffb5559
+dd loc_fffb561b
+dd loc_fffb56a0
+dd loc_fffb561b
+dd loc_fffb5705
+dd loc_fffb56ef
+dd loc_fffb56a0
+dd loc_fffb553a
+
+ref_fffd3f80:
+dd loc_fffb57eb
+dd loc_fffb5802
+dd loc_fffb5819
+dd loc_fffb582d
+dd loc_fffb5841
+dd loc_fffb5858
+dd loc_fffb586f
+dd loc_fffb5883
+dd loc_fffb58be
+dd loc_fffb58d5
+dd loc_fffb592a
+dd loc_fffb599b
+dd loc_fffb59fe
+dd loc_fffb5b1f
+dd loc_fffb5b53
+
+ref_fffd3fbc:
+db 'CbAllocatePool',0x00,0x00
+
+ref_fffd3fcc:
+dd 0x00000000
+dd 0xe0566b04
+dd 0x060a0302
+
+ref_fffd3fd8:
+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_fffd4038:
+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_fffd4088:
+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_fffd5840:
+db '0000000000000000',0x00,0x00,0x00,0x00
+
+ref_fffd5854:
+db ' ',0x00,0x00,0x00,0x00
+
+ref_fffd5868:
+db '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',0x00,0x00,0x00,0x00
+
+ref_fffd5890:
+dd 0x00000001
+dd 0x00000002
+dd 0x00000004
+dd 0x00000008
+dd 0x00000010
+dd 0x00000020
+dd 0x00000040
+dd 0x00000000
+
+ref_fffd58b0:
+db ' +-#0!^',0x00
+
+ref_fffd58b8:
+dd 0x283c7800
+dd 0x9066141e
+
+ref_fffd58c0:
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000001
+dd 0x00000000
+dd 0x00000001
+
+ref_fffd58d8:
+dd 0x01010101
+dd 0x00010101
+
+ref_fffd58e0:
+dd 0xfb0af600
+dd 0x000ff105
+
+ref_fffd58e8:
+dd 0x00aaaaaa
+dd 0x00cccccc
+dd 0x00f0f0f0
+
+ref_fffd58f4:
+dd 0x00a10ca1
+dd 0x00ef0d08
+dd 0x00ad0a1e
+
+ref_fffd5900:
+dd 0x05000500
+dd 0x00000000
+dd 0x00000000
+
+ref_fffd590c:
+dd 0x08c009b0
+dd 0x00000000
+dd 0x00000000
+
+ref_fffd5918:
+dd loc_fffbf5bb
+dd loc_fffbf620
+dd loc_fffbf92d
+dd loc_fffbf92d
+dd loc_fffbf685
+dd loc_fffbf787
+dd loc_fffbf8aa
+
+ref_fffd5934:
+dd 0x00000006
+dd 0x00000002
+dd 0x00000001
+dd 0x00000000
+dd 0x00000002
+dd 0x00000001
+dd 0x00000000
+
+ref_fffd5950:
+dd 0x00000000
+dd 0x00000001
+dd 0x00000002
+dd 0x00000003
+dd 0x00000001
+dd 0x00000002
+dd 0x00000003
+
+ref_fffd596c:
+dd 0x00000000
+dd 0xfffffffa
+dd 0xfffffff4
+dd 0xffffffee
+dd 0x00000006
+dd 0x0000000c
+dd 0x00000012
+
+ref_fffd5988:
+dd loc_fffc31e7
+dd loc_fffc3222
+dd loc_fffc3219
+dd loc_fffc3210
+dd loc_fffc3207
+dd loc_fffc31fe
+dd loc_fffc31f0
+dd loc_fffc3234
+dd loc_fffc322b
+
+ref_fffd59ac:
+dd 0x00000020
+dd 0x00000040
+dd 0x00000080
+dd 0x00000100
+dd 0x00000200
+dd 0x00000400
+dd 0x00000800
+dd 0x00001000
+
+ref_fffd59cc:
+dd loc_fffc35d2
+dd loc_fffc35de
+dd loc_fffc35ef
+dd loc_fffc35fb
+dd loc_fffc3607
+
+ref_fffd59e0:
+dd loc_fffc3c31
+dd loc_fffc3d79
+dd loc_fffc3c42
+dd loc_fffc3c4a
+dd loc_fffc3c55
+dd loc_fffc3c60
+dd loc_fffc3c6b
+dd loc_fffc3c73
+dd loc_fffc3c7e
+dd loc_fffc3c8a
+dd loc_fffc3c9f
+dd loc_fffc3c92
+dd loc_fffc3cb2
+dd loc_fffc3cba
+dd loc_fffc3ca7
+dd loc_fffc3cc4
+dd loc_fffc3ccc
+dd loc_fffc3cd7
+dd loc_fffc3ce2
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3cea
+dd loc_fffc3cf3
+dd loc_fffc3cfb
+dd loc_fffc3d03
+dd loc_fffc3d0e
+dd loc_fffc3d19
+dd loc_fffc3d2d
+dd loc_fffc3d2d
+dd loc_fffc3d2d
+dd loc_fffc3d2d
+dd loc_fffc3d2d
+dd loc_fffc3d4a
+dd loc_fffc3d58
+dd loc_fffc3d6b
+dd loc_fffc3dad
+dd loc_fffc3d8c
+dd loc_fffc3d97
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3da2
+dd loc_fffc3dad
+dd loc_fffc3d66
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3dad
+dd loc_fffc3d81
+
+ref_fffd5abc:
+dd 0x04030201
+dd 0x06000500
+dd 0x00000700
+
+ref_fffd5ac8:
+dd 0x08040201
+dd 0x08040201
+dd 0x00000000
+
+ref_fffd5ad4:
+dd 0x08040201
+dd 0x00000000
+dd 0x08040201
+
+ref_fffd5ae0:
+dd loc_fffcad86
+dd loc_fffcad8a
+dd loc_fffcad8e
+dd loc_fffcada0
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadab
+dd loc_fffcadb2
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadc1
+dd loc_fffcadab
+
+ref_fffd5b20:
+dd 0x08c009b0
+dd 0x08c009b0
+dd 0x00000000
+
+ref_fffd5b2c:
+dd 0x08c009b0
+dd 0x00000000
+dd 0x90660000
+
+ref_fffd5b38:
+dd loc_fffcca6b
+dd loc_fffcca76
+dd loc_fffcca87
+dd loc_fffcca98
+dd loc_fffccaa9
+dd loc_fffccb52
+dd loc_fffccbfe
+dd loc_fffccfba
+dd loc_fffccc18
+dd loc_fffccd45
+dd loc_fffcce72
+dd loc_fffccaba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccbe1
+dd loc_fffccb52
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccfba
+dd loc_fffccbe1
+dd loc_fffccb52
+
+ref_fffd5bc0:
+dd 0x02010201
+dd 0x02010201
+dd 0x03030303
+dd 0x00000000
+
+ref_fffd5bd0:
+dd 0x040f0f0f
+dd 0x010f030f
+dd 0x0f0f0f0f
+dd 0x000f0205
+
+ref_fffd5be0:
+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_fffd5c10:
+dd fcn_fffb7458
+dd 0x0000dd1b
+dd 0xff320000
+dd fcn_fffc3896
+dd 0x0001dd1c
+dd 0xff3e0000
+dd fcn_fffc3bcc
+dd 0x0004dd1e
+dd 0xff3f0000
+dd fcn_fffa95c3
+dd 0x0005dd1f
+dd 0xff3f0000
+dd fcn_fffa97db
+dd 0x0003dd20
+dd 0xff310000
+dd fcn_fffc3b2d
+dd 0x0006dd21
+dd 0xff3f0000
+dd fcn_fffa87ee
+dd 0x0007dd22
+dd 0xff3f0000
+dd fcn_fffa2b14
+dd 0x0008dd23
+dd 0xff3f0000
+dd fcn_fffd20cb
+dd 0x0009dd24
+dd 0xff3f0000
+dd fcn_fffc82f4
+dd 0x000add26
+dd 0xff310000
+dd fcn_fffab126
+dd 0x000bdd27
+dd 0xff330000
+dd fcn_fffc9652
+dd 0x000fdd29
+dd 0xff310000
+dd fcn_fffb9c9b
+dd 0x000ddd28
+dd 0xff310000
+dd fcn_fffb1d2f
+dd 0x000edd25
+dd 0xff310000
+dd fcn_fffb28b2
+dd 0x0011dd2b
+dd 0xff310000
+dd fcn_fffbcdcd
+dd 0x0010dd2a
+dd 0xff310000
+dd fcn_fffbba04
+dd 0x0012dd2c
+dd 0xff310000
+dd fcn_fffbd7ac
+dd 0x0014dd2e
+dd 0xff310000
+dd fcn_fffbd7cc
+dd 0x0015dd2f
+dd 0xff310000
+dd fcn_fffb16ef
+dd 0x0016dd4a
+dd 0xff310000
+dd fcn_fffc40aa
+dd 0x0024dd3a
+dd 0xff310000
+dd fcn_fffaf0ee
+dd 0x0038dd3d
+dd 0xff310000
+dd fcn_fffc57e4
+dd 0x0027dd3e
+dd 0xff310000
+dd fcn_fffb947c
+dd 0x0021dd49
+dd 0xff310000
+dd fcn_fffcbd3d
+dd 0x0017dd46
+dd 0xff310000
+dd fcn_fffd07ac
+dd 0x0018dd30
+dd 0xff310000
+dd fcn_fffcbfee
+dd 0x0019dd30
+dd 0xff310000
+dd fcn_fffcc49b
+dd 0x001add32
+dd 0xff310000
+dd fcn_fffbf115
+dd 0x001cdd33
+dd 0xff310000
+dd fcn_fffcbdde
+dd 0x001ddd35
+dd 0xff310000
+dd fcn_fffcc12a
+dd 0x001bdd45
+dd 0xff310000
+dd fcn_fffbdbe7
+dd 0x001fdd37
+dd 0xff310000
+dd fcn_fffbdaf2
+dd 0x001edd36
+dd 0xff310000
+dd fcn_fffcc1ee
+dd 0x0028dd4b
+dd 0xff310000
+dd fcn_fffcc30a
+dd 0x0029dd4c
+dd 0xff310000
+dd fcn_fffb4484
+dd 0x0020dd41
+dd 0xff310000
+dd fcn_fffaf0ee
+dd 0x0038dd3d
+dd 0xff310000
+dd fcn_fffc57e4
+dd 0x0027dd3e
+dd 0xff310000
+dd fcn_fffc40aa
+dd 0x0024dd3a
+dd 0xff310000
+dd fcn_fffbdcd9
+dd 0x0025dd3b
+dd 0xff310000
+dd fcn_fffc242d
+dd 0x0026dd3c
+dd 0xff310000
+dd fcn_fffca881
+dd 0x0022dd38
+dd 0xff310000
+dd fcn_fffca8fc
+dd 0x0023dd39
+dd 0xff310000
+dd fcn_fffbd7ec
+dd 0x002fdd47
+dd 0xff310000
+dd fcn_fffced30
+dd 0x002ddd3f
+dd 0xff310000
+dd fcn_fffceafd
+dd 0x002edd40
+dd 0xff310000
+dd fcn_fffcfef1
+dd 0x0043dd58
+dd 0x01310000
+dd fcn_fffbea2f
+dd 0x0031dd44
+dd 0xff310000
+dd fcn_fffb947c
+dd 0x0021dd49
+dd 0xff310000
+dd fcn_fffa7654
+dd 0x0045dd48
+dd 0xff310000
+dd fcn_fffae645
+dd 0x0030dd42
+dd 0xff310000
+dd fcn_fffa5ce0
+dd 0x0044dd7f
+dd 0xff310000
+dd fcn_fffb5bed
+dd 0x0039dd50
+dd 0xff310000
+dd fcn_fffa5d08
+dd 0x0030dd42
+dd 0xff310000
+dd fcn_fffb847a
+dd 0x0030dd42
+dd 0xff310000
+dd fcn_fffa5cb5
+dd 0x0033dd43
+dd 0xff3e0000
+dd fcn_fffc82f4
+dd 0x000add26
+dd 0xff320000
+dd fcn_fffa5ce0
+dd 0x0044dd7f
+dd 0xff360000
+dd fcn_fffa5c93
+dd 0x0033dd43
+dd 0xff3e0000
+dd fcn_fffaf601
+dd 0x003add51
+dd 0xff3f0000
+dd fcn_fffb1ff0
+dd 0x0034dd70
+dd 0xff3c0000
+dd fcn_fffc3f08
+dd 0x0035dd71
+dd 0xff3e0000
+dd fcn_fffaf377
+dd 0x0036dd5b
+dd 0xff310000
+dd fcn_fffaad1c
+dd 0x0037dd5c
+dd 0xff330000
+dd fcn_fffae7f6
+dd 0x003bdd5d
+dd 0xff3f0000
+
+ref_fffd5f1c:
+dd 0x00030104
+dd 0x00050200
+dd 0x04000000
+dd 0x00000706
+dd 0x00000200
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x90660200
+
+ref_fffd5f40:
+dd 0x0bb80bb8
+dd 0x00000000
+db 0x00
+db 0x00
+
+ref_fffd5f4a:
+db 'Invalid PEI data version, %d != %d',0x0a,0x00
+
+ref_fffd5f6e:
+db 'MRC: S3 Resume',0x0a,0x00
+
+ref_fffd5f7e:
+db 'Initializing Policy',0x0a,0x00
+
+ref_fffd5f93:
+db 'Installing common PPI',0x0a,0x00
+
+ref_fffd5faa:
+db 'Initializing Memory',0x0a,0x00
+
+ref_fffd5fbf:
+db 'MRC: Done.',0x0a,0x00
+
+ref_fffd5fcb:
+db 'MRC: Starting...',0x0a,0x00
+
+ref_fffd5fdd:
+db '%s:%d pool cookie corrupted...',0x0a,0x00
+
+ref_fffd5ffd:
+db '%s:%d failed to allocate %d bytes...',0x0a,0x00
+
+ref_fffd6023:
+db 'hljztL',0x00
+
+ref_fffd602a:
+db '(null)',0x00,0x00,0x00,0x00
+
+ref_fffd6034:
+dd 0xe6af1f7b
+dd 0x46dafc3f
+dd 0xb4a328a8
+dd 0x8242a457
+
+ref_fffd6044:
+dd 0x00000000
+dd fcn_fffb4a3c
+
+ref_fffd604c:
+dd 0x1f4c6f90
+dd 0x48d8b06b
+dd 0xe5ba01a2
+dd 0x567dcdf1
+
+ref_fffd605c:
+dd 0xfb3f4b01
+dd 0xfb878bff
+dd 0xfc5590ff
+dd 0xfb8736ff
+dd 0x000000ff
+
+ref_fffd6070:
+dd 0x794a0deb
+dd 0x4e7bc971
+dd 0xbfd0f28a
+dd 0x9826ca3c
+
+ref_fffd6080:
+dd 0x80000010
+dd ref_fffd6034
+dd 0x00000000
+
+ref_fffd608c:
+dd fcn_fffb7600
+dd fcn_fffc9574
+dd fcn_fffb6fd2
+dd fcn_fffb6f06
+dd fcn_fffab024
+dd fcn_fffb3f19
+dd fcn_fffaafcb
+dd fcn_fffaafb4
+dd fcn_fffab02d
+dd fcn_fffb3f35
+dd fcn_fffaafe6
+dd fcn_fffaafbd
+dd fcn_fffb3d44
+dd fcn_fffb3d11
+dd fcn_fffb3d75
+dd fcn_fffb3dcd
+dd fcn_fffb3da6
+dd fcn_fffb3d2e
+dd fcn_fffb3d91
+dd fcn_fffcc4b8
+
+ref_fffd60dc:
+dd 0x98191174
+dd 0x41060b26
+dd 0x45d002af
+dd 0x2b05e851
+
+ref_fffd60ec:
+dd 0xaf4a1998
+dd 0x45454949
+dd 0xe7c14c9c
+dd 0x56e042c0
+
+ref_fffd60fc:
+dd 0x02353140
+dd 0x20373144
+dd 0x32103146
+dd 0x32163148
+dd 0x3250314c
+dd 0x76543150
+
+ref_fffd6114:
+dd 0x00003100
+dd 0x03203200
+dd 0x00003108
+dd 0x00000001
+dd 0x0000310c
+dd 0x43214321
+dd 0x00003110
+dd 0x00000001
+dd 0x00003114
+dd 0x00000001
+dd 0x00003118
+dd 0x00000001
+
+ref_fffd6144:
+dd 0x02353140
+dd 0x20373144
+dd 0x32103146
+dd 0x32163148
+dd 0x3250314c
+dd 0x76543150
+dd 0x00063158
+dd 0x55443164
+dd 0x00073168
+
+ref_fffd6168:
+dd 0x00003100
+dd 0x03203200
+dd 0x00003108
+dd 0x00000001
+dd 0x0000310c
+dd 0x43214321
+dd 0x00003110
+dd 0x00000001
+dd 0x00003118
+dd 0x00000001
+
+ref_fffd6190:
+dd 0xa6a4a2a0
+
+ref_fffd6194:
+dd 0x422b8086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x422c8086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x42388086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x42398086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00828086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00858086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00838086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00848086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00868086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00878086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00888086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00898086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x008f8086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00908086
+dd 0x02ffffff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08ae8086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08af8086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08968086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08978086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08858086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08868086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08948086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08958086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08928086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08938086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08908086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08918086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08878086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08888086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x088e8086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x088f8086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08b58086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08b68086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x08b38086
+dd 0x028002ff
+dd 0x01540003
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b38086
+dd 0x028002ff
+dd 0x01580002
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b48086
+dd 0x028002ff
+dd 0x01540003
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b48086
+dd 0x028002ff
+dd 0x01580002
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b18086
+dd 0x028002ff
+dd 0x01540003
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b18086
+dd 0x028002ff
+dd 0x01580002
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b28086
+dd 0x028002ff
+dd 0x01540003
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b28086
+dd 0x028002ff
+dd 0x01580002
+dd 0x00000003
+dd 0x00000000
+dd 0x00000000
+dd 0x08b08086
+dd 0x028002ff
+dd 0x00000001
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+dd 0x00000000
+
+ref_fffd6584:
+dd 0x50031131
+dd 0x43ef4f24
+dd 0x3773afb7
+dd 0xac0ef794
+
+ref_fffd6594:
+dd 0x80000010
+dd ref_fffd604c
+dd ref_fffd6044
+
+ref_fffd65a0:
+dd 0x433e0f9f
+dd 0x410a05ae
+dd 0x29bfc3a0
+dd 0xac25cb8e
+
+ref_fffd65b0:
+dd 0xf894643d
+dd 0x42d1c449
+dd 0xbd85a88e
+dd 0xde5bc6d8
+
+ref_fffd65c0:
+dd 0xf8d5438e
+dd 0x481d26e1
+dd 0xd6303cb6
+dd 0x20a4f4ef
+
+ref_fffd65d0:
+dd 0x4c10d934
+dd 0x45a438e6
+dd 0x792a249a
+dd 0x7fcb3db9
+
+ref_fffd65e0:
+dd 0x80000010
+dd ref_fffd6070
+dd ref_fffd605c
+
+ref_fffd65ec:
+dd 0x3d0e663a
+dd 0x4489dc72
+dd 0x9ee4c587
+dd 0x52a473e7
+
+ref_fffd65fc:
+dd 0x3e14d361
+dd 0x42e4c7d7
+dd 0xebb907ae
+dd 0x2aed9648
+
+ref_fffd660c:
+dd 0x87f22dcb
+dd 0x41057304
+dd 0x71317cbb
+dd 0x3bc2cc43
+
+ref_fffd661c:
+dd 0x573eaf99
+dd 0x46b5f445
+dd 0x4abcd5a5
+dd 0xf3983593
+
+ref_fffd662c:
+dd 0x9ca93627
+dd 0x4324b65b
+dd 0xb4c002a2
+dd 0x43457661
+
+ref_fffd663c:
+dd 0x17865dc0
+dd 0x4da80b8b
+dd 0x467c428b
+dd 0x4dca5cb8
+
+ref_fffd664c:
+dd 0xf38d1338
+dd 0x4fb6af7a
+dd 0x9c1adb91
+dd 0x0d578321
+
+ref_fffd665c:
+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_fffd668c:
+dd 0x1e94f097
+dd 0x40895acd
+dd 0xa5b9e3b2
+dd 0x0ca779c8