joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180003be0
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x180055880]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor esi, esi
mov r14d, edx
mov rbx, rcx
mov qword [rcx], rsi
mov qword [rcx + 8], rsi
xor edx, edx
mov ebp, r8d
lea ecx, [rsi + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180003d0a
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x180003d01
nop word [rax + rax]
cmp dword [rsp + 0x20], 0x10
jb 0x180003ce4
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x180003ce4
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x180003ce4
mov rdx, qword [rbx]
test rdx, rdx
jne 0x180003ca2
mov dword [rbx + 8], 0x80
mov r8d, 0x200
mov rcx, qword [0x180055d08]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
mov rdx, rax
test rax, rax
je 0x180003d01
jmp 0x180003cd7
mov eax, dword [rbx + 8]
cmp dword [rbx + 0xc], eax
jb 0x180003cd7
mov rcx, qword [0x180055d08]
lea r9d, [rax + rax]
mov r8, rdx
shl r9, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x180003d01
mov eax, dword [rbx + 8]
add eax, eax
mov qword [rbx], rdx
mov dword [rbx + 8], eax
mov ecx, dword [rbx + 0xc]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rbx + 0xc]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rdi
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x180003c50
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], rsi
je 0x180003d63
cmp dword [rbx + 0xc], esi
jbe 0x180003d63
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rbx]
xor edx, edx
mov eax, esi
lea ecx, [rdx + 0x5a]
mov r8d, dword [r8 + rax*4]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rdi, rax
test rax, rax
je 0x180003d5c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, ebp
mov edx, r14d
mov rcx, rdi
call fcn.1800040e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, dword [rbx + 0xc]
jb 0x180003d20
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180042860
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x180004290
Capabilities:
Resume thread

Disassembly:
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rdi, rcx
je 0x1800042ff
mov qword [rsp + 0x30], rbx
xor ebx, ebx
cmp dword [rcx + 0xc], ebx
jbe 0x1800042e8
mov qword [rsp + 0x38], rsi
mov r8, qword [rdi]
xor edx, edx
mov r8d, dword [r8 + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x1800042dc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
cmp ebx, dword [rdi + 0xc]
jb 0x1800042b0
mov rsi, qword [rsp + 0x38]
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x180055d08]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x180004d30
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r9, qword [rcx]
mov r10d, 0x270
mov ecx, dword [r9]
cmp ecx, r10d
jne 0x180004d91
lea r8, [r9 + 8]
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x180004d50
mov ecx, dword [r9]
jmp 0x180004e78
cmp ecx, 0x4e0
jb 0x180004e78
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0xe3
mov eax, r11d
mov r11d, dword [r10 + 4]
mov edx, eax
lea r10, [r10 + 4]
xor edx, r11d
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x630]
xor ecx, edx
mov dword [r10 - 0x9c4], ecx
sub rbx, 1
jne 0x180004db0
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop dword [rax + rax]
mov eax, r11d
mov r11d, dword [r10 + 4]
mov edx, eax
lea r10, [r10 + 4]
xor edx, r11d
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 - 0xd50]
xor ecx, edx
mov dword [r10 - 0x9c4], ecx
sub rbx, 1
jne 0x180004e00
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret
Function at 0x180005a70
Capabilities:
Check for software breakpoints

Disassembly:
sub rsp, 0x28
mov r11, rcx
cmp rcx, 0xf
jae 0x180005a90
lea rcx, str._failsafe__find_func_start_got_too_small_address._n
call fcn.180001570
xor eax, eax
add rsp, 0x28
ret
xor r9d, r9d
xor eax, eax
xor r8b, r8b
xor r10b, r10b
nop dword [rax + rax]
cmp eax, 2
jl 0x180005aaa
test r10b, r10b
je 0x180005adf
movzx edx, byte [rcx]
cmp dl, 0xcc
jne 0x180005ab7
xor r8b, r8b
jmp 0x180005acd
cmp eax, 1
jle 0x180005af0
test r8b, r8b
jne 0x180005af0
cmp dl, 0xc3
jne 0x180005af0
mov r8b, 1
movzx r10d, r8b
mov edx, 1
dec r9d
add eax, edx
dec rcx
cmp eax, 3
jl 0x180005aa0
inc rax
movsxd rcx, r9d
add rax, r11
add rax, rcx
add rsp, 0x28
ret
xor r8b, r8b
xor eax, eax
dec r9d
dec rcx
jmp 0x180005aa0

Function at 0x180006100
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov r9, rax
cmp rbx, 0x989680
jne 0x180006125
imul rax, r9, 0x64
jmp 0x1800061a0
cmp rbx, 0x16e3600
jne 0x180006182
movabs r10, 0xb2f4fc0794908cf3
mov rax, r10
imul r9
mov rax, r10
lea r8, [r9 + rdx]
sar r8, 0x18
mov rcx, r8
shr rcx, 0x3f
add r8, rcx
imul rcx, r8, 0x16e3600
sub r9, rcx
imul rcx, r9, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x18000619d
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
mov dword [0x180054304], eax
lea r9, [0x180054304]
mov edx, eax
mov ecx, 1
mov r8d, edx
shr r8d, 0x1e
xor r8d, edx
imul edx, r8d, 0x6c078965
add edx, ecx
mov dword [r9 + rcx*4], edx
inc rcx
cmp rcx, 0x270
jb 0x1800061b4
mov rdx, rax
mov dword [0x180054300], 0x270
lea rcx, str.set_random_seed:__lld_n
add rsp, 0x20
pop rbx
jmp fcn.180001570
Function at 0x180009430
Capabilities:
Terminate process

Disassembly:
sub rsp, 0x28
mov r8, qword [0x180055db0]
mov edx, 0xfffffffc
mov rcx, qword [0x180055c78]
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
xor ecx, ecx
call fcn.180004020
test eax, eax
je 0x1800094a7
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov r9d, 0x40012
lea r8, str.Internal
mov rcx, rax
lea rdx, str.Hooks_could_not_be_reverted
call qword [sym.imp.USER32.dll_MessageBoxW]
sub eax, 3
je 0x180009487
cmp eax, 1
jne 0x1800094a7
jmp 0x18000949c
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
je 0x180009487
xor ecx, ecx
call fcn.180004020
test eax, eax
jne 0x180009458
add rsp, 0x28
ret
Function at 0x18000f430
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x180055880]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x180055e10]
mov esi, edx
mov edi, ecx
cmp byte [rbx + 0x1fb5], 0
jne 0x18000f497
cmp byte [rbx + 0x1fb6], 0
jne 0x18000f497
mov r9d, dword [rbx + 0x2ff8]
lea r8, str.Tooltip__02d
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.180013640
test sil, 1
je 0x18000f5c9
jmp 0x18000f52f
movss xmm1, dword [rbx + 0x1614]
lea r8, str.Tooltip__02d
movaps xmm0, xmm1
lea rcx, [rsp + 0x20]
mulss xmm0, dword [0x1800477dc]
xor eax, eax
mov edx, 0x10
mulss xmm1, dword [0x1800477d0]
addss xmm0, dword [rbx + 0x130]
addss xmm1, dword [rbx + 0x134]
or dword [rbx + 0x1b38], 1
mov qword [rbx + 0x1b50], rax
movss dword [rbx + 0x1b48], xmm0
mov dword [rbx + 0x1b3c], 1
movss dword [rbx + 0x1b4c], xmm1
movss xmm0, dword [rbx + 0x1670]
mov rax, qword [0x180055e10]
mulss xmm0, dword [0x180047788]
or dword [rax + 0x1b38], 0x40
movss dword [rax + 0x1b98], xmm0
mov r9d, dword [rbx + 0x2ff8]
call fcn.180013640
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x18000f580
lea r11, [0x180047050]
nop
cmp r9b, 0x23
jne 0x18000f563
cmp byte [r8], r9b
jne 0x18000f563
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x18000f550
not ecx
call fcn.1800123c0
test rax, rax
je 0x18000f5c9
cmp byte [rax + 0x86], 0
je 0x18000f5c9
mov byte [rax + 0x8d], 1
lea r8, str.Tooltip__02d
mov dword [rax + 0xa4], 1
lea rcx, [rsp + 0x20]
inc dword [rbx + 0x2ff8]
mov edx, 0x10
mov r9d, dword [rbx + 0x2ff8]
call fcn.180013640
or edi, 0x20c0347
lea rcx, [rsp + 0x20]
mov r8d, edi
xor edx, edx
call fcn.18000cea0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180042860
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret

Function at 0x180012440
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rcx
mov r10d, 0xffffffff
mov ecx, r10d
movzx r9d, byte [rax]
lea r8, [rax + 1]
test r9b, r9b
je 0x180012490
lea r11, [0x180047050]
cmp r9b, 0x23
jne 0x180012473
cmp byte [r8], r9b
jne 0x180012473
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x180012460
not ecx
jmp fcn.1800123c0

Function at 0x180012dc0
Capabilities:
Hash data with crc32

Disassembly:
movsxd rax, dword [rcx + 0xc8]
mov r9, r8
mov r8, qword [rcx + 0xd0]
mov r10, rdx
xor ecx, ecx
mov rdx, r9
sub rdx, r10
test r9, r9
mov r8d, dword [r8 + rax*4 - 4]
cmove rdx, rcx
mov rcx, r10
jmp fcn.180013790
Function at 0x180013790
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, r8d
mov r10, rdx
not r11d
mov r9, rcx
mov eax, r11d
test rdx, rdx
je 0x1800137ed
lea rbx, [0x180047050]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
dec r10
cmp r8b, 0x23
jne 0x1800137d4
cmp r10, 2
jb 0x1800137d4
cmp byte [r9], r8b
jne 0x1800137d4
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
xor rdx, r8
shr eax, 8
xor eax, dword [rbx + rdx*4]
test r10, r10
jne 0x1800137b0
not eax
mov rbx, qword [rsp + 8]
ret
movzx r8d, byte [rcx]
inc r9
test r8b, r8b
je 0x18001382f
lea rbx, [0x180047050]
cmp r8b, 0x23
jne 0x180013813
cmp byte [r9], r8b
jne 0x180013813
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
movzx ecx, r8b
movzx r8d, byte [r9]
xor rdx, rcx
shr eax, 8
inc r9
xor eax, dword [rbx + rdx*4]
test r8b, r8b
jne 0x180013800
mov rbx, qword [rsp + 8]
not eax
ret
Function at 0x1800141b0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x70
xor eax, eax
lea r8, [0x18004761d]
mov dword [rsp + 0x2c], eax
lea r11, [0x180047050]
mov qword [rsp + 0x38], rax
mov r10d, 0xffffffff
mov qword [rsp + 0x60], rax
mov rbx, rcx
lea rax, str.Window
mov edx, r10d
mov qword [rsp + 0x20], rax
mov r9b, 0x57
cmp r9b, 0x23
jne 0x180014206
cmp byte [r8], r9b
jne 0x180014206
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
movzx r9d, byte [r8]
xor rcx, rax
shr edx, 8
inc r8
xor edx, dword [r11 + rcx*4]
test r9b, r9b
jne 0x1800141f3
mov ecx, dword [rbx + 0x304c]
lea rax, [0x18001f3e0]
mov edi, dword [rbx + 0x3048]
not edx
mov qword [rsp + 0x30], rax
lea rax, [0x18001f550]
mov qword [rsp + 0x40], rax
lea rax, [0x18001f470]
mov qword [rsp + 0x48], rax
lea rax, [0x18001f290]
mov qword [rsp + 0x50], rax
lea rax, [0x18001f640]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x28], edx
cmp edi, ecx
jne 0x180014334
inc edi
test ecx, ecx
je 0x18001428a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18001428f
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x180014334
mov rax, qword [0x180055e10]
mov qword [rsp + 0x80], rsi
test rax, rax
je 0x1800142b6
inc dword [rax + 0x3bc]
mov rdx, qword [0x180055e20]
movsxd rax, edi
lea rcx, [rax + rax*8]
shl rcx, 3
call qword [0x180055690]
mov rdx, qword [rbx + 0x3050]
mov rsi, rax
test rdx, rdx
je 0x18001431f
movsxd rcx, dword [rbx + 0x3048]
lea r8, [rcx + rcx*8]
mov rcx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x3050]
test rcx, rcx
je 0x180014312
mov rax, qword [0x180055e10]
test rax, rax
je 0x180014312
dec dword [rax + 0x3bc]
mov rdx, qword [0x180055e20]
call qword [0x180055698]
mov qword [rbx + 0x3050], rsi
mov rsi, qword [rsp + 0x80]
mov dword [rbx + 0x304c], edi
movsxd rax, dword [rbx + 0x3048]
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
lea rcx, [rax + rax*8]
mov rax, qword [rbx + 0x3050]
movups xmmword [rax + rcx*8], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rax + rcx*8 + 0x10], xmm1
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [rax + rcx*8 + 0x20], xmm0
movsd xmm0, qword [rsp + 0x60]
movups xmmword [rax + rcx*8 + 0x30], xmm1
movsd qword [rax + rcx*8 + 0x40], xmm0
inc dword [rbx + 0x3048]
mov byte [rbx], 1
mov rbx, qword [rsp + 0x88]
add rsp, 0x70
pop rdi
ret
Function at 0x1800151e0
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], r9
push rbx
sub rsp, 0x40
mov rbx, qword [0x180055e10]
cmp byte [rbx + 0x3068], 0
je 0x1800152c5
cmp qword [rbx + 0x3070], 0
mov qword [rax - 0x18], rsi
lea rsi, [rax + 0x10]
mov qword [rax - 0x20], rdi
lea rdi, [rbx + 0x3078]
je 0x1800152ad
mov ecx, dword [rdi + 4]
mov qword [rax - 0x10], rbp
xor ebp, ebp
test ecx, ecx
jns 0x180015252
mov eax, ecx
cdq
sub eax, edx
mov edx, ebp
sar eax, 1
add eax, ecx
mov rcx, rdi
test eax, eax
cmovg edx, eax
call fcn.18001ff20
mov dword [rdi], ebp
mov r8, rsi
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
call fcn.18001f9d0
mov eax, dword [rdi]
lea rcx, [0x180055e18]
mov r9, qword [rbx + 0x3070]
test eax, eax
lea edx, [rax - 1]
mov rax, qword [rbx + 0x3080]
cmove edx, ebp
test rax, rax
movsxd r8, edx
mov edx, 1
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
add rsp, 0x40
pop rbx
ret
mov rdx, rcx
mov r8, rsi
mov rcx, rdi
call fcn.18001f9d0
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
add rsp, 0x40
pop rbx
ret
Function at 0x18001cd50
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x20
mov rax, qword [0x180055e10]
mov rbx, rcx
xor ecx, ecx
mov dword [rax + 0x3034], ecx
test rbx, rbx
je 0x18001cdbf
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x38], rdi
call fcn.18001cdd0
lea rdx, [0x1800476e8]
mov rcx, rbx
mov rdi, rax
call fcn.1800134f0
mov rbx, rax
test rax, rax
je 0x18001cdba
mov r8, qword [rsp + 0x30]
mov r9, rax
mov edx, 1
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret

Function at 0x18001e690
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
sub rsp, 0x20
mov rbx, qword [0x180055e10]
cmp byte [rbx + 0x3031], 0
jne 0x18001e7e9
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18001e7e2
lea rdx, [0x180046a24]
mov qword [rsp + 0x38], rdi
call fcn.1800134f0
mov rdi, rax
test rax, rax
je 0x18001e7dd
mov qword [rsp + 0x40], r14
mov rcx, rax
mov qword [rsp + 0x30], rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov r14d, eax
cmp eax, 0xffffffff
je 0x18001e7ca
xor edx, edx
mov rcx, rdi
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x18001e7ca
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rbp, eax
cmp ebp, 0xffffffff
je 0x18001e7ca
xor r8d, r8d
mov edx, r14d
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x18001e7ca
mov r14, rbp
cmp rbp, 0xffffffffffffffff
je 0x18001e7ca
mov rax, qword [0x180055e10]
test rax, rax
je 0x18001e759
inc dword [rax + 0x3bc]
mov rdx, qword [0x180055e20]
mov rcx, r14
call qword [0x180055690]
mov rbp, rax
test rax, rax
je 0x18001e7ca
mov r9, rdi
mov r8, r14
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rcx, rdi
cmp rax, r14
je 0x18001e795
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
jmp 0x18001e7a6
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rdx, r14
mov rcx, rbp
call fcn.180014d00
mov rax, qword [0x180055e10]
test rax, rax
je 0x18001e7b8
dec dword [rax + 0x3bc]
mov rdx, qword [0x180055e20]
mov rcx, rbp
call qword [0x180055698]
jmp 0x18001e7d3
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rbp, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov byte [rbx + 0x3031], 1
movss xmm0, dword [rbx + 0x3034]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x18001e82c
subss xmm0, dword [rbx + 0x18]
comiss xmm1, xmm0
movss dword [rbx + 0x3034], xmm0
jb 0x18001e82c
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18001e81b
call fcn.18001cd50
jmp 0x18001e822
mov byte [rbx + 0x3a4], 1
mov dword [rbx + 0x3034], 0
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rsi
ret
Function at 0x180022f70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test r9d, 0xff000000
je 0x180023101
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
movss xmm3, dword [rsp + 0x70]
xorps xmm0, xmm0
comiss xmm3, xmm0
mov edi, r9d
mov rsi, r8
mov rbp, rdx
mov rbx, rcx
jbe 0x180022fe0
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call fcn.180026300
mov r8d, dword [rbx + 0x80]
mov r9d, edi
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
call fcn.180020af0
mov dword [rbx + 0x80], 0
jmp 0x1800230ed
mov edx, 6
movaps xmmword [rsp + 0x30], xmm6
lea r8d, [rdx - 2]
call fcn.1800268a0
movzx edx, word [rbx + 0x48]
mov rax, qword [rbx + 0x38]
movss xmm1, dword [rsi]
movss xmm2, dword [rbp + 4]
movss xmm3, dword [rbp]
lea ecx, [rdx + 1]
movss xmm6, dword [rax + 4]
movss xmm5, dword [rax]
movss xmm4, dword [rsi + 4]
mov rax, qword [rbx + 0x58]
mov word [rax], dx
mov rax, qword [rbx + 0x58]
mov word [rax + 2], cx
lea ecx, [rdx + 2]
mov rax, qword [rbx + 0x58]
mov word [rax + 4], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 6], dx
add dx, 3
mov rax, qword [rbx + 0x58]
mov word [rax + 8], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 0xa], dx
movsd xmm0, qword [rbp]
mov rax, qword [rbx + 0x50]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 8], xmm5
movss dword [rax + 0xc], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x10], edi
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x14], xmm1
movss dword [rax + 0x18], xmm2
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x1c], xmm5
movss dword [rax + 0x20], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x24], edi
movsd xmm0, qword [rsi]
mov rax, qword [rbx + 0x50]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x30], xmm5
movss dword [rax + 0x34], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x38], edi
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x3c], xmm3
movss dword [rax + 0x40], xmm4
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x44], xmm5
movss dword [rax + 0x48], xmm6
mov rax, qword [rbx + 0x50]
movaps xmm6, xmmword [rsp + 0x30]
mov dword [rax + 0x4c], edi
add qword [rbx + 0x50], 0x50
add dword [rbx + 0x48], 4
add qword [rbx + 0x58], 0xc
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x1800411f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x180055880]
xor rax, rsp
mov qword [rsp + 0x48], rax
call fcn.180012e40
mov rcx, qword [0x180055e70]
lea rdx, [rsp + 0x28]
mov rdi, rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [rsp + 0x30]
sub ecx, dword [rsp + 0x28]
movd xmm1, ecx
mov ecx, dword [rsp + 0x34]
sub ecx, dword [rsp + 0x2c]
cvtdq2ps xmm1, xmm1
movd xmm0, ecx
lea rcx, [rsp + 0x40]
cvtdq2ps xmm0, xmm0
movss dword [rdi + 8], xmm1
movss dword [rdi + 0xc], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x40]
xorps xmm1, xmm1
sub rax, qword [0x180055e78]
xorps xmm0, xmm0
cvtsi2ss xmm0, qword [0x180055e80]
mov ecx, 0x11
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rdi + 0x10], xmm1
mov rax, qword [rsp + 0x40]
mov qword [0x180055e78], rax
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x10
and al, 1
mov byte [rdi + 0x140], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x12
and al, 1
mov byte [rdi + 0x141], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x143], 0
mov byte [rdi + 0x142], al
call fcn.180012e40
cmp byte [rax + 0x39b], 0
lea rbx, [rax + 0x128]
je 0x18004131d
cvttss2si ecx, dword [rbx]
lea rdx, [rsp + 0x38]
cvttss2si eax, dword [rax + 0x12c]
mov dword [rsp + 0x38], ecx
mov rcx, qword [0x180055e70]
mov dword [rsp + 0x3c], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rbx], 0xff7fffff
mov dword [rbx + 4], 0xff7fffff
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x18004138e
mov rdx, qword [0x180055e70]
cmp rax, rdx
je 0x18004134e
mov rcx, rax
call qword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x18004138e
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x18004138e
mov rcx, qword [0x180055e70]
lea rdx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x18004138e
movd xmm0, dword [rsp + 0x20]
movd xmm1, dword [rsp + 0x24]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx], xmm0
movss dword [rbx + 4], xmm1
cmp byte [rdi + 0xc0], 0
je 0x18004139e
mov eax, 0xffffffff
jmp 0x1800413a3
call fcn.180012ef0
cmp dword [0x180055854], eax
je 0x1800413b6
mov dword [0x180055854], eax
call fcn.1800416c0
call fcn.1800413e0
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.180042860
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret