Function at 0x5871a0
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe4
mov ebp, edx
mov dword [esp], eax
test ebp, ebp
je 0x587458
mov eax, ebp
shl eax, 8
sub eax, ebp
mov ecx, 0x64
cdq
idiv ecx
mov ecx, 0xff
mov edx, 0xffffff01
call fcn.0057a30c
mov ebp, eax
push 0xff00ff
mov edx, 0x562988
mov eax, dword [esp + 4]
mov eax, dword [eax + 0xa098]
mov ecx, ebp
call fcn.0056288c
mov eax, dword [esp]
mov eax, dword [eax + 0xa2e0]
call fcn.00406f9c
dec eax
test eax, eax
jl 0x587405
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov eax, dword [esp]
mov eax, dword [eax + 0xa2e0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x5873f7
mov eax, dword [eax + 0x10]
call fcn.00406f9c
dec eax
test eax, eax
jl 0x587286
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0
mov eax, dword [esp]
mov eax, dword [eax + 0xa2e0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 4]
mov ecx, edx
shl edx, 4
sub edx, ecx
mov eax, dword [eax + edx*4 + 0x14]
test eax, eax
je 0x58727c
push 0xff00ff
mov edx, 0x562988
mov ecx, ebp
call fcn.0056288c
inc dword [esp + 4]
dec dword [esp + 0x14]
jne 0x587245
mov eax, dword [esp]
mov eax, dword [eax + 0xa2e0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x52c]
call fcn.00406f9c
dec eax
test eax, eax
jl 0x5873f7
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0
mov eax, dword [esp]
mov eax, dword [eax + 0xa2e0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x52c]
imul edx, dword [esp + 4], 0x26
lea eax, [eax + edx*8]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov edx, eax
shl eax, 4
sub eax, edx
mov edx, dword [esp + 0x18]
lea ebx, [edx + eax*4 + 8]
mov esi, dword [ebx + 0x14]
cmp esi, 0xffffffff
je 0x587306
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x14], eax
mov esi, dword [ebx + 0x18]
cmp esi, 0xffffffff
je 0x58731a
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x18], eax
mov esi, dword [ebx + 0x24]
cmp esi, 0xffffffff
je 0x58732e
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x24], eax
mov esi, dword [ebx + 0x28]
cmp esi, 0xffffffff
je 0x587342
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x28], eax
mov esi, dword [ebx + 0x2c]
cmp esi, 0xffffffff
je 0x587356
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x2c], eax
mov esi, dword [ebx + 0x30]
cmp esi, 0xffffffff
je 0x58736a
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x30], eax
mov esi, dword [ebx + 0x34]
cmp esi, 0xffffffff
je 0x58737e
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x34], eax
mov esi, dword [ebx + 0x1c]
cmp esi, 0xffffffff
je 0x587392
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x1c], eax
mov esi, dword [ebx + 0x20]
cmp esi, 0xff00ff
je 0x5873a9
mov edx, ebp
mov eax, esi
call fcn.00562c40
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x38]
call fcn.00406f9c
mov edi, eax
dec edi
test edi, edi
jl 0x5873da
inc edi
xor esi, esi
imul eax, esi, 0xb
mov edx, dword [ebx + 0x38]
mov eax, dword [edx + eax + 6]
mov edx, ebp
call fcn.00562c40
imul edx, esi, 0xb
mov ecx, dword [ebx + 0x38]
mov dword [ecx + edx + 6], eax
inc esi
dec edi
jne 0x5873bb
inc dword [esp + 8]
cmp dword [esp + 8], 3
jne 0x5872df
inc dword [esp + 4]
dec dword [esp + 0x14]
jne 0x5872b7
inc dword [esp + 0xc]
dec dword [esp + 0x10]
jne 0x587213
mov eax, dword [esp]
mov eax, dword [eax + 0xa1ac]
mov edx, ebp
call fcn.00562c40
mov edx, dword [esp]
mov dword [edx + 0xa1ac], eax
xor ebx, ebx
mov eax, ebx
cmp al, 0x3f
ja 0x587430
and eax, 0x7f
bt dword [0x62f040], eax
jae 0x587452
mov esi, ebx
and esi, 0x7f
mov eax, dword [esp]
mov eax, dword [eax + esi*4 + 0xa09c]
mov edx, ebp
call fcn.00562c40
mov edx, dword [esp]
mov dword [edx + esi*4 + 0xa09c], eax
inc ebx
cmp bl, 0x3b
jne 0x587420
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
ret