Function at 0x140044870
Capabilities:
Create thread
Delete file
Log keystrokes via application hook

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x250
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
mov rax, qword [0x1400d9040]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov rsi, rcx
xor r13d, r13d
lea rcx, str.IGLOO.exe.temp
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
lea ecx, [r13 + 1]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, eax
lea eax, [rbx - 0x12c]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
lea eax, [rcx - 0x1f4]
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov dword [rbp + 0x10], 0x50
mov dword [rbp + 0x14], 0x40
lea rax, [fcn.140047d40]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], r13
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rbp + 0x28], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea edx, [r13 + 0x66]
call qword [sym.imp.USER32.dll_LoadIconA]
mov qword [rbp + 0x30], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x38], xmm0
mov qword [rbp + 0x48], r13
lea r14, str.IGLOO
mov qword [rbp + 0x50], r14
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea edx, [r13 + 0x66]
call qword [sym.imp.USER32.dll_LoadIconA]
mov qword [rbp + 0x58], rax
lea rcx, [rsi + 0x20]
movups xmm0, xmmword [rbp + 0x10]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rbp + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rbp + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rbp + 0x50]
movups xmmword [rcx + 0x40], xmm0
call qword [sym.imp.USER32.dll_RegisterClassExW]
mov qword [rsp + 0x58], r13
mov rax, qword [rsi + 0x38]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x38], 0x1f4
mov dword [rsp + 0x30], 0x12c
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], edi
mov r9d, 0x80000028
mov r8, r14
mov rdx, qword [rsi + 0x60]
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [rsi], rax
mov dword [rsp + 0x30], 3
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
lea rdx, [r13 - 1]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, qword [rsi]
call qword [sym.imp.USER32.dll_SetFocus]
movdqa xmm0, xmmword [0x1400c70d0]
movdqu xmmword [rbp + 0xc0], xmm0
lea rdx, [rbp + 0xc0]
mov rcx, qword [rsi]
call qword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
mov rdi, qword [rsi]
lea ecx, [r13 + 0x20]
call qword [sym.imp.d3d9.dll_Direct3DCreate9]
mov qword [rsi + 0x70], rax
lea rbx, [rsi + 0x78]
test rax, rax
je 0x140044b08
mov qword [rsi + 0x80], r13
mov qword [rsi + 0x8c], r13
mov qword [rsi + 0x9c], r13
mov dword [rsi + 0xa4], r13d
mov qword [rsi + 0xb4], r13
mov dword [rsi + 0xa8], 1
mov dword [rsi + 0x98], 1
mov dword [rsi + 0x94], r13d
mov dword [rsi + 0x88], 0x15
mov dword [rsi + 0xac], 1
mov dword [rsi + 0xb0], 0x50
mov dword [rsi + 0xbc], 0x80000000
mov rcx, rax
mov rax, qword [rax]
mov r10, qword [rax + 0x80]
lea rax, [rsi + 0x80]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x44
mov r9, rdi
xor edx, edx
lea r8d, [r13 + 1]
call r10
test eax, eax
jns 0x140044b8f
mov rcx, qword [rbx]
test rcx, rcx
je 0x140044b19
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx], r13
mov rcx, qword [rsi + 0x70]
test rcx, rcx
je 0x140044b2c
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsi + 0x70], r13
mov rdx, qword [rsi + 0x38]
mov rcx, qword [rsi + 0x60]
call qword [sym.imp.USER32.dll_UnregisterClassW]
xor al, al
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140097960
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov edx, 1
mov rcx, qword [rsi]
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [rsi]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rdi, qword [0x14014bec0]
mov ecx, 0x6260
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
mov r8, qword [0x14014bec0]
test r8, r8
je 0x140044c27
mov r10d, dword [r8 + 0x3f60]
movsx rax, word [r8 + 0x60d0]
lea rdx, [r8 + 0x60d4]
lea rdx, [rdx + rax*8]
cmp dword [rdx], r10d
je 0x140044c1c
lea ecx, [rax + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60d0], cx
movsx rax, cx
lea rdx, [r8 + 0x60d4]
lea rdx, [rdx + rax*8]
mov dword [rdx], r10d
mov dword [rdx + 4], r13d
inc word [rdx + 4]
inc dword [r8 + 0x60c8]
mov qword [rbp + 0xa0], r9
lea rax, [rsp + 0x60]
mov qword [rbp], rax
mov qword [rbp + 0xb0], r9
test r9, r9
je 0x140044c4f
xor edx, edx
mov rcx, r9
call fcn.140048770
jmp 0x140044c52
mov rax, r13
mov qword [0x14014bec0], rax
call fcn.14004cd50
test rdi, rdi
je 0x140044c6c
mov qword [0x14014bec0], rdi
jmp 0x140044c73
mov rdi, qword [0x14014bec0]
mov qword [rdi + 0x20], r13
mov qword [rdi + 0x28], r13
or dword [rdi + 8], 3
xor ecx, ecx
call fcn.14006bad0
mov rcx, qword [rsi]
call fcn.1400759d0
mov r14, qword [rbx]
mov rbx, qword [0x14014bec0]
mov ecx, 0x28
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, rax
mov r9, qword [0x14014bec0]
test r9, r9
je 0x140044d13
mov r10d, dword [r9 + 0x3f60]
movsx r11, word [r9 + 0x60d0]
lea rdx, [r9 + 0x60d4]
lea rdx, [rdx + r11*8]
cmp dword [rdx], r10d
je 0x140044d08
lea ecx, [r11 + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r9 + 0x60d0], cx
movsx rax, cx
lea rdx, [r9 + 0x60d4]
lea rdx, [rdx + rax*8]
mov dword [rdx], r10d
mov dword [rdx + 4], r13d
inc word [rdx + 4]
inc dword [r9 + 0x60c8]
test r8, r8
je 0x140044d39
mov qword [r8], r13
mov qword [r8 + 8], r13
mov qword [r8 + 0x10], r13
mov qword [r8 + 0x18], r13
mov dword [r8 + 0x20], 0x1388
mov dword [r8 + 0x24], 0x2710
jmp 0x140044d3c
mov r8, r13
mov qword [rbx + 0x98], r8
lea rax, str.imgui_impl_dx9
mov qword [rbx + 0x88], rax
or dword [rbx + 0xc], 8
mov qword [r8], r14
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
xorps xmm12, xmm12
movups xmmword [rbp + 0x10], xmm12
movups xmmword [rbp + 0x20], xmm12
movups xmmword [rbp + 0x30], xmm12
movups xmmword [rbp + 0x40], xmm12
movups xmmword [rbp + 0x50], xmm12
movups xmmword [rbp + 0x60], xmm12
mov byte [rbp + 0x1c], 1
mov dword [rbp + 0x54], 0x7f7fffff
mov dword [rbp + 0x64], 0x3f800000
mov r15d, 0xffff
mov word [rbp + 0x68], r15w
mov byte [rbp + 0x30], 0
mov dword [rbp + 0x28], 5
mov dword [rbp + 0x2c], 5
mov dword [rbp + 0x60], 0x3f99999a
lea r14, [0x1400c59c8]
mov qword [rbp + 0x48], r14
movaps xmm11, xmmword [rbp + 0x10]
movaps xmmword [rsp + 0x70], xmm11
movaps xmm10, xmmword [rbp + 0x20]
movaps xmmword [rbp - 0x80], xmm10
movaps xmm9, xmmword [rbp + 0x30]
movaps xmmword [rbp - 0x70], xmm9
movaps xmm8, xmmword [rbp + 0x40]
movaps xmmword [rbp - 0x60], xmm8
movaps xmm7, xmmword [rbp + 0x50]
movaps xmmword [rbp - 0x50], xmm7
movaps xmm6, xmmword [rbp + 0x60]
movaps xmmword [rbp - 0x40], xmm6
movaps xmmword [rbp - 0x30], xmm12
movaps xmmword [rbp - 0x20], xmm12
movaps xmmword [rbp - 0x10], xmm12
lea rbx, str.OTTO
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x78], 0x24b84
mov dword [rbp - 0x7c], 0x41700000
mov qword [rbp - 0x58], r14
lea rdx, [rsp + 0x70]
mov rcx, qword [rdi + 0x38]
call fcn.1400702d0
mov qword [0x14014be60], rax
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rbp - 0x80], xmm10
movaps xmmword [rbp - 0x70], xmm9
movaps xmmword [rbp - 0x60], xmm8
movaps xmmword [rbp - 0x50], xmm7
movaps xmmword [rbp - 0x40], xmm6
movaps xmmword [rbp - 0x30], xmm12
movaps xmmword [rbp - 0x20], xmm12
movaps xmmword [rbp - 0x10], xmm12
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x78], 0x24b84
mov dword [rbp - 0x7c], 0x42200000
mov qword [rbp - 0x58], r14
lea rdx, [rsp + 0x70]
mov rcx, qword [rdi + 0x38]
call fcn.1400702d0
mov qword [0x14014be88], rax
xorps xmm6, xmm6
movups xmmword [rbp + 0x10], xmm6
movups xmmword [rbp + 0x20], xmm6
movups xmmword [rbp + 0x30], xmm6
movups xmmword [rbp + 0x50], xmm6
movups xmmword [rbp + 0x60], xmm6
mov byte [rbp + 0x1c], 1
mov dword [rbp + 0x28], 2
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x54], 0x7f7fffff
mov dword [rbp + 0x60], 0x3f800000
mov dword [rbp + 0x64], 0x3f800000
mov word [rbp + 0x68], r15w
mov byte [rbp + 0x58], 1
mov byte [rbp + 0x30], 1
mov r12, qword [rdi + 0x38]
mov ecx, 0x286ac
call fcn.14004e870
mov r15, rax
lea rax, [0x1400a1d90]
mov qword [0x14014c038], rax
lea r14, [r15 + 0x286ac]
mov qword [0x14014c040], r14
mov qword [0x14014c048], r15
mov qword [0x14014c050], r15
lea rbx, [0x1400a1da0]
mov rcx, rbx
call fcn.1400740a0
cmp rax, rbx
je 0x140044f53
cmp qword [0x14014c050], r14
ja 0x140044f4c
mov rbx, rax
mov rcx, rax
call fcn.1400740a0
cmp rax, rbx
jne 0x140044f33
lea rbx, [0x1400a1da0]
movaps xmm7, xmmword [rbp + 0x10]
movaps xmmword [rsp + 0x70], xmm7
movaps xmm8, xmmword [rbp + 0x20]
movaps xmm9, xmmword [rbp + 0x30]
movaps xmm10, xmmword [rbp + 0x50]
movaps xmm11, xmmword [rbp + 0x60]
mov byte [rsp + 0x7c], 1
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rbp - 0x80], xmm8
movaps xmmword [rbp - 0x70], xmm9
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm10
movaps xmmword [rbp - 0x40], xmm11
movaps xmmword [rbp - 0x30], xmm6
movaps xmmword [rbp - 0x20], xmm6
movaps xmmword [rbp - 0x10], xmm6
mov qword [rsp + 0x70], r15
mov dword [rsp + 0x78], 0x286ac
mov dword [rbp - 0x7c], 0x41c80000
lea rax, [0x1400c59e0]
mov qword [rbp - 0x58], rax
lea rdx, [rsp + 0x70]
mov rcx, r12
call fcn.1400702d0
mov qword [0x14014be50], rax
mov r12, qword [rdi + 0x38]
mov ecx, 0x286ac
call fcn.14004e870
mov r15, rax
lea rax, [0x1400a1d90]
mov qword [0x14014c038], rax
lea r14, [r15 + 0x286ac]
mov qword [0x14014c040], r14
mov qword [0x14014c048], r15
mov qword [0x14014c050], r15
mov rcx, rbx
call fcn.1400740a0
cmp rax, rbx
je 0x140045040
nop
cmp qword [0x14014c050], r14
ja 0x140045039
mov rbx, rax
mov rcx, rax
call fcn.1400740a0
cmp rax, rbx
jne 0x140045020
lea rbx, [0x1400a1da0]
movaps xmmword [rsp + 0x70], xmm7
mov byte [rsp + 0x7c], 1
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rbp - 0x80], xmm8
movaps xmmword [rbp - 0x70], xmm9
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm10
movaps xmmword [rbp - 0x40], xmm11
movaps xmmword [rbp - 0x30], xmm6
movaps xmmword [rbp - 0x20], xmm6
movaps xmmword [rbp - 0x10], xmm6
mov qword [rsp + 0x70], r15
mov dword [rsp + 0x78], 0x286ac
mov dword [rbp - 0x7c], 0x41900000
lea rax, [0x1400c59e0]
mov qword [rbp - 0x58], rax
lea rdx, [rsp + 0x70]
mov rcx, r12
call fcn.1400702d0
mov qword [0x14014be48], rax
mov r12, qword [rdi + 0x38]
mov ecx, 0x286ac
call fcn.14004e870
mov r15, rax
lea rax, [0x1400a1d90]
mov qword [0x14014c038], rax
lea r14, [r15 + 0x286ac]
mov qword [0x14014c040], r14
mov qword [0x14014c048], r15
mov qword [0x14014c050], r15
mov rcx, rbx
call fcn.1400740a0
cmp rax, rbx
je 0x140045113
cmp qword [0x14014c050], r14
ja 0x14004510c
mov rbx, rax
mov rcx, rax
call fcn.1400740a0
cmp rax, rbx
jne 0x1400450f3
lea rbx, [0x1400a1da0]
movaps xmmword [rsp + 0x70], xmm7
mov byte [rsp + 0x7c], 1
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rbp - 0x80], xmm8
movaps xmmword [rbp - 0x70], xmm9
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm10
movaps xmmword [rbp - 0x40], xmm11
movaps xmmword [rbp - 0x30], xmm6
movaps xmmword [rbp - 0x20], xmm6
movaps xmmword [rbp - 0x10], xmm6
mov qword [rsp + 0x70], r15
mov dword [rsp + 0x78], 0x286ac
mov dword [rbp - 0x7c], 0x41600000
lea rax, [0x1400c59e0]
mov qword [rbp - 0x58], rax
lea rdx, [rsp + 0x70]
mov rcx, r12
call fcn.1400702d0
mov qword [0x14014be78], rax
mov r15, qword [rdi + 0x38]
mov ecx, 0x286ac
call fcn.14004e870
mov r14, rax
lea rax, [0x1400a1d90]
mov qword [0x14014c038], rax
lea rdi, [r14 + 0x286ac]
mov qword [0x14014c040], rdi
mov qword [0x14014c048], r14
mov qword [0x14014c050], r14
mov rcx, rbx
call fcn.1400740a0
cmp rax, rbx
je 0x1400451df
cmp qword [0x14014c050], rdi
ja 0x1400451df
mov rbx, rax
mov rcx, rax
call fcn.1400740a0
cmp rax, rbx
jne 0x1400451c6
movaps xmmword [rsp + 0x70], xmm7
mov byte [rsp + 0x7c], 1
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rbp - 0x80], xmm8
movaps xmmword [rbp - 0x70], xmm9
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm10
movaps xmmword [rbp - 0x40], xmm11
movaps xmmword [rbp - 0x30], xmm6
movaps xmmword [rbp - 0x20], xmm6
movaps xmmword [rbp - 0x10], xmm6
mov qword [rsp + 0x70], r14
mov dword [rsp + 0x78], 0x286ac
mov dword [rbp - 0x7c], 0x41200000
lea rax, [0x1400c59e0]
mov qword [rbp - 0x58], rax
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.1400702d0
call fcn.1400096d0
mov byte [rsi + 0x19], al
mov ecx, 8
call fcn.140097980
mov qword [rax], rsi
mov qword [rbp + 0xb0], rax
lea rcx, [rbp + 8]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r13d
mov r9, rax
lea r8, [0x140048280]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp], rax
test rax, rax
je 0x1400452dd
cmp dword [rbp + 8], 0
je 0x1400452d1
movaps xmm0, xmmword [rbp]
movdqa xmmword [rbp + 0xb0], xmm0
lea rcx, [rbp + 0xb0]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x1400452d1
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x140047ce0]
lea ecx, [rax + 0xd]
call qword [sym.imp.USER32.dll_SetWindowsHookExA]
mov qword [rsi + 0xc8], rax
mov al, 1
jmp 0x140044b3c
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 8], r13d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3