Function at 0x10098440
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, dword [0x8128ac8]
sub esp, 0x38
push ebx
mov dword [edi + 0x58], eax
mov ecx, dword [0x7bc4f04]
push esi
mov esi, edi
mov dword [edi + 0x5c], ecx
call fcn.100988b0
mov edx, dword [0x879340c]
mov dword [edi + 0x6c], edx
mov eax, dword [0x8793410]
mov dword [edi + 0x74], eax
mov ecx, dword [0xe61e18]
mov dword [edi + 0x68], ecx
xor esi, esi
cmp dword [0xe61e18], 0x3e
jne 0x100984a3
cmp dword [0x1073c1c0], esi
je 0x100984a3
cmp dword [0xe609e8], 5
jne 0x100984a3
mov eax, 0x1073c1b8
call fcn.100084d0
mov eax, dword [edi + 0x5c]
mov edx, dword [eax + 0xac]
mov dword [edi + 0x14], edx
mov ecx, dword [eax + 0xb0]
mov dword [edi + 0x18], ecx
mov edx, dword [0x106868a0]
movsx ecx, word [edx + 0xe]
mov dword [edi + 0x1c], ecx
movsx edx, word [eax + 0x22c]
mov dword [edi + 0x54], edx
mov al, byte [eax + 0xe]
mov byte [edi + 0x90], al
mov ecx, dword [0x106868a0]
push ecx
lea edx, [edi + 0x24]
push 0x100af870
push edx
call dword [sym.imp.MSVCR100.dll_sprintf]
mov eax, dword [0x7bc4f04]
movzx ecx, byte [eax + 0x32]
mov edx, dword [0x8128ac8]
movzx eax, word [edx + ecx*2 + 0x78]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, 0x105
add esp, 0xc
cmp ax, cx
je 0x1009855c
mov edx, 0x228
cmp ax, dx
je 0x1009855c
mov ecx, 0x22b
cmp ax, cx
je 0x1009855c
fld qword [0x100b8170]
sub esp, 8
mov esi, 0xd27c88
fstp qword [esp]
call fcn.10097ef0
fld qword [0x100b8168]
mov esi, 0xd281c0
fstp qword [esp]
call fcn.10097ef0
add esp, 8
xor esi, esi
jmp 0x100985f0
fld qword [0x100b8160]
lea edx, [esp + 0x2c]
push edx
fstp qword [esp + 0x3c]
push 0x40
push 8
push 0xd27c88
mov dword [esp + 0x3c], esi
call ebx
test eax, eax
je 0x100985a0
fld qword [esp + 0x38]
mov eax, 0xd27c88
fstp qword [eax]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x30]
push ecx
push edx
push 8
push eax
mov dword [esp + 0x40], esi
call ebx
test eax, eax
jne 0x100985a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
fld qword [0x100b8158]
lea eax, [esp + 0x2c]
push eax
fstp qword [esp + 0x3c]
push 0x40
push 8
push 0xd281c0
mov dword [esp + 0x3c], esi
call ebx
test eax, eax
je 0x100985ea
fld qword [esp + 0x38]
mov ecx, 0xd281c0
fstp qword [ecx]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x30]
push edx
push eax
push 8
push ecx
mov dword [esp + 0x40], esi
call ebx
test eax, eax
jne 0x100985f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x7bc4f04]
movzx edx, byte [ecx + 0x32]
mov eax, dword [0x8128ac8]
cmp word [eax + edx*2 + 0x78], 0x37
lea ecx, [esp + 0x2c]
push ecx
push 0x40
push 1
push 0x649e27
jne 0x10098620
call ebx
mov byte [0x649e27], 1
jmp 0x10098629
call ebx
mov byte [0x649e27], 0xd
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x2c]
push edx
push eax
push 1
push 0x649e27
call ebx
mov ecx, dword [edi + 0x58]
mov dl, byte [ecx + 0xb]
and dl, 7
mov dword [esp + 0x2c], esi
cmp dl, 6
je 0x10098677
lea eax, [esp + 0x2c]
push eax
push 0x40
push 1
push 0x556c38
call ebx
test eax, eax
je 0x100986af
mov al, 2
mov ecx, 0x556c38
lea edx, [esp + 0x30]
mov byte [ecx], al
mov eax, dword [esp + 0x2c]
push edx
push eax
jmp 0x1009869e
lea ecx, [esp + 0x2c]
push ecx
push 0x40
push 1
push 0x556c38
call ebx
test eax, eax
je 0x100986af
mov al, 0xf
mov edx, 0x556c38
mov byte [edx], al
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x30]
push eax
push ecx
push 1
push 0x556c38
mov dword [esp + 0x40], esi
call ebx
test eax, eax
jne 0x100986b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [0x10149ea3], 1
jne 0x100986d5
push 0x10149ea4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x100986d5
push 0x64
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, 1
cmp dword [edi + 0x1358], eax
je 0x10098748
cmp dword [edi + 0x1354], eax
jne 0x10098748
push eax
mov esi, 0x8793383
call fcn.10097e20
add esp, 4
push 0x10728878
push 0xc8
mov ebx, 1
push 0x78
push 0xff19bdff
lea ecx, [ebx + 0x18]
call fcn.10050e40
push 0x107288f0
push 0x64
push 0x78
push 0xff19bdff
lea ecx, [ebx + 0x27]
call fcn.10050e40
push 0x10728968
push 0xc8
push 0x78
push 0xff0000e1
lea ecx, [ebx + 0x36]
call fcn.10050e40
add esp, 0x30
mov eax, 1
cmp dword [edi + 0x1358], eax
jne 0x100988a7
cmp dword [edi + 0x1354], eax
jne 0x100988a7
push eax
mov esi, 0x8793383
call fcn.10097e20
add esp, 4
push 0x10728878
push 0xc8
mov ebx, 1
push 0x78
push 0xff19bdff
lea ecx, [ebx + 0x18]
call fcn.10050e40
push 0x107288f0
push 0x64
push 0x78
push 0xff19bdff
lea ecx, [ebx + 0x27]
call fcn.10050e40
push 0x107289e0
push 0xc8
push 0x78
push 0xff8be100
lea ecx, [ebx + 0x36]
call fcn.10050e40
fild dword [0xe61e58]
add esp, 0x30
fdiv dword [0xe7c3d4]
fmul qword [0x100b6ee8]
call fcn.100ac0e0
mov dword [0x879340c], eax
fild dword [0xe61e5c]
fdiv dword [0xe7c3d8]
fdiv qword [0x100b8150]
call fcn.100ac0e0
mov dword [0x8793410], eax
mov ecx, dword [0x1073c1e4]
fld dword [ecx]
fcomp qword [0x100b7258]
fnstsw ax
fld dword [ecx]
test ah, 0x41
jnp 0x10098820
fcomp qword [0x100b7a28]
fnstsw ax
test bl, ah
jne 0x10098831
fld dword [ecx]
fsubr qword [0x100b77f0]
call fcn.100ac0e0
mov dword [esp + 0x2c], eax
jmp 0x10098839
mov dword [esp + 0x2c], 0x6e
fld qword [0x108f2a48]
fadd qword [0x100b76c0]
fstp qword [0x108f2a48]
call dword [sym.imp.MSVCR100.dll_rand]
fild dword [esp + 0x2c]
fstp qword [esp + 0x30]
fild dword [0x879340c]
fstp qword [esp + 0x38]
fld qword [0x108f2a48]
call sub.MSVCR100.dll__CIcos
fmul qword [esp + 0x30]
fsubr qword [esp + 0x38]
call fcn.100ac0e0
mov dword [0x879340c], eax
fild dword [0x8793410]
fstp qword [esp + 0x38]
fld qword [0x108f2a48]
call sub.MSVCR100.dll__CIsin
fmul qword [esp + 0x30]
fsubr qword [esp + 0x38]
call fcn.100ac0e0
mov dword [0x8793410], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret