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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push 0x1003f9f0
push 0x7cac81
push 0xe8
call fcn.10099d10
push 0x1003f9f0
push 0x7cad14
push 0xe8
call fcn.10099d10
push 0x1003f9f0
push 0x7cad93
push 0xe8
call fcn.10099d10
push 0x1003f9f0
push 0x7cb02d
push 0xe8
call fcn.10099d10
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esp, 0x30
cmp dword [0x102c4f84], 1
jne 0x10041897
lea eax, [ebp - 4]
push eax
push 0x40
push 1
push 0x50efd6
call esi
lea eax, [ebp - 4]
mov byte [0x50efd6], 0
push eax
push dword [ebp - 4]
push 1
push 0x50efd6
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x553404
call esi
mov eax, 0x553404
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x553404
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x554434
call esi
mov eax, 0x554434
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x554434
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 1
push 0x50f8bf
call esi
lea eax, [ebp - 4]
mov byte [0x50f8bf], 0
push eax
push dword [ebp - 4]
push 1
push 0x50f8bf
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x5535a1
call esi
mov eax, 0x5535a1
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x5535a1
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x554489
call esi
mov ecx, 0x90909090
mov eax, 0x554489
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x554489
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 1
push 0x510274
call esi
lea eax, [ebp - 4]
mov byte [0x510274], 0
push eax
push dword [ebp - 4]
push 1
push 0x510274
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x553658
call esi
mov eax, 0x553658
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x553658
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x5544f3
call esi
mov eax, 0x5544f3
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x5544f3
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x5544bc
call esi
mov eax, 0x5544bc
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x5544bc
call esi
lea eax, [ebp - 4]
push eax
push 0x40
push 6
push 0x5545bf
call esi
mov eax, 0x5545bf
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 6
push 0x5545bf
call esi
cmp dword [0x102c4e58], 0
je 0x10041af7
push edi
push 0x1003f370
push 0x944eeb
push 0xe8
call fcn.10099d10
push 0x1003f370
push 0x945205
push 0xe8
call fcn.10099d10
mov edi, 0x1003fc10
mov byte [ebp - 0x10], 0xe8
add esp, 0x18
mov dword [ebp - 4], 0
lea eax, [edi - 0x5ef908]
mov dword [ebp - 0xf], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 5
push 0x5ef903
call esi
test eax, eax
je 0x10041923
mov eax, dword [ebp - 0x10]
mov ecx, 0x5ef903
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x10041929
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 4]
mov byte [ebp - 0x10], 0xe8
push eax
push 0x40
push 5
sub edi, 0x5efb1a
mov dword [ebp - 4], 0
push 0x5efb15
mov dword [ebp - 0xf], edi
call esi
pop edi
test eax, eax
je 0x10041978
mov eax, dword [ebp - 0x10]
mov ecx, 0x5efb15
mov dword [ecx], eax
mov al, byte [ebp - 0xc]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
mov dword [ebp - 8], 0
push 5
push ecx
call esi
test eax, eax
jne 0x1004197e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1003fcc0
push 0x50ea66
push 0xe9
call fcn.10099d10
push 0x10040010
push 0x510d45
push 0xe9
call fcn.10099d10
push 0xe8
push 0x1003f3c0
push 0x664c82
push 0xe8
call fcn.10099d10
push 0x100402b0
push 0x5533f6
push 0xe9
call fcn.10099d10
push 0x10040390
push 0x553daa
push 0xe9
call fcn.10099d10
add esp, 0x40
push 0x100403f0
push 0x553fdb
push 0xe9
call fcn.10099d10
push 0x10040450
push 0x55442a
push 0xe9
call fcn.10099d10
push 0x10040530
push 0x56ad81
push 0xe9
call fcn.10099d10
push 0x100405b0
push 0x510e1c
push 0xe9
call fcn.10099d10
push 0x10040630
push 0x4b46a1
push 0xe9
call fcn.10099d10
push 0x100406a0
push 0x5ab059
push 0xe9
call fcn.10099d10
add esp, 0x48
push 0x10040760
push 0x56adfa
push 0xe9
call fcn.10099d10
push 0x100414f0
push 0x5d53b4
push 0xe9
call fcn.10099d10
push 0x10041560
push 0x5d4c49
push 0xe9
call fcn.10099d10
push 0x100415d0
push 0x5d4be5
push 0xe9
call fcn.10099d10
push 0x100407e0
push 0x50eef1
push 0xe9
call fcn.10099d10
push 0x10040870
push 0x4b420c
push 0xe8
call fcn.10099d10
add esp, 0x48
push 0x10040870
push 0x510d31
push 0xe8
call fcn.10099d10
add esp, 0xc
pop esi
mov esp, ebp
pop ebp
ret