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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, eax
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x64]
push edi
push eax
mov eax, dword [esi + 0x60]
push ecx
mov ecx, dword [esi + 0x5c]
push edx
mov edx, dword [esi + 0x58]
push eax
mov eax, dword [esi + 0x54]
push ecx
mov ecx, dword [esi + 0x50]
push edx
movzx edx, byte [esi + 0xe]
push eax
movzx eax, byte [esi + 0xd]
push ecx
movzx ecx, byte [esi + 0xc]
push edx
movzx edx, byte [esi + 9]
push eax
movzx eax, byte [esi + 8]
push ecx
movzx ecx, byte [esi + 7]
push edx
movzx edx, byte [esi + 6]
push eax
movzx eax, byte [esi + 5]
push ecx
movzx ecx, byte [esi + 4]
push edx
push eax
push ecx
push 0x1001f860
call fcn.10010270
add esp, 4
push eax
push 0
mov ecx, 0x10121028
call fcn.10007950
mov al, byte [esi + 4]
add esp, 0x4c
test al, al
jne 0x1000358a
mov dword [0x1012be58], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movzx edx, byte [esi + 5]
movzx ecx, byte [esi + 7]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [0x1012be50], edx
movzx edx, byte [esi + 8]
mov dword [0x1012be4c], eax
movzx eax, byte [esi + 6]
mov dword [0x1012beb0], edx
movzx edx, byte [esi + 0xa]
mov dword [0x1012be54], eax
movzx eax, byte [esi + 0x28]
mov dword [0x1012bebc], ecx
movzx ecx, byte [esi + 9]
mov dword [0x1012be9c], edx
movzx edx, byte [esi + 0xd]
mov dword [0x1012be94], eax
movzx eax, byte [esi + 0xb]
mov dword [0x1012be98], ecx
movzx ecx, byte [esi + 0xc]
mov dword [0x1012bea8], edx
lea edx, [ebp - 4]
push edx
push 0x40
mov dword [0x1012bea4], eax
movzx eax, byte [esi + 0xe]
mov dword [0x1012bea0], ecx
movzx ecx, byte [esi + 0xd2]
push 8
push 0x1012af34
mov dword [0x1012beac], eax
mov dword [0x1012bec0], ecx
call edi
mov eax, dword [esi + 0xf]
mov dword [0x1012af34], eax
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0x13]
lea edx, [ebp - 4]
push edx
push eax
push 8
push 0x1012af34
mov dword [0x1012af38], ecx
call edi
lea ecx, [ebp - 4]
push ecx
push 0x40
push 0x11
push 0x1012af3c
call edi
mov edx, dword [esi + 0x17]
mov dword [0x1012af3c], edx
mov eax, dword [esi + 0x1b]
mov dword [0x1012af40], eax
mov ecx, dword [esi + 0x1f]
mov dword [0x1012af44], ecx
mov edx, dword [esi + 0x23]
mov dword [0x1012af48], edx
mov edx, dword [ebp - 4]
mov al, byte [esi + 0x27]
lea ecx, [ebp - 4]
push ecx
push edx
push 0x11
push 0x1012af3c
mov byte [0x1012af4c], al
call edi
lea eax, [ebp - 4]
push eax
push 0x40
push 0x20
push 0x1012aea8
call edi
push 0x20
lea ecx, [esi + 0x29]
push ecx
push 0x1012aea8
call sub.MSVCR100.dll_memcpy
add esp, 0xc
lea edx, [ebp - 4]
mov eax, dword [ebp - 4]
push edx
push eax
push 0x20
push 0x1012aea8
call edi
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x100033ab
mov dword [0x1012aec8], eax
call fcn.10010450
mov eax, dword [esi + 0x50]
test eax, eax
je 0x100033f0
lea ecx, [ebp - 4]
push ecx
push 0x40
push 0x20
push 0x1012bbbc
mov dword [0x1012bed0], eax
call edi
push 0x20
push 0x10126074
push 0x1012bbbc
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 4]
add esp, 0xc
lea edx, [ebp - 4]
push edx
push eax
push 0x20
push 0x1012bbbc
call edi
mov eax, dword [esi + 0x54]
test eax, eax
je 0x10003439
movzx ecx, byte [esi + 0xf]
inc cl
mov byte [0x1012bbb4], cl
movzx edx, byte [esi + 0x11]
add dl, 2
mov byte [0x1012bbb5], dl
mov dword [0x1012bed4], eax
mov al, byte [esi + 0x12]
add al, 3
mov byte [0x1012bbb6], al
movzx ecx, byte [esi + 0x14]
add cl, 4
mov byte [0x1012bbb7], cl
movzx edx, byte [esi + 0x15]
add dl, 5
mov byte [0x1012bbb8], dl
mov eax, dword [esi + 0x58]
test eax, eax
je 0x10003491
mov dword [0x1012bed8], eax
lea eax, [ebp - 4]
push eax
push 0x40
push 0x11
push 0x1012bba0
call edi
mov ecx, dword [esi + 0x17]
mov dword [0x1012bba0], ecx
mov edx, dword [esi + 0x1b]
mov dword [0x1012bba4], edx
mov eax, dword [esi + 0x1f]
mov dword [0x1012bba8], eax
mov ecx, dword [esi + 0x23]
mov dword [0x1012bbac], ecx
mov ecx, dword [ebp - 4]
mov dl, byte [esi + 0x27]
lea eax, [ebp - 4]
push eax
push ecx
push 0x11
push 0x1012bba0
mov byte [0x1012bbb0], dl
call edi
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x1000349d
mov dword [0x1012bec4], eax
mov eax, dword [esi + 0x60]
test eax, eax
je 0x100034a9
mov dword [0x1012bec8], eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x100034b5
mov dword [0x1012becc], eax
mov eax, dword [esi + 0x68]
test eax, eax
je 0x100034c1
mov dword [0x1012bedc], eax
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x100034cd
mov dword [0x1012bee0], eax
movzx edx, byte [esi + 0x70]
lea eax, [ebp - 4]
push eax
push 0x40
push 0x20
push 0x1012aed0
mov dword [0x1012aecc], edx
call edi
push 0x20
lea ecx, [esi + 0x71]
push ecx
push 0x1012aed0
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 4]
add esp, 0xc
lea edx, [ebp - 4]
push edx
push eax
push 0x20
push 0x1012aed0
call edi
movzx ecx, byte [esi + 0x91]
lea edx, [ebp - 4]
push edx
push 0x40
push 0x20
push 0x1012aef4
mov dword [0x1012aef0], ecx
call edi
push 0x20
lea eax, [esi + 0x92]
push eax
push 0x1012aef4
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 4]
add esp, 0xc
lea ecx, [ebp - 4]
push ecx
push edx
push 0x20
push 0x1012aef4
call edi
lea eax, [ebp - 4]
push eax
push 0x40
push 0x20
push 0x1012af14
call edi
push 0x20
add esi, 0xb2
push esi
push 0x1012af14
call sub.MSVCR100.dll_memcpy
mov edx, dword [ebp - 4]
add esp, 0xc
lea ecx, [ebp - 4]
push ecx
push edx
push 0x20
push 0x1012af14
call edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, al
dec eax
cmp eax, 4
ja case.default.0x10003593
jmp dword [eax*4 + 0x100035e4]
mov ecx, 8
jmp 0x100035c2
mov ecx, 9
jmp 0x100035c2
mov ecx, 0xa
jmp 0x100035c2
mov ecx, 0xb
jmp 0x100035c2
mov ecx, 0xc
jmp 0x100035c2
mov ecx, 0xd
push 0x1388
call fcn.100080a0
push eax
push 1
mov ebx, 0x1012b0a0
call fcn.100100c0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret