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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1031add0
mov eax, dword fs:[0]
push eax
sub esp, 0x1cc
mov eax, dword [0x10338040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1b8], ecx
mov eax, dword [0x103a925c]
cmp dword [eax + 0x174], 0
jle 0x102cc9db
mov dword [ebp - 0x16c], 1
jmp 0x102cc9e5
mov dword [ebp - 0x16c], 0
mov cl, byte [ebp - 0x16c]
mov byte [ebp - 0x135], cl
cmp dword [0x1039c8fc], 4
jne 0x102ccad6
mov edx, dword [0x103a925c]
mov eax, dword [edx + 0x4cb4]
mov dword [ebp - 0x18c], eax
mov ecx, dword [0x103a925c]
mov edx, dword [ecx + 0x4cac]
mov eax, dword [0x103a925c]
add edx, dword [eax + 0x4cb0]
mov dword [ebp - 0x188], edx
mov ecx, dword [0x103a925c]
mov edx, dword [ecx + 0x174]
mov dword [ebp - 0x190], edx
mov eax, dword [0x103a91fc]
mov dword [ebp - 0x174], eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x174]
mov dword [edx], eax
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x178]
mov eax, dword [edx]
mov dword [ebp - 0x17c], eax
mov ecx, 3
shl ecx, 2
mov edx, dword [ebp - 0x17c]
mov eax, dword [edx + ecx]
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x180]
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x188]
push eax
mov ecx, dword [ebp - 0x18c]
push ecx
movzx edx, byte [ebp - 0x135]
push edx
mov eax, dword [ebp - 0x190]
push eax
mov ecx, dword [ebp - 0x174]
call dword [ebp - 0x194]
movzx ecx, byte [0x103c62a0]
test ecx, ecx
jne 0x102cd233
mov edx, 1
imul eax, edx, 0
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x1c], cl
movsx edx, byte [ebp - 0x1c]
xor edx, 0xffffff98
mov byte [ebp - 0x1d], dl
mov al, byte [ebp - 0x1d]
mov byte [ebp - 0x160], al
mov ecx, 1
shl ecx, 0
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x24], dl
movsx eax, byte [ebp - 0x24]
xor eax, 0xffffff98
mov byte [ebp - 0x25], al
mov cl, byte [ebp - 0x25]
mov byte [ebp - 0x15f], cl
mov edx, 1
shl edx, 1
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x2c], al
movsx ecx, byte [ebp - 0x2c]
xor ecx, 0xffffff98
mov byte [ebp - 0x2d], cl
mov dl, byte [ebp - 0x2d]
mov byte [ebp - 0x15e], dl
mov eax, 1
imul ecx, eax, 3
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x34], dl
movsx eax, byte [ebp - 0x34]
xor eax, 0xffffff98
mov byte [ebp - 0x35], al
mov cl, byte [ebp - 0x35]
mov byte [ebp - 0x15d], cl
mov edx, 1
shl edx, 2
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x3c], al
movsx ecx, byte [ebp - 0x3c]
xor ecx, 0xffffff98
mov byte [ebp - 0x3d], cl
mov dl, byte [ebp - 0x3d]
mov byte [ebp - 0x15c], dl
mov eax, 1
imul ecx, eax, 5
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x44], dl
movsx eax, byte [ebp - 0x44]
xor eax, 0xffffff98
mov byte [ebp - 0x45], al
mov cl, byte [ebp - 0x45]
mov byte [ebp - 0x15b], cl
mov edx, 1
imul eax, edx, 6
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x4c], cl
movsx edx, byte [ebp - 0x4c]
xor edx, 0xffffff98
mov byte [ebp - 0x4d], dl
mov al, byte [ebp - 0x4d]
mov byte [ebp - 0x15a], al
mov ecx, 1
imul edx, ecx, 7
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x54], al
movsx ecx, byte [ebp - 0x54]
xor ecx, 0xffffff98
mov byte [ebp - 0x55], cl
mov dl, byte [ebp - 0x55]
mov byte [ebp - 0x159], dl
mov eax, 1
shl eax, 3
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x5c], cl
movsx edx, byte [ebp - 0x5c]
xor edx, 0xffffff98
mov byte [ebp - 0x5d], dl
mov al, byte [ebp - 0x5d]
mov byte [ebp - 0x158], al
mov ecx, 1
imul edx, ecx, 9
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x64], al
movsx ecx, byte [ebp - 0x64]
xor ecx, 0xffffff98
mov byte [ebp - 0x65], cl
mov dl, byte [ebp - 0x65]
mov byte [ebp - 0x157], dl
mov eax, 1
imul ecx, eax, 0xa
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x6c], dl
movsx eax, byte [ebp - 0x6c]
xor eax, 0xffffff98
mov byte [ebp - 0x6d], al
mov cl, byte [ebp - 0x6d]
mov byte [ebp - 0x156], cl
mov edx, 1
imul eax, edx, 0xb
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x74], cl
movsx edx, byte [ebp - 0x74]
xor edx, 0xffffff98
mov byte [ebp - 0x75], dl
mov al, byte [ebp - 0x75]
mov byte [ebp - 0x155], al
mov ecx, 1
imul edx, ecx, 0xc
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x7c], al
movsx ecx, byte [ebp - 0x7c]
xor ecx, 0xffffff98
mov byte [ebp - 0x7d], cl
mov dl, byte [ebp - 0x7d]
mov byte [ebp - 0x154], dl
mov eax, 1
imul ecx, eax, 0xd
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x84], dl
movsx eax, byte [ebp - 0x84]
xor eax, 0xffffff98
mov byte [ebp - 0x85], al
mov cl, byte [ebp - 0x85]
mov byte [ebp - 0x153], cl
mov edx, 1
imul eax, edx, 0xe
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x8c], cl
movsx edx, byte [ebp - 0x8c]
xor edx, 0xffffff98
mov byte [ebp - 0x8d], dl
mov al, byte [ebp - 0x8d]
mov byte [ebp - 0x152], al
mov ecx, 1
imul edx, ecx, 0xf
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x94], al
movsx ecx, byte [ebp - 0x94]
xor ecx, 0xffffff98
mov byte [ebp - 0x95], cl
mov dl, byte [ebp - 0x95]
mov byte [ebp - 0x151], dl
mov eax, 1
shl eax, 4
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x9c], cl
movsx edx, byte [ebp - 0x9c]
xor edx, 0xffffff98
mov byte [ebp - 0x9d], dl
mov al, byte [ebp - 0x9d]
mov byte [ebp - 0x150], al
mov ecx, 1
imul edx, ecx, 0x11
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xa4], al
movsx ecx, byte [ebp - 0xa4]
xor ecx, 0xffffff98
mov byte [ebp - 0xa5], cl
mov dl, byte [ebp - 0xa5]
mov byte [ebp - 0x14f], dl
mov eax, 1
imul ecx, eax, 0x12
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xac], dl
movsx eax, byte [ebp - 0xac]
xor eax, 0xffffff98
mov byte [ebp - 0xad], al
mov cl, byte [ebp - 0xad]
mov byte [ebp - 0x14e], cl
mov edx, 1
imul eax, edx, 0x13
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xb4], cl
movsx edx, byte [ebp - 0xb4]
xor edx, 0xffffff98
mov byte [ebp - 0xb5], dl
mov al, byte [ebp - 0xb5]
mov byte [ebp - 0x14d], al
mov ecx, 1
imul edx, ecx, 0x14
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xbc], al
movsx ecx, byte [ebp - 0xbc]
xor ecx, 0xffffff98
mov byte [ebp - 0xbd], cl
mov dl, byte [ebp - 0xbd]
mov byte [ebp - 0x14c], dl
mov eax, 1
imul ecx, eax, 0x15
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xc4], dl
movsx eax, byte [ebp - 0xc4]
xor eax, 0xffffff98
mov byte [ebp - 0xc5], al
mov cl, byte [ebp - 0xc5]
mov byte [ebp - 0x14b], cl
mov edx, 1
imul eax, edx, 0x16
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xcc], cl
movsx edx, byte [ebp - 0xcc]
xor edx, 0xffffff98
mov byte [ebp - 0xcd], dl
mov al, byte [ebp - 0xcd]
mov byte [ebp - 0x14a], al
mov ecx, 1
imul edx, ecx, 0x17
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xd4], al
movsx ecx, byte [ebp - 0xd4]
xor ecx, 0xffffff98
mov byte [ebp - 0xd5], cl
mov dl, byte [ebp - 0xd5]
mov byte [ebp - 0x149], dl
mov eax, 1
imul ecx, eax, 0x18
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xdc], dl
movsx eax, byte [ebp - 0xdc]
xor eax, 0xffffff98
mov byte [ebp - 0xdd], al
mov cl, byte [ebp - 0xdd]
mov byte [ebp - 0x148], cl
mov edx, 1
imul eax, edx, 0x19
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xe4], cl
movsx edx, byte [ebp - 0xe4]
xor edx, 0xffffff98
mov byte [ebp - 0xe5], dl
mov al, byte [ebp - 0xe5]
mov byte [ebp - 0x147], al
mov ecx, 1
imul edx, ecx, 0x1a
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xec], al
movsx ecx, byte [ebp - 0xec]
xor ecx, 0xffffff98
mov byte [ebp - 0xed], cl
mov dl, byte [ebp - 0xed]
mov byte [ebp - 0x146], dl
mov eax, 1
imul ecx, eax, 0x1b
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xf4], dl
movsx eax, byte [ebp - 0xf4]
xor eax, 0xffffff98
mov byte [ebp - 0xf5], al
mov cl, byte [ebp - 0xf5]
mov byte [ebp - 0x145], cl
mov edx, 1
imul eax, edx, 0x1c
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0xfc], cl
movsx edx, byte [ebp - 0xfc]
xor edx, 0xffffff98
mov byte [ebp - 0xfd], dl
mov al, byte [ebp - 0xfd]
mov byte [ebp - 0x144], al
mov ecx, 1
imul edx, ecx, 0x1d
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x104], al
movsx ecx, byte [ebp - 0x104]
xor ecx, 0xffffff98
mov byte [ebp - 0x105], cl
mov dl, byte [ebp - 0x105]
mov byte [ebp - 0x143], dl
mov eax, 1
imul ecx, eax, 0x1e
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x10c], dl
movsx eax, byte [ebp - 0x10c]
xor eax, 0xffffff98
mov byte [ebp - 0x10d], al
mov cl, byte [ebp - 0x10d]
mov byte [ebp - 0x142], cl
mov edx, 1
imul eax, edx, 0x1f
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x114], cl
movsx edx, byte [ebp - 0x114]
xor edx, 0xffffff98
mov byte [ebp - 0x115], dl
mov al, byte [ebp - 0x115]
mov byte [ebp - 0x141], al
mov ecx, 1
shl ecx, 5
mov dl, byte [ecx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x11c], dl
movsx eax, byte [ebp - 0x11c]
xor eax, 0xffffff98
mov byte [ebp - 0x11d], al
mov cl, byte [ebp - 0x11d]
mov byte [ebp - 0x140], cl
mov edx, 1
imul eax, edx, 0x21
mov cl, byte [eax + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x124], cl
movsx edx, byte [ebp - 0x124]
xor edx, 0xffffff98
mov byte [ebp - 0x125], dl
mov al, byte [ebp - 0x125]
mov byte [ebp - 0x13f], al
mov ecx, 1
imul edx, ecx, 0x22
mov al, byte [edx + str.B8_________3B_F0_0F_4F_F0_89_5D_FC]
mov byte [ebp - 0x12c], al
movsx ecx, byte [ebp - 0x12c]
xor ecx, 0xffffff98
mov byte [ebp - 0x12d], cl
mov dl, byte [ebp - 0x12d]
mov byte [ebp - 0x13e], dl
mov dword [ebp - 0x13c], 0
jmp 0x102cd0f3
mov eax, dword [ebp - 0x13c]
add eax, 1
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0x23
jae 0x102cd16c
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x1b4], ecx
mov edx, dword [ebp - 0x1b4]
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x198]
mov cl, byte [eax]
mov byte [ebp - 0x134], cl
mov dl, byte [ebp - 0x161]
mov byte [ebp - 0x15], dl
movsx eax, byte [ebp - 0x134]
xor eax, 0xffffff98
mov byte [ebp - 0x15], al
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x19c], ecx
mov edx, dword [ebp - 0x19c]
add edx, dword [ebp - 0x13c]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x1a0]
mov cl, byte [ebp - 0x15]
mov byte [eax], cl
jmp 0x102cd0e4
lea edx, [ebp - 0x160]
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1a8], eax
mov ecx, dword [ebp - 0x1a8]
push ecx
lea ecx, [ebp - 0x1d8]
call fcn.1008ade0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x1d8]
push edx
push 0x103a91a0
lea eax, [ebp - 0x1c0]
push eax
call fcn.10083ee0
add esp, 0xc
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
mov edx, dword [ecx]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x168], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d8]
call fcn.1008b960
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x14]
push ecx
push 0x40
push 4
mov edx, dword [ebp - 0x168]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 0x168]
mov dword [eax], 0x3e
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x14]
push edx
push 4
mov eax, dword [ebp - 0x168]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov byte [0x103c62a0], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1030cc2a
mov esp, ebp
pop ebp
ret