joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41b2f0
Capabilities:
Allocate thread local storage

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, qword [0x004b1508]
test rbx, rbx
je 0x41b320
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
mov rax, qword [0x004b1508]
test rax, rax
je 0x41b344
cmp dword [rax], 0xffffffff
je 0x41b365
add rsp, 0x20
pop rbx
ret
lea r8, [0x0041a780]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call fcn.004204d0
mov rbx, rax
mov qword [0x004b1508], rax
jmp 0x41b301
lea r8, [0x0041a780]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call fcn.004204d0
mov qword [0x004b1508], rax
jmp 0x41b315
call sub.msvcrt.dll_abort
nop
nop dword [rax + rax]

Function at 0x41b800
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rcx, qword [0x004b1510]
test rcx, rcx
je 0x41b940
call fcn.0041b770
mov rax, qword [0x004b1508]
test rax, rax
je 0x41b963
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x41b843
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
call fcn.0041b140
test rax, rax
mov rbx, rax
je 0x41b9ab
cmp qword [0x004b4050], 0
je 0x41b9ab
mov dword [rax + 0x44], 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov edx, 1
mov dword [rbx + 0x68], eax
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov rsi, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], 0xffffffffffffffff
mov qword [rbx + 0x60], 0xffffffffffffffff
mov dword [rbx + 0xb0], 0
mov qword [rbx + 0x28], 0
call rsi
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rdi, rax
call rsi
mov dword [rsp + 0x30], 2
mov rcx, rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rbx + 0x28]
mov r8, rbp
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x41b9b2
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [rbx + 0xb8], eax
movzx eax, byte [rbx + 0x40]
mov dword [rbx + 0xb4], 0
and eax, 0xffffffcf
or eax, 0x10
mov byte [rbx + 0x40], al
mov rax, qword [0x004b1508]
test rax, rax
je 0x41b987
mov rdx, rbx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x41b9b2
mov rax, rbx
jmp 0x41b83a
lea rcx, str._pthread_tls_once_shmem
xor r8d, r8d
mov edx, 4
call fcn.004204d0
mov rcx, rax
mov qword [0x004b1510], rax
jmp 0x41b818
lea r8, [0x0041a780]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call fcn.004204d0
mov qword [0x004b1508], rax
jmp 0x41b82d
lea r8, [0x0041a780]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call fcn.004204d0
mov qword [0x004b1508], rax
jmp 0x41b928
xor eax, eax
jmp 0x41b83a
call sub.msvcrt.dll_abort
nop
nop dword [rax + rax]
lea rcx, str._pthread_key_dest_shmem
xor r8d, r8d
mov edx, 8
jmp fcn.004204d0
Function at 0x41b9c0
Capabilities:
Check mutex on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rcx, qword [0x004b1510]
test rcx, rcx
je 0x41b940
call fcn.0041b770
mov rax, qword [0x004b1508]
test rax, rax
je 0x41b963
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x41b843
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
call fcn.0041b140
test rax, rax
mov rbx, rax
je 0x41b9ab
cmp qword [0x004b4050], 0
je 0x41b9ab
mov dword [rax + 0x44], 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov edx, 1
mov dword [rbx + 0x68], eax
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov rsi, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], 0xffffffffffffffff
mov qword [rbx + 0x60], 0xffffffffffffffff
mov dword [rbx + 0xb0], 0
mov qword [rbx + 0x28], 0
call rsi
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rdi, rax
call rsi
mov dword [rsp + 0x30], 2
mov rcx, rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rbx + 0x28]
mov r8, rbp
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x41b9b2
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [rbx + 0xb8], eax
movzx eax, byte [rbx + 0x40]
mov dword [rbx + 0xb4], 0
and eax, 0xffffffcf
or eax, 0x10
mov byte [rbx + 0x40], al
mov rax, qword [0x004b1508]
test rax, rax
je 0x41b987
mov rdx, rbx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x41b9b2
mov rax, rbx
jmp 0x41b83a
lea rcx, str._pthread_tls_once_shmem
xor r8d, r8d
mov edx, 4
call fcn.004204d0
mov rcx, rax
mov qword [0x004b1510], rax
jmp 0x41b818
lea r8, [0x0041a780]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call fcn.004204d0
mov qword [0x004b1508], rax
jmp 0x41b82d
lea r8, [0x0041a780]
lea rcx, str._pthread_tls_shmem
mov edx, 4
call fcn.004204d0
mov qword [0x004b1508], rax
jmp 0x41b928
xor eax, eax
jmp 0x41b83a
call sub.msvcrt.dll_abort
nop
nop dword [rax + rax]
lea rcx, str._pthread_key_dest_shmem
xor r8d, r8d
mov edx, 8
jmp fcn.004204d0
Function at 0x41e770
Capabilities:
Check mutex on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rbx, rcx
mov rcx, qword [0x004b1558]
mov esi, edx
test rcx, rcx
je 0x41e710
call fcn.00420890
cmp dword [rbx], 0xbab1f00d
jne 0x41e737
mov eax, dword [rbx + 4]
test eax, eax
jle 0x41e737
mov eax, dword [rbx + 4]
test eax, eax
jle 0x41e6c3
mov eax, dword [rbx + 4]
sub eax, 1
mov dword [rbx + 4], eax
mov rcx, qword [0x004b1558]
test rcx, rcx
je 0x41e6e0
call fcn.00420940
mov eax, esi
add rsp, 0x38
pop rbx
pop rsi
ret
lea r8, [0x0041e450]
lea rcx, str.mutex_global_shmem
mov edx, 8
call fcn.004204d0
mov rcx, rax
mov qword [0x004b1558], rax
call fcn.00420940
mov eax, esi
add rsp, 0x38
pop rbx
pop rsi
ret
lea rcx, str.mutex_global_shmem
lea r8, [0x0041e450]
mov edx, 8
call fcn.004204d0
mov rcx, rax
mov qword [0x004b1558], rax
jmp 0x41e697
call qword [sym.imp.msvcrt.dll___iob_func]
lea r9, str.C:_crossdev_src_winpthreads_git20141130_src_mutex.c
lea rcx, [rax + 0x60]
lea r8, str._m___valid__LIFE_MUTEX____m___busy___0_
lea rdx, [0x00493160]
mov dword [rsp + 0x20], 0x39
call sub.msvcrt.dll_fprintf
mov ecx, 1
call sub.msvcrt.dll_exit
nop
nop
lea r8, [0x0041e450]
lea rcx, str.mutex_global_shmem
mov edx, 8
jmp fcn.004204d0
Function at 0x4204d0
Capabilities:
Check mutex on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x80]
mov rdi, rcx
movsxd r12, edx
mov r13, r8
call sub.msvcrt.dll_strlen
mov r14, rax
lea ebx, [rax + 0xf]
lea eax, [rax + 0x51]
cdqe
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.0040feb0
sub rsp, rax
movsxd r15, r14d
movabs rax, 0x656d68732d636367
lea rsi, [rsp + 0x20]
lea rcx, [rsp + 0x2f]
mov r8, r15
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov eax, 0x326d
mov dword [rsp + 0x28], 0x64742d6d
mov word [rsp + 0x2c], ax
movsxd rbx, ebx
mov byte [rsp + 0x2e], 0x2d
call sub.msvcrt.dll_memcpy
lea rax, [rsi + r15 + 0x10]
lea r15d, [r14 + 0x50]
movabs rdx, 0x6161616161616161
xor ecx, ecx
mov r8, rsi
mov qword [rax], rdx
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rdx
mov qword [rax + 0x20], rdx
mov qword [rax + 0x28], rdx
mov qword [rax + 0x30], rdx
mov qword [rax + 0x38], rdx
movsxd rax, r15d
xor edx, edx
mov byte [rsp + rax + 0x20], 0
mov byte [rsp + rbx + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov byte [rsp + rbx + 0x20], 0x2d
mov rdi, rax
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4205b9
int3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindAtomA]
test ax, ax
jne 0x420652
mov rcx, r12
add r14d, 0x10
call sub.msvcrt.dll_malloc
mov r10d, 0x40
mov rbx, rax
bt rbx, r10
jae 0x4205f4
mov r11d, r15d
sub r11d, r10d
movsxd r11, r11d
mov byte [rsi + r11], 0x41
sub r10d, 1
jne 0x4205e0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AddAtomA]
test ax, ax
je 0x42064f
mov rdx, rsi
movzx ecx, ax
mov r9d, r14d
mov r8d, r15d
call fcn.00420450
cmp rax, rbx
mov rsi, rax
je 0x420669
mov rcx, rbx
call fcn.0041a508
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rsi
lea rsp, [rbp - 0x58]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
int3
lea r9d, [r14 + 0x10]
mov rdx, rsi
movzx ecx, ax
mov r8d, r15d
call fcn.00420450
mov rsi, rax
jmp 0x420629
xor edx, edx
mov r8, r12
mov rcx, rbx
call sub.msvcrt.dll_memset
test r13, r13
je 0x420629
mov rcx, rbx
call r13
jmp 0x420629

Function at 0x422260
Capabilities:
Check mutex on windows

Disassembly:
lea r8, [0x00478050]
lea rcx, str.__terminate_handler_sh
mov edx, 8
jmp fcn.0040ff70

Function at 0x422280
Capabilities:
Check mutex on windows

Disassembly:
lea r8, [0x00478060]
lea rcx, str.__unexpected_handler_sh
mov edx, 8
jmp fcn.0040ff70
Function at 0x4535d0
Capabilities:
Read file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [sym.imp.msvcrt.dll__errno]
mov rbp, rcx
mov rdi, rdx
mov esi, r8d
mov rcx, rbp
call fcn.004534b0
mov r8d, esi
mov rdx, rdi
mov ecx, eax
call sub.msvcrt.dll__read
movsxd rbx, eax
cmp rbx, 0xffffffffffffffff
je 0x453620
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call r12
cmp dword [rax], 4
je 0x4535ea
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
Function at 0x180016c80
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
cmp edx, 1
jne 0x180016ca8
xor eax, eax
lea r8, [0x180016470]
mov r9, rcx
mov qword [rsp + 0x28], rax
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
add rsp, 0x38
ret

Function at 0x180016df0
Capabilities:
Create process on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x18009d7c0]
xor rax, rsp
mov qword [rsp + 0xa8], rax
mov rbx, rcx
mov qword [r11 - 0x28], rcx
mov r8, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
mov rax, rcx
sub rax, r8
xor r15d, r15d
cmp rax, 3
jb 0x180016ebf
lea rax, [r8 + 3]
mov qword [rbx + 0x10], rax
mov rdi, rbx
cmp rcx, 0xf
jbe 0x180016e53
mov rdi, qword [rbx]
lea rax, [0x18009131f]
mov r14d, 3
lea rsi, [0x18009131c]
cmp rax, rdi
jbe 0x180016e87
lea rax, [rdi + r8]
cmp rsi, rax
ja 0x180016e87
cmp rdi, rsi
ja 0x180016e7f
mov rbp, r15
jmp 0x180016e8a
mov rbp, rdi
sub rbp, rsi
jmp 0x180016e8a
mov rbp, r14
inc r8
lea rcx, [rdi + 3]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memmove
mov r8, rbp
mov rdx, rsi
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
sub r14, rbp
lea rdx, [rsi + 3]
add rdx, rbp
lea rcx, [rdi + rbp]
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180016ee1
mov r14d, 3
mov qword [rsp + 0x28], r14
lea rsi, [0x18009131c]
mov qword [rsp + 0x20], rsi
mov edx, r14d
mov rcx, rbx
call fcn.180015a70
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
mov dword [rsp + 0x30], reloc.WS2_32.dll_WSASetLastError
mov dword [rsp + 0x34], 0x40
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r15
lea rax, str.cmd.exe
mov qword [rsp + 0x48], rax
mov rax, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180016f40
mov rax, qword [rbx]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], r15
mov dword [rsp + 0x60], r15d
mov qword [rsp + 0x68], r15
lea rcx, [rsp + 0x30]
call qword [sym.imp.SHELL32.dll_ShellExecuteExA]
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x180016f96
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x180016f91
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180016fd2
mov rcx, r8
call fcn.18007a994
mov byte [rbx], 0
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov qword [rbx + 0x10], r15
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.18007a930
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x1800172d0
Capabilities:
Encode data using xor
Terminate process

Disassembly:
sub rsp, 0x58
lea rdx, [rsp + 0x20]
call fcn.180017470
mov r9, rax
cmp byte [rax + 0xd], 0
je 0x18001741f
xor ecx, ecx
cmp dword [reloc.WS2_32.dll_accept], 2
jl 0x1800173df
movdqa xmm2, xmmword [0x1800914c0]
mov ecx, 8
movdqa xmm3, xmmword [0x1800914d0]
movdqa xmm1, xmm2
movdqa xmm5, xmmword [0x1800915c0]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm5
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
movdqa xmm1, xmm3
pmulld xmm0, xmmword [0x180091500]
psubd xmm2, xmm0
punpckldq xmm1, xmm3
andps xmm2, xmmword [0x180091560]
movd xmm0, dword [rax]
packuswb xmm2, xmm2
pmuldq xmm1, xmm5
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x180091580]
xorps xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm5
movd dword [rax], xmm2
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180091500]
psubd xmm3, xmm0
movd xmm0, dword [rax + 4]
andps xmm3, xmmword [0x180091560]
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmmword [0x180091580]
xorps xmm3, xmm0
movd dword [rax + 4], xmm3
movsxd r8, ecx
add r8, r9
nop word [rax + rax]
mov eax, 0x8d3dcb09
lea r8, [r8 + 1]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x3a
movzx eax, cl
inc ecx
sub al, dl
add al, 0x36
xor byte [r8 - 1], al
cmp ecx, 0xe
jl 0x1800173f0
mov rdx, r9
lea rcx, [rsp + 0x30]
call fcn.180002090
mov rcx, rax
call fcn.1800170c0
lea rdx, str.Exit_called_n_____Exiting_in_5_seconds...
lea rcx, [rsp + 0x30]
call fcn.180002090
mov rcx, rax
call fcn.180017000
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x1d30
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
Function at 0x180022740
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
je 0x180022822
call fcn.18003b2c0
test al, al
jne 0x180022822
mov qword [rsp + 0x30], rsi
xor esi, esi
mov qword [rsp + 0x38], rdi
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rbx + rdi], sil
jne 0x180022772
mov r8, rdi
mov edx, reloc.WLDAP32.dll_Ordinal_46
mov rcx, rbx
call fcn.180046040
test rax, rax
je 0x1800227b7
sub rax, rbx
mov edx, reloc.WLDAP32.dll_Ordinal_46
mov r8, rax
mov rcx, rbx
call fcn.180046040
mov rsi, rax
test rax, rax
je 0x1800227b7
inc rsi
mov rcx, rbx
sub rcx, rsi
add rdi, rcx
test rsi, rsi
cmovne rbx, rsi
lea rsi, [rbx + rdi]
mov edi, 0x1505
cmp rbx, rsi
jae 0x1800227eb
nop dword [rax]
movzx ecx, byte [rbx]
call fcn.180037040
imul rdi, rdi, 0x21
movsx rcx, al
inc rbx
xor rdi, rcx
cmp rbx, rsi
jb 0x1800227d0
mov rsi, qword [rsp + 0x30]
mov rcx, rdi
movabs rax, 0x410410410410411
mul rdi
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
imul rcx, rcx, 0x3f
sub rdi, rcx
mov rax, rdi
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x180030c40
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
cmp byte [rcx + 0xa4e], 0
mov rbp, r9
mov r14, r8
movsxd rsi, edx
mov rdi, rcx
je 0x180030d0b
cmp qword [rcx + 0x278], 0
je 0x180030cbe
mov qword [rsp + 0x40], rbx
call fcn.18001ca70
mov dl, 1
mov rcx, rdi
movzx ebx, al
call fcn.18001d0b0
mov rcx, qword [rdi + 0x1f0]
mov r9, rbp
mov qword [rsp + 0x20], rcx
mov r8, r14
mov rcx, rdi
mov edx, esi
call qword [rdi + 0x278]
movzx edx, bl
mov rcx, rdi
call fcn.18001d0b0
mov rbx, qword [rsp + 0x40]
jmp 0x180030d0b
mov ecx, esi
test edx, edx
je 0x180030cce
sub ecx, 1
je 0x180030cce
cmp ecx, 1
jne 0x180030d0b
mov r9, qword [rdi + 0x1e8]
lea rax, [0x180080950]
lea rcx, [rsi + rsi*2]
mov edx, 2
add rcx, rax
mov r8d, 1
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
mov r9, qword [rdi + 0x1e8]
mov r8d, 1
mov rdx, rbp
mov rcx, r14
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret

Function at 0x180034950
Capabilities:
Read file on windows

Disassembly:
sub rsp, 0x28
call sub.api_ms_win_crt_stdio_l1_1_0.dll__read
cdqe
add rsp, 0x28
ret
Function at 0x180034c40
Capabilities:
Get common file path

Disassembly:
push rbx
push rbp
push rdi
sub rsp, 0x20
mov rbx, rcx
xor ebp, ebp
lea rcx, str.kernel32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x180034c6a
add rsp, 0x20
pop rdi
pop rbp
pop rbx
ret
lea rdx, str.LoadLibraryExA
mov qword [rsp + 0x48], r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x180081410]
mov rcx, rbx
mov r14, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_strpbrk
test rax, rax
je 0x180034ccb
mov rcx, rbx
test r14, r14
je 0x180034cb8
xor edx, edx
mov r8d, 8
mov rax, r14
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
pop rbp
pop rbx
jmp rax
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
pop rbp
pop rbx
jmp qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test r14, r14
je 0x180034d02
lea rdx, str.AddDllDirectory
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180034d02
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
mov rax, r14
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
pop rbp
pop rbx
jmp rax
xor edx, edx
mov qword [rsp + 0x50], r15
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov r15d, eax
test eax, eax
je 0x180034dca
mov rdi, 0xffffffffffffffff
mov qword [rsp + 0x40], rsi
mov rdx, rdi
nop dword [rax + rax]
inc rdx
cmp byte [rbx + rdx], bpl
jne 0x180034d30
lea ecx, [rax + 1]
add rcx, rdx
call qword [section..data]
mov rsi, rax
test rax, rax
je 0x180034dbc
mov edx, r15d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x180034dbc
mov rax, rdi
cmp byte [rsi + rax + 1], bpl
lea rax, [rax + 1]
jne 0x180034d60
mov word [rax + rsi], 0x5c
inc rdi
cmp byte [rsi + rdi], bpl
jne 0x180034d71
mov rax, rsi
sub rax, rbx
add rdi, rax
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbx]
mov byte [rdi + rbx], al
lea rbx, [rbx + 1]
test al, al
jne 0x180034d90
mov rcx, rsi
test r14, r14
je 0x180034db3
xor edx, edx
mov r8d, 8
call r14
jmp 0x180034db9
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbp, rax
mov rcx, rsi
call qword [case.0x180024015.0]
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x50]
mov rax, rbp
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
pop rbp
pop rbx
ret
Function at 0x1800467e0
Capabilities:
Move file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x60
mov rbx, rcx
movaps xmmword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x30]
mov rdi, rdx
call fcn.180022b30
mov rcx, rbx
movups xmm6, xmmword [rax]
call case.0x180024015.2
mov rcx, rdi
mov rsi, rax
call case.0x180024015.2
mov r8d, 1
mov rdx, rax
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x180046890
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x40]
movdqa xmmword [rsp + 0x20], xmm6
call fcn.180022b30
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x30], xmm0
call fcn.180022bc0
cmp rax, 0x3e8
ja 0x1800468c1
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8d, 1
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
je 0x180046840
test rsi, rsi
je 0x18004689d
mov rcx, rsi
call case.0x180024015.0
test rbx, rbx
je 0x1800468aa
mov rcx, rbx
call case.0x180024015.0
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x60
pop rdi
ret
test rsi, rsi
je 0x1800468ce
mov rcx, rsi
call case.0x180024015.0
test rbx, rbx
je 0x1800468db
mov rcx, rbx
call case.0x180024015.0
mov eax, 1
jmp 0x1800468ac
Function at 0x180046e40
Capabilities:
Resolve dns

Disassembly:
push rbp
push rdi
push r12
push r13
sub rsp, 0x28
mov r13, r9
xor edi, edi
mov qword [r9], rdi
xor ebp, ebp
lea r9, [rsp + 0x68]
call qword [sym.imp.WS2_32.dll_getaddrinfo]
mov r12d, eax
test eax, eax
jne 0x180046fdf
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rsi
mov rsi, qword [rsp + 0x68]
test rsi, rsi
je 0x180046fbf
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x20], r15
nop dword [rax]
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x180046eae
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x180046ea0
inc rbx
jmp 0x180046eb0
xor ebx, ebx
mov eax, dword [rsi + 4]
cmp eax, 2
jne 0x180046ec0
mov r15d, reloc.WS2_32.dll_recv
jmp 0x180046ecf
cmp eax, 0x17
jne 0x180046f68
mov r15d, Ordinal_33
cmp qword [rsi + 0x20], 0
je 0x180046f68
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x180046f68
cmp rax, r15
jb 0x180046f68
lea rcx, [rbx + 0x30]
add rcx, r15
call qword [section..data]
mov r14, rax
test rax, rax
je 0x180046f77
mov ecx, dword [rsi]
mov r8, r15
mov dword [rax], ecx
mov ecx, dword [rsi + 4]
mov dword [rax + 4], ecx
mov ecx, dword [rsi + 8]
mov dword [rax + 8], ecx
mov ecx, dword [rsi + 0xc]
mov dword [rax + 0xc], ecx
lea rcx, [r14 + 0x30]
mov dword [rax + 0x10], r15d
xor eax, eax
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x28], rax
mov qword [r14 + 0x20], rcx
mov rdx, qword [rsi + 0x20]
call sub.VCRUNTIME140.dll_memcpy
test rbx, rbx
je 0x180046f55
mov rcx, qword [r14 + 0x20]
mov r8, rbx
add rcx, r15
mov qword [r14 + 0x18], rcx
mov rdx, qword [rsi + 0x18]
call sub.VCRUNTIME140.dll_memcpy
test rdi, rdi
cmove rdi, r14
test rbp, rbp
je 0x180046f65
mov qword [rbp + 0x28], r14
mov rbp, r14
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x180046e90
jmp 0x180046f7d
mov r12d, 8
mov rcx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x60]
test rcx, rcx
je 0x180046f97
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
test r12d, r12d
je 0x180046fba
test rdi, rdi
je 0x180046fb6
mov rbx, qword [rdi + 0x28]
mov rcx, rdi
call qword [case.0x180024015.0]
mov rdi, rbx
test rbx, rbx
jne 0x180046fa1
xor edi, edi
jmp 0x180046fce
test rdi, rdi
jne 0x180046fce
mov r12d, 0x2af9
mov ecx, r12d
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rsi, qword [rsp + 0x58]
mov eax, r12d
mov rbx, qword [rsp + 0x50]
mov qword [r13], rdi
add rsp, 0x28
pop r13
pop r12
pop rdi
pop rbp
ret

Function at 0x180047450
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x30
xor ebx, ebx
mov r9, rdx
mov r8, rcx
mov qword [rsp + 0x28], rbx
xor edx, edx
mov dword [rsp + 0x20], ebx
xor ecx, ecx
call sub.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex
test rax, rax
je 0x180047486
cmp rax, 0xffffffffffffffff
cmovne rbx, rax
mov rax, rbx
add rsp, 0x30
pop rbx
ret
add rsp, 0x30
pop rbx
ret