Function at 0x4012b0
Capabilities:
Contain obfuscated stackstrings
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40e250
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
push edi
mov dword [ebp - 0x10], esp
push str.HeapAlloc
push str.kernel32.dll
call esi
mov edi, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
call edi
mov dword [ebp - 0x20], eax
nop
nop
nop
push str.VirtualAlloc
push str.kernel32.dll
call esi
push eax
call edi
mov dword [ebp - 0x24], eax
nop
nop
nop
nop
nop
nop
nop
mov al, 0x65
mov cl, 0x73
mov byte [ebp - 0x37], al
mov byte [ebp - 0x31], al
mov byte [ebp - 0x2d], al
lea eax, [ebp - 0x38]
push eax
push str.kernel32.dll
mov byte [ebp - 0x38], 0x47
mov byte [ebp - 0x36], 0x74
mov byte [ebp - 0x35], 0x50
mov byte [ebp - 0x34], 0x72
mov byte [ebp - 0x33], 0x6f
mov byte [ebp - 0x32], 0x63
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x2f], cl
mov byte [ebp - 0x2e], 0x48
mov byte [ebp - 0x2c], 0x61
mov byte [ebp - 0x2b], 0x70
mov byte [ebp - 0x2a], 0
call esi
push eax
call edi
mov dword [ebp - 0x18], eax
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
lea ecx, [ebp - 0x1c]
push 0x410078
push ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c], 0x48
call fcn.00402520
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp + 8]
cmp word [eax], 0x5a4d
je 0x4013bd
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov eax, 0x4013aa
ret
mov edi, dword [eax + 0x3c]
add edi, eax
mov dword [ebp - 0x28], edi
cmp dword [edi], 0x4550
je 0x4013e6
mov eax, 0x4013d3
ret
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov edx, dword [edi + 0x50]
mov eax, dword [edi + 0x34]
push 4
push 0x2000
push edx
push eax
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov esi, eax
mov dword [ebp - 0x14], esi
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
test esi, esi
jne 0x401447
mov ecx, dword [edi + 0x50]
push 4
push 0x2000
push ecx
push esi
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
test eax, eax
mov dword [ebp - 0x14], eax
jne 0x401444
mov eax, 0x401431
ret
mov esi, dword [ebp - 0x14]
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
xor ebx, ebx
push 0x14
push ebx
call dword [ebp - 0x18]
push eax
call dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov dword [eax + 4], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0x10], ebx
nop
nop
mov edx, dword [edi + 0x50]
push 4
push 0x1000
push edx
push esi
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov eax, dword [edi + 0x54]
push 4
push 0x1000
push eax
push esi
call dword [ebp - 0x24]
nop
nop
nop
nop
nop
mov esi, dword [ebp + 8]
mov edx, dword [edi + 0x54]
mov edi, eax
mov ecx, dword [esi + 0x3c]
add ecx, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov edx, dword [ecx + 0x3c]
add edx, eax
mov dword [esi], edx
nop
nop
nop
mov eax, dword [esi]
mov edi, dword [ebp - 0x14]
mov dword [eax + 0x34], edi
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov ebx, dword [ebp - 0x28]
push esi
push ebx
push ecx
call fcn.00401580
add esp, 0xc
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebx + 0x34]
mov eax, edi
sub eax, ecx
je 0x4014f9
push eax
push esi
call fcn.00401850
add esp, 8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00401910
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.004016f0
add esp, 8
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov ecx, dword [esi]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x40155f
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov edx, dword [esi]
push 0
push 1
push edi
mov eax, dword [edx + 0x28]
add eax, edi
call eax
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov dword [esi + 0x10], 1
mov eax, 0x401565
ret