Function at 0x401c90
Capabilities:
Enumerate pe sections

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x24
mov ebp, edx
mov esi, eax
mov ebx, dword [esi + 0x10]
lea eax, [ecx + ebx]
mov dword [esi + 0x10], eax
cmp eax, ebx
jae 0x401cab
inc dword [esi + 0x14]
and ebx, 0x3f
neg ebx
lea edi, [ebx + 0x40]
cmp edi, ecx
ja 0x401e85
lea eax, [esi + 0x18]
mov dword [esp + 8], eax
push edi
sub eax, edi
add eax, 0x40
push ebp
push eax
mov dword [esp + 0x24], ecx
call fcn.00425570
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 8]
xor eax, eax
movzx ebx, byte [ebp + eax*8 + 3]
movzx esi, byte [ebp + eax*8 + 2]
movzx edx, byte [ebp + eax*8]
shl ebx, 8
or ebx, esi
movzx esi, byte [ebp + eax*8 + 1]
shl ebx, 0x10
shl esi, 8
or esi, edx
movzx edx, byte [ebp + eax*8 + 7]
or ebx, esi
movzx esi, byte [ebp + eax*8 + 5]
mov dword [ebp + eax*8], ebx
movzx ebx, byte [ebp + eax*8 + 6]
shl edx, 8
or edx, ebx
movzx ebx, byte [ebp + eax*8 + 4]
shl edx, 0x10
shl esi, 8
or esi, ebx
or edx, esi
mov dword [ebp + eax*8 + 4], edx
inc eax
cmp eax, 8
jb 0x401cec
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov eax, esi
call fcn.00401ea0
mov ecx, dword [esp + 0x18]
lea edx, [ebp + ebx + 0x40]
mov dword [esp + 0x20], edx
mov eax, ecx
sub eax, edi
cmp eax, 0x40
jl 0x401e72
cdq
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x10], edx
xor ebx, ebx
sub ecx, edi
mov dword [esp + 0x18], ecx
xor ebp, ebp
mov eax, dword [esp + 0x20]
mov edi, ebx
shl edi, 6
lea edx, [eax + edi]
mov eax, 0x40
movsd xmm0, qword [edx + eax - 8]
movsd qword [esi + eax - 8], xmm0
movsd xmm1, qword [edx + eax - 0x10]
movsd qword [esi + eax - 0x10], xmm1
movsd xmm2, qword [edx + eax - 0x18]
movsd qword [esi + eax - 0x18], xmm2
movsd xmm3, qword [edx + eax - 0x20]
movsd qword [esi + eax - 0x20], xmm3
sub eax, 0x20
jne 0x401da0
mov dword [esp + 0xc], ebx
xor ecx, ecx
movzx edx, byte [esi + ecx*8 + 3]
movzx ebx, byte [esi + ecx*8 + 2]
movzx eax, byte [esi + ecx*8]
shl edx, 8
or edx, ebx
movzx ebx, byte [esi + ecx*8 + 1]
shl edx, 0x10
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + ecx*8 + 7]
or edx, ebx
movzx ebx, byte [esi + ecx*8 + 5]
mov dword [esi + ecx*8], edx
movzx edx, byte [esi + ecx*8 + 6]
shl eax, 8
or eax, edx
movzx edx, byte [esi + ecx*8 + 4]
shl eax, 0x10
shl ebx, 8
or ebx, edx
or eax, ebx
mov dword [esi + ecx*8 + 4], eax
inc ecx
cmp ecx, 8
jb 0x401ddb
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov edx, esi
call fcn.00401ea0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
lea edx, [edx + edi + 0x40]
lea eax, [ebp + eax - 0x40]
add ebp, 0xffffffc0
inc ebx
xor edi, edi
xor ecx, ecx
sub edi, dword [esp + 0x1c]
sbb ecx, dword [esp + 0x10]
jns 0x401e64
add edi, 0x3f
adc ecx, 0
shrd edi, ecx, 6
neg edi
cmp ebx, edi
jb 0x401d8f
push eax
push edx
push dword [esp + 0x10]
call fcn.00425570
add esp, 0x30
pop ebx
pop ebp
pop esi
pop edi
ret
push ecx
push ebp
add esi, 0x18
sub esi, edi
add esi, 0x40
push esi
call fcn.00425570
add esp, 0x30
pop ebx
pop ebp
pop esi
pop edi
ret