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

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x1400f10c0]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14000408d
xor eax, eax
jmp 0x1400041f9
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x1400040c7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x1400040c7
lea ecx, [r8 - 1]
mov dword [rax], ecx
mov eax, edi
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 1]
mov qword [rdx], rcx
mov byte [r8], dil
jmp 0x1400041f9
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x1400041ec
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14000410a
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
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 0x140004135
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 0x1400041f1
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 0x1400041a4
sub eax, 1
je 0x1400041a4
cmp eax, 2
jne 0x1400041ec
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 0x1400041f1
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x1400041d2
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 0x1400041ec
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x1400041f1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.1400c20c0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x1400045c0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x1400f10c0]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140004693
cmp byte [rcx + 0x71], 0
je 0x140004693
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + Ordinal_26]
cmp eax, 0xffffffff
je 0x14000468f
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 0x140004654
sub eax, 1
je 0x140004658
cmp eax, 2
jne 0x14000468f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400c20c0
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140004686
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 0x14000468f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000463c
xor al, al
jmp 0x14000463c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400c20c0
add rsp, 0x60
pop rbx
ret
Function at 0x14001c040
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x80
cmp qword [0x1400f30e8], 0
mov rbx, rcx
je 0x14001c2ab
cmp qword [0x1400f30c8], 0
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm8
movaps xmmword [rsp + 0x40], xmm9
movaps xmmword [rsp + 0x30], xmm10
movaps xmmword [rsp + 0x20], xmm11
jne 0x14001c09a
xorps xmm0, xmm0
mov dword [0x1400f1200], 0x7f7fffff
movups xmmword [0x1400f3e38], xmm0
movsd xmm8, qword [0x1400f11d0]
mulsd xmm8, qword [0x1400dcfc0]
movsd xmm10, qword [rcx]
movsd xmm7, qword [0x1400f11c8]
movsd xmm1, qword [0x1400dcfd8]
mulsd xmm7, qword [0x1400dcfc0]
movaps xmm0, xmm8
movsd xmm11, qword [rcx + 8]
subsd xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1400dcfd8]
movaps xmm9, xmm0
movaps xmm0, xmm7
subsd xmm0, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm9, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm9
ja 0x14001c10f
xorps xmm0, xmm0
sqrtsd xmm0, xmm9
jmp 0x14001c118
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movd xmm1, dword [0x1400f11e0]
xorps xmm4, xmm4
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
ja 0x14001c13f
ucomisd xmm10, xmm4
jp 0x14001c136
je 0x14001c13f
ucomisd xmm11, xmm4
jp 0x14001c153
jne 0x14001c153
xorps xmm0, xmm0
mov dword [0x1400f1200], 0x7f7fffff
movups xmmword [0x1400f3e38], xmm0
movsd xmm1, qword [rbx]
xorps xmm10, xmm10
movd xmm0, dword [0x1400f3054]
xorps xmm3, xmm3
movsd xmm6, qword [rbx + 8]
xorps xmm2, xmm2
movss xmm9, dword [0x1400f11f0]
movsd xmm11, qword [0x1400dd4f0]
cvtpd2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
ucomiss xmm1, xmm10
cvtpd2ps xmm6, xmm6
divss xmm9, xmm0
jp 0x14001c198
je 0x14001c1e8
cvtps2pd xmm5, xmm1
comisd xmm5, xmm8
jbe 0x14001c1c8
movaps xmm3, xmm8
movaps xmm0, xmm8
subsd xmm3, xmm5
addsd xmm0, xmm8
xorps xmm3, xmm11
movaps xmm1, xmm3
addsd xmm1, xmm8
comisd xmm1, xmm0
jbe 0x14001c1c8
xorps xmm3, xmm3
comisd xmm8, xmm5
jbe 0x14001c1e8
movaps xmm3, xmm5
subsd xmm3, xmm8
movaps xmm0, xmm3
addsd xmm0, xmm8
comisd xmm4, xmm0
jbe 0x14001c1e8
xorps xmm3, xmm3
movaps xmm8, xmmword [rsp + 0x50]
ucomiss xmm6, xmm10
movaps xmm10, xmmword [rsp + 0x30]
jp 0x14001c1fc
je 0x14001c244
cvtps2pd xmm5, xmm6
comisd xmm5, xmm7
jbe 0x14001c227
movaps xmm2, xmm7
movaps xmm0, xmm7
subsd xmm2, xmm5
addsd xmm0, xmm7
xorps xmm2, xmm11
movaps xmm1, xmm2
addsd xmm1, xmm7
comisd xmm1, xmm0
jbe 0x14001c227
xorps xmm2, xmm2
comisd xmm7, xmm5
jbe 0x14001c244
movaps xmm2, xmm5
subsd xmm2, xmm7
movaps xmm0, xmm2
addsd xmm0, xmm7
comisd xmm4, xmm0
jbe 0x14001c244
xorps xmm2, xmm2
cmp byte [0x1400f3044], 0
xorps xmm1, xmm1
movaps xmm11, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x70]
cvtps2pd xmm0, xmm9
movaps xmm9, xmmword [rsp + 0x40]
divsd xmm3, xmm0
divsd xmm2, xmm0
cvtsd2ss xmm1, xmm3
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm2
je 0x14001c295
cvttss2si r8d, xmm3
xor ecx, ecx
cvttss2si edx, xmm1
add rsp, 0x80
pop rbx
jmp fcn.140002400
cmp byte [0x1400f3083], 0
je 0x14001c2ab
cvttss2si edx, xmm3
cvttss2si ecx, xmm1
call fcn.140054620
add rsp, 0x80
pop rbx
ret
Function at 0x140026400
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push rdi
cmp dword [0x1400f3ef4], 0
lea rdi, [0x1400f3ef0]
mov r11d, r8d
mov r9d, edx
mov r10, rcx
jne 0x1400264d8
mov qword [rsp + 0x10], rbx
xor edx, edx
mov rbx, rdi
nop dword [rax]
mov r8d, edx
lea rbx, [rbx + 4]
and r8d, 1
mov eax, edx
shr eax, 1
neg r8d
and r8d, 0xedb88320
inc edx
xor r8d, eax
mov eax, r8d
shr r8d, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, r8d
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov dword [rbx - 4], eax
cmp edx, 0x100
jb 0x140026430
mov rbx, qword [rsp + 0x10]
not r11d
mov eax, r11d
test r9d, r9d
jle 0x14002650e
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r10]
lea r10, [r10 + 1]
movzx edx, al
xor rdx, rcx
shr eax, 8
xor eax, dword [rdi + rdx*4]
sub r9d, 1
jne 0x1400264f0
not eax
pop rdi
ret
movzx r9d, byte [r10]
lea r8, [r10 + 1]
test r9b, r9b
je 0x14002654f
nop dword [rax + rax]
cmp r9b, 0x23
jne 0x140026533
cmp byte [r8], r9b
jne 0x140026533
cmp byte [r8 + 1], r9b
cmove eax, r11d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [rdi + rdx*4]
test r9b, r9b
jne 0x140026520
not eax
pop rdi
ret
Function at 0x140026750
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x20
mov rdi, r8
test r8, r8
je 0x140026769
mov qword [r8], 0
lea rdx, [0x1400dc140]
call fcn.140026560
mov rbx, rax
test rax, rax
jne 0x140026788
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
xor edx, edx
mov qword [rsp + 0x30], rbp
mov rcx, rbx
mov qword [rsp + 0x38], rsi
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x140026848
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rsi, eax
cmp esi, 0xffffffff
je 0x140026848
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x140026848
mov rax, qword [0x1400f3100]
mov rbp, rsi
test rax, rax
je 0x1400267e5
inc dword [rax + 0x3c8]
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x140026848
mov r9, rbx
mov r8, rbp
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rcx, rbx
cmp rax, rbp
je 0x140026835
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1400f3100]
test rax, rax
je 0x14002682a
dec dword [rax + 0x3c8]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x140026851
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test rdi, rdi
je 0x140026843
mov qword [rdi], rbp
mov rax, rsi
jmp 0x140026853
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1400365f0
Capabilities:
Write file on windows

Disassembly:
push rsi
push rdi
push r15
sub rsp, 0x20
mov rdi, qword [0x1400f3100]
xor esi, esi
mov r15, rcx
mov dword [rdi + 0x2d9c], esi
test rcx, rcx
je 0x14003670a
mov qword [rsp + 0x40], rbx
lea rbx, [rdi + 0x2da0]
mov dword [rdi + 0x2d9c], esi
mov ecx, dword [rbx + 4]
mov qword [rsp + 0x48], rbp
test ecx, ecx
jns 0x14003664a
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
mov rcx, rbx
test eax, eax
cmovg edx, eax
call fcn.140037610
mov dword [rbx], esi
cmp dword [rbx + 4], esi
jne 0x14003665e
mov edx, 8
mov rcx, rbx
call fcn.140037610
movsxd rcx, dword [rbx]
mov ebp, esi
mov rax, qword [rbx + 8]
mov byte [rcx + rax], sil
inc dword [rbx]
cmp dword [rdi + 0x2db0], esi
jle 0x1400366aa
mov qword [rsp + 0x50], r14
mov r14, rsi
nop dword [rax]
mov r9, qword [rdi + 0x2db8]
mov r8, rbx
add r9, r14
mov rcx, rdi
mov rdx, r9
call qword [r9 + reloc.WLDAP32.dll_Ordinal_32]
inc ebp
add r14, 0x30
cmp ebp, dword [rdi + 0x2db0]
jl 0x140036680
mov r14, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
cmp qword [rbx + 8], rsi
je 0x1400366b9
mov esi, dword [rbx]
dec esi
mov rax, qword [rdi + 0x2da8]
lea rdx, [0x1400dc144]
test rax, rax
movsxd rsi, esi
lea rdi, [0x1400f30b6]
mov rcx, r15
cmovne rdi, rax
call fcn.140026560
mov rbx, rax
test rax, rax
je 0x140036705
mov r9, rax
mov r8, rsi
mov edx, 1
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r15
pop rdi
pop rsi
ret
Function at 0x14003e670
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
push r13
push r14
sub rsp, 0xb8
mov r13, rcx
movsxd rax, r9d
xor ecx, ecx
mov qword [rsp + 0x60], rax
mov dword [rsp + 0xe8], ecx
mov r14, rdx
test r9d, r9d
jle 0x14003e8d2
mov qword [r11 + 8], rbx
lea rbx, [r8 + 0x20]
mov qword [r11 + 0x10], rbp
movzx ebp, byte [r13 + 0x24]
mov qword [r11 + 0x18], rsi
mov qword [r11 - 0x18], rdi
mov edi, 0x100
mov qword [r11 - 0x20], r12
xor r12d, r12d
mov qword [r11 - 0x28], r15
movaps xmmword [r11 - 0x38], xmm6
movaps xmmword [r11 - 0x48], xmm7
xorps xmm7, xmm7
movaps xmmword [r11 - 0x58], xmm8
movzx r11d, byte [r13 + 0x20]
movss xmm8, dword [0x1400dd500]
nop word [rax + rax]
movss xmm6, dword [rbx - 0x20]
comiss xmm6, xmm7
jbe 0x14003e73a
movsxd r10, dword [r14 + 0x24]
mov r9, qword [r14 + 8]
movsx ecx, di
movzx eax, byte [r10 + r9 + 7]
movzx edx, byte [r10 + r9 + 6]
imul edx, ecx
movsx ecx, di
add dx, ax
movzx eax, byte [r10 + r9 + 5]
movsx r8d, dx
movzx edx, byte [r10 + r9 + 4]
imul edx, ecx
add ax, dx
cwde
sub eax, r8d
movd xmm0, eax
jmp 0x14003e759
movsxd rdx, dword [r14 + 0x1c]
xorps xmm6, xmm8
mov rax, qword [r14 + 8]
movzx ecx, byte [rdx + rax + 0x12]
movzx eax, byte [rdx + rax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
xor edi, edi
mov byte [rbx], r11b
mov byte [rbx + 1], bpl
divss xmm6, xmm0
cmp dword [rbx - 0x10], edi
jle 0x14003e870
mov r15, qword [rsp + 0xf0]
mov rax, r12
shl rax, 4
add r15, 6
xor esi, esi
add r15, rax
nop word [rax + rax]
mov rax, qword [rbx - 0x18]
test rax, rax
jne 0x14003e7a0
mov edx, dword [rbx - 0x1c]
add edx, edi
jmp 0x14003e7a3
mov edx, dword [rax + rsi]
mov eax, dword [r13 + 0x24]
xorps xmm3, xmm3
xorps xmm2, xmm2
mov rcx, r14
cvtsi2ss xmm3, rax
mov eax, dword [r13 + 0x20]
cvtsi2ss xmm2, rax
mulss xmm3, xmm6
mulss xmm2, xmm6
call fcn.140039970
mov edx, eax
mov rcx, r14
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
call fcn.14003c2c0
movzx ecx, word [r13 + 0x1c]
inc r12
movzx r11d, word [r13 + 0x20]
movzx eax, cx
sub ax, word [rsp + 0x50]
dec cx
movzx ebp, word [r13 + 0x24]
dec ax
add ax, r11w
inc edi
add ax, word [rsp + 0x54]
add rsi, 4
mov word [r15 - 2], ax
movzx eax, bp
sub ax, word [rsp + 0x58]
add ax, cx
mov ecx, dword [rsp + 0xe8]
add ax, word [rsp + 0x5c]
inc ecx
mov word [r15], ax
add r15, 0x10
mov dword [rsp + 0xe8], ecx
cmp edi, dword [rbx - 0x10]
jl 0x14003e790
jmp 0x14003e877
mov ecx, dword [rsp + 0xe8]
add rbx, 0x28
mov edi, 0x100
sub qword [rsp + 0x60], 1
jne 0x14003e6f0
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov r15, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xd0]
mov eax, ecx
add rsp, 0xb8
pop r14
pop r13
ret
Function at 0x140042470
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test r9d, 0xff000000
je 0x140042627
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
movss xmm3, dword [rsp + 0x70]
xorps xmm0, xmm0
comiss xmm3, xmm0
mov esi, r9d
mov rdi, r8
mov rbp, rdx
mov rbx, rcx
jbe 0x140042506
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call fcn.140041de0
mov r8d, dword [rbx + 0x80]
mov r9d, esi
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
call fcn.1400413f0
mov ecx, dword [rbx + 0x84]
test ecx, ecx
jns 0x1400424f7
mov eax, ecx
cdq
sub eax, edx
xor edx, edx
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x80]
test eax, eax
cmovg edx, eax
call fcn.1400372a0
mov dword [rbx + 0x80], 0
jmp 0x140042613
mov edx, 6
movaps xmmword [rsp + 0x30], xmm6
lea r8d, [rdx - 2]
call fcn.1400402e0
movzx edx, word [rbx + 0x48]
mov rax, qword [rbx + 0x38]
movss xmm1, dword [rdi]
movss xmm2, dword [rbp + 4]
movss xmm3, dword [rbp]
lea ecx, [rdx + 1]
movss xmm6, dword [rax + 4]
movss xmm5, dword [rax]
movss xmm4, dword [rdi + 4]
mov rax, qword [rbx + 0x58]
mov word [rax], dx
mov rax, qword [rbx + 0x58]
mov word [rax + 2], cx
lea ecx, [rdx + 2]
mov rax, qword [rbx + 0x58]
mov word [rax + 4], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 6], dx
add dx, 3
mov rax, qword [rbx + 0x58]
mov word [rax + 8], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 0xa], dx
movsd xmm0, qword [rbp]
mov rax, qword [rbx + 0x50]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 8], xmm5
movss dword [rax + 0xc], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x10], esi
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x14], xmm1
movss dword [rax + 0x18], xmm2
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x1c], xmm5
movss dword [rax + 0x20], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x24], esi
movsd xmm0, qword [rdi]
mov rax, qword [rbx + 0x50]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x30], xmm5
movss dword [rax + 0x34], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x38], esi
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x3c], xmm3
movss dword [rax + 0x40], xmm4
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x44], xmm5
movss dword [rax + 0x48], xmm6
mov rax, qword [rbx + 0x50]
movaps xmm6, xmmword [rsp + 0x30]
mov dword [rax + 0x4c], esi
add qword [rbx + 0x50], 0x50
add dword [rbx + 0x48], 4
add qword [rbx + 0x58], 0xc
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x140054620
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x1400f10c0]
xor rax, rsp
mov qword [rsp + 0x48], rax
cmp qword [0x1400f3990], 0
movsx edi, dx
movsx ebx, cx
ja 0x140054653
mov eax, 0xffffdcd8
jmp 0x140054760
inc dword [0x1400f3148]
mov dword [0x1400f314c], 0xaede7345
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movups xmm1, xmmword [0x1400f3118]
mov rcx, qword [0x1400f3990]
lea rdx, [0x1400f3140]
mov dword [0x1400f310c], ebx
xor r9d, r9d
mov dword [0x1400f3110], edi
movups xmm0, xmmword [0x1400f3108]
mov dword [0x1400f3144], eax
lea rax, [0x1400f3980]
movaps xmmword [0x1400f3160], xmm1
lea r8d, [r9 + 0x48]
movsd xmm1, qword [0x1400f3138]
movaps xmmword [0x1400f3150], xmm0
movups xmm0, xmmword [0x1400f3128]
mov dword [rsp + 0x28], reloc.WS2_32.dll_recv
movsd qword [0x1400f3180], xmm1
movaps xmmword [0x1400f3170], xmm0
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_sendto]
mov rcx, qword [0x1400f3990]
lea rdx, [0x1400f3560]
xor eax, eax
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
mov qword [0x1400f310c], rax
xor r9d, r9d
lea rax, [rsp + 0x30]
mov r8d, 0x400
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
jns 0x140054731
mov eax, 0xffffdcdb
jmp 0x140054760
mov eax, dword [0x1400f314c]
cmp dword [0x1400f356c], eax
je 0x140054746
mov eax, 0xffffdcdc
jmp 0x140054760
mov ecx, dword [0x1400f3148]
mov edx, 0xffffdcdd
cmp dword [0x1400f3568], ecx
mov eax, dword [0x1400f3564]
cmovne eax, edx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400c20c0
mov rbx, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
Function at 0x140057290
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1400f10c0]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, dword [0x1400f397c]
movsxd rax, dword [0x1400f39f8]
xor r9d, r9d
cmp eax, 0x7b
ja 0x1400572d0
lea r9, [0x1400f17c0]
mov r9, qword [r9 + rax*8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x28], 0
test r9, r9
jne 0x140057316
mov qword [rbp - 0x18], 0xa
movsd xmm0, qword [str.Select_Key]
movsd qword [rbp - 0x28], xmm0
movzx eax, word [0x1400d61a8]
mov word [rbp - 0x20], ax
mov byte [rbp - 0x1e], r9b
jmp 0x140057352
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [r9 + rbx], 0
jne 0x140057320
lea rcx, [rbp - 0x28]
cmp rbx, 0xf
ja 0x14005734a
mov qword [rbp - 0x18], rbx
mov r8, rbx
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
mov byte [rbp + rbx - 0x28], 0
jmp 0x140057352
mov rdx, rbx
call fcn.1400157e0
cmp edi, 1
jne 0x1400573a4
mov rax, qword [rbp - 0x10]
cmp rax, 0xd
jb 0x14005738f
lea rbx, [rbp - 0x28]
cmp rax, 0xf
cmova rbx, qword [rbp - 0x28]
mov qword [rbp - 0x18], reloc.WS2_32.dll_listen
lea r8d, [rdi + 0xc]
lea rdx, str.Press_the_key
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 0xd], 0
jmp 0x1400573a4
lea r9, str.Press_the_key
mov edx, reloc.WS2_32.dll_listen
lea rcx, [rbp - 0x28]
call fcn.1400157e0
mov dword [rbp - 0x30], 0x42fa0000
mov dword [rbp - 0x2c], 0x420c0000
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x30]
call fcn.140048610
test al, al
je 0x1400573f3
test edi, edi
jne 0x1400573f3
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x1400571f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140057431
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005742c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14005742c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400c2600
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1400c20c0
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x60
pop rbp
ret
Function at 0x140057450
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1400f10c0]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, dword [0x1400f355c]
movsxd rax, dword [0x1400f30c0]
cmp dword [0x1400f39f8], 0
jne 0x14005749a
mov dword [0x1400f39f8], 0x12
mov dword [0x1400f30c0], 0x10
xor r9d, r9d
cmp eax, 0x7b
ja 0x1400574ad
lea r9, [0x1400f13e0]
mov r9, qword [r9 + rax*8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x28], 0
test r9, r9
jne 0x1400574f3
mov qword [rbp - 0x18], 0xa
movsd xmm0, qword [str.Select_Key]
movsd qword [rbp - 0x28], xmm0
movzx eax, word [0x1400d61a8]
mov word [rbp - 0x20], ax
mov byte [rbp - 0x1e], r9b
jmp 0x140057532
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [r9 + rbx], 0
jne 0x140057500
lea rcx, [rbp - 0x28]
cmp rbx, 0xf
ja 0x14005752a
mov qword [rbp - 0x18], rbx
mov r8, rbx
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
mov byte [rbp + rbx - 0x28], 0
jmp 0x140057532
mov rdx, rbx
call fcn.1400157e0
cmp edi, 1
jne 0x140057584
mov rax, qword [rbp - 0x10]
cmp rax, 0xd
jb 0x14005756f
lea rbx, [rbp - 0x28]
cmp rax, 0xf
cmova rbx, qword [rbp - 0x28]
mov qword [rbp - 0x18], reloc.WS2_32.dll_listen
lea r8d, [rdi + 0xc]
lea rdx, str.Press_the_key
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 0xd], 0
jmp 0x140057584
lea r9, str.Press_the_key
mov edx, reloc.WS2_32.dll_listen
lea rcx, [rbp - 0x28]
call fcn.1400157e0
mov dword [rbp - 0x30], 0x42fa0000
mov dword [rbp - 0x2c], 0x420c0000
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x30]
call fcn.140048610
test al, al
je 0x1400575d3
test edi, edi
jne 0x1400575d3
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140057240]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140057611
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005760c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14005760c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400c2600
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1400c20c0
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x60
pop rbp
ret