joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401a8db0
Capabilities:
Parse pe header

Disassembly:
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x1401a8dc8
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
je 0x1401a8dd0
ret
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret

Function at 0x1401a8de0
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
movzx r8d, word [rcx + 6]
lea rax, [rcx + rax + 0x18]
test r8w, r8w
je 0x1401a8e2d
lea ecx, [r8 - 1]
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
mov rcx, r8
cmp rdx, r8
jb 0x1401a8e24
add ecx, dword [rax + 8]
cmp rdx, rcx
jb 0x1401a8e2f
add rax, 0x28
cmp rax, r9
jne 0x1401a8e10
xor eax, eax
ret

Function at 0x1401a8e30
Capabilities:
Parse pe header

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, rcx
call sym.strlen
cmp rax, 8
ja 0x1401a8ec0
mov rdx, qword [0x140303190]
xor ebx, ebx
cmp word [rdx], 0x5a4d
jne 0x1401a8eae
movsxd rax, dword [rdx + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
jne 0x1401a8eae
cmp word [rax + 0x18], 0x20b
jne 0x1401a8eae
movzx edx, word [rax + 0x14]
lea rbx, [rax + rdx + 0x18]
movzx edx, word [rax + 6]
test dx, dx
je 0x1401a8ec0
lea eax, [rdx - 1]
lea rax, [rax + rax*4]
lea rdi, [rbx + rax*8 + 0x28]
jmp 0x1401a8e99
add rbx, 0x28
cmp rbx, rdi
je 0x1401a8ec0
mov r8d, 8
mov rdx, rsi
mov rcx, rbx
call sym.strncmp
test eax, eax
jne 0x1401a8e90
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
xor ebx, ebx
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

Function at 0x1401a8ed0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x140303190]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x1401a8ef0
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x1401a8ef8
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1401a8ef0
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x1401a8f4d
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x1401a8f44
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x1401a8ef0
add rax, 0x28
cmp rax, r9
jne 0x1401a8f30
xor eax, eax
ret

Function at 0x1401a8f50
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140303190]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x1401a8f6f
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1401a8f78
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x1401a8f6f
movzx ecx, word [rax + 6]
mov eax, ecx
ret
Function at 0x1401a8f90
Capabilities:
Parse pe header

Disassembly:
mov r8, qword [0x140303190]
xor eax, eax
cmp word [r8], 0x5a4d
jne 0x1401a8fb0
movsxd rdx, dword [r8 + 0x3c]
add rdx, r8
cmp dword [rdx], 0x4550
je 0x1401a8fb8
ret
cmp word [rdx + 0x18], 0x20b
jne 0x1401a8fb0
movzx eax, word [rdx + 0x14]
movzx r8d, word [rdx + 6]
lea rax, [rdx + rax + 0x18]
test r8w, r8w
je 0x1401a9000
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea rdx, [rax + rdx*8 + 0x28]
nop dword [rax]
test byte [rax + 0x27], 0x20
je 0x1401a8ff7
test rcx, rcx
je 0x1401a8fb0
sub rcx, 1
add rax, 0x28
cmp rax, rdx
jne 0x1401a8fe8
xor eax, eax
ret

Function at 0x1401a9010
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140303190]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x1401a902f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x1401a9038
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

Function at 0x1401a9050
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x140303190]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x1401a9070
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x1401a9078
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1401a9070
sub rcx, rdx
movzx r9d, word [r8 + 6]
movzx edx, word [r8 + 0x14]
lea rdx, [r8 + rdx + 0x18]
test r9w, r9w
je 0x1401a9070
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
lea r9, [rdx + rax*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rdx + 0xc]
mov rax, r8
cmp rcx, r8
jb 0x1401a90c4
add eax, dword [rdx + 8]
cmp rcx, rax
jb 0x1401a90d0
add rdx, 0x28
cmp r9, rdx
jne 0x1401a90b0
xor eax, eax
ret
mov eax, dword [rdx + 0x24]
not eax
shr eax, 0x1f
ret

Function at 0x1401a90e0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov r11, qword [0x140303190]
xor r9d, r9d
cmp word [r11], 0x5a4d
jne 0x1401a9102
movsxd r8, dword [r11 + 0x3c]
add r8, r11
cmp dword [r8], 0x4550
je 0x1401a9110
mov rax, r9
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1401a9102
mov eax, dword [r8 + 0x90]
test eax, eax
je 0x1401a9102
movzx edx, word [r8 + 0x14]
movzx r10d, word [r8 + 6]
lea rdx, [r8 + rdx + 0x18]
test r10w, r10w
je 0x1401a9102
lea r8d, [r10 - 1]
lea r8, [r8 + r8*4]
lea r10, [rdx + r8*8 + 0x28]
nop word cs:[rax + rax]
mov r9d, dword [rdx + 0xc]
mov r8, r9
cmp rax, r9
jb 0x1401a9165
add r8d, dword [rdx + 8]
cmp rax, r8
jb 0x1401a9178
add rdx, 0x28
cmp rdx, r10
jne 0x1401a9150
xor r9d, r9d
mov rax, r9
ret
add rax, r11
jmp 0x1401a9187
sub ecx, 1
add rax, 0x14
mov r8d, dword [rax + 4]
test r8d, r8d
jne 0x1401a9197
mov edx, dword [rax + 0xc]
test edx, edx
je 0x1401a916e
test ecx, ecx
jg 0x1401a9180
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
ret
Function at 0x14034ce70
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x10088
call fcn.14037e4f0
sub rsp, rax
mov rax, qword [0x1403c4718]
xor rax, rsp
mov qword [rsp + 0x10070], rax
xor eax, eax
mov rdx, rcx
lea rcx, [rsp + 0x20]
mov word [rsp + 0x70], ax
mov word [rsp + 0x20], ax
lea r8d, [rax + 0x28]
call fcn.140378fa0
mov r8d, 0x10000
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0xffff
ja 0x14034ceed
lea rcx, [rsp + 0x70]
call fcn.140390650
mov rcx, qword [rsp + 0x10070]
xor rcx, rsp
call fcn.14037e550
add rsp, 0x10088
ret
xor eax, eax
mov rcx, qword [rsp + 0x10070]
xor rcx, rsp
call fcn.14037e550
add rsp, 0x10088
ret

Function at 0x14034cfa0
Capabilities:
Set environment variable

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x1403c4718]
xor rax, rsp
mov qword [rsp + 0x70], rax
lea rcx, str.PATH
call fcn.14034ce70
xor edi, edi
mov qword [0x1403ec210], rax
lea rdx, str.PATH
mov word [rsp + 0x20], di
lea rcx, [rsp + 0x20]
lea r8d, [rdi + 0x28]
call fcn.140378fa0
lea rdx, [0x14039fb40]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea rcx, str.PYTHONHOME
call fcn.14034ce70
mov cl, 1
mov qword [0x1403ec218], rax
call fcn.14037a140
lea r8d, [rdi + 0x28]
mov word [rsp + 0x20], di
lea rdx, str.PYTHONHOME
mov rbx, rax
lea rcx, [rsp + 0x20]
call fcn.140378fa0
mov rdx, rbx
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov cl, 1
call fcn.14037a140
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14037e550
mov rbx, qword [rsp + 0x90]
add rsp, 0x80
pop rdi
ret
Function at 0x14034d530
Capabilities:
Set environment variable

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x80
mov rax, qword [0x1403c4718]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r14, r8
mov rsi, rdx
mov rbp, rcx
call fcn.1403630a0
lea rdx, str.environ
mov rcx, rax
call qword [sym.imp.python311.dll_PyObject_GetAttrString]
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.python311.dll_PyUnicode_FromString]
mov rdx, rsi
lea rcx, [rsp + 0x20]
mov rdi, rax
xor eax, eax
mov word [rsp + 0x20], ax
lea r8d, [rax + 0x28]
call fcn.140378fa0
lea rcx, [rsp + 0x20]
test r14, r14
je 0x14034d5f3
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, 0xffffffffffffffff
mov rcx, r14
call sub.python311.dll_PyUnicode_FromWideChar
mov r8, rax
mov rdx, rdi
mov rcx, rbx
mov rsi, rax
call qword [sym.imp.python311.dll_PyObject_SetItem]
test eax, eax
je 0x14034d5e1
mov ecx, 1
call qword [sym.imp.python311.dll_PyErr_PrintEx]
mov ecx, 1
call qword [sym.imp.python311.dll_Py_Exit]
int3
sub qword [rsi], 1
jne 0x14034d613
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x14034d613
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.python311.dll_PyObject_DelItem]
test eax, eax
je 0x14034d613
mov rcx, rbp
call fcn.140012160
sub qword [rdi], 1
jne 0x14034d623
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
sub qword [rbx], 1
jne 0x14034d633
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14037e550
add rsp, 0x80
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x140379050
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r8, rcx
mov eax, 0xffffffff
test edx, edx
je 0x140379114
mov r9d, edx
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r8]
lea r8, [r8 + 1]
xor eax, edx
mov edx, eax
and dl, 1
neg dl
sbb ecx, ecx
shr eax, 1
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
and al, 1
neg al
sbb edx, edx
shr ecx, 1
and edx, 0xedb88320
xor edx, ecx
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0xedb88320
xor ecx, edx
mov eax, ecx
and al, 1
neg al
sbb edx, edx
shr ecx, 1
and edx, 0xedb88320
xor edx, ecx
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0xedb88320
xor ecx, edx
mov eax, ecx
and al, 1
neg al
sbb edx, edx
shr ecx, 1
and edx, 0xedb88320
xor edx, ecx
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0xedb88320
xor ecx, edx
mov eax, ecx
and al, 1
neg al
sbb eax, eax
shr ecx, 1
and eax, 0xedb88320
xor eax, ecx
sub r9, 1
jne 0x140379070
not eax
ret
Function at 0x14037ef68
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14037efb2
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14037efb2
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14037efb2
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14037efb2
cmp dword [rcx + 0x84], 0xe
jbe 0x14037efb2
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14037efb4
xor al, al
add rsp, 0x28
ret

Function at 0x140383f48
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x140383db3
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140383db3
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140383db3
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140383db3
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140383db3
cmp dword [rcx + 0x84], 0xe
jbe 0x140383db3
cmp dword [rcx + 0xf8], 0
je 0x140383db3
mov ecx, ebx
call fcn.140383e64
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.140383c40
nop
cmp dword [rbp + 0x20], 0
je 0x140383e01
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140383e0c
int3
xor r8d, r8d
xor edx, edx
jmp 0x140383d44
Function at 0x1403957d0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor ebp, ebp
mov rbx, rax
test rax, rax
je 0x140395857
mov rsi, rbx
cmp word [rax], bp
je 0x140395816
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x140395800
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x1403957fc
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.140390e3c
mov rdi, rax
test rax, rax
je 0x140395844
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.14037f290
mov rbp, rdi
xor ecx, ecx
call fcn.140391984
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140398f70
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x140398f86
mov al, 1
jmp 0x140398fe6
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x140398f97
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x140398fe4
mov ecx, dword [rcx + 0x18]
nop
call fcn.140395b18
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140398fe4
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x140398fe4
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140398fe4
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x140398fe6
xor al, al
add rsp, 0x20
pop rbx
ret

Function at 0x140a65058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.140a651df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x140a65089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140a6506f
add dl, dl
jne 0x140a65096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140a650f6
xor eax, eax
add dl, dl
jne 0x140a650a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140a651ad
add dl, dl
jne 0x140a650b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a650c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a650d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a650dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x140a650ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x140a6507e
mov eax, 1
add dl, dl
jne 0x140a65106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140a65113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140a650fb
sub eax, ebx
mov ebx, 1
jne 0x140a6514c
mov ecx, 1
add dl, dl
jne 0x140a6512e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140a6513b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140a65123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140a6507e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x140a65168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140a65175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140a6515d
cmp eax, 0x7d00
jae 0x140a6519b
cmp eax, 0x500
jb 0x140a65196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140a6507e
cmp eax, 0x7f
ja 0x140a6519e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140a6507e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x140a651d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x140a6507e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140004968
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x840
mov rax, qword [0x140061568]
xor rax, rsp
mov qword [rsp + 0x830], rax
mov r10, rdx
mov ebx, 1
test r8d, r8d
jne 0x140004aa8
cmp ecx, ebx
je 0x140004aa8
cmp ecx, 2
jne 0x1400049d1
mov rax, qword [rdx + 8]
lea r8, str._Xnosplash
sub r8, rax
movzx edx, word [rax]
movzx r9d, word [rax + r8]
sub edx, r9d
jne 0x1400049c9
add rax, 2
test r9d, r9d
jne 0x1400049b3
test edx, edx
je 0x140004aa8
xor r8d, r8d
test ecx, ecx
jle 0x140004a37
mov rax, qword [r10]
lea r11, str._uninstall
mov rdx, rax
sub r11, rax
movzx r9d, word [rdx]
movzx edi, word [rdx + r11]
sub r9d, edi
jne 0x1400049fe
add rdx, 2
test edi, edi
jne 0x1400049e8
test r9d, r9d
je 0x140004aa8
lea r11, str._updateVersions
sub r11, rax
movzx edx, word [rax]
movzx r9d, word [rax + r11]
sub edx, r9d
jne 0x140004a27
add rax, 2
test r9d, r9d
jne 0x140004a11
test edx, edx
je 0x140004aa8
add r8d, ebx
add r10, 8
cmp r8d, ecx
jl 0x1400049d8
lea rax, str.1.8.0_281
or r8, 0xffffffffffffffff
mov qword [rsp + 0x28], rax
lea r9, [0x14005b448]
lea rax, str.SoftwareJavaSoftJava_Runtime_Environment_
mov edx, 0x400
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call fcn.140004898
lea r8, [0x14005b458]
mov rcx, 0xffffffff80000002
lea rdx, [rsp + 0x30]
int3
mov eax, ebx
mov rcx, qword [rsp + 0x830]
xor rcx, rsp
call fcn.1400130d0
mov rbx, qword [rsp + 0x850]
add rsp, 0x840
pop rdi
ret

Function at 0x14000820c
Capabilities:
Send data
Send data on socket

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x20
xor ebx, ebx
mov rdi, rdx
mov rbp, rcx
test rdx, rdx
je 0x1400082a1
or rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], bx
jne 0x140008236
lea eax, [rax*2 + 6]
movsxd r14, eax
lea rcx, [r14 + r14]
call fcn.14002597c
mov rsi, rax
test rax, rax
je 0x1400082a1
mov r9, rdi
lea r8, str._s_r_n
mov rdx, r14
mov rcx, rax
call fcn.1400099e8
or rcx, 0xffffffffffffffff
inc rcx
cmp word [rsi + rcx*2], bx
jne 0x140008273
lea r8d, [rcx + rcx]
xor r9d, r9d
mov rcx, rbp
mov rdx, rsi
call qword [sym.imp.WSOCK32.dll_send]
cmp eax, 0xffffffff
mov rcx, rsi
setne bl
call fcn.140025968
mov eax, ebx
jmp 0x1400082a3
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x1400082c4
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
xor r15d, r15d
lea r12, [0x14006e810]
mov edi, r15d
mov r14d, r15d
mov ebx, r15d
mov esi, r15d
mov rdx, r12
mov rbp, rcx
jmp 0x14000833b
test eax, eax
je 0x140008378
movzx ecx, word [r12 + rdi*2]
cmp cx, 0xa
je 0x140008378
cmp cx, 0xd
lea eax, [rbx + 1]
cmove eax, ebx
cmp eax, 0x3ff
jge 0x14000836e
movsxd rbx, eax
lea rdi, [r14 + 1]
cmp cx, 0xd
mov rsi, rbx
mov rcx, rbp
cmove rdi, r14
mov r14, rdi
lea rdx, [r12 + rbx*2]
xor r9d, r9d
lea r8d, [r9 + 2]
call qword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
jne 0x1400082ff
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
mov word [0x14006f00e], r15w
jmp 0x14000838a
lea rcx, [rsi + rsi]
cmp rcx, 0x800
jae 0x14000838f
mov word [rcx + r12], r15w
mov rax, r12
jmp 0x14000834f
int3

Function at 0x14000b8dc
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r15
sub rsp, 0x20
xorps xmm0, xmm0
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
cvtsi2sd xmm0, rdx
test rdx, rdx
jns 0x14000b913
addsd xmm0, qword [0x140041638]
divsd xmm0, qword [0x140041620]
call fcn.14002867c
mulsd xmm0, qword [0x140041628]
xor eax, eax
movsd xmm1, qword [0x140041630]
comisd xmm0, xmm1
jb 0x14000b94f
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14000b94f
movabs rcx, 0x8000000000000000
mov rax, rcx
cvttsd2si rcx, xmm0
mov edx, 1
add rcx, rax
mov qword [rsi], rcx
inc rcx
call fcn.140025960
xor r8d, r8d
mov r9, rax
test rax, rax
je 0x14000ba6c
lea r15, [0x140000000]
mov rcx, r8
test rbx, rbx
je 0x14000ba31
mov r10, r9
cmp rcx, rbx
jae 0x14000b99d
lea rax, [rcx + rdi]
inc rcx
movzx edx, byte [rax]
jmp 0x14000b9a0
mov rdx, r8
cmp rcx, rbx
jae 0x14000b9b1
lea rax, [rcx + rdi]
inc rcx
movzx ebp, byte [rax]
jmp 0x14000b9b4
mov rbp, r8
cmp rcx, rbx
jae 0x14000b9c6
lea rax, [rcx + rdi]
inc rcx
movzx r11d, byte [rax]
jmp 0x14000b9c9
mov r11, r8
shl rdx, 8
add rdx, rbp
shl rdx, 8
add rdx, r11
mov rax, rdx
shr rax, 0x12
mov al, byte [rax + r15 + 0x5fad0]
mov byte [r10], al
mov rax, rdx
shr rax, 0xc
and eax, 0x3f
mov al, byte [rax + r15 + 0x5fad0]
mov byte [r10 + 1], al
mov rax, rdx
shr rax, 6
and edx, 0x3f
and eax, 0x3f
mov al, byte [rax + r15 + 0x5fad0]
mov byte [r10 + 2], al
mov al, byte [rdx + r15 + 0x5fad0]
mov byte [r10 + 3], al
add r10, 4
cmp rcx, rbx
jb 0x14000b991
movabs rax, 0xaaaaaaaaaaaaaaab
mul rbx
shr rdx, 1
lea rax, [rdx + rdx*2]
sub rbx, rax
mov rcx, qword [r15 + rbx*8 + 0x5fb10]
test rcx, rcx
je 0x14000ba69
mov rax, qword [rsi]
sub rax, r8
inc r8
mov byte [rax + r9 - 1], 0x3d
cmp r8, rcx
jb 0x14000ba55
mov rax, r9
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret
Function at 0x14000cc98
Capabilities:
Check os version

Disassembly:
push rbx
sub rsp, 0x150
mov rax, qword [0x140061568]
xor rax, rsp
mov qword [rsp + 0x140], rax
xor ebx, ebx
cmp dword [0x14007725c], ebx
je 0x14000ccc5
mov eax, dword [0x140077260]
jmp 0x14000cd0d
xor edx, edx
lea rcx, [rsp + 0x24]
mov r8d, 0x110
call fcn.140014ce0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [rsp + 0x30], 2
mov eax, 1
jne 0x14000ccff
cmp dword [rsp + 0x24], 6
jb 0x14000ccff
mov ebx, eax
mov dword [0x14007725c], eax
mov eax, ebx
mov dword [0x140077260], ebx
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.1400130d0
add rsp, 0x150
pop rbx
ret

Function at 0x14000d1f4
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rsi
push rdi
push r14
sub rsp, 0x270
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x140061568]
xor rax, rsp
mov qword [rsp + 0x260], rax
movsxd r14, edx
mov rsi, rcx
xor ebx, ebx
mov word [rcx], bx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rbx + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, eax
test eax, eax
js 0x14000d2bb
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
int3
mov edx, eax
lea rcx, str.Error:_08x_in_SHGetFolderPathW_NULL__CSIDL_APPDATA__NULL__0__szPath_
call fcn.14000ff00
xor edx, edx
mov ecx, edi
int3

Function at 0x14000d2dc
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rsi
push rdi
push r14
sub rsp, 0x270
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x140061568]
xor rax, rsp
mov qword [rsp + 0x260], rax
movsxd r14, edx
mov rsi, rcx
xor ebx, ebx
mov word [rcx], bx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rbx + 0x23]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, eax
test eax, eax
js 0x14000d3a3
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
int3
mov edx, eax
lea rcx, str.Error:_08x_in_::SHGetFolderPathW_0__CSIDL_COMMON_APPDATA__NULL__SHGFP_TYPE_CURRENT__szPath_
call fcn.14000ff00
xor edx, edx
mov ecx, edi
int3