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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, ecx
mov ecx, 0x1a
push edi
push dword [esi + 0x44]
movzx eax, byte [esi + 0xc]
push dword [esi + 0x40]
push dword [esi + 0x3c]
push dword [esi + 0x38]
push dword [esi + 0x34]
push dword [esi + 0x30]
push dword [esi + 0x2c]
push dword [esi + 0x28]
push eax
movzx eax, byte [esi + 0xb]
push eax
movzx eax, byte [esi + 0xa]
push eax
movzx eax, byte [esi + 9]
push eax
movzx eax, byte [esi + 8]
push eax
movzx eax, byte [esi + 7]
push eax
movzx eax, byte [esi + 6]
push eax
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 4]
push eax
call fcn.10010240
push eax
push 0
push 0x1011c1e0
call fcn.10007790
mov al, byte [esi + 4]
add esp, 0x50
test al, al
jne 0x100048a0
mov dword [0x10126d54], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [0x10126d60], eax
movzx eax, byte [esi + 5]
mov dword [0x10126d5c], eax
movzx eax, byte [esi + 6]
mov dword [0x10126d58], eax
movzx eax, byte [esi + 8]
mov dword [0x10126d20], eax
movzx eax, byte [esi + 9]
mov dword [0x10126d30], eax
movzx eax, byte [esi + 0xa]
mov dword [0x10126d2c], eax
movzx eax, byte [esi + 0xb]
mov dword [0x10126d28], eax
movzx eax, byte [esi + 0xc]
mov dword [0x10126d24], eax
mov eax, dword [esi + 0x28]
test eax, eax
je 0x100047bd
mov dword [0x10126d08], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 0x20
push 0x10126ce0
call edi
push 0x20
push 0x10121234
push 0x10126ce0
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 0x20
push 0x10126ce0
call edi
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x10004800
mov dword [0x10126d04], eax
movzx eax, byte [esi + 0xd]
inc al
mov byte [0x10126cd8], al
movzx eax, byte [esi + 0xf]
add al, 2
mov byte [0x10126cd9], al
movzx eax, byte [esi + 0x10]
add al, 3
mov byte [0x10126cda], al
movzx eax, byte [esi + 0x12]
add al, 4
mov byte [0x10126cdb], al
movzx eax, byte [esi + 0x13]
add al, 5
mov byte [0x10126cdc], al
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1000483e
mov dword [0x10126d00], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 0x11
push 0x10126cc4
call edi
movups xmm0, xmmword [esi + 0x15]
movups xmmword [0x10126cc4], xmm0
mov al, byte [esi + 0x25]
mov byte [0x10126cd4], al
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push 0x11
push 0x10126cc4
call edi
mov eax, dword [esi + 0x34]
test eax, eax
mov ecx, dword [0x10126d14]
cmovne ecx, eax
mov eax, dword [esi + 0x38]
test eax, eax
mov dword [0x10126d14], ecx
mov ecx, dword [0x10126d10]
cmovne ecx, eax
mov eax, dword [esi + 0x3c]
test eax, eax
mov dword [0x10126d10], ecx
mov ecx, dword [0x10126d0c]
cmovne ecx, eax
mov eax, dword [esi + 0x40]
test eax, eax
mov dword [0x10126d0c], ecx
mov ecx, dword [0x10126cbc]
cmovne ecx, eax
mov eax, dword [esi + 0x44]
mov dword [0x10126cbc], ecx
test eax, eax
je 0x1000489a
mov dword [0x10126cb8], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movzx eax, al
dec eax
cmp eax, 4
ja case.default.0x100048a9
jmp dword [eax*4 + 0x100048e4]
push ecx
push 9
jmp 0x100048cc
push ecx
push 0xa
jmp 0x100048cc
push ecx
push 0xb
jmp 0x100048cc
push ecx
push 0xc
jmp 0x100048cc
push ecx
push 0xd
jmp 0x100048cc
push ecx
push 8
call fcn.10007d80
push eax
push ecx
mov edx, 1
mov ecx, 0x10126190
call fcn.10010000
nop
leave
dec eax
add byte [eax], dl
mov al, 0x48
add byte [eax], dl
mov ch, 0x48
add byte [eax], dl
mov edx, 0xbf100048
dec eax
add byte [eax], dl
int3