Function at 0x595800
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x80]
cmp eax, dword [ecx + 8]
jbe 0x59622b
sub esp, 0x100
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
mov dword [esp + 0x58], ecx
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov ebp, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0xfc], eax
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xdc]
jmp 0x595b80
mov dword [esp + 0x70], ebp
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
call fcn.00595740
mov eax, dword [esp + 0x24]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc4]
add edx, ecx
mov dword [esp + 0xc4], edx
mov ecx, dword [esp + 0xc8]
adc ecx, eax
mov dword [esp + 0xc0], ecx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xac], ebp
mov esi, dword [esp + 0x28]
mov dword [esp + 0xa8], esi
mov edi, dword [esp + 0x98]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x94]
mov dword [esp], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x18], edi
call fcn.00595740
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0xa8]
add ecx, esi
mov edx, dword [esp + 0xac]
mov eax, ebx
adc ebx, edx
mov esi, dword [esp + 0xc8]
mov ebp, dword [esp + 0xb0]
mov edi, esi
and esi, ebp
or edi, ebp
mov ebp, dword [esp + 0xc0]
xchg ebp, ebx
not ebx
xchg ebp, ebx
and edi, ebp
or esi, edi
shr esi, 0x1f
add ecx, esi
adc ebx, 0
mov dword [esp + 0xb8], ebx
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x6c]
add edi, ebp
mov ebp, dword [esp + 0x70]
adc esi, ebp
mov ebp, eax
and eax, edx
or edx, ebp
mov ebp, ebx
not ebx
and ebx, edx
or ebx, eax
shr ebx, 0x1f
add ebx, edi
mov dword [esp + 0x34], ebx
adc esi, 0
mov dword [esp + 0x68], esi
mov eax, ecx
and ecx, 0xfffffffc
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0xb4]
add edx, ecx
mov dword [esp + 0xc8], edx
mov edi, dword [esp + 0xbc]
adc ebp, edi
mov dword [esp + 0x64], ebp
mov edx, dword [esp + 0xc4]
add edx, ebx
mov ebx, dword [esp + 0xc0]
adc ebx, esi
mov ecx, dword [esp + 0xb8]
and ecx, edi
mov esi, dword [esp + 0xb8]
or edi, esi
xchg ebp, ebx
not ebx
xchg ebp, ebx
and edi, ebp
or ecx, edi
shr ecx, 0x1f
add ecx, edx
adc ebx, 0
mov dword [esp + 0xb8], ebx
and eax, 3
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x68]
mov edi, edx
and edx, ebp
or edi, ebp
not ebx
and edi, ebx
or edx, edi
shr edx, 0x1f
add eax, edx
mov dword [esp + 0x48], eax
mov edi, 0
adc edi, 0
mov dword [esp + 0xc0], edi
mov edx, dword [esp + 0x60]
shr edx, 2
mov ebx, esi
shl esi, 0x1e
or esi, edx
shr ebx, 2
mov edx, dword [esp + 0x34]
and edx, 3
shl edx, 0x1e
or ebx, edx
mov edx, dword [esp + 0xc8]
add esi, edx
mov dword [esp + 0xc8], esi
mov edx, dword [esp + 0x64]
adc edx, ebx
mov esi, dword [esp + 0x34]
shr esi, 2
shl ebp, 0x1e
or ebp, esi
mov esi, dword [esp + 0x68]
shr esi, 2
add ebp, ecx
mov ecx, dword [esp + 0xb8]
adc ecx, esi
mov edi, dword [esp + 0x64]
and edi, ebx
mov eax, dword [esp + 0x64]
or ebx, eax
mov eax, edx
not edx
and ebx, edx
or ebx, edi
shr ebx, 0x1f
add ebx, ebp
adc ecx, 0
mov edx, dword [esp + 0xb8]
mov ebp, edx
and edx, esi
or esi, ebp
mov ebp, ecx
not ecx
and esi, ecx
or esi, edx
shr esi, 0x1f
mov ecx, dword [esp + 0x48]
add esi, ecx
mov edi, dword [esp + 0xc0]
adc edi, 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x3c]
mov edx, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x5961de
mov dword [esp + 0x5c], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
cmp ecx, 0x10
jl 0x595d68
mov eax, dword [esp + 0xfc]
movzx ecx, byte [eax]
movzx edi, byte [eax + 1]
mov dword [esp + 0xc8], edi
shl edi, 8
or ecx, edi
mov edi, dword [esp + 0xc8]
shr edi, 0x18
movzx esi, byte [eax + 2]
mov dword [esp + 0xc8], esi
shr esi, 0x10
or esi, edi
mov edi, dword [esp + 0xc8]
shl edi, 0x10
or edi, ecx
movzx ecx, byte [eax + 3]
mov dword [esp + 0xc8], ecx
shr ecx, 8
or ecx, esi
mov esi, dword [esp + 0xc8]
shl esi, 0x18
or esi, edi
movzx edi, byte [eax + 4]
or edi, ecx
movzx ecx, byte [eax + 5]
shl ecx, 8
or ecx, edi
movzx edi, byte [eax + 6]
shl edi, 0x10
or edi, ecx
movzx ecx, byte [eax + 7]
shl ecx, 0x18
or ecx, edi
mov dword [esp + 0xc8], ecx
mov edi, dword [esp + 0x58]
add esi, edi
mov dword [esp + 0xc4], esi
mov edi, edx
adc edx, ecx
mov dword [esp + 0xc0], edx
movzx esi, byte [eax + 8]
movzx edx, byte [eax + 9]
mov dword [esp + 0xbc], edx
shl edx, 8
or esi, edx
mov edx, dword [esp + 0xbc]
shr edx, 0x18
movzx ecx, byte [eax + 0xa]
mov dword [esp + 0xbc], ecx
shr ecx, 0x10
or ecx, edx
mov edx, dword [esp + 0xbc]
shl edx, 0x10
or edx, esi
movzx esi, byte [eax + 0xb]
mov dword [esp + 0xbc], esi
shr esi, 8
or esi, ecx
mov ecx, dword [esp + 0xbc]
shl ecx, 0x18
or ecx, edx
movzx edx, byte [eax + 0xc]
or edx, esi
movzx esi, byte [eax + 0xd]
shl esi, 8
or esi, edx
movzx edx, byte [eax + 0xe]
shl edx, 0x10
or edx, esi
movzx esi, byte [eax + 0xf]
shl esi, 0x18
or esi, edx
add ecx, ebx
mov edx, ebp
adc ebp, esi
mov ebx, dword [esp + 0xc8]
and edi, ebx
mov eax, dword [esp + 0x5c]
or eax, ebx
mov ebx, dword [esp + 0xc0]
not ebx
and ebx, eax
or edi, ebx
shr edi, 0x1f
add ecx, edi
adc ebp, 0
mov eax, edx
and edx, esi
or eax, esi
mov ebx, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ebp, eax
or edx, ebp
shr edx, 0x1f
mov eax, dword [esp + 0x48]
add edx, eax
mov eax, dword [esp + 0x4c]
adc eax, 0
add edx, 1
adc eax, 0
mov dword [esp + 0xb8], eax
nop
nop
nop
nop
mov ebp, dword [esp + 0xcc]
add ebp, 0xfffffff0
mov esi, dword [esp + 0xd0]
add esi, 0xfffffff0
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 0x10
mov eax, dword [esp + 0xfc]
add eax, ebp
nop
nop
mov ebp, edi
mov dword [esp + 0xfc], eax
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0xb8]
jmp 0x595fcd
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov eax, dword [esp + 0xfc]
lea edi, [esp + 0xec]
cmp eax, edi
je 0x595dd5
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebp
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0045f7b0
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
mov byte [esp + ecx + 0xec], 1
movzx edi, byte [esp + 0xec]
movzx ecx, byte [esp + 0xed]
mov eax, ecx
shl ecx, 8
or edi, ecx
shr eax, 0x18
movzx ecx, byte [esp + 0xee]
mov dword [esp + 0xc8], ecx
shr ecx, 0x10
or ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0xc8]
shl ebx, 0x10
or ebx, edi
movzx edi, byte [esp + 0xef]
mov dword [esp + 0xc8], edi
shr edi, 8
or ecx, edi
mov edi, dword [esp + 0xc8]
shl edi, 0x18
or edi, ebx
movzx ebx, byte [esp + 0xf0]
or ecx, ebx
movzx ebx, byte [esp + 0xf1]
shl ebx, 8
or ecx, ebx
movzx ebx, byte [esp + 0xf2]
shl ebx, 0x10
or ecx, ebx
movzx ebx, byte [esp + 0xf3]
shl ebx, 0x18
or ecx, ebx
mov ebx, dword [esp + 0x58]
add edi, ebx
mov dword [esp + 0xc8], edi
adc edx, ecx
movzx edi, byte [esp + 0xf4]
movzx ebx, byte [esp + 0xf5]
mov dword [esp + 0xc4], ebx
shl ebx, 8
or edi, ebx
mov dword [esp + 0xbc], edi
mov ebx, dword [esp + 0xc4]
shr ebx, 0x18
movzx edi, byte [esp + 0xf6]
mov dword [esp + 0xc4], edi
shr edi, 0x10
or edi, ebx
mov dword [esp + 0xb4], edi
mov ebx, dword [esp + 0xc4]
shl ebx, 0x10
mov edi, dword [esp + 0xbc]
or ebx, edi
mov dword [esp + 0xc4], ebx
movzx edi, byte [esp + 0xf7]
mov dword [esp + 0xbc], edi
shr edi, 8
mov ebx, dword [esp + 0xb4]
or edi, ebx
mov dword [esp + 0xb4], edi
mov ebx, dword [esp + 0xbc]
shl ebx, 0x18
mov edi, dword [esp + 0xc4]
or ebx, edi
mov dword [esp + 0xc4], ebx
movzx edi, byte [esp + 0xf8]
mov ebx, dword [esp + 0xb4]
or edi, ebx
movzx ebx, byte [esp + 0xf9]
shl ebx, 8
or ebx, edi
movzx edi, byte [esp + 0xfa]
shl edi, 0x10
or edi, ebx
movzx ebx, byte [esp + 0xfb]
shl ebx, 0x18
or ebx, edi
mov dword [esp + 0xbc], ebx
mov edi, dword [esp + 0xc4]
add edi, eax
mov dword [esp + 0xc4], edi
mov eax, ebp
adc ebp, ebx
mov ebx, dword [esp + 0x5c]
and ebx, ecx
mov edi, dword [esp + 0x5c]
or ecx, edi
mov edi, edx
not edx
and ecx, edx
or ecx, ebx
shr ecx, 0x1f
mov ebx, dword [esp + 0xc4]
add ecx, ebx
adc ebp, 0
mov edx, dword [esp + 0xbc]
mov ebx, eax
and eax, edx
or edx, ebx
mov ebx, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
and edx, ebp
or edx, eax
shr edx, 0x1f
add edx, esi
mov eax, dword [esp + 0x4c]
adc eax, 0
nop
xor esi, esi
xor ebp, ebp
xor ebp, ebp
mov dword [esp + 0xfc], ebp
mov ebp, dword [esp + 0xc8]
mov dword [esp + 0x58], ebp
xor ebp, ebp
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0xd0], esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0xcc], ebp
mov dword [esp + 4], edi
mov ebp, dword [esp + 0x58]
mov dword [esp], ebp
mov esi, dword [esp + 0x44]
mov dword [esp + 0xc], esi
mov ebp, dword [esp + 0x40]
mov dword [esp + 8], ebp
call fcn.005956d0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc4], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xbc], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xb4], ebx
mov ebp, dword [esp + 0x54]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x50]
mov dword [esp], esi
mov edi, dword [esp + 0x44]
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x40]
mov dword [esp + 8], edx
call fcn.005956d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xa4], ebx
mov ebp, dword [esp + 0x4c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x48]
mov dword [esp], esi
mov edi, dword [esp + 0x44]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 8], edi
call fcn.005956d0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
test eax, eax
setne cl
mov byte [esp + 0x33], cl
mov edx, dword [esp + 0x18]
mov dword [esp + 0x9c], edx
test edx, edx
setne bl
mov byte [esp + 0x32], bl
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x98], ebp
mov esi, dword [esp + 0x10]
mov dword [esp + 0x94], esi
mov edi, dword [esp + 0x5c]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x58]
mov dword [esp], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edx
call fcn.005956d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x84], ebx
mov ebp, dword [esp + 0x54]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 8], esi
call fcn.005956d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x74], ebx
mov ebp, dword [esp + 0x4c]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x48]
mov dword [esp], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 8], esi
call fcn.005956d0
movzx eax, byte [esp + 0x32]
movzx ecx, byte [esp + 0x33]
or eax, ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
test al, al
jne 0x596212
test edx, edx
setne al
test ecx, ecx
setne cl
or ecx, eax
test cl, cl
je 0x5958b1
jmp 0x5961fa
mov ecx, dword [esp + 0x58]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
add esp, 0x100
ret
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d2dc8]
mov dword [esp + 4], eax
call fcn.00433470
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d2dc8]
mov dword [esp + 4], eax
call fcn.00433470
nop
call fcn.0045dbb0
jmp fcn.00595800