Function at 0x10019c90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10c
mov edx, 1
push ebx
xor ebx, ebx
lea ecx, [esp + 0x1c]
push esi
mov esi, dword [ebp + 8]
test dword [esi + 0x734], 0x20000
mov dword [esp + 0xe8], ecx
mov eax, 0x80000000
lea ecx, [esp + 0xf4]
push edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xc4], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x78], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0xf8], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x98], ecx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], edx
mov dword [esp + 0xe8], ebx
jne 0x10019d7c
mov dword [esp + 0xe0], ebx
jmp 0x10019d94
mov ecx, dword [esi + 0x77c]
cmp ecx, edx
mov dword [esp + 0xe0], ecx
ja 0x10019d94
mov dword [esp + 0xe0], edx
mov dword [esp + 0xfc], eax
lea edx, [esp + 0xfc]
mov eax, 1
mov dword [esp + 0xb0], edx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xdc], ebx
mov dword [esp + 0x60], ebx
mov dword [esi + 0xc], ebx
call fcn.1001d7c0
mov eax, 0x7fffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x24]
cmp eax, 0x20203347
mov dword [esi + 0x4f8], ebx
mov dword [esi + 0x5a8], ebx
mov dword [esi + 0x5ac], ebx
mov edi, 0xfffff60c
je 0x1001b5fe
cmp eax, 0x44323347
je 0x1001b5fe
cmp eax, 0x31464954
mov dword [esp + 0xa0], ebx
je 0x10019e98
mov edi, 0xffffe48c
lea esp, [esp]
mov eax, dword [esi + 0x24]
cmp eax, 0x4d464954
je 0x10019e98
cmp eax, 0x47464954
je 0x10019e98
cmp eax, 0x43464954
je 0x10019e98
cmp eax, 0x5a464954
je 0x10019e98
cmp eax, 0x4c464954
je 0x10019e98
cmp eax, 0x4a464954
je 0x10019e98
cmp eax, 0x4b464954
je 0x10019e98
cmp eax, 0x75464954
je 0x10019e98
mov eax, dword [esi + 0x498]
push 2
push eax
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
cmp dword [esi + 0x24], 0x31464954
jne 0x10019e40
mov al, byte [esi + 0x7a4]
test al, al
je 0x10019f42
cmp al, 0x49
je 0x10019ed6
mov edi, 0xfffffbf5
nop
cmp byte [esi + 0x7a4], 0x4d
je 0x10019ed6
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
cmp byte [esi + 0x7a4], 0x49
jne 0x10019eb0
xor edx, edx
cmp byte [esi + 0x7a4], 0x4d
sete dl
mov dword [0x16fd6050], edx
mov edi, dword [esi + 0x7a0]
cmp edi, ebx
jne 0x10019f37
push 4
call fcn.100167f0
mov edi, eax
mov eax, dword [0x16fd6050]
add esp, 4
cmp eax, dword [0x16fd5fa4]
mov dword [esp + 0x30], edi
je 0x1001a05c
xor eax, eax
mov ah, byte [esp + 0x32]
mov ecx, edi
mov edx, edi
shl ecx, 0x10
and edx, 0xff00
add ecx, edx
shl ecx, 8
add ecx, eax
shr edi, 0x18
add edi, ecx
jmp 0x1001a05c
mov dword [0x16fd6058], edi
jmp 0x1001a05c
mov eax, dword [0x16fd6020]
add eax, 2
cmp eax, dword [0x16fd6024]
jbe 0x10019f5c
call fcn.10016770
movzx eax, ax
jmp 0x10019f65
mov dword [0x16fd6020], eax
movzx eax, word [eax - 2]
cmp ax, 0x4949
mov edi, 0xffffe4a2
jne 0x10019f78
mov dword [0x16fd6050], ebx
jmp 0x10019f9e
cmp ax, 0x4d4d
jne 0x10019f8a
mov dword [0x16fd6050], 1
jmp 0x10019f9e
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
mov eax, dword [0x16fd6020]
add eax, 2
cmp eax, dword [0x16fd6024]
jbe 0x10019fbc
call fcn.10016770
movzx eax, ax
mov dword [esp + 0x34], eax
jmp 0x10019fd0
mov dword [0x16fd6020], eax
movzx edx, word [eax - 2]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
lea ecx, [ecx]
mov ecx, dword [0x16fd6050]
cmp ecx, dword [0x16fd5fa4]
jne 0x10019fe3
movzx eax, ax
jmp 0x10019fee
movzx edx, ah
movzx eax, al
shl eax, 8
add eax, edx
cmp ax, 0x2a
je 0x1001a00a
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x10019fc9
mov eax, dword [0x16fd6020]
add eax, 4
cmp eax, dword [0x16fd6024]
jbe 0x1001a023
call fcn.100167d0
mov edi, eax
jmp 0x1001a02b
mov dword [0x16fd6020], eax
mov edi, dword [eax - 4]
mov edx, dword [0x16fd5fa4]
cmp dword [0x16fd6050], edx
mov dword [esp + 0x30], edi
je 0x1001a05c
xor edx, edx
mov dh, byte [esp + 0x32]
mov eax, edi
mov ecx, edi
shl eax, 0x10
and ecx, 0xff00
add eax, ecx
shl eax, 8
add eax, edx
shr edi, 0x18
add edi, eax
cmp edi, 8
jae 0x1001a07c
mov edi, 0xffffe426
mov eax, dword [esi + 0x498]
push 2
push eax
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001a066
cmp byte [esi + 0x7a4], bl
mov eax, dword [esi + 0x4f0]
je 0x1001a08f
add eax, 1
jmp 0x1001a09c
cmp eax, 1
mov dword [esp + 0xc], 1
jb 0x1001a0a0
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x720]
cmp eax, ebx
mov dword [esp + 0x80], ebx
je 0x1001a0be
mov dword [eax], edi
mov dword [esp + 0x80], 1
push edi
call fcn.10016790
mov edx, dword [0x16fd6050]
movzx ecx, ax
add esp, 4
cmp edx, dword [0x16fd5fa4]
mov eax, ecx
je 0x1001a0e8
shr eax, 8
movzx ecx, cl
movzx eax, al
shl ecx, 8
add eax, ecx
sub dword [esp + 0xc], 1
movzx ebx, ax
mov dword [esp + 0x7c], ebx
je 0x1001a452
mov edx, dword [esp + 0x80]
lea eax, [edx*4]
mov dword [esp + 0x18], eax
lea esp, [esp]
test byte [esi + 0x738], 4
lea ecx, [ebx + ebx*2]
jne 0x1001a164
lea edx, [edi + ecx*4 + 2]
push edx
call fcn.100167f0
mov edi, eax
mov eax, dword [0x16fd6050]
add esp, 4
cmp eax, dword [0x16fd5fa4]
mov dword [esp + 0x30], edi
je 0x1001a369
xor eax, eax
mov ah, byte [esp + 0x32]
mov ecx, edi
mov edx, edi
shl ecx, 0x10
and edx, 0xff00
add ecx, edx
shl ecx, 8
add ecx, eax
shr edi, 0x18
add edi, ecx
jmp 0x1001a369
xor eax, eax
cmp ebx, eax
lea edx, [edi + ecx*4 + 6]
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], edx
je 0x1001a324
jmp 0x1001a190
mov eax, dword [0x16fd6020]
sub dword [esp + 0x7c], 1
add eax, 2
cmp eax, dword [0x16fd6024]
jbe 0x1001a1b8
call fcn.10016770
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, dword [0x16fd6020]
jmp 0x1001a1c5
mov dword [0x16fd6020], eax
movzx ecx, word [eax - 2]
mov dword [esp + 0x30], ecx
add eax, 2
cmp eax, dword [0x16fd6024]
jbe 0x1001a1df
call fcn.10016770
movzx ebx, ax
mov eax, dword [0x16fd6020]
jmp 0x1001a1e8
mov dword [0x16fd6020], eax
movzx ebx, word [eax - 2]
add eax, 4
cmp eax, dword [0x16fd6024]
jbe 0x1001a201
call fcn.100167d0
mov esi, eax
mov eax, dword [0x16fd6020]
jmp 0x1001a209
mov dword [0x16fd6020], eax
mov esi, dword [eax - 4]
add eax, 4
cmp eax, dword [0x16fd6024]
mov dword [esp + 0x80], esi
jbe 0x1001a224
call fcn.100167d0
mov edi, eax
jmp 0x1001a22c
mov dword [0x16fd6020], eax
mov edi, dword [eax - 4]
mov ecx, dword [0x16fd6050]
cmp ecx, dword [0x16fd5fa4]
mov dword [esp + 0x1c], edi
je 0x1001a28c
mov eax, dword [esp + 0x30]
movzx dx, ah
movzx ax, al
shl ax, 8
add dx, ax
movzx edx, dx
mov dword [esp + 0x30], edx
movzx dx, bl
shl dx, 8
movzx ax, bh
add ax, dx
movzx ebx, ax
mov eax, esi
mov edx, esi
shl eax, 0x10
and edx, 0xff00
add eax, edx
xor edx, edx
mov dh, byte [esp + 0x82]
shl eax, 8
shr esi, 0x18
add eax, edx
add esi, eax
cmp dword [esp + 0x48], 0
jne 0x1001a2e9
cmp bx, 0xd
jae 0x1001a2e9
movzx eax, bx
mov edx, dword [eax*4 + 0x16fb00e8]
imul edx, esi
cmp edx, 4
ja 0x1001a2b1
cmp bx, 2
jne 0x1001a2e9
cmp ecx, dword [0x16fd5fa4]
mov ecx, edi
je 0x1001a2d9
xor edx, edx
mov dh, byte [esp + 0x1e]
shl ecx, 0x10
mov eax, edi
and eax, 0xff00
add ecx, eax
shl ecx, 8
mov eax, edi
add ecx, edx
shr eax, 0x18
add ecx, eax
sub ecx, dword [esp + 0x58]
mov dword [esp + 0x48], 1
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x30]
cmp ax, 0x117
jne 0x1001a301
push edi
mov eax, ebx
call fcn.10018da0
mov dword [esp + 0x74], eax
jmp 0x1001a313
cmp ax, 0x111
jne 0x1001a316
push edi
mov eax, ebx
call fcn.10018da0
mov dword [esp + 0x6c], eax
add esp, 4
cmp dword [esp + 0x7c], 0
jne 0x1001a190
mov esi, dword [ebp + 8]
mov eax, dword [0x16fd6020]
add eax, 4
cmp eax, dword [0x16fd6024]
jbe 0x1001a33d
call fcn.100167d0
mov edi, eax
jmp 0x1001a345
mov dword [0x16fd6020], eax
mov edi, dword [eax - 4]
test edi, edi
je 0x1001a36d
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x1001a365
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1001a365
cmp dword [esp + 0x34], 0
jne 0x1001a365
lea edi, [ecx + eax]
jmp 0x1001a369
sub edi, dword [esp + 0x34]
test edi, edi
jne 0x1001a38c
mov ebx, 0xfffff959
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], ebx
call fcn.1001ef47
add esp, 8
test edi, edi
je 0x1001a372
jmp 0x1001a391
mov ebx, 0xfffff959
mov eax, dword [esi + 0x720]
test eax, eax
je 0x1001a3a9
mov ecx, dword [esp + 0x18]
mov dword [ecx + eax], edi
add ecx, 4
mov dword [esp + 0x18], ecx
test byte [esi + 0x738], 4
je 0x1001a416
push 0x16fd6a60
call fcn.1001ef10
add esp, 4
test eax, eax
je 0x1001a3d7
mov edx, dword [esi + 0x498]
push 2
push edx
mov dword [esi + 0xc], ebx
call fcn.1001ef47
add esp, 8
mov ebx, 1
push ebx
push edi
mov dword [0x16fd6a5c], ebx
call fcn.10016280
mov eax, dword [0x16fd6020]
add esp, 8
cmp eax, dword [0x16fd6024]
jae 0x1001a401
add dword [0x16fd6020], ebx
jmp 0x1001a406
call fcn.10015f60
sub dword [0x16fd6020], ebx
mov dword [0x16fd6a5c], 0
push edi
call fcn.10016790
mov edx, dword [0x16fd6050]
movzx ecx, ax
add esp, 4
cmp edx, dword [0x16fd5fa4]
mov eax, ecx
je 0x1001a440
shr eax, 8
movzx ecx, cl
movzx eax, al
shl ecx, 8
add eax, ecx
sub dword [esp + 0xc], 1
movzx ebx, ax
mov dword [esp + 0x7c], ebx
jne 0x1001a110
lea eax, [ebx + ebx*2]
add eax, eax
lea edx, [esp + 0xc0]
add eax, eax
push edx
push eax
push esi
mov dword [esi + 0x7a0], edi
mov dword [esp + 0x64], eax
call fcn.1001d600
add esp, 0xc
test eax, eax
mov dword [esp + 0x34], eax
jne 0x1001a498
mov edi, 0xfffffc11
mov eax, dword [esi + 0x498]
push 2
push eax
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001a482
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x34]
push esi
push ecx
call fcn.10016010
xor eax, eax
add esp, 8
cmp ebx, eax
lea edx, [esi + edi + 6]
mov dword [esp + 0x80], eax
mov dword [0x16fd6a90], eax
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc], eax
jbe 0x1001ad36
nop
mov ecx, dword [0x16fd6050]
mov edx, dword [0x16fd5fa4]
cmp ecx, edx
mov esi, dword [esp + 0x34]
lea eax, [eax + eax*2]
lea esi, [esi + eax*4]
jne 0x1001a4ef
movzx eax, word [esi]
jmp 0x1001a502
movzx di, byte [esi]
movzx ax, byte [esi + 1]
shl di, 8
add ax, di
movzx eax, ax
cmp ecx, edx
mov dword [esp + 0x18], eax
jne 0x1001a510
movzx edi, word [esi + 2]
jmp 0x1001a524
movzx ax, byte [esi + 2]
movzx di, byte [esi + 3]
shl ax, 8
add ax, di
movzx edi, ax
cmp ecx, edx
jne 0x1001a52d
mov ebx, dword [esi + 4]
jmp 0x1001a559
mov eax, dword [esi + 4]
mov ebx, eax
shl ebx, 0x10
mov edx, eax
and edx, 0xff00
add ebx, edx
xor edx, edx
mov dword [esp + 0x58], eax
mov dh, byte [esp + 0x5a]
shl ebx, 8
shr eax, 0x18
add ebx, edx
mov edx, dword [0x16fd5fa4]
add ebx, eax
test ebx, ebx
je 0x1001ac78
mov eax, dword [ebp + 8]
test byte [eax + 0x738], 4
je 0x1001a5db
cmp dword [esp + 0x80], 0
jne 0x1001a5db
cmp di, 0xd
jae 0x1001a5db
movzx eax, di
mov eax, dword [eax*4 + 0x16fb00e8]
imul eax, ebx
cmp eax, 4
ja 0x1001a595
cmp di, 2
jne 0x1001a5db
cmp ecx, edx
mov dword [esp + 0x80], 1
jne 0x1001a5a9
mov eax, dword [esi + 8]
jmp 0x1001a5cf
mov ecx, dword [esi + 8]
mov eax, ecx
shl eax, 0x10
mov edx, ecx
and edx, 0xff00
add eax, edx
xor edx, edx
mov dword [esp + 0x58], ecx
mov dh, byte [esp + 0x5a]
shl eax, 8
shr ecx, 0x18
add eax, edx
add eax, ecx
sub eax, dword [esp + 0xcc]
mov dword [0x16fd6a90], eax
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x18]
push eax
push ebx
push edi
push ecx
call fcn.10019190
movzx eax, word [esp + 0x28]
add esp, 0x10
cmp eax, 0x200
jg 0x1001aad7
je 0x1001aa97
sub eax, 0xfe
cmp eax, 0x5d
ja 0x1001a8a9
movzx edx, byte [eax + 0x16fad474]
jmp dword [edx*4 + 0x16fad408]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x18]
push ecx
push ebx
push edi
push edx
call fcn.10018690
add esp, 0x10
jmp 0x1001ac78
mov ecx, dword [esi + 8]
push ecx
mov eax, edi
call fcn.10018da0
add esp, 4
cmp eax, 1
je 0x1001ac78
cmp dword [esp + 0x44], 6
jne 0x1001ac78
mov esi, dword [ebp + 8]
mov edi, 0xffffe42c
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001aac1
cmp eax, 0x8298
jg 0x1001ac5f
je 0x1001ac4a
sub eax, 0x201
cmp eax, 0x13
ja 0x1001a8a9
movzx edx, byte [eax + 0x16fad504]
jmp dword [edx*4 + 0x16fad4d4]
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x18]
push edx
push ebx
push edi
push eax
call fcn.10018690
add esp, 0x10
jmp 0x1001ac78
cmp eax, 0x83bb
jne 0x1001a8a9
mov eax, dword [esi + 8]
push eax
push ebx
push edi
call fcn.10018e70
add esp, 0xc
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
jae 0x1001ad36
jmp 0x1001a4d0
mov edx, dword [esp + 0xc0]
mov esi, dword [ebp + 8]
push edx
push esi
call fcn.1001d650
add esp, 8
test byte [esi + 0x738], 4
je 0x1001ae0d
cmp dword [0x16fd6a90], 0
je 0x1001ae0d
xor eax, eax
cmp dword [esp + 0x8c], eax
jle 0x1001ad8d
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x84]
mov esi, dword [0x16fd6a90]
sub dword [ecx + eax*4], esi
add eax, 1
cmp eax, edx
jl 0x1001ad7d
cmp dword [0x16fd60dc], 0
je 0x1001ada1
mov eax, dword [0x16fd6a90]
sub dword [0x16fd60dc], eax
xor eax, eax
cmp dword [0x16fd60e8], eax
jbe 0x1001adc5
mov ecx, dword [0x16fd60ec]
mov edx, dword [0x16fd6a90]
sub dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [0x16fd60e8]
jb 0x1001adab
xor eax, eax
cmp dword [0x16fd60f0], eax
jbe 0x1001ade9
mov ecx, dword [0x16fd60f4]
mov edx, dword [0x16fd6a90]
sub dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [0x16fd60f0]
jb 0x1001adcf
xor eax, eax
cmp dword [0x16fd60f8], eax
jbe 0x1001ae0d
mov ecx, dword [0x16fd60fc]
mov edx, dword [0x16fd6a90]
sub dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [0x16fd60f8]
jb 0x1001adf3
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x44]
mov edi, 0xffffe482
lea esp, [esp]
cmp esi, 1
jb 0x1001ae2a
cmp esi, 8
jbe 0x1001ae50
cmp esi, 0x8005
je 0x1001ae50
cmp esi, 0x80b2
je 0x1001ae50
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001ae20
cmp esi, 3
mov dword [ebx + 0x784], esi
jne 0x1001ae6f
test byte [esp + 0xb8], 1
je 0x1001ae6f
mov dword [ebx + 0x784], 0xfffffffd
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x20]
mov dword [ebx + 0x79c], ecx
test esi, esi
jle 0x1001ae89
test edi, edi
jg 0x1001aea3
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], 0xffffe47d
call fcn.1001ef47
add esp, 8
jmp 0x1001ae81
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1001af88
cmp eax, esi
jge 0x1001af88
cmp dword [esp + 0x84], 0
je 0x1001afc4
cmp dword [esp + 0xac], 0
jne 0x1001af88
mov esi, dword [esp + 0x50]
test esi, esi
mov edi, dword [esp + 0x4c]
jne 0x1001aee5
mov esi, edi
mov dword [esp + 0x50], esi
test edi, edi
jne 0x1001aef0
mov edi, esi
mov dword [esp + 0x4c], edi
nop
test esi, esi
je 0x1001aef8
cmp edi, esi
je 0x1001af12
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], 0xfffff610
call fcn.1001ef47
add esp, 8
jmp 0x1001aef0
mov ecx, dword [esp + 0x20]
lea eax, [ecx + esi - 1]
cdq
idiv esi
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x40]
lea eax, [edx + eax - 1]
cdq
idiv dword [esp + 0x40]
imul ecx, eax
cmp edi, ecx
jl 0x1001af6e
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x5c], edi
mov dword [esp + 0xac], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0xb0], eax
jmp 0x1001afc8
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], 0xffffe47c
call fcn.1001ef47
add esp, 8
jmp 0x1001af93
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x8c]
cmp dword [esp + 0x84], 0
je 0x1001afc8
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x4c], 0
je 0x1001afbb
mov edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x20]
jg 0x1001afbb
cmp edi, 1
jne 0x1001b07d
mov eax, dword [esp + 0x20]
jmp 0x1001b081
mov esi, dword [esp + 0x50]
cmp dword [esp + 0xac], 0
jne 0x1001b012
cmp dword [esp + 0x40], 0
jne 0x1001affa
mov edi, 0xffffe481
mov edi, edi
test esi, esi
jne 0x1001affa
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001afe0
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], 0xffffe41e
call fcn.1001ef47
add esp, 8
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x1001b020
cmp ecx, dword [esp + 0x64]
jle 0x1001b028
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x40], ecx
test esi, esi
jne 0x1001b034
mov esi, dword [esp + 0x20]
mov dword [esp + 0x50], esi
mov edx, dword [esp + 0x64]
lea eax, [edx + ecx - 1]
cdq
idiv ecx
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0xb4], edx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x98], eax
jmp 0x1001afa1
mov eax, dword [esp + 0x4c]
test ecx, ecx
jne 0x1001b08d
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x40], ecx
test esi, esi
jne 0x1001b097
mov esi, eax
mov dword [esp + 0x50], esi
test eax, eax
jne 0x1001b0b6
mov esi, 0xffffe47d
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b0a0
mov eax, dword [esp + 0x20]
lea eax, [eax + esi - 1]
cdq
idiv esi
imul eax, dword [esp + 0xa4]
cmp edi, eax
jge 0x1001b0e8
mov esi, 0xffffe47c
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b0d2
cmp dword [esp + 0xb4], eax
mov dword [esp + 0x8c], eax
jge 0x1001b116
mov esi, 0xffffe47c
lea ecx, [ecx]
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b100
mov esi, dword [esp + 0x10]
mov edx, 1
cmp esi, edx
mov dword [esp + 0xb4], eax
je 0x1001b164
mov edi, 0xffffe43f
nop
cmp esi, 2
mov edx, 1
jne 0x1001b140
cmp dword [esp + 0x54], edx
je 0x1001b164
mov eax, dword [esp + 0x44]
cmp eax, 6
je 0x1001b164
cmp eax, 7
je 0x1001b164
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001b130
mov edi, dword [esp + 0xec]
test edi, edi
je 0x1001b1c5
mov dword [esp + 0xc], edx
lea esi, [edi + 4]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x54]
cmp ecx, eax
jae 0x1001b184
mov eax, ecx
cmp dword [esp + 0xc], eax
jae 0x1001b1b8
mov ecx, dword [esi]
cmp ecx, dword [edi]
je 0x1001b1ae
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], 0xffffe477
call fcn.1001ef47
mov eax, dword [esi]
add esp, 8
cmp eax, dword [edi]
jne 0x1001b190
add dword [esp + 0xc], 1
add esi, 4
jmp 0x1001b176
mov edi, dword [edi]
mov dword [esp + 0x24], edi
mov edx, 1
jmp 0x1001b1c9
mov edi, dword [esp + 0x24]
cmp edi, edx
jne 0x1001b1f2
cmp dword [esp + 0x54], edx
je 0x1001b1df
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffffe
cmp ecx, 2
ja 0x1001b1f2
cmp dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x54], edx
jne 0x1001b1f2
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x78]
cmp esi, edx
jbe 0x1001b216
mov esi, 0xffffe43e
nop
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b200
test esi, esi
mov ecx, dword [esp + 0x54]
je 0x1001b26d
mov eax, ecx
sub eax, esi
cmp eax, 4
je 0x1001b238
cmp eax, 3
je 0x1001b238
cmp eax, edx
je 0x1001b238
xor esi, esi
mov dword [esp + 0x78], esi
jmp 0x1001b272
or dword [ebx + 0x738], 0x2000
mov edx, dword [esp + 0xe4]
cmp dword [edx], 1
mov eax, dword [ebx + 0x738]
jne 0x1001b26d
mov edx, 1
or eax, 0x4000
mov dword [esp + 0xd0], edx
mov dword [ebx + 0x738], eax
jmp 0x1001b272
mov edx, 1
sub ecx, esi
cmp ecx, 4
jne 0x1001b2f8
cmp dword [esp + 0x14], 5
je 0x1001b29b
mov esi, 0xffffe43e
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b285
cmp edi, 8
je 0x1001b2c3
mov edi, 8
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], 0xffffe477
call fcn.1001ef47
add esp, 8
cmp dword [esp + 0x24], edi
jne 0x1001b2a5
test esi, esi
je 0x1001b2e6
mov esi, 0xffffe43e
lea esp, [esp]
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b2d0
mov eax, 0x20
mov dword [esp + 0x24], eax
mov dword [esp + 0x74], eax
jmp 0x1001b4ab
cmp ecx, 3
jne 0x1001b33c
cmp edi, 8
je 0x1001b323
lea edi, [ecx + 5]
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], 0xffffe477
call fcn.1001ef47
add esp, 8
cmp dword [esp + 0x24], edi
jne 0x1001b305
mov edi, 0x18
lea ecx, [esi*8 + 0x18]
mov dword [esp + 0x24], edi
mov dword [esp + 0x74], ecx
jmp 0x1001b4af
cmp ecx, edx
jne 0x1001b493
lea eax, [edi - 9]
cmp eax, 7
ja 0x1001b3a5
cmp dword [esp + 0x14], edx
ja 0x1001b3a5
cmp dword [esp + 0x44], edx
je 0x1001b376
mov esi, 0xffffe482
lea ecx, [ecx]
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b360
test esi, esi
mov dword [esp + 0x9c], edx
je 0x1001b39c
mov esi, 0xffffe43e
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b386
mov dword [esp + 0x74], edi
jmp 0x1001b50f
cmp edi, 0x10
jne 0x1001b3e3
cmp dword [esp + 0x14], 2
jne 0x1001b3e3
test esi, esi
je 0x1001b3d6
mov esi, 0xffffe43e
lea ebx, [ebx]
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b3c0
mov dword [esp + 0x74], 0x10
jmp 0x1001b4af
mov esi, 0xffffe43e
jmp 0x1001b3f0
mov eax, dword [esp + 0x14]
cmp eax, 3
ja 0x1001b3fe
cmp eax, 2
jne 0x1001b414
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b3f0
mov edi, dword [esp + 0x24]
cmp edi, 1
je 0x1001b462
lea ecx, [ecx]
mov edi, dword [esp + 0x24]
cmp edi, 2
je 0x1001b458
cmp edi, 4
je 0x1001b458
cmp edi, 8
je 0x1001b458
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], 0xffffe477
call fcn.1001ef47
add esp, 8
cmp dword [esp + 0x24], 1
jne 0x1001b420
mov edi, dword [esp + 0x24]
jmp 0x1001b462
cmp edi, 1
je 0x1001b462
cmp edi, 4
jne 0x1001b483
cmp dword [esp + 0x78], 0
je 0x1001b483
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], esi
call fcn.1001ef47
mov edi, dword [esp + 0x2c]
add esp, 8
jmp 0x1001b458
mov eax, dword [esp + 0x78]
add eax, 1
imul eax, edi
mov dword [esp + 0x74], eax
jmp 0x1001b4af
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], 0xffffe43e
call fcn.1001ef47
add esp, 8
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
cmp eax, 5
je 0x1001b4c4
cmp eax, 8
je 0x1001b4c4
cmp eax, 0x80b2
jne 0x1001b505
cmp dword [esp + 0xc4], 1
je 0x1001b505
mov esi, 0xffffe440
cmp dword [esp + 0xc4], 2
jne 0x1001b4e7
cmp edi, 8
jb 0x1001b4e7
cmp edi, 0x10
jne 0x1001b501
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
mov edi, dword [esp + 0x2c]
add esp, 8
jmp 0x1001b4d3
mov eax, dword [esp + 0x44]
cmp eax, 6
je 0x1001b547
cmp eax, 7
je 0x1001b53c
mov esi, 0xffffe483
mov eax, dword [esp + 0x14]
cmp eax, 5
ja 0x1001b526
cmp eax, 4
jne 0x1001b5ba
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b514
mov eax, dword [esp + 0x14]
mov dword [0x16fd69a0], eax
jmp 0x1001b54b
mov eax, dword [esp + 0x14]
cmp edi, 8
jne 0x1001b576
cmp eax, 1
jbe 0x1001b5ba
mov esi, 0xffffe483
lea ebx, [ebx]
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b560
cmp edi, 0x18
jne 0x1001b5a2
cmp eax, 6
je 0x1001b5ba
mov esi, 0xffffe483
cmp dword [esp + 0x14], 2
jbe 0x1001b5ba
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001b585
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], 0xffffe477
call fcn.1001ef47
add esp, 8
cmp dword [0x16fd6054], 0
jne 0x1001b5d0
mov dword [esp + 0x4c], 0
jmp 0x1001b6a1
xor eax, eax
cmp dword [esp + 0x90], 4
setne al
test byte [ebx + 0x734], 2
mov dword [esp + 0x4c], eax
je 0x1001b6a1
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x4c], ecx
jmp 0x1001b6a1
test byte [esi + 0x4e0], 1
mov dword [esp + 0xa0], 1
je 0x1001b62f
mov edx, dword [esi + 0x498]
push 2
push edx
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
test byte [esi + 0x4e0], 1
jne 0x1001b612
movzx eax, byte [esi + 0x789]
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x2c], eax
je 0x1001b64b
mov dword [esp + 0x2c], 2
movzx eax, byte [esi + 0x78a]
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x1001b65e
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x24], 0x44323347
mov dword [esp + 0x44], 3
mov dword [esp + 0x4c], ebx
jne 0x1001b67a
mov dword [esp + 0xb8], ecx
mov ecx, 0x8000
mov eax, 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], 0x7fffffff
mov dword [esp + 0x8c], eax
mov ebx, esi
mov eax, dword [ebx + 0x734]
mov edx, eax
shr edx, 6
shr eax, 0x12
and edx, 1
and eax, 1
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x738]
shr eax, 0x1f
add edx, 0xfffffffe
cmp edx, 2
mov dword [esp + 0x70], eax
ja 0x1001b6e4
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
add eax, 7
sar eax, 3
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x20]
xor esi, esi
xor edi, edi
mov dword [0x16fd6094], edx
mov ecx, eax
mov dword [0x16fd6098], eax
test byte [ebx + 0x4e0], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], edi
je 0x1001b7df
movzx ecx, word [ebx + 0x4e8]
movzx edi, word [ebx + 0x4ec]
movzx esi, word [ebx + 0x4ee]
mov dword [esp + 0x10], ecx
movzx ecx, word [ebx + 0x4ea]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
cmp edi, edx
jge 0x1001b75f
cmp esi, eax
jl 0x1001b785
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], 0xfffff60c
call fcn.1001ef47
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
add esp, 8
jmp 0x1001b757
mov edx, dword [esp + 0x10]
lea eax, [edi + edx]
cmp eax, dword [esp + 0x64]
jle 0x1001b79c
mov edx, dword [esp + 0x64]
sub edx, edi
mov dword [esp + 0x10], edx
lea eax, [esi + ecx]
cmp eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
jle 0x1001b7b1
mov ecx, eax
sub ecx, esi
mov dword [esp + 0x18], ecx
test edx, edx
jle 0x1001b7b9
test ecx, ecx
jg 0x1001b7e3
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], 0xfffff60c
call fcn.1001ef47
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add esp, 8
jmp 0x1001b7b1
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x90], 4
jne 0x1001b7f7
sub eax, esi
sub eax, ecx
mov esi, eax
mov dword [esp + 0x6c], esi
cmp dword [esp + 0x74], 2
mov dword [0x16fd6aa8], edx
mov dword [0x16fd6aac], ecx
mov dword [0x16fd6aa0], edi
mov dword [0x16fd6aa4], esi
jne 0x1001b81d
mov edx, 4
jmp 0x1001b82d
cmp dword [esp + 0x24], 8
mov edx, 8
je 0x1001b82d
mov edx, dword [esp + 0x74]
mov eax, dword [ebx + 0x738]
mov edi, dword [esp + 0x14]
and eax, 0x9000
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x7c], eax
je 0x1001b8a7
mov esi, 0xffffe422
mov eax, 1
cmp dword [esp + 0x24], eax
je 0x1001b86b
cmp dword [esp + 0x9c], 0
jne 0x1001b86b
cmp edi, 5
jne 0x1001b889
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add esp, 8
jmp 0x1001b851
test dword [ebx + 0x738], 0x8000
mov edx, 0x20
mov dword [esp + 0x54], edx
je 0x1001b8d5
mov dword [esp + 0xd4], eax
jmp 0x1001b8d5
cmp edi, 2
jne 0x1001b8d5
cmp dword [esp + 0x24], 0x10
jne 0x1001b8bc
cmp byte [ebx + 0x7a5], 0x18
je 0x1001b8cc
cmp dword [esp + 0x74], 0x20
jne 0x1001b8d5
cmp byte [ebx + 0x7a5], 0x18
jne 0x1001b8d5
mov edx, 0x18
mov dword [esp + 0x54], edx
xor eax, eax
cmp edi, 5
mov dword [ebx + 0x18], eax
lea esi, [ebx + 0x14]
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [esi], 0x28
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
mov word [ebx + 0x20], 1
mov word [ebx + 0x22], dx
jne 0x1001b91b
mov eax, 0x4b594d43
jmp 0x1001b92b
mov eax, dword [esp + 0x9c]
neg eax
sbb eax, eax
and eax, 0x59415247
cmp edi, 3
mov dword [ebx + 0x24], eax
jne 0x1001b93d
or dword [ebx + 0x734], 0x4000
cmp dword [esp + 0x24], 8
ja 0x1001b954
mov ecx, dword [esp + 0x24]
mov eax, 1
shl eax, cl
mov dword [ebx + 0x34], eax
jmp 0x1001b965
cmp dword [esp + 0x9c], 0
je 0x1001b965
mov dword [ebx + 0x34], 0
cmp dword [esp + 0x9c], 0
mov ecx, dword [ebx + 0x34]
mov dword [ebx + 0x38], ecx
je 0x1001b97d
mov edi, dword [esp + 0x10]
add edi, edi
jmp 0x1001b98b
movzx edi, dx
imul edi, dword [esp + 0x10]
add edi, 7
sar edi, 3
mov eax, dword [ebx + 0x734]
test eax, 0x8000
mov dword [esp + 0x20], edi
je 0x1001b9d2
mov edx, dword [ebx + 0x790]
mov dword [esp + 0x3c], edx
cmp dword [esp + 0xa0], 0
jne 0x1001b9b8
mov eax, dword [esp + 0x3c]
cmp eax, edi
jge 0x1001b9e3
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], 0xfffff6f7
call fcn.1001ef47
add esp, 8
jmp 0x1001b9a6
test eax, 0x200
jne 0x1001b9df
add edi, 3
and edi, 0xfffffffc
mov dword [esp + 0x3c], edi
cmp dword [esp + 0xa0], 0
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x790], edx
je 0x1001b9fc
or eax, 0xffffffff
jmp 0x1001ba05
mov eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x18]
mov dword [ebx + 0x28], eax
lea edi, [ebx + 0x754]
mov ecx, 0xa
mov eax, 8
rep movsd dword es:[edi], dword [esi]
cmp word [ebx + 0x762], ax
jbe 0x1001ba31
xor ecx, ecx
mov dword [ebx + 0x778], ecx
mov dword [ebx + 0x774], ecx
cmp dword [esp + 0x14], 1
ja 0x1001bac5
cmp dword [esp + 0x24], eax
ja 0x1001bdaa
cmp dword [ebx + 0x34], 0
mov dword [esp + 0xc], 0
jbe 0x1001bdaa
xor eax, eax
cmp dword [esp + 0x70], eax
sete al
xor ecx, ecx
cmp dword [esp + 0x14], ecx
sete cl
xor esi, esi
mov dword [esp + 0x58], eax
mov dword [esp + 0xc8], ecx
lea ecx, [ebx + 0x3d]
lea ebx, [ebx]
mov edi, dword [ebx + 0x34]
xor edx, edx
sub edi, 1
mov eax, esi
div edi
mov edx, dword [esp + 0x58]
cmp dword [esp + 0xc8], edx
jne 0x1001ba9b
not al
mov byte [ecx + 1], al
mov byte [ecx], al
mov byte [ecx - 1], al
mov eax, dword [esp + 0xc]
mov byte [ecx + 2], 0
add eax, 1
add esi, 0xff
add ecx, 4
cmp eax, dword [ebx + 0x34]
mov dword [esp + 0xc], eax
jb 0x1001ba80
jmp 0x1001bdaa
mov edx, dword [ebx + 0x34]
test edx, edx
mov dword [esp + 0x30], edx
je 0x1001bdb1
mov edi, dword [esp + 0xd8]
xor ecx, ecx
test edi, edi
jne 0x1001bafc
mov esi, 0xffffe480
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001bae6
lea eax, [edx + edx*2]
cmp dword [esp + 0xbc], eax
je 0x1001bb26
mov esi, 0xffffe47f
lea ecx, [ecx]
mov ecx, dword [ebx + 0x498]
push 2
push ecx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001bb10
lea esi, [edx + edx*2]
xor eax, eax
test esi, esi
jbe 0x1001bbf6
mov esi, dword [ebx + 0x34]
lea esi, [esi + esi*2]
or ecx, dword [edi + eax*4]
add eax, 1
cmp eax, esi
jb 0x1001bb39
cmp ecx, 0x100
jne 0x1001bbf4
cmp edx, 2
jne 0x1001bbfa
mov eax, dword [edi + 8]
cmp dword [edi], eax
jne 0x1001bbfa
cmp eax, dword [edi + 0x10]
jne 0x1001bbfa
mov eax, dword [edi + 0xc]
cmp dword [edi + 4], eax
jne 0x1001bbfa
cmp eax, dword [edi + 0x14]
jne 0x1001bbfa
mov eax, dword [esp + 0x44]
add eax, 0xfffffffe
xor ecx, ecx
cmp eax, edx
lea eax, [edx - 1]
ja 0x1001bb96
cmp dword [esp + 0x70], ecx
sete cl
jmp 0x1001bb9e
cmp dword [esp + 0x70], 0
setne cl
sub eax, ecx
cmp dword [edi + ecx*4], 0
jne 0x1001bbb4
mov byte [ebx + 0x3c], 0
mov byte [ebx + 0x3d], 0
mov byte [ebx + 0x3e], 0
jmp 0x1001bbc0
mov byte [ebx + 0x3c], 0xff
mov byte [ebx + 0x3d], 0xff
mov byte [ebx + 0x3e], 0xff
mov byte [ebx + 0x3f], 0
cmp dword [edi + eax*4], 0
jne 0x1001bbdf
mov byte [ebx + 0x40], 0
mov byte [ebx + 0x41], 0
mov byte [ebx + 0x42], 0
mov byte [ebx + 0x43], 0
jmp 0x1001bd99
mov byte [ebx + 0x40], 0xff
mov byte [ebx + 0x41], 0xff
mov byte [ebx + 0x42], 0xff
mov byte [ebx + 0x43], 0
jmp 0x1001bd99
jge 0x1001bbfa
xor esi, esi
jmp 0x1001bbff
mov esi, 8
cmp edx, 2
jne 0x1001bcca
mov eax, dword [esp + 0x44]
add eax, 0xfffffffe
cmp eax, edx
ja 0x1001bcca
mov edx, dword [edi]
xor eax, eax
cmp dword [esp + 0x78], eax
mov ecx, esi
je 0x1001bc75
cmp dword [esp + 0x70], eax
setne al
shr edx, cl
mov byte [ebx + eax*4 + 0x3c], dl
mov edx, dword [edi + 8]
shr edx, cl
mov byte [ebx + eax*4 + 0x3d], dl
mov edx, dword [edi + 0x10]
shr edx, cl
mov byte [ebx + eax*4 + 0x3f], 0
mov byte [ebx + eax*4 + 0x3e], dl
mov edx, dword [edi + 4]
xor eax, eax
cmp dword [esp + 0x70], eax
sete al
shr edx, cl
mov byte [ebx + eax*4 + 0x3c], dl
mov edx, dword [edi + 0xc]
shr edx, cl
mov byte [ebx + eax*4 + 0x3d], dl
mov edx, dword [edi + 0x14]
shr edx, cl
mov byte [ebx + eax*4 + 0x3e], dl
mov byte [ebx + eax*4 + 0x3f], 0
jmp 0x1001bd95
cmp dword [esp + 0x70], 0
setne al
shr edx, cl
mov ecx, esi
mov byte [ebx + eax*4 + 0x3e], dl
mov edx, dword [edi + 8]
shr edx, cl
mov byte [ebx + eax*4 + 0x3d], dl
mov edx, dword [edi + 0x10]
shr edx, cl
mov byte [ebx + eax*4 + 0x3f], 0
mov byte [ebx + eax*4 + 0x3c], dl
mov edx, dword [edi + 4]
xor eax, eax
cmp dword [esp + 0x70], eax
sete al
shr edx, cl
mov byte [ebx + eax*4 + 0x3e], dl
mov edx, dword [edi + 0xc]
shr edx, cl
mov byte [ebx + eax*4 + 0x3d], dl
mov edx, dword [edi + 0x14]
shr edx, cl
mov byte [ebx + eax*4 + 0x3c], dl
mov byte [ebx + eax*4 + 0x3f], 0
jmp 0x1001bd95
xor ecx, ecx
cmp dword [esp + 0x78], ecx
mov dword [esp + 0xc], ecx
je 0x1001bd37
test edx, edx
jbe 0x1001bd99
lea eax, [edi + edx*8]
lea edx, [edi + edx*4]
mov dword [esp + 0x5c], eax
lea eax, [ebx + 0x3d]
mov dword [esp + 0x34], edx
nop
mov edx, dword [edi + ecx*4]
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x34]
add dword [esp + 0x34], 4
add eax, 4
mov byte [eax - 5], dl
mov edx, dword [ecx]
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x5c], 4
mov byte [eax - 4], dl
mov edx, dword [ecx]
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0xc]
mov byte [eax - 2], 0
add ecx, 1
mov byte [eax - 3], dl
cmp ecx, dword [ebx + 0x34]
mov dword [esp + 0xc], ecx
jb 0x1001bcf0
jmp 0x1001bd95
test edx, edx
jbe 0x1001bd99
lea eax, [edi + edx*8]
lea edx, [edi + edx*4]
mov dword [esp + 0x5c], eax
lea eax, [ebx + 0x3d]
mov dword [esp + 0x34], edx
lea esp, [esp]
mov edx, dword [edi + ecx*4]
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x34]
add dword [esp + 0x34], 4
add eax, 4
mov byte [eax - 3], dl
mov edx, dword [ecx]
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x5c], 4
mov byte [eax - 4], dl
mov edx, dword [ecx]
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0xc]
mov byte [eax - 2], 0
add ecx, 1
mov byte [eax - 5], dl
cmp ecx, dword [ebx + 0x34]
mov dword [esp + 0xc], ecx
jb 0x1001bd50
mov edx, dword [esp + 0x30]
push edx
lea eax, [ebx + 0x3c]
push eax
call fcn.1001d780
add esp, 8
test eax, eax
je 0x1001bdb1
or dword [ebx + 0x734], 1
cmp dword [0x16fd6054], 0
jne 0x1001bdcc
cmp dword [esp + 0x90], 4
mov eax, dword [ebx + 0x1c]
je 0x1001bdc9
neg eax
mov dword [ebx + 0x1c], eax
mov esi, dword [ebx + 0x734]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
push ecx
shr esi, 1
push edx
and esi, 1
call fcn.1001d800
add esp, 8
cmp dword [0x16fd6054], 0
je 0x1001be0e
mov eax, dword [ebx + 0x734]
shr eax, 1
and eax, 1
cmp esi, eax
je 0x1001be0e
xor ecx, ecx
cmp dword [esp + 0x4c], ecx
sete cl
mov dword [esp + 0x4c], ecx
test byte [ebx + 0x734], 8
je 0x1001be4f
call fcn.10015ba0
push 0x16fb0088
push 0
mov dword [esp + 0xfc], eax
lea eax, [ebx + 0x754]
push 0x28
push eax
call fcn.100169c0
mov edx, dword [ebx + 0x774]
add edx, edx
add edx, edx
push edx
lea eax, [ebx + 0x3c]
push eax
call fcn.10016910
add esp, 0x18
call fcn.10015ba0
mov esi, dword [esp + 0x44]
cmp esi, 6
mov edi, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x108], edi
je 0x1001be73
cmp esi, 7
jne 0x1001bef2
mov eax, dword [esp + 0x24]
cmp eax, 0x18
je 0x1001bef2
cmp eax, 8
je 0x1001bebb
mov edi, 0xffffe477
jmp 0x1001be90
mov ecx, dword [0x16fd604c]
mov dword [ecx + 0xc], edi
mov edx, dword [0x16fd604c]
mov eax, dword [edx + 0x498]
push 2
push eax
call fcn.1001ef47
add esp, 8
cmp dword [esp + 0x24], 8
jne 0x1001be90
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x14], 1
je 0x1001bef2
mov esi, 0xffffe483
jmp 0x1001bed0
mov ecx, dword [0x16fd604c]
mov dword [ecx + 0xc], esi
mov edx, dword [0x16fd604c]
mov eax, dword [edx + 0x498]
push 2
push eax
call fcn.1001ef47
add esp, 8
jmp 0x1001bed0
push ebx
call fcn.1001f9e9
add esp, 4
cmp esi, 0x8005
ja 0x1001c096
je 0x1001c06e
lea eax, [esi - 1]
cmp eax, 6
ja 0x1001c096
jmp dword [eax*4 + 0x16fad518]
cmp dword [esp + 0x2c], 1
je 0x1001c096
push 0x1000
mov dword [0x16fd60a8], 1
call fcn.1001f320
mov dword [0x16fd6070], eax
mov dword [0x16fd6090], eax
add esp, 4
cmp dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
jne 0x1001c0ae
test byte [ebx + 0x4d0], 2
je 0x1001c0f4
cmp dword [esp + 0xa0], 0
je 0x1001c0d6
mov esi, 0xfffff61c
lea ecx, [ecx]
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001c0c0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
add eax, 0xffffffff
imul eax, ecx
add edi, eax
neg edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], edx
mov ecx, dword [0x16fd6aa0]
mov esi, dword [esp + 0x40]
xor edx, edx
mov eax, ecx
div esi
xor edx, edx
mov edi, eax
mov eax, dword [0x16fd6aa8]
add ecx, eax
lea eax, [ecx + esi - 1]
div esi
imul esi, dword [esp + 0x74]
xor edx, edx
add esi, 7
sar esi, 3
mov dword [esp + 0x104], edi
mov dword [esp + 0x5c], esi
mov ecx, eax
mov eax, dword [0x16fd6aa4]
div dword [esp + 0x50]
sub ecx, edi
mov dword [esp + 0x90], ecx
mov dword [esp + 0x58], eax
mov eax, esi
imul eax, dword [esp + 0x50]
cmp ecx, 1
mov dword [esp + 0xc8], eax
jle 0x1001c196
add ecx, 0xffffffff
imul ecx, eax
lea edx, [esp + 0xc0]
push edx
push ecx
push ebx
call fcn.1001d600
add esp, 0xc
test eax, eax
mov dword [esp + 0xdc], eax
jne 0x1001c196
mov esi, 0xfffffc11
mov eax, dword [ebx + 0x498]
push 2
push eax
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001c180
imul esi, dword [esp + 0xa4]
imul edi, dword [esp + 0x40]
sub dword [esp + 0x68], edi
lea ecx, [esp + 0xc0]
push ecx
add esi, 3
push esi
push ebx
call fcn.1001d600
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x1001c1e6
mov esi, 0xfffffc11
lea esp, [esp]
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001c1d0
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0xc0]
push eax
push ecx
push ebx
call fcn.1001d600
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
jne 0x1001c226
mov esi, 0xfffffc11
lea esp, [esp]
mov edx, dword [ebx + 0x498]
push 2
push edx
mov dword [ebx + 0xc], esi
call fcn.1001ef47
add esp, 8
jmp 0x1001c210
push 0x16fd6a60
mov dword [0x16fd6a5c], 1
call fcn.1001ef10
add esp, 4
test eax, eax
je 0x1001c2c9
mov eax, dword [esp + 0x60]
test eax, eax
je 0x1001c295
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
cmp eax, 8
ja 0x1001c281
je 0x1001c288
cmp eax, 2
jb 0x1001c295
cmp eax, 4
jbe 0x1001c27a
cmp eax, 5
jne 0x1001c295
mov ecx, dword [esp + 0xa8]
push ecx
call fcn.100124c0
jmp 0x1001c292
call fcn.1001f170
jmp 0x1001c295
cmp eax, 0x80b2
jne 0x1001c295
push 0x16fd6adc
call fcn.10002930
add esp, 4
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc], 0xfffffc0b
mov ebx, dword [esp + 0x44]
cmp ebx, 0x8005
ja 0x1001d3dd
je 0x1001d3bf
lea eax, [ebx - 1]
cmp eax, 3
ja 0x1001d3dd
jmp dword [eax*4 + 0x16fad534]
mov eax, dword [esp + 0x58]
imul eax, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, ecx
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x6c]
add edx, esi
cmp eax, edx
mov dword [esp + 0xbc], edx
jge 0x1001c2a4
mov eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x50]
mov esi, eax
imul eax, dword [esp + 0x50]
imul esi, dword [esp + 0xa4]
add esi, dword [esp + 0x104]
cmp eax, ecx
mov dword [esp + 0x80], eax
jge 0x1001c344
mov dword [esp + 0x80], ecx
cmp dword [esp + 0x8c], esi
jle 0x1001c356
cmp dword [esp + 0xb4], esi
jg 0x1001c373
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 0xffffe47c
mov eax, dword [eax + 0x498]
push 2
push eax
call fcn.1001ef47
add esp, 8
jmp 0x1001c344
xor eax, eax
cmp dword [esp + 0x90], eax
mov dword [esp + 0x48], eax
jle 0x1001c613
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
sub ecx, eax
lea esi, [eax + esi*4]
mov dword [esp + 0x94], ecx
cmp ebx, 0x8005
ja 0x1001c41f
je 0x1001c413
lea eax, [ebx - 1]
cmp eax, 7
ja 0x1001c4a9
jmp dword [eax*4 + 0x16fad544]
mov eax, dword [esi]
mov dword [0x16fd6030], eax
jmp 0x1001c4a9
cmp ebx, 0x80b2
jne 0x1001c4a9
mov ecx, dword [esi]
push 0x38
xor eax, eax
push 0x16fb0540
push 0x16fd6adc
mov dword [0x16fd6030], ecx
mov dword [0x16fd6adc], eax
mov dword [0x16fd6ae0], eax
mov dword [0x16fd6afc], 0x16fa99b0
mov dword [0x16fd6b00], 0x16fa99d0
mov dword [0x16fd6b04], 0x16fd6b14
call fcn.10001170
add esp, 0xc
test eax, eax
je 0x1001c4a9
cmp eax, 0xfffffffc
jne 0x1001c481
mov eax, 0xfffffc11
jmp 0x1001c492
sub eax, 0xfffffffa
neg eax
sbb eax, eax
and eax, 0xffffe2bb
add eax, 0xfffffa1d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x498]
push 2
push edx
mov dword [ecx + 0xc], eax
call fcn.1001ef47
add esp, 8
cmp dword [esp + 0x84], 0
mov dword [esp + 0x60], 1
je 0x1001c4d0
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + esi]
push 0
push ecx
call fcn.10016280
add esp, 8
mov eax, dword [esp + 0x90]
add eax, 0xffffffff
cmp dword [esp + 0x48], eax
jge 0x1001c5ed
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
add eax, edx
cmp ecx, eax
mov dword [esp + 0x60], eax
jge 0x1001c599
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0xbc]
jge 0x1001c599
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xb0]
push edi
push ecx
push edx
push eax
push ebx
call fcn.100199f0
add esp, 0x24
test eax, eax
je 0x1001d22d
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x6c]
jl 0x1001c586
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x80]
mov edx, dword [esp + 0x14]
imul eax, edi
add eax, dword [esp + 0x1c]
push edi
add eax, dword [esp + 0xe0]
push edx
push eax
call fcn.1001ef7d
add esp, 0xc
add dword [esp + 0x28], 1
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x60]
jl 0x1001c502
cmp ebx, 8
mov dword [esp + 0x60], 0
ja 0x1001c5d0
je 0x1001c5d8
cmp ebx, 2
jb 0x1001c5ed
cmp ebx, 4
jbe 0x1001c5c9
cmp ebx, 5
jne 0x1001c5ed
mov edx, dword [esp + 0xa8]
push edx
call fcn.100124c0
add esp, 4
jmp 0x1001c5ed
call fcn.1001f170
jmp 0x1001c5ed
cmp ebx, 0x80b2
jne 0x1001c5ed
push 0x16fd6adc
call fcn.10002930
add esp, 4
test eax, eax
jne 0x1001d316
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x1c], ecx
add eax, 1
add esi, 4
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x48], eax
jl 0x1001c3a4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x28]
add eax, ecx
cmp edx, eax
mov dword [esp + 0x100], eax
jge 0x1001d24d
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0xbc]
jge 0x1001d24d
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x6c]
jl 0x1001c6d6
mov eax, dword [esp + 0x90]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x48], 0
jle 0x1001c6b2
mov ebx, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], eax
jmp 0x1001c680
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0x80]
push edi
imul edx, edi
add edx, esi
add edx, dword [esp + 0xe0]
push edx
push ebx
call fcn.1001ef7d
add esi, dword [esp + 0xd4]
add esp, 0xc
add ebx, edi
sub dword [esp + 0x1c], 1
jne 0x1001c680
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
imul esi, edi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
add esi, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.1001d960
add esp, 0xc
jmp 0x1001c6da
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0x50]
push eax
push edi
push esi
mov esi, dword [esp + 0xb8]
push ecx
push esi
push edx
call fcn.100199f0
add esp, 0x24
test eax, eax
je 0x1001d22d
test esi, esi
je 0x1001c7cb
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x1001c7cb
mov esi, dword [ebp + 8]
lea ecx, [eax + 7]
sar ecx, 3
test byte [esi + 0x4e0], 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], ecx
jne 0x1001c755
mov ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x1001c759
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x734]
lea edi, [ecx + 7]
sar edi, 3
test eax, 0x8000
mov dword [esp + 0x20], edi
je 0x1001c7a9
mov edx, dword [esi + 0x790]
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
cmp eax, edi
jge 0x1001c7ba
mov ebx, 0xfffff6f7
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], ebx
call fcn.1001ef47
mov edx, dword [esp + 0x44]
add esp, 8
cmp edx, edi
jl 0x1001c787
mov ecx, dword [esp + 0x10]
jmp 0x1001c7ba
test eax, 0x200
jne 0x1001c7b6
add edi, 3
and edi, 0xfffffffc
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x758], ecx
mov dword [esi + 0x18], ecx
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x6c]
jl 0x1001d211
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
lea eax, [edi - 1]
cmp eax, 0x1f
ja 0x1001d1a6
movzx edx, byte [eax + 0x16fad588]
jmp dword [edx*4 + 0x16fad564]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
push edx
push 0
push eax
push esi
call fcn.10017010
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x7c]
add dword [esp + 0x40], ecx
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x28]
mov edx, dword [ebp + 8]
add esp, 0x10
mov dword [edx + 0x494], eax
mov eax, dword [esp + 0xe8]
add eax, 1
cmp eax, dword [esp + 0xe0]
mov dword [esp + 0xe8], eax
jne 0x1001d211
mov eax, dword [0x16fd604c]
push 4
push eax
call fcn.10003950
add esp, 8
mov dword [esp + 0xe8], 0
add dword [esp + 0x28], 1
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x5c]
jl 0x1001c634
jmp 0x1001d24d
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jge 0x1001d243
mov dword [esp + 0x18], 0
jmp 0x1001d24d
mov eax, dword [esp + 0x28]
sub eax, ecx
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x44]
cmp ebx, 8
mov dword [esp + 0x60], 0
ja 0x1001d2a6
je 0x1001d2ae
cmp ebx, 2
jb 0x1001d2bf
cmp ebx, 4
jbe 0x1001d290
cmp ebx, 5
jne 0x1001d2bf
mov eax, dword [esp + 0xa8]
push eax
call fcn.100124c0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
add esp, 4
mov dword [esp + 0x2c], eax
jmp 0x1001c2fe
call fcn.1001f170
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x2c], eax
jmp 0x1001c2fe
cmp ebx, 0x80b2
jne 0x1001d2bf
push 0x16fd6adc
call fcn.10002930
add esp, 4
test eax, eax
jne 0x1001d2d0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x2c], eax
jmp 0x1001c2fe
mov esi, dword [ebp + 8]
mov edi, 0xfffffc10
jmp 0x1001d2e0
mov ecx, dword [esi + 0x498]
push 2
push ecx
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001d2e0
mov esi, dword [ebp + 8]
mov edi, 0xfffffc10
mov edi, edi
mov eax, dword [esi + 0x498]
push 2
push eax
mov dword [esi + 0xc], edi
call fcn.1001ef47
add esp, 8
jmp 0x1001d320
mov eax, dword [0x16fd6090]
test eax, eax
je 0x1001d3dd
push eax
call fcn.1001f3a0
add esp, 4
xor eax, eax
mov dword [0x16fd6070], eax
mov dword [0x16fd6090], eax
mov eax, dword [esp + 0x34]
imul eax, esi
add eax, dword [esp + 0x108]
push eax
call fcn.1001db10
mov ecx, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov dword [ecx + 0x494], 0x64
pop ebx
mov esp, ebp
pop ebp
ret