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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x88]
cmp eax, dword [ecx + 8]
jbe 0x584c62
sub esp, 0x108
mov eax, dword [esp + 0x10c]
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 + 0xec], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x104], eax
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x118]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe4]
jmp 0x5845d5
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x18], eax
call fcn.005840e0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xc4]
add ecx, eax
mov dword [esp + 0xb4], ecx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xb0], ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xac], ebp
mov esi, dword [esp + 0x28]
mov dword [esp + 0x98], esi
mov edi, dword [esp + 0xa8]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x9c]
mov dword [esp], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x18], edi
call fcn.005840e0
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x98]
mov eax, ecx
add ecx, esi
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xb8]
add edx, ebx
mov ebp, dword [esp + 0xc8]
mov edx, dword [esp + 0xb0]
mov ebx, ebp
adc ebp, edx
mov dword [esp + 0x70], ebp
mov edi, ebx
and ebx, edx
or edi, edx
xchg ebp, ebx
not ebx
xchg ebp, ebx
and edi, ebp
or ebx, edi
shr ebx, 0x1f
mov ebp, ebx
add ebx, ecx
mov dword [esp + 0x34], ebx
mov edi, dword [esp + 0x28]
mov dword [esp + 0xc8], edi
mov edx, dword [esp + 0x74]
add edx, edi
mov edi, dword [esp + 0x24]
add eax, esi
mov eax, dword [esp + 0xac]
mov esi, edi
adc edi, eax
add ebp, ecx
adc edi, 0
mov dword [esp + 0x6c], edi
mov ecx, esi
and esi, eax
or ecx, eax
mov eax, edi
xchg edi, ebx
not ebx
xchg edi, ebx
and ecx, edi
or esi, ecx
shr esi, 0x1f
mov ecx, esi
add esi, edx
mov dword [esp + 0x30], esi
and ebx, 0xfffffffc
mov dword [esp + 0x60], ebx
mov edi, dword [esp + 0xbc]
add ebx, edi
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xb4]
add ebx, esi
mov ebp, dword [esp + 0x60]
add edi, ebp
mov edi, dword [esp + 0xc0]
adc eax, edi
mov dword [esp + 0x68], eax
mov ebp, dword [esp + 0x6c]
and ebp, edi
mov esi, dword [esp + 0x6c]
or edi, esi
not eax
and edi, eax
or ebp, edi
shr ebp, 0x1f
mov eax, ebp
add ebp, ebx
mov dword [esp + 0x50], ebp
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xc8]
add ebp, esi
mov esi, dword [esp + 0x78]
adc esi, edi
add ecx, edx
adc esi, 0
mov dword [esp + 0x64], esi
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x30]
add ecx, edx
mov ebp, dword [esp + 0x70]
mov ecx, ebp
adc ebp, esi
add eax, ebx
adc ebp, 0
mov eax, dword [esp + 0x34]
and eax, 3
mov dword [esp + 0x48], eax
mov ebx, esi
and esi, ecx
or ecx, ebx
mov edi, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ecx, ebp
or esi, ecx
shr esi, 0x1f
mov dword [esp + 0xc8], esi
add eax, esi
mov dword [esp + 0xc0], eax
mov ebp, dword [esp + 0x60]
shr ebp, 2
mov ecx, dword [esp + 0x6c]
shl ecx, 0x1e
or ecx, ebp
mov dword [esp + 0xbc], ecx
mov ebp, dword [esp + 0xc4]
add ecx, ebp
mov dword [esp + 0xc4], ecx
shr edx, 2
shl ebx, 0x1e
or ebx, edx
mov dword [esp + 0xb8], ebx
mov edx, dword [esp + 0x50]
add ebx, edx
mov ecx, dword [esp + 0x6c]
shr ecx, 2
mov esi, dword [esp + 0x30]
and esi, 3
shl esi, 0x1e
or esi, ecx
mov ecx, dword [esp + 0xbc]
add ecx, ebp
mov ecx, dword [esp + 0x68]
mov ebp, ecx
adc ecx, esi
and ebp, esi
mov eax, dword [esp + 0x68]
or eax, esi
mov esi, ecx
not ecx
and eax, ecx
or ebp, eax
shr ebp, 0x1f
mov eax, ebp
add ebp, ebx
mov dword [esp + 0x50], ebp
mov ecx, dword [esp + 0x64]
shr ecx, 2
mov ebp, dword [esp + 0xb8]
add ebp, edx
mov ebp, edi
adc ebp, ecx
add eax, ebx
adc ebp, 0
mov eax, edi
and edi, ecx
or eax, ecx
mov ecx, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
and eax, ebp
or edi, eax
shr edi, 0x1f
mov eax, dword [esp + 0xc0]
mov edx, edi
add edi, eax
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc8]
add ebx, ebp
mov ebx, 0
adc ebx, 0
add edx, eax
adc ebx, 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10c]
mov edx, esi
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x58], ebp
mov ebp, ecx
mov esi, edi
mov edi, ebx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x584c15
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edi
cmp ecx, 0x10
jl 0x5847c3
mov eax, dword [esp + 0x104]
movzx ecx, byte [eax]
movzx edi, byte [eax + 1]
mov dword [esp + 0xc8], edi
shl edi, 8
or ecx, edi
movzx edi, byte [eax + 2]
mov dword [esp + 0xc4], edi
shl edi, 0x10
or edi, ecx
movzx ecx, byte [eax + 3]
mov dword [esp + 0xc0], ecx
shl ecx, 0x18
or ecx, edi
mov dword [esp + 0xbc], ecx
mov edi, dword [esp + 0x58]
add ecx, edi
mov dword [esp + 0xb8], ecx
movzx ecx, byte [eax + 8]
movzx esi, byte [eax + 9]
mov dword [esp + 0xb4], esi
shl esi, 8
or ecx, esi
movzx esi, byte [eax + 0xa]
mov dword [esp + 0xb0], esi
shl esi, 0x10
or esi, ecx
movzx ecx, byte [eax + 0xb]
mov dword [esp + 0xac], ecx
shl ecx, 0x18
or ecx, esi
mov esi, ecx
add ecx, ebx
mov ebp, dword [esp + 0xc8]
shr ebp, 0x18
mov ebx, dword [esp + 0xc4]
shr ebx, 0x10
or ebx, ebp
mov ebp, dword [esp + 0xc0]
shr ebp, 8
or ebp, ebx
movzx ebx, byte [eax + 4]
or ebx, ebp
movzx ebp, byte [eax + 5]
shl ebp, 8
or ebp, ebx
movzx ebx, byte [eax + 6]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [eax + 7]
shl ebp, 0x18
or ebp, ebx
mov ebx, dword [esp + 0xbc]
add ebx, edi
mov ebx, edx
adc edx, ebp
mov edi, ebx
and ebx, ebp
or edi, ebp
mov ebp, edx
not edx
and edx, edi
or ebx, edx
shr ebx, 0x1f
mov edx, ecx
add ecx, ebx
mov dword [esp + 0xc8], ecx
mov edi, dword [esp + 0xb4]
shr edi, 0x18
mov ecx, dword [esp + 0xb0]
shr ecx, 0x10
or ecx, edi
mov edi, dword [esp + 0xac]
shr edi, 8
or edi, ecx
movzx ecx, byte [eax + 0xc]
or ecx, edi
movzx edi, byte [eax + 0xd]
shl edi, 8
or edi, ecx
movzx ecx, byte [eax + 0xe]
shl ecx, 0x10
or ecx, edi
movzx edi, byte [eax + 0xf]
shl edi, 0x18
or edi, ecx
mov ecx, dword [esp + 0x50]
add esi, ecx
mov ecx, dword [esp + 0x54]
mov esi, ecx
adc ecx, edi
add edx, ebx
adc ecx, 0
mov edx, esi
and esi, edi
or edx, edi
mov ebx, ecx
not ecx
and ecx, edx
or esi, ecx
shr esi, 0x1f
mov ecx, dword [esp + 0x48]
mov edx, esi
add esi, ecx
mov edi, esi
add esi, 1
add edx, ecx
mov ecx, dword [esp + 0x4c]
adc ecx, 0
add edi, 1
adc ecx, 0
nop
nop
nop
nop
mov edx, dword [esp + 0xcc]
add edx, 0xfffffff0
mov edi, edx
neg edx
sar edx, 0x1f
and edx, 0x10
add eax, edx
mov edx, dword [esp + 0xd0]
add edx, 0xfffffff0
nop
nop
mov dword [esp + 0x104], eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x50], eax
mov eax, edx
mov edx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0xb8]
jmp 0x584a06
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov eax, dword [esp + 0x104]
lea edi, [esp + 0xf4]
cmp eax, edi
je 0x58482c
mov dword [esp + 0x5c], edx
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00463a60
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 + 0xf4], 1
movzx ecx, byte [esp + 0xf4]
movzx edi, byte [esp + 0xf5]
mov eax, edi
shl edi, 8
or ecx, edi
movzx edi, byte [esp + 0xf6]
mov dword [esp + 0xc8], edi
shl edi, 0x10
or ecx, edi
movzx edi, byte [esp + 0xf7]
mov dword [esp + 0xc4], edi
shl edi, 0x18
or ecx, edi
mov dword [esp + 0xc0], ecx
mov edi, dword [esp + 0x58]
add ecx, edi
movzx ebp, byte [esp + 0xfc]
movzx edi, byte [esp + 0xfd]
mov dword [esp + 0xbc], edi
shl edi, 8
or ebp, edi
movzx edi, byte [esp + 0xfe]
mov dword [esp + 0xb8], edi
shl edi, 0x10
or edi, ebp
movzx ebp, byte [esp + 0xff]
mov dword [esp + 0xb4], ebp
shl ebp, 0x18
or ebp, edi
mov edi, ebp
add ebp, ebx
mov dword [esp + 0xb0], ebp
shr eax, 0x18
mov ebx, dword [esp + 0xc8]
shr ebx, 0x10
or ebx, eax
mov eax, edi
mov edi, dword [esp + 0xc4]
shr edi, 8
or edi, ebx
movzx ebx, byte [esp + 0xf8]
or ebx, edi
movzx edi, byte [esp + 0xf9]
shl edi, 8
or edi, ebx
movzx ebx, byte [esp + 0xfa]
shl ebx, 0x10
or ebx, edi
movzx edi, byte [esp + 0xfb]
shl edi, 0x18
or edi, ebx
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x58]
add ebx, ebp
mov ebx, edi
adc edi, edx
mov ebp, ebx
and ebx, edx
or ebp, edx
mov edx, edi
xchg edi, ebx
not ebx
xchg edi, ebx
and edi, ebp
or ebx, edi
shr ebx, 0x1f
mov dword [esp + 0xc8], ebx
mov ebp, dword [esp + 0xb0]
mov edi, ebp
add ebp, ebx
mov dword [esp + 0xc4], ebp
mov ebp, dword [esp + 0xbc]
shr ebp, 0x18
mov ebx, dword [esp + 0xb8]
shr ebx, 0x10
or ebx, ebp
mov ebp, dword [esp + 0xb4]
shr ebp, 8
or ebp, ebx
movzx ebx, byte [esp + 0x100]
or ebx, ebp
movzx ebp, byte [esp + 0x101]
shl ebp, 8
or ebp, ebx
movzx ebx, byte [esp + 0x102]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [esp + 0x103]
shl ebp, 0x18
or ebp, ebx
mov ebx, dword [esp + 0x50]
add eax, ebx
mov ebx, dword [esp + 0x54]
mov eax, ebp
adc ebp, ebx
mov ebx, dword [esp + 0xc8]
add edi, ebx
adc ebp, 0
mov ebx, dword [esp + 0x54]
mov edi, eax
and eax, ebx
or edi, ebx
mov ebx, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ebp, edi
or eax, ebp
shr eax, 0x1f
add esi, eax
mov ebp, dword [esp + 0x4c]
adc ebp, 0
nop
xor edi, edi
xor eax, eax
xor eax, eax
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0xcc], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 4], edx
mov dword [esp], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x40]
mov dword [esp + 8], edi
call fcn.00584070
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 + 0xc0], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xbc], 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.00584070
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xb0], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xac], 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.00584070
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x9c], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x58]
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.00584070
mov eax, dword [esp + 0x14]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x8c], 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.00584070
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x7c], 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.00584070
mov eax, dword [esp + 0xa4]
test eax, eax
setne cl
mov edx, dword [esp + 0xa0]
test edx, edx
setne bl
or ebx, ecx
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test bl, bl
jne 0x584c49
test ebp, ebp
setne bl
test ecx, ecx
setne cl
or ecx, ebx
test cl, cl
je 0x584264
jmp 0x584c31
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, 0x108
ret
lea eax, [0x696a40]
mov dword [esp], eax
lea eax, [0x750ddc]
mov dword [esp + 4], eax
call fcn.00436fc0
lea eax, [0x696a40]
mov dword [esp], eax
lea eax, [0x750ddc]
mov dword [esp + 4], eax
call fcn.00436fc0
nop
call fcn.00461cc0
jmp fcn.005841b0