Function at 0x405e05
Capabilities:
Enumerate pe sections
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [0x43e648]
mov eax, ecx
mov edx, dword [0x43e64c]
or eax, edx
jne 0x405e1c
pop ebp
ret
xor eax, eax
push eax
push edx
push ecx
push dword [0x43e660]
call fcn.004180aa
add esp, 0x10
push dword [0x43e660]
call fcn.00418877
pop ecx
cmp eax, 0x50
jne 0x405e73
push dword [0x43e660]
call fcn.00418877
pop ecx
cmp eax, 0x4b
jne 0x405e73
push dword [0x43e660]
call fcn.00418877
pop ecx
cmp eax, 1
jne 0x405e73
push dword [0x43e660]
call fcn.00418877
pop ecx
cmp eax, 2
je 0x405e78
cmp eax, 0xffffffff
jne 0x405e2f
push ebx
push dword [0x43e660]
mov ebx, dword [ebp + 0xc]
push 0x2a
push 1
push ebx
call fcn.00417bad
add esp, 0x10
cmp eax, 0x2a
je 0x405ea6
xorps xmm0, xmm0
xor eax, eax
movlpd qword [0x43e648], xmm0
jmp 0x4061f0
mov al, byte [ebx]
movzx ecx, byte [ebx + 5]
shl cx, 8
mov byte [0x43ea78], al
mov al, byte [ebx + 1]
mov byte [0x43ea79], al
mov al, byte [ebx + 2]
mov byte [0x43ea7a], al
mov al, byte [ebx + 3]
mov byte [0x43ea7b], al
movzx eax, byte [ebx + 4]
or cx, ax
movzx eax, byte [ebx + 6]
mov word [0x43ea7c], cx
movzx ecx, byte [ebx + 7]
shl cx, 8
or cx, ax
movzx eax, byte [ebx + 0xa]
mov word [0x43ea7e], cx
movzx ecx, byte [ebx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xe]
mov dword [0x43ea80], ecx
movzx ecx, byte [ebx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x12]
mov dword [0x43ea84], ecx
movzx ecx, byte [ebx + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x16]
mov dword [0x43ea88], ecx
movzx ecx, byte [ebx + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x18]
mov dword [0x43ea8c], ecx
movzx ecx, byte [ebx + 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x1a]
mov dword [0x43ea90], ecx
movzx ecx, byte [ebx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x1c]
mov dword [0x43ea94], ecx
movzx ecx, byte [ebx + 0x1d]
shl ecx, 8
or ecx, eax
mov dword [0x43ea98], ecx
movzx ecx, byte [ebx + 0x1f]
push esi
push edi
shl ecx, 8
movzx eax, byte [ebx + 0x1e]
or ecx, eax
movzx eax, byte [ebx + 0x20]
mov dword [0x43ea9c], ecx
movzx ecx, byte [ebx + 0x21]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x24]
mov dword [0x43eaa0], ecx
movzx ecx, byte [ebx + 0x25]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x23]
push dword [0x43e660]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x28]
mov dword [0x43eaa4], ecx
movzx ecx, byte [ebx + 0x29]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x26]
shl ecx, 8
or ecx, eax
mov dword [0x43eaa8], ecx
call fcn.00418f79
mov esi, eax
mov edi, edx
mov eax, dword [0x43ea94]
add eax, dword [0x43ea98]
add eax, dword [0x43ea90]
cdq
add esi, eax
mov dword [0x43e648], esi
mov esi, dword [ebp + 8]
adc edi, edx
pop ecx
mov dword [0x43e64c], edi
mov eax, dword [esi + 0x48]
cmp byte [eax], 0
je 0x406145
mov eax, dword [0x43ea94]
test eax, eax
jle 0x4060e0
add eax, 2
push eax
call fcn.00416f46
mov edi, eax
mov eax, dword [0x43ea90]
pop ecx
test eax, eax
je 0x4060a2
push 1
cdq
push edx
push eax
push dword [0x43e660]
call fcn.004180aa
add esp, 0x10
push dword [0x43e660]
push dword [0x43ea94]
push 1
push edi
call fcn.00417bad
mov ecx, dword [0x43ea94]
add esp, 0x10
cmp ecx, eax
jne 0x4060d9
mov eax, dword [esi + 0x4c]
xor edx, edx
mov word [eax], dx
xor eax, eax
push eax
push ecx
push edi
push esi
call fcn.004053e3
add esp, 0x10
push edi
call fcn.00416f2b
pop ecx
mov eax, dword [esi + 0x4c]
xor ecx, ecx
cmp word [eax], cx
jne 0x406145
mov edi, dword [esi + 0x48]
push edi
call fcn.00401f6b
pop ecx
test eax, eax
je 0x406132
push 0x207
push dword [esi + 0x4c]
xor eax, eax
push 0xffffffffffffffff
push edi
push eax
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x406145
xor eax, eax
push eax
push eax
push 0x207
push edi
push 0xffffffffffffffff
push dword [esi + 0x4c]
push 0x240
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x406145
push dword [esi + 0x48]
call fcn.00401f38
pop ecx
push eax
push dword [esi + 0x4c]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
xor eax, eax
cmp word [esi + 0x22], ax
jne 0x406162
movzx ecx, byte [ebx + 0x1b]
movzx eax, byte [ebx + 0x1a]
shl cx, 8
or cx, ax
xor eax, eax
mov word [esi + 0x22], cx
cmp dword [esi + 0xc], eax
jne 0x406189
movzx ecx, byte [ebx + 0xf]
movzx eax, byte [ebx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xc]
shl ecx, 8
or ecx, eax
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0x10]
or eax, dword [esi + 0x14]
jne 0x4061b7
movzx eax, byte [ebx + 0x13]
movzx ecx, byte [ebx + 0x12]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 0x11]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 0x10]
shl eax, 8
or eax, ecx
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov eax, dword [esi + 0x18]
or eax, dword [esi + 0x1c]
jne 0x4061e5
movzx eax, byte [ebx + 0x17]
movzx ecx, byte [ebx + 0x16]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 0x15]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 0x14]
shl eax, 8
or eax, ecx
cdq
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
movzx eax, byte [ebx + 0x22]
pop edi
and eax, 0xf7
pop esi
pop ebx
pop ebp
ret