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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [0x1001e018]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov al, byte [esi + 4]
push edi
test al, al
jne 0x100025cb
mov dword [0x101240fc], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movzx ecx, byte [esi + 6]
movzx edx, byte [esi + 7]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [0x101240f0], eax
movzx eax, byte [esi + 5]
mov dword [0x101240f4], eax
movzx eax, byte [esi + 8]
mov dword [0x101240f8], ecx
movzx ecx, byte [esi + 9]
mov dword [0x10124130], eax
movzx eax, byte [esi + 0xb]
mov dword [0x1012413c], edx
movzx edx, byte [esi + 0xa]
mov dword [0x10124120], ecx
movzx ecx, byte [esi + 0xc]
mov dword [0x10124128], eax
mov eax, dword [esi + 0x28]
mov dword [0x10124124], edx
mov dword [0x1012412c], ecx
test eax, eax
je 0x100024d3
lea edx, [ebp - 0x10c]
push edx
push 0x40
push 0x20
push 0x1012405c
mov dword [0x1012414c], eax
call edi
push 0x20
push 0x1011e4dc
push 0x1012405c
call sub.MSVCR100.dll_memcpy
mov ecx, dword [ebp - 0x10c]
add esp, 0xc
lea eax, [ebp - 0x10c]
push eax
push ecx
push 0x20
push 0x1012405c
call edi
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x1000251a
movzx edx, byte [esi + 0xd]
inc dl
mov byte [0x10124054], dl
mov dword [0x10124150], eax
movzx eax, byte [esi + 0xf]
add al, 2
mov byte [0x10124055], al
mov cl, byte [esi + 0x10]
add cl, 3
mov byte [0x10124056], cl
movzx edx, byte [esi + 0x12]
add dl, 4
mov byte [0x10124057], dl
movzx eax, byte [esi + 0x13]
add al, 5
mov byte [0x10124058], al
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1000257a
lea ecx, [ebp - 0x10c]
push ecx
push 0x40
push 0x11
push 0x10124040
mov dword [0x10124154], eax
call edi
mov edx, dword [esi + 0x15]
mov dword [0x10124040], edx
mov eax, dword [esi + 0x19]
mov dword [0x10124044], eax
mov ecx, dword [esi + 0x1d]
mov dword [0x10124048], ecx
mov edx, dword [esi + 0x21]
mov dword [0x1012404c], edx
mov edx, dword [ebp - 0x10c]
mov al, byte [esi + 0x25]
lea ecx, [ebp - 0x10c]
push ecx
push edx
push 0x11
push 0x10124040
mov byte [0x10124050], al
call edi
mov eax, dword [esi + 0x34]
test eax, eax
je 0x10002586
mov dword [0x10124140], eax
mov eax, dword [esi + 0x38]
test eax, eax
je 0x10002592
mov dword [0x10124144], eax
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x1000259e
mov dword [0x10124148], eax
mov eax, dword [esi + 0x40]
test eax, eax
je 0x100025aa
mov dword [0x10124158], eax
mov esi, dword [esi + 0x44]
test esi, esi
je 0x10002670
mov dword [0x1012415c], esi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10012ae6
mov esp, ebp
pop ebp
ret
movzx eax, al
dec eax
cmp eax, 4
ja case.default.0x100025d4
jmp dword [eax*4 + 0x10002680]
mov ecx, 8
jmp 0x10002656
mov ecx, 9
jmp 0x10002656
push 0x1388
mov ecx, 0xa
call fcn.10005760
push eax
push 2
mov esi, 0x10123668
jmp 0x10002668
call fcn.1000fbd0
push eax
mov ecx, 0xb
call fcn.10005760
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x1388
lea ecx, [ebp - 0x108]
push ecx
push 2
mov esi, 0x10123668
jmp 0x10002668
push 0x1388
mov ecx, 0xc
call fcn.10005760
push eax
push 2
mov esi, 0x10123668
jmp 0x10002668
mov ecx, 0xd
push 0x1388
call fcn.10005760
push eax
push 1
mov esi, 0x10123538
call fcn.1000fa20
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.10012ae6
mov esp, ebp
pop ebp
ret