joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400651e0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x1400d1040]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rbx, qword [r9 + 0x10]
mov rdi, r9
mov r14, r8
mov rsi, rdx
mov r15, rcx
cmp rbx, 0x20
ja 0x1400652d4
xor r12d, r12d
nop dword [rax + rax]
mov r10, qword [rdi + 8]
mov r9, r12
test rbx, rbx
je 0x140065268
lea rax, [rsp + 0x20]
sub r10, rax
nop dword [rax]
nop dword [rax + rax]
lea r8, [rsp + 0x20]
mov ecx, 0x20
add r8, r9
movzx edx, byte [r10 + r8]
lea eax, [rdx - 0x41]
cmp al, 0x19
cmova ecx, r12d
inc r9
xor cl, dl
mov byte [r8], cl
cmp r9, rbx
jb 0x140065240
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140064a50
mov dword [rsi], eax
test eax, eax
jne 0x140065291
mov rax, qword [r15]
lea rdx, [rsp + 0x20]
mov r8, rbx
movzx ecx, byte [rax + 0x48]
call fcn.14006a680
mov dword [rsi], eax
cmp dword [rsi], r12d
jne 0x1400652fc
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140064f20
test eax, eax
je 0x1400652d4
mov ecx, dword [r14]
test eax, ecx
jne 0x1400652f5
or ecx, eax
xor r8d, r8d
mov dword [r14], ecx
mov rdx, rdi
lea rcx, [r15 + 8]
call fcn.14006a710
cmp al, 2
jne 0x1400652d4
mov rbx, qword [rdi + 0x10]
cmp rbx, 0x20
jbe 0x140065220
mov eax, 0x1a
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400717f0
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, 0x37
jmp 0x1400652d9
xor r8d, r8d
lea rcx, [r15 + 8]
mov rdx, rdi
call fcn.14006a710
cmp al, 2
jne 0x140065373
mov rdx, qword [rdi + 0x10]
cmp rdx, 0x20
ja 0x140065373
mov r11, qword [rdi + 8]
mov r10, r12
test rdx, rdx
je 0x14006535a
lea rax, [rsp + 0x20]
sub r11, rax
nop dword [rax]
lea r9, [rsp + 0x20]
mov ecx, 0x20
add r9, r10
movzx r8d, byte [r11 + r9]
lea eax, [r8 - 0x41]
cmp al, 0x19
cmova ecx, r12d
inc r10
xor cl, r8b
mov byte [r9], cl
cmp r10, rdx
jb 0x140065330
lea rcx, [rsp + 0x20]
call fcn.140064f20
cmp eax, 0x10
jne 0x140065373
or dword [r14], eax
xor eax, eax
jmp 0x1400652d9
mov rax, qword [rdi + 8]
mov qword [r15 + 0x18], rax
xor eax, eax
jmp 0x1400652d9
Function at 0x140072718
Capabilities:
Parse pe header

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

Function at 0x140082cf4
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov esi, edx
mov rbp, rcx
test r8, r8
jne 0x140082d2b
call fcn.1400785a0
mov dword [rax], SafeArrayUnaccessData
call fcn.140078434
xor eax, eax
jmp 0x140082db9
mov rdx, r9
mov rcx, r8
call fcn.140082c90
mov rbx, rax
test rax, rax
je 0x140082db6
lea rax, [rsp + 0x50]
mov rdx, rsi
mov qword [rsp + 0x28], rax
lea r8, [0x140082bbc]
mov eax, dword [rsp + 0x60]
mov r9, rbx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x140082da3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140078514
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140082d8a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140082d99
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call fcn.140087ab4
jmp 0x140082db6
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140082db3
mov eax, dword [rsp + 0x50]
mov dword [rcx], eax
mov rdi, rdx
mov rax, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret

Function at 0x1400832f0
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 0x14008315b
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14008315b
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14008315b
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14008315b
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14008315b
cmp dword [rcx + 0x84], 0xe
jbe 0x14008315b
cmp dword [rcx + 0xf8], 0
je 0x14008315b
mov ecx, ebx
call fcn.14008320c
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.140082fe8
nop
cmp dword [rbp + 0x20], 0
je 0x1400831a9
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.1400831b4
int3
xor r8d, r8d
xor edx, edx
jmp 0x1400830ec
Function at 0x14008fbb4
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.1400874f4
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x14008fc55
cmp ebx, dword [rsp + 0x30]
je 0x14008fc4e
test esi, esi
je 0x14008fc4e
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x14008fc29
sub r8w, 0x61
cmp r8w, 0x19
ja 0x14008fc36
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x14008fc13
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x14008fc3a
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x14008fc57
mov eax, 1
jmp 0x14008fc57
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140090948
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 0x1400909cf
mov rsi, rbx
cmp word [rax], bp
je 0x14009098e
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x140090978
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x140090974
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.140087af0
mov rdi, rax
test rax, rax
je 0x1400909bc
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.140073ad0
mov rbp, rdi
xor ecx, ecx
call fcn.140087ab4
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 0x1400946b0
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1400946d8
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x1400946d8
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x1400039f0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rdi
sub rsp, 0x40
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rdi, rcx
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x140003a20
mov qword [rdi], 0
jmp 0x140003a83
cmp qword [rsp + 0x28], 0
jle 0x140003a17
mov qword [rsp + 0x58], rbx
lea rcx, [rsp + 0x20]
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x140003a56
nop
inc ebx
cmp ebx, 3
ja 0x140003a99
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140003a40
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm1, qword [rsp + 0x20]
cvtsi2sd xmm0, qword [rsp + 0x28]
mulsd xmm1, qword [0x140049fc0]
divsd xmm1, xmm0
cvttsd2si rax, xmm1
mov qword [rdi], rax
mov rbx, qword [rsp + 0x58]
mov rax, rdi
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x40
pop rdi
ret
mov qword [rdi], 0
jmp 0x140003a7e
Function at 0x1400216b0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
cmp qword [rdx + 0x18], 0x10
mov r9, qword [rdx + 0x10]
jb 0x1400216be
mov rdx, qword [rdx]
xor r8d, r8d
movabs rax, 0xcbf29ce484222325
test r9, r9
je 0x1400216f4
movabs r10, 0x100000001b3
nop word [rax + rax]
movzx ecx, byte [r8 + rdx]
inc r8
xor rax, rcx
imul rax, r10
cmp r8, r9
jb 0x1400216e0
ret

Function at 0x1400222c0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r14, rdx
mov rdi, rcx
je 0x1400222f7
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rsi
mov rsi, rbx
mov r9, qword [rax]
test r9, r9
je 0x140022318
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x14002231a
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x140022373
test ecx, ecx
jle 0x140022353
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
sub rbx, rbp
add r14, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x140022373
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x140022373
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov rbp, qword [rsp + 0x30]
sub rsi, rbx
mov rbx, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x1400223a0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x1400223c2
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x1400223d8
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x1400223f4
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x1400223f6
xor ecx, ecx
mov qword [rsp + 0x20], rdi
movsxd rax, ecx
test ecx, ecx
je 0x140022430
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
sub rbx, rdi
add r14, rdi
mov r8, rbx
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x1400224d7
mov r9, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r9], rax
jne 0x14002246b
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r9], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
mov rdi, r8
cmp r8, 0xfff
jbe 0x1400224b1
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
add r14, rax
mov rdi, rbx
cmp rax, 0xfff
jne 0x1400224f0
cmp rbx, rax
ja 0x140022480
mov r8, rdi
test rdi, rdi
je 0x1400224d7
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov r8, rdi
sub r8, rax
sub rbp, r8
mov rdi, qword [rsp + 0x20]
mov rax, rbp
mov rbx, qword [rsp + 0x28]
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
sub rbp, rbx
jmp 0x1400224da
Function at 0x140022900
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14002292d
xor eax, eax
jmp 0x140022a82
mov rdx, qword [rcx + 0x40]
mov rax, qword [rdx]
test rax, rax
je 0x140022958
mov rdx, qword [rcx + 0x58]
movsxd r8, dword [rdx]
add r8, rax
cmp rax, r8
jae 0x140022958
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void____ptr64]
mov byte [rax], dil
mov eax, edi
jmp 0x140022a82
cmp qword [rcx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x140022a75
mov r8, qword [rcx + 0x18]
lea rax, [rcx + 0x70]
cmp qword [r8], rax
jne 0x14002299b
mov rdx, qword [rcx + 0x90]
mov rcx, qword [rcx + 0x88]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x1400229c6
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x140022a7a
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140022a35
sub eax, 1
je 0x140022a35
cmp eax, 2
jne 0x140022a75
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x140022a7a
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140022a63
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x140022a75
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov eax, edi
jne 0x140022a7a
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14003c530
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140023c90
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140023d63
cmp byte [rcx + 0x71], 0
je 0x140023d63
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x140023d5f
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x140023d24
sub eax, 1
je 0x140023d28
cmp eax, 2
jne 0x140023d5f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140023d56
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x140023d5f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x140023d0c
xor al, al
jmp 0x140023d0c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x60
pop rbx
ret
Function at 0x140036bf0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rdi, rdx
movzx esi, cl
mov rcx, rdi
lea rdx, [0x1400437db]
xor r8d, r8d
xor bl, bl
call fcn.140024180
lea rax, [rsp + 0x38]
mov qword [rsp + 0x38], 0
mov r9d, 0x20019
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftMicrosoft_GamesKittyHawk
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140036cd3
mov rcx, qword [rsp + 0x38]
lea rax, str.SimConnect_Port_IPv6
test sil, sil
mov dword [rsp + 0x30], shutdown
lea rdx, str.SimConnect_Port_IPv4
cmovne rdx, rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
xor r9d, r9d
lea rax, [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140036cc8
lea rax, [rsp + 0x40]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [rax + r8], bl
jne 0x140036cb0
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.140024180
mov bl, 1
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
movzx eax, bl
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14003c530
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x140036e20
Capabilities:
Set socket configuration

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, rcx
call fcn.140038740
cmp byte [rbx + 0x1c4], 0
je 0x140036e65
cmp dword [rbx + 0x24], 0
jne 0x140036e65
mov rcx, qword [rbx + 0x10]
lea r9, [rsp + 0x40]
mov edx, 6
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x20], 4
lea r8d, [rdx - 5]
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rbx + 0x18], 2
add rsp, 0x30
pop rbx
ret

Function at 0x140037000
Capabilities:
Initialize winsock library

Disassembly:
sub rsp, 0x1d8
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
movzx eax, byte [0x14005821c]
test al, al
jne 0x14003705f
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x198
call sub.VCRUNTIME140.dll_memset
lea rdx, [rsp + 0x20]
mov cx, 2
call qword [sym.imp.WS2_32.dll_WSAStartup]
movzx ecx, byte [0x14005821c]
mov edx, 1
test eax, eax
cmove ecx, edx
mov byte [0x14005821c], cl
movzx eax, cl
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x1d8
ret
Function at 0x1400370f0
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov r12, qword [rbp + 0x210]
mov r14, r8
mov r13, qword [rbp + 0x218]
mov rsi, rdx
mov edi, ecx
mov dword [rdx], 1
mov rcx, r14
lea rdx, [0x1400437db]
xor r8d, r8d
mov r15, r9
call fcn.140024180
xor r8d, r8d
lea rdx, [0x1400437db]
mov rcx, r15
call fcn.140024180
mov dword [r12], 0xa080
mov byte [r13], 0
cmp edi, 0xffffffff
je 0x140037354
xor r9d, r9d
mov qword [rsp + 0x2a8], rbx
lea rax, [rbp + 0x80]
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x2e]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov rbx, 0xffffffffffffffff
test eax, eax
js 0x14003721b
lea r8, str.SimConnect.cfg
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathCombineA]
test rax, rax
je 0x14003721b
xor eax, eax
mov qword [rsp + 0x58], shutdown
mov qword [rsp + 0x40], rax
mov r8, rbx
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
inc r8
cmp byte [rax + r8], 0
jne 0x1400371e1
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call fcn.140024180
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], r12
mov r9, r14
mov r8, rsi
mov qword [rsp + 0x20], r15
mov edx, edi
call fcn.140037380
xor r9d, r9d
lea rax, [rbp + 0x80]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 5]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x1400372ba
lea r8, str.SimConnect.cfg
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathCombineA]
test rax, rax
je 0x1400372ba
xor eax, eax
mov qword [rsp + 0x58], shutdown
mov qword [rsp + 0x40], rax
mov r8, rbx
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140037280
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call fcn.140024180
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], r12
mov r9, r14
mov r8, rsi
mov qword [rsp + 0x20], r15
mov edx, edi
call fcn.140037380
lea rdx, [rbp + 0x80]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x14003734c
lea r8, str.SimConnect.cfg
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathCombineA]
test rax, rax
je 0x14003734c
xor eax, eax
mov qword [rsp + 0x58], shutdown
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x70]
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140037310
mov r8, rbx
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call fcn.140024180
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], r12
mov r9, r14
mov r8, rsi
mov qword [rsp + 0x20], r15
mov edx, edi
call fcn.140037380
mov rbx, qword [rsp + 0x2a8]
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x2b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140037930
Capabilities:
Read .ini file

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x20], rcx
mov rbx, rcx
lea rcx, [rsp + 0x28]
test edx, edx
jne 0x1400379a0
lea r8, str.SimConnect
mov edx, 0x1a
lea rax, [rsp + 0x28]
sub r8, rax
nop word [rax + rax]
lea rax, [rdx + 0x7fffffe4]
test rax, rax
je 0x140037990
movzx eax, byte [r8 + rcx]
test al, al
je 0x140037990
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140037970
test rdx, rdx
lea rax, [rcx - 1]
cmovne rax, rcx
mov byte [rax], 0
jmp 0x1400379b4
mov r9d, edx
lea r8, str.SimConnect._u
mov edx, 0x1a
call fcn.140036f40
cmp qword [rbx + 0x18], 0x10
mov r9, rbx
jb 0x1400379c1
mov r9, qword [rbx]
mov r8d, 0x1e
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
mov rcx, rbx
test eax, eax
jne 0x1400379fb
call fcn.1400234c0
mov eax, 3
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x70
pop rbx
ret
call fcn.1400234c0
xor eax, eax
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14003c530
add rsp, 0x70
pop rbx
ret

Function at 0x140038210
Capabilities:
Initialize winsock library
Resolve dns

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x210
mov rax, qword [0x140056048]
xor rax, rsp
mov qword [rsp + 0x200], rax
movzx esi, cl
xor edx, edx
lea rcx, [rsp + 0x60]
mov r8d, 0x198
xor dil, dil
call sub.VCRUNTIME140.dll_memset
mov ebx, 2
lea rdx, [rsp + 0x60]
mov ecx, ebx
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x14003830b
test sil, sil
mov qword [rsp + 0x20], 0
mov eax, reloc.WS2_32.dll_socket
mov dword [rsp + 0x30], 1
cmovne ebx, eax
mov dword [rsp + 0x34], 6
lea rax, [0x140042e94]
mov dword [rsp + 0x2c], ebx
xorps xmm0, xmm0
mov dword [rsp + 0x28], 4
xorps xmm1, xmm1
lea rcx, str.127.0.0.1
cmovne rcx, rax
lea r9, [rsp + 0x20]
xor edx, edx
lea r8, [rsp + 0x28]
movdqu xmmword [rsp + 0x38], xmm0
movdqu xmmword [rsp + 0x48], xmm1
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x140038305
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x140038305
mov rax, rcx
nop dword [rax]
cmp ebx, dword [rax + 4]
jne 0x1400382f1
cmp dword [rax + 0xc], 6
jne 0x1400382f1
cmp dword [rax + 8], 1
je 0x1400382fc
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x1400382e0
jmp 0x1400382ff
mov dil, 1
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
call qword [sym.imp.WS2_32.dll_WSACleanup]
movzx eax, dil
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.14003c530
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret