Function at 0x10013180
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1001be48
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x10025018]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push esi
push edi
mov eax, dword [0x10025018]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
xor edi, edi
mov ecx, 0x6c
xor eax, eax
mov dl, byte [eax + 0x1001fd68]
xor dl, cl
inc ecx
and ecx, 0x800000ff
mov byte [esp + eax + 0x40], dl
jns 0x100131dd
dec ecx
or ecx, 0xffffff00
inc ecx
inc eax
cmp eax, 0x14
jl 0x100131c0
mov byte [esp + 0x54], 0
mov dword [esp + 0x80], edi
mov ecx, 0x1f
xor eax, eax
mov dl, byte [eax + str.Vfira_nuINF_OY]
xor dl, cl
inc ecx
and ecx, 0x800000ff
mov byte [esp + eax + 0x58], dl
jns 0x10013213
dec ecx
or ecx, 0xffffff00
inc ecx
inc eax
cmp eax, 0x17
jl 0x100131f6
mov byte [esp + 0x6f], 0
mov byte [esp + 0x80], 1
mov ecx, dword [0x10120264]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0x40]
push edx
call eax
mov esi, eax
push 4
push esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
test eax, eax
jne 0x10013296
lea ecx, [esp + 0x28]
push ecx
push 0x40
push 4
push esi
call edi
push eax
call ebx
lea edx, [esp + 0x20]
push edx
push 4
lea eax, [esp + 0x2c]
push eax
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x28]
push ecx
push edx
push 4
push esi
call edi
push eax
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [0x10120264]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x58]
push eax
call edx
mov esi, eax
add esi, dword [esp + 0x10]
xor eax, eax
push 4
push esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10013308
lea eax, [esp + 0x2c]
push eax
push 0x40
push 4
push esi
call edi
push eax
call ebx
lea ecx, [esp + 0x14]
push ecx
push 4
lea edx, [esp + 0x18]
push edx
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x2c]
push eax
push ecx
push 4
push esi
call edi
push eax
call ebx
mov eax, dword [esp + 0x10]
xor esi, esi
mov dword [0x1011fcf0], eax
mov dword [esp + 0x80], 0xffffffff
cmp eax, esi
je 0x100136ea
call fcn.100073a0
push eax
call fcn.10007280
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [0x1011fe18]
call fcn.100073a0
push eax
call fcn.10007310
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [0x1011da60]
call fcn.100073a0
push eax
call fcn.10007280
cdq
sub eax, edx
sar eax, 1
mov dword [0x1011fccc], eax
call fcn.100073a0
push eax
call fcn.10007310
cdq
sub eax, edx
sar eax, 1
mov dword [0x1011fcd0], eax
call fcn.1000b480
cmp dword [0x1011eba8], esi
jne 0x100133b9
push esi
push 0x1011eba8
push 0x1001d7c4
push 0x800
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.DINPUT8.dll_DirectInput8Create]
jmp 0x100133be
call fcn.10002d00
mov ebx, dword [0x1011fcf0]
cmp dword [0x101207c0], esi
jne 0x100133fd
cmp dword [0x101207c8], esi
jne 0x100133d9
call fcn.10009fd0
fild dword [0x100262dc]
push ebx
sub esp, 8
fstp dword [esp + 4]
fild dword [0x100262e0]
fstp dword [esp]
call fcn.100098b0
add esp, 0xc
call fcn.10009cc0
call fcn.10009f60
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.MSVCR100.dll__time64]
lea eax, [esp + 0x18]
add esp, 4
push eax
call dword [sym.imp.MSVCR100.dll__localtime64]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 4
push ecx
push edx
push eax
push str._02i:_02i:_02i
push 0x1011fe28
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0x14
cmp dword [0x10120658], esi
je 0x10013449
call fcn.10012fe0
call fcn.10010860
call fcn.10008f90
test al, al
je 0x1001347a
call fcn.1000ce80
call fcn.1000eed0
call fcn.1000fe30
call fcn.10010a80
call fcn.10010af0
call fcn.100106e0
jmp 0x10013511
mov eax, dword [0x1012051c]
mov dword [0x10120470], esi
mov dword [0x10120390], esi
mov dword [0x101204b0], esi
mov dword [0x101203a4], esi
mov dword [0x101204fc], esi
mov dword [0x10120500], esi
mov dword [0x10120488], esi
mov dword [0x10120554], esi
mov dword [0x10120530], esi
mov dword [0x10120540], esi
mov dword [0x10120468], esi
cmp eax, esi
je 0x10013511
dec eax
cmp eax, 4
ja case.default.0x100134cb
jmp dword [eax*4 + 0x10013708]
mov dword [0x1011fe0c], 0x3e8
jmp case.default.0x100134cb
mov dword [0x1011fe0c], 0x7d0
jmp case.default.0x100134cb
mov dword [0x1011fe0c], 0xbb8
jmp case.default.0x100134cb
mov dword [0x1011fe0c], 0xfa0
jmp case.default.0x100134cb
mov dword [0x1011fe0c], 0x1388
call fcn.1000f280
cmp dword [0x1012053c], esi
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov esi, dword [0x1011f7b8]
je 0x10013554
add esi, dword [0x10120820]
lea eax, [esp + 0x14]
push eax
push 0x40
push 3
push esi
call ebx
push 3
push 0x10020990
push esi
call dword [sym.imp.MSVCR100.dll_memmove]
mov edx, dword [esp + 0x20]
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push edx
jmp 0x10013581
add esi, dword [0x10120820]
lea edx, [esp + 0x20]
push edx
push 0x40
push 3
push esi
call ebx
push 3
push 0x10020994
push esi
call dword [sym.imp.MSVCR100.dll_memmove]
mov ecx, dword [esp + 0x2c]
add esp, 0xc
lea eax, [esp + 0x24]
push eax
push ecx
push 3
push esi
call ebx
push 3
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
cmp dword [0x10120534], 0
je 0x100136ea
mov edi, 0xc
mov ecx, 0x24
xor eax, eax
jmp 0x100135b0
mov dl, byte [eax + 0x10020998]
xor dl, cl
inc ecx
and ecx, 0x800000ff
mov byte [esp + eax + 0x30], dl
jns 0x100135cd
dec ecx
or ecx, 0xffffff00
inc ecx
inc eax
cmp eax, 0xd
jl 0x100135b0
mov byte [esp + 0x3d], 0
mov dword [esp + 0x80], 2
mov ecx, dword [0x10120264]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0x30]
push edx
call eax
mov ebx, dword [eax]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov word [esp + 0x3c], ax
mov ecx, 0x24
nop
mov dl, byte [eax + 0x100209a8]
xor dl, cl
inc ecx
and ecx, 0x800000ff
mov byte [esp + eax + 0x58], dl
jns 0x1001362d
dec ecx
or ecx, 0xffffff00
inc ecx
inc eax
cmp eax, 0xd
jl 0x10013610
mov byte [esp + 0x65], 0
mov dword [esp + 0x80], 3
mov ecx, dword [0x10120264]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0x58]
push edx
call eax
mov esi, dword [eax]
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov word [esp + 0x64], ax
mov ecx, 0x24
nop
mov dl, byte [eax + str.gMGIFLF]
xor dl, cl
inc ecx
and ecx, 0x800000ff
mov byte [esp + eax + 0x40], dl
jns 0x1001368d
dec ecx
or ecx, 0xffffff00
inc ecx
inc eax
cmp eax, 0xd
jl 0x10013670
mov byte [esp + 0x4d], 0
mov dword [esp + 0x80], 4
mov ecx, dword [0x10120264]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0x40]
push edx
call eax
mov ecx, dword [eax]
xor eax, eax
mov edx, edi
mov dword [esp + 0x80], 0xffffffff
sub edx, esi
add edx, ecx
add edi, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov word [esp + 0x4c], ax
mov dword [edx + ebx], eax
cmp edi, 0x34
jl 0x100135a4
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.10019ba5
mov esp, ebp
pop ebp
ret