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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x184]
cmp eax, dword [ecx + 8]
jbe 0x596be2
sub esp, 0x204
call fcn.00592030
mov eax, dword [esp]
mov dword [esp + 0xc0], eax
test byte [eax], al
mov ecx, dword [esp + 0x29c]
mov edx, dword [ecx]
mov ebx, dword [0x9f0ee0]
mov edx, dword [edx + 0xc8]
test ebx, ebx
jne 0x596bc8
mov dword [eax + 0xc8], edx
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov eax, dword [ecx]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004094b0
mov eax, dword [esp + 8]
lea ecx, [0x718aa0]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x208]
mov edx, dword [esp + 0x20c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004094b0
mov eax, dword [esp + 8]
lea ecx, [0x718aa0]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], eax
lea eax, [0x767b29]
mov dword [esp], eax
mov dword [esp + 4], 5
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.00500e50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0xc0]
mov dword [edi + 4], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596bbe
mov dword [edi], eax
mov ecx, dword [esp + 0x284]
mov eax, dword [esp + 0x280]
test ecx, ecx
jne 0x596b91
mov dword [edi + 0x10], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596b7e
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x228]
mov dword [edi + 0x18], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596b6b
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x234]
mov ecx, dword [esp + 0x238]
mov dword [edi + 0x38], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596b58
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x23c]
mov ecx, dword [esp + 0x240]
mov dword [edi + 0x28], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596b45
mov dword [edi + 0x24], eax
mov ecx, dword [esp + 0x29c]
mov edx, dword [ecx]
mov ebx, dword [0x9f0ee0]
mov eax, dword [edx + 0x78]
test ebx, ebx
jne 0x596b32
mov dword [edi + 0x78], eax
mov eax, dword [esp + 0x294]
mov edx, dword [esp + 0x298]
mov dword [edi + 0xd4], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596b1c
mov dword [edi + 0xd0], eax
mov eax, dword [esp + 0x264]
mov edx, dword [esp + 0x268]
mov ebx, dword [esp + 0x26c]
mov dword [edi + 0x40], edx
mov dword [edi + 0x44], ebx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596b09
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x270]
mov edx, dword [esp + 0x274]
mov ebx, dword [esp + 0x278]
mov dword [edi + 0x4c], edx
mov dword [edi + 0x50], ebx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596af6
mov dword [edi + 0x48], eax
movzx edx, byte [esp + 0x27e]
mov byte [edi + 0x55], dl
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
mov edx, dword [edx + 0x30]
mov dword [edi + 0x30], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596ae3
mov dword [edi + 0x2c], eax
mov edx, dword [ecx]
movzx edx, byte [edx + 0x56]
mov byte [edi + 0x56], dl
mov edx, dword [ecx]
test byte [edx], al
lea ebx, [edi + 0x80]
mov ebp, dword [0x9f0ee0]
lea esi, [edx + 0x80]
test ebp, ebp
jne 0x596ac1
mov eax, edi
mov edi, ebx
call fcn.0045fbfe
mov ecx, dword [esp + 0x29c]
mov edx, dword [ecx]
mov ebx, dword [edx + 0xa8]
mov edx, dword [edx + 0xac]
mov dword [eax + 0xac], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596aab
mov dword [eax + 0xa8], ebx
mov edx, dword [ecx]
mov ebx, dword [edx + 0xb0]
mov edx, dword [edx + 0xb4]
mov dword [eax + 0xb4], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596a95
mov dword [eax + 0xb0], ebx
mov edx, dword [ecx]
mov ebx, dword [edx + 0xbc]
mov edx, dword [edx + 0xb8]
mov dword [eax + 0xb8], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596a7f
mov dword [eax + 0xbc], ebx
mov edx, dword [ecx]
mov ebx, dword [edx + 0xc4]
mov edx, dword [edx + 0xc0]
mov dword [eax + 0xc0], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596a69
mov dword [eax + 0xc4], ebx
mov dword [eax + 0x5c], 0
mov dword [eax + 0x60], 0
lea edi, [eax + 0x58]
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596a55
lea edx, [0x9f0ca8]
mov dword [eax + 0x58], edx
mov edx, dword [esp + 0x268]
mov ebx, dword [esp + 0x264]
test edx, edx
jle 0x596a4e
mov dword [esp + 0xc8], edi
mov dword [esp + 0xbc], edx
xor ebp, ebp
jmp 0x5966d6
mov edx, dword [esp + 0xc4]
add edx, 0x94
mov ebx, edx
mov ebp, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xc4], ebx
lea edi, [esp + 0xdc]
mov esi, ebx
call fcn.0045fabe
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
mov ebx, dword [eax + 0x60]
mov ebp, dword [esp + 0x118]
mov eax, dword [esp + 0x11c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
lea edi, [esp + 0x14]
lea esi, [esp + 0xdc]
call fcn.0045fabe
call fcn.00594b30
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xc0]
mov dword [ebx + 0x5c], ecx
mov dword [ebx + 0x60], edx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596a3d
mov dword [ebx + 0x58], eax
mov eax, dword [esp + 0xb8]
inc eax
mov ecx, dword [esp + 0xbc]
cmp eax, ecx
jl 0x5966be
mov eax, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ebx + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409530
mov eax, dword [esp + 0xc]
lea ecx, [0x7ef070]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00491c90
mov eax, dword [esp + 0x29c]
mov ecx, dword [eax]
movzx ecx, byte [ecx + 0x54]
mov edx, dword [esp + 0xc0]
mov byte [edx + 0x54], cl
mov ecx, dword [esp + 0x24c]
test ecx, ecx
je 0x5967dd
mov ebx, dword [0x9f0ee0]
test ebx, ebx
jne 0x596a2a
mov dword [edx + 0x64], ecx
mov ecx, dword [0x9f0ee0]
mov ebx, dword [esp + 0x250]
test ecx, ecx
jne 0x596a17
mov dword [edx + 0x68], ebx
mov ecx, dword [0x9f0ee0]
mov ebx, dword [esp + 0x254]
test ecx, ecx
jne 0x596a04
mov dword [edx + 0x6c], ebx
mov ecx, dword [esp + 0x258]
mov ebx, dword [esp + 0x25c]
test ecx, ecx
je 0x5969d0
mov dword [edx + 0x70], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x5969bd
mov dword [edx + 0x74], ebx
mov ecx, dword [0x9f0ee0]
mov ebx, dword [esp + 0x260]
test ecx, ecx
jne 0x5969aa
mov dword [edx + 0x7c], ebx
mov ecx, dword [edx + 0x40]
mov ebx, dword [edx + 0x3c]
test ecx, ecx
jle 0x5969a6
mov dword [esp + 0xbc], ecx
xor ebp, ebp
jmp 0x596877
mov edx, dword [esp + 0xc4]
lea ebx, [edx + 0x94]
mov ebp, eax
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xc4], ebx
lea edi, [esp + 0x170]
mov esi, ebx
call fcn.0045fabe
lea eax, [0x70fde0]
mov dword [esp], eax
call fcn.0040bc50
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x208]
mov edx, dword [esp + 0x20c]
mov dword [eax + 4], edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x596996
mov dword [eax], ecx
mov edx, dword [esp + 0x170]
mov ebx, dword [esp + 0x174]
mov dword [eax + 0xc], ebx
mov ebx, dword [0x9f0ee0]
test ebx, ebx
jne 0x596983
mov dword [eax + 8], edx
mov edx, dword [esp + 0xc0]
mov ebx, dword [edx + 0x3c]
mov ecx, dword [edx + 0x40]
mov ebp, dword [esp + 0xb4]
cmp ecx, ebp
jbe 0x596bda
imul ecx, ebp, 0x94
mov dword [ebx + ecx + 0x84], 2
mov dword [ebx + ecx + 0x88], 2
lea edi, [ebx + ecx + 0x80]
mov esi, edx
mov edx, dword [0x9f0ee0]
test edx, edx
jne 0x59697c
mov dword [ebx + ecx + 0x80], eax
lea eax, [ebp + 1]
mov ecx, dword [esp + 0xbc]
cmp ecx, eax
jg 0x596868
mov dword [esp], esi
mov eax, dword [esp + 0x29c]
mov dword [esp + 4], eax
call fcn.00593570
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], ecx
add esp, 0x204
ret
call fcn.0045f470
jmp 0x59693a
lea edi, [eax + 8]
mov ecx, eax
mov eax, edx
call fcn.0045f470
mov eax, ecx
jmp 0x5968e8
mov edi, eax
mov eax, ecx
call fcn.0045f470
mov eax, edi
jmp 0x5968c6
mov esi, edx
jmp 0x59694c
lea edi, [edx + 0x7c]
mov ecx, eax
mov eax, ebx
call fcn.0045f470
mov eax, ecx
jmp 0x59684f
lea edi, [edx + 0x74]
mov ecx, eax
mov eax, ebx
call fcn.0045f470
mov eax, ecx
jmp 0x596837
mov ecx, dword [0x9cff74]
mov ebx, dword [0x9cff70]
mov dword [edx + 0x70], ebx
mov ebx, dword [0x9f0ee0]
test ebx, ebx
jne 0x5969f1
mov dword [edx + 0x74], ecx
jmp 0x596837
lea edi, [edx + 0x74]
mov ebx, eax
mov eax, ecx
call fcn.0045f470
mov eax, ebx
jmp 0x596837
lea edi, [edx + 0x6c]
mov ecx, eax
mov eax, ebx
call fcn.0045f470
mov eax, ecx
jmp 0x59680d
lea edi, [edx + 0x68]
mov ecx, eax
mov eax, ebx
call fcn.0045f470
mov eax, ecx
jmp 0x5967f5
lea edi, [edx + 0x64]
mov ebx, eax
mov eax, ecx
call fcn.0045f470
mov eax, ebx
jmp 0x5967dd
mov edi, dword [esp + 0xc8]
call fcn.0045f470
jmp 0x596764
mov ebx, eax
jmp 0x59677b
mov edx, eax
lea eax, [0x9f0ca8]
call fcn.0045f470
mov eax, edx
jmp 0x596696
lea edi, [eax + 0xc4]
mov edx, eax
mov eax, ebx
call fcn.0045f470
mov eax, edx
jmp 0x59666e
lea edi, [eax + 0xbc]
mov edx, eax
mov eax, ebx
call fcn.0045f470
mov eax, edx
jmp 0x596646
lea edi, [eax + 0xb0]
mov edx, eax
mov eax, ebx
call fcn.0045f470
mov eax, edx
jmp 0x59661e
lea edi, [eax + 0xa8]
mov edx, eax
mov eax, ebx
call fcn.0045f470
mov eax, edx
jmp 0x5965f6
lea eax, [0x763180]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.00411160
mov eax, dword [esp + 0xc0]
jmp 0x5965c7
lea edx, [edi + 0x2c]
mov ebx, edi
mov edi, edx
call fcn.0045f470
mov edi, ebx
jmp 0x596597
lea edx, [edi + 0x48]
mov ebx, edi
mov edi, edx
call fcn.0045f470
mov edi, ebx
jmp 0x596570
lea edx, [edi + 0x3c]
mov ebx, edi
mov edi, edx
call fcn.0045f470
mov edi, ebx
jmp 0x596544
lea edx, [edi + 0xd0]
mov ebx, edi
mov edi, edx
call fcn.0045f470
mov edi, ebx
jmp 0x596518
lea edx, [edi + 0x78]
mov ebx, edi
mov edi, edx
call fcn.0045f470
mov edi, ebx
jmp 0x5964f0
lea ecx, [edi + 0x24]
mov edx, edi
mov edi, ecx
call fcn.0045f470
mov edi, edx
jmp 0x5964d3
lea ecx, [edi + 0x34]
mov edx, edi
mov edi, ecx
call fcn.0045f470
mov edi, edx
jmp 0x5964b1
lea ecx, [edi + 0x14]
mov edx, edi
mov edi, ecx
call fcn.0045f470
mov edi, edx
jmp 0x59648f
lea ecx, [edi + 0xc]
mov edx, edi
mov edi, ecx
call fcn.0045f470
mov edi, edx
jmp 0x59646d
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [edi + 0x10], ecx
mov ecx, dword [0x9f0ee0]
test ecx, ecx
jne 0x596bab
mov dword [edi + 0xc], eax
jmp 0x59646d
lea ecx, [edi + 0xc]
mov edx, edi
mov edi, ecx
call fcn.0045f470
mov edi, edx
jmp 0x59646d
call fcn.0045f470
jmp 0x596443
lea edi, [eax + 0xc8]
mov eax, edx
call fcn.0045f470
jmp 0x596367
mov eax, ebp
call fcn.0045f4f0
nop
call fcn.0045df10
jmp fcn.00596310