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

Disassembly:
push 0xffffffffffffffff
push 0x77fa2f
mov eax, dword fs:[0]
push eax
mov eax, 0x160c0
mov dword fs:[0], esp
call fcn.0074dd20
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.004089d0
mov edi, eax
test edi, edi
je 0x6472e2
cmp byte [0x992082], 0
je 0x642008
push 0x1b16358
call dword [0x794290]
cmp byte [0x992082], 0
mov edi, dword [edi + 0x2714]
je 0x642022
push 0x1b16358
call dword [0x79428c]
test edi, edi
je 0x6472e2
test dword [edi + 0x28], 0x8000
je 0x6472e2
call fcn.0067baa0
mov dword [esi + 0x4d4], eax
sub eax, dword [esi + 0x4d0]
cmp eax, dword [esi + 0x25c]
jb 0x6472d1
push 0
push 0x97275c
push 0x971110
push 0
push edi
call fcn.0074d229
mov ebp, eax
add esp, 0x14
test ebp, ebp
mov dword [esp + 0x20], ebp
je 0x6472e2
xor ebx, ebx
test byte [0x1b0f574], 1
mov dword [esp + 0x10], ebx
jne 0x642099
or dword [0x1b0f574], 1
mov dword [0x1b0f56c], 0x800000
mov eax, dword [esi + 0x164]
cmp eax, 0x4b
mov byte [esi + 0x1c4], bl
mov byte [esi + 0x260], bl
ja case.0x6420b9.10
mov edi, 4
jmp dword [eax*4 + 0x647300]
mov eax, dword [esi + 0x16c]
mov ecx, dword [esi + 0x168]
push eax
push ecx
mov ecx, ebp
call fcn.004b3840
cmp byte [esi + 0x51c], 0
mov ebx, eax
mov dword [esp + 0x10], ebx
je 0x6420ff
mov edx, dword [esi + 0x4d4]
sub edx, dword [esi + 0x520]
cmp edx, 0x1f4
jbe 0x6420ff
mov byte [esi + 0x51c], 0
test ebx, ebx
je 0x642aac
mov edi, 1
cmp dword [ebx + 0x10], edi
jne 0x642aac
push 0
push 0x972794
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x64214d
mov eax, dword [eax + 0x18]
push 0
push eax
mov ecx, ebp
call fcn.0049e360
test al, al
je 0x64214d
mov dword [ebx + 4], 0
jmp 0x642aac
mov dword [ebx + 4], edi
jmp 0x642aac
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004acef0
cmp byte [esi + 0x511], 0
mov ebx, eax
mov dword [esp + 0x10], ebx
je 0x642189
cmp byte [0x1b0eb30], 0
je 0x642189
mov byte [0x1b0eb30], 0
mov byte [0x1b0eb2b], 1
test ebx, ebx
je 0x642aac
mov edi, dword [ebx + 0x18]
mov ecx, edi
call fcn.00492ee0
cmp eax, 1
jle 0x642aac
mov eax, dword [edi + 8]
test eax, eax
je 0x642aac
mov eax, dword [eax + 8]
cmp eax, 0xa
je 0x6421ca
cmp eax, 0x14
je 0x6421ca
cmp eax, 0x1e
je 0x6421ca
cmp eax, 0x50
jne 0x642aac
mov byte [esi + 0x260], 1
mov ecx, dword [ebx + 0x18]
call fcn.00492ee0
mov ecx, dword [eax*4 + 0x9817dc]
push ecx
mov ecx, esi
call fcn.006359a0
jmp 0x642aac
mov eax, dword [esi + 0x168]
cmp eax, 0xf
je 0x642254
push eax
mov ecx, ebp
call fcn.004aafa0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x642254
mov edi, dword [ebx + 0x18]
mov ecx, edi
call fcn.00492ee0
cmp eax, 1
jle 0x642aac
mov eax, dword [edi + 8]
test eax, eax
je 0x642aac
mov eax, dword [eax + 8]
cmp eax, 0xa
je 0x642835
cmp eax, 0x14
je 0x642835
cmp eax, 0x1e
je 0x642835
cmp eax, 0x50
jne 0x642aac
jmp 0x642835
xor ebx, ebx
jmp 0x642aa8
mov eax, dword [esi + 0x16c]
mov ecx, dword [esi + 0x168]
push eax
push ecx
mov ecx, ebp
call fcn.0049e0c0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x64228c
cmp dword [ebx + 4], 1
jne 0x64228c
mov dword [esi + 0x26c], 0xb
jmp 0x642296
mov dword [esi + 0x26c], 0
cmp byte [esi + 0x51c], 0
je 0x642aac
mov edx, dword [esi + 0x4d4]
sub edx, dword [esi + 0x520]
cmp edx, 0x1f4
jbe 0x642aac
mov byte [esi + 0x51c], 0
jmp 0x642aac
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004ae450
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004ad250
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b3c10
jmp 0x642aa6
push 0
push 0x97275c
push 0x971110
push 0
mov ecx, ebp
call fcn.004b3f10
push eax
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x642aac
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, eax
call fcn.004b3c10
jmp 0x642aa6
mov ecx, ebp
call fcn.0041be20
test al, al
je 0x642aac
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b1a40
push 0
push 0x972918
push 0x972774
mov ebx, eax
push 0
push ebx
mov dword [esp + 0x24], ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x642aac
mov eax, dword [eax + 0x18]
jmp 0x64239f
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004b1a70
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x642aac
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x642aac
push eax
mov ecx, esi
call fcn.00635bd0
jmp 0x642aac
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004b1aa0
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b38f0
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004aa970
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004b2410
cmp byte [esi + 0x511], 0
mov ebx, eax
mov dword [esp + 0x10], ebx
je 0x642aac
cmp byte [0x1b0eb30], 0
je 0x642aac
mov byte [0x1b0eb30], 0
mov byte [0x1b0eb2b], 1
jmp 0x642aac
mov ecx, ebp
call fcn.004b3f10
test eax, eax
je 0x642aac
push 0
push 0x97275c
push 0x971110
push 0
push eax
call fcn.0074d229
mov edi, eax
add esp, 0x14
test edi, edi
je 0x642aac
mov ecx, edi
call fcn.00421a80
test al, al
je 0x642aac
mov edx, dword [esi + 0x168]
push edx
mov ecx, edi
call fcn.004b38f0
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004b1190
jmp 0x642aa6
push 3
mov ecx, esi
call fcn.00635a20
cmp eax, 0xffffffff
je 0x642aac
test byte [ebp + 0x5f7c], 0x40
je 0x642aac
push eax
mov ecx, ebp
call fcn.004b1340
jmp 0x642aa6
mov ecx, ebp
call fcn.004b1180
push eax
mov ecx, ebp
call fcn.004b1340
jmp 0x642aa6
push 0
mov ecx, ebp
call fcn.004b10f0
jmp 0x642aa6
mov ecx, ebp
call fcn.0049e1e0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004b0640
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b0820
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004b0590
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004b1010
jmp 0x642aa6
cmp dword [esi + 0x168], ebx
jne 0x642552
mov edx, dword [0x9922cc]
mov ebx, dword [edx + 0x454]
jmp 0x642aa8
mov ecx, dword [0x9922cc]
lea eax, [esp + 0x34]
push eax
call fcn.00641f60
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x64256e
xor eax, eax
jmp 0x642577
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
mov ecx, dword [esi + 0x168]
cmp ecx, eax
ja 0x6425a2
add ecx, 0xffffffff
push ecx
lea ecx, [esp + 0x38]
call fcn.0041caf0
mov ebx, dword [eax]
lea ecx, [esp + 0x34]
mov dword [esp + 0x10], ebx
call fcn.00487bb0
jmp 0x642aac
xor ebx, ebx
lea ecx, [esp + 0x34]
mov dword [esp + 0x10], ebx
call fcn.00487bb0
jmp 0x642aac
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004b2ca0
jmp 0x642aa6
mov ebx, dword [ebp + 0x50c4]
jmp 0x642aa8
cmp dword [esi + 0x168], ebx
jne 0x6425ed
mov edx, dword [0x9922cc]
mov ebx, dword [edx + 0x4ec]
jmp 0x642aa8
mov ecx, dword [0x9922cc]
lea eax, [esp + 0x34]
push eax
call fcn.00641f90
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x64256e
xor eax, eax
jmp 0x642577
mov eax, dword [esi + 0x168]
cmp eax, 0xf
je 0x642254
push eax
mov ecx, ebp
call fcn.004ab3b0
jmp 0x642aa6
mov ecx, ebp
call fcn.0041be20
test al, al
je 0x642aac
mov ecx, dword [esi + 0x168]
add ecx, 0x80
push ecx
mov ecx, ebp
call fcn.004acef0
push 0
push 0x972918
push 0x972774
mov ebx, eax
push 0
push ebx
mov dword [esp + 0x24], ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x642aac
mov eax, dword [eax + 0x18]
jmp 0x64239f
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b4030
mov edi, eax
mov eax, dword [esi + 0x168]
lea eax, [eax + eax*2]
shl eax, 4
lea ecx, [eax + ebp + 0x4f14]
push ecx
mov ecx, 0x1b0f548
call fcn.004a9dc0
test edi, edi
je 0x642aac
mov ebx, edi
jmp 0x642aa8
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004926b0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x6426da
cmp dword [ebx + 4], edi
jne 0x642aac
mov dword [esi + 0x26c], edi
jmp 0x642aac
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004926e0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004b40c0
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b40c0
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004b04a0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
mov ebx, dword [ebp + ecx*4 + 0x6030]
jmp 0x642aa8
mov edx, dword [esi + 0x168]
mov ecx, dword [0x9922cc]
push edx
call fcn.0041ca80
jmp 0x642aa6
mov ecx, dword [0x9922cc]
lea eax, [esp + 0x34]
push eax
call fcn.00641f30
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x642776
xor eax, eax
jmp 0x64277f
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
mov ecx, dword [esi + 0x168]
cmp ecx, eax
jae 0x6425a2
push ecx
lea ecx, [esp + 0x38]
call fcn.0041caf0
mov ebx, dword [eax]
lea ecx, [esp + 0x34]
mov dword [esp + 0x10], ebx
call fcn.00487bb0
jmp 0x642aac
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, dword [0x9922cc]
call fcn.004ae470
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004acc90
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004b22d0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.00492f60
cmp byte [esi + 0x511], 0
mov ebx, eax
mov dword [esp + 0x10], ebx
je 0x64281c
cmp byte [0x1b0eb30], 0
je 0x64281c
mov byte [0x1b0eb30], 0
mov byte [0x1b0eb2b], 1
test ebx, ebx
je 0x642aac
mov ecx, dword [ebx + 0x18]
call fcn.00492ee0
cmp eax, 1
jle 0x642aac
mov byte [esi + 0x260], 1
mov ecx, dword [ebx + 0x18]
call fcn.00492ee0
mov edx, dword [eax*4 + 0x9817dc]
push edx
mov ecx, esi
call fcn.006359a0
jmp 0x642aac
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.00493f50
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.00492a70
jmp 0x6423fb
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.00493010
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.00493610
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.00493da0
jmp 0x642aa6
mov ebx, dword [ebp + 0x4b6c]
jmp 0x642aa8
mov ebx, dword [ebp + 0x5480]
jmp 0x642aa8
mov ebx, dword [ebp + 0x5390]
mov dword [esi + 0x26c], edi
jmp 0x642aa8
mov ebx, dword [ebp + 0x547c]
mov dword [esi + 0x26c], edi
jmp 0x642aa8
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004ad1d0
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.0049e0b0
jmp 0x642aa6
mov ecx, ebp
call fcn.004ae880
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004ae890
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x642aac
cmp dword [ebx + 0x10], 2
jne 0x642aac
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
mov edi, eax
mov ecx, dword [edi + 0x18]
add esp, 0x14
call fcn.0047e890
cmp eax, dword [ebp + 0x3e4]
jae 0x642aac
mov dword [edi + 4], 1
jmp 0x642aac
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004b0900
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004b09b0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004ae8e0
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004ae930
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004ae980
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.00493630
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.00493060
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004ae9d0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.004ad6b0
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.004ad6d0
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.00493650
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.00493720
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.00493960
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.004937f0
jmp 0x642aa6
mov ecx, dword [esi + 0x168]
push ecx
mov ecx, ebp
call fcn.00493a30
jmp 0x642aa6
mov edx, dword [esi + 0x168]
push edx
mov ecx, ebp
call fcn.00493b00
jmp 0x642aa6
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebp
call fcn.00493c10
mov ebx, eax
mov dword [esp + 0x10], ebx
cmp dword [esi + 0x164], 0
jne 0x642b84
lea ecx, [esi + 0x214]
call fcn.00435130
test eax, eax
jne 0x642b84
cmp byte [esi + 0x524], al
je 0x642b84
cmp dword [esi + 0x168], eax
lea edi, [esi + 0x1d4]
mov byte [edi], al
jne 0x642b22
mov ecx, dword [esi + 0x16c]
add ecx, 1
push ecx
push 0x8da634
push 0x40
push edi
call fcn.0067ad00
add esp, 0x10
cmp byte [edi], 0
je 0x642b84
push 0
push 0
push edi
lea ecx, [esp + 0x7c]
call fcn.004351f0
mov dword [esp + 0x160d8], 0
jmp 0x642b64
mov edx, dword [esi + 0x16c]
add edx, 1
push edx
push 0x8da608
push 0x40
push edi
mov dword [esi + 0x168], 1
call fcn.0067ad00
add esp, 0x10
cmp byte [edi], 0
je 0x642b84
push 0
push 0
push edi
lea ecx, [esp + 0x7c]
call fcn.004351f0
mov dword [esp + 0x160d8], 1
push eax
lea ecx, [esi + 0x214]
call fcn.00435280
lea ecx, [esp + 0x70]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.004350c0
cmp dword [esi + 0x164], 1
jne 0x642bfa
lea ecx, [esi + 0x214]
call fcn.00435130
test eax, eax
jne 0x642bfa
cmp byte [esi + 0x270], al
jne 0x642bfa
push 0x8da5e0
lea edi, [esi + 0x218]
push 0x40
push edi
mov byte [edi], al
call fcn.0067ad00
add esp, 0xc
cmp byte [edi], 0
je 0x642bfa
push 0
push 0
push edi
lea ecx, [esp + 0x7c]
call fcn.004351f0
push eax
lea ecx, [esi + 0x258]
mov dword [esp + 0x160dc], 2
call fcn.00435280
lea ecx, [esp + 0x70]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.004350c0
xor edi, edi
cmp ebx, edi
jne 0x643156
push edi
lea ecx, [esp + 0x20]
call fcn.00435170
lea eax, [esp + 0x1c]
push eax
lea ecx, [esi + 0x1c0]
mov dword [esp + 0x160dc], 3
call fcn.00435280
lea ecx, [esp + 0x1c]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.004350c0
mov ecx, dword [esi + 0x41c]
cmp ecx, edi
mov dword [esi + 0x26c], edi
mov dword [esi + 0x4dc], edi
mov dword [esi + 0x4e4], edi
mov dword [esi + 0x4e0], edi
je 0x642c6e
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x420]
cmp ecx, edi
je 0x642c87
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x424]
cmp ecx, edi
je 0x642ca0
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x428]
cmp ecx, edi
je 0x642cb4
push 0x7958c8
call fcn.005e06f0
mov ecx, dword [esi + 0x42c]
cmp ecx, edi
je 0x642cc9
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x430]
cmp ecx, edi
je 0x642cde
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x434]
cmp ecx, edi
je 0x642cf3
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x43c]
cmp ecx, edi
je 0x642d08
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x438]
cmp ecx, edi
je 0x642d1d
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x440]
cmp ecx, edi
je 0x642d36
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x444]
cmp ecx, edi
je 0x642d4f
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x448]
cmp ecx, edi
je 0x642d68
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x44c]
cmp ecx, edi
je 0x642d7d
push edi
push 0x7958c8
call fcn.00658e90
cmp dword [esi + 0x164], 0x15
jne 0x642d9f
mov ecx, dword [esi + 0x470]
cmp ecx, edi
je 0x642d9f
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
cmp dword [esi + 0x164], 0x14
jne 0x642e4b
mov ecx, dword [esi + 0x454]
cmp ecx, edi
je 0x642dc1
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x458]
cmp ecx, edi
je 0x642dda
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x45c]
cmp ecx, edi
je 0x642df3
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x460]
cmp ecx, edi
je 0x642e0c
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x464]
cmp ecx, edi
je 0x642e25
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x468]
cmp ecx, edi
je 0x642e38
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push edi
push edi
call eax
mov ecx, dword [esi + 0x46c]
cmp ecx, edi
je 0x642e4b
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push edi
push edi
call eax
cmp dword [esi + 0x164], 0x19
jne 0x642f2c
mov ecx, dword [esi + 0x474]
cmp ecx, edi
je 0x642e6d
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x478]
cmp ecx, edi
je 0x642e86
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x47c]
cmp ecx, edi
je 0x642e9f
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x480]
cmp ecx, edi
je 0x642eb8
mov edx, dword [ecx]
mov eax, dword [edx + 0x154]
push 0x7958c8
call eax
mov ecx, dword [esi + 0x48c]
cmp ecx, edi
je 0x642ecd
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x168]
push ecx
push 0x79a808
lea edx, [esp + 0x98]
push 0x20
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x490]
add esp, 0x10
cmp ecx, edi
je 0x642f13
push 8
push 0x1e
call fcn.005d1090
mov ecx, dword [esi + 0x490]
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov ecx, dword [esi + 0x494]
cmp ecx, edi
je 0x642f2c
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
cmp dword [esi + 0x164], 0x1b
jne 0x642f7c
mov ecx, dword [esi + 0x474]
cmp ecx, edi
je 0x642f4a
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x488]
cmp ecx, edi
je 0x642f63
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov ecx, dword [esi + 0x484]
cmp ecx, edi
je 0x642f7c
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
cmp dword [esi + 0x164], 0x49
jne 0x642fcc
mov ecx, dword [esi + 0x498]
cmp ecx, edi
je 0x642f9a
push edi
push 0x7958c8
call fcn.00658e90
mov ecx, dword [esi + 0x4a4]
cmp ecx, edi
je 0x642fb3
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov ecx, dword [esi + 0x4a0]
cmp ecx, edi
je 0x642fcc
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
cmp dword [esi + 0x164], 0xc
jne 0x642fea
mov ecx, dword [esi + 0x4a8]
cmp ecx, edi
je 0x642fea
push edi
push 0x7958c8
call fcn.00658e90
cmp dword [esi + 0x164], 0x2b
mov dword [esi + 0x528], edi
jne 0x6430b9
mov ebp, dword [ebp + 0x446c]
cmp ebp, dword [esi + 0x168]
jne 0x6430b9
mov ecx, dword [esi + 0x4b4]
cmp ecx, edi
je 0x643029
mov eax, dword [ecx]
fldz
mov edx, dword [eax + 0x158]
push ecx
fstp dword [esp]
call edx
mov ecx, dword [esi + 0x4b8]
cmp ecx, edi
je 0x643043
mov eax, dword [ecx]
fldz
mov edx, dword [eax + 0x158]
push ecx
fstp dword [esp]
call edx
mov ecx, dword [esi + 0x4bc]
cmp ecx, edi
je 0x64305c
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov ecx, dword [esi + 0x4c0]
cmp ecx, edi
je 0x643075
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov ecx, dword [esi + 0x4c4]
cmp ecx, edi
je 0x64308e
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov ecx, dword [esi + 0x4c8]
cmp ecx, edi
je 0x6430a0
push 0x10
push edi
call fcn.005d10b0
mov ecx, dword [esi + 0x4cc]
cmp ecx, edi
je 0x6430b9
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
mov eax, dword [esi + 0x164]
cmp eax, 7
jne 0x6430d8
mov eax, dword [esi + 0x168]
push eax
call fcn.0066cea0
push eax
push 0x8da5c8
jmp 0x6430ef
cmp eax, 0xb
jne 0x6430f9
mov ecx, dword [esi + 0x168]
push ecx
call fcn.0066cea0
push eax
push 0x8da5ac
push 2
call fcn.00678ac0
add esp, 0x10
cmp byte [esi + 0x511], 0
je 0x64314a
cmp dword [esi + 0x164], 2
jne 0x64314a
mov edx, dword [esi + 0x168]
push edx
call fcn.0066cea0
add esp, 4
push eax
mov eax, dword [esi + 0x518]
push eax
call fcn.0066cea0
mov ecx, dword [esi + 0x514]
add esp, 4
push eax
push ecx
call fcn.0066cea0
add esp, 4
push eax
push 0x8da598
push 4
call fcn.00678ac0
add esp, 0x14
mov byte [esi + 0x52d], 0
jmp 0x646db1
cmp dword [ebx + 4], edi
je 0x643167
mov dword [esi + 0x26c], 4
jmp 0x64316d
mov dword [esi + 0x26c], edi
cmp dword [ebx + 0x10], 1
mov edx, dword [esi + 0x26c]
mov dword [esp + 0x14], edx
push edi
je 0x645fee
push 0x972918
push 0x972774
push edi
push ebx
call fcn.0074d229
add esp, 0x14
cmp eax, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edi
je 0x64334b
mov ecx, eax
mov eax, dword [ecx + 0x18]
test eax, eax
mov edi, dword [ecx + 0x1c]
mov dword [esp + 0x18], eax
je 0x64334b
mov ebp, eax
mov ecx, ebp
call fcn.004a8470
test al, al
jne 0x6431d2
mov ecx, ebp
call fcn.004a8490
test al, al
je 0x6431dd
push 2
mov ecx, ebp
call fcn.004aad70
mov edi, eax
cmp dword [ebp + 8], 0
je 0x643334
mov ecx, dword [esp + 0x18]
call fcn.004a83f0
test al, al
jne 0x643334
mov ecx, dword [esp + 0x18]
call fcn.004a8410
test al, al
jne 0x643334
mov ecx, dword [esp + 0x18]
call fcn.00634140
test al, al
jne 0x643334
mov ecx, dword [esp + 0x18]
call fcn.00492990
test al, al
jne 0x643334
test edi, edi
setg al
mov byte [esi + 0x1c4], al
mov eax, 0x66666667
imul edi
sar edx, 2
mov ebp, edx
shr ebp, 0x1f
mov ecx, 0xa
add ebp, edx
cmp ebp, ecx
jl 0x64325f
mov eax, edi
lea ecx, [ecx + ecx*4]
add ecx, ecx
cdq
idiv ecx
cmp eax, 0xa
jge 0x643250
cmp edi, 0x3e8
jl 0x643282
mov eax, edi
cdq
idiv ecx
mov dword [esi + 0x1c8], eax
mov eax, 0xa
mov dword [esi + 0x1d0], eax
jmp 0x64332e
cmp ecx, 0x64
jl 0x6432fb
mov eax, edi
cdq
idiv ecx
mov ebx, edi
mov ebp, eax
mov dword [esi + 0x1c8], eax
imul ebp, ecx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x70], eax
sub ebx, ebp
mov eax, ebx
mov ebx, dword [esp + 0x70]
cdq
idiv ebx
mov edx, ecx
mov ebx, dword [esp + 0x10]
imul edx, eax
mov dword [esi + 0x1cc], eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
sub edi, ebp
shr ecx, 0x1f
add ecx, edx
mov eax, edi
cdq
idiv ecx
mov dword [esi + 0x1d0], eax
jmp 0x643334
cmp ecx, 0xa
jne 0x643320
lea edx, [ebp + ebp*4]
add edx, edx
sub edi, edx
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1cc], ebp
mov dword [esi + 0x1d0], edi
jmp 0x643334
xor eax, eax
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x1d0], edi
mov dword [esi + 0x1cc], eax
mov ecx, dword [esp + 0x18]
call fcn.00634190
test al, al
je 0x64334b
mov dword [esi + 0x528], 1
cmp dword [esi + 0x41c], 0
je 0x64340b
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x64340b
mov edi, dword [ebp + 8]
test edi, edi
je 0x64340b
push 0xfe
lea eax, [esp + 0xd6]
push 0
push eax
mov word [esp + 0xdc], 0
call fcn.0074d440
add esp, 0xc
mov ecx, ebp
call fcn.00634140
test al, al
je 0x6433cd
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x1c]
lea edx, [esp + 0xd0]
push edx
push eax
call fcn.004e1e40
mov ecx, dword [esi + 0x41c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 8
lea edx, [esp + 0xd0]
push edx
call eax
jmp 0x64340b
test edi, edi
je 0x6433d6
mov eax, dword [edi + 0x1c]
jmp 0x6433d8
xor eax, eax
push eax
push 0x7ab60c
lea ecx, [esp + 0xd8]
push 0x100
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x41c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0xd0]
push eax
call edx
mov eax, dword [esi + 0x164]
cmp eax, 0xb
je 0x646126
cmp eax, 7
je 0x646126
cmp eax, 0xd
jne 0x643601
push 3
mov ecx, esi
call fcn.00635a20
mov ecx, dword [esp + 0x20]
push eax
add ecx, 0xed0
call fcn.004aea40
mov edi, eax
test edi, edi
je 0x646126
xor ebx, ebx
cmp dword [esi + 0x440], ebx
je 0x6434b6
xor eax, eax
cmp dword [edi + 0x98], 0x10
mov word [esp + 0x34], bx
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov word [esp + 0x46], ax
jb 0x643486
mov eax, dword [edi + 0x84]
jmp 0x64348c
lea eax, [edi + 0x84]
push eax
push 0x8da58c
lea eax, [esp + 0x3c]
push 0x14
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x440]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x34]
push eax
call edx
cmp dword [esi + 0x444], ebx
je 0x64351a
xor eax, eax
cmp dword [edi + 0x60], 0x10
mov word [esp + 0x34], bx
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov dword [esp + 0x46], eax
mov word [esp + 0x4a], ax
mov byte [esp + 0x4c], al
jb 0x6434ed
mov eax, dword [edi + 0x4c]
jmp 0x6434f0
lea eax, [edi + 0x4c]
push eax
push 0x8da584
lea eax, [esp + 0x3c]
push 0x19
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x444]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x34]
push eax
call edx
cmp dword [esi + 0x448], ebx
je 0x64358a
push 0x3e
lea eax, [esp + 0xd6]
push ebx
push eax
mov word [esp + 0xdc], bx
call fcn.0074d440
mov eax, dword [edi + 0xc]
add esp, 0xc
cmp eax, ebx
jbe 0x64355e
push eax
push 0x79a808
lea ecx, [esp + 0xd8]
push 0x40
push ecx
call fcn.0067ad00
add esp, 0x10
jmp 0x643572
mov eax, dword [edi + 8]
lea edx, [esp + 0xd0]
push edx
push eax
call fcn.004e1e40
add esp, 8
mov ecx, dword [esi + 0x448]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0xd0]
push eax
call edx
cmp dword [esp + 0x18], ebx
je 0x646126
mov ecx, dword [esp + 0x18]
call fcn.00634140
test al, al
je 0x646126
cmp dword [esi + 0x41c], 0
je 0x646126
push 0xfe
lea eax, [esp + 0xd6]
push 0
push eax
mov word [esp + 0xdc], 0
call fcn.0074d440
mov edx, dword [edi + 8]
lea ecx, [esp + 0xdc]
push ecx
push edx
call fcn.004e1e40
mov ecx, dword [esi + 0x41c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 0x14
lea edx, [esp + 0xd0]
push edx
call eax
jmp 0x646126
cmp eax, 0xf
jne 0x643884
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.004b1180
push eax
lea ecx, [edi + 0xed0]
call fcn.004aea40
mov edi, eax
test edi, edi
je 0x646126
xor ebx, ebx
cmp dword [esi + 0x440], ebx
je 0x643692
xor eax, eax
cmp dword [edi + 0x98], 0x10
mov word [esp + 0x34], bx
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov word [esp + 0x46], ax
jb 0x643662
mov eax, dword [edi + 0x84]
jmp 0x643668
lea eax, [edi + 0x84]
push eax
push 0x7ab60c
lea ecx, [esp + 0x3c]
push 0x14
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x440]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x34]
push eax
call edx
cmp dword [esi + 0x444], ebx
je 0x6436f6
xor eax, eax
cmp dword [edi + 0x60], 0x10
mov word [esp + 0x34], bx
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov dword [esp + 0x46], eax
mov word [esp + 0x4a], ax
mov byte [esp + 0x4c], al
jb 0x6436c9
mov eax, dword [edi + 0x4c]
jmp 0x6436cc
lea eax, [edi + 0x4c]
push eax
push 0x7ab60c
lea eax, [esp + 0x3c]
push 0x19
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x444]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x34]
push eax
call edx
cmp dword [esi + 0x448], ebx
je 0x6437f8
push 0x3e
lea eax, [esp + 0xd6]
push 0
push eax
mov word [esp + 0xdc], 0
call fcn.0074d440
add esp, 0xc
push 0
push 0x97eac0
push 0x97128c
push 0
push 0x8da568
call fcn.00664fc0
add esp, 4
push eax
call fcn.0074d229
add esp, 0x14
push 0
push 0x97eac0
push 0x97128c
push 0
push 0x8da54c
mov ebx, eax
call fcn.00664fc0
add esp, 4
push eax
call fcn.0074d229
mov ebp, eax
mov eax, dword [edi + 0xc]
add esp, 0x14
test eax, eax
lea ecx, [esp + 0xd0]
jbe 0x6437b0
push eax
push 0x79a808
push 0x40
push ecx
call fcn.0067ad00
add esp, 0x10
test ebp, ebp
je 0x64379d
mov edx, dword [ebp]
mov eax, dword [edx + 0x60]
push 0
push 1
mov ecx, ebp
call eax
test ebx, ebx
je 0x6437e0
mov edx, dword [ebx]
mov eax, dword [edx + 0x60]
push 0
push 0
mov ecx, ebx
call eax
jmp 0x6437e0
mov edx, dword [edi + 8]
push ecx
push edx
call fcn.004e1e40
add esp, 8
test ebx, ebx
je 0x6437ce
mov eax, dword [ebx]
mov edx, dword [eax + 0x60]
push 0
push 1
mov ecx, ebx
call edx
test ebp, ebp
je 0x6437e0
mov eax, dword [ebp]
mov edx, dword [eax + 0x60]
push 0
push 0
mov ecx, ebp
call edx
mov ecx, dword [esi + 0x448]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
lea edx, [esp + 0xd0]
push edx
call eax
cmp dword [esi + 0x44c], 0
je 0x646126
push 0xef
lea ecx, [esp + 0xd6]
push 0
push ecx
mov word [esp + 0xdc], 0
call fcn.0074d440
add esp, 0xc
cmp dword [edi + 0x7c], 0x10
jb 0x643831
mov edi, dword [edi + 0x68]
jmp 0x643834
add edi, 0x68
push edi
push 0x7ab60c
lea edx, [esp + 0xd8]
push 0xf1
push edx
call fcn.0067ad00
lea eax, [esp + 0xe0]
add esp, 0x10
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x643860
mov ecx, dword [esi + 0x44c]
sub eax, edx
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00658e90
jmp 0x646126
cmp eax, 9
jne 0x64391e
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
cmp dword [esi + 0x420], 0
mov edi, eax
je 0x6438fe
test edi, edi
je 0x6472e2
xor eax, eax
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov word [esp + 0x32], ax
mov eax, dword [edi + 0x1c]
push eax
push 0x79a808
lea ecx, [esp + 0x2c]
push 0x10
push ecx
mov word [esp + 0x34], 0
call fcn.0067ad00
mov ecx, dword [esi + 0x420]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x24]
push eax
call edx
test edi, edi
je 0x6472e2
mov edi, dword [edi + 0x18]
test edi, edi
je 0x6472e2
push edi
mov ecx, esi
call fcn.00635bd0
jmp 0x646126
cmp eax, 0x2c
jne 0x6439b8
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
cmp dword [esi + 0x420], 0
mov edi, eax
je 0x643998
test edi, edi
je 0x6472e2
xor eax, eax
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov word [esp + 0x32], ax
mov eax, dword [edi + 0x1c]
push eax
push 0x79a808
lea eax, [esp + 0x2c]
push 0x10
push eax
mov word [esp + 0x34], 0
call fcn.0067ad00
mov ecx, dword [esi + 0x420]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x24]
push eax
call edx
test edi, edi
je 0x6472e2
mov edi, dword [edi + 0x18]
test edi, edi
je 0x6472e2
push edi
mov ecx, esi
call fcn.00635bd0
jmp 0x646126
cmp eax, 0x15
jne 0x643a13
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov eax, dword [eax + 0x18]
test eax, eax
je 0x6472e2
mov ecx, dword [esi + 0x470]
test ecx, ecx
je 0x646126
mov eax, dword [eax + 8]
test eax, eax
je 0x645f68
mov eax, dword [eax + 0x1c]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x154]
call eax
jmp 0x646126
cmp eax, 0x14
jne 0x643d73
xor ebp, ebp
push ebp
push 0x972918
push 0x972774
push ebp
push ebx
call fcn.0074d229
add esp, 0x14
cmp eax, ebp
je 0x6472e2
mov eax, dword [eax + 0x18]
cmp eax, ebp
je 0x6472e2
cmp dword [esi + 0x454], ebp
je 0x643b32
mov ebx, dword [eax + 8]
cmp ebx, ebp
je 0x643a5e
mov edi, dword [ebx + 0x1c]
jmp 0x643a60
xor edi, edi
push 0xff
lea ecx, [esp + 0xd5]
push ebp
push ecx
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [ebx + 0x17c]
add esp, 0xc
cmp eax, 5
ja case.default.0x643a89
jmp dword [eax*4 + 0x647430]
push edi
push 0x8da51c
jmp 0x643b05
push edi
push 0x8da4f0
push 0x100
lea eax, [esp + 0xdc]
push eax
jmp 0x643b12
push edi
push 0x8da4c4
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x643b12
push edi
push 0x8da498
jmp 0x643b05
push edi
push 0x8da46c
push 0x100
lea eax, [esp + 0xdc]
push eax
jmp 0x643b12
push edi
push 0x8da440
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x643b12
cmp ebx, ebp
je 0x643afd
mov ebx, dword [ebx + 0x1c]
jmp 0x643aff
xor ebx, ebx
push ebx
push 0x7ab60c
push 0x100
lea edx, [esp + 0xdc]
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x454]
add esp, 0x10
push 0x100
lea eax, [esp + 0xd4]
push eax
call fcn.00658e90
mov ecx, dword [esi + 0x458]
cmp ecx, ebp
mov ebx, dword [esp + 0x20]
je 0x643b5b
mov eax, dword [esi + 0x168]
mov edx, dword [ecx]
imul eax, eax, 0x5c
mov edx, dword [edx + 0x154]
lea eax, [eax + ebx + 0x4b98]
push eax
call edx
cmp dword [esi + 0x45c], ebp
je 0x643bf2
xor eax, eax
mov dword [esp + 0x72], eax
mov dword [esp + 0x76], eax
mov dword [esp + 0x7a], eax
mov word [esp + 0x7e], ax
lea eax, [esp + 0x24]
push eax
mov word [esp + 0x74], bp
call fcn.0074f5e6
mov ecx, dword [esi + 0x168]
imul ecx, ecx, 0x5c
mov edi, dword [ecx + ebx + 0x4bb4]
sub edi, dword [esp + 0x28]
mov eax, 0x91a2b3c5
add edi, 0x15180
mul edi
mov ecx, edx
mov eax, 0x88888889
mul edi
mov eax, edx
xor edx, edx
shr eax, 5
mov edi, 0x3c
div edi
shr ecx, 0xb
push edx
push ecx
push 0x8da434
lea edx, [esp + 0x80]
push 0x10
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x45c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 0x18
lea edx, [esp + 0x70]
push edx
call eax
cmp dword [esi + 0x460], ebp
je 0x643c4c
mov ecx, dword [esi + 0x168]
imul ecx, ecx, 0x5c
xor eax, eax
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov word [esp + 0x32], ax
mov word [esp + 0x24], bp
mov edx, dword [ecx + ebx + 0x4bac]
push edx
push 0x79a808
lea eax, [esp + 0x2c]
push 0x10
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x460]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x24]
push eax
call edx
cmp dword [esi + 0x464], ebp
je 0x643cef
mov eax, dword [esi + 0x168]
imul eax, eax, 0x5c
movsx ecx, word [eax + ebx + 0x4bce]
xor eax, eax
cmp ecx, 1
mov word [esp + 0x24], bp
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov word [esp + 0x32], ax
jne 0x643c94
push 0x8da428
push 0x10
lea ecx, [esp + 0x2c]
push ecx
jmp 0x643cd2
cmp ecx, 2
jne 0x643ca0
push 0x8da41c
jmp 0x643ccb
cmp ecx, 3
jne 0x643cb3
push 0x8da410
push 0x10
lea eax, [esp + 0x2c]
push eax
jmp 0x643cd2
cmp ecx, 4
jne 0x643cc6
push 0x8da404
push 0x10
lea ecx, [esp + 0x2c]
push ecx
jmp 0x643cd2
push 0x8d84bc
push 0x10
lea edx, [esp + 0x2c]
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x464]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 0xc
lea edx, [esp + 0x24]
push edx
call eax
mov ecx, dword [esi + 0x168]
imul ecx, ecx, 0x5c
mov bl, byte [ecx + ebx + 0x4bd0]
mov ecx, dword [esi + 0x468]
test bl, bl
sete dl
cmp bl, 1
sete al
cmp ecx, ebp
mov byte [esp + 0x70], dl
mov byte [esp + 0x8c], al
je 0x643d2c
mov edx, dword [ecx]
mov eax, dword [esp + 0x70]
mov edx, dword [edx + 0x60]
push ebp
push eax
call edx
cmp dword [esi + 0x468], ebp
je 0x643d4a
mov ecx, dword [esi + 0x46c]
mov eax, dword [ecx]
mov edx, dword [esp + 0x8c]
mov eax, dword [eax + 0x60]
push ebp
push edx
call eax
mov eax, dword [esi + 0x14]
push ebp
push 0x975b54
push 0x972e24
push ebp
push eax
call fcn.0074d229
mov edx, dword [eax]
add esp, 0x14
push ebp
mov ecx, eax
mov eax, dword [edx + 0x60]
push 1
call eax
jmp 0x646126
cmp eax, 0x19
jne 0x644164
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov ebp, dword [eax + 0x18]
test ebp, ebp
je 0x6472e2
mov edi, dword [ebp + 8]
test edi, edi
je 0x6472e2
cmp dword [edi], 0
je 0x6472e2
cmp dword [esi + 0x474], 0
je 0x643e95
mov ebx, dword [edi + 0x1c]
push 0xff
lea ecx, [esp + 0xd5]
push 0
push ecx
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [edi + 0x17c]
add esp, 0xc
cmp eax, 5
ja case.default.0x643df4
jmp dword [eax*4 + 0x647448]
push ebx
push 0x8da51c
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x643e75
push ebx
push 0x8da4f0
jmp 0x643e68
push ebx
push 0x8da4c4
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x643e75
push ebx
push 0x8da498
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x643e75
push ebx
push 0x8da46c
jmp 0x643e68
push ebx
push 0x8da440
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x643e75
mov edx, dword [edi + 0x1c]
push edx
push 0x7ab60c
push 0x100
lea eax, [esp + 0xdc]
push eax
call fcn.0067ad00
add esp, 0x10
push 0x100
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [esi + 0x474]
call fcn.00658e90
cmp dword [esi + 0x478], 0
je 0x643f30
mov edx, dword [esp + 0x20]
xor eax, eax
cmp dword [edx + 0x535c], 0x200000
mov byte [esp + 0x50], 0
mov dword [esp + 0x51], eax
mov dword [esp + 0x55], eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov dword [esp + 0x69], eax
mov word [esp + 0x6d], ax
mov byte [esp + 0x6f], al
mov ecx, 0x1b0f548
jne 0x643efc
push 0x8da3fc
call fcn.004a9db0
push eax
push 0x8da3f0
push 0x20
lea eax, [esp + 0x60]
push eax
jmp 0x643f13
push 0x84cf1c
call fcn.004a9db0
push eax
push 0x8da3f0
push 0x20
lea ecx, [esp + 0x60]
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x478]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x14
lea eax, [esp + 0x50]
push eax
call edx
cmp dword [esi + 0x47c], 0
je 0x644044
xor eax, eax
push 0xff
push eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov dword [esp + 0x69], eax
mov dword [esp + 0x6d], eax
mov dword [esp + 0x71], eax
mov word [esp + 0x75], ax
mov byte [esp + 0x77], al
mov byte [esp + 0xd8], al
lea eax, [esp + 0xd9]
push eax
mov byte [esp + 0x5c], 0
call fcn.0074d440
add esp, 0xc
push 8
mov ecx, ebp
call fcn.0042fe70
test al, al
jne 0x643fb9
push 0x8da3e4
lea ecx, [esp + 0x54]
push 0x20
push ecx
call fcn.0067ad00
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0xe0]
push eax
call fcn.00409610
add esp, 0x14
push 0x100
mov ecx, ebp
call fcn.0042fe70
test al, al
je 0x643fef
push 0x8da3d8
lea ecx, [esp + 0x54]
push 0x20
push ecx
call fcn.0067ad00
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0xe0]
push eax
call fcn.00409610
add esp, 0x14
push 2
mov ecx, ebp
call fcn.0042fe70
test al, al
jne 0x644022
push 0x8da3cc
lea ecx, [esp + 0x54]
push 0x20
push ecx
call fcn.0067ad00
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0xe0]
push eax
call fcn.00409610
add esp, 0x14
cmp byte [esp + 0xd0], 0
je 0x644044
mov ecx, dword [esi + 0x47c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0xd0]
push eax
call edx
cmp dword [esi + 0x480], 0
je 0x6440df
xor eax, eax
mov dword [esp + 0x51], eax
mov dword [esp + 0x55], eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov dword [esp + 0x69], eax
mov word [esp + 0x6d], ax
mov byte [esp + 0x6f], al
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x535c], 0x200000
mov byte [esp + 0x50], 0
mov ecx, 0x1b0f548
jne 0x6440ab
push 0x8da3fc
call fcn.004133d0
push eax
push 0x8da3c0
push 0x20
lea ecx, [esp + 0x60]
push ecx
jmp 0x6440c2
push 0x84cf1c
call fcn.004133d0
push eax
push 0x8da3c0
push 0x20
lea edx, [esp + 0x60]
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x480]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 0x14
lea edx, [esp + 0x50]
push edx
call eax
cmp dword [esi + 0x48c], 0
je 0x646126
push 0x3ff
lea ecx, [esp + 0xd5]
push 0
push ecx
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [ebp + 8]
add esp, 0xc
test eax, eax
je 0x644117
mov eax, dword [eax + 0x20]
jmp 0x644119
xor eax, eax
push eax
push 0x7ab60c
lea edx, [esp + 0xd8]
push 0x400
push edx
call fcn.0067ad00
lea eax, [esp + 0xe0]
add esp, 0x10
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x644140
mov ecx, dword [esi + 0x48c]
sub eax, edx
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00658e90
jmp 0x646126
cmp eax, 0x12
jne 0x644224
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov eax, dword [eax + 0x18]
test eax, eax
je 0x6472e2
mov edi, dword [eax + 8]
test edi, edi
je 0x6472e2
cmp dword [edi], 0
je 0x6472e2
cmp dword [esi + 0x48c], 0
je 0x646126
push 0x3ff
lea ecx, [esp + 0xd5]
push 0
push ecx
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov edx, dword [edi + 0x20]
push edx
push 0x7ab60c
lea eax, [esp + 0xe4]
push 0x400
push eax
call fcn.0067ad00
lea eax, [esp + 0xec]
add esp, 0x1c
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x644200
sub eax, edx
push eax
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [esi + 0x48c]
call fcn.00658e90
jmp 0x646126
cmp eax, 0x18
jne 0x6443fb
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
mov edi, dword [esp + 0x2c]
add esp, 0x14
cmp dword [esi + 0x420], 0
mov ebp, eax
je 0x644333
test edi, edi
je 0x644333
cmp dword [edi + 8], 0
je 0x644333
push 2
mov ecx, edi
call fcn.004b4aa0
push 7
mov ecx, edi
mov dword [esp + 0x90], eax
call fcn.004b4aa0
mov ebx, eax
push 3
mov ecx, edi
mov dword [esp + 0x28], ebx
call fcn.004b4aa0
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fstp dword [esp + 0x1c]
fld dword [0x7bb5c0]
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x6442bc
fstp st(0)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
jmp 0x6442be
fstp st(1)
test ebx, ebx
je 0x6442e2
fild dword [esp + 0x8c]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x70], edx
fidiv dword [esp + 0x24]
fmulp st(1)
fmul qword [0x7c7260]
fimul dword [esp + 0x70]
jmp 0x6442f3
fmul qword [0x7c7260]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x24], eax
fimul dword [esp + 0x24]
call fcn.0074d900
xor ecx, ecx
mov word [esp + 0x34], cx
mov dword [esp + 0x36], ecx
mov dword [esp + 0x3a], ecx
mov dword [esp + 0x3e], ecx
mov word [esp + 0x42], cx
lea ecx, [esp + 0x34]
push ecx
push eax
call fcn.004e1e40
mov ecx, dword [esi + 0x420]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 8
lea eax, [esp + 0x34]
push eax
call edx
cmp dword [esi + 0x424], 0
je 0x6443c3
test edi, edi
je 0x6443c3
cmp dword [edi + 8], 0
je 0x6443c3
xor eax, eax
push 0x84cf44
push 0x7ab60c
mov dword [esp + 0x9a], eax
mov dword [esp + 0x9e], eax
mov dword [esp + 0xa2], eax
mov dword [esp + 0xa6], eax
mov dword [esp + 0xaa], eax
mov dword [esp + 0xae], eax
mov dword [esp + 0xb2], eax
mov word [esp + 0xb6], ax
lea eax, [esp + 0x98]
push 0x20
push eax
mov word [esp + 0xa0], 0
call fcn.0067ad00
mov ecx, dword [esi + 0x424]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0x90]
push eax
call edx
mov ecx, dword [esi + 0x428]
test ecx, ecx
je 0x646126
cmp dword [esp + 0x18], 0
je 0x646126
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], 0
je 0x646126
lea edx, [esi + 0xd8]
push edx
call fcn.005e07a0
jmp 0x646126
cmp eax, 0x1b
jne 0x644525
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov eax, dword [eax + 0x18]
test eax, eax
je 0x6472e2
mov eax, dword [eax + 8]
test eax, eax
je 0x6472e2
mov ebx, dword [eax]
test ebx, ebx
je 0x6472e2
cmp dword [esi + 0x474], 0
je 0x64449e
mov edi, dword [eax + 0x1c]
push 0xff
lea eax, [esp + 0xd5]
push 0
push eax
mov byte [esp + 0xdc], 0
call fcn.0074d440
push edi
push 0x7ab60c
lea ecx, [esp + 0xe4]
push 0x100
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x474]
add esp, 0x1c
push 0x100
lea edx, [esp + 0xd4]
push edx
call fcn.00658e90
mov ecx, dword [esi + 0x484]
test ecx, ecx
je 0x646126
cmp dword [esi + 0x488], 0
je 0x646126
mov eax, dword [ecx]
mov edx, dword [eax + 0x58]
call edx
push eax
call fcn.0074f633
add esp, 4
push ebx
mov ecx, 0xaae2c0
mov edi, eax
call fcn.004a9ef0
test eax, eax
jne 0x6444f4
mov ecx, dword [esi + 0x488]
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
jmp 0x6472e2
mov ecx, eax
call fcn.004a9db0
imul eax, edi
push eax
push 0x79a808
lea eax, [esp + 0x98]
push 0x20
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
lea eax, [esp + 0xa0]
jmp 0x646118
cmp eax, 0x49
jne 0x64463a
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov ebx, dword [eax + 0x18]
test ebx, ebx
je 0x6472e2
mov eax, dword [ebx + 8]
test eax, eax
je 0x6472e2
cmp dword [eax], 0
je 0x6472e2
cmp dword [esi + 0x498], 0
je 0x6445c7
mov edi, dword [eax + 0x1c]
push 0xff
lea eax, [esp + 0xd5]
push 0
push eax
mov byte [esp + 0xdc], 0
call fcn.0074d440
push edi
push 0x7ab60c
lea ecx, [esp + 0xe4]
push 0x100
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x498]
add esp, 0x1c
push 0x100
lea edx, [esp + 0xd4]
push edx
call fcn.00658e90
mov ecx, dword [esi + 0x4a0]
test ecx, ecx
je 0x646126
cmp dword [esi + 0x4a4], 0
je 0x646126
mov eax, dword [ecx]
mov edx, dword [eax + 0x58]
call edx
push eax
call fcn.0074f633
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x5298], eax
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0x170]
imul ecx, eax
push ecx
push 0x79a808
lea edx, [esp + 0x9c]
push 0x20
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x4a4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 0x14
lea edx, [esp + 0x90]
push edx
call eax
jmp 0x646126
cmp eax, 0x3f
jne 0x644c0a
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov ebx, dword [eax + 0x18]
test ebx, ebx
mov dword [esp + 0x24], ebx
je 0x6472e2
mov edi, dword [ebx + 8]
test edi, edi
je 0x6472e2
cmp dword [edi], 0
je 0x6472e2
cmp dword [esi + 0x474], 0
je 0x644760
mov ebp, dword [edi + 0x1c]
push 0xff
lea ecx, [esp + 0xd5]
push 0
push ecx
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [edi + 0x17c]
add esp, 0xc
cmp eax, 5
ja case.default.0x6446bf
jmp dword [eax*4 + 0x647460]
push ebp
push 0x8da394
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x644740
push ebp
push 0x8da4f0
jmp 0x644733
push ebp
push 0x8da4c4
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x644740
push ebp
push 0x8da498
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x644740
push ebp
push 0x8da46c
jmp 0x644733
push ebp
push 0x8da440
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x644740
mov edx, dword [edi + 0x1c]
push edx
push 0x7ab60c
push 0x100
lea eax, [esp + 0xdc]
push eax
call fcn.0067ad00
add esp, 0x10
push 0x100
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [esi + 0x474]
call fcn.00658e90
mov edi, dword [esi + 0x484]
test edi, edi
je 0x646126
cmp dword [esi + 0x488], 0
je 0x646126
push 0x3e
lea edx, [esp + 0x96]
push 0
push edx
mov word [esp + 0x9c], 0
call fcn.0074d440
mov eax, dword [edi]
mov edx, dword [eax + 0x58]
add esp, 0xc
mov ecx, edi
call edx
push eax
call fcn.0074f633
mov ebp, eax
mov eax, dword [ebx + 8]
add esp, 4
test eax, eax
je 0x6472e2
mov ecx, dword [esp + 0x24]
mov ebx, dword [eax + 0x16c]
mov edi, dword [eax + 0x170]
call fcn.00634120
cmp ebx, 0x64
jge 0x644b2c
cmp ebx, 0x10
ja case.default.0x6447df
jmp dword [ebx*4 + 0x647478]
imul eax, ebp
lea ecx, [esp + 0x90]
push ecx
push eax
call fcn.004e1e40
mov ecx, dword [esi + 0x488]
add esp, 8
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x84cf1c
push edi
push 0x8c15e8
lea edx, [esp + 0x9c]
push 0x40
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da38c
push edi
push 0x8c15e8
lea eax, [esp + 0x9c]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da380
push edi
push 0x8c15e8
lea ecx, [esp + 0x9c]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da378
push edi
push 0x8c15e8
lea edx, [esp + 0x9c]
push 0x40
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da36c
push edi
push 0x8c15e8
lea eax, [esp + 0x9c]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da360
push edi
push 0x8c15e8
lea ecx, [esp + 0x9c]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da354
push edi
push 0x8c15e8
lea edx, [esp + 0x9c]
push 0x40
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da348
push edi
push 0x8c15e8
lea eax, [esp + 0x9c]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da33c
push edi
push 0x8c15e8
lea ecx, [esp + 0x9c]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8849d0
push edi
push 0x8c15e8
lea edx, [esp + 0x9c]
push 0x40
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da330
push edi
push 0x8c15e8
lea eax, [esp + 0x9c]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da324
push edi
push 0x8c15e8
lea ecx, [esp + 0x9c]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da318
push edi
push 0x8c15e8
lea edx, [esp + 0x9c]
push 0x40
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da30c
push edi
push 0x8c15e8
lea eax, [esp + 0x9c]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da300
push edi
push 0x8c15e8
lea ecx, [esp + 0x9c]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
imul edi, ebp
push 0x8da2f0
push edi
push 0x8c15e8
lea edx, [esp + 0x9c]
push 0x40
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x488]
add esp, 0x14
lea eax, [esp + 0x90]
jmp 0x64611b
push ebx
push 0x79a808
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0074f303
add esp, 0x10
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x74]
call fcn.004028b0
push str.ITEM
push 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x160e0], 4
call fcn.00637b80
push 0x7c5330
push 5
lea ecx, [esp + 0x78]
call fcn.00637b80
push 0x7c5330
push 8
lea ecx, [esp + 0x78]
call fcn.00637b80
sub esp, 0x1c
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.00402730
mov ecx, 0xaae4cc
call fcn.00431330
imul edi, ebp
test eax, eax
jne 0x644bc8
push 0x8da2dc
push edi
push 0x8c15e8
push 0x40
lea eax, [esp + 0xa0]
push eax
jmp 0x644bdc
mov eax, dword [eax + 0x1c]
push eax
push edi
push 0x8c15e8
push 0x40
lea ecx, [esp + 0xa0]
push ecx
call fcn.0067ad00
add esp, 0x14
lea ecx, [esp + 0x70]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.0045deb0
mov ecx, dword [esi + 0x488]
lea eax, [esp + 0x90]
jmp 0x64611b
cmp eax, 0xc
jne 0x644ca5
cmp dword [esi + 0x4a8], 0
je 0x646126
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6472e2
mov edi, dword [eax + 0x18]
test edi, edi
je 0x6472e2
push 0x3ff
lea eax, [esp + 0xd5]
push 0
push eax
mov byte [esp + 0xdc], 0
call fcn.0074d440
lea ecx, [esp + 0xdc]
push ecx
push edi
call fcn.00635ab0
lea eax, [esp + 0xe4]
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x644c81
mov ecx, dword [esi + 0x4a8]
sub eax, edx
push eax
lea edx, [esp + 0xd4]
push edx
call fcn.00658e90
jmp 0x646126
cmp eax, 6
jne 0x64528d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + 0x16c]
xor ebp, ebp
cmp ebx, ebp
jne 0x644d24
cmp dword [esi + 0x420], ebp
je 0x644d6f
cmp ecx, ebp
je 0x644d6f
push 0x3e
lea ecx, [esp + 0xd6]
push ebp
push ecx
mov word [esp + 0xdc], bp
call fcn.0074d440
mov ecx, dword [esp + 0x24]
add esp, 0xc
call fcn.00634120
lea edx, [esp + 0xd0]
push edx
push eax
call fcn.004e1e40
mov ecx, dword [esi + 0x420]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 8
lea edx, [esp + 0xd0]
push edx
call eax
jmp 0x644d6f
mov edi, dword [esi + 0x420]
cmp edi, ebp
je 0x644d6f
cmp ecx, ebp
je 0x644d6f
xor eax, eax
lea edx, [esp + 0x34]
mov word [esp + 0x34], bp
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov word [esp + 0x42], ax
mov ecx, dword [ecx + 0x170]
push edx
push ecx
call fcn.00634250
mov eax, dword [edi]
mov edx, dword [eax + 0x154]
add esp, 8
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
call edx
cmp dword [esi + 0x424], ebp
je 0x645035
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], ebp
je 0x645035
xor eax, eax
cmp ebx, 0x64
mov word [esp + 0x50], bp
mov dword [esp + 0x52], eax
mov dword [esp + 0x56], eax
mov dword [esp + 0x5a], eax
mov dword [esp + 0x5e], eax
mov dword [esp + 0x62], eax
mov dword [esp + 0x66], eax
mov dword [esp + 0x6a], eax
mov word [esp + 0x6e], ax
jge 0x644f60
cmp ebx, 0x10
ja case.default.0x644dc2
jmp dword [ebx*4 + 0x6474bc]
push 0x84cf44
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x84cf1c
jmp 0x644f47
push 0x8da38c
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da380
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da378
jmp 0x644f47
push 0x8da36c
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da360
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da354
jmp 0x644f47
push 0x8da348
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da33c
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8849d0
jmp 0x644f47
push 0x8da330
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da324
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da318
jmp 0x644f47
push 0x8da30c
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da300
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push 0x8da2f0
push 0x7ab60c
lea edx, [esp + 0x58]
push 0x20
push edx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x644dc2
push ebx
push 0x79a808
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0074f303
add esp, 0x10
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x74]
call fcn.004028b0
push str.ITEM
push ebp
lea ecx, [esp + 0x78]
mov dword [esp + 0x160e0], 5
call fcn.00637b80
push 0x7c5330
push 5
lea ecx, [esp + 0x78]
call fcn.00637b80
push 0x7c5330
push 8
lea ecx, [esp + 0x78]
call fcn.00637b80
sub esp, 0x1c
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.00402730
mov ecx, 0xaae4cc
call fcn.00431330
cmp eax, ebp
jne 0x644ff4
push 0x8da2dc
push 0x7ab60c
push 0x20
lea eax, [esp + 0x5c]
push eax
jmp 0x645004
mov eax, dword [eax + 0x1c]
push eax
push 0x7ab60c
push 0x20
lea ecx, [esp + 0x5c]
push ecx
call fcn.0067ad00
add esp, 0x10
lea ecx, [esp + 0x70]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.0045deb0
mov ecx, dword [esi + 0x424]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0x50]
push eax
call edx
mov ecx, dword [esi + 0x428]
cmp ecx, ebp
je 0x646126
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], 0
je 0x646126
cmp ebx, 0x64
jge 0x64517a
cmp ebx, 0x10
ja case.default.0x645063
jmp dword [ebx*4 + 0x647500]
lea eax, [esi + 0xe0]
push eax
call fcn.005e07a0
jmp 0x646126
lea edx, [esi + 0xe8]
push edx
call fcn.005e07a0
jmp 0x646126
lea edx, [esi + 0xf8]
push edx
call fcn.005e07a0
jmp 0x646126
mov eax, dword [esi + 0xfc]
push eax
call fcn.005e06f0
jmp 0x646126
mov edx, dword [esi + 0x104]
push edx
call fcn.005e06f0
jmp 0x646126
mov eax, dword [esi + 0x10c]
push eax
call fcn.005e06f0
jmp 0x646126
mov edx, dword [esi + 0x114]
push edx
call fcn.005e06f0
jmp 0x646126
mov eax, dword [esi + 0x11c]
push eax
call fcn.005e06f0
jmp 0x646126
mov edx, dword [esi + 0x124]
push edx
call fcn.005e06f0
jmp 0x646126
mov eax, dword [esi + 0x12c]
push eax
call fcn.005e06f0
jmp 0x646126
mov edx, dword [esi + 0x134]
push edx
call fcn.005e06f0
jmp 0x646126
mov eax, dword [esi + 0x13c]
push eax
call fcn.005e06f0
jmp 0x646126
mov edx, dword [esi + 0x144]
push edx
call fcn.005e06f0
jmp 0x646126
mov eax, dword [esi + 0x14c]
push eax
call fcn.005e06f0
jmp 0x646126
mov edx, dword [esi + 0x154]
push edx
call fcn.005e06f0
jmp 0x646126
lea eax, [esi + 0xd8]
push eax
call fcn.005e07a0
jmp 0x646126
push ebx
push 0x79a808
lea ecx, [esp + 0x3c]
push 0x10
push ecx
call fcn.0074f303
add esp, 0x10
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x74]
call fcn.004028b0
push str.ITEM
push 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x160e0], 6
call fcn.00637b80
push 0x7c5330
push 5
lea ecx, [esp + 0x78]
call fcn.00637b80
push 0x7c5330
push 8
lea ecx, [esp + 0x78]
call fcn.00637b80
sub esp, 0x1c
lea eax, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.00402730
mov ecx, 0xaae4cc
call fcn.00431330
mov edi, eax
test edi, edi
jne 0x64520c
lea ecx, [esp + 0x70]
call fcn.0045deb0
jmp 0x6472e2
push 0x7e
lea ecx, [esp + 0xd6]
push 0
push ecx
mov word [esp + 0xdc], 0
call fcn.0074d440
mov edi, dword [edi + 0x18]
push edi
push str.Data_item__s
lea edx, [esp + 0xe4]
push 0x80
push edx
call fcn.0067ad00
add esp, 0x1c
cmp byte [esp + 0xd0], 0
je 0x6458b5
push 1
push 0
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x28]
call fcn.004351f0
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x428]
mov byte [esp + 0x160dc], 7
call fcn.005e07a0
mov byte [esp + 0x160d8], 6
jmp 0x6458ac
cmp eax, 0x21
jne 0x6458ce
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 8]
mov edi, dword [ecx + 0x16c]
xor eax, eax
cmp edi, eax
mov dword [esp + 0x70], edi
jne 0x645449
cmp dword [esi + 0x420], eax
je 0x645492
cmp ecx, eax
je 0x645492
xor ebx, ebx
push 0x3e
lea eax, [esp + 0xd6]
push ebx
push eax
mov word [esp + 0xdc], bx
call fcn.0074d440
mov ecx, dword [esp + 0x24]
xor eax, eax
add esp, 0xc
mov word [esp + 0x90], bx
mov dword [esp + 0x92], eax
mov dword [esp + 0x96], eax
mov dword [esp + 0x9a], eax
mov word [esp + 0x9e], ax
mov word [esp + 0xa0], bx
mov dword [esp + 0xa2], eax
mov dword [esp + 0xa6], eax
mov dword [esp + 0xaa], eax
mov word [esp + 0xae], ax
mov word [esp + 0xb0], bx
mov dword [esp + 0xb2], eax
mov dword [esp + 0xb6], eax
mov dword [esp + 0xba], eax
mov word [esp + 0xbe], ax
call fcn.00634120
mov ecx, eax
mov eax, 0xd1b71759
mul ecx
mov edi, edx
shr edi, 0xd
mov edx, edi
imul edx, edx, 0x2710
mov ebp, ecx
sub ebp, edx
mov eax, 0x51eb851f
mul ebp
mov ebp, edx
mov eax, 0x51eb851f
mul ecx
shr edx, 5
imul edx, edx, 0x64
sub ecx, edx
shr ebp, 5
cmp edi, ebx
mov dword [esp + 0x24], ecx
je 0x6453b6
push 0x8849cc
push edi
push str._d_s
lea eax, [esp + 0x9c]
push 0x10
push eax
call fcn.0067ad00
add esp, 0x14
cmp ebp, ebx
je 0x6453d7
push 0x8849c0
push ebp
push str._d_s
lea ecx, [esp + 0xac]
push 0x10
push ecx
call fcn.0067ad00
add esp, 0x14
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x6453fc
push 0x8849bc
push eax
push str._d_s
lea edx, [esp + 0xbc]
push 0x10
push edx
call fcn.0067ad00
add esp, 0x14
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0x98]
push edx
push str._s_s_s
lea eax, [esp + 0xe0]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x420]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x18
lea eax, [esp + 0xd0]
push eax
call edx
mov edi, dword [esp + 0x70]
jmp 0x645492
mov ebx, dword [esi + 0x420]
cmp ebx, eax
je 0x645492
cmp ecx, eax
je 0x645492
mov word [esp + 0x34], ax
mov dword [esp + 0x36], eax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov word [esp + 0x42], ax
mov ecx, dword [ecx + 0x170]
lea eax, [esp + 0x34]
push eax
push ecx
call fcn.00634250
mov edx, dword [ebx]
mov edx, dword [edx + 0x154]
add esp, 8
lea eax, [esp + 0x34]
push eax
mov ecx, ebx
call edx
cmp dword [esi + 0x424], 0
je 0x64575d
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], 0
je 0x64575d
xor eax, eax
cmp edi, 0x64
mov word [esp + 0x50], 0
mov dword [esp + 0x52], eax
mov dword [esp + 0x56], eax
mov dword [esp + 0x5a], eax
mov dword [esp + 0x5e], eax
mov dword [esp + 0x62], eax
mov dword [esp + 0x66], eax
mov dword [esp + 0x6a], eax
mov word [esp + 0x6e], ax
jge 0x645687
cmp edi, 0x10
ja case.default.0x6454e9
jmp dword [edi*4 + 0x647544]
push 0x84cf44
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x84cf1c
jmp 0x64566e
push 0x8da38c
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da380
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da378
jmp 0x64566e
push 0x8da36c
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da360
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da354
jmp 0x64566e
push 0x8da348
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da33c
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8849d0
jmp 0x64566e
push 0x8da330
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da324
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da318
jmp 0x64566e
push 0x8da30c
push 0x7ab60c
lea eax, [esp + 0x58]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da300
push 0x7ab60c
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push 0x8da2f0
push 0x7ab60c
lea edx, [esp + 0x58]
push 0x20
push edx
call fcn.0067ad00
add esp, 0x10
jmp case.default.0x6454e9
push edi
push 0x79a808
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0074f303
add esp, 0x10
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x74]
call fcn.004028b0
push str.ITEM
push 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x160e0], 8
call fcn.00637b80
push 0x7c5330
push 5
lea ecx, [esp + 0x78]
call fcn.00637b80
push 0x7c5330
push 8
lea ecx, [esp + 0x78]
call fcn.00637b80
sub esp, 0x1c
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.00402730
mov ecx, 0xaae4cc
call fcn.00431330
test eax, eax
jne 0x64571c
push 0x8da2dc
push 0x7ab60c
push 0x20
lea eax, [esp + 0x5c]
push eax
jmp 0x64572c
mov eax, dword [eax + 0x1c]
push eax
push 0x7ab60c
push 0x20
lea ecx, [esp + 0x5c]
push ecx
call fcn.0067ad00
add esp, 0x10
lea ecx, [esp + 0x70]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.0045deb0
mov ecx, dword [esi + 0x424]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0x50]
push eax
call edx
mov ecx, dword [esi + 0x428]
test ecx, ecx
je 0x646126
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], 0
je 0x646126
cmp edi, 0x64
jge 0x6457ac
cmp edi, 0x10
ja case.default.0x645783
jmp dword [edi*4 + 0x647588]
lea eax, [esi + 0xf0]
push eax
call fcn.005e07a0
jmp 0x646126
lea eax, [esi + 0xd8]
push eax
call fcn.005e07a0
jmp 0x646126
push edi
push 0x79a808
lea ecx, [esp + 0x3c]
push 0x10
push ecx
call fcn.0074f303
add esp, 0x10
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x74]
call fcn.004028b0
push str.ITEM
push 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x160e0], 9
call fcn.00637b80
push 0x7c5330
push 5
lea ecx, [esp + 0x78]
call fcn.00637b80
push 0x7c5330
push 8
lea ecx, [esp + 0x78]
call fcn.00637b80
sub esp, 0x1c
lea eax, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.00402730
mov ecx, 0xaae4cc
call fcn.00431330
mov edi, eax
test edi, edi
je 0x6451fe
push 0x7e
lea ecx, [esp + 0xd6]
push 0
push ecx
mov word [esp + 0xdc], 0
call fcn.0074d440
mov edi, dword [edi + 0x18]
push edi
push str.Data_item__s
lea edx, [esp + 0xe4]
push 0x80
push edx
call fcn.0067ad00
add esp, 0x1c
cmp byte [esp + 0xd0], 0
je 0x6458b5
push 1
push 0
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x28]
call fcn.004351f0
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x428]
mov byte [esp + 0x160dc], 0xa
call fcn.005e07a0
mov byte [esp + 0x160d8], 9
lea ecx, [esp + 0x1c]
call fcn.004350c0
lea ecx, [esp + 0x70]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.0045deb0
jmp 0x646126
cmp eax, 0x26
jne 0x645a6a
cmp dword [esi + 0x438], 0
je 0x646126
cmp dword [esp + 0x18], 0
je 0x646126
mov edx, dword [esp + 0x18]
mov edi, dword [edx + 8]
test edi, edi
je 0x646126
push 0xff
lea eax, [esp + 0xd5]
push 0
push eax
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [edi + 0x17c]
add esp, 0xc
cmp eax, 5
ja case.default.0x64592c
jmp dword [eax*4 + 0x6475cc]
test edi, edi
je 0x645952
mov edi, dword [edi + 0x1c]
push edi
push str._just:left__spush__color:B9B9B9__s_spop_
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x645a45
xor edi, edi
push edi
push str._just:left__spush__color:B9B9B9__s_spop_
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x645a45
test edi, edi
je 0x64598b
mov edi, dword [edi + 0x1c]
push edi
push str._just:left__spush__color:FFFFFF__s_spop_
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x645a45
xor edi, edi
push edi
push str._just:left__spush__color:FFFFFF__s_spop_
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x645a45
test edi, edi
je 0x6459b7
mov edi, dword [edi + 0x1c]
push edi
push str._just:left__spush__color:00FF00__s_spop_
jmp 0x645a38
xor edi, edi
push edi
push str._just:left__spush__color:00FF00__s_spop_
jmp 0x645a38
test edi, edi
je 0x6459dd
mov edi, dword [edi + 0x1c]
push edi
push str._just:left__spush__color:436EFB__s_spop_
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x645a45
xor edi, edi
push edi
push str._just:left__spush__color:436EFB__s_spop_
push 0x100
lea ecx, [esp + 0xdc]
push ecx
jmp 0x645a45
test edi, edi
je 0x645a10
mov edi, dword [edi + 0x1c]
push edi
push str._just:left__spush__color:A400FF__s_spop_
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x645a45
xor edi, edi
push edi
push str._just:left__spush__color:A400FF__s_spop_
push 0x100
lea edx, [esp + 0xdc]
push edx
jmp 0x645a45
test edi, edi
je 0x645a30
mov edi, dword [edi + 0x1c]
jmp 0x645a32
xor edi, edi
push edi
push str._just:left__spush__color:EB5A04__s_spop_
push 0x100
lea eax, [esp + 0xdc]
push eax
call fcn.0067ad00
add esp, 0x10
push 0x100
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [esi + 0x438]
call fcn.00658e90
jmp 0x646126
cmp eax, 0x2b
jne 0x645ebb
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x446c]
cmp eax, dword [esi + 0x168]
jne 0x646126
push 0
push 0x975c28
push 0x972774
push 0
push ebx
call fcn.0074d229
fld1
mov edi, eax
fstp dword [esp + 0x30]
add esp, 0x14
test edi, edi
je 0x646126
push 0x3f
lea eax, [esp + 0xd5]
push 0
push eax
mov byte [esp + 0xdc], 0
call fcn.0074d440
add esp, 0xc
mov ecx, edi
call fcn.004a8670
test eax, eax
je 0x645b44
movzx eax, word [edi + 0x28]
movzx ecx, ax
mov dword [esp + 0x24], ecx
mov ecx, edi
fild dword [esp + 0x24]
fstp qword [esp + 0x70]
call fcn.004a8670
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
movzx ebx, word [edi + 0x28]
mov ecx, edi
fdivr qword [esp + 0x70]
fstp dword [esp + 0x1c]
call fcn.004a8670
push eax
movzx edx, bx
push edx
push str._d__d
lea eax, [esp + 0xdc]
push 0x40
push eax
call fcn.0067ad00
mov ecx, dword [esi + 0x4c0]
add esp, 0x14
test ecx, ecx
je 0x645b5d
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0xd0]
push eax
jmp 0x645b5b
mov ecx, dword [esi + 0x4c0]
test ecx, ecx
je 0x645b5d
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x7958c8
call edx
push 0
call fcn.0074f5e6
mov ecx, dword [edi + 0x30]
mov ebx, eax
mov eax, dword [edi + 0x2c]
mov edx, ebx
sub edx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jge 0x645b85
fadd dword [0x7bb540]
test ecx, ecx
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jge 0x645b97
fadd dword [0x7bb540]
cmp dword [edi + 0x24], 2
fdivp st(1)
fstp dword [esp + 0x70]
jne 0x645bec
mov ecx, dword [esi + 0x4bc]
test ecx, ecx
je 0x645bbc
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x8da2d0
call edx
mov ecx, dword [esi + 0x4c4]
test ecx, ecx
je 0x645bd5
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
push 0x8da2d0
call edx
mov ecx, dword [esi + 0x4c8]
test ecx, ecx
je 0x645e4a
push 0x10
push 0
jmp 0x645e45
xor eax, eax
mov dword [esp + 0x51], eax
mov dword [esp + 0x55], eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov dword [esp + 0x69], eax
mov word [esp + 0x6d], ax
mov byte [esp + 0x6f], al
mov byte [esp + 0x90], al
mov dword [esp + 0x91], eax
mov dword [esp + 0x95], eax
mov dword [esp + 0x99], eax
mov dword [esp + 0x9d], eax
mov dword [esp + 0xa1], eax
mov dword [esp + 0xa5], eax
mov dword [esp + 0xa9], eax
mov word [esp + 0xad], ax
mov byte [esp + 0xaf], al
mov eax, 0x91a2b3c5
mul ecx
mov ebp, edx
mov eax, 0x91a2b3c5
mul ecx
shr edx, 0xb
imul edx, edx, 0xe10
sub ecx, edx
mov eax, 0x88888889
mul ecx
shr ebp, 0xb
shr edx, 5
test ebp, ebp
mov byte [esp + 0x50], 0
push edx
jle 0x645ca3
push ebp
push 0x8d8d70
lea eax, [esp + 0x5c]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x14
jmp 0x645cb7
push 0x8d8e04
lea ecx, [esp + 0x58]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
mov ebp, dword [edi + 0x2c]
mov edx, ebx
sub edx, ebp
mov eax, 0x91a2b3c5
mul edx
mov ecx, edx
mov eax, ebx
sub eax, ebp
xor edx, edx
mov ebp, 0xe10
div ebp
mov eax, 0x88888889
shr ecx, 0xb
mul edx
shr edx, 5
test ecx, ecx
push edx
jle 0x645d00
push ecx
push 0x8d8d70
lea eax, [esp + 0x9c]
push 0x20
push eax
call fcn.0067ad00
add esp, 0x14
jmp 0x645d17
push 0x8d8e04
lea ecx, [esp + 0x98]
push 0x20
push ecx
call fcn.0067ad00
add esp, 0x10
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x94]
push eax
push 0x8da2c8
lea ecx, [esp + 0xdc]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x4bc]
add esp, 0x14
test ecx, ecx
je 0x645d57
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0xd0]
push eax
call edx
mov eax, dword [edi + 0x40]
mov ecx, dword [edi + 0x3c]
sub eax, ebx
add eax, ecx
mov ebp, eax
cmp ebp, 0x3c
mov dword [esp + 0x24], ebp
jle 0x645d98
mov eax, 0x88888889
imul ebp
add edx, ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
push ecx
push 0x8d8e04
lea edx, [esp + 0x3c]
push 0x10
push edx
call fcn.0067ad00
add esp, 0x10
jmp 0x645dc7
test ebp, ebp
jle 0x645db3
push ebp
push 0x8da2c0
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0067ad00
add esp, 0x10
jmp 0x645dc7
push 0x8da2bc
lea ecx, [esp + 0x38]
push 0x10
push ecx
call fcn.0067ad00
add esp, 0xc
mov ecx, dword [esi + 0x4c4]
test ecx, ecx
je 0x645de0
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0x34]
push eax
call edx
cmp dword [esi + 0x4c8], 0
je 0x645e4a
xor eax, eax
test ebp, ebp
jle 0x645e3c
mov ecx, dword [esi + 0x4c4]
mov ebx, dword [edi + 0x3c]
call fcn.005d1310
fild dword [esp + 0x24]
add ebx, 1
test ebx, ebx
mov dword [esp + 0x24], ebx
fild dword [esp + 0x24]
jge 0x645e16
fadd qword [0x7dd940]
fdivp st(1)
fimul dword [eax]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x24], eax
fldcw word [esp + 0x24]
fistp qword [esp + 0x24]
mov eax, dword [esp + 0x24]
fldcw word [esp + 0x18]
mov ecx, dword [esi + 0x4c8]
push 0x10
push eax
call fcn.005d10b0
mov ecx, dword [esi + 0x4cc]
test ecx, ecx
je 0x645e7c
mov edi, dword [edi + 0x18]
test edi, edi
je 0x645e6d
mov edi, dword [edi + 8]
test edi, edi
je 0x645e68
mov edi, dword [edi + 0x1c]
push edi
jmp 0x645e72
xor edi, edi
push edi
jmp 0x645e72
push 0x7958c8
mov eax, dword [ecx]
mov edx, dword [eax + 0x154]
call edx
mov ecx, dword [esi + 0x4b4]
test ecx, ecx
je 0x645e98
mov eax, dword [ecx]
fld dword [esp + 0x70]
mov edx, dword [eax + 0x158]
push ecx
fstp dword [esp]
call edx
mov ecx, dword [esi + 0x4b8]
test ecx, ecx
je 0x646126
mov eax, dword [ecx]
fld dword [esp + 0x1c]
mov edx, dword [eax + 0x158]
push ecx
fstp dword [esp]
jmp 0x646124
cmp eax, 0x30
jne 0x645f7a
push 0
push 0x972918
push 0x972774
push 0
push ebx
call fcn.0074d229
mov edi, eax
add esp, 0x14
test edi, edi
je 0x646126
push 0x3f
lea eax, [esp + 0xd5]
push 0
push eax
mov byte [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [edi + 0x1c]
push eax
push 0x79a808
lea ecx, [esp + 0xe4]
push 0x40
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x4c0]
add esp, 0x1c
test ecx, ecx
je 0x645f35
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
lea eax, [esp + 0xd0]
push eax
call edx
mov edi, dword [edi + 0x18]
test edi, edi
je 0x646126
mov ecx, dword [esi + 0x4cc]
test ecx, ecx
je 0x646126
mov eax, dword [edi + 8]
test eax, eax
je 0x645f68
mov eax, dword [eax + 0x1c]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x154]
call eax
jmp 0x646126
mov edx, dword [ecx]
xor eax, eax
push eax
mov eax, dword [edx + 0x154]
call eax
jmp 0x646126
cmp dword [esi + 0x420], 0
je 0x646126
cmp dword [esp + 0x18], 0
je 0x646126
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], 0
je 0x646126
xor eax, eax
push 3
mov word [esp + 0x38], ax
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov dword [esp + 0x42], eax
mov word [esp + 0x46], ax
call fcn.004b4aa0
push eax
push 0x79a808
lea edx, [esp + 0x3c]
push 0x10
push edx
call fcn.0067ad00
mov ecx, dword [esi + 0x420]
mov eax, dword [ecx]
mov eax, dword [eax + 0x154]
add esp, 0x10
lea edx, [esp + 0x34]
push edx
call eax
jmp 0x646126
push 0x972794
push 0x972774
push edi
push ebx
mov dword [esi + 0x528], 2
call fcn.0074d229
add esp, 0x14
cmp eax, edi
je 0x6472e2
mov edi, dword [eax + 0x18]
xor ebp, ebp
cmp edi, ebp
je 0x6472e2
mov eax, dword [esi + 0x164]
cmp eax, ebp
je 0x64603e
cmp eax, 3
jne 0x646089
cmp dword [esi + 0x16c], eax
je 0x646089
cmp dword [ebx + 4], 1
je 0x646089
mov byte [esi + 0x1c4], 1
mov dword [esi + 0x1c8], ebp
mov dword [esi + 0x1cc], ebp
mov dword [esi + 0x1d0], ebp
mov eax, dword [edi + 4]
cmp eax, 9
jle 0x64607b
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esi + 0x1cc], ecx
mov eax, dword [edi + 4]
cdq
mov ecx, 0xa
idiv ecx
mov dword [esi + 0x1d0], edx
push 0xff
lea edx, [esp + 0xd5]
push ebp
push edx
mov byte [esp + 0xdc], 0
call fcn.0074d440
add esp, 0xc
cmp dword [esi + 0x41c], ebp
je 0x6460e8
lea eax, [edi + 0x20c]
push eax
push 0x7ab60c
lea ecx, [esp + 0xd8]
push 0x100
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x41c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
add esp, 0x10
lea eax, [esp + 0xd0]
push eax
call edx
cmp dword [esi + 0x420], ebp
je 0x646126
mov eax, dword [edi + 4]
push eax
push 0x8da2b0
lea ecx, [esp + 0xd8]
push 0x100
push ecx
call fcn.0067ad00
mov ecx, dword [esi + 0x420]
lea eax, [esp + 0xe0]
add esp, 0x10
mov edx, dword [ecx]
mov edx, dword [edx + 0x154]
push eax
call edx
mov eax, dword [esi + 0x164]
xor edi, edi
cmp eax, edi
je 0x64614a
cmp eax, 1
je 0x64614a
cmp eax, 0x31
je 0x64614a
cmp eax, 0x40
je 0x64614a
cmp eax, 0x44
jne 0x64621e
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x10], 2
jne 0x646222
push edi
push 0x972918
push 0x972774
push edi
push ebp
call fcn.0074d229
add esp, 0x14
cmp eax, edi
je 0x6472e2
mov eax, dword [eax + 0x18]
cmp eax, edi
je 0x6472e2
mov ecx, eax
call fcn.004a83a0
mov ebx, dword [esp + 0x20]
movsx eax, ax
add eax, 0xffffffff
cmp eax, 9
ja 0x64620a
mov ecx, dword [ebx + eax*8 + 0x5160]
cmp ecx, edi
mov dword [esi + 0x4e4], ecx
je 0x6461da
mov ecx, dword [esi + 0x25c]
mov edx, dword [esi + 0x4d4]
mov dword [esi + 0x4d8], ecx
mov dword [esi + 0x25c], 0x32
mov dword [esi + 0x26c], 4
sub edx, dword [ebx + eax*8 + 0x5164]
mov dword [esi + 0x4dc], edx
mov ecx, dword [esi + 0x4dc]
cmp ecx, dword [esi + 0x4e4]
jb 0x646226
mov dword [esi + 0x4e4], edi
mov dword [esi + 0x4dc], edi
mov dword [esi + 0x4e0], edi
mov dword [ebx + eax*8 + 0x5164], edi
mov dword [ebx + eax*8 + 0x5160], edi
jmp 0x646226
mov dword [esi + 0x4e0], edi
mov dword [esi + 0x4e4], edi
mov dword [esi + 0x4dc], edi
jmp 0x646226
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
cmp dword [ebp + 0x10], 1
jne 0x646321
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x18]
mov eax, dword [eax]
push eax
mov ecx, ebx
call fcn.0049dce0
mov ebp, dword [0x794514]
mov edi, eax
test edi, edi
je 0x646290
xor eax, eax
cmp dword [edi + 4], eax
je 0x646292
call ebp
mov ecx, dword [edi + 4]
cmp dword [ecx], eax
jbe 0x646290
mov edx, dword [esi + 0x25c]
mov dword [esi + 0x4d8], edx
mov dword [esi + 0x25c], 0x32
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
mov dword [esi + 0x4e4], ecx
call ebp
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x4e4]
sub ecx, dword [edx]
add eax, ecx
jmp 0x64629e
xor eax, eax
mov dword [esi + 0x4e0], eax
mov dword [esi + 0x4e4], eax
cmp dword [esi + 0x164], 0x3e
mov dword [esi + 0x4dc], eax
jne 0x646321
test edi, edi
jne 0x646321
movsx edx, byte [ebx + 0x4b35]
push edx
mov ecx, ebx
call fcn.00493150
test eax, eax
je 0x646321
movsx ecx, byte [ebx + 0x4b35]
mov eax, dword [esi + 0x168]
push eax
push ecx
lea ecx, [ebx + 0x4b20]
call fcn.00472b80
test eax, eax
je 0x646321
mov edi, dword [eax]
test edi, edi
je 0x646321
mov edx, dword [esi + 0x25c]
mov dword [esi + 0x4d8], edx
mov dword [esi + 0x25c], 0x32
call ebp
cmp dword [edi + 0xc], eax
jbe 0x646321
mov eax, dword [edi + 0x10]
mov dword [esi + 0x4e4], eax
call ebp
mov ecx, dword [esi + 0x4e4]
sub ecx, dword [edi + 0xc]
add eax, ecx
mov dword [esi + 0x4dc], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esi + 0x26c], edx
cmp dword [eax + 0x10], 2
jne 0x646389
mov eax, dword [esi + 0x164]
cmp eax, 6
je 0x646345
cmp eax, 0x18
jne 0x646389
mov ebp, dword [esp + 0x10]
push 0
push 0x972918
push 0x972774
push 0
push ebp
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x64638d
mov eax, dword [eax + 0x18]
test eax, eax
je 0x64638d
mov ecx, dword [ebx + 0x575c]
push ecx
mov ecx, eax
call fcn.004ae3a0
test al, al
jne 0x64638d
mov dword [esi + 0x26c], 7
jmp 0x64638d
mov ebp, dword [esp + 0x10]
push 0x40
lea edi, [esi + 0x180]
push 0
push edi
call fcn.0074d440
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
add esp, 0xc
mov ecx, ebp
call eax
test eax, eax
je 0x6463e0
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
mov ecx, ebp
call eax
lea edx, [eax + 1]
jmp 0x6463c0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x6463c0
sub eax, edx
mov edx, dword [ebp]
push eax
mov eax, dword [edx + 0x14]
mov ecx, ebp
call eax
push eax
push edi
call fcn.0074dfc0
add esp, 0xc
push 0
push 0x975c28
push 0x972774
push 0
push ebp
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x64642a
cmp dword [eax + 0x24], 2
jne 0x64642a
push str..png
push edi
call fcn.0074f560
sub eax, esi
sub eax, 0x180
push 0x8d8d2c
lea ecx, [eax + esi + 0x180]
push 0x40
push ecx
call fcn.0067ad00
add esp, 0x14
push 0
push 0
push edi
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
lea ecx, [esi + 0x1c0]
mov dword [esp + 0x160dc], 0xb
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], 0xffffffff
call fcn.004350c0
cmp byte [esi + 0x511], 0
mov byte [esi + 0x4f8], 0
mov byte [esi + 0x510], 0
je 0x646da2
push 0xfff
lea edx, [esp + 0x50d5]
push 0
push edx
mov byte [esp + 0x24], 0
mov byte [esp + 0x50dc], 0
call fcn.0074d440
push 0xfff
lea eax, [esp + 0x10e1]
push 0
push eax
mov byte [esp + 0x10e8], 0
call fcn.0074d440
push 0xfff
lea ecx, [esp + 0x20ed]
push 0
push ecx
mov byte [esp + 0x20f4], 0
call fcn.0074d440
push 0xfff
lea edx, [esp + 0x30f9]
push 0
push edx
mov byte [esp + 0x3100], 0
call fcn.0074d440
push 0xffff
lea eax, [esp + 0x6104]
push 0
push eax
call fcn.0074d440
push 0x1000
lea ecx, [esp + 0x4110]
push 0
push ecx
call fcn.0074d440
mov eax, 0xb4
mov edi, eax
mov byte [esi + 0x414], 0
mov byte [esi + 0x415], 0
mov byte [esi + 0x416], 0
mov byte [esi + 0x418], 0
mov dword [esp + 0xd4], eax
mov dword [esp + 0xb8], eax
mov eax, dword [ebp + 0x10]
add esp, 0x48
cmp eax, 2
mov dword [esp + 0x1c], edi
jne 0x646b18
cmp byte [0x1b0eb2b], 0
jne 0x646575
cmp byte [0x1b0eb31], 0
je 0x646b18
push 0
push 0x972918
push 0x972774
push 0
push ebp
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x6469fa
mov ebp, dword [eax + 0x18]
test ebp, ebp
je 0x6469fa
mov ecx, ebp
call fcn.00634140
test al, al
jne 0x6469fa
mov ecx, ebp
call fcn.00634160
test al, al
jne 0x6469fa
mov edx, dword [esi + 0x168]
mov eax, dword [esi + 0x164]
push 0
push 0
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x60e4]
push edx
lea eax, [esp + 0x40e8]
push eax
push ebp
call fcn.00638b90
mov byte [esi + 0x414], al
cmp byte [0x1b0eb32], 0
push 0xffe
lea edx, [esp + 0xf6]
sete cl
push 0
push edx
mov byte [0x1b0eb32], cl
mov word [esp + 0xfc], 0
call fcn.0074d440
add esp, 0x2c
mov ecx, ebp
call fcn.004ab490
test al, al
je 0x64679a
mov eax, dword [esi + 0x164]
cmp eax, 1
je 0x6466db
cmp eax, 6
je 0x6466db
cmp eax, 7
je 0x6466db
cmp eax, 8
je 0x6466db
cmp eax, 9
je 0x6466db
cmp eax, 0x34
je 0x6466db
cmp eax, 0x17
jne 0x646780
mov eax, dword [esi + 0x168]
push eax
mov ecx, ebx
call fcn.004aafa0
test eax, eax
je 0x646780
push 0
push 0x972918
push 0x972774
push 0
push eax
call fcn.0074d229
add esp, 0x14
test eax, eax
je 0x646780
mov ecx, dword [esi + 0x168]
mov eax, dword [eax + 0x18]
push 0
push 1
push ecx
push 2
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x50e4]
push ecx
lea edx, [esp + 0x10e8]
push edx
push eax
call fcn.00638b90
mov byte [esi + 0x415], al
jmp 0x64677d
push 0
lea eax, [esp + 0x24]
push eax
push ebp
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.00636c70
test eax, eax
mov edi, dword [esp + 0x20]
je 0x646728
push 0
push 1
push edi
push 2
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x50e4]
push edx
lea ecx, [esp + 0x10e8]
push ecx
push eax
call fcn.00638b90
add esp, 0x20
mov byte [esi + 0x415], al
cmp edi, 8
jne 0x646736
push 1
lea edx, [esp + 0x24]
push edx
jmp 0x646742
cmp edi, 0xb
jne 0x646780
push 1
lea eax, [esp + 0x24]
push eax
push ebp
mov ecx, esi
call fcn.00636c70
test eax, eax
je 0x646780
mov ecx, dword [esp + 0x20]
push 0
push 1
push ecx
push 2
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x20e4]
push ecx
lea edx, [esp + 0x30e8]
push edx
push eax
call fcn.00638b90
mov byte [esi + 0x416], al
add esp, 0x20
cmp dword [esi + 0x164], 2
jne 0x64679a
lea eax, [esp + 0xd0]
push eax
push ebp
call fcn.0063cd80
add esp, 8
mov eax, dword [esi + 0x164]
cmp eax, 1
je 0x6467c7
cmp eax, 6
je 0x6467c7
cmp eax, 7
je 0x6467c7
cmp eax, 8
je 0x6467c7
cmp eax, 9
je 0x6467c7
cmp eax, 0x34
je 0x6467c7
cmp eax, 0x17
jne 0x646880
cmp byte [esp + 0x10d0], 0
je 0x646880
cmp dword [esi + 0x3f4], 0
je 0x646880
mov ecx, dword [esi + 0x3fc]
test ecx, ecx
je 0x646880
cmp byte [esi + 0x415], 0
je 0x646880
push 0x1000
lea edx, [esp + 0x50d4]
push edx
call fcn.00658e90
mov ecx, dword [esi + 0x3f4]
push 0x1000
lea eax, [esp + 0x10d4]
push eax
call fcn.00658e90
mov ecx, dword [esi + 0x3f4]
call fcn.005d1330
test al, al
jne 0x646880
mov ecx, dword [esi + 0x3fc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov ecx, dword [esi + 0x3f4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov eax, dword [esi + 0x3fc]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
mov eax, dword [esi + 0x3f4]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
mov eax, dword [esi + 0x164]
cmp eax, 1
je 0x6468a8
cmp eax, 6
je 0x6468a8
cmp eax, 7
je 0x6468a8
cmp eax, 8
je 0x6468a8
cmp eax, 9
je 0x6468a8
cmp eax, 0x34
jne 0x646961
cmp byte [esp + 0x30d0], 0
je 0x646961
cmp dword [esi + 0x404], 0
je 0x646961
mov ecx, dword [esi + 0x400]
test ecx, ecx
je 0x646961
cmp byte [esi + 0x416], 0
je 0x646961
push 0x1000
lea edx, [esp + 0x20d4]
push edx
call fcn.00658e90
mov ecx, dword [esi + 0x404]
push 0x1000
lea eax, [esp + 0x30d4]
push eax
call fcn.00658e90
mov ecx, dword [esi + 0x404]
call fcn.005d1330
test al, al
jne 0x646961
mov ecx, dword [esi + 0x400]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov ecx, dword [esi + 0x404]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov eax, dword [esi + 0x400]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
mov eax, dword [esi + 0x404]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
lea ecx, [esp + 0xd0]
push 0x7958c8
push ecx
call fcn.00414240
mov ecx, dword [esi + 0x408]
add esp, 8
test eax, eax
je 0x646af7
push 0x1000
lea edx, [esp + 0xd4]
push edx
mov byte [esi + 0x418], 1
call fcn.00658e90
mov ecx, dword [esi + 0x408]
call fcn.005d1330
test al, al
jne 0x6469f6
mov ecx, dword [esi + 0x408]
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push 0
push 1
call edx
mov ecx, dword [esi + 0x40c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push 0
push 1
call edx
mov eax, dword [esi + 0x408]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
mov eax, dword [esi + 0x40c]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
cmp byte [esi + 0x414], 0
je 0x646cba
cmp byte [0x1b0eb2b], 0
je 0x646d9b
cmp byte [esp + 0x40d0], 0
je 0x646d9b
cmp dword [esi + 0x3f0], 0
je 0x646d9b
mov ecx, dword [esi + 0x3f8]
test ecx, ecx
je 0x646d9b
push 0xffff
lea edx, [esp + 0x60d4]
push edx
call fcn.00658e90
mov ecx, dword [esi + 0x3f0]
push 0x1000
lea eax, [esp + 0x40d4]
push eax
call fcn.00658e90
mov ecx, dword [esi + 0x3f0]
call fcn.005d1330
test al, al
jne 0x646c80
mov ecx, dword [esi + 0x3f8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov ecx, dword [esi + 0x3f0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov edx, dword [esi + 0x514]
push edi
lea ecx, [esp + 0x60d4]
push ecx
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov ecx, dword [esi + 0x518]
mov dword [eax + 4], ecx
mov ecx, esi
mov dword [esp + 0x24], esp
call fcn.00637240
mov eax, dword [esi + 0x3f8]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
mov eax, dword [esi + 0x3f0]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
jmp 0x646d9b
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push 0
push 0
call edx
mov ecx, dword [esi + 0x40c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push 0
push 0
call edx
jmp 0x6469f6
cmp eax, 1
jne 0x6469fe
lea eax, [esp + 0x60d0]
push eax
lea ecx, [esp + 0x40d4]
push ecx
push ebp
mov ecx, esi
call fcn.00641b20
push 0x7fe
lea edx, [esp + 0xd6]
push 0
push edx
mov word [esp + 0xdc], 0
call fcn.0074d440
mov eax, dword [ebp + 0x18]
add esp, 0xc
test eax, eax
je 0x646b9a
cmp dword [esi + 0x164], 3
jne 0x646b9a
cmp dword [esi + 0x26c], 0
jne 0x646b9a
mov eax, dword [eax]
add eax, 1
push eax
mov ecx, 0xaad9b4
call fcn.004a2560
test eax, eax
je 0x646b9a
push 0
lea ecx, [esp + 0xd4]
push ecx
push eax
call fcn.0063d0c0
add esp, 0xc
cmp byte [esp + 0xd0], 0
je 0x646bce
lea edx, [esp + 0x60d0]
push 0x8da274
push edx
call fcn.00409610
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x60dc]
push ecx
call fcn.00409610
add esp, 0x10
mov byte [0x1b0eb2b], 1
cmp dword [esi + 0x26c], 0xb
mov byte [esp + 0x18], 1
jne 0x6469fe
push 0x1ff
lea edx, [esp + 0xd5]
push 0
push edx
mov byte [esp + 0xdc], 0
call fcn.0074d440
add esp, 0xc
lea eax, [esp + 0xd0]
push eax
push ebp
mov ecx, esi
call fcn.006364b0
cmp byte [esp + 0xd0], 0
je 0x6469fa
push 0x200
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [esi + 0x408]
mov byte [esi + 0x418], 1
call fcn.00658e90
mov ecx, dword [esi + 0x408]
call fcn.005d1330
test al, al
jne 0x6469fa
mov ecx, dword [esi + 0x408]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov eax, dword [esi + 0x408]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
jmp 0x6469fa
cmp byte [esp + 0x18], 0
jne 0x646d9b
mov ecx, dword [esi + 0x514]
push edi
lea edx, [esp + 0x60d4]
push edx
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [esi + 0x518]
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax + 4], edx
call fcn.00637240
jmp 0x646d9b
cmp byte [0x1b0eb2b], 0
je 0x646d9b
cmp byte [esp + 0x60d0], 0
je 0x646d86
mov ecx, dword [esi + 0x3f8]
test ecx, ecx
je 0x646d86
push 0xffff
lea eax, [esp + 0x60d4]
push eax
call fcn.00658e90
mov ecx, dword [esi + 0x3f8]
call fcn.005d1330
test al, al
jne 0x646d55
mov ecx, dword [esi + 0x3f8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x60]
push 0
push 1
call eax
mov edx, dword [esi + 0x514]
push edi
lea ecx, [esp + 0x60d4]
push ecx
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov ecx, dword [esi + 0x518]
mov dword [eax + 4], ecx
mov ecx, esi
mov dword [esp + 0x24], esp
call fcn.00637240
mov eax, dword [esi + 0x3f8]
mov ecx, dword [esi + 0x3ec]
push 0
push eax
call fcn.00673740
jmp 0x646d86
cmp byte [esp + 0x18], 0
jne 0x646d86
mov ecx, dword [esi + 0x514]
push edi
lea edx, [esp + 0x60d4]
push edx
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [esi + 0x518]
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax + 4], edx
call fcn.00637240
mov ecx, dword [esi + 0x3f0]
test ecx, ecx
je 0x646d9b
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push 0
push 0
call edx
mov byte [0x1b0eb2b], 0
cmp byte [ebp + 0x14], 0
setne al
mov byte [esi + 0x52d], al
xor edi, edi
lea ebx, [esi + 0xd8]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646e02
mov eax, dword [esi + 0xd4]
cmp byte [eax], 0
je 0x646e02
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0xc
call fcn.00435280
or ebp, 0xffffffff
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
jmp 0x646e05
or ebp, 0xffffffff
lea ebx, [esi + 0xe0]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646e51
mov eax, dword [esi + 0xdc]
cmp byte [eax], 0
je 0x646e51
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0xd
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0xe8]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646e9d
mov eax, dword [esi + 0xe4]
cmp byte [eax], 0
je 0x646e9d
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0xe
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0xf0]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646ee9
mov eax, dword [esi + 0xec]
cmp byte [eax], 0
je 0x646ee9
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0xf
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0xf8]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646f35
mov eax, dword [esi + 0xf4]
cmp byte [eax], 0
je 0x646f35
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x10
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x100]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646f81
mov eax, dword [esi + 0xfc]
cmp byte [eax], 0
je 0x646f81
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x11
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x108]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x646fcd
mov eax, dword [esi + 0x104]
cmp byte [eax], 0
je 0x646fcd
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x12
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x110]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x647019
mov eax, dword [esi + 0x10c]
cmp byte [eax], 0
je 0x647019
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x13
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x118]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x647065
mov eax, dword [esi + 0x114]
cmp byte [eax], 0
je 0x647065
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x14
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x120]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x6470b1
mov eax, dword [esi + 0x11c]
cmp byte [eax], 0
je 0x6470b1
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x15
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x128]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x6470fd
mov eax, dword [esi + 0x124]
cmp byte [eax], 0
je 0x6470fd
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x16
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x130]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x647149
mov eax, dword [esi + 0x12c]
cmp byte [eax], 0
je 0x647149
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x17
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x138]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x647195
mov eax, dword [esi + 0x134]
cmp byte [eax], 0
je 0x647195
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x18
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x140]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x6471e1
mov eax, dword [esi + 0x13c]
cmp byte [eax], 0
je 0x6471e1
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x19
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x148]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x64722d
mov eax, dword [esi + 0x144]
cmp byte [eax], 0
je 0x64722d
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x1a
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x150]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x647279
mov eax, dword [esi + 0x14c]
cmp byte [eax], 0
je 0x647279
push 1
push edi
push eax
lea ecx, [esp + 0x20]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x1b
call fcn.00435280
lea ecx, [esp + 0x14]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
lea ebx, [esi + 0x158]
mov ecx, ebx
call fcn.00435130
test eax, eax
jne 0x6472c5
mov eax, dword [esi + 0x154]
cmp byte [eax], 0
je 0x6472c5
push 1
push edi
push eax
lea ecx, [esp + 0x24]
call fcn.004351f0
push eax
mov ecx, ebx
mov dword [esp + 0x160dc], 0x1c
call fcn.00435280
lea ecx, [esp + 0x18]
mov dword [esp + 0x160d8], ebp
call fcn.004350c0
mov ecx, dword [esi + 0x4d4]
mov dword [esi + 0x4d0], ecx
mov al, 1
jmp 0x6472e4
push 0x8da260
call fcn.006780f0
add esp, 4
xor al, al
mov ecx, dword [esp + 0x160d0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x160cc
ret