joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401f33b0
Capabilities:
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x20
movsxd r8, dword [rcx + 0x130]
lea r11, [0x140db6590]
mov rax, qword [rcx + 0x138]
mov r10, rdx
mov r9, rcx
mov ebx, dword [rax + r8*4 - 4]
not ebx
movzx eax, dl
movzx r8d, bl
shr ebx, 8
xor r8, rax
mov rax, rdx
sar rax, 8
movzx edx, al
mov rax, r10
xor ebx, dword [r11 + r8*4]
movzx ecx, bl
xor rdx, rcx
shr ebx, 8
sar rax, 0x10
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
mov rax, r10
xor rdx, rcx
sar rax, 0x18
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
mov rax, r10
xor rdx, rcx
sar rax, 0x20
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
mov rax, r10
xor rdx, rcx
sar rax, 0x28
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
mov rax, r10
xor rdx, rcx
sar rax, 0x30
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
mov rax, r10
xor rdx, rcx
sar rax, 0x38
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
xor rdx, rcx
mov rcx, qword [r9]
xor ebx, dword [r11 + rdx*4]
not ebx
cmp dword [rcx + 0x419c], ebx
jne 0x1401f34a6
mov r8, r10
mov edx, recv
mov ecx, ebx
call fcn.14020a960
mov eax, ebx
add rsp, 0x20
pop rbx
ret

Function at 0x1401f34b0
Capabilities:
Hash data with crc32

Disassembly:
push rbx
sub rsp, 0x20
movsxd r8, dword [rcx + 0x130]
lea r11, [0x140db6590]
mov rax, qword [rcx + 0x138]
mov r9, rcx
movsxd r10, edx
mov ebx, dword [rax + r8*4 - 4]
not ebx
movzx eax, r10b
movzx r8d, bl
shr ebx, 8
xor r8, rax
mov eax, r10d
sar eax, 8
movzx edx, al
mov eax, r10d
xor ebx, dword [r11 + r8*4]
movzx ecx, bl
xor rdx, rcx
shr ebx, 8
sar eax, 0x10
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
mov eax, r10d
xor rdx, rcx
sar eax, 0x18
xor ebx, dword [r11 + rdx*4]
movzx ecx, bl
shr ebx, 8
movzx edx, al
xor rdx, rcx
mov rcx, qword [r9]
xor ebx, dword [r11 + rdx*4]
not ebx
cmp dword [rcx + 0x419c], ebx
jne 0x1401f3548
mov r8, r10
mov edx, 4
mov ecx, ebx
call fcn.14020a960
mov eax, ebx
add rsp, 0x20
pop rbx
ret
Function at 0x1401f3550
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 0x18
vmovss xmm2, dword [rcx + 0x150]
vmovss xmm0, dword [rdx]
vmovss xmm1, dword [rdx + 4]
mov rax, qword [rcx + 0x138]
lea r10, [0x140db6590]
vmovss xmm3, dword [rcx + 0x154]
movsxd rcx, dword [rcx + 0x130]
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
shr r8, 0x18
xor r9d, dword [r10 + rdx*4]
movzx ecx, r9b
shr r9d, 8
movzx edx, al
xor rdx, rcx
xor r9d, dword [r10 + rdx*4]
movzx edx, r9b
shr r9d, 8
xor r8, rdx
xor r9d, dword [r10 + r8*4]
not r9d
mov eax, r9d
add rsp, 0x18
ret

Function at 0x1401f7d50
Capabilities:
Hash data with crc32

Disassembly:
xor edx, edx
xor ecx, ecx
jmp fcn.1401f7d60
Function at 0x1401f7d60
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rax, qword [0x14143b040]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x141443c60]
mov edi, ecx
cmp byte [rbx + 0x4f1d], 0
jne 0x1401f7dc1
cmp byte [rbx + 0x4f1e], 0
jne 0x1401f7dc1
movsx r9d, word [rbx + 0x6088]
lea r8, [0x1413cf598]
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x20]
call fcn.1401e1610
test dil, 2
je 0x1401f7efd
jmp 0x1401f7e50
vmovss xmm1, dword [rbx + 0x3ad8]
vmulss xmm0, xmm1, dword [0x14140ea78]
vaddss xmm2, xmm0, dword [rbx + 0x100]
vmulss xmm1, xmm1, dword [0x14140ea60]
vaddss xmm0, xmm1, dword [rbx + 0x104]
movsx r9d, word [rbx + 0x6088]
lea r8, [0x1413cf598]
xor eax, eax
mov dword [rbx + 0x4b5c], 1
vmovss dword [rbx + 0x4b70], xmm0
vmovss dword [rbx + 0x4b6c], xmm2
mov qword [rbx + 0x4b74], rax
lea rcx, [rsp + 0x20]
mov byte [rbx + 0x4b98], 1
mov edx, reloc.WS2_32.dll_recv
vmovss xmm0, dword [rbx + 0x3b34]
vmulss xmm1, xmm0, dword [0x14140e810]
or dword [rbx + 0x4b58], 0x41
vmovss dword [rbx + 0x4bc0], xmm1
call fcn.1401e1610
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov edx, r10d
test r9b, r9b
je 0x1401f7ea0
lea r11, [0x140db6590]
cmp r9b, 0x23
jne 0x1401f7e83
cmp byte [r8], r9b
jne 0x1401f7e83
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 0x1401f7e70
mov rcx, qword [0x141443c60]
not edx
add rcx, 0x4130
call fcn.1401e22d0
test rax, rax
je 0x1401f7efd
cmp byte [rax + 0xf3], 0
je 0x1401f7efd
mov byte [rax + 0xf8], 1
lea r8, [0x1413cf598]
mov byte [rax + 0xfb], 1
lea rcx, [rsp + 0x20]
mov byte [rax + 0x118], 1
mov edx, reloc.WS2_32.dll_recv
inc word [rbx + 0x6088]
movsx r9d, word [rbx + 0x6088]
call fcn.1401e1610
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x20b0347
call fcn.1401ef0a0
mov al, 1
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1403f4b10
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret
Function at 0x1401fdaf0
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 + 0x6240], 0
lea rbx, [rcx + 0x6248]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
je 0x1401fdb97
mov r9d, dword [rbx + 4]
mov qword [rsp + 0x30], r14
xor r14d, r14d
test r9d, r9d
jns 0x1401fdb4a
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.140002920
mov r8, rsi
mov dword [rbx], r14d
mov rdx, rbp
mov rcx, rbx
call fcn.1401e2940
mov eax, dword [rbx]
mov edx, 1
mov r9, qword [rdi + 0x6240]
test eax, eax
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x6250]
cmove ecx, r14d
test rax, rax
movsxd r8, ecx
lea rcx, [0x141443c2d]
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r14, qword [rsp + 0x30]
jmp 0x1401fdb9f
mov rcx, rbx
call fcn.1401e2940
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret

Function at 0x1401fde00
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
mov rbx, qword [0x141443c60]
xor ebp, ebp
cmp byte [rbx + 0x6180], bpl
jne 0x1401fdedf
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x1401fded8
lea r8, [rsp + 0x30]
mov qword [rsp + 0x30], rbp
call fcn.1401e1a90
mov rsi, rax
test rax, rax
je 0x1401fded8
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x1401fde64
mov rcx, rax
call fcn.1401fe030
mov r8, qword [0x141443c60]
test r8, r8
je 0x1401fdecf
movsx rdx, word [r8 + 0x6320]
lea rcx, [r8 + 0x6324]
mov r9d, dword [r8 + 0x40a8]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r9d
je 0x1401fdec4
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x6320], cx
movsx rax, cx
lea rcx, [r8 + 0x6324]
lea rcx, [rcx + rax*8]
mov dword [rcx], r9d
mov dword [rcx + 4], ebp
inc word [rcx + 6]
inc dword [r8 + 0x631c]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov byte [rbx + 0x6180], 1
vmovss xmm0, dword [rbx + 0x6184]
vxorps xmm1, xmm1, xmm1
vcomiss xmm0, xmm1
jbe 0x1401fdf75
vsubss xmm0, xmm0, dword [rbx + 0x18]
vcomiss xmm1, xmm0
vmovss dword [rbx + 0x6184], xmm0
jb 0x1401fdf75
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x1401fdf68
mov rax, qword [0x141443c60]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov dword [rax + 0x6184], ebp
call fcn.1401fe290
lea rdx, [0x1413cf9bc]
mov rcx, rdi
mov rsi, rax
call fcn.1401e18e0
mov rdi, rax
test rax, rax
je 0x1401fdf6f
mov r8, qword [rsp + 0x30]
mov r9, rax
mov edx, 1
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
jmp 0x1401fdf6f
mov byte [rbx + 0xd6], 1
mov dword [rbx + 0x6184], ebp
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x1401fdf90
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 8
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10, qword [0x141443c60]
mov r11d, 0xffffffff
mov eax, r11d
test r9b, r9b
je 0x1401fdff3
mov qword [rsp], rbx
lea rbx, [0x140db6590]
nop dword [rax]
cmp r9b, 0x23
jne 0x1401fdfd3
cmp byte [r8], r9b
jne 0x1401fdfd3
cmp byte [r8 + 1], r9b
cmove eax, r11d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [rbx + rdx*4]
test r9b, r9b
jne 0x1401fdfc0
mov rbx, qword [rsp]
movsxd rcx, dword [r10 + 0x6198]
not eax
mov r8, qword [r10 + 0x61a0]
lea rdx, [rcx + rcx*8]
lea rcx, [r8 + rdx*8]
cmp r8, rcx
je 0x1401fe01f
cmp dword [r8 + 8], eax
je 0x1401fe026
add r8, 0x48
cmp r8, rcx
jne 0x1401fe010
xor eax, eax
add rsp, 8
ret
mov rax, r8
add rsp, 8
ret
Function at 0x140201800
Capabilities:
Hash data with crc32

Disassembly:
test r8d, r8d
jle 0x140201a0c
mov r11, rsp
push rbp
push rsi
sub rsp, 0x58
mov rax, qword [0x14143b040]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov qword [r11 - 0x18], rdi
mov rbp, rcx
mov qword [r11 - 0x20], r14
lea rdi, [rdx + 0x18]
mov qword [r11 - 0x28], r15
mov r14d, 0xffffffff
lea r15, [0x140db6590]
mov qword [r11 + 0x18], rbx
movsxd rsi, r8d
nop dword [rax + rax]
mov edx, dword [rdi - 0x18]
test edx, edx
je 0x1402019d4
mov rcx, rbp
call fcn.140200e10
mov edx, dword [rdi - 0x14]
mov rbx, rax
test edx, edx
je 0x14020187e
lea rcx, [rbp + 0x6140]
call fcn.1401e22d0
mov r11, rax
jmp 0x140201881
xor r11d, r11d
mov qword [rbx + 0x18], r11
movsx eax, word [rdi]
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
movsx eax, word [rdi + 2]
vmovss dword [rbx + 0x48], xmm1
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmovss dword [rbx + 0x4c], xmm0
movsx eax, word [rdi + 4]
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
movsx eax, word [rdi + 6]
vmovss dword [rbx + 0x50], xmm1
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmovss dword [rbx + 0x54], xmm0
movsx eax, word [rdi + 8]
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
movsx eax, word [rdi + 0xa]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [rbx + 0xc8]
and eax, 0xfffffe49
or eax, 0x49
mov dword [rbx + 0xc8], eax
vmovss dword [rbx + 0x58], xmm1
vmovss dword [rbx + 0x5c], xmm0
test r11, r11
je 0x14020191b
cmp qword [r11 + 0x20], 0
jne 0x140201910
mov qword [r11 + 0x20], rbx
jmp 0x14020191b
cmp qword [r11 + 0x28], 0
jne 0x14020191b
mov qword [r11 + 0x28], rbx
mov eax, dword [rdi - 0xc]
mov r9, rbx
mov dword [rbx + 0xbc], eax
movsx eax, byte [rdi - 8]
mov dword [rbx + 0x60], eax
mov ecx, dword [rdi - 4]
mov eax, dword [rbx + 0xc]
and ecx, 0x3fc20
or eax, dword [rbx + 4]
or eax, ecx
mov dword [rbx + 8], ecx
mov dword [rbx + 0x10], eax
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14020195c
nop
mov r9, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140201950
mov r9d, dword [r9]
lea r8, [0x1413cfb50]
mov edx, socket
lea rcx, [rsp + 0x20]
call fcn.1401e1610
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov edx, r14d
test r9b, r9b
je 0x1402019b8
cmp r9b, 0x23
jne 0x14020199b
cmp byte [r8], r9b
jne 0x14020199b
cmp byte [r8 + 1], r9b
cmove edx, r14d
movzx ecx, dl
movzx eax, r9b
movzx r9d, byte [r8]
xor rcx, rax
shr edx, 8
inc r8
xor edx, dword [r15 + rcx*4]
test r9b, r9b
jne 0x140201988
mov rcx, qword [0x141443c60]
not edx
add rcx, 0x4130
call fcn.1401e22d0
mov qword [rbx + 0x88], rax
add rdi, 0x24
sub rsi, 1
jne 0x140201850
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1403f4b10
add rsp, 0x58
pop rsi
pop rbp
ret
Function at 0x140209c50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x50
mov esi, r8d
mov rbx, rdx
mov rbp, rcx
xor r14d, r14d
nop word [rax + rax]
mov eax, dword [rbx]
mov dword [rsp + 0x20], eax
mov rax, qword [rbx + 0x18]
mov word [rsp + 0x32], r14w
test rax, rax
je 0x140209c9d
mov eax, dword [rax]
mov dword [rsp + 0x24], eax
jmp 0x140209ca2
mov dword [rsp + 0x24], r14d
mov eax, dword [rbx + 0x10]
shr eax, 0xa
test al, 1
je 0x140209ccd
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x140209ccd
mov rax, qword [rax + 0x3b0]
test rax, rax
je 0x140209ccd
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x28], eax
jmp 0x140209cd2
mov dword [rsp + 0x28], r14d
mov eax, dword [rbx + 0xbc]
mov dword [rsp + 0x2c], eax
cmp qword [rbx + 0x20], r14
je 0x140209cec
movzx eax, byte [rbx + 0x60]
mov byte [rsp + 0x30], al
jmp 0x140209cf1
mov byte [rsp + 0x30], 0xff
vcvttss2si ecx, dword [rbx + 0x48]
mov eax, dword [rbx + 8]
mov r8d, dword [rbp + 0x24]
and eax, 0x3fc20
mov dword [rsp + 0x34], eax
vcvttss2si eax, dword [rbx + 0x4c]
mov word [rsp + 0x38], cx
vcvttss2si ecx, dword [rbx + 0x50]
mov word [rsp + 0x3a], ax
vcvttss2si eax, dword [rbx + 0x54]
mov word [rsp + 0x3c], cx
vcvttss2si ecx, dword [rbx + 0x58]
mov word [rsp + 0x3e], ax
vcvttss2si eax, dword [rbx + 0x5c]
mov word [rsp + 0x40], cx
mov ecx, dword [rbp + 0x20]
mov word [rsp + 0x42], ax
mov byte [rsp + 0x31], sil
cmp ecx, r8d
jne 0x140209d76
inc ecx
test r8d, r8d
je 0x140209d5e
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x140209d63
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
lea rcx, [rbp + 0x20]
vzeroupper
call fcn.14020b8d0
movsxd rax, dword [rbp + 0x20]
mov rcx, qword [rbp + 0x28]
vmovups ymm0, ymmword [rsp + 0x20]
lea rdx, [rax + rax*8]
mov eax, dword [rsp + 0x40]
vmovups ymmword [rcx + rdx*4], ymm0
mov dword [rcx + rdx*4 + 0x20], eax
inc dword [rbp + 0x20]
mov rdx, qword [rbx + 0x20]
test rdx, rdx
je 0x140209db0
lea r8d, [rsi + 1]
mov rcx, rbp
vzeroupper
call fcn.140209c50
mov rbx, qword [rbx + 0x28]
test rbx, rbx
je 0x140209dc0
inc esi
jmp 0x140209c80
vzeroupper
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop r14
ret
Function at 0x14020f940
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
mov rax, qword [0x141443c60]
xor r11d, r11d
mov rbx, qword [rax + 0x4fe8]
mov eax, dword [rbx + 4]
bt eax, 0x18
jae 0x14020f968
mov ecx, dword [rbx + 0x6c]
test ecx, ecx
cmovg cx, r11w
jmp 0x14020f96c
movzx ecx, r11w
mov r8, qword [rbx + 0x188]
mov word [rbx + 0x22a], cx
vxorps xmm1, xmm1, xmm1
vmovss xmm0, dword [r8 + 0xc0]
vucomiss xmm0, xmm1
jp 0x14020f993
movzx edx, r11w
je 0x14020f996
movzx edx, cx
shr eax, 0x19
and ax, 1
mov word [rbx + 0x22c], dx
mov word [rbx + 0x226], ax
vmovss xmm0, dword [r8 + 0xc4]
vucomiss xmm0, xmm1
jp 0x14020f9c0
jne 0x14020f9c0
movzx eax, r11w
mov word [rbx + 0x228], ax
xor al, 1
mov byte [rbx + 0x242], al
cmp r11w, cx
jge 0x14020fa6a
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov rdi, r11
nop word [rax + rax]
mov rsi, qword [rbx + 0x28]
movsx r8, word [rdi + rsi]
mov rdx, r8
cmp r8d, r11d
je 0x14020fa4a
movsx eax, cx
cmp edx, eax
jl 0x14020fa4a
movsx rax, word [rsi + rdx*2]
mov r10, rdx
mov r9, qword [rbx + 0x18]
imul r8, r8, 0x70
imul rdx, rax, 0x70
movzx eax, word [r8 + r9 + 0x52]
movzx ecx, word [rdx + r9 + 0x52]
mov word [rdx + r9 + 0x52], ax
mov word [r8 + r9 + 0x52], cx
mov rdx, qword [rbx + 0x28]
movzx eax, word [rdi + rdx]
movzx ecx, word [rdx + r10*2]
mov word [rdx + r10*2], ax
mov word [rdi + rdx], cx
movsx eax, word [rbx + 0x22a]
inc r11d
add rdi, 2
movzx ecx, ax
cmp r11d, eax
jl 0x14020f9f0
mov rdi, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
pop rbx
ret
Function at 0x140210520
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rdi, qword [0x141443c60]
mov r10, rcx
mov r9, qword [rcx + 0x188]
movsxd rax, edx
imul rbx, rax, 0x70
add rbx, qword [rcx + 0x18]
mov dword [rcx + 0x74], edx
test dword [rbx], 0x10000
vmovss xmm3, dword [rbx + 0x34]
je 0x140210563
vaddss xmm3, xmm3, dword [rcx + 0x90]
lea rsi, [r9 + 0x140]
vmovss dword [rsi], xmm3
vmovss xmm0, dword [rcx + 0x88]
vaddss xmm2, xmm0, dword [rcx + 0x7c]
vsubss xmm0, xmm3, dword [r9 + 0x58]
vsubss xmm1, xmm0, dword [r9 + 0x184]
vmovss dword [r9 + 0x188], xmm1
vmovss dword [r9 + 0x144], xmm2
vmovss dword [r9 + 0x158], xmm3
vmovss dword [r9 + 0x148], xmm3
mov eax, dword [rcx + 0x8c]
mov dword [r9 + 0x178], eax
movsx eax, byte [rbx + 0x6a]
mov dword [r9 + 0x198], eax
vmovss dword [r9 + 0x25c], xmm2
mov eax, dword [rbx + 0x34]
mov dword [r9 + 0x258], eax
mov eax, dword [rbx + 0x38]
mov dword [r9 + 0x260], eax
mov eax, dword [rbx + 0x3c]
mov dword [r9 + 0x200], eax
movzx eax, byte [rbx + 0x68]
mov byte [r9 + 0xf8], al
cmp byte [rbx + 0x68], 0
je 0x14021060c
xor eax, eax
mov dword [rdi + 0x4b08], eax
mov dword [rdi + 0x4b10], eax
test dword [rcx + 4], 0x100000
je 0x14021061d
mov r8d, 2
jmp 0x14021069b
vmovss xmm4, dword [rbx + 0x20]
vmovss xmm3, dword [rbx + 0x24]
vmovss xmm2, dword [rbx + 0x28]
vmovss xmm1, dword [rbx + 0x2c]
vmovups xmm0, xmmword [rbx + 0x20]
mov rax, qword [r9 + 0x2e0]
vmovups xmmword [r9 + 0x278], xmm0
vmovss dword [rsp + 0x20], xmm4
vmovss dword [rsp + 0x24], xmm3
vmovss dword [rsp + 0x28], xmm2
vmovss dword [rsp + 0x2c], xmm1
vmovss dword [rax + 0x60], xmm4
vmovss dword [rax + 0x64], xmm3
vmovss dword [rax + 0x68], xmm2
vmovss dword [rax + 0x6c], xmm1
mov rax, qword [r9 + 0x2e0]
vmovups xmm0, xmmword [rsp + 0x20]
movsxd rdx, dword [rax + 0x98]
mov rcx, qword [rax + 0xa0]
add rdx, rdx
vmovups xmmword [rcx + rdx*8 - 0x10], xmm0
movzx r8d, word [rbx + 0x5c]
mov rdx, qword [r9 + 0x2e0]
mov rcx, qword [r10 + 0x1a0]
call fcn.1401d9c80
cmp byte [rdi + 0x6238], 0
je 0x1402106d9
cmp byte [rbx + 0x68], 0
jne 0x1402106d9
xor r8d, r8d
lea rdx, [0x1413d04ac]
mov rcx, rsi
call fcn.1401fdc00
mov dword [rdi + 0x6268], 0x7f7fffff
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x1402130b0
Capabilities:
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
mov rax, qword [0x141443c60]
mov rdx, qword [rax + 0x4fe8]
cmp ecx, 0xffffffff
jne 0x1402130ca
cmp dword [rdx + 0x74], ecx
cmovne ecx, dword [rdx + 0x74]
cmp ecx, dword [rdx + 0x6c]
mov eax, 0xffffffff
cmove ecx, eax
test byte [rdx + 4], 7
je 0x140213149
mov r10d, dword [rdx]
lea r8, [0x1413d0501]
movzx eax, word [rdx + 0x78]
lea r11, [0x140db6590]
not r10d
mov word [rdx + 0x224], cx
mov ecx, r10d
mov byte [rdx + 0x23b], 1
mov word [rdx + 0x7a], ax
mov r9b, 0x23
nop dword [rax + rax]
cmp r9b, 0x23
jne 0x140213123
cmp byte [r8], r9b
jne 0x140213123
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 0x140213110
not ecx
xor edx, edx
jmp fcn.1401f8130
ret
Function at 0x1402ef2c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push r14
push r15
sub rsp, 0x20
mov rbp, rcx
mov r15d, edx
lea r9d, [rdx + 1]
add r15, r15
add r9, r9
lea rax, [0x1413a1907]
mov r14, r8
mov ecx, dword [rcx + r9*8 + 0x18]
mov esi, ecx
shr esi, 8
not esi
and esi, 1
cmp dword [rbp + r15*8 + 0x18], 0
je 0x1402ef42a
test esi, esi
mov qword [rsp + 0x40], rdi
lea rcx, [0x1413c9648]
mov rbx, 0xffffffffffffffff
cmove rax, rcx
mov rdi, rbx
inc rdi
cmp byte [rax + rdi], 0
jne 0x1402ef324
movsxd rcx, dword [r14 + 0x200]
mov rdx, rax
add rcx, r14
mov r8d, edi
call sub.VCRUNTIME140.dll_memcpy
add dword [r14 + 0x200], edi
movsxd rax, dword [r14 + 0x200]
mov byte [rax + r14], 0
mov rax, qword [rbp + 0x320]
mov ecx, dword [rbp + r15*8 + 0x18]
call qword [rax + 0x78]
mov rdi, qword [rsp + 0x40]
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x1402ef370
movsxd rcx, dword [r14 + 0x200]
mov rdx, rax
add rcx, r14
mov r8d, ebx
call sub.VCRUNTIME140.dll_memcpy
add dword [r14 + 0x200], ebx
movsxd rax, dword [r14 + 0x200]
mov byte [rax + r14], 0
mov rax, qword [rbp + 0x320]
cmp dword [rax + 0x60], 0
je 0x1402ef4f4
mov rax, qword [rbp + 0x310]
mov rdx, qword [rax + 0xf0]
movzx eax, byte [rdx + 0x80]
lea rcx, [rax + rax*2]
add rcx, rcx
mov dword [rdx + rcx*8 + 0x94], 1
mov rax, qword [rbp + 0x310]
mov rdx, qword [rax + 0xf0]
movzx eax, byte [rdx + 0x80]
lea rcx, [rax + rax*2]
mov eax, dword [rbp + r15*8 + 0x18]
add rcx, rcx
mov dword [rdx + rcx*8 + 0x98], eax
mov rax, qword [rbp + 0x310]
mov rdx, qword [rax + 0xf0]
movzx eax, byte [rdx + 0x80]
lea rcx, [rax + rax*2]
add rcx, rcx
mov byte [rdx + rcx*8 + 0xb1], 1
jmp 0x1402ef4b8
movzx ebx, cl
lea rdx, [0x1413ed528]
test esi, esi
lea rcx, [0x1413c9648]
mov r9d, ebx
cmove rax, rcx
lea rcx, [0x1413ed530]
cmp ebx, 9
mov r8, rax
cmovbe rdx, rcx
mov rcx, r14
call fcn.14023b930
mov rax, qword [rbp + 0x320]
cmp dword [rax + 0x60], 0
je 0x1402ef4f4
mov rax, qword [rbp + 0x310]
mov rdx, qword [rax + 0xf0]
movzx eax, byte [rdx + 0x80]
lea rcx, [rax + rax*2]
add rcx, rcx
mov dword [rdx + rcx*8 + 0x94], 2
mov rax, qword [rbp + 0x310]
mov rdx, qword [rax + 0xf0]
movzx eax, byte [rdx + 0x80]
lea rcx, [rax + rax*2]
add rcx, rcx
mov dword [rdx + rcx*8 + 0x98], ebx
mov rax, qword [rbp + 0x310]
xor sil, 1
mov rdx, qword [rax + 0xf0]
movzx eax, byte [rdx + 0x80]
lea rcx, [rax + rax*2]
add rcx, rcx
mov byte [rdx + rcx*8 + 0xb0], sil
mov rax, qword [rbp + 0x310]
mov rcx, qword [rax + 0xf0]
inc byte [rcx + 0x80]
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rsi
ret
Function at 0x140311430
Capabilities:
Decompress data using quicklz

Disassembly:
movzx eax, byte [rcx + 4]
mov r11d, edx
mov r9d, edx
shr r11d, 0x1a
and r11d, 1
shl r9d, 0x12
lea r10, [rax + 1]
inc al
mov byte [rcx + 4], al
mov eax, edx
and eax, 0x7ff
shl r10, 4
add r10, rcx
mov ecx, r11d
shl ecx, 0x17
or ecx, eax
mov eax, edx
shl ecx, 5
and eax, 0x3ff0000
or ecx, eax
shl edx, 0x11
shl ecx, 3
mov eax, r11d
movsxd r8, ecx
not edx
shl eax, 0x1e
and edx, 0x40000000
movsxd rcx, eax
and r11d, 7
xor rdx, rcx
shl r11d, 0x16
mov ecx, r9d
mov eax, r11d
not ecx
mov dword [r10], 2
sar rcx, 7
or r8, rdx
and ecx, 0x400000
sar r8, 7
xor rcx, rax
mov byte [r10 + 4], 2
or r8, rcx
mov eax, 3
mov qword [r10 + 8], r8
ret