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

Disassembly:
mov ecx, dword [0x8c8600]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x94]
cmp eax, dword [ecx + 8]
jbe 0x654f35
sub esp, 0x114
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov edx, dword [0x8a1430]
mov eax, dword [edx]
call eax
mov eax, dword [esp + 0x118]
test byte [eax], al
lea ecx, [eax + 0x7c]
mov dword [esp + 0x110], ecx
mov dword [esp], ecx
call fcn.0048dcd0
mov eax, dword [esp + 0x118]
inc dword [eax + 0x84]
mov ecx, dword [eax + 0x9c]
mov dword [esp + 0x70], ecx
mov ebx, dword [esp + 0x110]
mov dword [esp], ebx
call fcn.0048e050
mov eax, dword [esp + 0x70]
test eax, eax
je 0x6545f3
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
call fcn.0064afb0
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
mov ecx, dword [esp + 4]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + 8]
movzx ecx, byte [ecx + 0x89]
test cl, cl
je 0x65460c
xor ecx, ecx
jmp 0x65467d
mov eax, dword [esp + 0x11c]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], ecx
lea ecx, [0x705863]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xf
call fcn.0063fc80
mov eax, dword [esp + 0x10]
test eax, eax
je 0x654645
mov eax, dword [esp + 0x118]
xor ecx, ecx
jmp 0x65467d
mov eax, dword [esp + 0x11c]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], ecx
lea ecx, [0x70270e]
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call fcn.0063fc80
mov eax, dword [esp + 0x10]
test eax, eax
sete al
mov ecx, eax
mov eax, dword [esp + 0x118]
test cl, cl
je 0x6546e4
mov ecx, dword [esp + 0x11c]
mov edx, dword [ecx]
cmp dword [edx + 4], 4
jne 0x65469a
mov edx, dword [edx]
cmp dword [edx], 0x44414548
je 0x6546e0
mov dword [esp], ecx
call fcn.0064afb0
mov eax, dword [esp + 4]
mov dword [esp], eax
lea eax, [0x705863]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xf
lea eax, [0x702558]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
call fcn.0063fc30
mov ecx, dword [esp + 0x11c]
mov edx, 1
jmp 0x6546ed
xor edx, edx
jmp 0x6546ed
mov ecx, dword [esp + 0x11c]
xor edx, edx
mov byte [esp + 0x23], dl
mov eax, dword [ecx]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00640e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x654769
mov eax, dword [esp + 0x11c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
test edx, edx
jne 0x654728
xor ecx, ecx
jmp 0x654772
mov dword [esp], ecx
call fcn.00642b10
movzx eax, byte [esp + 4]
test al, al
jne 0x654744
mov eax, dword [esp + 0x11c]
xor ecx, ecx
jmp 0x654772
lea eax, [0x6b9640]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00406690
mov eax, dword [esp + 8]
mov ecx, eax
mov eax, dword [esp + 0x11c]
jmp 0x654772
mov eax, dword [esp + 0x11c]
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x118]
mov ebx, dword [edx + 8]
movzx ebx, byte [ebx + 0x88]
test bl, bl
jne 0x654792
xor ebx, ebx
jmp 0x6547bb
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00642b80
movzx eax, byte [esp + 4]
xor eax, 1
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x118]
mov ebx, eax
mov eax, dword [esp + 0x11c]
test bl, bl
je 0x654814
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], ecx
call fcn.00643740
movzx eax, byte [esp + 4]
test al, al
jne 0x654814
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
call fcn.0064afb0
mov eax, dword [esp + 4]
mov dword [esp], eax
lea eax, [0x7036fe]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
lea eax, [0x70271d]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 5
call fcn.0063fc30
lea eax, [0x6b9640]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00406690
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
lea ecx, [0x6550a0]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x44]
mov dword [esp], ecx
call fcn.0043aae0
test eax, eax
jne 0x6549c6
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 0x40]
mov dword [esp + 0x3c], edx
lea ebx, [0x6b9580]
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.00406690
mov eax, dword [esp + 8]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], eax
mov edx, dword [esp + 0x80]
mov dword [esp + 0x10c], edx
mov ebx, dword [esp + 0x118]
mov ebp, dword [ebx + 0x48]
mov dword [esp], ebp
lea ebp, [esp + 0x104]
mov dword [esp + 4], ebp
call fcn.004068f0
lea eax, [0x6b9b80]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00406690
mov eax, dword [esp + 8]
mov dword [esp + 0x68], eax
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.004773db
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0xf0], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 0xf4], edx
movzx ebx, byte [esp + 0x23]
mov byte [esp + 0xf8], bl
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0x118]
mov ebp, dword [ebx + 0x44]
mov dword [esp], ebp
lea ebp, [esp + 0xf0]
mov dword [esp + 4], ebp
call fcn.004068f0
lea eax, [0x654f80]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0x38]
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xbc], ebx
mov ebp, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ebp, dword [ebp + 0x10]
mov dword [esp], esi
call ebp
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x118]
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x6c], edx
xor ebx, ebx
jmp 0x6549d2
call fcn.0043af70
add esp, 0x114
ret
mov dword [esp + 0x64], ebx
mov edx, dword [0x8a1434]
mov eax, dword [edx]
call eax
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
lea edi, [esp + 0x84]
xor eax, eax
call fcn.004773d6
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xa4], ecx
lea ebx, [esp + 0xe8]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x9c], ebx
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x94], ebp
mov esi, dword [esp + 0x68]
mov dword [esp + 0x8c], esi
lea edi, [esp + 0xdc]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x84], edi
lea edi, [esp + 0x84]
mov dword [esp], edi
lea edi, [esp + 0x24]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov byte [esp + 0x14], 1
call fcn.0044f400
mov eax, dword [esp + 0x18]
test eax, eax
je 0x654b99
cmp eax, 1
je 0x654e7b
cmp eax, 2
je 0x654e27
cmp eax, 3
je 0x654d1e
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
test eax, eax
jne 0x654c32
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + 0xa0]
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
test ebx, ebx
xchg edi, ebx
seta bl
xchg edi, ebx
and ebp, edi
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x654b2b
mov ebx, dword [esp + 0x64]
jmp 0x6549d2
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.004b5510
mov eax, dword [esp + 8]
mov dword [esp + 0x60], eax
lea ecx, [0x6cad00]
mov dword [esp], ecx
call fcn.0040dea0
mov eax, dword [esp + 4]
lea ecx, [0x654f40]
mov dword [eax], ecx
mov edx, dword [0x8c88d8]
test edx, edx
jne 0x654b69
mov edx, dword [esp + 0x60]
jmp 0x654b74
call fcn.004772e0
mov edx, dword [esp + 0x60]
mov dword [edi], edx
mov dword [eax + 4], edx
mov dword [esp], eax
call fcn.0043a900
test eax, eax
jne 0x654c26
mov eax, dword [esp + 0x60]
mov ebx, dword [eax]
mov eax, dword [esp + 0x118]
jmp 0x6549d2
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
lea eax, [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00407ac0
movzx eax, byte [esp + 8]
test al, al
jne 0x654ed8
mov eax, dword [esp + 0x11c]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004efa60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x118]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00652150
mov eax, dword [esp + 0x118]
mov ebx, dword [esp + 0x64]
jmp 0x6549d2
call fcn.0043af70
add esp, 0x114
ret
mov dword [esp + 0x40], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
je 0x654c53
mov edx, dword [eax + 4]
jmp 0x654c55
mov edx, eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], ecx
lea eax, [0x7058f9]
mov dword [esp], eax
mov dword [esp + 4], 0xf
lea eax, [esp + 0xd4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c8ee0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x118]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00655130
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x14], eax
call fcn.006523a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], ecx
call fcn.0043af70
add esp, 0x114
ret
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
lea eax, [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00407ac0
movzx eax, byte [esp + 8]
test al, al
je 0x654dbc
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
lea edx, [esp + 0xac]
call ebp
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], ebx
call fcn.0043af70
add esp, 0x114
ret
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + 0x88]
mov edx, dword [eax + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.006523a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], ecx
call fcn.0043af70
add esp, 0x114
ret
mov eax, dword [0x8a1540]
mov ecx, dword [0x8a1544]
mov edx, dword [esp + 0x118]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00655130
mov eax, dword [0x8a1540]
mov ecx, dword [0x8a1544]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], ecx
call fcn.0043af70
add esp, 0x114
ret
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
lea edx, [esp + 0xac]
call ebp
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], ebx
call fcn.0043af70
add esp, 0x114
ret
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
lea edx, [esp + 0xac]
call ebp
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], ebx
call fcn.0043af70
add esp, 0x114
ret
call fcn.00475ee0
jmp fcn.00654540