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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push edi
mov edi, 0x807c27
mov ebx, 0x100a465c
lea esp, [esp]
mov eax, dword [ebx - 4]
lea ecx, [ebp - 4]
push ecx
push 0x40
mov dword [ebp - 0x14], eax
lea eax, [edi - 0xd]
push 4
push eax
call esi
mov edx, dword [ebp - 0x14]
lea eax, [edi - 0xd]
lea ecx, [ebp - 4]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 4]
push edx
push 4
push eax
call esi
mov eax, dword [ebx]
lea ecx, [ebp - 8]
push ecx
push 0x40
push 4
push edi
mov dword [ebp - 0x14], eax
call esi
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 8]
push eax
push ecx
push 4
push edi
mov dword [edi], edx
call esi
mov edx, dword [ebx + 0x34]
lea ecx, [ebp - 0xc]
push ecx
push 0x40
lea eax, [edi + 0xbd]
push 4
push eax
mov dword [ebp - 0x14], edx
call esi
mov edx, dword [ebp - 0x14]
lea eax, [edi + 0xbd]
lea ecx, [ebp - 0xc]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0xc]
push edx
push 4
push eax
call esi
mov eax, dword [ebx + 0x38]
lea ecx, [ebp - 0x10]
push ecx
push 0x40
mov dword [ebp - 0x14], eax
lea eax, [edi + 0xca]
push 4
push eax
call esi
mov edx, dword [ebp - 0x14]
lea eax, [edi + 0xca]
lea ecx, [ebp - 0x10]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x10]
push edx
push 4
push eax
call esi
add ebx, 8
add edi, 0x1a
cmp ebx, 0x100a4694
jl 0x10003860
mov edi, 0x80b1ba
mov ebx, 0x100a46cc
mov eax, dword [ebx - 4]
lea ecx, [ebp - 0x10]
push ecx
push 0x40
mov dword [ebp - 0x14], eax
lea eax, [edi - 0xd]
push 4
push eax
call esi
mov edx, dword [ebp - 0x14]
lea eax, [edi - 0xd]
lea ecx, [ebp - 0x10]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 0x10]
push edx
push 4
push eax
call esi
mov eax, dword [ebx]
lea ecx, [ebp - 0xc]
push ecx
push 0x40
push 4
push edi
mov dword [ebp - 0x14], eax
call esi
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xc]
push eax
push ecx
push 4
push edi
mov dword [edi], edx
call esi
mov edx, dword [ebx + 0x2c]
lea ecx, [ebp - 8]
push ecx
push 0x40
lea eax, [edi + 0xa3]
push 4
push eax
mov dword [ebp - 0x14], edx
call esi
mov edx, dword [ebp - 0x14]
lea eax, [edi + 0xa3]
lea ecx, [ebp - 8]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 8]
push edx
push 4
push eax
call esi
mov eax, dword [ebx + 0x30]
lea ecx, [ebp - 4]
push ecx
push 0x40
mov dword [ebp - 0x14], eax
lea eax, [edi + 0xb0]
push 4
push eax
call esi
mov edx, dword [ebp - 0x14]
lea eax, [edi + 0xb0]
lea ecx, [ebp - 4]
push ecx
mov dword [eax], edx
mov edx, dword [ebp - 4]
push edx
push 4
push eax
call esi
add ebx, 8
add edi, 0x1a
cmp ebx, 0x100a46fc
jl 0x10003925
lea eax, [ebp - 0x10]
push eax
push 0x40
push 0x30
push 0x101d030
call esi
push 0x30
push 0x100a4728
push 0x101d030
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 0x10]
add esp, 0xc
lea ecx, [ebp - 0x10]
push ecx
push edx
push 0x30
push 0x101d030
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 0x30
push 0x101d060
call esi
push 0x30
push 0x100a4758
push 0x101d060
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 0x10]
add esp, 0xc
lea ecx, [ebp - 0x10]
push ecx
push edx
push 0x30
push 0x101d060
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 0x38
push 0x1023948
call esi
push 0x38
push 0x100a4788
push 0x1023948
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 0x10]
add esp, 0xc
lea ecx, [ebp - 0x10]
push ecx
push edx
push 0x38
push 0x1023948
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 0x38
push 0x1023980
call esi
push 0x38
push 0x100a47c0
push 0x1023980
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 0x10]
add esp, 0xc
lea ecx, [ebp - 0x10]
push ecx
push edx
push 0x38
push 0x1023980
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 0x14
push 0x101e184
call esi
mov ecx, dword [0x100a47f8]
mov eax, 0x101e184
mov dword [eax], ecx
mov edx, dword [0x100a47fc]
mov dword [eax + 4], edx
mov ecx, dword [0x100a4800]
mov dword [eax + 8], ecx
mov edx, dword [0x100a4804]
mov dword [eax + 0xc], edx
mov ecx, dword [0x100a4808]
lea edx, [ebp - 0x10]
push edx
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0x10]
push eax
push 0x14
push 0x101e184
call esi
lea ecx, [ebp - 0x10]
push ecx
push 0x40
push 0x14
push 0x101e198
call esi
mov edx, dword [0x100a480c]
mov eax, 0x101e198
mov dword [eax], edx
mov ecx, dword [0x100a4810]
mov dword [eax + 4], ecx
mov edx, dword [0x100a4814]
mov dword [eax + 8], edx
mov ecx, dword [0x100a4818]
mov dword [eax + 0xc], ecx
mov edx, dword [0x100a481c]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x10]
push eax
push ecx
push 0x14
push 0x101e198
call esi
lea edx, [ebp - 0x10]
push edx
push 0x40
push 4
push 0x7cfc5b
call esi
mov edi, 0x270f
lea eax, [ebp - 0x10]
push eax
mov dword [0x7cfc5b], edi
mov ecx, dword [ebp - 0x10]
push ecx
push 4
push 0x7cfc5b
call esi
lea edx, [ebp - 0x10]
push edx
push 0x40
push 4
push 0x8a69ab
call esi
lea eax, [ebp - 0x10]
push eax
mov dword [0x8a69ab], edi
mov ecx, dword [ebp - 0x10]
push ecx
push 4
push 0x8a69ab
call esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret