joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400a69f0
Capabilities:
Get common file path

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x250
mov rax, qword [0x1400ea040]
xor rax, rsp
mov qword [rsp + 0x248], rax
mov sil, 1
cmp qword [0x1400fb2e8], 0
je 0x1400a6a36
mov rcx, qword [rsp + 0x248]
xor rcx, rsp
call fcn.140058180
mov eax, esi
add rsp, 0x250
pop rbx
pop rdi
pop rsi
ret
mov rdi, qword [0x1400fb2f0]
test rdi, rdi
jne 0x1400a6b03
mov ecx, 0x18
call fcn.140056d40
mov rdi, rax
lea rbx, [rsp + 0x40]
mov r8d, 0x208
mov rcx, rbx
mov dl, 0xaa
call fcn.140089530
xor ecx, ecx
mov rdx, rbx
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movaps xmm0, xmmword [0x1400cd960]
movups xmmword [rdi], xmm0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rdi + 0x10], rax
mov rcx, rdi
mov rdx, rbx
call fcn.14001a750
movsx rax, byte [rdi + 0x17]
mov rcx, rdi
test rax, rax
jns 0x1400a6ab0
mov rax, qword [rdi + 8]
mov rcx, qword [rdi]
test rax, rax
je 0x1400a6ae7
add rax, rax
test rax, rax
je 0x1400a6ae7
lea rdx, [rax - 2]
cmp word [rcx + rax - 2], 0x5c
mov rax, rdx
jne 0x1400a6ab8
cmp rdx, 0xfffffffffffffffe
je 0x1400a6ae7
sar rdx, 1
inc rdx
mov rcx, rdi
mov r8, 0xffffffffffffffff
call fcn.14001d210
lea rdx, str.debug.log
mov r8d, 9
mov rcx, rdi
call fcn.1400233c0
mov qword [0x1400fb2f0], rdi
test byte [0x1400ec478], 1
je 0x1400a6a19
cmp byte [rdi + 0x17], 0
jns 0x1400a6b19
mov rdi, qword [rdi]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
mov rcx, rdi
mov edx, 4
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [0x1400fb2e8], rax
inc rax
cmp rax, 1
ja 0x1400a6a19
lea rdi, [rsp + 0x40]
mov r8d, 0x208
mov rcx, rdi
mov dl, 0xaa
call fcn.140089530
mov word [rdi], 0
mov ecx, 0x104
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add eax, 0xfffffefb
cmp eax, 0xfffffefc
jb 0x1400a6c55
mov rcx, qword [0x1400fb2f0]
lea rdx, [rsp + 0x40]
call fcn.140023390
mov rcx, qword [0x1400fb2f0]
movsx rax, byte [rcx + 0x17]
test rax, rax
js 0x1400a6c5c
test al, al
je 0x1400a6c6d
mov rdx, rcx
cmp word [rdx + rax*2 - 2], 0x5c
je 0x1400a6be7
lea rdx, [0x1400ce05e]
mov r8d, 1
call fcn.1400233c0
mov rcx, qword [0x1400fb2f0]
lea rdx, str.debug.log
mov r8d, 9
call fcn.1400233c0
mov rcx, qword [0x1400fb2f0]
cmp byte [rcx + 0x17], 0
jns 0x1400a6c09
mov rcx, qword [rcx]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
mov edx, 4
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [0x1400fb2e8], rax
inc rax
cmp rax, 1
ja 0x1400a6a19
mov qword [0x1400fb2e8], 0
xor esi, esi
jmp 0x1400a6a19
mov rax, qword [rcx + 8]
test rax, rax
je 0x1400a6c6d
mov rdx, qword [rcx]
jmp 0x1400a6bc6
ud2
Function at 0x1400bd8b0
Capabilities:
Write file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test rdx, rdx
je 0x1400bd8c3
cmp dword [0x140102150], ecx
jle 0x1400bd8ca
add rsp, 0x28
pop rdi
pop rsi
ret
mov rsi, rdx
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
movsxd rdi, eax
mov rcx, rsi
mov rdx, rdi
call fcn.1400bd910
test edi, edi
je 0x1400bd8c3
cmp byte [rsi + rdi - 1], 0xa
je 0x1400bd8c3
lea rcx, [0x1400cda85]
mov edx, 1
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.1400bd910

Function at 0x1400bd910
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x1400ea040]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rbx, rax
add rsi, rdi
lea r14, [rsp + 0x34]
mov r15, qword [sym.imp.KERNEL32.dll_WriteFile]
cmp rdi, rsi
jae 0x1400bd987
mov dword [rsp + 0x34], 0
mov r8d, esi
sub r8d, edi
mov qword [rsp + 0x20], 0
mov rcx, rbx
mov rdx, rdi
mov r9, r14
call r15
mov ecx, dword [rsp + 0x34]
test eax, eax
cmovne eax, ecx
je 0x1400bd987
add rdi, rax
test ecx, ecx
jne 0x1400bd94d
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140058180
nop
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
Function at 0x2edd090
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x2edd09d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x2edd0ad
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x2edd095
lea eax, [rcx + 1]
jmp 0x2edd0bb
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x2edd0ce
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x2edd0b4
sub eax, 3
jb 0x2edd0ee
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x2edd13d
sar eax, 1
movsxd rbp, eax
jb 0x2edd124
jmp 0x2edd0fc
add ebx, ebx
jne 0x2edd0fa
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x2edd124
inc ecx
add ebx, ebx
jne 0x2edd10a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x2edd124
call r11
adc ecx, ecx
add ebx, ebx
jne 0x2edd11d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x2edd10c
add ecx, 2
jmp 0x2edd129
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.02edd052
jmp 0x2edd09d
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x2ab4000]
mov eax, dword [rdi]
or eax, eax
je 0x2edd199
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x2add000]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x2edd149
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x2edd193
mov qword [rbx], rax
add rbx, 8
jmp 0x2edd169
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x2edd1dd
cmp al, 0xef
ja 0x2edd1c5
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x2edd1a5
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
or eax, eax
jne 0x2edd1b4
mov eax, dword [rdi]
add rdi, 4
jmp 0x2edd1b4
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x1af]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x2edd231
sub rsp, 0xffffffffffffff80
jmp 0x465b00
Function at 0x1800015f0
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
mov rdi, rcx
cmp dword [rcx + 0xc], ebx
jbe 0x18000163c
mov rax, qword [rdi]
xor edx, edx
mov r8d, dword [rax + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x180001635
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 case.default.0x180001657
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x1801b9e08]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
add byte [rbp], dh
insb byte [rdi], dx
add byte [rcx], ah
jb 0x1800a53cb
add byte [r15], r13b
outsb dx, byte [rsi]
add byte [rax + rax + 0x73], dh
add byte [rbp], ah
jb 0x1800a53d9
jb 0x1800a53db
invalid
add eax, 0x550054f
push rcx
add eax, 0x5530552
push rsp
add eax, 0x5560555
push rdi
add eax, 0x5590558
pop rdx
add eax, 0x55c055b
pop rbp
add eax, 0x55f055e
invalid
pop rdi
invalid
invalid
add eax, 0x560055f
invalid
add eax, 0x5680567
imul eax, dword [0x185756553], 0x56d056c
outsb dx, byte [rsi]
add eax, 0x570056f
jno 0x1800a5ff6
jb 0x1800a5ff8
jae 0x1800a5ffa
je 0x1800a5ffc
add eax, 0x5760575
jne 0x1800a5ffe
add eax, 0x5770576
jbe 0x1800a6000
add eax, 0x5780577
ja 0x1800a6002
add eax, 0x5790578
js 0x1800a6004
add eax, 0x57a0579
jns 0x1800a6006
add eax, 0x57b057a
jp 0x1800a6008
add eax, 0x57c057b
jnp 0x1800a600a
add eax, 0x57d057c
jl 0x1800a600c
add eax, 0x57e057d
jge 0x1800a600e
add eax, 0x57f057e
jle 0x1800a6010
add eax, 0x580057f
add dword [0x1858d659b], 0x5850584
jg 0x1800a6012
add eax, 0x5810580
invalid
add byte [0x1858c6595], 0x83
add eax, 0x5850584
add eax, 0x5820581
add dword [0x1858f659e], 0xffffff86
add eax, 0x5880587
add eax, 0x5830582
test byte [0x1859065a0], al
xchg dword [0x1859365a9], eax
mov al, byte [0x1859665b2]
lea eax, [0x1859965bb]
nop
add eax, 0x5920591
xchg ebx, eax
add eax, 0x5950594
xchg esi, eax
add eax, 0x5980597
cdq
add eax, 0x59b059a
pushfq
add eax, 0x59e059d
lahf
add eax, 0x5a105a0
movabs byte [0xa605a505a405a305], al
add eax, 0x5a805a7
add eax, 0x5840583
test dword [0x1859165a3], eax
mov byte [0x1859465ac], al
mov eax, dword [0x1859765b5]
mov es, word [0x1859a65be]
xchg ecx, eax
add eax, 0x5930592
xchg esp, eax
add eax, 0x5960595
xchg edi, eax
add eax, 0x5990598
invalid
xchg byte [0x1859265a6], al
mov dword [0x1859565af], eax
mov word [0x1859865b8], es
pop qword [0x1859b65c1]
xchg edx, eax
add eax, 0x5940593
xchg ebp, eax
add eax, 0x5970596
cwde
add eax, 0x59a0599
wait
add eax, 0x59d059c
sahf
add eax, 0x5a0059f
movabs eax, dword [0xa505a405a305a205]
add eax, 0x5a705a6
test al, 5
test eax, 0xab05aa05
add eax, 0x5ad05ac
scasb al, byte [rdi]
add eax, 0x5b005af
mov cl, 5
mov dl, 5
mov bl, 5
mov ah, 5
mov ch, 5
mov dh, 5
mov bh, 5
mov eax, 0xba05b905
add eax, 0x5bc05bb
mov ebp, 0xbf05be05
add eax, 0x5c105c0
ret 0xc305
Function at 0x180001660
Capabilities:
Allocate or change rwx memory

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov dword [rax + 0x10], edx
push rdi
sub rsp, 0x20
mov eax, ecx
imul rdi, rax, 0x38
add rdi, qword [0x1801b9e20]
mov rdx, qword [rdi]
mov cl, byte [rdi + 0x20]
mov rsi, rdx
lea rbx, [rdx - 5]
and cl, 1
je 0x180001699
mov rsi, rbx
movzx eax, cl
lea r9, [rsp + 0x38]
test cl, cl
mov r8d, 0x40
cmove rbx, rdx
lea rbp, [rax*2 + 5]
mov rcx, rbx
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1800016cc
mov eax, 0xa
jmp 0x180001719
mov byte [rbx], 0xe9
mov eax, dword [rdi + 8]
sub eax, esi
sub eax, 5
mov dword [rbx + 1], eax
test byte [rdi + 0x20], 1
je 0x1800016e8
mov rax, qword [rdi]
mov word [rax], 0xf9eb
mov r8d, dword [rsp + 0x38]
lea r9, [rsp + 0x38]
mov rdx, rbp
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbp
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
or byte [rdi + 0x20], 6
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret

Function at 0x180001af0
Capabilities:
Check for software breakpoints

Disassembly:
mov r8b, byte [rcx]
mov r9d, edx
test r8b, r8b
je 0x180001b07
cmp r8b, 0x90
je 0x180001b07
cmp r8b, 0xcc
jne 0x180001b29
mov r10d, 1
mov edx, r10d
cmp r9d, r10d
jbe 0x180001b25
mov eax, edx
cmp byte [rax + rcx], r8b
jne 0x180001b29
add edx, r10d
cmp edx, r9d
jb 0x180001b15
mov eax, r10d
ret
xor eax, eax
ret
Function at 0x180001e90
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rdi, rcx
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r14, qword [rbp - 0x58]
cmp rdi, 0x40000000
jbe 0x180001eda
lea rax, [rdi - 0x40000000]
cmp r14, rax
cmovb r14, rax
mov rbx, qword [0x1801b9e18]
lea r12, [rdi + 0x40000000]
cmp qword [rbp - 0x50], r12
cmovbe r12, qword [rbp - 0x50]
sub r12, 0xfff
xor esi, esi
test rbx, rbx
je 0x180001f18
cmp rbx, r14
jb 0x180001f13
cmp rbx, r12
jae 0x180001f13
cmp qword [rbx + 8], rsi
jne 0x18000206f
mov rbx, qword [rbx]
jmp 0x180001efa
mov r15, rdi
cmp rdi, r14
jb 0x180001f9c
mov r13d, dword [rbp - 0x38]
xor edx, edx
mov rax, r15
div r13
sub r15, rdx
sub r15, r13
cmp r15, r14
jb 0x180001f93
mov r8d, 0x30
lea rdx, [rbp - 0x30]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x180001f93
cmp dword [rbp - 0x10], 0x10000
je 0x180001f63
mov r15, qword [rbp - 0x28]
cmp r15, r13
jb 0x180001f93
jmp 0x180001f2f
test r15, r15
je 0x180001f93
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jne 0x180002034
cmp r15, r14
jae 0x180001f20
test rbx, rbx
jne 0x180002034
cmp rdi, r12
ja 0x18000206f
mov r15d, dword [rbp - 0x38]
xor edx, edx
mov rax, rdi
mov r14d, r15d
div r15
mov eax, r15d
sub rax, rdx
add rax, rdi
mov rdi, rax
cmp rax, r12
ja 0x18000206f
mov r8d, 0x30
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18000206f
cmp dword [rbp - 0x10], 0x10000
je 0x18000200a
xor edx, edx
lea edi, [r15 - 1]
add rdi, qword [rbp - 0x18]
add rdi, qword [rbp - 0x30]
mov rax, rdi
div r14
sub rdi, rdx
cmp rdi, r12
jmp 0x180001fc3
test rdi, rdi
je 0x18000206f
mov edx, 0x1000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
jmp 0x180001f96
lea rcx, [rbx + 0x40]
mov dword [rbx + 0x10], esi
mov edx, 0x40
mov qword [rcx], rsi
mov rax, rcx
mov qword [rbx + 8], rcx
add rdx, 0x40
add rcx, 0x40
mov rsi, rax
cmp rdx, 0xfc0
jbe 0x180002040
mov rax, qword [0x1801b9e18]
mov qword [rbx], rax
mov qword [0x1801b9e18], rbx
lea r11, [rsp + 0x80]
mov rax, rbx
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x180010570
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x1801b8a28]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x1801b93f8]
mov esi, edx
mov edi, ecx
cmp byte [rbx + 0x1fc5], 0
jne 0x1800105d7
cmp byte [rbx + 0x1fc6], 0
jne 0x1800105d7
mov r9d, dword [rbx + 0x3008]
lea r8, str.Tooltip__02d
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.180014890
test sil, 1
je 0x180010709
jmp 0x18001066f
movss xmm1, dword [rbx + 0x1614]
lea r8, str.Tooltip__02d
movaps xmm0, xmm1
lea rcx, [rsp + 0x20]
mulss xmm0, dword [0x18004e6d8]
xor eax, eax
mov edx, 0x10
mulss xmm1, dword [0x18004e6c8]
addss xmm0, dword [rbx + 0x130]
addss xmm1, dword [rbx + 0x134]
or dword [rbx + 0x1b48], 1
mov qword [rbx + 0x1b60], rax
movss dword [rbx + 0x1b58], xmm0
mov dword [rbx + 0x1b4c], 1
movss dword [rbx + 0x1b5c], xmm1
movss xmm0, dword [rbx + 0x1680]
mov rax, qword [0x1801b93f8]
mulss xmm0, dword [0x18004f108]
or dword [rax + 0x1b48], 0x40
movss dword [rax + 0x1ba8], xmm0
mov r9d, dword [rbx + 0x3008]
call fcn.180014890
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x1800106c0
lea r11, [0x18004e9e0]
nop
cmp r9b, 0x23
jne 0x1800106a3
cmp byte [r8], r9b
jne 0x1800106a3
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 0x180010690
not ecx
call fcn.1800134e0
test rax, rax
je 0x180010709
cmp byte [rax + 0x86], 0
je 0x180010709
mov byte [rax + 0x8d], 1
lea r8, str.Tooltip__02d
mov dword [rax + 0xa4], 1
lea rcx, [rsp + 0x20]
inc dword [rbx + 0x3008]
mov edx, 0x10
mov r9d, dword [rbx + 0x3008]
call fcn.180014890
or edi, 0x20c0347
lea rcx, [rsp + 0x20]
mov r8d, edi
xor edx, edx
call fcn.18000df80
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180049c80
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret

Function at 0x180013560
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 0x1800135b0
lea r11, [0x18004e9e0]
cmp r9b, 0x23
jne 0x180013593
cmp byte [r8], r9b
jne 0x180013593
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 0x180013580
not ecx
jmp fcn.1800134e0

Function at 0x180013f40
Capabilities:
Hash data with crc32

Disassembly:
mov rax, qword [rcx + 0xd0]
mov r9, r8
movsxd r8, dword [rcx + 0xc8]
mov r10, rdx
xor ecx, ecx
mov rdx, r9
sub rdx, r10
test r9, r9
mov r8d, dword [rax + r8*4 - 4]
cmove rdx, rcx
mov rcx, r10
jmp fcn.1800149e0
Function at 0x1800145d0
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push r14
sub rsp, 0x20
movsxd rbp, r9d
mov r14, r8
test r8, r8
je 0x1800145eb
mov qword [r8], 0
call fcn.180014730
mov rbx, rax
test rax, rax
jne 0x180014601
add rsp, 0x20
pop r14
pop rbp
pop rbx
ret
mov qword [rsp + 0x40], rsi
mov rcx, rbx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov esi, eax
cmp eax, 0xffffffff
je 0x180014709
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x180014709
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x180014709
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x180014709
cmp rdi, 0xffffffffffffffff
je 0x180014709
mov rax, qword [0x1801b93f8]
test rax, rax
je 0x180014682
inc dword [rax + 0x3bc]
mov rdx, qword [0x1801b9408]
lea rcx, [rdi + rbp]
call qword [0x1801b8730]
mov rsi, rax
test rax, rax
je 0x180014709
mov r9, rbx
mov r8, rdi
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, rdi
je 0x1800146e1
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1801b93f8]
test rax, rax
je 0x1800146cf
dec dword [rax + 0x3bc]
mov rdx, qword [0x1801b9408]
mov rcx, rsi
call qword [0x1801b8738]
jmp 0x180014712
test ebp, ebp
jle 0x1800146f3
lea rcx, [rsi + rdi]
mov r8, rbp
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x180014704
mov qword [r14], rdi
mov rax, rsi
jmp 0x180014714
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rbp
pop rbx
ret

Function at 0x1800149e0
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 0x180014a3d
lea rbx, [0x18004e9e0]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
dec r10
cmp r8b, 0x23
jne 0x180014a24
cmp r10, 2
jb 0x180014a24
cmp byte [r9], r8b
jne 0x180014a24
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 0x180014a00
not eax
mov rbx, qword [rsp + 8]
ret
movzx r8d, byte [rcx]
inc r9
test r8b, r8b
je 0x180014a7f
lea rbx, [0x18004e9e0]
cmp r8b, 0x23
jne 0x180014a63
cmp byte [r9], r8b
jne 0x180014a63
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 0x180014a50
mov rbx, qword [rsp + 8]
not eax
ret
Function at 0x180015430
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x70
xor eax, eax
lea r8, [0x18004efa5]
mov dword [rsp + 0x2c], eax
lea r11, [0x18004e9e0]
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 0x180015486
cmp byte [r8], r9b
jne 0x180015486
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 0x180015473
mov ecx, dword [rbx + 0x305c]
lea rax, [0x1800202b0]
mov edi, dword [rbx + 0x3058]
not edx
mov qword [rsp + 0x30], rax
lea rax, [0x180020420]
mov qword [rsp + 0x40], rax
lea rax, [0x180020340]
mov qword [rsp + 0x48], rax
lea rax, [0x180020160]
mov qword [rsp + 0x50], rax
lea rax, [0x180020510]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x28], edx
cmp edi, ecx
jne 0x1800155b4
inc edi
test ecx, ecx
je 0x18001550a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18001550f
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x1800155b4
mov rax, qword [0x1801b93f8]
mov qword [rsp + 0x80], rsi
test rax, rax
je 0x180015536
inc dword [rax + 0x3bc]
mov rdx, qword [0x1801b9408]
movsxd rax, edi
lea rcx, [rax + rax*8]
shl rcx, 3
call qword [0x1801b8730]
mov rdx, qword [rbx + 0x3060]
mov rsi, rax
test rdx, rdx
je 0x18001559f
movsxd rcx, dword [rbx + 0x3058]
lea r8, [rcx + rcx*8]
mov rcx, rax
shl r8, 3
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x3060]
test rcx, rcx
je 0x180015592
mov rax, qword [0x1801b93f8]
test rax, rax
je 0x180015592
dec dword [rax + 0x3bc]
mov rdx, qword [0x1801b9408]
call qword [0x1801b8738]
mov qword [rbx + 0x3060], rsi
mov rsi, qword [rsp + 0x80]
mov dword [rbx + 0x305c], edi
movsxd rax, dword [rbx + 0x3058]
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
lea rcx, [rax + rax*8]
mov rax, qword [rbx + 0x3060]
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 + 0x3058]
mov byte [rbx], 1
mov rbx, qword [rsp + 0x88]
add rsp, 0x70
pop rdi
ret
Function at 0x180016520
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 [0x1801b93f8]
cmp byte [rbx + 0x3078], 0
je 0x180016605
cmp qword [rbx + 0x3080], 0
mov qword [rax - 0x18], rsi
lea rsi, [rax + 0x10]
mov qword [rax - 0x20], rdi
lea rdi, [rbx + 0x3088]
je 0x1800165ed
mov ecx, dword [rdi + 4]
mov qword [rax - 0x10], rbp
xor ebp, ebp
test ecx, ecx
jns 0x180016592
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.180020d00
mov dword [rdi], ebp
mov r8, rsi
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
call fcn.1800207d0
mov eax, dword [rdi]
mov edx, 1
mov r9, qword [rbx + 0x3080]
test eax, eax
lea ecx, [rax - 1]
mov rax, qword [rbx + 0x3090]
cmove ecx, ebp
test rax, rax
movsxd r8, ecx
lea rcx, [0x1801b9400]
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.1800207d0
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
add rsp, 0x40
pop rbx
ret
Function at 0x18001b220
Capabilities:
Hash data with crc32

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 8], rcx
push rdi
sub rsp, 0x20
mov rax, qword [0x1801b93f8]
lea rdx, [0x18004e9e0]
mov r8, rcx
mov rbx, qword [rax + 0x1aa0]
add rbx, 0xc8
movsxd r9, dword [rbx]
mov rax, qword [rbx + 8]
mov edi, dword [rax + r9*4 - 4]
not edi
movzx eax, r8b
mov r8d, dword [rbx + 4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 9]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 0xa]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 0xb]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 0xc]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 0xd]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 0xe]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
xor rcx, rax
shr edi, 8
movzx eax, byte [r11 + 0xf]
xor edi, dword [rdx + rcx*4]
movzx ecx, dil
shr edi, 8
xor rcx, rax
xor edi, dword [rdx + rcx*4]
not edi
cmp r9d, r8d
jne 0x18001b321
lea ecx, [r9 + 1]
test r8d, r8d
je 0x18001b30d
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x18001b312
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.180020e40
movsxd rcx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], edi
inc dword [rbx]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret