joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140021220
Capabilities:
Download and write a file
Query remote server for available data
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x50
mov rbp, rdx
mov r12d, r9d
mov rsi, r8
mov rbx, rcx
xor r13d, r13d
lea rdx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
mov edi, r13d
mov dword [rsp + 0x70], r13d
call qword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x14002137a
nop dword [rax + rax]
mov edx, dword [rsp + 0x70]
test edx, edx
je 0x140021381
nop dword [rax]
mov eax, dword [rbx + 0x28]
lea r9, [rsp + 0x40]
mov rcx, rbp
cmp edx, eax
cmova edx, eax
mov dword [rsp + 0x40], edx
mov r8d, edx
mov rdx, qword [rbx + 0x20]
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x14002134b
mov ecx, dword [rsp + 0x40]
mov r10, qword [rbx + 8]
mov rdx, qword [rbx + 0x20]
lea r8d, [rcx + rdi]
test r10, r10
je 0x1400212e6
mov rax, qword [rbx + 0x10]
mov r9d, r12d
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rdx
mov edx, 5
mov rcx, rbp
call r10
test eax, eax
je 0x140021339
mov ecx, dword [rsp + 0x40]
test ecx, ecx
je 0x14002132b
mov dword [rsp + 0x44], r13d
cmp rsi, 0xffffffffffffffff
je 0x14002131d
mov rdx, qword [rbx + 0x20]
mov r8d, ecx
lea r9, [rsp + 0x44]
mov rcx, rsi
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140021342
mov ecx, dword [rsp + 0x40]
cmp ecx, dword [rsp + 0x44]
jne 0x140021342
mov edx, dword [rsp + 0x70]
add edi, ecx
sub edx, ecx
mov dword [rsp + 0x70], edx
jmp 0x14002132f
mov edx, dword [rsp + 0x70]
test edx, edx
jne 0x140021280
jmp 0x140021359
mov dword [rbx + 0x38], 0xa0000001
jmp 0x140021352
mov dword [rbx + 0x38], 0xa0000008
jmp 0x140021352
mov dword [rbx + 0x38], 0xa0000007
cmp dword [rsp + 0x70], r13d
jne 0x140021381
lea rdx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
mov dword [rsp + 0x70], r13d
call qword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x140021270
mov dword [rbx + 0x38], 0xa0000007
test byte [rbx + 0x40], 1
jne 0x1400213a1
cmp edi, r12d
je 0x1400213a1
cmp dword [rbx + 0x38], 0xa0ffffff
mov eax, r13d
jne 0x1400213ea
mov dword [rbx + 0x38], 0xa0000009
jmp 0x1400213ea
mov r10, qword [rbx + 8]
test r10, r10
je 0x1400213de
mov rax, qword [rbx + 0x10]
mov r9d, r12d
mov r8d, edi
mov qword [rsp + 0x30], rax
mov edx, 6
mov rcx, rbp
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
call r10
test eax, eax
jne 0x1400213de
mov dword [rbx + 0x38], 0xa0000001
mov eax, r13d
jmp 0x1400213ea
mov dword [rbx + 0x38], 0x20000000
mov eax, 1
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret
Function at 0x1400233d0
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rsi, r8
mov rbx, rdx
mov r8, rcx
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rdi, rax
test rax, rax
je 0x140023466
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x14002347f
cmp eax, 0x80
je 0x14002347f
cmp eax, 0x102
je 0x14002341f
cmp eax, 0xffffffff
je 0x14002344d
int3
test rbx, rbx
je 0x140023442
xor r9d, r9d
mov r8, rbx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowExA]
test rax, rax
je 0x140023442
mov rcx, rax
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, 0x102
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov qword [rsi], 0
xor al, al
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
mov qword [rsi], rdi
mov rsi, qword [rsp + 0x38]
mov al, 1
add rsp, 0x20
pop rdi
ret
jmp 0x1400233d0

Function at 0x140023830
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rsi, r8
mov rbx, rdx
mov r8, rcx
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rdi, rax
test rax, rax
je 0x140023466
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x14002347f
cmp eax, 0x80
je 0x14002347f
cmp eax, 0x102
je 0x14002341f
cmp eax, 0xffffffff
je 0x14002344d
int3
test rbx, rbx
je 0x140023442
xor r9d, r9d
mov r8, rbx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowExA]
test rax, rax
je 0x140023442
mov rcx, rax
call qword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, 0x102
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov qword [rsi], 0
xor al, al
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
mov qword [rsi], rdi
mov rsi, qword [rsp + 0x38]
mov al, 1
add rsp, 0x20
pop rdi
ret
jmp 0x1400233d0

Function at 0x140024010
Capabilities:
Print debug messages

Disassembly:
sub rsp, 0x28
lea rcx, str.CWebView:_Call_to_not_implemented_method._r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 0x80004001
add rsp, 0x28
ret

Function at 0x140024070
Capabilities:
Print debug messages

Disassembly:
sub rsp, 0x28
lea rcx, str.CWebView:_Call_to_not_implemented_method._r_n
mov qword [r8], 0
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 0x80004001
add rsp, 0x28
ret

Function at 0x1400240d0
Capabilities:
Print debug messages

Disassembly:
sub rcx, 0x10
jmp method.CWebView.1.virtual_72
Function at 0x140024ce0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rdi
push r13
push r15
sub rsp, 0x50
movzx eax, byte [r9]
mov qword [rsp + 0x38], r12
xor r13d, r13d
mov qword [rsp + 0x30], r14
mov r15d, r8d
mov r12, r9
mov r8, rdx
mov r14, rcx
test al, al
jne 0x140024d1d
or r13d, 0xffffffff
mov edi, 0x60000000
jmp 0x140024e56
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x40], rsi
mov esi, 0x696e4942
mov rcx, r9
nop word [rax + rax]
shl esi, 3
movzx eax, al
inc rcx
xor esi, eax
movzx eax, byte [rcx]
not esi
test al, al
jne 0x140024d40
lea rcx, [r14 + 0x20]
mov ebx, r13d
call fcn.140018960
test eax, eax
je 0x140024da9
lea rcx, [r14 + 0x20]
mov edx, ebx
call fcn.140028550
cmp byte [rax + 8], sil
jne 0x140024d9a
mov rax, qword [rax]
mov rdi, r12
sub rdi, rax
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x140024d92
inc rax
test ecx, ecx
jne 0x140024d80
test edx, edx
je 0x140024e35
lea rcx, [r14 + 0x20]
inc ebx
call fcn.140018960
cmp ebx, eax
jb 0x140024d64
mov edi, dword [rsp + 0x88]
lea rcx, [r14 + 0x20]
call fcn.140018960
mov ecx, 0xe0000005
cmp ebx, eax
mov rbx, qword [rsp + 0x70]
cmove edi, ecx
cmp edi, ecx
jne 0x140024e47
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
dec rcx
je 0x140024e42
mov rdx, rcx
mov rcx, r14
call fcn.140024850
mov edi, eax
test eax, eax
js 0x140024e47
mov edx, 1
mov rcx, r14
call fcn.140024900
mov edi, eax
test eax, eax
js 0x140024e47
lea rcx, [r14 + 0x20]
call fcn.140018960
lea rcx, [r14 + 0x40]
lea r8, [rsp + 0x20]
mov rdx, r12
mov byte [rsp + 0x28], sil
mov r13, rax
call fcn.140018990
lea rdx, [rsp + 0x20]
lea rcx, [r14 + 0x20]
call fcn.140028540
jmp 0x140024e47
mov r13d, ebx
mov edi, 0x60000000
jmp 0x140024db0
mov edi, 0xe0000001
mov r8, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
test edi, edi
js 0x140024e73
mov rdx, r15
mov rcx, r8
call fcn.140028550
mov dword [rax + 4], r13d
mov eax, edi
add rsp, 0x50
pop r15
pop r13
pop rdi
ret

Function at 0x140025210
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x30
mov edx, edx
mov r12, r9
mov rbp, r8
mov rdi, rcx
call fcn.140028550
movzx r10d, byte [rbp]
mov dword [rsp + 0x58], 0
mov rdx, rbp
mov ebx, 0x696e4942
mov rsi, rax
test r10b, r10b
je 0x140025267
nop
shl ebx, 3
inc rdx
movzx ecx, r10b
movzx r10d, byte [rdx]
xor ebx, ecx
not ebx
test r10b, r10b
jne 0x140025250
lea rax, [rsp + 0x58]
movzx r9d, bl
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140024bd0
cmp eax, 0xe0000005
jne 0x1400252a6
lea rax, [rsp + 0x58]
movzx r9d, bl
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140024a70
test eax, eax
js 0x1400252bd
mov r8d, dword [rsp + 0x58]
mov r9, r12
mov rdx, rsi
mov rcx, rdi
call fcn.140024ce0
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r12
pop rdi
pop rsi
ret
Function at 0x140025f80
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x20
movzx eax, byte [rdx]
mov rbp, r9
mov r12, r8
mov rdi, rdx
mov rsi, rcx
mov dword [rsp + 0x48], 0
mov r10, rdx
mov ebx, 0x696e4942
test al, al
je 0x140025fd5
nop word [rax + rax]
shl ebx, 3
movzx eax, al
inc r10
xor ebx, eax
movzx eax, byte [r10]
not ebx
test al, al
jne 0x140025fc0
lea r9, [rsp + 0x48]
movzx r8d, bl
call fcn.140025100
cmp eax, 0xe0000005
jne 0x140025ffe
lea r9, [rsp + 0x48]
movzx r8d, bl
mov rdx, rdi
mov rcx, rsi
call fcn.140024fa0
test eax, eax
js 0x140026014
mov edx, dword [rsp + 0x48]
mov r9, rbp
mov r8, r12
mov rcx, rsi
call fcn.140025210
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r12
pop rdi
pop rsi
ret

Function at 0x140026030
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
sub rsp, 0x30
movzx eax, byte [rdx]
mov edi, 0x696e4942
mov rsi, r8
mov r12, r9
mov rbx, rcx
mov dword [rsp + 0x58], 0
mov r10, rdx
mov r8d, edi
test al, al
je 0x140026078
shl r8d, 3
movzx eax, al
inc r10
xor r8d, eax
movzx eax, byte [r10]
not r8d
test al, al
jne 0x140026060
lea r9, [rsp + 0x58]
call fcn.140025100
test eax, eax
js 0x140026130
mov edx, dword [rsp + 0x58]
mov rcx, rbx
mov qword [rsp + 0x50], rbp
call fcn.140028550
movzx ecx, byte [rsi]
mov dword [rsp + 0x58], 0
mov rbp, rax
mov rdx, rsi
test cl, cl
je 0x1400260c4
shl edi, 3
movzx ecx, cl
inc rdx
xor edi, ecx
movzx ecx, byte [rdx]
not edi
test cl, cl
jne 0x1400260b0
lea rax, [rsp + 0x58]
movzx r9d, dil
mov r8, rsi
mov rdx, rbp
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140024bd0
test eax, eax
js 0x14002612b
mov edx, dword [rsp + 0x58]
mov rcx, rbp
call fcn.140028550
mov rcx, rbx
mov edx, dword [rax + 4]
call fcn.1400249a0
or rcx, 0xffffffffffffffff
mov r8, r12
mov r11, rax
xor eax, eax
mov rdi, r11
repne scasb al, byte [rdi]
not rcx
mov rdx, rcx
mov rcx, r11
call fcn.14002e460
mov ecx, 0xe0000002
mov edx, 0x60000000
test al, al
cmovne ecx, edx
mov eax, ecx
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r12
pop rdi
pop rsi
ret
Function at 0x140026230
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rsi
push r13
push r14
push r15
sub rsp, 0x48
movzx eax, byte [rdx]
xor esi, esi
mov r15, rdx
mov r14, rcx
mov r10, rdx
mov r8d, 0x696e4942
mov dword [rsp + 0x78], esi
test al, al
je 0x140026279
shl r8d, 3
movzx eax, al
inc r10
xor r8d, eax
movzx eax, byte [r10]
not r8d
test al, al
jne 0x140026261
lea r9, [rsp + 0x78]
call fcn.140025100
mov r13d, eax
test eax, eax
js 0x140026389
mov edx, dword [rsp + 0x78]
mov rcx, r14
mov qword [rsp + 0x30], r12
call fcn.140028550
mov rcx, rax
mov r12, rax
call fcn.140018960
test eax, eax
je 0x14002639c
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rdi
mov edx, esi
mov rcx, r12
call fcn.140028550
mov rbp, rax
mov ebx, dword [rax]
cmp ebx, 0xffffffff
jne 0x1400262de
lea rdi, [0x14004eb38]
jmp 0x140026304
lea rcx, [r14 + 0x20]
call fcn.140018960
cmp ebx, eax
jb 0x1400262f5
int3
lea rcx, [r14 + 0x20]
mov rdx, rbx
call fcn.140028550
mov rdi, qword [rax]
mov ebx, dword [rbp + 4]
cmp ebx, 0xffffffff
jne 0x140026315
lea r9, [0x14004eb38]
jmp 0x14002633b
lea rcx, [r14 + 0x20]
call fcn.140018960
cmp ebx, eax
jb 0x14002632c
int3
lea rcx, [r14 + 0x20]
mov rdx, rbx
call fcn.140028550
mov r9, qword [rax]
mov rax, qword [rsp + 0x88]
mov r8, rdi
mov rdx, r15
mov qword [rsp + 0x28], rax
mov rcx, r14
mov dword [rsp + 0x20], esi
call qword [rsp + 0x80]
test al, al
je 0x140026395
mov rcx, r12
inc esi
call fcn.140018960
cmp esi, eax
jb 0x1400262c1
mov eax, r13d
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x70]
mov r12, qword [rsp + 0x30]
add rsp, 0x48
pop r15
pop r14
pop r13
pop rsi
ret
mov eax, 0xe000000a
jmp 0x140026375
mov eax, r13d
mov r12, qword [rsp + 0x30]
add rsp, 0x48
pop r15
pop r14
pop r13
pop rsi
ret

Function at 0x140026850
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov eax, 0x1038
call fcn.14003e920
sub rsp, rax
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rsp + 0x1020], rax
mov r8, rcx
lea r9, [rsp + 0x1048]
lea rcx, [rsp + 0x20]
mov edx, 0x1000
call fcn.14003e6fc
mov byte [rsp + 0x101f], 0
test eax, eax
jle 0x1400268bb
cmp eax, 0x1000
jae 0x1400268bb
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rsp + 0x1020]
xor rcx, rsp
call fcn.14003e7f0
add rsp, 0x1038
ret

Function at 0x1400268e0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
lea r11, [rdx + r8]
mov r9d, ecx
mov r10, rdx
not r9d
cmp rdx, r11
je 0x14002691f
lea r8, [0x140051730]
nop dword [rax]
movzx edx, byte [r10]
mov eax, r9d
inc r10
xor rdx, rax
shr eax, 8
movzx ecx, dl
mov r9d, dword [r8 + rcx*4]
xor r9d, eax
cmp r10, r11
jne 0x140026900
not r9d
mov eax, r9d
ret
Function at 0x140026930
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
lea r10, [rcx + rdx]
or r8d, 0xffffffff
mov r9, rcx
cmp rcx, r10
je 0x140026972
lea r11, [0x140051730]
nop word [rax + rax]
movzx edx, byte [r9]
mov eax, r8d
mov ecx, r8d
xor rdx, rax
shr ecx, 8
inc r9
movzx eax, dl
mov r8d, dword [r11 + rax*4]
xor r8d, ecx
cmp r9, r10
jne 0x140026950
not r8d
mov eax, r8d
ret
Function at 0x14002a0c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
sub rsp, 0xa0
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rbx, rdx
xor edx, edx
mov r13, r8
mov rsi, rcx
lea r8d, [rdx + 0x5f]
lea rcx, [rsp + 0x31]
mov r12, r9
mov byte [rsp + 0x30], 0
call fcn.14003e820
xor edi, edi
mov qword [rsp + 0x20], rdi
test bl, 7
je 0x14002a114
int3
mov qword [rsp + 0xd8], rbp
mov ebp, dword [rsp + 0xf0]
test bpl, 1
jne 0x14002a136
lea rcx, [rsp + 0x30]
mov rdx, r13
call fcn.140029a20
test r12, r12
je 0x14002a144
mov rdi, qword [r12]
mov qword [rsp + 0x20], rdi
mov eax, ebp
and eax, 0xe
cmp eax, 0xa
ja case.0x14002a165.1
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x2a2f8]
add rcx, rdx
jmp rcx
shr rbx, 3
lea rbx, [rsi + rbx*8]
cmp rsi, rbx
je case.0x14002a165.1
nop dword [rax + rax]
lea rdx, [rsp + 0x30]
mov r8d, ebp
mov rcx, rsi
call fcn.140029e10
add rsi, 8
cmp rsi, rbx
jne 0x14002a180
jmp case.0x14002a165.1
shr rbx, 3
lea r12, [rsi + rbx*8]
cmp rsi, r12
je case.0x14002a165.1
nop
lea rdx, [rsp + 0x30]
mov r8d, ebp
mov rcx, rsi
mov rbx, rdi
mov rdi, qword [rsi]
call fcn.140029e10
xor qword [rsi], rbx
add rsi, 8
cmp rsi, r12
jne 0x14002a1b0
jmp case.0x14002a165.1
shr rbx, 3
lea r12, [rsi + rbx*8]
cmp rsi, r12
je case.0x14002a165.1
nop dword [rax + rax]
lea rdx, [rsp + 0x30]
mov r8d, ebp
mov rcx, rsi
mov rbx, rdi
mov rdi, qword [rsi]
call fcn.140029e10
xor qword [rsi], rbx
xor rdi, qword [rsi]
add rsi, 8
cmp rsi, r12
jne 0x14002a1f0
jmp case.0x14002a165.1
shr rbx, 3
lea rbx, [rsi + rbx*8]
cmp rsi, rbx
je case.0x14002a165.1
nop dword [rax + rax]
mov qword [rsp + 0x20], rdi
mov rdi, qword [rsi]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
mov r8d, ebp
call fcn.140029b60
mov r11, qword [rsp + 0x20]
add rsi, 8
xor qword [rsi - 8], r11
cmp rsi, rbx
jne 0x14002a230
jmp case.0x14002a165.1
shr rbx, 3
lea rbx, [rsi + rbx*8]
cmp rsi, rbx
je case.0x14002a165.1
nop dword [rax + rax]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
mov r8d, ebp
call fcn.140029b60
mov r11, qword [rsp + 0x20]
add rsi, 8
xor qword [rsi - 8], r11
cmp rsi, rbx
jne 0x14002a270
jmp case.0x14002a165.1
shr rbx, 3
lea rbx, [rsi + rbx*8]
cmp rsi, rbx
je case.0x14002a165.1
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
mov r8d, ebp
call fcn.140029b60
mov r11, qword [rsp + 0x20]
add rsi, 8
xor qword [rsi - 8], r11
inc rdi
mov qword [rsp + 0x20], rdi
cmp rsi, rbx
jne 0x14002a2a3
mov rbp, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14003e7f0
add rsp, 0xa0
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x14002a6b0
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x90
mov edx, InitCommonControls
mov rbx, rcx
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
xor edx, edx
lea rcx, [rsp + 0x24]
lea r8d, [rdx + 0x6c]
mov rdi, rax
mov dword [rsp + 0x20], 0x70
call fcn.14003e820
cmp qword [rdi + 0x38], 0
je 0x14002a737
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], 0
mov rax, qword [rdi + 0x38]
lea edx, [r8 + 0x69]
mov rcx, rbx
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x50], 1
call fcn.140022f40
lea rcx, [rsp + 0x20]
call qword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov edx, 0x69
mov rcx, rbx
lea r8d, [rdx - 0x68]
call fcn.140022f40
mov rbx, qword [rsp + 0xa0]
add rsp, 0x90
pop rdi
ret

Function at 0x14002ae00
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
lea r9, [rcx + rdx]
mov r8d, 0x811c9dc5
cmp rcx, r9
je 0x14002ae25
nop
movzx eax, byte [rcx]
inc rcx
xor r8d, eax
imul r8d, r8d, 0x1000193
cmp rcx, r9
jne 0x14002ae10
mov eax, r8d
shr eax, 0x10
xor eax, r8d
ret

Function at 0x14002dd30
Capabilities:
Hash data with md5

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x90
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r12, rcx
or rcx, 0xffffffffffffffff
xor r8d, r8d
xor eax, eax
mov rdi, r12
mov r13, rdx
repne scasb al, byte [rdi]
mov dword [rsp + 0x20], 0x67452301
mov dword [rsp + 0x24], 0xefcdab89
not rcx
mov dword [rsp + 0x28], 0x98badcfe
mov dword [rsp + 0x2c], 0x10325476
mov dword [rsp + 0x70], r8d
mov qword [rsp + 0x78], r8
xor ebx, ebx
lea rbp, [rcx - 1]
nop dword [rax]
mov edx, 0x40
mov rsi, rbp
sub edx, r8d
sub rsi, rbx
mov eax, edx
cmp rax, rsi
cmovb esi, edx
test esi, esi
je 0x14002dde2
lea rcx, [rsp + r8 + 0x30]
lea rdx, [rbx + r12]
mov r8d, esi
mov edi, esi
call fcn.14003ef10
mov r8d, dword [rsp + 0x70]
add qword [rsp + 0x78], rdi
add r8d, esi
add rbx, rdi
mov dword [rsp + 0x70], r8d
cmp r8d, 0x40
jne 0x14002ddfa
lea rcx, [rsp + 0x20]
call fcn.14002d3d0
xor r8d, r8d
mov dword [rsp + 0x70], r8d
cmp rbx, rbp
jne 0x14002dda0
lea rcx, [rsp + 0x20]
mov rdx, r13
call fcn.14002dbe0
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14003e7f0
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x14002de40
Capabilities:
Hash data with md5

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x90
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r13, r8
xor r8d, r8d
mov rbp, rdx
mov r12, rcx
mov dword [rsp + 0x20], 0x67452301
mov dword [rsp + 0x24], 0xefcdab89
mov dword [rsp + 0x70], r8d
mov qword [rsp + 0x78], r8
mov dword [rsp + 0x28], 0x98badcfe
mov dword [rsp + 0x2c], 0x10325476
xor edi, edi
mov qword [rsp + 0xd8], rbx
nop word [rax + rax]
mov ecx, 0x40
mov rsi, rbp
sub ecx, r8d
sub rsi, rdi
mov eax, ecx
cmp rax, rsi
cmovb esi, ecx
test esi, esi
je 0x14002def2
lea rcx, [rsp + r8 + 0x30]
lea rdx, [rdi + r12]
mov r8d, esi
mov ebx, esi
call fcn.14003ef10
mov r8d, dword [rsp + 0x70]
add qword [rsp + 0x78], rbx
add r8d, esi
add rdi, rbx
mov dword [rsp + 0x70], r8d
cmp r8d, 0x40
jne 0x14002df0a
lea rcx, [rsp + 0x20]
call fcn.14002d3d0
xor r8d, r8d
mov dword [rsp + 0x70], r8d
cmp rdi, rbp
jne 0x14002deb0
lea rcx, [rsp + 0x20]
mov rdx, r13
call fcn.14002dbe0
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14003e7f0
add rsp, 0x90
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x14002f220
Capabilities:
Check if file exists
Create process on windows
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x5b0]
sub rsp, 0x6b0
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rbp + 0x5a0], rax
mov rbx, rcx
lea rdx, [rbp + 0xf0]
xor edi, edi
xor r9d, r9d
mov r8d, 0x104
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.14001ffc0
test al, al
je 0x14002f3fc
lea r8, [rbp - 0x20]
xor r9d, r9d
mov edx, 0x104
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
je 0x14002f3fc
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14002f3fc
lea r8d, [rdi + 0x60]
lea rcx, [rsp + 0x78]
xor edx, edx
mov dword [rsp + 0x70], 0x68
call fcn.14003e820
lea r9, [rbp + 0xf0]
lea r8, str._s.tmp
lea rcx, [rbp + 0x200]
mov edx, 0x104
call fcn.1400073f0
lea rcx, [rbp + 0xf0]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rbp - 0x20]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rbp + 0x200]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
lea rdx, [rbp + 0x200]
lea rcx, [rbp + 0xf0]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x14002f38f
lea rdx, [rbp + 0xf0]
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x14002f38f
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x14002f38f
lea rcx, [rsp + 0x50]
call fcn.140020080
test eax, eax
je 0x14002f38b
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x58], rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x50], rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
jmp 0x14002f3fe
lea rax, [rbp + 0xf0]
lea r9, [rbp - 0x20]
lea r8, str.__s___UPDATE:
lea rcx, [rbp + 0x310]
mov edx, 0x288
mov qword [rsp + 0x20], rax
call fcn.1400073f0
lea r11, [rsp + 0x50]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
lea rdx, [rbp + 0x310]
lea rcx, [rbp - 0x20]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x14002f36b
xor al, al
mov rcx, qword [rbp + 0x5a0]
xor rcx, rsp
call fcn.14003e7f0
lea r11, [rsp + 0x6b0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret