Function at 0x418b30
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
test eax, eax
je 0x418b49
mov dword [eax], 0
test esi, esi
je 0x418d3b
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x418d3b
mov dword [ebx], edx
mov eax, dword [ecx + 0x48]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx*4]
xor edi, edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 8], eax
movzx eax, word [esi + 4]
mov word [ebx + 0x10], ax
movzx eax, word [esi + 6]
mov word [ebx + 0x12], ax
movzx eax, word [esi + 8]
mov word [ebx + 0x14], ax
movzx eax, word [esi + 0xa]
mov word [ebx + 0x16], ax
mov dword [esp + 4], edx
movzx edx, word [esi + 0xe]
mov dword [esp], ecx
movzx ecx, word [esi + 0xc]
lea eax, [esp + 0xc]
mov dword [eax + 0x1c], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x20], 0xffffffff
mov edi, esi
mov esi, edx
shr esi, 9
add esi, 0x50
mov dword [eax + 0x14], esi
mov esi, edx
shr esi, 5
and esi, 0xf
dec esi
mov dword [eax + 0x10], esi
and edx, 0x1f
mov dword [eax + 0xc], edx
mov edx, ecx
shr edx, 0xb
mov dword [eax + 8], edx
mov edx, ecx
shr edx, 5
and edx, 0x3f
mov dword [eax + 4], edx
add ecx, ecx
and ecx, 0x3e
mov dword [eax], ecx
push eax
call fcn.0043ed3f
add esp, 4
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x28], eax
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x30], eax
movzx eax, word [edi + 0x24]
mov word [ebx + 0x38], ax
mov eax, dword [edi + 0x26]
mov dword [ebx + 0x3c], eax
mov eax, dword [edi + 0x2a]
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x40], eax
movzx esi, word [edi + 0x1c]
mov ecx, edi
mov edi, 0x1ff
cmp esi, edi
cmovae esi, edi
lea eax, [ebx + 0x58]
lea ebp, [ecx + 0x2e]
push esi
push ebp
push eax
call fcn.0043a9b0
add esp, 0xc
xor eax, eax
mov byte [ebx + esi + 0x58], al
mov edx, dword [esp + 0x44]
movzx eax, word [edx + 0x20]
cmp eax, edi
cmovb edi, eax
mov dword [ebx + 0x48], edi
lea eax, [ebx + 0x258]
movzx ecx, word [edx + 0x1c]
add ecx, edx
add ecx, 0x2e
movzx edx, word [edx + 0x1e]
add edx, ecx
push edi
push edx
push eax
call fcn.0043a9b0
add esp, 0xc
xor eax, eax
mov byte [ebx + edi + 0x258], al
mov edi, dword [esp + 4]
push edi
mov esi, dword [esp + 4]
push esi
call fcn.00418681
add esp, 8
mov dword [ebx + 0x4c], eax
push edi
push esi
call fcn.004185de
add esp, 8
mov dword [ebx + 0x50], eax
push edi
push esi
call fcn.0041861c
add esp, 8
mov dword [ebx + 0x54], eax
mov ecx, dword [ebx + 0x28]
mov edi, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x30]
cmp ecx, eax
mov esi, eax
cmova esi, ecx
cmp edi, edx
mov dword [esp + 4], eax
cmovbe ecx, eax
mov dword [esp + 8], edx
cmovbe edi, edx
cmove ecx, esi
mov esi, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
cmp ecx, eax
mov edx, eax
cmova edx, ecx
cmp edi, esi
cmovbe ecx, eax
cmove ecx, edx
cmovbe edi, esi
not ecx
xor edx, edx
inc edx
or ecx, edi
jne 0x418d48
mov eax, dword [esp + 0x44]
movzx edi, word [eax + 0x1e]
test edi, edi
je 0x418d48
movzx eax, word [eax + 0x1c]
add ebp, eax
cmp edi, 3
jbe 0x418dbd
movzx ecx, word [ebp + 2]
lea esi, [ecx + 4]
cmp esi, edi
ja 0x418dbd
cmp word [ebp], 1
je 0x418d52
add ebp, esi
sub edi, ecx
add edi, 0xfffffffc
jne 0x418d11
jmp 0x418d48
xor edx, edx
test ecx, ecx
je 0x418d48
mov dword [ecx + 0x1c], 0x18
mov eax, edx
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
test eax, eax
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
je 0x418d6e
mov dword [eax], 1
mov esi, dword [ebx + 0x30]
mov edi, dword [ebx + 0x34]
not esi
or esi, edi
jne 0x418d8c
cmp cx, 7
jbe 0x418dbd
movsd xmm0, qword [ebp + 4]
movsd qword [ebx + 0x30], xmm0
add ebp, 0xc
add ecx, 0xfffffff8
jmp 0x418d8f
add ebp, 4
mov eax, dword [ebx + 0x28]
not eax
or eax, dword [ebx + 0x2c]
jne 0x418dae
cmp ecx, 7
jbe 0x418dbd
movsd xmm0, qword [ebp]
movsd qword [ebx + 0x28], xmm0
add ebp, 8
add ecx, 0xfffffff8
mov eax, dword [ebx + 0x40]
not eax
or eax, dword [ebx + 0x44]
jne 0x418d48
cmp ecx, 7
ja 0x418dd2
xor edx, edx
mov eax, dword [esp]
test eax, eax
je 0x418d48
mov dword [eax + 0x1c], 9
jmp 0x418d48
movsd xmm0, qword [ebp]
movsd qword [ebx + 0x40], xmm0
jmp 0x418d48