joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140f3f058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.140f3f1df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x140f3f089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140f3f06f
add dl, dl
jne 0x140f3f096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140f3f0f6
xor eax, eax
add dl, dl
jne 0x140f3f0a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x140f3f1ad
add dl, dl
jne 0x140f3f0b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140f3f0c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140f3f0d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140f3f0dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x140f3f0ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x140f3f07e
mov eax, 1
add dl, dl
jne 0x140f3f106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x140f3f113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140f3f0fb
sub eax, ebx
mov ebx, 1
jne 0x140f3f14c
mov ecx, 1
add dl, dl
jne 0x140f3f12e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140f3f13b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140f3f123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140f3f07e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x140f3f168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x140f3f175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x140f3f15d
cmp eax, 0x7d00
jae 0x140f3f19b
cmp eax, 0x500
jb 0x140f3f196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140f3f07e
cmp eax, 0x7f
ja 0x140f3f19e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x140f3f07e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x140f3f1d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x140f3f07e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x1400032f8
Capabilities:
Parse pe header

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

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140002c1a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140002c1a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140002c1a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140002c1a
cmp dword [rcx + 0x84], 0xe
jbe 0x140002c1a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140002c1c
xor al, al
add rsp, 0x28
ret
Function at 0x18003be80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rax, qword [rsp + 0x40]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], rax
mov eax, 8
imul rax, rax, 0
mov rcx, qword [rsp + 0x20]
mov eax, dword [rcx + rax + 0x88]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x10], rax
mov dword [rsp + 4], 0
jmp 0x18003bee0
mov eax, dword [rsp + 4]
inc eax
mov dword [rsp + 4], eax
mov rax, qword [rsp + 0x10]
mov eax, dword [rax + 0x18]
cmp dword [rsp + 4], eax
jae 0x18003bfaf
mov rax, qword [rsp + 0x10]
mov eax, dword [rax + 0x24]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 4]
movzx eax, word [rax + rcx*2]
mov word [rsp], ax
mov rax, qword [rsp + 0x10]
mov eax, dword [rax + 0x20]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 4]
mov eax, dword [rax + rcx*4]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x18], rax
mov dword [rsp + 8], 0
jmp 0x18003bf4f
mov eax, dword [rsp + 8]
inc eax
mov dword [rsp + 8], eax
movsxd rax, dword [rsp + 8]
mov rcx, qword [rsp + 0x18]
movsx eax, byte [rcx + rax]
movsxd rcx, dword [rsp + 8]
mov rdx, qword [rsp + 0x48]
movsx ecx, byte [rdx + rcx]
cmp eax, ecx
jne 0x18003bfaa
movsxd rax, dword [rsp + 8]
mov rcx, qword [rsp + 0x18]
movsx eax, byte [rcx + rax]
test eax, eax
jne 0x18003bfa8
mov rax, qword [rsp + 0x10]
mov eax, dword [rax + 0x1c]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
movzx ecx, word [rsp]
mov eax, dword [rax + rcx*4]
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov rax, rcx
jmp 0x18003bfb1
jmp 0x18003bf45
jmp 0x18003bed6
xor eax, eax
add rsp, 0x38
ret

Function at 0x18003c6f0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x40], 0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x20], rax
jmp 0x18003c735
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
add rax, 0x20
cmp qword [rsp + 0x20], rax
je 0x18003c79d
mov rax, qword [rsp + 0x20]
sub rax, 0x10
mov qword [rsp + 0x30], rax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
lea rax, [rcx + rax + 0x58]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x60], 0
je 0x18003c790
xor r8d, r8d
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 8]
mov rcx, qword [rsp + 0x60]
call fcn.1800186e0
movzx eax, al
test eax, eax
je 0x18003c79b
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x30]
jmp 0x18003c79f
jmp 0x18003c728
xor eax, eax
add rsp, 0x58
ret
Function at 0x18005c390
Capabilities:
Resolve function by parsing pe exports

Disassembly:
movss dword [rsp + 0x20], xmm3
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x58
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x78]
movss xmm0, dword [rax]
subss xmm0, dword [rcx]
movss dword [rsp + 0x30], xmm0
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x78]
movss xmm0, dword [rax + 4]
subss xmm0, dword [rcx + 4]
movss dword [rsp + 0x2c], xmm0
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x78]
movss xmm0, dword [rax + 8]
subss xmm0, dword [rcx + 8]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rsp + 0x30]
mulss xmm0, dword [rsp + 0x30]
movss xmm1, dword [rsp + 0x2c]
mulss xmm1, dword [rsp + 0x2c]
addss xmm0, xmm1
movss xmm1, dword [rsp + 0x28]
mulss xmm1, dword [rsp + 0x28]
addss xmm0, xmm1
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rsp + 0x24]
ucomiss xmm0, dword [0x180087028]
jp 0x18005c443
je 0x18005c478
movss xmm0, dword [rsp + 0x88]
comiss xmm0, dword [0x180087028]
jb 0x18005c46e
movss xmm0, dword [rsp + 0x88]
mulss xmm0, dword [rsp + 0x88]
comiss xmm0, dword [rsp + 0x24]
jae 0x18005c478
mov dword [rsp + 0x38], 0
jmp 0x18005c480
mov dword [rsp + 0x38], 1
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x20], al
mov rcx, qword [rsp + 0x70]
call fcn.180019100
movzx eax, byte [rsp + 0x20]
test eax, eax
je 0x18005c4b5
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
jmp 0x18005c569
cvtss2sd xmm0, dword [rsp + 0x24]
cvtsd2ss xmm0, xmm0
call fcn.1800845e0
movss dword [rsp + 0x34], xmm0
movss xmm0, dword [rsp + 0x28]
divss xmm0, dword [rsp + 0x34]
mulss xmm0, dword [rsp + 0x88]
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rax + 8]
addss xmm1, xmm0
movaps xmm0, xmm1
movss xmm1, dword [rsp + 0x2c]
divss xmm1, dword [rsp + 0x34]
mulss xmm1, dword [rsp + 0x88]
mov rax, qword [rsp + 0x78]
movss xmm2, dword [rax + 4]
addss xmm2, xmm1
movaps xmm1, xmm2
movss xmm2, dword [rsp + 0x30]
divss xmm2, dword [rsp + 0x34]
mulss xmm2, dword [rsp + 0x88]
mov rax, qword [rsp + 0x78]
movss xmm3, dword [rax]
addss xmm3, xmm2
movaps xmm2, xmm3
movss dword [rsp + 0x3c], xmm2
movaps xmm3, xmm0
movaps xmm2, xmm1
movss xmm0, dword [rsp + 0x3c]
movaps xmm1, xmm0
lea rcx, [rsp + 0x40]
call fcn.1800190b0
mov rdi, qword [rsp + 0x70]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x70]
add rsp, 0x58
pop rdi
pop rsi
ret
Function at 0x140001378
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x140048b90]
mov dword [rax], 1
mov rax, qword [0x140048ba0]
mov dword [rax], 1
mov rax, qword [0x140048bb0]
mov dword [rax], 1
mov rax, qword [0x140048b40]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400013c9
mov eax, 0
jmp 0x140001476
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 0x1400013f5
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x14000141b
cmp eax, 0x20b
je 0x140001442
jmp 0x140001471
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000142e
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000145d
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x14002b520
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 fcn.14003cca0
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.msvcrt.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call fcn.14003cca0
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop

Function at 0x14002c1f2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x1400510a8]
test eax, eax
je 0x14002c28a
lea rax, [0x140051080]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x1400510b0]
mov qword [rbp - 8], rax
jmp 0x14002c26e
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 0x14002c262
cmp qword [rbp - 0x10], 0
je 0x14002c262
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 0x14002c228
lea rax, [0x140051080]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x14002c28b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x14002c390
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 0x14002c3b8
mov eax, 0
jmp 0x14002c406
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 0x14002c3e1
mov eax, 0
jmp 0x14002c406
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 0x14002c401
mov eax, 0
jmp 0x14002c406
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x14002c40c
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 0x14002c48a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x14002c481
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 0x14002c481
mov rax, qword [rbp - 8]
jmp 0x14002c49f
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 0x14002c454
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x1400087bc
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140008808
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140008800
cmp dword [rcx + 0x3c], edx
jl 0x140008800
cmp dword [rcx + 0x3c], 0x10000000
jae 0x140008800
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x140008808
mov rax, rdx
add rsp, 0x18
ret

Function at 0x14192b058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x14192b1df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x14192b089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14192b06f
add dl, dl
jne 0x14192b096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14192b0f6
xor eax, eax
add dl, dl
jne 0x14192b0a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14192b1ad
add dl, dl
jne 0x14192b0b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14192b0c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14192b0d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14192b0dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x14192b0ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x14192b07e
mov eax, 1
add dl, dl
jne 0x14192b106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14192b113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14192b0fb
sub eax, ebx
mov ebx, 1
jne 0x14192b14c
mov ecx, 1
add dl, dl
jne 0x14192b12e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14192b13b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14192b123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14192b07e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x14192b168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14192b175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14192b15d
cmp eax, 0x7d00
jae 0x14192b19b
cmp eax, 0x500
jb 0x14192b196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14192b07e
cmp eax, 0x7f
ja 0x14192b19e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14192b07e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x14192b1d2
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x14192b07e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x140008220
Capabilities:
Hash data using crc32b

Disassembly:
xor r9d, r9d
lea r10, [0x140130d00]
nop word [rax + rax]
xor eax, eax
test r9b, 1
je 0x14000823c
bts eax, 7
mov ecx, r9d
shr ecx, 1
test cl, 1
je 0x14000824a
bts eax, 6
shr ecx, 1
test cl, 1
je 0x140008255
bts eax, 5
shr ecx, 1
test cl, 1
je 0x140008260
bts eax, 4
shr ecx, 1
test cl, 1
je 0x14000826b
bts eax, 3
shr ecx, 1
test cl, 1
je 0x140008276
bts eax, 2
shr ecx, 1
test cl, 1
je 0x140008281
bts eax, 1
test cl, 2
je 0x14000828a
bts eax, 0
shl eax, 0x18
lea ecx, [rax + rax]
mov edx, ecx
xor edx, 0x4c11db7
test eax, eax
cmovns edx, ecx
lea eax, [rdx + rdx]
mov ecx, eax
xor ecx, 0x4c11db7
test edx, edx
cmovns ecx, eax
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c11db7
test ecx, ecx
cmovns edx, eax
lea eax, [rdx + rdx]
mov ecx, eax
xor ecx, 0x4c11db7
test edx, edx
cmovns ecx, eax
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c11db7
test ecx, ecx
cmovns edx, eax
lea eax, [rdx + rdx]
mov ecx, eax
xor ecx, 0x4c11db7
test edx, edx
cmovns ecx, eax
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c11db7
test ecx, ecx
cmovns edx, eax
lea eax, [rdx + rdx]
mov r8d, eax
xor r8d, 0x4c11db7
test edx, edx
cmovns r8d, eax
xor ecx, ecx
lea edx, [rcx + 0x1e]
test r8b, 1
je 0x140008321
lea eax, [rdx + 1]
bts ecx, eax
sar r8d, 1
test r8b, 1
je 0x14000832d
bts ecx, edx
sar r8d, 1
sub edx, 2
cmp edx, 0xfffffffe
jg 0x140008315
mov dword [r10], ecx
inc r9d
add r10, 4
cmp r9d, 0x100
jl 0x140008230
mov dword [0x140130cf0], 1
ret
Function at 0x14000b150
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
cmp dword [r8 + 0x38], 1
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov rbp, rcx
je 0x14000b17f
xor eax, eax
jmp 0x14000b337
mov ecx, dword [r9 + 0x10]
mov qword [rsp + 0x30], rsi
call qword [sym.imp.WS2_32.dll_ntohl]
mov esi, eax
lea rax, [rsi - 1]
cmp rax, 0xfe
ja 0x14000b2f8
mov ecx, dword [rdi + 0x1c]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, dword [rbx + 0xa4]
jne 0x14000b2f8
mov ecx, dword [rdi + 0x20]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, dword [rbx + 0x9c]
jne 0x14000b2f8
mov ecx, dword [rdi + 0x24]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, dword [rbx + 0xa0]
jne 0x14000b2f8
mov eax, dword [rbx + 0x1c]
cmp dword [rdi + 0x28], eax
jne 0x14000b2f8
mov edx, 1
mov r8b, 0xff
mov rcx, rbx
call fcn.14000b350
cmp rsi, qword [rbx + 0x48]
jae 0x14000b205
mov qword [rbx + 0x48], rsi
movzx ecx, word [rdi + 4]
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rbx + 0x18], ax
movzx eax, byte [rdi + 6]
mov byte [rbx + 0x21], al
movzx eax, byte [rdi + 7]
mov byte [rbx + 0x20], al
mov ecx, dword [rdi + 8]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, 0x240
mov esi, 0x1000
cmp eax, ecx
jb 0x14000b23f
cmp eax, esi
mov ecx, eax
cmova ecx, esi
cmp ecx, dword [rbx + 0xd0]
jae 0x14000b24d
mov dword [rbx + 0xd0], ecx
mov ecx, dword [rdi + 0xc]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, esi
jb 0x14000b266
mov ecx, 0x10000
mov esi, eax
cmp eax, ecx
cmova esi, ecx
cmp esi, dword [rbx + 0xd4]
jae 0x14000b274
mov dword [rbx + 0xd4], esi
mov ecx, dword [rdi + 0x14]
call qword [sym.imp.WS2_32.dll_ntohl]
mov dword [rbx + 0x50], eax
mov ecx, dword [rdi + 0x18]
call qword [sym.imp.WS2_32.dll_ntohl]
mov dword [rbx + 0x54], eax
mov rcx, rbx
mov dword [rbp + 0x24], 1
test r14, r14
je 0x14000b2c0
call fcn.140008890
mov dword [rbx + 0x38], 5
mov dword [r14], 1
mov qword [r14 + 8], rbx
mov eax, dword [rbx + 0x1c8]
mov dword [r14 + 0x14], eax
xor eax, eax
jmp 0x14000b332
xor edi, edi
cmp dword [rbx + 0x38], 1
sete dil
add edi, 3
call fcn.1400088c0
cmp dword [rbx + 0x140], 0
mov dword [rbx + 0x38], edi
jne 0x14000b2f4
lea rcx, [rbp + 0x48]
mov rdx, rbx
call fcn.140008040
mov dword [rbx + 0x140], 1
xor eax, eax
jmp 0x14000b332
xor edi, edi
mov rcx, rbx
mov dword [rbx + 0x1c8], edi
call fcn.1400088c0
mov dword [rbx + 0x38], 9
cmp dword [rbx + 0x140], edi
jne 0x14000b32d
lea rcx, [rbp + 0x48]
mov rdx, rbx
call fcn.140008040
mov dword [rbx + 0x140], 1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x14000c230
Capabilities:
Resolve dns

Disassembly:
push rbx
push r14
sub rsp, 0x58
mov rax, qword [0x14012d9c0]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r14, rcx
mov rbx, rdx
mov rcx, rdx
call qword [sym.imp.WS2_32.dll_gethostbyname]
test rax, rax
je 0x14000c275
cmp word [rax + 0x10], 2
jne 0x14000c275
mov rax, qword [rax + 0x18]
mov rcx, qword [rax]
mov eax, dword [rcx]
mov dword [r14], eax
xor eax, eax
jmp 0x14000c329
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x50], rsi
xor esi, esi
mov qword [rsp + 0x48], rdi
mov ebp, esi
mov qword [rsp + 0x40], r15
mov edi, esi
mov dword [rsp + 0x28], 0
lea r15d, [rsi + 0x2e]
nop
lea rdx, [rbx + 1]
mov qword [rsp + 0x20], rdx
cmp byte [rbx], 0x30
je 0x14000c2e3
mov r8d, 0xa
lea rdx, [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
cmp eax, 0xff
ja 0x14000c30b
mov rdx, qword [rsp + 0x20]
cmp rdx, rbx
je 0x14000c30b
mov rcx, rdx
sub rcx, rbx
cmp rcx, 3
jg 0x14000c30b
mov byte [rsp + rdi + 0x28], al
movsx eax, byte [rdx]
cmp ebp, 3
mov ecx, esi
cmovl ecx, r15d
cmp eax, ecx
jne 0x14000c30b
inc ebp
lea rbx, [rdx + 1]
inc rdi
cmp rdi, 4
jl 0x14000c2a0
mov eax, dword [rsp + 0x28]
mov dword [r14], eax
jmp 0x14000c310
mov esi, 0xffffffff
mov r15, qword [rsp + 0x40]
mov eax, esi
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400e3e70
add rsp, 0x58
pop r14
pop rbx
ret

Function at 0x14000c350
Capabilities:
Initialize winsock library

Disassembly:
sub rsp, 0x1d8
mov rax, qword [0x14012d9c0]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov ecx, 0x101
lea rdx, [rsp + 0x20]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x14000c3b9
movzx eax, word [rsp + 0x20]
cmp al, 1
jne 0x14000c3b3
shr ax, 8
cmp al, 1
jne 0x14000c3b3
mov ecx, 1
call qword [sym.imp.WINMM.dll_timeBeginPeriod]
xor eax, eax
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.1400e3e70
add rsp, 0x1d8
ret
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.1400e3e70
add rsp, 0x1d8
ret

Function at 0x14000c4b0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x14012d9c0]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbx, rdx
mov dword [rsp + 0x20], reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x28]
lea r8, [rsp + 0x20]
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
jne 0x14000c4f8
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400e3e70
add rsp, 0x40
pop rbx
ret
mov eax, dword [rsp + 0x2c]
movzx ecx, word [rsp + 0x2a]
mov dword [rbx], eax
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rbx + 4], ax
xor eax, eax
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400e3e70
add rsp, 0x40
pop rbx
ret