Function at 0x45e670
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
push 0x28
call fcn.004c10fb
mov esi, eax
xor ebp, ebp
add esp, 4
cmp esi, ebp
jne 0x45e69c
push ebp
call fcn.00459ec0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ecx, 0xa
xor eax, eax
mov edi, esi
mov ebx, dword [esp + 0x28]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
mov byte [esi + 0x24], 0xff
mov byte [esi + 4], cl
lea eax, [ecx + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp ebx, ebp
mov byte [esi + 5], al
jne 0x45e7d2
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
cmp eax, ebp
jne 0x45e7d6
cmp edx, ebp
jne 0x45e7d6
cmp ecx, 8
jle 0x45e7a1
cmp ecx, 0x18
jle 0x45e6ff
mov dword [esp + 0x24], 0x18
mov ecx, dword [esp + 0x24]
mov eax, 0x55555556
mov edi, 3
imul ecx
mov eax, edx
mov cl, 8
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x24]
mov ebx, edx
mov ebp, 0xff
cdq
idiv edi
mov eax, 0x55555556
sub cl, bl
mov byte [esp + 0x18], cl
mov byte [esi + 6], cl
mov edi, dword [esp + 0x18]
mov byte [esi + 8], cl
and edi, 0xff
mov byte [esi + 0xb], bl
mov byte [esi + 0xc], 0
mov dword [esp + 0x34], edx
imul dword [esp + 0x24]
mov eax, edx
mov cl, byte [esp + 0x34]
shr eax, 0x1f
add edx, eax
mov al, 8
sub al, dl
mov dl, byte [esp + 0x34]
sub al, dl
mov dl, bl
shl dl, 1
add dl, cl
mov ecx, edi
sar ebp, cl
mov cl, dl
mov byte [esi + 0xa], dl
mov edx, 0xff
mov byte [esi + 7], al
shl ebp, cl
mov cl, al
mov eax, 0xff
sar edx, cl
mov cl, bl
mov ebx, dword [esp + 0x28]
mov dword [esi + 0x10], ebp
shl edx, cl
mov ecx, edi
sar eax, cl
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], eax
jmp 0x45e8b0
mov byte [esi + 6], 8
mov byte [esi + 7], 8
mov byte [esi + 8], 8
mov byte [esi + 9], 8
mov byte [esi + 0xa], 0
mov byte [esi + 0xb], 0
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov dword [esi + 0x10], ebp
mov dword [esi + 0x14], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], ebp
jmp 0x45e8b0
mov edx, dword [esp + 0x2c]
cmp ebx, ebp
mov dword [esi], ebp
mov byte [esi + 0xa], 0
mov byte [esi + 6], 8
je 0x45e801
test bl, 1
mov eax, ebx
jne 0x45e7f4
inc byte [esi + 0xa]
shr eax, 1
test al, 1
je 0x45e7eb
test al, 1
je 0x45e801
dec byte [esi + 6]
shr eax, 1
test al, 1
jne 0x45e7f8
cmp edx, ebp
mov byte [esi + 0xb], 0
mov byte [esi + 7], 8
je 0x45e836
test dl, 1
mov eax, edx
jne 0x45e822
mov dl, byte [esi + 0xb]
shr eax, 1
inc dl
test al, 1
mov byte [esi + 0xb], dl
je 0x45e814
test al, 1
je 0x45e834
mov dl, byte [esi + 7]
shr eax, 1
dec dl
test al, 1
mov byte [esi + 7], dl
jne 0x45e826
xor ebp, ebp
mov eax, dword [esp + 0x30]
mov byte [esi + 0xc], 0
cmp eax, ebp
mov byte [esi + 8], 8
je 0x45e86f
mov dl, al
test dl, 1
jne 0x45e85b
mov dl, byte [esi + 0xc]
shr eax, 1
inc dl
test al, 1
mov byte [esi + 0xc], dl
je 0x45e84d
test al, 1
je 0x45e86d
mov dl, byte [esi + 8]
shr eax, 1
dec dl
test al, 1
mov byte [esi + 8], dl
jne 0x45e85f
xor ebp, ebp
mov edx, dword [esp + 0x34]
mov byte [esi + 0xd], 0
cmp edx, ebp
mov byte [esi + 9], 8
je 0x45e89c
test dl, 1
mov eax, edx
jne 0x45e88f
inc byte [esi + 0xd]
shr eax, 1
test al, 1
je 0x45e886
test al, 1
je 0x45e89c
dec byte [esi + 9]
shr eax, 1
test al, 1
jne 0x45e893
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
cmp ecx, 8
jg 0x45eacb
mov ebp, 1
push 8
shl ebp, cl
mov dword [esp + 0x1c], ebp
call fcn.004c10fb
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x45e8f6
mov dword [eax], ebp
mov ecx, dword [esi]
mov edx, dword [ecx]
shl edx, 2
push edx
call fcn.004c10fb
mov ecx, dword [esi]
xor edx, edx
add esp, 4
mov dword [ecx + 4], eax
mov eax, dword [esi]
mov edi, dword [eax + 4]
cmp edi, edx
jne 0x45e910
push esi
call fcn.0045eb10
push 0
call fcn.00459ec0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp ebx, edx
jne 0x45e97e
cmp dword [esp + 0x30], edx
jne 0x45e97e
cmp dword [esp + 0x2c], edx
jne 0x45e97e
cmp ebp, 2
jne 0x45e95f
mov byte [edi], 0xff
mov edx, dword [esi]
pop edi
mov eax, dword [edx + 4]
mov byte [eax + 1], 0xff
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov byte [edx + 2], 0xff
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov byte [ecx + 4], 0
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov byte [eax + 5], 0
mov ecx, dword [esi]
mov eax, esi
pop esi
mov edx, dword [ecx + 4]
pop ebp
pop ebx
mov byte [edx + 6], 0
add esp, 0x10
ret
mov ecx, dword [eax]
xor eax, eax
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x28]
xor ebx, ebx
xor edi, edi
xor ebp, ebp
test eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], edx
je 0x45e9c7
xor ecx, ecx
mov eax, 8
mov cl, byte [esi + 6]
sub eax, ecx
test ecx, ecx
mov dword [esp + 0x14], eax
jle 0x45e9c7
mov edi, 1
shl edi, cl
sub ecx, eax
or ebx, edi
test ecx, ecx
jg 0x45e9b0
mov edi, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x45e9f2
xor ecx, ecx
mov edx, 8
mov cl, byte [esi + 7]
sub edx, ecx
test ecx, ecx
jle 0x45e9f2
mov eax, 1
shl eax, cl
sub ecx, edx
or edi, eax
test ecx, ecx
jg 0x45e9df
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x30]
test eax, eax
je 0x45ea21
xor ecx, ecx
mov ebp, 8
mov cl, byte [esi + 8]
sub ebp, ecx
test ecx, ecx
jle 0x45ea21
mov eax, dword [esp + 0x34]
mov edi, 1
shl edi, cl
sub ecx, ebp
or eax, edi
test ecx, ecx
jg 0x45ea0e
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
xor edi, edi
test eax, eax
jle 0x45eacb
jmp 0x45ea35
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, edi
and eax, ecx
mov cl, byte [esi + 0xa]
shr eax, cl
mov ecx, eax
imul ecx, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x14]
sar ebx, cl
xor ecx, ecx
mov cl, byte [esi + 6]
shl al, cl
mov ecx, dword [esi]
or bl, al
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x2c]
mov byte [eax + edi*4], bl
mov eax, edi
and eax, ecx
mov cl, byte [esi + 0xb]
shr eax, cl
mov ecx, edx
mov ebx, eax
imul ebx, dword [esp + 0x24]
sar ebx, cl
xor ecx, ecx
mov cl, byte [esi + 7]
shl al, cl
mov ecx, dword [esi]
or bl, al
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x30]
mov byte [eax + edi*4 + 1], bl
mov eax, edi
and eax, ecx
mov cl, byte [esi + 0xc]
shr eax, cl
mov ecx, ebp
mov ebx, eax
imul ebx, dword [esp + 0x34]
sar ebx, cl
xor ecx, ecx
mov cl, byte [esi + 8]
shl al, cl
mov ecx, dword [esi]
or bl, al
mov eax, dword [ecx + 4]
mov byte [eax + edi*4 + 2], bl
mov ecx, dword [esi]
inc edi
mov eax, dword [ecx + 4]
mov byte [eax + edi*4 - 1], 0
mov eax, dword [esp + 0x18]
cmp edi, eax
jl 0x45ea31
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret