Function at 0x1003a310
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x1013e00c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x101eb194], 3
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x1003a379
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x7d3c6c
or bl, 0xff
call esi
test eax, eax
je 0x1003a377
mov eax, 0x7d3c6c
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x7d3c6c
call esi
test eax, eax
jne 0x1003a379
call edi
cmp dword [0x101eb0b8], 1
jne 0x1003a4f9
lea eax, [ebp - 8]
push eax
push 0x40
push 5
push 0x87500f
call esi
mov eax, 0x87500f
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push 0x87500f
call esi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x8743ff
mov bl, 7
call esi
test eax, eax
je 0x1003a3f2
mov eax, 0x8743ff
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x8743ff
call esi
test eax, eax
jne 0x1003a3f4
call edi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x874d5a
mov bl, 7
call esi
test eax, eax
je 0x1003a432
mov eax, 0x874d5a
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x874d5a
call esi
test eax, eax
jne 0x1003a434
call edi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x877edf
mov bl, 6
call esi
test eax, eax
je 0x1003a472
mov eax, 0x877edf
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x877edf
call esi
test eax, eax
jne 0x1003a474
call edi
lea eax, [ebp - 8]
push eax
push 0x40
push 5
push 0x878b5f
call esi
mov eax, 0x878b5f
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push 0x878b5f
call esi
push 0x7e4d16
push 0x7e4ca4
push 0xe9
call fcn.100c88d0
add esp, 0xc
mov dword [ebp - 8], 0
lea eax, [ebp - 8]
xor bl, bl
push eax
push 0x40
push 1
push 0x7e4cba
call esi
test eax, eax
je 0x1003a4f7
mov eax, 0x7e4cba
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x7e4cba
call esi
test eax, eax
jne 0x1003a4f9
call edi
cmp dword [0x101eb0bc], 1
jne 0x1003a53e
lea eax, [ebp - 8]
push eax
push 0x40
push 0x198
push 0x7a8330
call esi
push 0x198
push 0x90
push 0x7a8330
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 0x198
push 0x7a8330
call esi
cmp dword [0x101eb0c0], 1
jne 0x1003a575
lea eax, [ebp - 8]
push eax
push 0x40
push 5
push 0x57655b
call esi
mov eax, 0x57655b
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push 0x57655b
call esi
cmp dword [0x101eb0c4], 1
jne 0x1003a669
push 0x832897
push 0x832862
push 0xe9
call fcn.100c88d0
add esp, 0xc
lea eax, [ebp - 8]
push eax
push 0x40
push 0x25
push 0x7c5a68
call esi
mov eax, 0x7c5a68
mov dword [eax], 0x90909090
mov dword [eax + 4], 0x90909090
mov dword [eax + 8], 0x90909090
mov dword [eax + 0xc], 0x90909090
mov dword [eax + 0x10], 0x90909090
mov dword [eax + 0x14], 0x90909090
mov dword [eax + 0x18], 0x90909090
mov dword [eax + 0x1c], 0x90909090
mov dword [eax + 0x20], 0x90909090
mov byte [eax + 0x24], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 0x25
push 0x7c5a68
call esi
lea eax, [ebp - 8]
push eax
push 0x40
push 0x159
push 0x7c4430
call esi
push 0x159
push 0x90
push 0x7c4430
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 0x159
push 0x7c4430
call esi
lea eax, [ebp - 8]
push eax
push 0x40
push 5
push 0x7c5ad2
call esi
mov eax, 0x7c5ad2
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push 0x7c5ad2
call esi
cmp dword [0x101eb0c8], 1
jne 0x1003a6a5
lea eax, [ebp - 8]
push eax
push 0x40
push 0x30
push 0x62f876
call esi
push 0x30
push 0x90
push 0x62f876
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 0x30
push 0x62f876
call esi
cmp dword [0x101eb0cc], 1
jne 0x1003a71d
push 5
call fcn.100d7d9e
add esp, 4
mov dword [ebp - 8], 0
mov ebx, eax
lea eax, [ebp - 8]
push eax
push 0x40
push 5
mov dword [ebx], 0x90909090
push 0xd46c8c
mov byte [ebx + 4], 0x90
call esi
test eax, eax
je 0x1003a704
mov eax, dword [ebx]
mov ecx, 0xd46c8c
mov dword [ecx], eax
mov al, byte [ebx + 4]
mov byte [ecx + 4], al
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 5
push ecx
call esi
test eax, eax
jne 0x1003a706
call edi
push 0x1003a930
push 0x835234
push 0xe9
call fcn.100c88d0
add esp, 0xc
cmp dword [0x101eb0d0], 1
jne 0x1003a765
push 0x836a23
push 0x8369fa
push 0xe9
call fcn.100c88d0
push 0x7d36bf
push 0x7d36b8
push 0xe9
call fcn.100c88d0
push 0x7d3fa3
push 0x7d3f9c
push 0xe9
call fcn.100c88d0
add esp, 0x24
cmp dword [0x101eb0d4], 1
jne 0x1003a799
push 0x856fd2
push 0x856faa
push 0xe9
call fcn.100c88d0
push 0x7d3725
push 0x7d371e
push 0xe9
call fcn.100c88d0
add esp, 0x18
cmp dword [0x101eb0b4], 1
jne 0x1003a7e7
push 0x1003a900
push 0x777008
push 0xe9
call fcn.100c88d0
add esp, 0xc
lea eax, [ebp - 8]
push eax
push 0x40
push 5
push 0x776fe4
call esi
mov eax, 0x776fe4
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push 0x776fe4
call esi
cmp dword [0x101eb094], 2
jne 0x1003a8a4
lea eax, [ebp - 8]
push eax
push 0x40
push 5
push 0x85b6ac
call esi
mov eax, 0x85b6ac
mov dword [eax], 0x90909090
mov byte [eax + 4], 0x90
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push 0x85b6ac
call esi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x7d4001
or bl, 0xff
call esi
test eax, eax
je 0x1003a861
mov eax, 0x7d4001
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x7d4001
call esi
test eax, eax
jne 0x1003a863
call edi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x7d4110
or bl, 0xff
call esi
test eax, eax
je 0x1003a8a2
mov eax, 0x7d4110
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x7d4110
call esi
test eax, eax
jne 0x1003a8a4
call edi
cmp byte [0x101eb18e], 1
jne 0x1003a8ee
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x40
push 1
push 0x7d3d57
or bl, 0xff
call esi
test eax, eax
je 0x1003a8ec
mov eax, 0x7d3d57
mov byte [eax], bl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
mov dword [ebp - 0xc], 0
push 1
push 0x7d3d57
call esi
test eax, eax
jne 0x1003a8ee
call edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100d7712
mov esp, ebp
pop ebp
ret