joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400bdaa0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x30
mov rdi, rcx
movzx ecx, byte [rcx + 0x23]
mov rbx, rdx
test ecx, ecx
je 0x1400bdce1
dec ecx
mov qword [rsp + 0x50], rsi
je 0x1400bdb36
dec ecx
je 0x1400bdb03
dec ecx
je 0x1400bdae7
mov rdx, qword [rdi + 0x28]
mov rcx, rbx
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
test rdx, rdx
je 0x1400bdaf1
xor esi, esi
mov word [rdx], si
xor eax, eax
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov rcx, rdx
call fcn.140006ac0
xor esi, esi
mov ecx, 0xffffffff
cmp rax, rcx
cmove rax, rsi
test rbx, rbx
je 0x1400bdc87
mov word [rbx + rax*2], si
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov rcx, rdi
call fcn.140001130
cmp dword [0x14012ac4c], 0
jne 0x1400bdc3e
cmp qword [rdi + 0x10], 0
jne 0x1400bdc3e
cmp qword [0x14012e1a8], rdi
jne 0x1400bdb64
test rbx, rbx
jne 0x1400bdbe3
mov rcx, qword [rdi + 0x28]
lea rdx, [rsp + 0x40]
xor r8d, r8d
call qword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableW]
test eax, eax
je 0x1400bdbde
xor esi, esi
mov qword [0x14012e1a8], rsi
test rbx, rbx
je 0x1400bdbcc
mov edx, dword [0x14012ac28]
test edx, edx
je 0x1400bdbae
mov r9, qword [rdi + 0x28]
lea r8, str.An_environment_variable_is_being_accessed__see_NoEnv.
lea rcx, [0x14012c5c0]
mov qword [rsp + 0x20], rsi
call fcn.14004f060
mov rcx, qword [rdi + 0x28]
mov rdx, rbx
call fcn.1400baae0
mov rsi, qword [rsp + 0x50]
mov eax, eax
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
dec eax
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
test rbx, rbx
je 0x1400bdc25
cmp byte [rdi + 0x23], 0
jne 0x1400bdbef
mov rax, qword [rdi + 0x10]
jmp 0x1400bdbf2
mov rax, rdi
test byte [rax + 0x21], 4
je 0x1400bdc07
lea rcx, [0x14012c5c0]
mov rdx, rdi
call fcn.14004f1e0
xor esi, esi
xor eax, eax
mov word [rbx], si
mov qword [0x14012e1a8], rsi
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov rsi, qword [rsp + 0x50]
mov qword [0x14012e1a8], rdi
xor eax, eax
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov r8, qword [rdi + 0x10]
mov qword [rsp + 0x48], rbp
mov rbp, r8
shr rbp, 1
test rbx, rbx
je 0x1400bdcdc
test r8, r8
jne 0x1400bdc97
xor esi, esi
mov rax, rdi
cmp byte [rdi + 0x23], sil
cmove rax, rsi
test byte [rax + 0x21], 4
je 0x1400bdc7d
lea rcx, [0x14012c5c0]
mov rdx, rdi
call fcn.14004f1e0
mov word [rbx], si
xor eax, eax
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
mov rdx, qword [rdi + 8]
cmp rbx, rdx
je 0x1400bdcdc
cmp r8, 0x186a0
jae 0x1400bdcce
movzx eax, word [rdx]
test ax, ax
je 0x1400bdcc4
add rdx, 2
mov word [rbx], ax
add rbx, 2
movzx eax, word [rdx]
test ax, ax
jne 0x1400bdcb1
xor esi, esi
mov rax, rbp
mov word [rbx], si
jmp 0x1400bdc82
mov rcx, rbx
call fcn.1400d7a40
xor esi, esi
mov word [rbx + rbp*2], si
mov rax, rbp
jmp 0x1400bdc82
mov rcx, qword [rdi + 0x10]
call fcn.1400bdaa0
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
Function at 0x1400beb00
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov edi, edx
mov rbx, rcx
test r8b, r8b
je 0x1400beb1b
call fcn.14008e6e0
jmp 0x1400beb2b
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x10]
call qword [sym.imp.USER32.dll_PostMessageW]
test edi, edi
js 0x1400beb9e
je 0x1400beb9e
mov qword [rsp + 0x30], rsi
call qword [sym.imp.KERNEL32.DLL_GetTickCount]
mov edx, 1
mov ecx, 0x8000012f
mov esi, eax
call fcn.140001b60
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1400beb8b
add edi, esi
nop dword [rax]
call qword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, edi
sub ecx, eax
cmp ecx, 5
jle 0x1400beb8b
mov edx, 1
mov ecx, 0x8000012f
call fcn.140001b60
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x1400beb60
mov rax, rbx
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rax, rbx
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400c1610
Capabilities:
Check for time delay via gettickcount
Enumerate gui resources

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
sub rsp, 0x20
cmp qword [rcx + 0x10], 0
movzx ebp, dl
mov rbx, rcx
jne 0x1400c1637
mov eax, 1
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret
mov qword [rsp + 0x38], rdi
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov r8, qword [0x1401255c8]
mov rdx, rax
mov rcx, rbx
mov rdi, rax
call fcn.1400c1c80
cmp byte [rbx], 0
je 0x1400c167f
test rax, rax
jne 0x1400c1688
xor r8d, r8d
movzx edx, bpl
mov rcx, rbx
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
jmp fcn.1400c17a0
test rax, rax
jne 0x1400c1759
test rdi, rdi
je 0x1400c171d
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0x10]
mov qword [rsp + 0x30], rsi
call qword [sym.imp.USER32.dll_PostMessageW]
call qword [sym.imp.KERNEL32.DLL_GetTickCount]
mov edx, 1
mov ecx, 0x8000012f
mov esi, eax
call fcn.140001b60
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1400c16ff
nop dword [rax]
call qword [sym.imp.KERNEL32.DLL_GetTickCount]
lea ecx, [rsi + 0x1f4]
sub ecx, eax
cmp ecx, 5
jle 0x1400c16ff
mov edx, 1
mov ecx, 0x8000012f
call fcn.140001b60
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x1400c16d0
mov rax, qword [0x1401255c8]
mov rsi, qword [rsp + 0x30]
mov ecx, dword [rax + 0x74]
cmp ecx, 0xffffffff
jle 0x1400c171d
mov edx, 1
call fcn.140001b60
cmp byte [rbx], 0
je 0x1400c177c
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rdi
je 0x1400c1759
mov r8, qword [0x1401255c8]
mov rdx, rax
mov rcx, rbx
call fcn.1400c1c80
test rax, rax
je 0x1400c1759
mov eax, 1
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret
cmp byte [rbx], 0
je 0x1400c177c
xor r8d, r8d
movzx edx, bpl
mov rcx, rbx
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
jmp fcn.1400c17a0
movzx edx, bpl
mov rcx, rbx
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
jmp fcn.1400c19f0
Function at 0x1400c17a0
Capabilities:
Enumerate gui resources

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r12
mov eax, 0x11cd0
call fcn.1400e0af0
sub rsp, rax
xor ebx, ebx
mov rbp, r8
movzx esi, dl
mov r12, rcx
test r8, r8
je 0x1400c17c9
mov qword [r8], rbx
cmp qword [rcx + 0x10], rbx
jne 0x1400c17d9
mov eax, 1
jmp 0x1400c19d1
mov dl, 1
call fcn.1400c1bd0
test eax, eax
je 0x1400c19d1
mov qword [rsp + 0x11cf0], rdi
mov qword [rsp + 0x11cf8], r13
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov r8, qword [0x1401255c8]
mov rcx, r12
mov rdx, rax
mov rdi, rax
call fcn.1400c1c80
mov ecx, dword [0x14012c4bc]
test rax, rax
mov dword [rsp + 0x1874], ebx
mov qword [rsp + 0x1878], rbx
setne r13b
mov qword [rsp + 0x1880], rbx
mov qword [rsp + 0x1898], rbx
test r13b, r13b
mov qword [rsp + 0x18a8], rbx
mov qword [rsp + 0x18b0], rbx
cmove ecx, ebx
mov dword [0x14012c4bc], ecx
test sil, sil
je 0x1400c186c
mov byte [rsp + 0x1871], bl
test r13b, r13b
je 0x1400c1874
mov byte [rsp + 0x1871], 1
mov r8, qword [0x14012c4c8]
lea rax, [0x1400f1514]
test ecx, ecx
mov qword [rsp + 0x1038], rax
mov qword [rsp + 0x1048], rax
mov qword [rsp + 0x1050], rax
mov rax, qword [0x1401255c8]
mov qword [rsp + 0x1888], r8
mov dword [rsp + 0x1890], ecx
mov qword [rsp + 0x1040], rbx
mov qword [rsp + 0x1068], r12
mov dword [rsp + 0x20], reloc.OLEAUT32.dll_SafeArrayGetDim
mov qword [rsp + 0x28], rax
setg sil
test r13b, r13b
je 0x1400c1907
mov edx, ebx
test ecx, ecx
jle 0x1400c18f0
mov rax, r8
cmp qword [rax], rdi
je 0x1400c1907
inc edx
add rax, 8
cmp edx, ecx
jl 0x1400c18e1
cmp ecx, 0x1f4
jge 0x1400c1907
movsxd rax, ecx
inc ecx
mov qword [r8 + rax*8], rdi
mov dword [0x14012c4bc], ecx
mov dword [rsp + 0x1890], ecx
lea rdx, [rsp + 0x20]
lea rcx, [0x1400bf080]
call qword [sym.imp.USER32.dll_EnumWindows]
mov rcx, qword [rsp + 0x1878]
test rcx, rcx
jne 0x1400c195d
test sil, sil
je 0x1400c1946
mov r8, qword [0x14012c4c8]
mov ecx, ebx
mov dword [0x14012c4bc], ebx
xor sil, sil
jmp 0x1400c18d3
test rbp, rbp
je 0x1400c1959
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x1400c1959
mov qword [rbp], rax
xor eax, eax
jmp 0x1400c19c1
call fcn.1400be7c0
movsxd rcx, dword [0x14012c4bc]
mov rdx, qword [rsp + 0x1878]
mov r8, qword [0x14012c4c8]
test ecx, ecx
jle 0x1400c198f
mov rax, r8
nop
cmp qword [rax], rdx
je 0x1400c19a3
inc ebx
add rax, 8
cmp ebx, ecx
jl 0x1400c1980
cmp ecx, 0x1f4
jge 0x1400c19a3
mov qword [r8 + rcx*8], rdx
inc ecx
mov dword [0x14012c4bc], ecx
mov rax, qword [0x1401255c8]
mov ecx, dword [rax + 0x74]
cmp ecx, 0xffffffff
jle 0x1400c19bc
mov edx, 1
call fcn.140001b60
mov eax, 1
mov rdi, qword [rsp + 0x11cf0]
mov r13, qword [rsp + 0x11cf8]
mov rbx, qword [rsp + 0x11d00]
add rsp, 0x11cd0
pop r12
pop rsi
pop rbp
ret
Function at 0x1400d7658
Capabilities:
Terminate process

Disassembly:
xor r8d, r8d
xor edx, edx
jmp fcn.1400d74c8

Function at 0x1400e3028
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rax, qword [0x140123ea8]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov ebp, r8d
mov r14, rdx
mov r13, rcx
call fcn.1400db47c
xor ebx, ebx
cmp qword [0x140128d48], rbx
mov rdi, rax
jne 0x1400e313b
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.DLL_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x1400e3212
lea rdx, [0x1400f0b00]
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
test rax, rax
je 0x1400e3212
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_EncodePointer]
lea rdx, str.GetActiveWindow
mov rcx, rsi
mov qword [0x140128d48], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_EncodePointer]
lea rdx, str.GetLastActivePopup
mov rcx, rsi
mov qword [0x140128d50], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_EncodePointer]
lea rdx, str.GetUserObjectInformationW
mov rcx, rsi
mov qword [0x140128d58], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_EncodePointer]
mov r11, rax
mov qword [0x140128d68], rax
test rax, rax
je 0x1400e3132
lea rdx, str.GetProcessWindowStation
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_EncodePointer]
mov qword [0x140128d60], rax
jmp 0x1400e3142
mov rax, qword [0x140128d60]
jmp 0x1400e3149
mov rax, qword [0x140128d60]
mov r11, qword [0x140128d68]
cmp rax, rdi
je 0x1400e31b0
cmp r11, rdi
je 0x1400e31b0
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_DecodePointer]
mov rcx, qword [0x140128d68]
mov rsi, rax
call qword [sym.imp.KERNEL32.DLL_DecodePointer]
mov r12, rax
test rsi, rsi
je 0x1400e31b0
test rax, rax
je 0x1400e31b0
call rsi
test rax, rax
je 0x1400e31aa
lea rcx, [rsp + 0x30]
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
mov rcx, rax
call r12
test eax, eax
je 0x1400e31aa
test byte [rsp + 0x40], 1
jne 0x1400e31b0
bts ebp, 0x15
jmp 0x1400e31f0
mov rcx, qword [0x140128d50]
cmp rcx, rdi
je 0x1400e31f0
call qword [sym.imp.KERNEL32.DLL_DecodePointer]
test rax, rax
je 0x1400e31f0
call rax
mov rbx, rax
test rax, rax
je 0x1400e31f0
mov rcx, qword [0x140128d58]
cmp rcx, rdi
je 0x1400e31f0
call qword [sym.imp.KERNEL32.DLL_DecodePointer]
test rax, rax
je 0x1400e31f0
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x140128d48]
call qword [sym.imp.KERNEL32.DLL_DecodePointer]
test rax, rax
je 0x1400e3212
mov r9d, ebp
mov r8, r14
mov rdx, r13
mov rcx, rbx
call rax
jmp 0x1400e3214
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400df2c0
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1400e5f4f
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x140123ea8]
jne 0x1400df2da
rol rcx, 0x10
test cx, 0xffff
jne 0x1400df2d6
repz ret
ror rcx, 0x10
jmp 0x1400e5ea8
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x140128e90]
call qword [sym.imp.KERNEL32.DLL_RtlCaptureContext]
mov rax, qword [0x140128f88]
mov qword [rsp + 0x58], rax
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.DLL_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x1400e5f2d
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x140128e90]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.DLL_RtlVirtualUnwind
jmp 0x1400e5f4f
mov rax, qword [rsp + 0x88]
mov qword [0x140128f88], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x140128f28], rax
mov rax, qword [0x140128f88]
mov qword [0x140128e00], rax
mov rax, qword [rsp + 0x90]
mov qword [0x140128f10], rax
mov dword [0x140128df0], 0xc0000409
mov dword [0x140128df4], 1
mov rax, qword [0x140123ea8]
mov qword [rsp + 0x68], rax
mov rax, qword [0x140123eb0]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.DLL_IsDebuggerPresent]
mov dword [0x140128e88], eax
mov ecx, 1
call fcn.1400e2e7c
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_SetUnhandledExceptionFilter]
lea rcx, [0x1400f14c8]
call qword [sym.imp.KERNEL32.DLL_UnhandledExceptionFilter]
cmp dword [0x140128e88], 0
jne 0x1400e5fd6
mov ecx, 1
call fcn.1400e2e7c
call qword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_TerminateProcess]
add rsp, 0x88
ret
Function at 0x140014010
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1050
call fcn.140005f30
sub rsp, rax
mov rax, qword [0x14002e040]
xor rax, rsp
mov qword [rsp + 0x1040], rax
mov r15, r8
mov rbp, rdx
mov rbx, rcx
call fcn.140012bf0
xor edi, edi
movsxd r14, eax
cmp dword [rbx + 0x10], edi
jne 0x14001405f
mov rax, rbp
jmp 0x140014167
mov rax, qword [rbx]
mov rcx, r14
sub rax, qword [rbx + 8]
and ecx, 0x3f
cqo
mov rbx, r14
sub rax, rdx
sar rbx, 6
sar rax, 1
mov r9, r15
lea r12, [rcx + rcx*8]
mov rsi, rax
lea rax, [0x140000000]
xor r8d, r8d
mov rdx, qword [rax + rbx*8 + 0x5cc8d0]
mov ecx, r14d
mov rdx, qword [rdx + r12*8 + 0x30]
call fcn.140015130
mov r13, rax
lea rax, [0x140000000]
mov rcx, qword [rax + rbx*8 + 0x5cc8d0]
cmp r13, qword [rcx + r12*8 + 0x30]
jne 0x140014163
mov rcx, qword [rcx + r12*8 + 0x28]
lea r9, [rsp + 0x30]
mov r8d, 0x1000
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140014163
mov r9, r15
xor r8d, r8d
mov rdx, rbp
mov ecx, r14d
call fcn.140015130
test rax, rax
js 0x140014163
mov eax, dword [rsp + 0x30]
cmp rsi, rax
jg 0x140014163
lea rdx, [rsp + 0x40]
add rdx, rax
lea rcx, [rsp + 0x40]
test rsi, rsi
je 0x140014155
lea r8, [0x140000000]
cmp rcx, rdx
jae 0x140014155
cmp byte [rcx], 0xd
jne 0x14001413b
lea rax, [rdx - 1]
cmp rcx, rax
jae 0x14001414a
cmp byte [rcx + 1], 0xa
jne 0x14001414a
inc rcx
jmp 0x14001414a
movzx eax, byte [rcx]
movsx rax, byte [rax + r8 + 0x2e480]
add rcx, rax
inc rdi
inc rcx
cmp rdi, rsi
jne 0x14001411d
lea rax, [rsp + 0x40]
sub rcx, rax
lea rax, [rcx + r13]
jmp 0x140014167
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.140005b40
mov rbx, qword [rsp + 0x1090]
add rsp, 0x1050
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x140014388
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x14001439e
mov al, 1
jmp 0x1400143fe
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x1400143af
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x1400143fc
mov ecx, dword [rcx + 0x18]
nop
call fcn.140018ae4
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400143fc
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1400143fc
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400143fc
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x1400143fe
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x1400144d0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd r15, ecx
lea r9, [0x1405cc8d0]
mov rax, r15
mov rbp, r15
and eax, 0x3f
sar rbp, 6
mov ecx, 4
xor esi, esi
mov r14, rdx
lea rdi, [rax + rax*8]
mov rax, qword [r9 + rbp*8]
lea r13d, [rcx + 6]
mov r10, qword [rax + rdi*8 + 0x28]
test r8, r8
je 0x140014527
cmp word [rdx], r13w
jne 0x140014527
or byte [rax + rdi*8 + 0x38], cl
jmp 0x14001452c
and byte [rax + rdi*8 + 0x38], 0xfb
lea r8, [rdx + r8*2]
mov rbx, r14
cmp r14, r8
jae 0x140014651
mov r11d, 0xd
lea r12d, [r11 - 0xb]
movzx ecx, word [rdx]
cmp cx, 0x1a
je 0x140014672
lea r9, [rdx + 2]
cmp cx, r11w
je 0x140014565
mov rdx, r9
mov word [rbx], cx
jmp 0x14001458c
cmp r9, r8
jae 0x14001459c
cmp word [r9], r13w
mov rax, r12
mov ecx, 4
cmove rax, rcx
add rdx, rax
mov eax, r13d
cmp word [r9], r13w
cmovne ax, r11w
mov word [rbx], ax
mov rax, r12
add rbx, rax
cmp rdx, r8
jb 0x140014546
jmp 0x140014651
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rsi
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140014646
cmp dword [rsp + 0x80], esi
je 0x140014646
lea r8, [0x1405cc8d0]
mov rax, qword [r8 + rbp*8]
test byte [rax + rdi*8 + 0x38], 0x48
je 0x14001461e
movzx eax, word [rsp + 0x70]
cmp ax, r13w
jne 0x1400145ee
mov word [rbx], r13w
jmp 0x14001464e
mov ecx, 0xd
mov word [rsp + 0x78], ax
mov word [rbx], cx
mov rax, qword [r8 + rbp*8]
lea rcx, [rax + rdi*8]
mov al, byte [rsp + rsi + 0x78]
mov byte [rcx + rsi + 0x3a], al
inc rsi
cmp rsi, r12
jl 0x1400145fb
mov rax, qword [r8 + rbp*8]
mov byte [rax + rdi*8 + 0x3c], r13b
jmp 0x14001464e
cmp word [rsp + 0x70], r13w
jne 0x14001462b
cmp rbx, r14
je 0x1400145e8
mov rdx, 0xfffffffffffffffe
mov ecx, r15d
lea r8d, [rdx + 3]
call fcn.140015138
cmp word [rsp + 0x70], r13w
je 0x140014651
mov ecx, 0xd
mov word [rbx], cx
add rbx, r12
sub rbx, r14
sar rbx, 1
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [0x1405cc8d0]
mov rdx, qword [r8 + rbp*8]
mov al, byte [rdx + rdi*8 + 0x38]
test al, 0x40
jne 0x14001464b
or al, r12b
mov byte [rdx + rdi*8 + 0x38], al
jmp 0x140014651
Function at 0x140003d50
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140003d69
shr eax, 4
and al, 1
add rsp, 0x28
ret
xor al, al
add rsp, 0x28
ret

Function at 0x140003d70
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140003d89
shr eax, 4
and al, 1
add rsp, 0x28
ret
xor al, al
add rsp, 0x28
ret

Function at 0x140003d90
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140003daa
test al, 0x10
jne 0x140003daa
mov al, 1
add rsp, 0x28
ret
xor al, al
add rsp, 0x28
ret
Function at 0x140008600
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x140008634
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x140008620
ret
Function at 0x14000c260
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14000c32c
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x14000c32c
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x14000c345
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x14000c31c
cmp byte [rax], 0x5c
jne 0x14000c316
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x14000c316
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x14000c302
movzx ecx, byte [rdx]
sub cl, 0x28
cmp cl, 1
jbe 0x14000c313
test r8b, 0x10
jne 0x14000c316
movzx ecx, byte [rdx]
sub cl, 0x7b
test cl, 0xfd
jne 0x14000c316
mov rax, rdx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140009010
test edi, edi
jne 0x14000c280
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.140009000
int3
Function at 0x140010a80
Capabilities:
Encode data using xor

Disassembly:
movzx r10d, byte [rdx]
mov r11, rdx
mov r9, qword [rcx + 0x18]
movzx r8d, r10b
movzx eax, byte [r9 + 0x1d]
xor r8b, byte [rax + rcx + 0x71]
xor byte [r9], r8b
mov r9, qword [rcx + 0x18]
movzx eax, byte [r9 + 0x1e]
movzx r8d, byte [rax + rcx + 0x71]
xor byte [r9 + 1], r8b
mov r9d, 5
mov r8, qword [rcx + 0x18]
movzx eax, byte [r8 + 0x1f]
movzx edx, byte [rax + rcx + 0x71]
xor byte [r8 + 2], dl
mov r8, qword [rcx + 0x18]
movzx eax, byte [r8 + 0x1c]
movzx edx, byte [rax + rcx + 0x71]
movzx eax, r10b
xor byte [r8 + 3], dl
add r10b, r10b
shr al, 7
movzx eax, al
imul edx, eax, 0x1b
xor dl, r10b
mov r10b, 4
mov byte [r11], dl
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rcx + 0x18]
movzx eax, r10b
add r10b, 4
lea r8, [rdx + r9]
movzx edx, byte [rax + rdx - 4]
xor byte [r8 - 1], dl
mov rax, qword [rcx + 0x18]
lea rdx, [rax + r9]
movzx eax, byte [rax + r9 - 4]
xor byte [rdx], al
mov rax, qword [rcx + 0x18]
lea rdx, [r9 + rax]
movzx eax, byte [r9 + rax - 3]
xor byte [rdx + 1], al
mov rax, qword [rcx + 0x18]
lea rdx, [r9 + rax]
movzx eax, byte [r9 + rax - 2]
xor byte [rdx + 2], al
lea r9, [r9 + 4]
cmp r10b, 0x10
jb 0x140010b00
mov r8, qword [rcx + 0x18]
mov r10b, 0x14
mov r9d, 0x15
movzx eax, byte [r8 + 0xc]
movzx edx, byte [rax + rcx + 0x71]
xor byte [r8 + 0x10], dl
mov r8, qword [rcx + 0x18]
movzx eax, byte [r8 + 0xd]
movzx edx, byte [rax + rcx + 0x71]
xor byte [r8 + 0x11], dl
mov r8, qword [rcx + 0x18]
movzx eax, byte [r8 + 0xe]
movzx edx, byte [rax + rcx + 0x71]
xor byte [r8 + 0x12], dl
mov r8, qword [rcx + 0x18]
movzx eax, byte [r8 + 0xf]
movzx edx, byte [rax + rcx + 0x71]
xor byte [r8 + 0x13], dl
nop word [rax + rax]
mov rdx, qword [rcx + 0x18]
movzx eax, r10b
add r10b, 4
lea r8, [rdx + r9]
movzx edx, byte [rax + rdx - 4]
xor byte [r8 - 1], dl
mov rax, qword [rcx + 0x18]
lea rdx, [rax + r9]
movzx eax, byte [rax + r9 - 4]
xor byte [rdx], al
mov rax, qword [rcx + 0x18]
lea rdx, [r9 + rax]
movzx eax, byte [r9 + rax - 3]
xor byte [rdx + 1], al
mov rax, qword [rcx + 0x18]
lea rdx, [r9 + rax]
movzx eax, byte [r9 + rax - 2]
xor byte [rdx + 2], al
lea r9, [r9 + 4]
cmp r10b, 0x20
jb 0x140010bb0
ret