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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x594540
sub esp, 0x88
mov ecx, dword [esp + 0x8c]
movzx ebx, byte [ecx + 8]
test bl, bl
je 0x594183
mov ebx, dword [ecx + 0x28]
movzx ebp, byte [ebx + 0x61]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x594166
mov ebp, dword [ebx + 0x84]
test ebp, ebp
je 0x594166
mov ebp, dword [esp + 0x90]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x594149
mov esi, 0x3b9aca00
mul esi
cmp eax, 0xf9290000
xchg esi, ebx
seta bl
xchg esi, ebx
cmp edx, 0x2260f
xchg edi, ebx
sete bl
xchg edi, ebx
xchg ebp, ebx
setg bl
xchg ebp, ebx
and edi, esi
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x594100
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], eax
movzx ebp, word [ecx + 0x32]
mov esi, dword [0x820458]
mov edi, dword [0x82045c]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
jmp 0x5941d9
mov dword [esp], ecx
mov byte [esp + 4], 0x2f
call fcn.00587370
lea eax, [0x63c100]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x34
lea ecx, [0x674315]
mov dword [eax], ecx
lea ecx, [0x6cf324]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x88
ret
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
add esp, 0x88
ret
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
add esp, 0x88
ret
mov dword [esp], ecx
mov byte [esp + 4], 0xa
call fcn.00587370
lea eax, [0x63c100]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x2e
lea ecx, [0x672c8b]
mov dword [eax], ecx
lea ecx, [0x6cf324]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x88
ret
inc eax
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
cmp eax, edi
jge 0x5941f1
mov ebx, dword [esi + eax*4]
cmp word [ebx], bp
jne 0x5941cc
mov eax, ebx
mov ebx, dword [esp + 0x48]
jmp 0x5941f3
xor eax, eax
test eax, eax
je 0x594516
mov eax, dword [ecx + 0x74]
test eax, eax
je 0x594516
mov dword [esp + 0x34], edx
mov eax, dword [ebx + 8]
test eax, eax
jne 0x594217
lea eax, [0x67cbe4]
mov ecx, dword [eax]
mov edx, eax
call ecx
lea edi, [esp + 0x74]
lea esi, [esp]
call fcn.0045fb1e
lea edi, [esp + 0x60]
lea esi, [esp + 0x74]
call fcn.0045fb1e
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x28]
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x59424d
lea ecx, [0x67cbe4]
mov eax, dword [ecx]
mov edx, ecx
call eax
lea edi, [esp + 0x74]
lea esi, [esp]
call fcn.0045fb1e
lea edi, [esp + 0x4c]
lea esi, [esp + 0x74]
call fcn.0045fb1e
lea edi, [esp]
lea esi, [esp + 0x4c]
call fcn.0045fb1e
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
call fcn.004a1cb0
lea edi, [esp + 0x74]
lea esi, [esp + 0x1c]
call fcn.0045fb1e
lea eax, [0x656240]
mov dword [esp], eax
call fcn.0040b470
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov ebp, dword [eax + 0x28]
mov dword [edi + 4], ebx
mov dword [edi + 8], ebp
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x5942d0
mov dword [edi], ecx
jmp 0x5942db
mov edx, eax
mov eax, ecx
call fcn.0045f3a0
mov eax, edx
mov ecx, dword [esp + 0x8c]
movzx edx, word [ecx + 0x24]
mov word [edi + 0xc], dx
movzx edx, word [ecx + 0x32]
mov word [edi + 0xe], dx
mov edx, dword [ecx + 0x74]
mov ebx, dword [ecx + 0x78]
mov ebp, dword [ecx + 0x7c]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ebp
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x594310
mov dword [edi + 0x10], edx
jmp 0x594324
lea ebx, [edi + 0x10]
mov ebp, edi
mov edi, ebx
mov esi, eax
mov eax, edx
call fcn.0045f3a0
mov eax, esi
mov edi, ebp
mov edx, dword [ecx + 0x4c]
mov ebx, dword [ecx + 0x50]
mov ebp, dword [ecx + 0x54]
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebp
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x594342
mov dword [edi + 0x1c], edx
jmp 0x594356
lea ebx, [edi + 0x1c]
mov ebp, edi
mov edi, ebx
mov esi, eax
mov eax, edx
call fcn.0045f3a0
mov eax, esi
mov edi, ebp
mov edx, dword [ecx + 0x58]
mov ebx, dword [ecx + 0x5c]
mov ebp, dword [ecx + 0x60]
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x30], ebp
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x594374
mov dword [edi + 0x28], edx
jmp 0x594388
lea ebx, [edi + 0x28]
mov ebp, edi
mov edi, ebx
mov esi, eax
mov eax, edx
call fcn.0045f3a0
mov eax, esi
mov edi, ebp
mov dword [esp + 0x44], edi
lea edx, [edi + 0x34]
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x5943a8
lea esi, [esp + 0x60]
mov ebx, edi
mov edi, edx
call fcn.0045fb1e
jmp 0x5943cd
lea eax, [0x65fe80]
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [esp + 0x60]
mov dword [esp + 8], eax
call fcn.00410a60
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x44]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov ebp, dword [eax + 0x1c]
mov dword [ebx + 0x64], edx
mov dword [ebx + 0x68], ebp
mov edx, dword [0x84d450]
test edx, edx
jne 0x5943eb
mov dword [ebx + 0x60], ecx
jmp 0x5943f9
lea edi, [ebx + 0x60]
mov edx, eax
mov eax, ecx
call fcn.0045f3a0
mov eax, edx
lea edi, [ebx + 0x6c]
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x594411
lea esi, [esp + 0x74]
call fcn.0045fb1e
jmp 0x594436
lea eax, [0x65fe80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
call fcn.00410a60
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x44]
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x80], ecx
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + 0x34]
mov edx, dword [ecx + 0x38]
mov ebp, dword [ecx + 0x3c]
mov dword [ebx + 0x4c], edx
mov dword [ebx + 0x50], ebp
mov edx, dword [0x84d450]
test edx, edx
jne 0x594464
mov dword [ebx + 0x48], eax
jmp 0x59446c
lea edi, [ebx + 0x48]
call fcn.0045f3a0
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
mov ebp, dword [ecx + 0x48]
mov dword [ebx + 0x58], edx
mov dword [ebx + 0x5c], ebp
mov edx, dword [0x84d450]
test edx, edx
jne 0x59448a
mov dword [ebx + 0x54], eax
jmp 0x594492
lea edi, [ebx + 0x54]
call fcn.0045f3a0
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x28]
mov edx, dword [ecx + 0x44]
mov ecx, dword [ecx + 0x40]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
test edx, edx
jne 0x5944d2
mov eax, dword [ebx + 0x14]
mov dword [esp], ebp
call eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x28]
mov ebx, dword [eax + 0x84]
mov eax, dword [eax + 0x88]
mov ebx, dword [ebx + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
call ebx
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
add esp, 0x88
ret
mov dword [esp], ecx
mov byte [esp + 4], 0x50
call fcn.00587370
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x88
ret
call fcn.0045df90
jmp fcn.00594040