Function at 0x10007720
Capabilities:
Check for software breakpoints
Execute shellcode via indirect call

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b216c
mov eax, dword fs:[0]
push eax
push ecx
push ebx
sub esp, 0x660
mov eax, dword [0x100dad00]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x628], edi
mov eax, dword fs:[0x2c]
mov edx, dword [0x10c5500c]
mov dword [ebp - 0x634], 0
mov edx, dword [eax + edx*4]
mov eax, dword [0x10c50b3c]
cmp eax, dword [edx + 4]
jg 0x100083f3
push 0x10c50b0c
mov dword [ebp - 0x674], 0x10c50b0c
call fcn.1008ab1d
add esp, 4
test eax, eax
jne 0x10008435
mov eax, dword [0x10c50b38]
cmp eax, 0x7fffffff
je 0x1000843c
mov eax, dword [ebp - 0x628]
mov esi, 0x100da0c0
mov dword [0x100da385], 0x10008ad0
xorps xmm0, xmm0
cmp dword [edi + 0x28], 0
mov ecx, 0xa0
mov dword [ebp - 4], 0
cmovne esi, edi
sub esp, 8
mov edi, 0x100dedf0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x38]
movsd qword [esp], xmm0
push str.initializing_hook_search___f___
mov dword [0x100dee28], eax
call fcn.10004080
mov edi, dword [0x100dee24]
add esp, 0xc
mov edx, 0x208
xor ecx, ecx
mov byte [ebp - 4], 1
mov eax, edi
mov dword [0x100df074], edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [ebp - 0x628], ecx
call fcn.100a20ee
mov esi, eax
add esp, 4
mov dword [ebp - 0x63c], esi
test esi, esi
je 0x100078a8
push dword [ebp - 0x628]
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, edi
dec edi
test eax, eax
je 0x100078a0
push 0x1f4
lea eax, [esi + 0x10]
mov dword [esi], 0
push 0
push eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
call sub.msvcrt.dll_memset
add esp, 0xc
add esi, 0x208
jmp 0x10007863
mov eax, dword [ebp - 0x63c]
jmp 0x100078aa
xor eax, eax
mov ecx, dword [0x100df070]
or dword [ebp - 0x634], 1
mov dword [0x100df070], eax
test ecx, ecx
je 0x100078f4
push ecx
call fcn.100a20f7
add esp, 4
jmp 0x100078f4
cmp dword [0x100df070], 0
mov edx, 0x208
mov dword [ebp - 4], 0
jne 0x10007917
mov edi, dword [0x100dee24]
test edi, edi
jne 0x10007820
xor esi, esi
xor edi, edi
mov dword [ebp - 0x620], esi
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x644], edi
mov dword [ebp - 0x650], esi
mov dword [ebp - 0x640], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov byte [ebp - 4], 3
cmp word [0x100dee48], di
je 0x10007a3c
push 0x10
push 0x1000
push 0x100dee48
call esi
push eax
lea eax, [ebp - 0x62c]
push eax
call fcn.10083df0
mov eax, dword [0x100dee10]
add esp, 0x10
test eax, eax
jne 0x100079ed
mov esi, dword [0x100dee38]
mov eax, esi
mov ecx, dword [ebp - 0x62c]
cmp ecx, esi
mov edx, dword [ebp - 0x628]
cmova eax, ecx
mov dword [ebp - 0x61c], esi
cmp eax, edx
jae 0x100079a2
cmp ecx, esi
jbe 0x100079b0
mov esi, ecx
jmp 0x100079a4
mov esi, edx
mov dword [0x100dee38], esi
mov dword [ebp - 0x61c], esi
mov esi, dword [0x100dee40]
cmp edx, esi
mov eax, esi
cmovb eax, edx
cmp eax, ecx
jbe 0x100079d9
mov ecx, dword [ebp - 0x61c]
cmp edx, esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
jae 0x10007a42
mov dword [0x100dee40], edx
jmp 0x10007a42
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x100dee40], ecx
mov ecx, dword [ebp - 0x61c]
jmp 0x10007a42
cmp eax, 1
jne 0x10007a3c
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ebp - 0x628]
sub edx, ecx
cmp dword [0x100dee38], edx
mov esi, edx
cmovb esi, dword [0x100dee38]
add esi, ecx
cmp dword [0x100dee40], edx
mov dword [ebp - 0x61c], esi
cmovb edx, dword [0x100dee40]
add edx, ecx
mov dword [0x100dee38], esi
mov ecx, esi
mov dword [0x100dee40], edx
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
jmp 0x10007a42
mov ecx, dword [0x100dee38]
cmp word [0x100def38], 0
je 0x10007aba
push 0x100def38
call esi
push eax
lea eax, [ebp - 0x668]
push eax
call fcn.100085b0
mov ecx, eax
add esp, 8
lea eax, [ebp - 0x648]
cmp eax, ecx
je 0x10007aa9
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x648], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x644], edi
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x640], eax
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
lea ecx, [ebp - 0x668]
call fcn.100076a0
mov ecx, dword [0x100dee38]
cmp word [0x100dee48], 0
je 0x10007b21
push 0x100dee48
call esi
push eax
lea eax, [ebp - 0x668]
push eax
call fcn.100085b0
lea eax, [ebp - 0x668]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x648]
push eax
call fcn.10008e20
add esp, 0x10
lea ecx, [ebp - 0x668]
call fcn.100076a0
mov eax, dword [ebp - 0x640]
mov edi, dword [ebp - 0x644]
mov ecx, dword [0x100dee38]
mov dword [ebp - 0x650], eax
mov eax, dword [ebp - 0x648]
mov dword [ebp - 0x620], eax
xor eax, eax
xor esi, esi
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x65c], eax
mov dword [ebp - 0x658], esi
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x654], eax
mov edx, dword [0x100dee14]
mov byte [ebp - 4], 5
test edx, edx
jne 0x10007da8
push dword [0x100dee40]
movzx eax, word [0x100dee18]
push ecx
push 0x10
push eax
lea eax, [ebp - 0x668]
push 0x100dedf0
push eax
call fcn.100840b0
mov ecx, eax
add esp, 0x18
lea eax, [ebp - 0x65c]
cmp eax, ecx
jne 0x10007d40
lea ecx, [ebp - 0x668]
call fcn.100076a0
xor edx, edx
mov ecx, edx
mov dword [ebp - 0x634], edx
cmp ecx, esi
je 0x10007c00
mov eax, dword [ebp - 0x620]
nop dword [eax]
mov ecx, dword [ecx]
push ecx
push edi
push eax
mov dword [ebp - 0x628], ecx
mov dword [ebp - 0x63c], ecx
call fcn.1008b050
cmp eax, edi
jne 0x10007be7
cmp edi, dword [ebp - 0x650]
je 0x10007f2a
mov eax, dword [ebp - 0x628]
mov dword [edi], eax
add edi, 4
mov dword [ebp - 0x644], edi
mov eax, dword [ebp - 0x620]
mov ecx, dword [ebp - 0x634]
add ecx, 4
mov dword [ebp - 0x634], ecx
cmp ecx, esi
jne 0x10007bb0
push 0x10
push 0x1000
push str.LunaHook32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
lea eax, [ebp - 0x670]
push eax
call fcn.10083df0
mov ecx, dword [ebp - 0x620]
add esp, 0x10
mov eax, ecx
cmp eax, edi
je 0x10007c74
mov edx, dword [ebp - 0x670]
mov esi, dword [eax]
cmp esi, edx
jbe 0x10007c42
cmp esi, dword [ebp - 0x66c]
jb 0x10007c49
add eax, 4
cmp eax, edi
jne 0x10007c34
cmp eax, edi
je 0x10007c74
lea edx, [eax + 4]
cmp edx, edi
je 0x10007c72
mov esi, dword [edx]
cmp esi, dword [ebp - 0x670]
jbe 0x10007c66
cmp esi, dword [ebp - 0x66c]
jb 0x10007c6b
mov dword [eax], esi
add eax, 4
add edx, 4
cmp edx, edi
jne 0x10007c54
cmp eax, edi
cmovne edi, eax
mov eax, edi
mov dword [ebp - 0x644], edi
sub eax, ecx
sar eax, 2
mov esi, eax
mov dword [ebp - 0x630], 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 0x100ded20
push 0x40
push esi
push eax
mov dword [ebp - 0x63c], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [ebp - 0x628], ecx
mov dword [ebp - 0x668], ecx
mov dword [ebp - 0x664], esi
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x660], eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x630], eax
jbe 0x1000806d
mov eax, dword [ebp - 0x63c]
xor edi, edi
mov dword [ebp - 0x624], eax
nop word [eax + eax]
lea ecx, [ebp - 0x638]
push ecx
push eax
mov eax, dword [ebp - 0x620]
push dword [eax + edi*4]
call fcn.1007be50
test eax, eax
je 0x10007f85
mov dword [ebp - 0x628], edi
cmp esi, dword [ebp - 0x634]
je 0x10007f60
mov dword [esi], edi
add esi, 4
mov dword [ebp - 0x664], esi
jmp 0x10007f85
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x65c], eax
mov eax, dword [ecx + 8]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
lea ecx, [ebp - 0x668]
mov dword [ebp - 0x658], esi
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x654], eax
call fcn.100076a0
mov edx, dword [ebp - 0x61c]
mov ecx, edx
cmp edx, esi
je 0x10007b97
mov eax, dword [0x100dee1c]
add dword [ecx], eax
add ecx, 4
cmp ecx, esi
jne 0x10007d95
jmp 0x10007b97
cmp edx, 1
jne 0x10007e5a
cmp ecx, dword [0x100dee40]
jae 0x10007b95
lea edi, [ecx + 4]
jmp 0x10007dd6
mov eax, dword [ebp - 0x64c]
mov ecx, dword [edi - 4]
cmp ecx, 0xcccccccc
je 0x10007de9
cmp ecx, 0x90909090
jne 0x10007e31
mov cl, byte [edi]
cmp cl, 0xcc
je 0x10007e31
cmp cl, 0x90
je 0x10007e31
mov dword [ebp - 0x628], edi
cmp esi, eax
je 0x10007e0c
mov dword [esi], edi
add esi, 4
mov dword [ebp - 0x658], esi
jmp 0x10007e31
lea eax, [ebp - 0x628]
push eax
push esi
lea ecx, [ebp - 0x65c]
call fcn.10007480
mov eax, dword [ebp - 0x654]
mov esi, dword [ebp - 0x658]
mov dword [ebp - 0x64c], eax
inc edi
lea eax, [edi - 4]
cmp eax, dword [0x100dee40]
jb 0x10007dd0
mov edi, dword [ebp - 0x65c]
mov dword [ebp - 0x61c], edi
mov edi, dword [ebp - 0x644]
mov edx, dword [ebp - 0x61c]
jmp 0x10007b97
cmp edx, 2
jne 0x10007b95
mov edx, ecx
mov dword [ebp - 0x624], ecx
cmp edx, dword [0x100dee40]
jae 0x10007b95
xor edi, edi
nop dword [eax]
cmp byte [edx], 0xe8
jne 0x10007f00
mov eax, dword [edx + 1]
add eax, 5
add eax, edx
mov dword [ebp - 0x628], eax
cmp ecx, eax
jae 0x10007f00
cmp dword [0x100dee40], eax
jbe 0x10007f00
push eax
push esi
push dword [ebp - 0x61c]
call fcn.1008b050
mov eax, dword [ebp - 0x628]
mov dword [ebp - 0x628], eax
cmp esi, edi
je 0x10007ec9
mov dword [esi], eax
add esi, 4
mov dword [ebp - 0x658], esi
jmp 0x10007ef4
lea eax, [ebp - 0x628]
push eax
push esi
lea ecx, [ebp - 0x65c]
call fcn.10007480
mov ecx, dword [ebp - 0x65c]
mov edi, dword [ebp - 0x654]
mov esi, dword [ebp - 0x658]
mov dword [ebp - 0x61c], ecx
mov edx, dword [ebp - 0x624]
mov ecx, dword [0x100dee38]
inc edx
mov dword [ebp - 0x624], edx
cmp edx, dword [0x100dee40]
jb 0x10007e80
mov edx, dword [ebp - 0x61c]
mov dword [ebp - 0x64c], edi
mov edi, dword [ebp - 0x644]
jmp 0x10007b97
lea eax, [ebp - 0x63c]
push eax
push edi
lea ecx, [ebp - 0x648]
call fcn.10007480
mov eax, dword [ebp - 0x640]
mov edi, dword [ebp - 0x644]
mov dword [ebp - 0x650], eax
mov eax, dword [ebp - 0x648]
mov dword [ebp - 0x620], eax
jmp 0x10007bed
lea eax, [ebp - 0x628]
push eax
push esi
lea ecx, [ebp - 0x668]
call fcn.10007480
mov eax, dword [ebp - 0x660]
mov esi, dword [ebp - 0x664]
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x620]
push dword [eax + edi*4]
call fcn.1007c110
mov ecx, dword [ebp - 0x624]
movups xmm0, xmmword [0x100da378]
movups xmmword [ecx], xmm0
movq xmm0, qword [0x100da388]
movq qword [ecx + 0x10], xmm0
mov eax, dword [0x100da390]
mov dword [ecx + 0x18], eax
mov ax, word [0x100da394]
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x620]
mov eax, dword [eax + edi*4]
mov dword [ecx + 3], eax
mov eax, dword [ebp - 0x638]
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 0x1000803f
mov eax, dword [ebp - 0x630]
sub esp, 8
movd xmm1, edi
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mulsd xmm1, qword [0x100bf1b8]
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100befb0]
divsd xmm1, xmm0
addsd xmm1, qword [0x100bf1b0]
movsd qword [esp], xmm1
push str.initializing_hook_search___f___
call fcn.10004080
add esp, 0xc
mov eax, dword [ebp - 0x624]
inc edi
add eax, 0x1e
mov dword [ebp - 0x624], eax
cmp edi, dword [ebp - 0x630]
jb 0x10007d00
mov ecx, dword [ebp - 0x668]
mov edi, dword [ebp - 0x644]
mov dword [ebp - 0x628], ecx
sub esi, ecx
sar esi, 2
test esi, esi
je 0x100080bc
lea eax, [esi - 1]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x630], eax
mov eax, dword [eax]
mov ecx, dword [ebp - 0x620]
lea edx, [ecx + eax*4]
mov eax, edi
lea ecx, [edx + 4]
sub eax, ecx
push eax
push ecx
push edx
call sub.msvcrt.dll_memmove
mov eax, dword [ebp - 0x630]
add esp, 0xc
sub eax, 4
sub edi, 4
mov dword [ebp - 0x630], eax
sub esi, 1
jne 0x10008082
mov dword [ebp - 0x644], edi
mov esi, dword [ebp - 0x620]
mov eax, edi
sub eax, esi
sar eax, 2
push eax
push str.initialized_hook_search_with__zd_hooks
call fcn.10004080
add esp, 8
call fcn.1007bd80
push str.starting_hook_search
call fcn.10004080
mov eax, 0x10624dd3
imul dword [0x100dee20]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.please_click_around_in_the_game_to_force_it_to_process_text_during_the_next__d_seconds
call fcn.10004080
add esp, 0xc
push dword [0x100dee20]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, esi
mov dword [ebp - 0x638], eax
cmp eax, edi
je 0x10008135
push dword [esi]
call fcn.1007c0f0
add esi, 4
cmp esi, edi
jne 0x10008121
mov esi, dword [ebp - 0x620]
call fcn.1007bd80
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, edi
je 0x1000815e
nop dword [eax]
push dword [esi]
call fcn.1007c130
add esi, 4
cmp esi, edi
jne 0x10008150
mov eax, dword [0x100dee24]
sub eax, dword [0x100df074]
push eax
push str.hook_search_finished___d_results_found
call fcn.10004080
mov esi, dword [0x100df070]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x624], edx
add esp, 8
cmp dword [0x100dee24], ecx
jle 0x100082bc
xor edi, edi
mov dword [ebp - 0x638], edi
nop dword [eax + eax]
mov eax, dword [edi + esi]
or eax, dword [edi + esi + 4]
je 0x1000829d
inc ecx
mov eax, 0x14f8b589
imul ecx
mov dword [ebp - 0x630], ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x186a0
sub ecx, eax
jne 0x100081e8
push dword [ebp - 0x630]
push str._d_results_processed
call fcn.10004080
mov esi, dword [0x100df070]
add esp, 8
push 0x5f8
lea eax, [ebp - 0x618]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [edi + esi + 0xc]
add esp, 0xc
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x498], 3
mov dword [ebp - 0x494], 0
mov eax, dword [edi + esi]
mov ecx, dword [edi + esi + 4]
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x614], ecx
mov eax, dword [edi + esi + 8]
mov dword [ebp - 0x488], eax
mov eax, dword [0x100dee28]
mov dword [ebp - 0x490], eax
mov eax, dword [0x100df068]
test eax, eax
je 0x1000825f
lea ecx, [ebp - 0x618]
push ecx
call eax
mov esi, dword [0x100df070]
add esp, 4
lea eax, [esi + 0x10]
mov ecx, 0x17e
add eax, edi
lea esi, [ebp - 0x618]
push eax
sub esp, 0x5f8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.100044c0
mov esi, dword [0x100df070]
add esp, 0x5fc
mov edi, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x630]
mov edx, dword [ebp - 0x624]
inc edx
add edi, 0x208
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x638], edi
cmp edx, dword [0x100dee24]
jl 0x100081a0
mov dword [0x100df070], 0
test esi, esi
je 0x100082d3
push esi
call fcn.100a20f7
add esp, 4
push 0x8000
push 0
push dword [ebp - 0x63c]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov edx, dword [ebp - 0x628]
xor eax, eax
mov ecx, 0xb71a9
mov edi, 0x10697dc0
xorps xmm0, xmm0
mov esi, 0x100df078
movlpd qword [0x100df078], xmm0
rep stosd dword es:[edi], eax
mov ecx, 0x16e350
mov edi, 0x100df080
rep movsd dword es:[edi], dword [esi]
test edx, edx
je 0x1000834d
mov ecx, dword [ebp - 0x634]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x10008343
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10008449
push ecx
push edx
call fcn.100a20af
add esp, 8
mov edx, dword [ebp - 0x61c]
test edx, edx
je 0x1000838a
mov ecx, dword [ebp - 0x64c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x10008380
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10008449
push ecx
push edx
call fcn.100a20af
add esp, 8
mov ecx, dword [ebp - 0x620]
test ecx, ecx
je 0x100083c7
mov edx, dword [ebp - 0x650]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x100083bd
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10008449
push edx
push ecx
call fcn.100a20af
add esp, 8
push dword [ebp - 0x674]
call fcn.1008ab2e
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.100a20bd
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x10c50b3c
call fcn.100a2178
add esp, 4
cmp dword [0x10c50b3c], 0xffffffff
jne 0x10007797
push 2
push 0x10c50b0c
call fcn.1008ab01
push 0x100b8b50
call fcn.100a1f22
push 0x10c50b3c
call fcn.100a2127
add esp, 0x10
jmp 0x10007797
push 5
call fcn.1008ae5a
dec eax
push 6
mov dword [0x10c50b38], eax
call fcn.1008ae5a
call fcn.100a35a0
int3