Function at 0x10009a10
Capabilities:
Allocate or change rwx memory
Check for software breakpoints
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e2180
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push esi
push edi
mov eax, dword [0x1011efb8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x24], edi
mov eax, dword fs:[0x2c]
mov edx, dword [0x10c9d5f8]
mov edx, dword [eax + edx*4]
mov eax, dword [0x10c96c50]
cmp eax, dword [edx + 4]
jg 0x1000a4b8
push 0x10c96c20
mov dword [ebp - 0x34], 0x10c96c20
call fcn.1008dad0
add esp, 4
test eax, eax
je 0x10009a7d
push eax
call fcn.1008dcf0
add esp, 4
sub esp, 8
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov dword [0x1011e30d], 0x1000b180
movsd qword [esp], xmm0
push str.___f___
call fcn.10004dc0
mov eax, dword [ebp - 0x24]
add esp, 0xc
cmp dword [edi + 0x28], 0
mov esi, 0x1011e050
mov ecx, 0x9e
cmovne esi, edi
mov edi, 0x1011e320
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x38]
mov dword [0x1011e358], eax
call fcn.1000b510
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
cmp dword [0x1011e594], 0
mov byte [ebp - 4], 1
jne 0x1000a1f8
cmp word [0x1011e378], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
je 0x10009bc3
push 0x10
push 0x1000
push 0x1011e378
call edi
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.10086d20
mov eax, dword [0x1011e340]
add esp, 0x10
test eax, eax
jne 0x10009b88
mov esi, dword [0x1011e368]
mov eax, esi
mov ecx, dword [ebp - 0x30]
cmp ecx, esi
mov edi, dword [ebp - 0x2c]
cmova eax, ecx
cmp eax, edi
jae 0x10009b4b
cmp ecx, esi
jbe 0x10009b53
mov esi, ecx
jmp 0x10009b4d
mov esi, edi
mov dword [0x1011e368], esi
mov edx, dword [0x1011e370]
cmp edi, edx
mov eax, edx
cmovb eax, edi
cmp eax, ecx
jbe 0x10009b78
cmp edi, edx
jae 0x10009b80
mov edx, edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x1011e370], edx
jmp 0x10009bcf
mov edx, ecx
mov dword [0x1011e370], edx
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
jmp 0x10009bcf
cmp eax, 1
jne 0x10009bc3
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
sub edx, ecx
cmp dword [0x1011e368], edx
mov esi, edx
cmovb esi, dword [0x1011e368]
add esi, ecx
cmp dword [0x1011e370], edx
mov dword [0x1011e368], esi
cmovb edx, dword [0x1011e370]
add edx, ecx
mov dword [0x1011e370], edx
jmp 0x10009bcf
mov esi, dword [0x1011e368]
mov edx, dword [0x1011e370]
cmp word [0x1011e468], 0
je 0x10009c36
push 0x1011e468
call edi
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.1000a8b0
mov esi, eax
add esp, 8
lea eax, [ebp - 0x54]
cmp eax, esi
je 0x10009c22
mov ecx, eax
call fcn.10003a90
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 8]
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x4c], eax
mov dword [esi + 8], 0
lea ecx, [ebp - 0x6c]
call fcn.10003a90
mov edx, dword [0x1011e370]
mov esi, dword [0x1011e368]
cmp word [0x1011e378], 0
je 0x10009c79
push 0x1011e378
call edi
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.1000a8b0
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.1000b630
add esp, 0x10
lea ecx, [ebp - 0x6c]
call fcn.10003a90
mov edx, dword [0x1011e370]
mov esi, dword [0x1011e368]
xor edi, edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
mov eax, dword [0x1011e344]
mov byte [ebp - 4], 3
test eax, eax
jne 0x10009d29
movzx eax, word [0x1011e348]
push edx
push esi
push 0x10
push eax
lea eax, [ebp - 0x6c]
push 0x1011e320
push eax
call fcn.10086fd0
mov edi, eax
xor esi, esi
lea eax, [ebp - 0x48]
mov dword [ebp - 0x20], esi
add esp, 0x18
cmp eax, edi
je 0x10009cef
mov ecx, eax
call fcn.10003a90
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x44], eax
mov eax, dword [edi + 8]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x40], eax
mov dword [edi + 8], 0
lea ecx, [ebp - 0x6c]
call fcn.10003a90
mov edx, dword [ebp - 0x20]
xor edi, edi
sub edx, esi
xor ecx, ecx
add edx, 3
shr edx, 2
cmp esi, dword [ebp - 0x20]
cmova edx, edi
test edx, edx
je 0x10009e16
mov eax, dword [0x1011e34c]
lea esi, [esi + 4]
add dword [esi - 4], eax
inc ecx
cmp ecx, edx
jne 0x10009d14
jmp 0x10009e16
cmp eax, 1
jne 0x10009da6
cmp esi, edx
jae 0x10009e16
lea edi, [esi + 4]
nop dword [eax]
push 0x1000
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x10009d5e
add esi, 0xfff
add edi, 0xfff
jmp 0x10009d9a
mov eax, dword [esi]
cmp eax, 0xcccccccc
je 0x10009d6e
cmp eax, 0x90909090
jne 0x10009d9a
mov al, byte [edi]
cmp al, 0xcc
je 0x10009d9a
cmp al, 0x90
je 0x10009d9a
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x40], eax
je 0x10009d8d
mov dword [eax], edi
add eax, 4
mov dword [ebp - 0x44], eax
jmp 0x10009d9a
lea ecx, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.100091d0
inc esi
inc edi
cmp esi, dword [0x1011e370]
jb 0x10009d40
jmp 0x10009e16
cmp eax, 2
jne 0x10009e16
cmp esi, edx
jae 0x10009e16
nop
push 0x1000
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x10009dc8
add esi, 0xfff
jmp 0x10009e0d
cmp byte [esi], 0xe8
jne 0x10009e0d
lea ecx, [esi + 5]
add ecx, dword [esi + 1]
cmp dword [0x1011e368], ecx
jae 0x10009e0d
cmp dword [0x1011e370], ecx
jbe 0x10009e0d
mov eax, dword [ebp - 0x44]
cmp edi, eax
je 0x10009dfb
nop word [eax + eax]
cmp dword [edi], ecx
je 0x10009dfb
add edi, 4
cmp edi, eax
jne 0x10009df0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.1000b6b0
mov edi, dword [ebp - 0x48]
inc esi
cmp esi, dword [0x1011e370]
jb 0x10009db0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.1000b630
add esp, 8
push 0x10
push 0x1000
push str.LunaHook32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.10086d20
mov ecx, dword [ebp - 0x54]
add esp, 0x10
mov edi, dword [ebp - 0x50]
mov eax, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], edi
cmp eax, edi
je 0x10009eca
mov esi, dword [ebp - 0x3c]
nop word [eax + eax]
mov edx, dword [eax]
cmp edx, esi
jbe 0x10009e6b
cmp edx, dword [ebp - 0x38]
jb 0x10009e72
add eax, 4
cmp eax, edi
jne 0x10009e60
cmp eax, edi
je 0x10009eca
lea edx, [eax + 4]
mov dword [ebp - 0x24], 0
mov esi, edi
sub esi, edx
add esi, 3
shr esi, 2
cmp edx, edi
cmova esi, dword [ebp - 0x24]
mov dword [ebp - 0x24], esi
test esi, esi
mov esi, 0
je 0x10009ebf
mov edi, dword [ebp - 0x24]
nop
mov ecx, dword [edx]
cmp ecx, dword [ebp - 0x3c]
jbe 0x10009eac
cmp ecx, dword [ebp - 0x38]
jb 0x10009eb1
mov dword [eax], ecx
add eax, 4
inc esi
add edx, 4
cmp esi, edi
jne 0x10009ea0
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
cmp eax, edi
cmovne edi, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x50], edi
mov eax, edi
sub eax, ecx
sar eax, 2
mov esi, eax
mov dword [ebp - 0x1c], eax
shl esi, 4
push 4
sub esi, eax
push 0x1000
add esi, esi
push esi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 0x10125098
push 0x40
push esi
push eax
mov dword [ebp - 0x24], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0x1c], eax
jbe 0x1000a033
mov eax, dword [ebp - 0x24]
xor edi, edi
mov dword [ebp - 0x18], eax
nop dword [eax]
lea ecx, [ebp - 0x2c]
push ecx
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + edi*4]
call fcn.100710e0
test eax, eax
je 0x10009f6c
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x20], esi
je 0x10009f56
mov dword [esi], edi
add esi, 4
mov dword [ebp - 0x5c], esi
jmp 0x10009f6c
lea eax, [ebp - 0x28]
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.100091d0
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
push dword [eax + edi*4]
call fcn.100713b0
mov ecx, dword [ebp - 0x18]
movups xmm0, xmmword [0x1011e300]
movups xmmword [ecx], xmm0
movq xmm0, qword [0x1011e310]
movq qword [ecx + 0x10], xmm0
mov eax, dword [0x1011e318]
mov dword [ecx + 0x18], eax
mov ax, word [0x1011e31c]
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + edi*4]
mov dword [ecx + 3], eax
mov eax, dword [ebp - 0x2c]
mov dword [ecx + 0x19], eax
mov eax, 0x68db8bad
imul edi
mov ecx, edi
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x9c4
sub ecx, eax
jne 0x1000a017
mov eax, dword [ebp - 0x1c]
sub esp, 8
movd xmm1, edi
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, qword [0x100ef0f0]
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100eedb0]
divsd xmm1, xmm0
addsd xmm1, qword [0x100ef0e8]
movsd qword [esp], xmm1
push str.___f___
call fcn.10004dc0
add esp, 0xc
mov eax, dword [ebp - 0x18]
inc edi
add eax, 0x1e
mov dword [ebp - 0x18], eax
cmp edi, dword [ebp - 0x1c]
jb 0x10009f30
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
sub esi, ecx
xor edx, edx
sar esi, 2
mov eax, edi
mov dword [ebp - 0x1c], edx
test esi, esi
je 0x1000a07c
mov eax, esi
sub eax, edx
mov eax, dword [ecx + eax*4 - 4]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + eax*4]
mov ecx, edi
lea edx, [eax + 4]
sub ecx, edx
push ecx
push edx
push eax
call fcn.100bc6a0
mov edx, dword [ebp - 0x1c]
add edi, 0xfffffffc
mov ecx, dword [ebp - 0x18]
inc edx
add esp, 0xc
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x1c], edx
mov eax, edi
cmp edx, esi
jb 0x1000a043
mov dword [ebp - 0x14], edi
mov esi, eax
sub esi, dword [ebp - 0x10]
mov eax, esi
sar eax, 2
push eax
push str.____zd_
call fcn.10004dc0
add esp, 8
call fcn.10071000
push 0x100ef010
call fcn.10004dc0
mov eax, 0x10624dd3
imul dword [0x1011e350]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.____d_
call fcn.10004dc0
add esp, 0xc
push dword [0x1011e350]
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esi + 3]
xor edx, edx
mov esi, dword [ebp - 0x10]
mov eax, esi
shr ecx, 2
cmp esi, edi
mov dword [ebp - 0x1c], eax
cmova ecx, edx
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x1000a109
xor edi, edi
push dword [eax]
call fcn.10071390
mov eax, dword [ebp - 0x1c]
inc edi
add eax, 4
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x2c]
jne 0x1000a0f0
mov edi, dword [ebp - 0x14]
call fcn.10071000
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, edi
mov dword [ebp - 0x1c], 0
sub eax, esi
xor ecx, ecx
add eax, 3
shr eax, 2
cmp esi, edi
mov edi, esi
cmova eax, ecx
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x1000a156
nop word [eax + eax]
push dword [edi]
call fcn.100713d0
mov eax, dword [ebp - 0x1c]
lea edi, [edi + 4]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x2c]
jne 0x1000a140
push 0x8000
push 0
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
call fcn.1000add0
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 3
test ecx, ecx
je 0x1000a1ad
mov eax, dword [ebp - 0x20]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x1000a1a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a4fa
push edx
push ecx
call fcn.100b9eff
add esp, 8
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x1000a447
mov eax, dword [ebp - 0x40]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x1000a1e9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a4ff
push edx
push ecx
call fcn.100b9eff
add esp, 8
jmp 0x1000a447
xor eax, eax
mov byte [0x10125164], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x58], eax
push dword [0x10124ff4]
xor esi, esi
mov byte [ebp - 4], 5
push str.____zd_
or edi, 0xffffffff
mov dword [ebp - 0x24], esi
call fcn.10004dc0
mov ecx, dword [0x10124ff0]
add esp, 8
mov eax, dword [ecx]
cmp eax, ecx
je 0x1000a276
nop word [eax + eax]
mov esi, dword [eax + 0x10]
mov edx, esi
movq xmm0, qword [eax + 8]
cmp edi, esi
mov eax, dword [eax]
cmovb edx, edi
movq qword [ebp - 0x6c], xmm0
cmp dword [ebp - 0x24], esi
mov edi, edx
cmova esi, dword [ebp - 0x24]
mov dword [ebp - 0x24], esi
cmp eax, ecx
jne 0x1000a250
push esi
push edi
push str._p__p
call fcn.10004dc0
push dword [0x1011e370]
push dword [0x1011e368]
push str._p__p
call fcn.10004dc0
mov edi, dword [0x10124ff0]
add esp, 0x18
mov esi, dword [edi]
cmp esi, edi
je 0x1000a3bc
nop dword [eax + eax]
movq xmm0, qword [esi + 8]
mov edx, dword [esi + 0x10]
movq qword [ebp - 0x6c], xmm0
cmp edx, dword [0x1011e370]
ja 0x1000a3ad
cmp edx, dword [0x1011e368]
jb 0x1000a3ad
mov eax, dword [ebp - 0x68]
inc dword [ebp - 0x14]
push 0
sub esp, 0x28
mov ecx, esp
mov dword [ecx], vtable.std::_Func_impl_no_alloc_class_std::_Binder_struct_std::_Unforced__bool____cdecl___struct__CONTEXT___unsigned_int__unsigned_int__enum_JITTYPE___struct_std::_Ph_1__const___unsigned_int_const___unsigned_int___enum_JITTYPE____bool__struct__CONTEXT__.0
mov dword [ecx + 4], 0x1000b1f0
mov dword [ecx + 8], eax
mov al, byte [ebp - 0x70]
mov dword [ecx + 0xc], edx
mov edx, dword [ebp - 0x6c]
mov dword [ecx + 0x10], edx
mov byte [ecx + 0x14], al
push edx
mov dword [ecx + 0x24], ecx
call fcn.1006cf20
add esp, 0x30
test al, al
je 0x1000a344
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x20], eax
je 0x1000a331
mov dword [eax], ecx
mov dword [eax + 4], edx
add eax, 8
mov dword [ebp - 0x5c], eax
jmp 0x1000a344
lea ecx, [ebp - 0x3c]
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.100092e0
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x14]
mov eax, 0x68db8bad
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x9c4
sub ecx, eax
jne 0x1000a3ad
mov eax, dword [0x10124ff4]
sub esp, 8
movd xmm1, dword [ebp - 0x14]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, qword [0x100ef0f0]
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100eedb0]
divsd xmm1, xmm0
addsd xmm1, qword [0x100ef0e8]
movsd qword [esp], xmm1
push str.___f___
call fcn.10004dc0
add esp, 0xc
mov esi, dword [esi]
cmp esi, edi
jne 0x1000a2b0
mov esi, dword [ebp - 0x60]
jmp 0x1000a3be
xor esi, esi
push dword [ebp - 0x14]
push str.____zd_
call fcn.10004dc0
mov eax, 0x10624dd3
imul dword [0x1011e350]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.____d_
call fcn.10004dc0
add esp, 0x10
push dword [0x1011e350]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [0x10125164], 1
call fcn.1000add0
mov byte [ebp - 4], 1
test esi, esi
je 0x1000a445
mov eax, dword [ebp - 0x20]
sub eax, esi
sar eax, 3
lea ecx, [eax*8]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000a43b
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a504
push ecx
push esi
call fcn.100b9eff
add esp, 8
xor esi, esi
mov byte [ebp - 4], 0
test esi, esi
je 0x1000a486
mov eax, dword [ebp - 0x4c]
sub eax, esi
sar eax, 2
lea ecx, [eax*4]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000a47c
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a509
push ecx
push esi
call fcn.100b9eff
add esp, 8
push 0x10c96c20
mov dword [ebp - 4], 6
call fcn.1008daf5
add esp, 4
test eax, eax
je 0x1000a4a7
push eax
call fcn.1008dcf0
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x10c96c50
call fcn.100ba0da
add esp, 4
cmp dword [0x10c96c50], 0xffffffff
jne 0x10009a5c
push 2
push 0x10c96c20
call fcn.1008daaf
push 0x100eaae0
call fcn.100b9d71
push 0x10c96c50
call fcn.100ba090
add esp, 0x10
jmp 0x10009a5c
call fcn.100c51d9
call fcn.100c51d9
call fcn.100c51d9
call fcn.100c51d9
int3