Function at 0x564080
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ecc0e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x330
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
push esi
push edi
call dword [eax + 0x14]
mov esi, dword [ebp + 0xc]
mov ecx, 0xc1
lea edi, [esp + 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0xf], 1
lea ecx, [ecx]
mov esi, dword [ebp + 8]
mov edx, dword [esi]
push 1
push 1
lea eax, [esp + 0x27]
push eax
mov ecx, esi
call dword [edx + 8]
cmp eax, 1
jne 0x564342
mov al, byte [esp + 0xf]
test al, al
mov al, byte [esp + 0x1f]
jne 0x5640fc
test al, al
jne 0x5640d0
cmp al, 0x21
je 0x564335
cmp al, 0x2c
je 0x564119
cmp al, 0x3b
je 0x564342
test al, al
sete byte [esp + 0xf]
jmp 0x5640d0
mov edx, dword [esi]
push 1
push 9
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call dword [edx + 8]
movzx cx, byte [esp + 0x11]
movzx dx, byte [esp + 0x10]
movzx ax, byte [esp + 0x12]
movzx si, byte [esp + 0x14]
shl ecx, 8
add ecx, edx
movzx dx, byte [esp + 0x13]
movzx di, byte [esp + 0x16]
mov word [esp + 0x10], cx
movzx ecx, cx
shl edx, 8
add edx, eax
movzx ax, byte [esp + 0x15]
mov word [esp + 0x12], dx
shl eax, 8
add eax, esi
movzx si, byte [esp + 0x17]
mov word [esp + 0x14], ax
shl esi, 8
add esi, edi
movzx edi, ax
add edi, ecx
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + 6]
cmp edi, ecx
mov word [esp + 0x16], si
jg 0x5640d0
movzx edx, dx
movzx ecx, si
add ecx, edx
mov edx, dword [ebp + 0x10]
movzx edx, word [edx + 8]
cmp ecx, edx
jg 0x5640d0
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov cl, byte [esp + 0x18]
inc edi
test cl, cl
mov dword [esp + 0x20], edi
jns 0x5641f2
and ecx, 7
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push 1
mov word [esp + 0x36], ax
movsx eax, ax
lea eax, [eax + eax*2]
push eax
lea eax, [esp + 0x3c]
push eax
call dword [edx + 8]
mov si, word [esp + 0x16]
mov ax, word [esp + 0x14]
mov di, word [esp + 0x32]
cmp di, 2
jg 0x564204
mov ecx, 1
jmp 0x564214
xor ecx, ecx
cmp di, 0x10
setg cl
lea ecx, [ecx*4 + 4]
push 2
push ecx
movzx ecx, si
movzx edx, ax
push ecx
push edx
mov ecx, ebx
call fcn.0055e270
push 0x18
call fcn.005b955b
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x344], 0
je 0x56424f
push ebx
mov ecx, eax
call fcn.0055a980
mov esi, eax
jmp 0x564251
xor esi, esi
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x344], 0xffffffff
mov dword [esi], 0
call fcn.0055d090
mov ecx, dword [esi + 0x14]
dec eax
mov dword [esi + 4], eax
call fcn.0055d090
mov ecx, dword [esi + 0x14]
mov edi, eax
dec edi
call fcn.0055d0b0
imul edi, eax
mov ecx, dword [esi + 0x14]
push 0
call fcn.0055de70
add edi, eax
mov dword [esi + 0x10], edi
movzx edx, word [esp + 0x16]
mov edi, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [esp + 0x18]
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [ebx + 0x1ec], 0x4000
mov dword [ebx + 0x1e4], edx
mov dword [ebx + 0x1e0], 8
mov dword [ebx + 0x1dc], eax
and ecx, 0x40
mov dword [ebx + 0x1d8], ecx
mov dword [ebx + 0x1e8], eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push edx
push esi
push edi
mov ecx, ebx
mov dword [esp + 0x38], eax
call fcn.00563c20
push esi
call fcn.005b958b
mov eax, dword [esp + 0x28]
add esp, 4
test eax, eax
je 0x564317
mov eax, dword [esp + 0x28]
push eax
push edi
mov ecx, ebx
call fcn.00563f20
jmp 0x5640d0
mov ecx, dword [ebx + 0x1f0]
mov eax, dword [ebx + 0x1ec]
mov edx, dword [edi]
sub eax, ecx
push 1
inc eax
push eax
mov ecx, edi
call dword [edx + 0x10]
jmp 0x5640d0
push esi
mov ecx, ebx
call fcn.00563530
jmp 0x5640d0
mov eax, dword [esp + 0x2c]
mov edx, dword [esi]
push 0
push eax
mov ecx, esi
call dword [edx + 0x10]
mov ecx, dword [esp + 0x33c]
mov eax, dword [esp + 0x20]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc