Function at 0x583170
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
mov eax, dword [edi + 8]
and eax, 0x3f
cmp eax, 6
je 0x583281
lea esp, [esp]
cmp eax, 0x16
je 0x58335a
cmp eax, 0x26
je 0x583353
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0xc]
and eax, 0xfffffff0
cmp eax, 0x10
jg 0x5831d6
mov eax, dword [esi + 0x10]
sub edi, dword [esi + 0x20]
mov ebx, edi
cmp dword [eax + 0xc], 0
jle 0x5831c5
mov ecx, esi
call fcn.00585d20
mov edx, 1
mov ecx, esi
call fcn.00582dd0
mov edi, dword [esi + 0x20]
add edi, ebx
mov ecx, dword [edi + 8]
and ecx, 0xf
mov eax, ecx
sub eax, 5
je 0x5831fb
sub eax, 2
je 0x5831f4
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + ecx*4 + 0xe8]
jmp 0x583200
mov eax, dword [edi]
mov ecx, dword [eax + 8]
jmp 0x583200
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x583216
mov edx, dword [esi + 0x10]
mov edx, dword [edx + 0xe4]
call fcn.00597b50
mov ebx, eax
jmp 0x58321b
mov ebx, 0x5d88e0
mov eax, dword [ebx + 8]
and eax, 0xf
cmp al, 6
jne 0x58351a
mov ecx, dword [esi + 0xc]
cmp ecx, edi
jbe 0x583256
lea edx, [ecx - 0x10]
mov eax, dword [edx]
lea edx, [edx - 0x10]
mov dword [ecx], eax
mov eax, dword [edx + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [edx + 0x18]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x1c]
mov dword [ecx + 0xc], eax
sub ecx, 0x10
cmp ecx, edi
ja 0x583233
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [edi + 8]
and eax, 0x3f
cmp eax, 6
jne 0x583190
mov eax, dword [edi]
mov ebx, dword [esi + 0xc]
sub ebx, edi
sar ebx, 4
mov eax, dword [eax + 0xc]
dec ebx
mov dword [ebp - 0x14], eax
movzx edx, byte [eax + 8]
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0xc]
sar eax, 4
mov dword [ebp - 0x10], edx
cmp eax, edx
jg 0x5832cc
mov eax, dword [esi + 0x10]
sub edi, dword [esi + 0x20]
mov dword [ebp - 0xc], edi
cmp dword [eax + 0xc], 0
jle 0x5832bf
mov ecx, esi
call fcn.00585d20
mov edx, dword [ebp - 0x10]
mov ecx, esi
call fcn.00582dd0
mov edi, dword [esi + 0x20]
add edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp byte [ecx + 7], 0
movzx edx, byte [ecx + 6]
je 0x583445
mov ecx, dword [esi + 0xc]
mov eax, ebx
shl eax, 4
mov dword [ebp - 0xc], ecx
sub ecx, eax
xor eax, eax
mov dword [ebp - 4], ecx
mov dword [ebp - 8], eax
test edx, edx
je 0x583424
lea ebx, [ebx]
cmp eax, ebx
jge 0x583424
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
mov dword [ecx + 8], 0
add ecx, 0x10
mov dword [ebp - 4], ecx
cmp eax, edx
jl 0x583300
jmp 0x58346d
mov eax, dword [edi]
add eax, 0xc
jmp 0x58335c
mov eax, edi
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0xc]
and eax, 0xfffffff0
cmp eax, 0x140
jg 0x583397
mov eax, dword [esi + 0x10]
sub edi, dword [esi + 0x20]
mov ebx, edi
cmp dword [eax + 0xc], 0
jle 0x583386
mov ecx, esi
call fcn.00585d20
mov edx, 0x14
mov ecx, esi
call fcn.00582dd0
mov edi, dword [esi + 0x20]
add edi, ebx
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x5833c9
push 0x24
push ebx
xor edx, edx
mov ecx, esi
call fcn.0058b160
mov ebx, eax
add esp, 8
mov eax, dword [esi + 0x14]
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x14]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
inc word [esi + 6]
mov ax, word [ebp + 8]
mov dword [esi + 0x14], ebx
mov word [ebx + 0x20], ax
mov dword [ebx], edi
mov eax, dword [esi + 0xc]
add eax, 0x140
mov dword [ebx + 4], eax
xor eax, eax
mov word [ebx + 0x22], ax
test byte [esi + 0x70], 1
je 0x5833fb
push 0xffffffffffffffff
xor edx, edx
mov ecx, esi
call fcn.00582f10
add esp, 4
push esi
call dword [ebp - 0x14]
mov ecx, dword [esi + 0xc]
add esp, 4
mov edx, ebx
push eax
shl eax, 4
sub ecx, eax
push ecx
mov ecx, esi
call fcn.00582fd0
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, edx
jge 0x58346d
sub edx, eax
lea ebx, [ebx]
mov eax, dword [esi + 0xc]
mov dword [eax + 8], 0
add dword [esi + 0xc], 0x10
sub edx, 1
jne 0x583430
jmp 0x58346d
cmp ebx, edx
jge 0x583467
lea esp, [esp]
mov eax, dword [esi + 0xc]
inc ebx
mov dword [eax + 8], 0
add dword [esi + 0xc], 0x10
movzx eax, byte [ecx + 6]
cmp ebx, eax
jl 0x583450
lea eax, [edi + 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x58349f
push 0x24
push ebx
xor edx, edx
mov ecx, esi
call fcn.0058b160
mov ecx, dword [esi + 0x14]
mov ebx, eax
add esp, 8
mov dword [ecx + 0xc], ebx
mov ecx, dword [esi + 0x14]
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], 0
inc word [esi + 6]
mov ax, word [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov dword [esi + 0x14], ebx
mov word [ebx + 0x20], ax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x10], eax
shl ecx, 4
add eax, ecx
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov ecx, 2
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x30]
mov dword [ebx + 0x14], eax
mov word [ebx + 0x22], cx
test byte [esi + 0x70], 1
je 0x583511
add eax, 4
xor edx, edx
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 8]
test byte [eax + 0x22], cl
je 0x583501
mov eax, dword [eax + 0x14]
mov eax, dword [eax - 4]
and eax, 0x3f
cmp al, 0x25
jne 0x583501
mov eax, 0x22
lea edx, [ecx + 2]
mov word [ebx + 0x22], ax
push 0xffffffffffffffff
mov ecx, esi
call fcn.00582f10
add esp, 4
add dword [ebx + 0x14], 0xfffffffc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push str.call
mov edx, edi
mov ecx, esi
call fcn.005827e0
int3