Function at 0x594140
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 0x594640
sub esp, 0x88
mov ecx, dword [esp + 0x8c]
movzx ebx, byte [ecx + 8]
test bl, bl
je 0x594283
mov ebx, dword [ecx + 0x28]
movzx ebp, byte [ebx + 0x61]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x594266
mov ebp, dword [ebx + 0x84]
test ebp, ebp
je 0x594266
mov ebp, dword [esp + 0x90]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x594249
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 0x594200
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], eax
movzx ebp, word [ecx + 0x32]
mov esi, dword [0x8214b8]
mov edi, dword [0x8214bc]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
jmp 0x5942d9
mov dword [esp], ecx
mov byte [esp + 4], 0x2f
call fcn.00587470
lea eax, [0x63c100]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x34
lea ecx, [0x67437d]
mov dword [eax], ecx
lea ecx, [0x6cf47c]
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.00587470
lea eax, [0x63c100]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x2e
lea ecx, [0x672cf3]
mov dword [eax], ecx
lea ecx, [0x6cf47c]
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 0x5942f1
mov ebx, dword [esi + eax*4]
cmp word [ebx], bp
jne 0x5942cc
mov eax, ebx
mov ebx, dword [esp + 0x48]
jmp 0x5942f3
xor eax, eax
test eax, eax
je 0x594616
mov eax, dword [ecx + 0x74]
test eax, eax
je 0x594616
mov dword [esp + 0x34], edx
mov eax, dword [ebx + 8]
test eax, eax
jne 0x594317
lea eax, [0x67ccec]
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 0x59434d
lea ecx, [0x67ccec]
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 [0x84e4b0]
test ebx, ebx
jne 0x5943d0
mov dword [edi], ecx
jmp 0x5943db
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 [0x84e4b0]
test ebx, ebx
jne 0x594410
mov dword [edi + 0x10], edx
jmp 0x594424
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 [0x84e4b0]
test ebx, ebx
jne 0x594442
mov dword [edi + 0x1c], edx
jmp 0x594456
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 [0x84e4b0]
test ebx, ebx
jne 0x594474
mov dword [edi + 0x28], edx
jmp 0x594488
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 [0x84e4b0]
test ebx, ebx
jne 0x5944a8
lea esi, [esp + 0x60]
mov ebx, edi
mov edi, edx
call fcn.0045fb1e
jmp 0x5944cd
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 [0x84e4b0]
test edx, edx
jne 0x5944eb
mov dword [ebx + 0x60], ecx
jmp 0x5944f9
lea edi, [ebx + 0x60]
mov edx, eax
mov eax, ecx
call fcn.0045f3a0
mov eax, edx
lea edi, [ebx + 0x6c]
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x594511
lea esi, [esp + 0x74]
call fcn.0045fb1e
jmp 0x594536
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 [0x84e4b0]
test edx, edx
jne 0x594564
mov dword [ebx + 0x48], eax
jmp 0x59456c
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 [0x84e4b0]
test edx, edx
jne 0x59458a
mov dword [ebx + 0x54], eax
jmp 0x594592
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 0x5945d2
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.00587470
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.00594140