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

Disassembly:
sub esp, 0x598
mov eax, dword [0x1854370]
xor eax, esp
mov dword [esp + 0x594], eax
push ebx
push ebp
mov ebp, dword [esp + 0x5a4]
push esi
mov esi, dword [esp + 0x5ac]
xor edx, edx
mov dword [ebp + 8], 0x80000000
mov dword [ebp], edx
movzx ecx, word [esi]
push edi
mov edi, dword [esp + 0x5b4]
mov eax, ecx
mov dword [esp + 0x58], edi
mov ebx, 0x184c268
cmp eax, 0x2008
jg 0x166283c
je 0x1663275
sub eax, 2
cmp eax, 0x15
ja case.0x16628b4.16394
jmp dword [eax*4 + 0x1663d5c]
mov eax, dword [esi + 8]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xcc]
push ecx
call fcn.01276260
add esp, 0xc
push eax
lea ecx, [esp + 0x240]
call fcn.012a23b0
lea edx, [esp + 0x23c]
push edx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x23c]
call fcn.012a03b0
lea ecx, [esp + 0xc4]
call fcn.01261000
jmp 0x1663b19
cmp word [esi + 8], dx
setne al
movzx ecx, al
push ecx
lea ecx, [esp + 0x548]
call fcn.012a11f0
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x544]
call fcn.012a03b0
jmp 0x1663b19
movsx edx, byte [esi + 8]
push edx
lea ecx, [esp + 0x170]
call fcn.012a1170
lea eax, [esp + 0x16c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x16c]
call fcn.012a03b0
push 0x16fb13c
push edi
call fcn.01267949
add esp, 8
test al, al
je 0x1663b19
mov dword [esp + 0x5b8], 2
jmp 0x1663b19
movsx ecx, word [esi + 8]
push ecx
lea ecx, [esp + 0x1b0]
call fcn.012a1170
lea edx, [esp + 0x1ac]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x1ac]
call fcn.012a03b0
push 0x16fb144
jmp 0x166232b
mov eax, dword [esp + 0x5b8]
cmp eax, 0x43
je 0x166244f
cmp eax, edx
jne 0x16623fd
push 0x16fb220
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x166244f
push 0x16fb1e0
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662402
push 0x17ffa3c
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662402
mov eax, dword [esi + 8]
push eax
lea ecx, [esp + 0x490]
call fcn.012a1170
lea ecx, [esp + 0x48c]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x48c]
call fcn.012a03b0
jmp 0x1663b19
cmp eax, 0x4a
jne 0x16623cd
mov edx, dword [esi + 8]
push edx
lea ecx, [esp + 0xac]
call fcn.01369440
push 0
push eax
push 0x4a
lea ecx, [esp + 0x1d8]
call fcn.012a1110
lea eax, [esp + 0x1cc]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x1cc]
call fcn.012a03b0
lea ecx, [esp + 0xa8]
call fcn.01368e30
jmp 0x1663b19
mov ecx, dword [esi + 8]
push ecx
lea edx, [esp + 0x568]
push edx
call fcn.01660e10
add esp, 8
push 0
push eax
push 0x43
lea ecx, [esp + 0x358]
call fcn.012a1110
lea eax, [esp + 0x34c]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x34c]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 8]
push ecx
lea ecx, [esp + 0x1f0]
call fcn.012a1170
lea edx, [esp + 0x1ec]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x1ec]
call fcn.012a03b0
jmp 0x1663b19
movzx eax, byte [esi + 8]
push eax
lea ecx, [esp + 0x410]
call fcn.012a1170
lea ecx, [esp + 0x40c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x40c]
call fcn.012a03b0
jmp 0x1663b19
movzx edx, word [esi + 8]
push edx
lea ecx, [esp + 0x210]
call fcn.012a1170
lea eax, [esp + 0x20c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x20c]
call fcn.012a03b0
jmp 0x1663b19
mov eax, dword [esp + 0x5b8]
cmp eax, 0x43
je 0x16625f0
cmp eax, edx
jne 0x16625a4
push 0x16fb220
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16625f0
push 0x16fb1e0
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16625a9
push 0x17ffa3c
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16625a9
mov ecx, dword [esi + 8]
push ecx
lea ecx, [esp + 0x370]
call fcn.012a1170
lea edx, [esp + 0x36c]
push edx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x36c]
call fcn.012a03b0
jmp 0x1663b19
cmp eax, 0x4a
jne 0x1662574
mov eax, dword [esi + 8]
push eax
lea ecx, [esp + 0x6c]
call fcn.01369440
push 0
push eax
push 0x4a
lea ecx, [esp + 0x238]
call fcn.012a1110
lea ecx, [esp + 0x22c]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x22c]
call fcn.012a03b0
lea ecx, [esp + 0x68]
call fcn.01368e30
jmp 0x1663b19
mov edx, dword [esi + 8]
push edx
lea eax, [esp + 0x588]
push eax
call fcn.01660e10
add esp, 8
push 0
push eax
push 0x43
lea ecx, [esp + 0x478]
call fcn.012a1110
lea ecx, [esp + 0x46c]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x46c]
call fcn.012a03b0
jmp 0x1663b19
mov edx, dword [esi + 8]
push edx
lea ecx, [esp + 0x250]
call fcn.012a1190
lea eax, [esp + 0x24c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x24c]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea ecx, [esp + 0x394]
call fcn.012a11b0
lea eax, [esp + 0x38c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x38c]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea ecx, [esp + 0x274]
call fcn.012a11b0
lea eax, [esp + 0x26c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x26c]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea ecx, [esp + 0x434]
call fcn.012a11d0
lea eax, [esp + 0x42c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x42c]
call fcn.012a03b0
jmp 0x1663b19
fld dword [esi + 8]
lea ecx, [esp + 0x134]
fstp dword [esp + 0x68]
push ecx
fld dword [esp + 0x6c]
mov ecx, ebp
fstp dword [esp + 0x138]
mov dword [esp + 0x140], 0x87
call fcn.012a1230
lea ecx, [esp + 0x134]
call fcn.012a03b0
jmp 0x1663b19
fld qword [esi + 8]
sub esp, 8
lea ecx, [esp + 0x294]
fstp qword [esp]
call fcn.012a1210
lea edx, [esp + 0x28c]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x28c]
call fcn.012a03b0
jmp 0x1663b19
fld qword [esi + 8]
sub esp, 8
lea esi, [esp + 0xc8]
fstp qword [esp]
call fcn.01660c30
add esp, 8
push eax
lea ecx, [esp + 0x3b0]
call fcn.012a2440
lea eax, [esp + 0x3ac]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x3ac]
call fcn.012a03b0
mov ecx, esi
call fcn.012b54e0
mov eax, dword [esp + 0x5b8]
cmp eax, 0xe
je 0x166282e
test eax, eax
jne 0x1662824
push 0x16fb2d8
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x166282e
push 0x17ffa34
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x166282e
push 0x16fb2d0
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662816
push 0x17ffa2c
push edi
call fcn.01267949
add esp, 8
test al, al
je 0x1663b19
push 0xf
mov ecx, ebp
call fcn.012a2960
jmp 0x1663b19
cmp eax, 0xf
je 0x1662816
jmp 0x1663b19
push 0xe
mov ecx, ebp
call fcn.012a2960
jmp 0x1663b19
cmp eax, 0x4002
jg 0x1662895
je 0x166284f
sub eax, 0x200c
jmp 0x16633fc
mov ecx, dword [esi + 8]
movsx edx, word [ecx]
push edx
lea ecx, [esp + 0x2b0]
call fcn.012a1170
lea eax, [esp + 0x2ac]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x2ac]
call fcn.012a03b0
push 0x16fb144
push edi
call fcn.0128e730
add esp, 8
neg eax
sbb eax, eax
inc eax
jmp 0x1662334
cmp eax, 0x6008
jg 0x16633f7
je 0x1663275
sub eax, 0x4003
cmp eax, 0x14
ja case.0x16628b4.16394
jmp dword [eax*4 + 0x1663db4]
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push 0xffffffffffffffff
push edx
lea eax, [esp + 0xa8]
push eax
call fcn.01276260
add esp, 0xc
push eax
lea ecx, [esp + 0x4b0]
call fcn.012a23b0
lea ecx, [esp + 0x4ac]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x4ac]
call fcn.012a03b0
lea ecx, [esp + 0xa0]
call fcn.01261000
jmp 0x1663b19
mov eax, dword [esi + 8]
cmp word [eax], dx
setne cl
movzx edx, cl
push edx
lea ecx, [esp + 0x508]
call fcn.012a11f0
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x504]
call fcn.012a03b0
jmp 0x1663b19
mov eax, dword [esi + 8]
movsx ecx, byte [eax]
push ecx
lea ecx, [esp + 0x2d0]
call fcn.012a1170
lea edx, [esp + 0x2cc]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x2cc]
jmp 0x1662321
mov eax, dword [esp + 0x5b8]
cmp eax, 0x43
je 0x1662a40
cmp eax, edx
jne 0x16629ec
push 0x16fb220
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662a40
push 0x16fb1e0
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16629f1
push 0x17ffa3c
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16629f1
mov eax, dword [esi + 8]
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x3d0]
call fcn.012a1170
lea edx, [esp + 0x3cc]
push edx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x3cc]
call fcn.012a03b0
jmp 0x1663b19
cmp eax, 0x4a
jne 0x16629ba
mov eax, dword [esi + 8]
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0xcc]
call fcn.01369440
push 0
push eax
push 0x4a
lea ecx, [esp + 0x2f8]
call fcn.012a1110
lea edx, [esp + 0x2ec]
push edx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x2ec]
call fcn.012a03b0
lea ecx, [esp + 0xc8]
call fcn.01368e30
jmp 0x1663b19
mov eax, dword [esi + 8]
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x578]
push edx
call fcn.01660e10
add esp, 8
push 0
push eax
push 0x43
lea ecx, [esp + 0x458]
call fcn.012a1110
lea eax, [esp + 0x44c]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x44c]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push edx
lea ecx, [esp + 0x310]
call fcn.012a1170
lea eax, [esp + 0x30c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x30c]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 8]
movzx edx, byte [ecx]
push edx
lea ecx, [esp + 0x3f0]
call fcn.012a1170
lea eax, [esp + 0x3ec]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x3ec]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
push edx
lea ecx, [esp + 0x190]
call fcn.012a1170
lea eax, [esp + 0x18c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x18c]
call fcn.012a03b0
jmp 0x1663b19
mov eax, dword [esp + 0x5b8]
cmp eax, 0x43
je 0x1662bed
cmp eax, edx
jne 0x1662b9f
push 0x16fb220
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662bed
push 0x16fb1e0
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662ba4
push 0x17ffa3c
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1662ba4
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push edx
lea ecx, [esp + 0x1a0]
call fcn.012a1170
lea eax, [esp + 0x19c]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x19c]
call fcn.012a03b0
jmp 0x1663b19
cmp eax, 0x4a
jne 0x1662b6d
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push edx
lea ecx, [esp + 0x58]
call fcn.01369440
push 0
push eax
push 0x4a
lea ecx, [esp + 0x1c8]
call fcn.012a1110
lea eax, [esp + 0x1bc]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x1bc]
call fcn.012a03b0
lea ecx, [esp + 0x54]
call fcn.01368e30
jmp 0x1663b19
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
push edx
lea eax, [esp + 0x598]
push eax
call fcn.01660e10
add esp, 8
push 0
push eax
push 0x43
lea ecx, [esp + 0x1e8]
call fcn.012a1110
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x1dc]
call fcn.012a03b0
jmp 0x1663b19
mov edx, dword [esi + 8]
mov eax, dword [edx]
push eax
lea ecx, [esp + 0x200]
call fcn.012a1190
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x1fc]
call fcn.012a03b0
jmp 0x1663b19
mov esi, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x224]
call fcn.012a11b0
lea ecx, [esp + 0x21c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x21c]
call fcn.012a03b0
jmp 0x1663b19
mov esi, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x184]
call fcn.012a11b0
lea ecx, [esp + 0x17c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x17c]
call fcn.012a03b0
jmp 0x1663b19
mov esi, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x264]
call fcn.012a11d0
lea ecx, [esp + 0x25c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x25c]
call fcn.012a03b0
jmp 0x1663b19
mov edx, dword [esi + 8]
fld dword [edx]
lea eax, [esp + 0x114]
fstp dword [esp + 0x54]
push eax
fld dword [esp + 0x58]
mov ecx, ebp
fstp dword [esp + 0x118]
mov dword [esp + 0x120], 0x87
call fcn.012a1230
lea ecx, [esp + 0x114]
call fcn.012a03b0
jmp 0x1663b19
mov ecx, dword [esi + 8]
fld qword [ecx]
sub esp, 8
lea ecx, [esp + 0x284]
fstp qword [esp]
call fcn.012a1210
lea edx, [esp + 0x27c]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x27c]
call fcn.012a03b0
jmp 0x1663b19
mov eax, dword [esi + 8]
fld qword [eax]
sub esp, 8
lea esi, [esp + 0xd8]
fstp qword [esp]
call fcn.01660c30
add esp, 8
push eax
lea ecx, [esp + 0x2a0]
call fcn.012a2440
lea ecx, [esp + 0x29c]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x29c]
call fcn.012a03b0
mov ecx, esi
jmp 0x16627b5
mov esi, dword [esi + 8]
cmp esi, edx
je 0x1663b19
push 0
mov edx, edi
push edx
lea eax, [esp + 0x53c]
push esi
push eax
call fcn.01662210
add esp, 0x10
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x534]
call fcn.012a03b0
jmp 0x1663b19
mov dword [esp + 0x20], edx
lea ebx, [esi + 8]
test ecx, 0x4000
je 0x1662e16
mov ecx, dword [ebx]
mov eax, dword [ecx]
jmp 0x1662e18
mov eax, dword [ebx]
cmp dword [esp + 0x5b8], 0x40
mov dword [esp + 0x20], eax
je 0x1663175
mov ecx, dword [esp + 0x5b8]
test ecx, ecx
jne 0x1662ee5
push 0x16fb238
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1663171
push 0x17ffa24
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x1663171
push 0x16fb230
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16630af
push 0x17ffa18
push edi
call fcn.01267949
add esp, 8
test al, al
jne 0x16630af
mov edx, dword [edi]
cmp dword [edx + 8], 0
je 0x1663b19
mov eax, 0x4000
test word [esi], ax
je 0x1662ef0
push 0x1602830
push 0x160bce0
push 0x17ff9cc
call fcn.012accf0
add esp, 0xc
push ebx
push eax
lea ecx, [esp + 0x52c]
call fcn.012a10d0
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x524]
call fcn.012a03b0
jmp 0x1663b19
cmp ecx, 0x41
je 0x16630b3
jmp 0x1662e91
push 0x18318f0
push edi
call fcn.01267949
add esp, 8
test al, al
je 0x1662f5a
push 0x10
call fcn.01666532
add esp, 4
test eax, eax
je 0x1662f24
mov ecx, dword [esp + 0x20]
push 0
push ecx
mov ecx, eax
call fcn.01664350
mov dword [esp + 0x78], eax
jmp 0x1662f2c
mov dword [esp + 0x78], 0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x558]
push eax
call fcn.016621c0
add esp, 8
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x554]
call fcn.012a03b0
jmp 0x1663b19
push 0x17ff428
push edi
call fcn.012ae8b0
add esp, 8
test al, al
je 0x1663039
mov ecx, dword [edi]
mov eax, dword [ecx + 0xc]
push eax
call fcn.012ad000
add esp, 4
test eax, eax
je 0x1663039
mov esi, dword [edi]
mov dword [esp + 0x88], esi
mov edx, esi
mov eax, 1
lock xadd dword [edx], eax
push 0xffffffffffffffff
push 0x2a
mov ecx, edi
call fcn.0128e470
cmp eax, 0xffffffff
je 0x1662fd3
push eax
lea ecx, [esp + 0xd0]
push ecx
mov ecx, edi
call fcn.0128ef30
mov ecx, esi
mov esi, dword [eax]
mov dword [eax], ecx
lea ecx, [esp + 0xcc]
mov dword [esp + 0x88], esi
call fcn.012617d1
mov esi, dword [esi + 0xc]
push esi
call fcn.012ad000
mov edx, dword [esp + 0x24]
push edx
push eax
call fcn.016520a0
mov dword [esp + 0xc0], eax
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
add esp, 0xc
lea ecx, [esp + 0xb4]
push ecx
push eax
call fcn.012ad000
add esp, 4
push eax
lea ecx, [esp + 0x4ec]
call fcn.012a10d0
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x4e4]
call fcn.012a03b0
lea ecx, [esp + 0x88]
call fcn.012617d1
jmp 0x1663b19
mov eax, dword [0x185bf4c]
mov edx, dword [edi]
mov esi, dword [edx + 0xc]
test eax, eax
jne 0x166305b
push 0xffffffffffffffff
push 0x17ff428
call fcn.016534e0
add esp, 8
mov dword [0x185bf4c], eax
mov eax, dword [0x185bf4c]
cmp eax, 0xffffffff
je 0x1663071
push eax
push esi
call fcn.012ace00
add esp, 8
jmp 0x1663084
push 0x1602830
push 0x160bce0
push esi
call fcn.012accf0
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0x4fc]
call fcn.012a10d0
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x4f4]
call fcn.012a03b0
jmp 0x1663b19
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], 0
test eax, eax
je 0x1663128
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [esp + 0x40]
push ecx
push 0x17ffcd0
push eax
call edx
mov esi, dword [esp + 0x40]
test esi, esi
je 0x1663128
lea edi, [esp + 0x4d8]
call fcn.01660bd0
push 0
push eax
push 0x41
lea ecx, [esp + 0x2c8]
call fcn.012a1110
lea eax, [esp + 0x2bc]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x2bc]
call fcn.012a03b0
mov ecx, edi
call fcn.01337270
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x1663b19
lea ecx, [esp + 0x4cc]
call fcn.01336fb0
push 0
push eax
push 0x41
lea ecx, [esp + 0x2e8]
call fcn.012a1110
lea eax, [esp + 0x2dc]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x2dc]
call fcn.012a03b0
lea ecx, [esp + 0x4cc]
call fcn.01337270
jmp 0x1663b19
mov eax, dword [esp + 0x20]
mov dword [esp + 0x60], 0
test eax, eax
je 0x16631ea
mov ecx, dword [eax]
lea edx, [esp + 0x60]
push edx
push 0x17ffcc0
push eax
mov eax, dword [ecx]
call eax
mov esi, dword [esp + 0x60]
test esi, esi
je 0x16631ea
lea edi, [esp + 0x154]
call fcn.01660a20
push 0
push eax
push 0x40
lea ecx, [esp + 0x308]
call fcn.012a1110
lea ecx, [esp + 0x2fc]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x2fc]
call fcn.012a03b0
mov ecx, edi
call fcn.0135bfb0
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x1663b19
lea ecx, [esp + 0xfc]
call fcn.013a0fb0
push 0
push eax
push 0x40
lea ecx, [esp + 0x328]
call fcn.012a1110
lea ecx, [esp + 0x31c]
push ecx
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x31c]
call fcn.012a03b0
lea ecx, [esp + 0xfc]
call fcn.0135bfb0
jmp 0x1663b19
mov dword [esp + 0x64], edx
test ecx, 0x4000
je 0x166325b
mov edx, dword [esi + 8]
mov eax, dword [edx]
lea edx, [esp + 0x64]
push edx
push ebp
mov dword [esp + 0x6c], eax
call fcn.01655220
add esp, 8
jmp 0x1663b19
mov ecx, dword [esi + 8]
lea edx, [esp + 0x64]
push edx
push ebp
mov dword [esp + 0x6c], ecx
call fcn.01655220
add esp, 8
jmp 0x1663b19
test ecx, 0x4000
je 0x1663284
mov eax, dword [esi + 8]
mov esi, dword [eax]
jmp 0x1663287
mov esi, dword [esi + 8]
mov dword [esp + 0x14], ebx
mov ecx, 1
lock xadd dword [ebx], ecx
cmp esi, edx
je 0x16633a7
cmp word [esi], 1
jne 0x16633a7
lea edx, [esp + 0x94]
push edx
push 1
push esi
call dword [fcn.016d53dc]
lea eax, [esp + 0x84]
push eax
push 1
push esi
call dword [fcn.016d53d8]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x84]
jg 0x1663357
mov edi, dword [fcn.016d53d4]
mov ebx, dword [fcn.016d5388]
jmp 0x16632f0
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x50]
push edx
push esi
call edi
mov eax, dword [esp + 0x74]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.01276260
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
call fcn.01268bf8
mov edx, dword [esp + 0x90]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x166333e
mov ecx, dword [esp + 0x90]
push ecx
call fcn.01273020
add esp, 4
mov edx, dword [esp + 0x74]
push edx
call ebx
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x84]
jle 0x16632f0
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x340]
call fcn.012a5b80
lea ecx, [esp + 0x33c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x33c]
call fcn.012a03b0
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x1663b19
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x18]
call fcn.01261eb3
jmp 0x1663b19
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x360]
call fcn.012a5b80
lea eax, [esp + 0x35c]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x35c]
call fcn.012a03b0
mov ecx, dword [esp + 0x14]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663b19
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x18]
call fcn.01261eb3
jmp 0x1663b19
sub eax, 0x600c
je 0x1663773
sub eax, 5
je 0x1663636
test ecx, 0x2000
je 0x1663b19
test ecx, 0x4000
je 0x1663426
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
jmp 0x1663429
mov esi, dword [esi + 8]
mov dword [esp + 0x10], 0x184c268
mov edx, 0x184c268
mov eax, 1
lock xadd dword [edx], eax
test esi, esi
je 0x16635ec
cmp word [esi], 1
jne 0x16635ec
lea ecx, [esp + 0x34]
push ecx
push esi
call dword [fcn.016d53d0]
movzx eax, word [esp + 0x34]
add eax, 0xfffffffe
cmp eax, 0x15
ja case.0x1663471.8
movzx edx, byte [eax + 0x1663e14]
jmp dword [edx*4 + 0x1663e08]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x380]
call fcn.012a5370
lea ecx, [esp + 0x37c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x37c]
call fcn.012a03b0
mov edx, dword [esp + 0x10]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x1663b19
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x14]
jmp 0x1663b14
lea edx, [esp + 0xbc]
push edx
push 1
push esi
call dword [fcn.016d53dc]
lea eax, [esp + 0x7c]
push eax
push 1
push esi
call dword [fcn.016d53d8]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x7c]
jg 0x16635a1
mov edi, dword [fcn.016d53d4]
lea ecx, [ecx]
mov cx, word [esp + 0x34]
lea edx, [esp + 0xe4]
push edx
lea eax, [esp + 0x20]
push eax
push esi
mov word [esp + 0xe8], cx
call edi
push 0
lea ecx, [esp + 0x60]
call fcn.0128e840
push 0
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0xe4]
push edx
lea eax, [esp + 0x3a8]
push eax
call fcn.01662210
mov ecx, dword [esp + 0x6c]
add esp, 0x10
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663561
mov eax, dword [esp + 0x5c]
push eax
call fcn.01285a10
add esp, 4
lea ecx, [esp + 0xdc]
push ecx
call fcn.01660e60
add esp, 4
lea edx, [esp + 0x39c]
push edx
lea ecx, [esp + 0x14]
call fcn.0126e5f0
lea ecx, [esp + 0x39c]
call fcn.012a03b0
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x7c]
jle 0x1663500
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x3c0]
call fcn.012a5370
lea ecx, [esp + 0x3bc]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x3bc]
call fcn.012a03b0
mov edx, dword [esp + 0x10]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x1663b19
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x14]
jmp 0x1663b14
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x3e0]
call fcn.012a5370
lea eax, [esp + 0x3dc]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x3dc]
call fcn.012a03b0
mov ecx, dword [esp + 0x10]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663b19
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
jmp 0x1663b13
test ecx, 0x4000
je 0x1663645
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
jmp 0x1663648
mov esi, dword [esi + 8]
mov dword [esp + 0x18], 0x184c178
mov eax, 0x184c178
mov ecx, 1
lock xadd dword [eax], ecx
cmp esi, edx
je 0x1663724
cmp word [esi], 1
jne 0x1663724
lea edx, [esp + 0xb0]
push edx
push 1
push esi
call dword [fcn.016d53dc]
lea eax, [esp + 0xac]
push eax
push 1
push esi
call dword [fcn.016d53d8]
mov eax, dword [esp + 0xac]
cmp eax, 0xffffffff
je 0x16636ea
sub eax, dword [esp + 0xb0]
lea ecx, [esp + 0x18]
inc eax
push eax
call fcn.0128f850
lea ecx, [esp + 0x18]
call fcn.01262c03
lea ecx, [esp + 0xb8]
push ecx
push esi
mov edi, eax
call dword [fcn.016d53bc]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
push eax
mov eax, dword [esp + 0xbc]
push eax
push edi
call fcn.016665c0
add esp, 0xc
push esi
call dword [fcn.016d53b8]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x400]
call fcn.012a2380
lea edx, [esp + 0x3fc]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x3fc]
call fcn.012a03b0
lea ecx, [esp + 0x18]
call fcn.012617d1
jmp 0x1663b19
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x420]
call fcn.012a2380
lea ecx, [esp + 0x41c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x41c]
call fcn.012a03b0
mov edx, dword [esp + 0x18]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x1663b19
mov ecx, dword [esp + 0x18]
push ecx
call fcn.01285a10
add esp, 4
jmp 0x1663b19
test ecx, 0x4000
je 0x1663782
mov eax, dword [esi + 8]
mov esi, dword [eax]
jmp 0x1663785
mov esi, dword [esi + 8]
cmp esi, edx
je 0x1663792
push esi
call dword [fcn.016d53cc]
jmp 0x1663794
xor eax, eax
dec eax
je 0x16639e7
dec eax
je 0x16637f5
mov dword [esp + 0x3c], ebx
mov ecx, 1
lock xadd dword [ebx], ecx
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x440]
call fcn.012a5370
lea eax, [esp + 0x43c]
push eax
mov ecx, ebp
call fcn.01262cae
lea ecx, [esp + 0x43c]
call fcn.012a03b0
mov ecx, dword [esp + 0x3c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663b19
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x3c]
jmp 0x1663b13
mov dword [esp + 0x38], 0x184c268
mov ecx, 0x184c268
mov edx, 1
lock xadd dword [ecx], edx
mov edi, dword [fcn.016d53dc]
lea eax, [esp + 0x98]
push eax
push 1
push esi
call edi
mov ebx, dword [fcn.016d53d8]
lea ecx, [esp + 0x70]
push ecx
push 1
push esi
call ebx
lea edx, [esp + 0x9c]
push edx
push 2
push esi
call edi
lea eax, [esp + 0x8c]
push eax
push 2
push esi
call ebx
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x70]
jg 0x166399c
mov ebx, dword [fcn.016d5390]
mov dword [esp + 0x24], 0x184c268
mov ecx, 0x184c268
mov edx, 1
lock xadd dword [ecx], edx
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd4], eax
cmp edi, dword [esp + 0x8c]
jg 0x1663947
jmp 0x16638a0
lea ecx, [esp + 0xec]
push ecx
call ebx
lea edx, [esp + 0xec]
push edx
lea eax, [esp + 0xd8]
push eax
push esi
mov dword [esp + 0xe4], edi
call dword [fcn.016d53d4]
push 0
lea ecx, [esp + 0x48]
call fcn.0128e840
push 0
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0xf4]
push edx
lea eax, [esp + 0x468]
push eax
call fcn.01662210
mov ecx, dword [esp + 0x54]
add esp, 0x10
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x166390c
mov eax, dword [esp + 0x44]
push eax
call fcn.01285a10
add esp, 4
lea ecx, [esp + 0xec]
push ecx
call fcn.01660e60
add esp, 4
lea edx, [esp + 0x45c]
push edx
lea ecx, [esp + 0x28]
call fcn.0126e5f0
lea ecx, [esp + 0x45c]
call fcn.012a03b0
inc edi
cmp edi, dword [esp + 0x8c]
jle 0x16638a0
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x518]
call fcn.012a5370
push eax
lea ecx, [esp + 0x3c]
call fcn.0126e5f0
lea ecx, [esp + 0x514]
call fcn.012a03b0
mov ecx, dword [esp + 0x24]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663989
mov eax, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x28]
call fcn.012668cd
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x70]
jle 0x1663863
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x480]
call fcn.012a5370
lea edx, [esp + 0x47c]
push edx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x47c]
call fcn.012a03b0
mov eax, dword [esp + 0x38]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1663b19
mov edx, dword [esp + 0x38]
push edx
lea ecx, [esp + 0x3c]
jmp 0x1663b14
mov dword [esp + 0x30], ebx
mov eax, 1
lock xadd dword [ebx], eax
lea ecx, [esp + 0xa4]
push ecx
push 1
push esi
call dword [fcn.016d53dc]
lea edx, [esp + 0x6c]
push edx
push 1
push esi
call dword [fcn.016d53d8]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x6c]
jg 0x1663ad2
mov edi, dword [fcn.016d5390]
mov ebx, dword [fcn.016d53d4]
lea eax, [esp + 0x104]
push eax
call edi
lea ecx, [esp + 0x104]
push ecx
lea edx, [esp + 0x54]
push edx
push esi
call ebx
push 0
lea ecx, [esp + 0x4c]
call fcn.0128e840
push 0
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x10c]
push ecx
lea edx, [esp + 0x4a8]
push edx
call fcn.01662210
mov eax, dword [esp + 0x58]
add esp, 0x10
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1663a92
mov edx, dword [esp + 0x48]
push edx
call fcn.01285a10
add esp, 4
lea eax, [esp + 0x104]
push eax
call fcn.01660e60
add esp, 4
lea ecx, [esp + 0x49c]
push ecx
lea ecx, [esp + 0x34]
call fcn.0126e5f0
lea ecx, [esp + 0x49c]
call fcn.012a03b0
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x6c]
jle 0x1663a34
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x4c0]
call fcn.012a5370
lea eax, [esp + 0x4bc]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x4bc]
call fcn.012a03b0
mov ecx, dword [esp + 0x30]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663b19
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
push eax
call fcn.012668cd
mov esi, dword [esp + 0x5b8]
test esi, esi
jne 0x1663b60
mov esi, dword [esp + 0x58]
mov ecx, dword [esi]
cmp dword [ecx + 8], 0
je 0x1663d3e
push 0x18318f0
push esi
call fcn.0128e730
add esp, 8
neg eax
sbb eax, eax
neg eax
test al, al
je 0x1663d3e
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
push eax
call fcn.012a0470
add esp, 4
mov esi, eax
cmp esi, 0xffffffff
je 0x1663d3e
test esi, esi
je 0x1663d3e
mov ecx, ebp
call fcn.012a03f0
cmp eax, esi
je 0x1663d3e
push esi
mov ecx, ebp
call fcn.012a1c30
test al, al
je 0x1663bc5
push ebp
lea ecx, [esp + 0x128]
call fcn.012a0f80
push esi
lea ecx, [esp + 0x128]
call fcn.012a2960
test al, al
je 0x1663bb9
lea eax, [esp + 0x124]
push eax
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x124]
jmp 0x1663d39
cmp esi, 0xb
jne 0x1663d0d
mov ecx, ebp
call fcn.012a03f0
cmp eax, 9
jne 0x1663d0d
mov bl, 1
mov dword [esp + 0x2c], 0x184c268
mov ecx, 0x184c268
mov edx, 1
lock xadd dword [ecx], edx
lea eax, [esp + 0x28]
push eax
mov ecx, ebp
call fcn.012a5440
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
lea esi, [eax + ecx*4 + 0x14]
lea eax, [eax + edx*4 + 0x14]
cmp esi, eax
je 0x1663ca9
lea esp, [esp]
mov eax, dword [esi]
push eax
lea ecx, [esp + 0x148]
call fcn.012a0f80
push 0xa
lea ecx, [esp + 0x148]
call fcn.012a1c30
test al, al
je 0x1663c81
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x148]
call fcn.012a1790
push eax
lea ecx, [esp + 0x30]
call fcn.01268bf8
mov edx, dword [esp + 0x80]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x1663c83
mov ecx, dword [esp + 0x80]
push ecx
call fcn.01273020
add esp, 4
jmp 0x1663c83
xor bl, bl
lea ecx, [esp + 0x144]
call fcn.012a03b0
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0xc]
add esi, 4
lea ecx, [eax + edx*4 + 0x14]
cmp esi, ecx
jne 0x1663c20
test bl, bl
je 0x1663cd9
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x330]
call fcn.012a5b80
lea ecx, [esp + 0x32c]
push ecx
mov ecx, ebp
call fcn.012a1230
lea ecx, [esp + 0x32c]
call fcn.012a03b0
mov eax, dword [esp + 0x28]
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x1663cf0
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x2c]
call fcn.012668cd
mov ecx, dword [esp + 0x2c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1663d3e
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x30]
call fcn.01261eb3
jmp 0x1663d3e
lea ecx, [esp + 0x15c]
push ecx
mov ecx, ebp
mov dword [esp + 0x168], 0x80000000
mov dword [esp + 0x160], 0
call fcn.01262cae
lea ecx, [esp + 0x15c]
call fcn.012a03b0
mov ecx, dword [esp + 0x5a4]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
xor ecx, esp
call fcn.016664c7
add esp, 0x598
ret