Function at 0x10016ef0
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x668
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, eax
xor eax, eax
mov word [esp + 0x18], ax
mov dword [esp + 0x30], eax
mov word [esp + 0x16], ax
mov dword [esp + 0x3c], eax
mov word [esp + 0x14], ax
mov ecx, dword [esp + 0x67c]
mov word [esp + 0x12], ax
mov esi, 0x10033b38
lea edi, [ebp + 0x6cc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x110]
dec eax
mov ecx, 9
mov dword [esp + 0x50], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x67c]
lea eax, [esp + 0x420]
mov dword [esp + 0x28], 2
mov dword [ecx + 0x108], 1
mov dword [eax], 0xffff
add eax, 0x18
lea ecx, [esp + 0x678]
cmp eax, ecx
jb 0x10016f72
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x100]
push eax
mov dword [esp + 0x24], 8
push ecx
push 0xffffffffffffffff
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
mov eax, 0x4949
cmp word [esp + 0x100], ax
je 0x10016fe2
mov eax, 0x4d4d
cmp word [esp + 0x100], ax
jne 0x100198ca
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10016ffd
mov eax, dword [esp + 0x104]
mov dword [esp + 0x54], eax
jmp 0x10017034
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x104]
mov al, byte [esp + 0x106]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x105]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x107]
or ecx, eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x104]
push edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 3
sub dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
push eax
push ecx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x20]
add dword [esp + 0x4c], eax
mov eax, 2
lea edx, [esp + 0x100]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
push ecx
push 0xffffffffffffffff
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
cmp dword [esp + 0x1c], 0x4949
jne 0x100170cc
mov ax, word [esp + 0x100]
jmp 0x100170e5
movzx ax, byte [esp + 0x100]
shl ax, 8
movzx cx, byte [esp + 0x101]
or ax, cx
add dword [esp + 0x4c], 2
mov word [esp + 0x1a], ax
lea ebx, [esp + 0x102]
cmp dword [esp + 0x50], 0
jle 0x10017127
lea eax, [esp + 0x1a]
lea ecx, [esp + 0x4c]
mov edx, dword [esp + 0x1c]
push eax
lea eax, [esp + 0x54]
push ecx
push edx
push eax
call fcn.10019ba0
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x67c]
sub dword [ecx + 0x110], eax
xor eax, eax
mov dword [ebp + 0x5ec], 0xffffffff
mov word [esp + 0x10], ax
mov dword [esp + 0x34], eax
mov dword [ebp + 0x670], 0xffffffff
mov dword [ebp + 0x67c], 0xffffffff
mov dword [ebp + 0x6a0], 0xffffffff
mov dword [ebp + 0x6ac], 0xffffffff
mov dword [ebp + 0x6b8], 0xffffffff
mov dword [esp + 0x20], 0xc
cmp word [esp + 0x1a], ax
jle 0x100183ce
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x100]
push eax
mov dword [esp + 0x2c], 2
push ecx
push 0xffffffffffffffff
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100184a3
cmp dword [esp + 0x1c], 0x4949
jne 0x100171d8
mov si, word [esp + 0x100]
jmp 0x100171f1
movzx si, byte [esp + 0x100]
shl si, 8
movzx ax, byte [esp + 0x101]
or si, ax
cmp dword [esp + 0x1c], 0x4949
jne 0x10017205
mov ax, word [esp + 0x102]
jmp 0x1001721e
movzx ax, byte [esp + 0x102]
shl ax, 8
movzx cx, byte [esp + 0x103]
or ax, cx
cmp dword [esp + 0x1c], 0x4949
jne 0x10017235
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x24], ecx
jmp 0x1001726c
xor edx, edx
xor ecx, ecx
mov dl, byte [esp + 0x104]
mov cl, byte [esp + 0x106]
shl edx, 0x10
or edx, ecx
xor ecx, ecx
shl edx, 8
mov cl, byte [esp + 0x105]
shl ecx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x107]
or edx, ecx
mov dword [esp + 0x24], edx
cmp si, 0x111
lea ebx, [esp + 0x108]
jne 0x1001727e
mov si, 0x144
cmp si, 0x117
jne 0x10017289
mov si, 0x145
movsx ecx, word [esp + 0x16]
lea edx, [ecx + ecx*2]
cmp word [ebp + edx*4 + 0x5c4], si
jne 0x100172a7
mov cx, word [esp + 0x16]
mov word [esp + 0x18], cx
jmp 0x100172cb
xor edx, edx
lea ecx, [ebp + 0x5c4]
cmp word [ecx], 0xffff
je 0x100172cb
cmp word [ecx], si
je 0x100172c6
add ecx, 0xc
inc edx
cmp word [ecx], 0xffff
jne 0x100172b5
jmp 0x100172cb
mov word [esp + 0x18], dx
movsx ecx, word [esp + 0x18]
lea edi, [ecx + ecx*2]
cmp word [ebp + edi*4 + 0x5c4], si
lea edx, [ebp + edi*4]
jne 0x10017302
mov ecx, dword [edx + 0x5c8]
cmp ecx, 0xffffffff
jne 0x100172f8
mov ecx, dword [esp + 0x24]
mov dword [edx + 0x5c8], ecx
jmp 0x10017302
cmp dword [esp + 0x24], ecx
jne 0x100184b4
movsx ecx, si
cmp ecx, 0x111
jg 0x10017329
je case.0x10017370.286
sub ecx, 0xfe
cmp ecx, 8
ja case.0x10017370.300
jmp dword [ecx*4 + 0x100198dc]
cmp ecx, 0x115
jg 0x10017348
je 0x1001778e
cmp ecx, 0x112
je 0x10017716
jmp case.0x10017370.300
sub ecx, 0x116
cmp ecx, 0xfe
ja case.0x10017370.300
mov dword [esp + 0x54], 0
mov cl, byte [ecx + 0x1001995c]
mov byte [esp + 0x54], cl
mov ecx, dword [esp + 0x54]
jmp dword [ecx*4 + 0x10019900]
lea ebx, [esp + 0x10c]
jmp case.0x10017370.296
cmp ax, 3
jne 0x100173d1
cmp dword [esp + 0x1c], 0x4949
jne 0x100173a2
mov ecx, dword [esp + 0x108]
and ecx, 0xffff
jmp 0x100173b9
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x109]
shl ecx, 8
or ecx, eax
movzx eax, cx
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
mov dword [ecx], eax
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x100173e4
mov ecx, dword [esp + 0x108]
jmp 0x10017417
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x10a]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x109]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x10b]
or ecx, eax
movzx eax, cx
lea ebx, [esp + 0x10c]
mov ecx, dword [esp + 0x67c]
mov dword [ecx], eax
jmp case.0x10017370.296
cmp ax, 3
jne 0x1001746d
cmp dword [esp + 0x1c], 0x4949
jne 0x1001744d
mov eax, dword [esp + 0x108]
and eax, 0xffff
jmp 0x10017464
xor eax, eax
xor ecx, ecx
mov al, byte [esp + 0x108]
mov cl, byte [esp + 0x109]
shl eax, 8
or eax, ecx
lea ebx, [esp + 0x10a]
jmp 0x100174ba
cmp dword [esp + 0x1c], 0x4949
jne 0x10017480
mov eax, dword [esp + 0x108]
jmp 0x100174b3
xor eax, eax
xor ecx, ecx
mov al, byte [esp + 0x108]
mov cl, byte [esp + 0x10a]
shl eax, 0x10
or eax, ecx
xor ecx, ecx
shl eax, 8
mov cl, byte [esp + 0x109]
shl ecx, 0x10
or eax, ecx
xor ecx, ecx
mov cl, byte [esp + 0x10b]
or eax, ecx
lea ebx, [esp + 0x10c]
movzx eax, ax
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 4]
add ecx, 4
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x130], eax
jmp case.0x10017370.296
add edx, 0x5c8
cmp dword [edx], 0xffffffff
jne 0x100174f0
mov ecx, dword [esp + 0x24]
mov dword [edx], ecx
mov edx, dword [edx]
mov ecx, dword [esp + 0x67c]
movsx ebx, word [esp + 0x10]
mov dword [ecx + 0xe4], edx
lea esi, [ebx + ebx*2]
cmp dword [esp + 0x1c], 0x4949
mov word [esp + esi*8 + 0x428], ax
lea edx, [esi*8]
mov ecx, dword [esp + 0x24]
mov dword [esp + edx + 0x42c], ecx
mov eax, dword [esp + 0x108]
mov dword [esp + edx + 0x430], eax
je 0x1001756c
xor eax, eax
xor ecx, ecx
mov al, byte [esp + 0x108]
mov cl, byte [esp + 0x10a]
shl eax, 0x10
or eax, ecx
xor ecx, ecx
shl eax, 8
mov cl, byte [esp + 0x109]
shl ecx, 0x10
or eax, ecx
xor ecx, ecx
mov cl, byte [esp + 0x10b]
or eax, ecx
lea ebx, [esp + 0x10c]
mov dword [esp + edx + 0x420], eax
mov word [esp + edx + 0x424], 0x102
jmp 0x100183b1
cmp dword [esp + 0x1c], 0x4949
jne 0x100175a2
mov ecx, dword [esp + 0x108]
and ecx, 0xffff
jmp 0x100175b9
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x109]
shl ecx, 8
or ecx, eax
lea ebx, [esp + 0x10a]
cmp ecx, 6
je case.0x10017370.296
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
cmp dword [esp + 0x1c], 0x4949
jne 0x100175ed
mov cx, word [esp + 0x108]
jmp 0x10017606
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
movsx eax, cx
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
movsx eax, word [eax*2 + 0x1002d040]
mov dword [ecx + 0x18], eax
cmp eax, 0xffffffff
jne case.0x10017370.296
mov dword [esp + 0x44], 1
jmp case.0x10017370.296
mov ecx, dword [esp + 0x24]
mov dword [edx + 0x5c8], ecx
movsx edx, word [esp + 0x10]
cmp ax, 3
lea ebx, [edx + edx*2]
mov word [esp + ebx*8 + 0x428], ax
lea edx, [ebx*8]
mov dword [esp + ebx*8 + 0x42c], ecx
mov ebx, dword [esp + 0x108]
mov dword [esp + edx + 0x430], ebx
jne 0x100176b3
cmp dword [esp + 0x1c], 0x4949
jne 0x1001768c
mov eax, dword [esp + 0x108]
and eax, 0xffff
jmp 0x100176a3
xor eax, eax
xor ecx, ecx
mov al, byte [esp + 0x108]
mov cl, byte [esp + 0x109]
shl eax, 8
or eax, ecx
lea ebx, [esp + 0x10a]
mov dword [esp + edx + 0x420], eax
jmp 0x10017707
cmp dword [esp + 0x1c], 0x4949
jne 0x100176c6
mov eax, dword [esp + 0x108]
jmp 0x100176f9
xor eax, eax
xor ecx, ecx
mov al, byte [esp + 0x108]
mov cl, byte [esp + 0x10a]
shl eax, 0x10
or eax, ecx
xor ecx, ecx
shl eax, 8
mov cl, byte [esp + 0x109]
shl ecx, 0x10
or eax, ecx
xor ecx, ecx
mov cl, byte [esp + 0x10b]
or eax, ecx
lea ebx, [esp + 0x10c]
mov dword [esp + edx + 0x420], eax
mov word [esp + edx + 0x424], 0x144
jmp 0x100183b1
cmp dword [esp + 0x1c], 0x4949
jne 0x1001772a
mov cx, word [esp + 0x108]
jmp 0x10017743
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
cmp cx, 1
lea ebx, [esp + 0x10a]
je 0x10017778
cmp cx, 2
je 0x10017778
cmp cx, 5
je 0x10017778
cmp cx, 6
je 0x10017778
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x108], 0
jmp case.0x10017370.296
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x108], 1
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x100177a2
mov cx, word [esp + 0x108]
jmp 0x100177bb
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
movsx eax, cx
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
movsx edx, word [eax*2 + 0x1002d050]
mov dword [ecx + 0xa0], edx
cmp edx, 0xffffffff
je 0x100184c4
mov dword [ebp + 0x5ec], eax
mov dword [ebp + 0x6a0], eax
mov dword [ebp + 0x6b8], eax
mov dword [ebp + 0x6ac], eax
mov dword [ecx + 0xe4], eax
jmp case.0x10017370.296
cmp ax, 3
jne 0x10017842
cmp dword [esp + 0x1c], 0x4949
jne 0x10017820
mov cx, word [esp + 0x108]
jmp 0x10017839
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
lea ebx, [esp + 0x10a]
jmp 0x1001788f
cmp dword [esp + 0x1c], 0x4949
jne 0x10017855
mov ecx, dword [esp + 0x108]
jmp 0x10017888
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x10a]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x109]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x10b]
or ecx, eax
lea ebx, [esp + 0x10c]
movzx eax, cx
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx]
mov dword [ecx + 8], eax
jmp case.0x10017370.296
mov ecx, dword [esp + 0x24]
mov dword [edx + 0x5c8], ecx
movsx edx, word [esp + 0x10]
cmp ax, 3
lea ebx, [edx + edx*2]
mov word [esp + ebx*8 + 0x428], ax
lea edx, [ebx*8]
mov dword [esp + ebx*8 + 0x42c], ecx
mov ebx, dword [esp + 0x108]
mov dword [esp + edx + 0x430], ebx
jne 0x10017928
cmp dword [esp + 0x1c], 0x4949
jne 0x10017901
mov eax, dword [esp + 0x108]
and eax, 0xffff
jmp 0x10017918
xor eax, eax
xor ecx, ecx
mov al, byte [esp + 0x108]
mov cl, byte [esp + 0x109]
shl eax, 8
or eax, ecx
lea ebx, [esp + 0x10a]
mov dword [esp + edx + 0x420], eax
jmp 0x10017983
cmp dword [esp + 0x1c], 0x4949
jne 0x10017942
mov eax, dword [esp + 0x108]
mov dword [esp + edx + 0x420], eax
jmp 0x1001797c
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x10a]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x109]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x10b]
or ecx, eax
mov dword [esp + edx + 0x420], ecx
lea ebx, [esp + 0x10c]
mov word [esp + edx + 0x424], 0x145
jmp 0x100183b1
cmp dword [esp + 0x1c], 0x4949
jne 0x100179b4
movsx edx, word [esp + 0x10]
mov ecx, dword [esp + 0x108]
lea ebx, [edx + edx*2]
mov dword [esp + ebx*8 + 0x420], ecx
jmp 0x10017a1c
xor edx, edx
mov cl, byte [esp + 0x10a]
mov dword [esp + 0x54], 0
mov dl, byte [esp + 0x108]
mov byte [esp + 0x54], cl
shl edx, 0x10
mov cl, byte [esp + 0x109]
or edx, dword [esp + 0x54]
mov bl, byte [esp + 0x10b]
mov dword [esp + 0x54], 0
shl edx, 8
mov byte [esp + 0x54], cl
shl dword [esp + 0x54], 0x10
movsx ecx, word [esp + 0x10]
or edx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov byte [esp + 0x54], bl
lea ebx, [ecx + ecx*2]
or edx, dword [esp + 0x54]
mov dword [esp + ebx*8 + 0x420], edx
movsx ecx, word [esp + 0x10]
lea ebx, [esp + 0x10c]
lea esi, [ecx + ecx*2]
mov word [esp + esi*8 + 0x428], ax
mov ecx, dword [esp + 0x24]
mov dword [esp + esi*8 + 0x42c], ecx
lea edx, [esi*8]
mov word [esp + edx + 0x424], 0x11a
jmp 0x100183b1
cmp dword [esp + 0x1c], 0x4949
jne 0x10017a76
movsx edx, word [esp + 0x10]
mov ecx, dword [esp + 0x108]
lea ebx, [edx + edx*2]
mov dword [esp + ebx*8 + 0x420], ecx
jmp 0x10017ade
xor edx, edx
mov cl, byte [esp + 0x10a]
mov dword [esp + 0x54], 0
mov dl, byte [esp + 0x108]
mov byte [esp + 0x54], cl
shl edx, 0x10
mov cl, byte [esp + 0x109]
or edx, dword [esp + 0x54]
mov bl, byte [esp + 0x10b]
mov dword [esp + 0x54], 0
shl edx, 8
mov byte [esp + 0x54], cl
shl dword [esp + 0x54], 0x10
movsx ecx, word [esp + 0x10]
or edx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov byte [esp + 0x54], bl
lea ebx, [ecx + ecx*2]
or edx, dword [esp + 0x54]
mov dword [esp + ebx*8 + 0x420], edx
movsx ecx, word [esp + 0x10]
lea ebx, [esp + 0x10c]
lea esi, [ecx + ecx*2]
mov word [esp + esi*8 + 0x428], ax
mov ecx, dword [esp + 0x24]
mov dword [esp + esi*8 + 0x42c], ecx
lea edx, [esi*8]
mov word [esp + edx + 0x424], 0x11b
jmp 0x100183b1
cmp dword [esp + 0x1c], 0x4949
jne 0x10017b2a
mov cx, word [esp + 0x108]
jmp 0x10017b43
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
cmp cx, 1
lea ebx, [esp + 0x10a]
je case.0x10017370.296
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
cmp dword [esp + 0x1c], 0x4949
jne 0x10017b78
mov cx, word [esp + 0x108]
jmp 0x10017b91
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
movzx eax, cx
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
movsx edx, word [eax*2 + 0x1002d060]
mov dword [ecx + 0x78], edx
jmp case.0x10017370.296
cmp ax, 3
jne 0x10017bfe
cmp dword [esp + 0x1c], 0x4949
jne 0x10017bcc
mov cx, word [esp + 0x108]
jmp 0x10017be5
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
movzx eax, cx
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 8], eax
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x10017c11
mov ecx, dword [esp + 0x108]
jmp 0x10017c44
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x10a]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x109]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x10b]
or ecx, eax
movzx eax, cx
lea ebx, [esp + 0x10c]
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 8], eax
jmp case.0x10017370.296
cmp ax, 3
jne 0x10017cd7
cmp dword [esp + 0x1c], 0x4949
jne 0x10017c77
mov si, word [esp + 0x108]
jmp 0x10017c90
movzx si, byte [esp + 0x108]
shl si, 8
movzx ax, byte [esp + 0x109]
or si, ax
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx]
cmp dword [ecx + 8], eax
jae 0x10017cc5
mov eax, dword [ecx + 0xc]
cmp dword [ecx + 4], eax
jbe 0x10017cc5
movsx eax, si
cdq
xor eax, edx
sub eax, edx
and eax, 7
xor eax, edx
sub eax, edx
test ax, ax
jne 0x100184d4
mov ecx, dword [esp + 0x67c]
movzx eax, si
mov dword [ecx + 0xc], eax
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x10017cee
mov eax, dword [esp + 0x108]
mov dword [esp + 0x54], eax
jmp 0x10017d25
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x10a]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x109]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x10b]
or ecx, eax
mov dword [esp + 0x54], ecx
lea ebx, [esp + 0x10c]
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx]
cmp dword [ecx + 8], eax
jae 0x10017d58
mov eax, dword [ecx + 0xc]
cmp dword [ecx + 4], eax
jbe 0x10017d58
mov eax, dword [esp + 0x54]
cdq
xor eax, edx
sub eax, edx
and eax, 7
xor eax, edx
sub eax, edx
jne 0x100184e4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x67c]
and eax, 0xffff
mov dword [ecx + 0xc], eax
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x10017d84
mov cx, word [esp + 0x108]
jmp 0x10017d9d
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
cmp cx, 1
lea ebx, [esp + 0x10a]
je case.0x10017370.296
test cx, cx
je case.0x10017370.296
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov dword [esp + 0x48], 1
cmp ax, 3
jne 0x10017e15
cmp dword [esp + 0x1c], 0x4949
jne 0x10017de9
mov cx, word [esp + 0x108]
jmp 0x10017e02
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
movsx eax, cx
lea ebx, [esp + 0x10a]
mov dword [esp + 0x38], eax
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x10017e28
mov ecx, dword [esp + 0x108]
jmp 0x10017e5b
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x108]
mov al, byte [esp + 0x10a]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x109]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x10b]
or ecx, eax
lea ebx, [esp + 0x10c]
mov dword [esp + 0x38], ecx
jmp case.0x10017370.296
cmp ax, 3
jne 0x10017e7d
lea ebx, [esp + 0x10a]
jmp case.0x10017370.296
lea ebx, [esp + 0x10c]
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x10017e9d
mov cx, word [esp + 0x108]
jmp 0x10017eb6
movzx cx, byte [esp + 0x108]
shl cx, 8
movzx ax, byte [esp + 0x109]
or cx, ax
movsx eax, cx
lea ebx, [esp + 0x10a]
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x10], eax
jmp case.0x10017370.296
lea esi, [edx + 0x5c8]
cmp dword [esi], 0xffffffff
jne 0x10017ee0
mov ecx, dword [esp + 0x24]
mov dword [esi], ecx
cmp dword [esp + 0x1c], 0x4949
jne 0x10017ef3
mov ecx, dword [esp + 0x108]
jmp 0x10017f6e
mov cl, byte [esp + 0x108]
mov bl, byte [esp + 0x10a]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x54], 0
mov byte [esp + 0x2c], cl
mov byte [esp + 0x54], bl
shl dword [esp + 0x2c], 0x10
mov ecx, dword [esp + 0x2c]
mov bl, byte [esp + 0x109]
or ecx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x54], bl
shl dword [esp + 0x2c], 8
mov ecx, dword [esp + 0x2c]
mov bl, byte [esp + 0x10b]
shl dword [esp + 0x54], 0x10
or ecx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x54], bl
or ecx, dword [esp + 0x54]
mov dword [esp + 0x2c], ecx
movsx esi, word [esp + 0x10]
lea ebx, [esi + esi*2]
mov dword [esp + ebx*8 + 0x420], ecx
lea ebx, [esp + 0x10c]
movsx ecx, word [esp + 0x10]
lea edi, [ecx + ecx*2]
mov ecx, dword [esp + 0x24]
mov word [esp + edi*8 + 0x428], ax
lea esi, [edi*8]
mov dword [esp + edi*8 + 0x42c], ecx
mov ax, word [edx + 0x5c4]
mov word [esp + esi + 0x424], ax
jmp 0x100183b1
add edx, 0x5c8
cmp dword [edx], 0xffffffff
jne 0x10017fcb
mov ecx, dword [esp + 0x24]
mov dword [edx], ecx
cmp dword [esp + 0x1c], 0x4949
jne 0x10017fed
movsx edx, word [esp + 0x10]
mov ecx, dword [esp + 0x108]
lea ebx, [edx + edx*2]
mov dword [esp + ebx*8 + 0x420], ecx
jmp 0x10018055
xor edx, edx
mov cl, byte [esp + 0x10a]
mov dword [esp + 0x54], 0
mov dl, byte [esp + 0x108]
mov byte [esp + 0x54], cl
shl edx, 0x10
mov cl, byte [esp + 0x109]
or edx, dword [esp + 0x54]
mov bl, byte [esp + 0x10b]
mov dword [esp + 0x54], 0
shl edx, 8
mov byte [esp + 0x54], cl
shl dword [esp + 0x54], 0x10
movsx ecx, word [esp + 0x10]
or edx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov byte [esp + 0x54], bl
lea ebx, [ecx + ecx*2]
or edx, dword [esp + 0x54]
mov dword [esp + ebx*8 + 0x420], edx
movsx ecx, word [esp + 0x10]
lea ebx, [esp + 0x10c]
lea esi, [ecx + ecx*2]
mov word [esp + esi*8 + 0x428], ax
mov ecx, dword [esp + 0x24]
mov dword [esp + esi*8 + 0x42c], ecx
lea edx, [esi*8]
mov word [esp + edx + 0x424], 0x208
jmp 0x100183b1
add edx, 0x5c8
cmp dword [edx], 0xffffffff
jne 0x1001809e
mov ecx, dword [esp + 0x24]
mov dword [edx], ecx
cmp dword [esp + 0x1c], 0x4949
jne 0x100180c0
movsx edx, word [esp + 0x10]
mov ecx, dword [esp + 0x108]
lea ebx, [edx + edx*2]
mov dword [esp + ebx*8 + 0x420], ecx
jmp 0x10018128
xor edx, edx
mov cl, byte [esp + 0x10a]
mov dword [esp + 0x54], 0
mov dl, byte [esp + 0x108]
mov byte [esp + 0x54], cl
shl edx, 0x10
mov cl, byte [esp + 0x109]
or edx, dword [esp + 0x54]
mov bl, byte [esp + 0x10b]
mov dword [esp + 0x54], 0
shl edx, 8
mov byte [esp + 0x54], cl
shl dword [esp + 0x54], 0x10
movsx ecx, word [esp + 0x10]
or edx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov byte [esp + 0x54], bl
lea ebx, [ecx + ecx*2]
or edx, dword [esp + 0x54]
mov dword [esp + ebx*8 + 0x420], edx
movsx ecx, word [esp + 0x10]
lea ebx, [esp + 0x10c]
lea esi, [ecx + ecx*2]
mov word [esp + esi*8 + 0x428], ax
mov ecx, dword [esp + 0x24]
mov dword [esp + esi*8 + 0x42c], ecx
lea edx, [esi*8]
mov word [esp + edx + 0x424], 0x209
jmp 0x100183b1
mov dword [esp + 0x3c], 1
jmp case.0x10017370.296
cmp ax, 3
jne 0x10018514
cmp dword [esp + 0x24], 2
jne 0x10018514
cmp dword [esp + 0x1c], 0x4949
jne 0x10018196
mov ax, word [esp + 0x108]
jmp 0x100181af
movzx ax, byte [esp + 0x108]
shl ax, 8
movzx cx, byte [esp + 0x109]
or ax, cx
cmp ax, 1
je 0x100181c5
cmp ax, 2
je 0x100181c5
cmp ax, 4
jne 0x100184f4
cmp dword [esp + 0x1c], 0x4949
mov ecx, dword [esp + 0x67c]
movsx eax, ax
mov dword [ecx + 0x20], 1
mov dword [ecx + 0x24], 1
mov dword [ecx + 0x1c], eax
jne 0x100181f4
mov cx, word [esp + 0x10a]
jmp 0x1001820d
movzx cx, byte [esp + 0x10a]
shl cx, 8
movzx ax, byte [esp + 0x10b]
or cx, ax
cmp cx, 1
lea ebx, [esp + 0x10c]
je 0x1001822a
cmp cx, 2
je 0x1001822a
cmp cx, 4
jne 0x10018504
movsx eax, cx
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x30], 1
mov dword [ecx + 0x34], 1
mov dword [ecx + 0x2c], eax
jmp case.0x10017370.296
cmp dword [esp + 0x1c], 0x4949
jne 0x1001825e
mov dx, word [esp + 0x108]
jmp 0x10018277
movzx dx, byte [esp + 0x108]
shl dx, 8
movzx cx, byte [esp + 0x109]
or dx, cx
cmp ax, 3
lea ebx, [esp + 0x10a]
jne 0x10018295
cmp dword [esp + 0x24], 1
jne 0x10018295
cmp dx, 2
je case.0x10017370.296
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
cmp ax, 4
je 0x100182b5
cmp ax, 5
jne 0x10018524
cmp dword [esp + 0x24], 6
jne 0x10018524
mov word [ebp + 0x6e6], ax
cmp ax, 4
jne 0x100182f4
cmp dword [esp + 0x3c], 0
je 0x100182f4
mov ecx, dword [esp + 0x67c]
mov dword [esp + 0x30], 1
cmp dword [ecx + 0x108], 1
sbb edx, edx
neg edx
mov dword [ecx + 0x108], edx
cmp dword [esp + 0x1c], 0x4949
jne 0x10018316
movsx edx, word [esp + 0x10]
mov ecx, dword [esp + 0x108]
lea ebx, [edx + edx*2]
mov dword [esp + ebx*8 + 0x420], ecx
jmp 0x1001837e
xor edx, edx
mov cl, byte [esp + 0x10a]
mov dword [esp + 0x54], 0
mov dl, byte [esp + 0x108]
mov byte [esp + 0x54], cl
shl edx, 0x10
mov cl, byte [esp + 0x109]
or edx, dword [esp + 0x54]
mov bl, byte [esp + 0x10b]
mov dword [esp + 0x54], 0
shl edx, 8
mov byte [esp + 0x54], cl
shl dword [esp + 0x54], 0x10
movsx ecx, word [esp + 0x10]
or edx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov byte [esp + 0x54], bl
lea ebx, [ecx + ecx*2]
or edx, dword [esp + 0x54]
mov dword [esp + ebx*8 + 0x420], edx
movsx ecx, word [esp + 0x10]
lea ebx, [esp + 0x10c]
lea esi, [ecx + ecx*2]
mov word [esp + esi*8 + 0x428], ax
mov ecx, dword [esp + 0x24]
mov dword [esp + esi*8 + 0x42c], ecx
lea edx, [esi*8]
mov word [esp + edx + 0x424], 0x214
inc word [esp + 0x10]
inc word [esp + 0x16]
movsx eax, word [esp + 0x1a]
inc dword [esp + 0x34]
cmp eax, dword [esp + 0x34]
jg 0x10017192
movsx eax, word [esp + 0x1a]
movsx ecx, word [esp + 0x10]
lea eax, [eax + eax*2]
push 0x10019b80
shl eax, 2
push 0x18
lea edx, [esp + 0x428]
push ecx
add dword [esp + 0x58], eax
push edx
call fcn.100267c8
add esp, 0x10
mov eax, dword [ebp + 0x67c]
cmp eax, 0xffffffff
je 0x10018444
movzx eax, ax
push eax
call fcn.10004fb0
add esp, 4
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
xor eax, eax
mov ecx, dword [esp + 0x67c]
mov ax, word [ebp + 0x67c]
mov dword [ecx + 0x74], eax
mov edx, dword [ebp + 0x5e98]
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp + 0x5e94]
mov dword [ecx + 0x70], eax
cmp dword [esp + 0x420], 0xffff
mov word [esp + 0x34], 0
lea ecx, [esp + 0x420]
mov dword [esp + 0x3c], ecx
je 0x10019389
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
movsx ecx, word [ecx + 4]
cmp ecx, 0x102
jg 0x10018534
je 0x10018889
cmp ecx, 0x64
je 0x10018574
cmp ecx, 0x65
je 0x100185f1
cmp ecx, 0x66
je 0x1001873a
jmp case.0x1001856d.290
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
cmp ecx, 0x117
jg 0x10018553
je case.0x1001856d.285
cmp ecx, 0x111
je case.0x1001856d.284
jmp case.0x1001856d.290
sub ecx, 0x11a
cmp ecx, 0xfa
ja case.0x1001856d.290
xor eax, eax
mov al, byte [ecx + 0x10019a80]
jmp dword [eax*4 + 0x10019a5c]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0x40
push eax
push ecx
push edx
lea edx, [esp + 0x88]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019410
xor edx, edx
xor eax, eax
mov ecx, dword [esp + 0x3c]
mov al, byte [esp + edx + 0x7c]
mov edi, dword [esp + 0x67c]
movsx esi, word [ecx + 6]
inc edx
mov ecx, dword [edi + esi*4 + 0x3c]
cmp edx, 0x40
mov dword [ecx + edx*4 - 4], eax
jb 0x100185a7
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 6], 0
jne case.0x1001856d.290
mov edi, dword [edi + 0x40]
mov ecx, dword [esp + 0x67c]
mov esi, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x20]
rep movsb byte es:[edi], byte [esi]
jmp case.0x1001856d.290
mov dword [esp + 0x20], 0x10
mov ecx, dword [esp + 0x3c]
mov si, word [ecx + 6]
mov ecx, dword [esp + 0x67c]
movsx eax, si
cmp si, 4
mov edi, dword [ecx + eax*4 + 0x4c]
mov dword [esp + 0x54], edi
jl 0x10018630
movsx eax, word [esp + 0x14]
mov ecx, eax
shl eax, 5
add eax, ecx
lea ecx, [esp + eax + 0xbc]
mov dword [esp + 0x54], ecx
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
mov edx, dword [esp + 0x60]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019421
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 6], 0
jne 0x10018688
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx + 0x50]
mov esi, dword [ecx + 0x4c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x54]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x20], 0
mov ecx, 0x10
mov eax, dword [esp + 0x54]
movsx edx, byte [eax]
add dword [esp + 0x20], edx
inc dword [esp + 0x54]
dec ecx
jne 0x10018695
mov ecx, dword [esp + 0x3c]
mov ax, word [ecx + 6]
mov ecx, dword [esp + 0x67c]
movsx edx, ax
mov ecx, dword [ecx + edx*4 + 0x4c]
add ecx, 0x10
cmp ax, 4
jl 0x100186de
movsx eax, word [esp + 0x14]
inc word [esp + 0x14]
mov ecx, eax
shl eax, 5
add eax, ecx
lea ecx, [esp + eax + 0xcc]
lea eax, [esp + 0x28]
lea edx, [esp + 0x20]
push eax
push edx
push 0xffffffffffffffff
push ecx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019432
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 6], 0
jne case.0x1001856d.290
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x67c]
mov esi, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x50]
add edi, 0x10
add esi, 0x10
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x1001856d.290
mov dword [esp + 0x20], 0x10
mov ecx, dword [esp + 0x3c]
mov si, word [ecx + 6]
mov ecx, dword [esp + 0x67c]
movsx eax, si
cmp si, 4
mov edi, dword [ecx + eax*4 + 0x5c]
mov dword [esp + 0x54], edi
jl 0x1001877c
movsx ecx, word [esp + 0x12]
mov eax, ecx
shl ecx, 4
add ecx, eax
shl ecx, 4
lea eax, [esp + ecx + 0x200]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
mov edx, dword [esp + 0x60]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019443
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 6], 0
jne 0x100187d4
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx + 0x60]
mov esi, dword [ecx + 0x5c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x54]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x20], 0
mov ecx, 0x10
mov eax, dword [esp + 0x54]
movsx edx, byte [eax]
add dword [esp + 0x20], edx
inc dword [esp + 0x54]
dec ecx
jne 0x100187e1
mov ecx, dword [esp + 0x3c]
mov ax, word [ecx + 6]
mov ecx, dword [esp + 0x67c]
movsx edx, ax
mov ecx, dword [ecx + edx*4 + 0x5c]
add ecx, 0x10
cmp ax, 4
jl 0x1001882d
movsx eax, word [esp + 0x12]
inc word [esp + 0x12]
mov ecx, eax
shl eax, 4
add eax, ecx
shl eax, 4
lea ecx, [esp + eax + 0x210]
lea eax, [esp + 0x28]
lea edx, [esp + 0x20]
push eax
push edx
push 0xffffffffffffffff
push ecx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019454
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 6], 0
jne case.0x1001856d.290
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x67c]
mov esi, dword [ecx + 0x5c]
mov edi, dword [ecx + 0x60]
add edi, 0x10
add esi, 0x10
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x1001856d.290
xor ecx, ecx
movsx eax, word [ebp + 0x5ea]
mov cx, word [eax*2 + 0x10033af8]
movsx eax, word [ebp + 0x5ec]
imul ecx, eax
mov dword [esp + 0x20], ecx
cmp ecx, 4
ja 0x100188b6
mov ebx, dword [esp + 0x3c]
add ebx, 0x10
jmp 0x100188e6
lea ebx, [esp + 0x100]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019465
xor edx, edx
cmp dword [ebp + 0x5ec], edx
jbe case.0x1001856d.290
mov esi, dword [esp + 0x67c]
add esi, 0xa4
cmp dword [esp + 0x1c], 0x4949
jne 0x10018910
mov ax, word [ebx]
jmp 0x10018920
movzx cx, byte [ebx]
shl cx, 8
movzx ax, byte [ebx + 1]
or ax, cx
add ebx, 2
add esi, 4
movsx eax, ax
inc edx
mov dword [esi - 4], eax
cmp dword [ebp + 0x5ec], edx
ja 0x10018901
jmp case.0x1001856d.290
xor eax, eax
movsx ecx, word [ebp + 0x66e]
mov ax, word [ecx*2 + 0x10033af8]
mov ecx, dword [esp + 0x3c]
imul eax, dword [ebp + 0x670]
mov dword [esp + 0x20], eax
cmp word [ecx + 8], 3
jne 0x10018a41
mov eax, dword [ecx + 0xc]
cmp eax, 2
ja 0x100189ce
lea ebx, [ecx + 0x10]
xor esi, esi
test eax, eax
je case.0x1001856d.290
xor edx, edx
cmp dword [esp + 0x1c], 0x4949
jne 0x10018996
xor eax, eax
mov ecx, dword [ebp + 0x5e94]
mov ax, word [ebx]
mov dword [ecx + edx], eax
jmp 0x100189b9
xor eax, eax
mov cl, byte [ebx + 1]
mov al, byte [ebx]
mov edi, dword [ebp + 0x5e94]
mov dword [esp + 0x54], 0
shl eax, 8
mov byte [esp + 0x54], cl
or eax, dword [esp + 0x54]
mov dword [edi + edx], eax
inc esi
mov ecx, dword [esp + 0x3c]
add ebx, 2
add edx, 4
cmp dword [ecx + 0xc], esi
ja 0x1001897c
jmp case.0x1001856d.290
mov ebx, dword [ebp + 0x5e94]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
push ebx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019476
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0xc]
lea eax, [edx*2 - 2]
dec edx
sub eax, 2
add ebx, eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10018a24
xor eax, eax
mov ecx, dword [ebp + 0x5e94]
mov ax, word [ebx]
mov dword [ecx + edx*4], eax
jmp 0x10018a3b
xor eax, eax
xor ecx, ecx
mov al, byte [ebx]
mov cl, byte [ebx + 1]
shl eax, 8
mov esi, dword [ebp + 0x5e94]
or eax, ecx
mov dword [esi + edx*4], eax
sub ebx, 2
dec edx
jmp 0x10018a0a
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + 0xc], 1
jne 0x10018a57
cmp dword [esp + 0x30], 0
jne 0x10018a57
lea ebx, [ecx + 0x10]
jmp 0x10018a7f
mov ebx, dword [ebp + 0x5e94]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
push ebx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019487
xor esi, esi
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + 0xc], esi
jbe case.0x1001856d.290
xor eax, eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10018aa7
mov ecx, dword [ebx]
mov edx, dword [ebp + 0x5e94]
mov dword [edx + eax], ecx
jmp 0x10018ad2
xor ecx, ecx
xor edx, edx
mov cl, byte [ebx + 2]
mov dl, byte [ebx]
shl edx, 0x10
mov edi, dword [ebp + 0x5e94]
or ecx, edx
xor edx, edx
shl ecx, 8
mov dl, byte [ebx + 1]
shl edx, 0x10
or ecx, edx
xor edx, edx
mov dl, byte [ebx + 3]
or ecx, edx
mov dword [edi + eax], ecx
inc esi
mov ecx, dword [esp + 0x3c]
add ebx, 4
add eax, 4
cmp dword [ecx + 0xc], esi
ja 0x10018a90
jmp case.0x1001856d.290
xor ecx, ecx
movsx eax, word [ebp + 0x67a]
mov cx, word [eax*2 + 0x10033af8]
mov eax, dword [esp + 0x3c]
imul ecx, dword [ebp + 0x67c]
mov dword [esp + 0x20], ecx
cmp word [eax + 8], 3
jne 0x10018bf2
mov eax, dword [eax + 0xc]
cmp eax, 2
ja 0x10018b7f
mov ebx, dword [esp + 0x3c]
xor esi, esi
add ebx, 0x10
test eax, eax
je case.0x1001856d.290
xor edx, edx
cmp dword [esp + 0x1c], 0x4949
jne 0x10018b47
xor eax, eax
mov ecx, dword [ebp + 0x5e98]
mov ax, word [ebx]
mov dword [ecx + edx], eax
jmp 0x10018b6a
xor eax, eax
mov cl, byte [ebx + 1]
mov al, byte [ebx]
mov edi, dword [ebp + 0x5e98]
mov dword [esp + 0x54], 0
shl eax, 8
mov byte [esp + 0x54], cl
or eax, dword [esp + 0x54]
mov dword [edi + edx], eax
inc esi
mov ecx, dword [esp + 0x3c]
add ebx, 2
add edx, 4
cmp dword [ecx + 0xc], esi
ja 0x10018b2d
jmp case.0x1001856d.290
mov ebx, dword [ebp + 0x5e98]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
push ebx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x10019498
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0xc]
lea eax, [edx*2 - 2]
dec edx
sub eax, 2
add ebx, eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10018bd5
xor ecx, ecx
mov eax, dword [ebp + 0x5e98]
mov cx, word [ebx]
mov dword [eax + edx*4], ecx
jmp 0x10018bec
xor eax, eax
xor ecx, ecx
mov al, byte [ebx]
mov cl, byte [ebx + 1]
shl eax, 8
mov esi, dword [ebp + 0x5e98]
or eax, ecx
mov dword [esi + edx*4], eax
sub ebx, 2
dec edx
jmp 0x10018bbb
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + 0xc], 1
jne 0x10018c08
cmp dword [esp + 0x30], 0
jne 0x10018c08
lea ebx, [ecx + 0x10]
jmp 0x10018c30
mov ebx, dword [ebp + 0x5e98]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push edx
push ebx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100194a9
xor esi, esi
mov ecx, dword [esp + 0x3c]
cmp dword [ecx + 0xc], esi
jbe case.0x1001856d.290
xor eax, eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10018c58
mov ecx, dword [ebx]
mov edx, dword [ebp + 0x5e98]
mov dword [edx + eax], ecx
jmp 0x10018c83
xor edx, edx
xor ecx, ecx
mov dl, byte [ebx + 2]
mov cl, byte [ebx]
shl ecx, 0x10
mov edi, dword [ebp + 0x5e98]
or edx, ecx
xor ecx, ecx
shl edx, 8
mov cl, byte [ebx + 1]
shl ecx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [ebx + 3]
or edx, ecx
mov dword [edi + eax], edx
inc esi
mov ecx, dword [esp + 0x3c]
add ebx, 4
add eax, 4
cmp dword [ecx + 0xc], esi
ja 0x10018c41
jmp case.0x1001856d.290
xor ecx, ecx
movsx eax, word [ebp + 0x626]
mov cx, word [eax*2 + 0x10033af8]
lea eax, [esp + 0x28]
imul ecx, dword [ebp + 0x628]
mov dword [esp + 0x20], ecx
push eax
cmp dword [esp + 0x34], 0
lea ecx, [esp + 0x24]
push ecx
push edx
je 0x10018cf2
mov eax, dword [esp + 0x688]
add eax, 0x7c
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je case.0x1001856d.290
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100194ba
cmp dword [esp + 0x1c], 0x4949
jne 0x10018d23
mov ecx, dword [esp + 0x100]
jmp 0x10018d56
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x100]
mov al, byte [esp + 0x102]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x101]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x103]
or ecx, eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10018d69
mov eax, dword [esp + 0x104]
jmp 0x10018d9c
xor eax, eax
xor edx, edx
mov al, byte [esp + 0x104]
mov dl, byte [esp + 0x106]
shl eax, 0x10
or eax, edx
xor edx, edx
shl eax, 8
mov dl, byte [esp + 0x105]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esp + 0x107]
or eax, edx
lea ebx, [esp + 0x108]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 0
fild qword [esp + 0x54]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
fild qword [esp + 0x54]
pushfd
cmp dword [0x10035e84], 0
jne 0x10018dd1
fdivp st(1)
jmp 0x10018dda
push eax
mov al, 0xd
call fcn.10026ad7
pop eax
popfd
call fcn.10026998
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x7c], eax
jmp case.0x1001856d.290
xor ecx, ecx
movsx eax, word [ebp + 0x632]
mov cx, word [eax*2 + 0x10033af8]
lea eax, [esp + 0x28]
imul ecx, dword [ebp + 0x634]
mov dword [esp + 0x20], ecx
push eax
cmp dword [esp + 0x34], 0
lea ecx, [esp + 0x24]
push ecx
push edx
je 0x10018e4b
mov eax, dword [esp + 0x688]
add eax, 0x84
push eax
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je case.0x1001856d.290
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100194cb
cmp dword [esp + 0x1c], 0x4949
jne 0x10018e7c
mov ecx, dword [esp + 0x100]
jmp 0x10018eaf
xor ecx, ecx
xor eax, eax
mov cl, byte [esp + 0x100]
mov al, byte [esp + 0x102]
shl ecx, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [esp + 0x101]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [esp + 0x103]
or ecx, eax
cmp dword [esp + 0x1c], 0x4949
jne 0x10018ec2
mov eax, dword [esp + 0x104]
jmp 0x10018ef5
xor eax, eax
xor edx, edx
mov al, byte [esp + 0x104]
mov dl, byte [esp + 0x106]
shl eax, 0x10
or eax, edx
xor edx, edx
shl eax, 8
mov dl, byte [esp + 0x105]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esp + 0x107]
or eax, edx
lea ebx, [esp + 0x108]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 0
fild qword [esp + 0x54]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
fild qword [esp + 0x54]
pushfd
cmp dword [0x10035e84], 0
jne 0x10018f2a
fdivp st(1)
jmp 0x10018f33
push eax
mov al, 0xd
call fcn.10026ad7
pop eax
popfd
call fcn.10026998
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x84], eax
jmp case.0x1001856d.290
mov eax, dword [ebp + 0x6a0]
cmp eax, 1
jne 0x10018f86
movsx eax, word [esp + 0x10]
inc word [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + eax + 0x420], edx
mov word [esp + eax + 0x426], 0
mov word [esp + eax + 0x424], 0x64
jmp 0x10019046
shl eax, 2
lea ebx, [esp + 0x100]
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push ecx
push eax
push edx
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100194dc
xor edx, edx
cmp dword [ebp + 0x6a0], edx
jbe 0x10019046
mov esi, 0x64
cmp dword [esp + 0x1c], 0x4949
jne 0x10018fe9
movsx ecx, word [esp + 0x10]
mov eax, dword [ebx]
lea edi, [ecx + ecx*2]
mov dword [esp + edi*8 + 0x420], eax
jmp 0x1001901a
xor ecx, ecx
xor eax, eax
mov cl, byte [ebx + 2]
mov al, byte [ebx]
movsx edi, word [esp + 0x10]
shl eax, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [ebx + 1]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [ebx + 3]
or ecx, eax
lea eax, [edi + edi*2]
mov dword [esp + eax*8 + 0x420], ecx
movsx eax, word [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 3
inc word [esp + 0x10]
add ebx, 4
mov word [esp + eax + 0x426], dx
inc edx
mov word [esp + eax + 0x424], si
cmp dword [ebp + 0x6a0], edx
ja 0x10018fcc
movsx eax, word [esp + 0x10]
movsx ecx, word [esp + 0x34]
push 0x10019b80
sub eax, ecx
push 0x18
dec eax
push eax
mov eax, dword [esp + 0x48]
add eax, 0x18
push eax
call fcn.100267c8
add esp, 0x10
jmp case.0x1001856d.290
mov eax, dword [ebp + 0x6ac]
cmp eax, 1
jne 0x100190ab
movsx eax, word [esp + 0x10]
inc word [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + eax + 0x420], edx
mov word [esp + eax + 0x426], 0
mov word [esp + eax + 0x424], 0x65
jmp 0x1001916b
shl eax, 2
lea ebx, [esp + 0x100]
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push ecx
push eax
push edx
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100194ed
xor edx, edx
cmp dword [ebp + 0x6ac], edx
jbe 0x1001916b
mov esi, 0x65
cmp dword [esp + 0x1c], 0x4949
jne 0x1001910e
movsx ecx, word [esp + 0x10]
mov eax, dword [ebx]
lea edi, [ecx + ecx*2]
mov dword [esp + edi*8 + 0x420], eax
jmp 0x1001913f
xor ecx, ecx
xor eax, eax
mov cl, byte [ebx + 2]
mov al, byte [ebx]
movsx edi, word [esp + 0x10]
shl eax, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [ebx + 1]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [ebx + 3]
or ecx, eax
lea eax, [edi + edi*2]
mov dword [esp + eax*8 + 0x420], ecx
movsx eax, word [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 3
inc word [esp + 0x10]
add ebx, 4
mov word [esp + eax + 0x426], dx
inc edx
mov word [esp + eax + 0x424], si
cmp dword [ebp + 0x6ac], edx
ja 0x100190f1
movsx ecx, word [esp + 0x10]
movsx eax, word [esp + 0x34]
push 0x10019b80
sub ecx, eax
push 0x18
dec ecx
mov eax, dword [esp + 0x44]
push ecx
add eax, 0x18
push eax
call fcn.100267c8
add esp, 0x10
jmp case.0x1001856d.290
mov eax, dword [ebp + 0x6b8]
cmp eax, 1
jne 0x100191d0
movsx eax, word [esp + 0x10]
inc word [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + eax + 0x420], edx
mov word [esp + eax + 0x426], 0
mov word [esp + eax + 0x424], 0x66
jmp 0x10019290
shl eax, 2
lea ebx, [esp + 0x100]
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push ecx
push eax
push edx
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100194fe
xor edx, edx
cmp dword [ebp + 0x6b8], edx
jbe 0x10019290
mov esi, 0x66
cmp dword [esp + 0x1c], 0x4949
jne 0x10019233
movsx ecx, word [esp + 0x10]
mov eax, dword [ebx]
lea edi, [ecx + ecx*2]
mov dword [esp + edi*8 + 0x420], eax
jmp 0x10019264
xor ecx, ecx
xor eax, eax
mov cl, byte [ebx + 2]
mov al, byte [ebx]
movsx edi, word [esp + 0x10]
shl eax, 0x10
or ecx, eax
xor eax, eax
shl ecx, 8
mov al, byte [ebx + 1]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [ebx + 3]
or ecx, eax
lea eax, [edi + edi*2]
mov dword [esp + eax*8 + 0x420], ecx
movsx eax, word [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 3
inc word [esp + 0x10]
add ebx, 4
mov word [esp + eax + 0x426], dx
inc edx
mov word [esp + eax + 0x424], si
cmp dword [ebp + 0x6b8], edx
ja 0x10019216
movsx eax, word [esp + 0x10]
movsx ecx, word [esp + 0x34]
push 0x10019b80
sub eax, ecx
push 0x18
dec eax
push eax
mov eax, dword [esp + 0x48]
add eax, 0x18
push eax
call fcn.100267c8
add esp, 0x10
jmp case.0x1001856d.290
movsx eax, word [ebp + 0x6e6]
xor ecx, ecx
lea ebx, [esp + 0x100]
mov cx, word [eax*2 + 0x10033af8]
lea eax, [esp + 0x28]
imul ecx, dword [ebp + 0x6e8]
mov dword [esp + 0x20], ecx
push eax
lea ecx, [esp + 0x24]
push ecx
push edx
lea edx, [esp + 0x10c]
push edx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x1001950f
xor eax, eax
mov esi, 1
cmp dword [esp + 0x1c], 0x4949
jne 0x1001931b
mov ecx, dword [ebx]
jmp 0x1001933d
xor ecx, ecx
xor edx, edx
mov cl, byte [ebx + 2]
mov dl, byte [ebx]
shl edx, 0x10
or ecx, edx
xor edx, edx
shl ecx, 8
mov dl, byte [ebx + 1]
shl edx, 0x10
or ecx, edx
xor edx, edx
mov dl, byte [ebx + 3]
or ecx, edx
add ebx, 4
cmp dword [eax + 0x10033b68], ecx
je 0x1001935d
cmp dword [eax + 0x10033b98], ecx
jne 0x1001935d
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0xe4], esi
cmp dword [esp + 0x30], 0
jne 0x10019367
add ebx, 4
add eax, 8
cmp eax, 0x30
jl 0x1001930d
add dword [esp + 0x3c], 0x18
inc word [esp + 0x34]
mov ecx, dword [esp + 0x3c]
cmp dword [ecx], 0xffff
jne 0x10018467
cmp dword [esp + 0x48], 0
je 0x1001956e
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
mov edx, dword [esp + 0x38]
push eax
mov dword [esp + 0x24], 0
push ecx
push edx
push ebx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
mov ecx, dword [esp + 0x67c]
push ecx
call fcn.10001a40
add esp, 4
mov dword [ebp + 0x5d84], eax
test eax, eax
jne 0x100198cf
xor eax, eax
mov al, byte [ebp + 0x4a4]
cmp eax, 1
je 0x10019520
cmp eax, 3
je 0x1001953a
cmp eax, 4
je 0x10019554
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x4ac]
pop ebp
pop edi
pop esi
mov dword [eax + 0x18], 0
xor eax, eax
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x4ac]
pop ebp
pop edi
pop esi
mov dword [eax + 0x18], 1
xor eax, eax
pop ebx
add esp, 0x668
ret
mov eax, dword [ebp + 0x4ac]
pop ebp
pop edi
pop esi
mov dword [eax + 0x18], 7
xor eax, eax
pop ebx
add esp, 0x668
ret
cmp dword [esp + 0x44], 0
je 0x10019585
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
movsx eax, word [ebp + 0x6ac]
mov dword [esp + 0x40], eax
cmp eax, 1
jne 0x100195c3
mov edx, dword [esp + 0x67c]
mov esi, 2
add edx, 0x60
mov ecx, dword [esp + 0x67c]
add edx, 4
dec esi
mov eax, dword [ecx + 0x5c]
mov dword [edx - 4], eax
mov edi, dword [ecx + 0x4c]
mov dword [edx - 0x14], edi
mov eax, dword [ecx + 0x3c]
mov dword [edx - 0x24], eax
jne 0x100195a4
cmp dword [esp + 0x40], 4
jle 0x10019709
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ecx + 0x50]
lea ecx, [esp + 0xdd]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x5c]
push edx
mov dword [esp + 0x6c], ecx
push eax
lea ecx, [esp + 0x48]
push 1
push ecx
call fcn.1000ed20
add esp, 0x10
cmp dword [esp + 0x40], 4
jle 0x10019629
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
cmp dword [esp + 0x70], 1
je 0x100196c5
mov dword [esp + 0x34], 2
cmp word [ebp + 0x6ac], 2
jle 0x100196c5
mov ecx, dword [esp + 0x67c]
mov edx, 8
add ecx, 0x54
mov dword [esp + 0x54], ecx
movsx eax, word [esp + 0x34]
cmp dword [esp + edx + 0x6c], eax
jne 0x100196ac
xor ecx, ecx
mov esi, dword [esp + edx + 0x5c]
mov dword [esp + 0x20], ecx
xor eax, eax
mov al, byte [ecx + esi]
inc ecx
add dword [esp + 0x20], eax
cmp ecx, 0x10
jl 0x1001966e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x67c]
add eax, 0x10
mov edi, dword [ecx + 0x50]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x67c]
mov eax, dword [esp + 0x54]
mov esi, dword [ecx + 0x50]
mov dword [eax], esi
add dword [esp + 0x54], 4
movsx eax, word [ebp + 0x6ac]
add edx, 4
inc dword [esp + 0x34]
cmp eax, dword [esp + 0x34]
jg 0x10019659
mov edx, 1
cmp word [ebp + 0x6ac], dx
jle 0x10019709
mov edi, dword [esp + 0x67c]
lea esi, [esp + 0x70]
add edi, 0x50
movsx ecx, dx
mov eax, dword [esi]
cmp ecx, eax
je 0x100196f7
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx + eax*4 + 0x4c]
mov dword [edi], eax
add edi, 4
add esi, 4
movsx eax, word [ebp + 0x6ac]
inc edx
cmp eax, edx
jg 0x100196e1
movsx eax, word [ebp + 0x6b8]
mov dword [esp + 0x40], eax
cmp eax, 4
jle 0x10019858
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx + 0x5c]
mov edx, dword [ecx + 0x60]
lea ecx, [esp + 0x310]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x200]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x5c]
push edx
mov dword [esp + 0x6c], ecx
push eax
lea ecx, [esp + 0x48]
push 2
push ecx
call fcn.1000ed20
add esp, 0x10
cmp dword [esp + 0x40], 4
jle 0x10019778
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
cmp dword [esp + 0x70], 1
je 0x10019814
mov dword [esp + 0x34], 2
cmp word [ebp + 0x6b8], 2
jle 0x10019814
mov ecx, dword [esp + 0x67c]
mov edx, 8
add ecx, 0x64
mov dword [esp + 0x54], ecx
movsx eax, word [esp + 0x34]
cmp dword [esp + edx + 0x6c], eax
jne 0x100197fb
xor ecx, ecx
mov esi, dword [esp + edx + 0x5c]
mov dword [esp + 0x20], ecx
xor eax, eax
mov al, byte [ecx + esi]
inc ecx
add dword [esp + 0x20], eax
cmp ecx, 0x10
jl 0x100197bd
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x67c]
add eax, 0x10
mov edi, dword [ecx + 0x60]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x67c]
mov eax, dword [esp + 0x54]
mov esi, dword [ecx + 0x60]
mov dword [eax], esi
add dword [esp + 0x54], 4
movsx eax, word [ebp + 0x6b8]
add edx, 4
inc dword [esp + 0x34]
cmp eax, dword [esp + 0x34]
jg 0x100197a8
mov edi, 1
cmp word [ebp + 0x6b8], di
jle 0x10019858
mov esi, dword [esp + 0x67c]
lea edx, [esp + 0x70]
add esi, 0x60
movsx ecx, di
mov eax, dword [edx]
cmp ecx, eax
je 0x10019846
mov ecx, dword [esp + 0x67c]
mov eax, dword [ecx + eax*4 + 0x5c]
mov dword [esi], eax
add esi, 4
add edx, 4
movsx eax, word [ebp + 0x6b8]
inc edi
cmp eax, edi
jg 0x10019830
cmp dword [esp + 0x30], 0
jne 0x1001989c
mov dword [esp + 0x20], 0
mov ecx, dword [ebp + 0x5e94]
test ecx, ecx
je 0x100198bd
lea eax, [esp + 0x28]
lea edx, [esp + 0x20]
push eax
mov ecx, dword [ecx]
push edx
push ecx
push ebx
call fcn.1000e960
add esp, 0x10
mov dword [ebp + 0x5d84], eax
test eax, eax
je 0x100198bd
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov ecx, dword [esp + 0x67c]
cmp dword [ecx + 0x74], 1
jne 0x100198bd
call fcn.10004f50
xor eax, eax
mov ecx, dword [esp + 0x67c]
mov dword [ecx + 0x6c], eax
mov dword [ecx + 0x70], eax
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x668
ret