Function at 0x597df0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1c
push ebx
mov ebx, eax
mov edx, dword [ebx]
push ebp
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0xc], eax
inc eax
mov dword [esp + 0x1c], eax
inc eax
mov dword [ebx + 0x48], eax
mov eax, dword [ebp + 0x18]
push esi
push edi
mov esi, 0xfff0bdc0
test eax, eax
je 0x597e3d
mov edi, dword [edx + 0x14]
xor esi, esi
test edi, edi
jle 0x597e3d
mov ecx, dword [edx + 0x10]
add ecx, 0xc
cmp dword [ecx], eax
je 0x597e3d
inc esi
add ecx, 0x10
cmp esi, edi
jl 0x597e31
mov edx, dword [edx + 0x10]
mov ecx, esi
shl ecx, 4
mov eax, dword [ecx + edx]
mov ecx, dword [ebp]
push eax
push 0
push ecx
push 0x1b
mov eax, ebx
call fcn.005773f0
add esp, 0x10
test eax, eax
jne 0x598106
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov eax, dword [eax + 0x20]
push edx
push 1
push eax
push esi
mov eax, ebx
call fcn.0056f250
mov edi, dword [ebx + 8]
add esp, 0x10
test edi, edi
jne 0x597ea3
mov eax, dword [ebx]
call fcn.00575ac0
mov edi, eax
mov dword [ebx + 8], eax
test edi, edi
je 0x598106
push 0x96
call fcn.0056cf10
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
jl 0x597eb1
mov dword [esp + 0x1c], eax
jmp 0x597eb8
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x1c], ecx
push ebp
mov eax, ebx
call fcn.0058a080
mov ebp, dword [ebx + 0x48]
add esp, 4
lea edx, [ebp + 1]
mov dword [esp + 0x20], eax
mov dword [ebx + 0x48], edx
test eax, eax
je 0x597ed6
inc dword [eax]
push 0xfffffffffffffffa
push eax
push 0
push 0
push ebp
push 0x36
mov eax, edi
call fcn.00575b20
mov eax, dword [esp + 0x2c]
push 0x32
push esi
push eax
mov eax, dword [esp + 0x3c]
call fcn.00594320
mov ecx, dword [esp + 0x38]
push 0
push ecx
push 0x67
mov eax, edi
call fcn.0056cfb0
mov dword [esp + 0x48], eax
mov al, byte [ebx + 0x13]
add esp, 0x30
test al, al
jne 0x597f22
inc dword [ebx + 0x4c]
mov edx, dword [ebx + 0x4c]
mov dword [esp + 0x10], edx
jmp 0x597f32
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov ecx, dword [ebx + eax*4 + 0x1c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
push 0
push edx
push eax
push ecx
push ebx
lea eax, [esp + 0x3c]
call fcn.00593f20
mov edx, dword [esp + 0x24]
push edx
push ebp
push 0x68
mov eax, edi
call fcn.0056cfb0
or eax, 0xffffffff
add esp, 0x20
sub eax, dword [esp + 0x28]
js 0x597f75
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x597f75
mov edx, dword [edi + 0x1c]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc eax
push eax
push ecx
push 9
mov eax, edi
call fcn.0056cfb0
mov eax, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jl 0x597fa5
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jbe 0x597fa5
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + edx*4 + 8], ecx
cmp dword [esp + 0x34], 0
jge 0x597fbe
mov ecx, dword [esp + 0x1c]
push esi
push ecx
push 0x6f
mov eax, edi
call fcn.0056cfb0
add esp, 0xc
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push 0xfffffffffffffffa
push edx
push esi
push eax
push ecx
push 0x33
mov eax, edi
call fcn.00575b20
mov eax, dword [edi + 4]
add esp, 0x18
test eax, eax
je 0x597ffd
cmp dword [esp + 0x34], 0
mov esi, dword [edi + 0x1c]
setl dl
dec dl
and dl, 2
or dl, 1
lea ecx, [esi + esi*4]
mov byte [eax + ecx*4 - 0x11], dl
push 0
push ebp
push 0x65
mov eax, edi
call fcn.0056cfb0
mov edx, dword [esp + 0x3c]
add esp, 0xc
cmp byte [edx + 0x36], 0
mov dword [esp + 0x18], eax
je 0x59806f
cmp dword [esp + 0x20], 0
je 0x59806f
mov esi, dword [edi + 0x1c]
add esi, 3
push esi
push 0
push 0x10
mov eax, edi
call fcn.0056cfb0
mov eax, dword [edi + 0x1c]
mov ecx, dword [esp + 0x2c]
movzx edx, word [ecx + 6]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
movzx ecx, word [eax + 0x32]
sub edx, ecx
push edx
mov edx, dword [esp + 0x20]
push edx
push esi
push ebp
push 0x52
mov eax, edi
call fcn.00575c60
mov eax, dword [esp + 0x50]
push eax
push 2
push ebx
call fcn.00581380
add esp, 0x2c
jmp 0x598076
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x10]
push esi
push ebp
push 0x5d
mov eax, edi
call fcn.0056cfb0
mov edx, dword [esp + 0x30]
push 1
push esi
push edx
push 0x69
mov eax, edi
call fcn.0056ceb0
mov eax, dword [edi + 4]
add esp, 0x1c
test eax, eax
je 0x5980ab
mov ecx, dword [edi + 0x1c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 0x10
mov edx, ebx
call fcn.00564bb0
mov edx, dword [esp + 0x1c]
push edx
push ebp
push 5
mov eax, edi
call fcn.0056cfb0
mov eax, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jl 0x5980dd
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
jbe 0x5980dd
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov dword [edx + eax*4 + 8], ecx
mov eax, dword [esp + 0x14]
push eax
push 0x38
mov eax, edi
call fcn.0056cf60
mov ecx, dword [esp + 0x2c]
push ecx
push 0x38
mov eax, edi
call fcn.0056cf60
push ebp
push 0x38
mov eax, edi
call fcn.0056cf60
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret