joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400026b0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140008040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140002783
cmp byte [rcx + 0x71], 0
je 0x140002783
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14000277f
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 0x140002744
sub eax, 1
je 0x140002748
cmp eax, 2
jne 0x14000277f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140003060
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140002776
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 0x14000277f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000272c
xor al, al
jmp 0x14000272c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140003060
add rsp, 0x60
pop rbx
ret

Function at 0x1400039e0
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140003a2a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140003a2a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140003a2a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140003a2a
cmp dword [rcx + 0x84], 0xe
jbe 0x140003a2a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140003a2c
xor al, al
add rsp, 0x28
ret
Function at 0x2fc4cb4c0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4cbec2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4f0108]
test eax, eax
je 0x2fc4cbf5a
lea rax, [0x2fc4f00e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4f0110]
mov qword [rbp - 8], rax
jmp 0x2fc4cbf3e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4cbf32
cmp qword [rbp - 0x10], 0
je 0x2fc4cbf32
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4cbef8
lea rax, [0x2fc4f00e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4cbf5b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4cc060
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4cc088
mov eax, 0
jmp 0x2fc4cc0d6
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4cc0b1
mov eax, 0
jmp 0x2fc4cc0d6
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4cc0d1
mov eax, 0
jmp 0x2fc4cc0d6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4cc0dc
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4cc15a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4cc151
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4cc151
mov rax, qword [rbp - 8]
jmp 0x2fc4cc16f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4cc124
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4d6bd0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4d75d2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4fc108]
test eax, eax
je 0x2fc4d766a
lea rax, [0x2fc4fc0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4fc110]
mov qword [rbp - 8], rax
jmp 0x2fc4d764e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4d7642
cmp qword [rbp - 0x10], 0
je 0x2fc4d7642
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4d7608
lea rax, [0x2fc4fc0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4d766b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4d7770
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4d7798
mov eax, 0
jmp 0x2fc4d77e6
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4d77c1
mov eax, 0
jmp 0x2fc4d77e6
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4d77e1
mov eax, 0
jmp 0x2fc4d77e6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4d77ec
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4d786a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4d7861
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4d7861
mov rax, qword [rbp - 8]
jmp 0x2fc4d787f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4d7834
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4d6f80
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4d7982
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4fc108]
test eax, eax
je 0x2fc4d7a1a
lea rax, [0x2fc4fc0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4fc110]
mov qword [rbp - 8], rax
jmp 0x2fc4d79fe
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4d79f2
cmp qword [rbp - 0x10], 0
je 0x2fc4d79f2
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4d79b8
lea rax, [0x2fc4fc0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4d7a1b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4d7b20
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4d7b48
mov eax, 0
jmp 0x2fc4d7b96
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4d7b71
mov eax, 0
jmp 0x2fc4d7b96
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4d7b91
mov eax, 0
jmp 0x2fc4d7b96
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x180013fb4
Capabilities:
Terminate process

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov rax, qword [0x18015f100]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov ecx, dword [0x180164624]
mov rax, qword gs:[0x58]
mov rbx, qword [rax + rcx*8]
mov r15d, 0x14
cmp byte [r15 + rbx], 0
jne 0x180014006
call fcn.18009f988
mov r12d, 0x138
mov rdi, qword [r12 + rbx + 8]
call fcn.1800622ac
sub rdi, rax
cmp byte [r15 + rbx], 0
jne 0x180014025
call fcn.18009f988
mov rsi, qword [r12 + rbx + 8]
cmp byte [r15 + rbx], 0
jne 0x180014036
call fcn.18009f988
mov r9, rdi
mov r8, rsi
mov edx, dword [r12 + rbx]
lea rcx, str.Fatal_error__0x_08X__at_0x_p__0x_p_._nA_minidump_has_been_written._n
call fcn.180066e88
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x19], xmm1
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x18001405f
mov rdx, rax
lea rcx, [rbp - 0x29]
call fcn.180013d38
nop
lea rax, vtable.std::_Func_impl_no_alloc_class__void___cdecl_utilities::thread::suspend_other_threads_void_::_2::_lambda_1___void__void____ptr64_.0
mov qword [rbp - 9], rax
lea rax, [rbp - 9]
mov qword [rbp + 0x2f], rax
lea rcx, [rbp - 9]
call fcn.180068f50
nop
mov rcx, qword [rbp + 0x2f]
test rcx, rcx
je 0x1800140ac
mov rax, qword [rcx]
lea rdx, [rbp - 9]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov ecx, 1
call qword [sym.imp.USER32.dll_ShowCursor]
test eax, eax
js 0x1800140ac
lea rdx, [rbp - 0x29]
cmp qword [rbp - 0x11], 0xf
cmova rdx, qword [rbp - 0x29]
mov r9d, 0x10
lea r8, str.Project_BO4_ERROR
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
cmp byte [r15 + rbx], 0
jne 0x1800140ea
call fcn.18009f988
mov ebx, dword [r12 + rbx]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
mov rdx, qword [rbp - 0x11]
cmp rdx, 0xf
jbe 0x180014137
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180014132
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180014160
call fcn.18009f350
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.18009f330
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r12
pop rbp
ret
call fcn.1800a665c
int3
Function at 0x1800239ac
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
xor r9d, r9d
movabs r8, 0xcbf29ce484222325
test rdx, rdx
je 0x1800239dc
movzx eax, byte [rcx + r9]
movabs r10, 0x100000001b3
xor r8, rax
inc r9
imul r8, r10
cmp r9, rdx
jb 0x1800239be
mov rax, r8
ret

Function at 0x180023a18
Capabilities:
Manipulate console buffer

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x18015f100]
xor rax, rsp
mov qword [rsp + 0x38], rax
xor eax, eax
mov ebx, ecx
xorps xmm0, xmm0
mov dword [rsp + 0x30], eax
mov ecx, 0xfffffff5
mov word [rsp + 0x34], ax
movups xmmword [rsp + 0x20], xmm0
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov ecx, 0xfffffff5
mov word [rsp + 0x24], bx
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, dword [rsp + 0x24]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.18009f330
add rsp, 0x40
pop rbx
ret
Function at 0x18002448c
Capabilities:
Hide graphical window
Set console window title

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x18015f100]
xor rax, rsp
mov qword [rbp - 8], rax
and dword [rbp - 0x50], 0
call qword [sym.imp.KERNEL32.dll_AllocConsole]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_AttachConsole]
xor ecx, ecx
call fcn.1800a72a8
mov r9, rax
lea r8, [0x180123710]
lea rdx, str.CONOUT_
lea rcx, [rbp - 0x48]
call fcn.1800a7170
mov ecx, 1
call fcn.1800a72a8
mov r9, rax
lea r8, [0x180123720]
lea rdx, str.CONOUT_
lea rcx, [rbp - 0x48]
call fcn.1800a7170
mov ecx, 2
call fcn.1800a72a8
mov r9, rax
lea r8, [0x180123720]
lea rdx, str.CONOUT_
lea rcx, [rbp - 0x48]
call fcn.1800a7170
lea rcx, str.Project_Bo4:
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
lea r8, [0x1800243ec]
lea rdx, [fcn.180024ec4]
lea rcx, [0x180168b80]
call fcn.180065cfc
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [0x180160cc8], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x10], 0xf
mov rax, qword [str.Console]
mov dword [rbp - 0x28], eax
movzx eax, word [0x18012373c]
mov word [rbp - 0x24], ax
mov al, byte [0x18012373e]
mov byte [rbp - 0x22], al
mov byte [rbp - 0x21], 0
mov ecx, 1
call fcn.18009f814
mov qword [rbp - 0x30], rax
mov dword [rbp - 0x50], 2
lea rcx, [rbp - 0x38]
mov qword [rsp + 0x28], rcx
and dword [rsp + 0x20], 0
mov r9, rax
lea r8, [0x180024d1c]
xor edx, edx
xor ecx, ecx
call fcn.1800aaa20
mov qword [rbp - 0x40], rax
test rax, rax
je 0x180024679
mov dword [rbp - 0x50], 3
lea rdx, [rbp - 0x28]
mov rcx, rax
call fcn.180068da4
cmp dword [0x180160cc0], 0
jne 0x180024688
xorps xmm0, xmm0
movaps xmm1, xmmword [rbp - 0x40]
movdqa xmmword [rbp - 0x40], xmm0
movdqu xmmword [0x180160cb8], xmm1
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x18002465e
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180024659
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180024673
call fcn.18009f350
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.18009f330
add rsp, 0x80
pop rbp
ret
call fcn.1800a665c
nop
and dword [rbp - 0x38], 0
mov ecx, 6
call fcn.18009e08c
nop
call fcn.1800a704c
int3
Function at 0x1800259d8
Capabilities:
Convert ip address from string

Disassembly:
mov qword [rsp + 8], rsi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0x90
mov rax, qword [0x18015f100]
xor rax, rsp
mov qword [rbp + 0x47], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x27], xmm0
movdqa xmm1, xmmword [reloc.WS2_32.dll_htons]
movdqu xmmword [rbp + 0x37], xmm1
movsd xmm0, qword [str.127.0.0.1]
movsd qword [rbp + 0x27], xmm0
mov al, byte [0x180123a50]
mov byte [rbp + 0x2f], al
mov byte [rbp + 0x30], 0
lea rax, [0x180168c28]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 0
lea r9, [rbp + 0x27]
lea r8, str.ipv4
lea rdx, str.demonware
lea rcx, [rbp + 7]
call fcn.18006a788
nop
mov rdx, qword [rbp + 0x3f]
cmp rdx, 0xf
jbe 0x180025a8e
inc rdx
mov rcx, qword [rbp + 0x27]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180025a89
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180025c19
call fcn.18009f350
and dword [rbp - 1], 0
lea rdx, [rbp + 7]
cmp qword [rbp + 0x1f], 0xf
cmova rdx, qword [rbp + 7]
lea r8, [rbp - 1]
mov ecx, 2
call qword [sym.imp.WS2_32.dll_inet_pton]
mov esi, 1
cmp eax, esi
jne 0x180025ac3
mov eax, dword [rbp - 1]
mov dword [0x180165350], eax
jmp 0x180025aec
mov dword [0x180165350], 0x100007f
lea r8, [rbp + 7]
cmp qword [rbp + 0x1f], 0xf
cmova r8, qword [rbp + 7]
lea rdx, str.__network__:_wrong_dw_server_address_specified:__s
mov ecx, 3
call fcn.180045b8c
movabs rcx, 0x144508469
call fcn.180062314
mov byte [rbp - 9], 0
mov r8, rsi
lea rdx, [rbp - 9]
mov rcx, rax
call fcn.180065fb8
movabs rcx, 0x144508455
call fcn.180062314
mov byte [rbp - 9], 0xaf
mov r8, rsi
lea rdx, [rbp - 9]
mov rcx, rax
call fcn.180065fb8
movabs rcx, 0x144b28d98
call fcn.180062314
mov byte [rbp - 9], 0
mov r8, rsi
lea rdx, [rbp - 9]
mov rcx, rax
call fcn.180065fb8
movabs rcx, 0x144a27c70
call fcn.180062314
mov r8d, 0x23
lea rdx, str.http:__prod.umbrella.demonware.net
mov rcx, rax
call fcn.180065fb8
movabs rcx, 0x144a2baa0
call fcn.180062314
mov r8d, 0x23
lea rdx, str.http:__prod.uno.demonware.net_v1.0
mov rcx, rax
call fcn.180065fb8
movabs rcx, 0x144a29cb0
call fcn.180062314
mov r8d, 0x13
lea rdx, str.http:___s:_d_auth_
mov rcx, rax
call fcn.180065fb8
nop
mov rdx, qword [rbp + 0x1f]
cmp rdx, 0xf
jbe 0x180025bf6
inc rdx
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180025bf1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180025c13
call fcn.18009f350
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.18009f330
mov rsi, qword [rsp + 0xa0]
add rsp, 0x90
pop rbp
ret
call fcn.1800a665c
nop
call fcn.1800a665c
nop
int3
Function at 0x180025cb4
Capabilities:
Encode data using xor
Hash data using fnv

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, 0x30
mov r12, r8
mov r14, rdx
xor ecx, ecx
movabs r15, 0xcbf29ce484222325
movzx eax, byte [r8 + rcx]
xor r15, rax
movabs rdx, 0x100000001b3
imul r15, rdx
inc rcx
cmp rcx, 8
jb 0x180025ce3
mov rax, qword [0x180172e50]
and rax, r15
add rax, rax
mov rcx, qword [0x180172e38]
mov rbx, qword [rcx + rax*8 + 8]
mov rbp, qword [0x180172e28]
cmp rbx, rbp
jne 0x180025d8f
mov rbx, rbp
mov rsi, rbp
movabs rax, 0x7ffffffffffffff
cmp qword [0x180172e30], rax
je 0x180025f0d
lea rax, [0x180172e28]
mov qword [rsp + 0x20], rax
and qword [rsp + 0x28], 0
mov ecx, 0x20
call fcn.18009f814
mov rdi, rax
mov qword [rsp + 0x28], rax
mov rcx, qword [r12]
mov qword [rax + 0x10], rcx
and qword [rax + 0x18], 0
mov r8, qword [0x180172e30]
lea rcx, [r8 + 1]
xorps xmm0, xmm0
test rcx, rcx
js 0x180025dd3
cvtsi2ss xmm0, rcx
jmp 0x180025de8
mov rdx, qword [rcx + rax*8]
mov rax, qword [r8]
jmp 0x180025da1
cmp rbx, rdx
je 0x180025dc9
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x180025d98
mov rbp, qword [rbx]
mov rsi, rbp
mov rax, rbx
mov rbx, rbp
test rax, rax
je 0x180025d2d
mov qword [r14], rax
mov byte [r14 + 8], 0
jmp 0x180025eeb
mov rbp, rbx
xor eax, eax
mov rsi, rbx
jmp 0x180025db3
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [0x180172e58]
xorps xmm1, xmm1
test rcx, rcx
js 0x180025dfe
cvtsi2ss xmm1, rcx
jmp 0x180025e13
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [0x180172e20]
seta al
test al, al
je 0x180025e82
call fcn.180025f38
mov rcx, qword [0x180172e50]
and rcx, r15
add rcx, rcx
mov rdx, qword [0x180172e38]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [0x180172e28]
cmp rax, rbx
je 0x180025e6e
mov r8, qword [rdx + rcx*8]
mov rcx, qword [rdi + 0x10]
jmp 0x180025e65
mov rbx, rax
cmp rax, r8
je 0x180025ec5
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x180025e59
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov rsi, rbx
mov rbp, qword [rsp + 0x20]
mov r8, qword [0x180172e30]
mov rdx, qword [rbx + 8]
inc r8
mov qword [0x180172e30], r8
mov qword [rdi], rbp
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rax, qword [0x180172e50]
and rax, r15
add rax, rax
mov rcx, qword [0x180172e38]
mov r8, qword [rcx + rax*8]
cmp r8, qword [0x180172e28]
jne 0x180025ecc
mov qword [rcx + rax*8], rdi
jmp 0x180025ede
mov qword [rsp + 0x20], rax
jmp 0x180025e73
cmp r8, rsi
jne 0x180025ed7
mov qword [rcx + rax*8], rdi
jmp 0x180025ee3
cmp qword [rcx + rax*8 + 8], rdx
jne 0x180025ee3
mov qword [rcx + rax*8 + 8], rdi
mov qword [r14], rdi
mov byte [r14 + 8], 1
mov rax, r14
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
lea rcx, str.unordered_map_set_too_long
call fcn.18009c908
int3