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

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140008040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x1400023cd
xor eax, eax
jmp 0x140002539
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x140002407
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x140002407
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 0x140002539
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14000252c
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14000244a
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 0x140002475
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 0x140002531
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 0x1400024e4
sub eax, 1
je 0x1400024e4
cmp eax, 2
jne 0x14000252c
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 0x140002531
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140002512
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 0x14000252c
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x140002531
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140003400
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x1400027a0
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140008040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140002873
cmp byte [rcx + 0x71], 0
je 0x140002873
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14000286f
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 0x140002834
sub eax, 1
je 0x140002838
cmp eax, 2
jne 0x14000286f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140003400
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140002866
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 0x14000286f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x14000281c
xor al, al
jmp 0x14000281c
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140003400
add rsp, 0x60
pop rbx
ret

Function at 0x140003d88
Capabilities:
Parse pe header

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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0xb0
xor r14d, r14d
mov dword [rsp + 0x20], r14d
lea rcx, [rax - 0x78]
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetStartupInfoW]
nop
mov rax, qword gs:[0x30]
mov rbx, qword [rax + 8]
mov esi, r14d
xor eax, eax
lock cmpxchg qword [0x14004dd08], rbx
je 0x140040e07
cmp rax, rbx
jne 0x140040dfa
mov ebx, 1
mov esi, ebx
jmp 0x140040e0c
mov ecx, 0x3e8
call qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
jmp 0x140040ddf
mov ebx, 1
mov eax, dword [0x14004dd10]
cmp eax, ebx
jne 0x140040e24
mov edi, 0x1f
mov ecx, edi
call fcn.140187000
jmp 0x140040e90
mov eax, dword [0x14004dd10]
test eax, eax
jne 0x140040e85
mov dword [0x14004dd10], ebx
lea r15, [0x140044330]
lea rdi, [0x140044318]
mov qword [rsp + 0x30], rdi
mov eax, r14d
mov dword [rsp + 0x24], eax
cmp rdi, r15
jae 0x140040e77
test eax, eax
jne 0x140040e7b
cmp qword [rdi], r14
je 0x140040e6c
mov rax, qword [rdi]
mov rcx, qword [0x1400442d8]
call rcx
mov dword [rsp + 0x24], eax
add rdi, 8
mov qword [rsp + 0x30], rdi
jmp 0x140040e4e
test eax, eax
je 0x140040e8b
mov eax, 0xff
jmp 0x140040fe6
mov dword [0x14004d384], ebx
mov edi, 0x1f
mov eax, dword [0x14004dd10]
cmp eax, ebx
jne 0x140040eb7
lea rdx, [0x140044310]
lea rcx, [0x1400442e0]
call sub.msvcrt.dll__initterm
mov dword [0x14004dd10], 2
test esi, esi
jne 0x140040ec5
mov rax, r14
xchg qword [0x14004dd08], rax
cmp qword [0x14004dd28], r14
je 0x140040ef8
lea rcx, [0x14004dd28]
call fcn.140041400
test eax, eax
je 0x140040ef8
xor r8d, r8d
lea edx, [r8 + 2]
xor ecx, ecx
mov rax, qword [0x14004dd28]
mov r9, qword [0x1400442d8]
call r9
mov rax, qword [sym.imp.msvcrt.dll__wcmdln]
mov rcx, qword [rax]
test rcx, rcx
jne 0x140040f11
mov eax, 0xff
jmp 0x140040fe6
mov qword [rsp + 0x28], rcx
mov edx, dword [rsp + 0x20]
movzx eax, word [rcx]
cmp ax, 0x20
ja 0x140040f97
test ax, ax
je 0x140040f2c
test edx, edx
jne 0x140040f97
sub ax, bx
cmp ax, di
ja 0x140040f42
add rcx, 2
mov qword [rsp + 0x28], rcx
movzx eax, word [rcx]
jmp 0x140040f2c
test byte [rsp + 0x7c], bl
movzx eax, word [rsp + 0x80]
mov r9d, 0xa
cmovne r9d, eax
mov r8, rcx
xor edx, edx
lea rcx, [0x140000000]
call fcn.1400024cc
mov dword [0x14004d380], eax
cmp dword [0x14004d3a0], r14d
jne 0x140040f80
mov ecx, eax
call qword [sym.imp.msvcrt.dll_exit]
cmp dword [0x14004d384], r14d
jne 0x140040f95
call qword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x14004d380]
jmp 0x140040fe6
cmp ax, 0x22
jne 0x140040fab
mov eax, r14d
test edx, edx
sete al
mov edx, eax
mov dword [rsp + 0x20], eax
add rcx, 2
mov qword [rsp + 0x28], rcx
jmp 0x140040f1a
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop r15
ret
sub rsp, 0x28
call fcn.140041494
add rsp, 0x28
jmp 0x140040da0
Function at 0x180001410
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
xor r9b, r9b
movzx r11d, cl
shl r11d, 2
mov rbx, r8
movzx r8d, r9b
xor r10b, r10b
add r8d, r11d
shl r8d, 2
movzx eax, r10b
inc r10b
add eax, r8d
mov cl, byte [rax + rbx]
xor byte [rdx], cl
inc rdx
cmp r10b, 4
jb 0x180001431
inc r9b
cmp r9b, 4
jb 0x180001423
mov rbx, qword [rsp + 8]
ret
Function at 0x1800016ec
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
test r8d, r8d
je 0x1800018be
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
lea r12, [rcx + 0xf0]
mov esi, r8d
mov r14, r12
movaps xmmword [rax - 0x28], xmm6
sub r14, rdx
lea rbx, [rdx + 9]
dec rsi
mov rbp, rcx
shr rsi, 4
inc rsi
lea rdi, [rbx - 9]
mov r8, rbp
movups xmm6, xmmword [rdi]
mov rdx, rdi
mov cl, 0xe
call fcn.180001410
mov r15b, 0xd
mov al, byte [rbx]
lea r11, [0x180144450]
mov cl, byte [rbx + 4]
mov r10d, 4
mov byte [rbx + 4], al
mov rdx, rdi
mov al, byte [rbx - 4]
mov r9d, r10d
mov byte [rbx], al
mov al, byte [rbx - 8]
mov byte [rbx - 4], al
mov al, byte [rbx + 1]
mov byte [rbx - 8], cl
mov cl, byte [rbx - 7]
mov byte [rbx - 7], al
mov al, byte [rbx + 5]
mov byte [rbx + 1], cl
mov cl, byte [rbx - 3]
mov byte [rbx - 3], al
mov al, byte [rbx - 2]
mov byte [rbx + 5], cl
mov cl, byte [rbx - 6]
mov byte [rbx - 6], al
mov al, byte [rbx + 2]
mov byte [rbx - 2], al
mov al, byte [rbx + 6]
mov byte [rbx + 2], al
mov byte [rbx + 6], cl
mov rcx, rdx
mov r8, r10
movzx eax, byte [rcx]
mov al, byte [rax + r11]
mov byte [rcx], al
add rcx, r10
sub r8, 1
jne 0x1800017ad
inc rdx
sub r9, 1
jne 0x1800017a7
mov r8, rbp
mov rdx, rdi
mov cl, r15b
call fcn.180001410
mov rcx, rdi
call fcn.180001458
add r15b, 0xff
jne 0x18000174e
mov al, byte [rbx]
lea r11, [0x180144450]
mov cl, byte [rbx + 4]
mov r10d, 4
mov byte [rbx + 4], al
mov rdx, rdi
mov al, byte [rbx - 4]
mov r9d, r10d
mov byte [rbx], al
mov al, byte [rbx - 8]
mov byte [rbx - 4], al
mov al, byte [rbx + 1]
mov byte [rbx - 8], cl
mov cl, byte [rbx - 7]
mov byte [rbx - 7], al
mov al, byte [rbx + 5]
mov byte [rbx + 1], cl
mov cl, byte [rbx - 3]
mov byte [rbx - 3], al
mov al, byte [rbx - 2]
mov byte [rbx + 5], cl
mov cl, byte [rbx - 6]
mov byte [rbx - 6], al
mov al, byte [rbx + 2]
mov byte [rbx - 2], al
mov al, byte [rbx + 6]
mov byte [rbx + 2], al
mov byte [rbx + 6], cl
mov rcx, rdx
mov r8, r10
movzx eax, byte [rcx]
mov al, byte [rax + r11]
mov byte [rcx], al
add rcx, r10
sub r8, 1
jne 0x180001847
inc rdx
sub r9, 1
jne 0x180001841
mov r8, rbp
mov rdx, rdi
xor ecx, ecx
call fcn.180001410
mov ecx, 0x10
mov al, byte [r14 + rdi]
xor byte [rdi], al
inc rdi
sub rcx, 1
jne 0x180001874
add rbx, 0x10
sub r14, 0x10
movdqu xmmword [r12], xmm6
sub rsi, 1
jne 0x180001737
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
Function at 0x1800018f8
Capabilities:
Decompress data using aplib

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push rbp
mov rbp, rsp
sub rsp, 0x40
mov al, byte [rcx]
or r14d, 0xffffffff
and dword [rbp - 0xc], 0
xor r9d, r9d
mov byte [rdx], al
xor edi, edi
lea rax, [rdx + 1]
mov rbx, rdx
mov qword [rbp - 0x18], rax
mov r11d, r14d
lea rax, [rcx + 1]
mov qword [rbp - 0x20], rax
lea esi, [rdi + 1]
lea rcx, [rbp - 0x20]
call fcn.1800018c0
test eax, eax
je 0x180001af8
lea rcx, [rbp - 0x20]
call fcn.1800018c0
test eax, eax
je 0x1800019fe
lea rcx, [rbp - 0x20]
call fcn.1800018c0
test eax, eax
je 0x1800019ba
xor r9d, r9d
lea r10d, [r9 + 4]
lea rcx, [rbp - 0x20]
call fcn.1800018c0
lea r9d, [rax + r9*2]
sub r10d, esi
jne 0x180001973
test r9d, r9d
je 0x1800019a7
mov rdx, qword [rbp - 0x18]
mov rax, rdx
mov ecx, r9d
sub rax, rcx
mov al, byte [rax]
mov byte [rdx], al
add rdx, rsi
mov qword [rbp - 0x18], rdx
jmp 0x180001b12
mov rax, qword [rbp - 0x18]
mov byte [rax], 0
add rax, rsi
mov qword [rbp - 0x18], rax
jmp 0x180001b12
mov rax, qword [rbp - 0x20]
movzx r11d, byte [rax]
add rax, rsi
mov ecx, r11d
mov qword [rbp - 0x20], rax
and ecx, esi
add ecx, 2
shr r11d, 1
je 0x1800019f7
mov rdx, qword [rbp - 0x18]
mov r8d, r11d
neg r8
mov al, byte [r8 + rdx]
mov byte [rdx], al
add rdx, rsi
add ecx, r14d
jne 0x1800019e0
mov qword [rbp - 0x18], rdx
jmp 0x180001af3
mov edi, esi
jmp 0x180001af3
mov r10d, esi
lea rcx, [rbp - 0x20]
call fcn.1800018c0
lea rcx, [rbp - 0x20]
lea r10d, [rax + r10*2]
call fcn.1800018c0
test eax, eax
jne 0x180001a01
test r9d, r9d
jne 0x180001a68
cmp r10d, 2
jne 0x180001a68
mov r9d, esi
lea rcx, [rbp - 0x20]
call fcn.1800018c0
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.1800018c0
test eax, eax
jne 0x180001a29
test r9d, r9d
je 0x180001af3
mov rcx, qword [rbp - 0x18]
mov edx, r11d
neg rdx
mov al, byte [rdx + rcx]
mov byte [rcx], al
add rcx, rsi
add r9d, r14d
jne 0x180001a56
jmp 0x180001aef
mov rcx, qword [rbp - 0x20]
xor r9d, esi
sub r10d, r9d
mov r9d, esi
shl r10d, 8
movzx r11d, byte [rcx]
add r11d, 0xfffffe00
add r11d, r10d
add rcx, rsi
mov qword [rbp - 0x20], rcx
lea rcx, [rbp - 0x20]
call fcn.1800018c0
lea rcx, [rbp - 0x20]
lea r9d, [rax + r9*2]
call fcn.1800018c0
test eax, eax
jne 0x180001a8e
cmp r11d, 0x7d00
lea eax, [r9 + 1]
cmovb eax, r9d
cmp r11d, 0x500
lea ecx, [rax + 1]
cmovb ecx, eax
cmp r11d, 0x80
lea r8d, [rcx + 2]
cmovae r8d, ecx
test r8d, r8d
je 0x180001af3
mov rcx, qword [rbp - 0x18]
mov edx, r11d
neg rdx
mov al, byte [rdx + rcx]
mov byte [rcx], al
add rcx, rsi
add r8d, r14d
jne 0x180001ae2
mov qword [rbp - 0x18], rcx
mov r9d, esi
jmp 0x180001b15
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x18]
mov al, byte [rdx]
mov byte [rcx], al
add rcx, rsi
add rdx, rsi
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x20], rdx
xor r9d, r9d
test edi, edi
je 0x18000193d
mov eax, dword [rbp - 0x18]
mov rsi, qword [rsp + 0x58]
sub eax, ebx
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
add rsp, 0x40
pop rbp
ret
Function at 0x180001c24
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x250
mov rax, qword [0x180146008]
xor rax, rsp
mov qword [rsp + 0x240], rax
movzx r8d, byte [0x180146cfd]
cmp edx, 0x1b
movzx eax, byte [0x180146cfc]
mov r15, rcx
cmova r8d, eax
mov byte [0x180146cfd], r8b
cmp edx, 1
jne 0x180001d72
call fcn.180001e24
call fcn.180003597
test eax, eax
je 0x180001cdd
and dword [0x1801468e4], 0
call fcn.180001b3c
test eax, eax
jne 0x180001cdd
xor r14d, r14d
xor edi, edi
xor esi, esi
xor ebx, ebx
lea ebp, [rsi + 0x15]
call fcn.1800035a5
cmp eax, ebx
cmova ebx, eax
add esi, eax
sub rbp, 1
jne 0x180001ca4
sub esi, ebx
lea eax, [rdi + 1]
cmp esi, 0x2ef4
cmovb edi, eax
lea eax, [r14 + 1]
cmovb eax, r14d
mov r14d, eax
cmp eax, 5
jge 0x180001d6b
cmp edi, 5
jl 0x180001c9d
mov r8d, 0x104
lea rdx, [rsp + 0x30]
lea rcx, str._windir__system32_ntdll.dll
call qword [0x180148a88]
lea rcx, [rsp + 0x30]
call fcn.180003094
test eax, eax
je 0x180001d0d
lea rcx, [rsp + 0x30]
call fcn.180003208
mov qword [0x180148a60], r15
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rsp + 0x20]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
lea rdx, [0x180144598]
mov rbx, rax
mov rcx, qword [rax]
call fcn.1800043e0
test rax, rax
jne 0x180001d54
mov rcx, qword [rbx + 8]
lea rdx, str._sta
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x180001d72
xor edx, edx
lea rcx, str.Running
call section..text
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
and dword [0x1801468e0], 0
mov eax, 1
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1800035d0
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret

Function at 0x180001de4
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
movzx eax, word [rcx]
xor edx, edx
shr eax, 1
je 0x180001e1f
mov r8, qword [rcx + 8]
mov r9d, eax
movzx eax, word [r8]
movzx ecx, word [r8]
sub ax, 0x41
add cx, 0x20
cmp ax, 0x19
cmova cx, word [r8]
lea r8, [r8 + 2]
movzx eax, cx
xor edx, eax
rol edx, 3
sub r9, 1
jne 0x180001df4
mov eax, edx
ret
Function at 0x180002e58
Capabilities:
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
movsxd rax, dword [rcx + 0x3c]
xor esi, esi
mov r15, r8
mov r12, rdx
mov rbx, rcx
mov edi, dword [rax + rcx + 0x88]
add rdi, rcx
mov r14d, dword [rdi + 0x20]
add r14, rcx
cmp dword [rdi + 0x18], esi
jbe 0x180002eb2
mov ecx, dword [r14 + rsi*4]
mov rdx, r15
add rcx, rbx
call r12
test eax, eax
jne 0x180002ed3
inc esi
cmp esi, dword [rdi + 0x18]
jb 0x180002e9a
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
mov ecx, dword [rdi + 0x24]
add rcx, rbx
movzx edx, word [rcx + rsi*2]
mov ecx, dword [rdi + 0x1c]
add rcx, rbx
mov eax, dword [rcx + rdx*4]
add rax, rbx
jmp 0x180002eb4

Function at 0x180003094
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
or rax, 0xffffffffffffffff
xor r14d, r14d
inc rax
cmp word [rcx + rax*2], r14w
jne 0x1800030b7
lea rcx, [rcx + rax*2]
jmp 0x1800030cb
sub rcx, 2
cmp word [rcx], 0x5c
jne 0x1800030c7
add rcx, 2
call qword [0x180148b18]
mov r8, rax
mov r10d, r14d
movsxd rbx, dword [rax + 0x3c]
add rbx, rax
movzx edi, word [rbx + 0x14]
movzx r12d, word [rbx + 6]
add rdi, rbx
test r12d, r12d
je 0x1800031d4
mov eax, r10d
lea rcx, [rax + rax*4]
mov eax, dword [str..text]
cmp dword [rdi + rcx*8 + 0x18], eax
jne 0x1800031c8
mov al, byte [0x180144638]
cmp byte [rdi + rcx*8 + 0x1c], al
jne 0x1800031c8
mov r9d, dword [rdi + rcx*8 + 0x24]
mov esi, dword [rdi + rcx*8 + 0x20]
add r9, r8
add rsi, r9
mov rdx, r9
cmp r9, rsi
jae 0x1800031c8
cmp byte [rdx], 0xe9
jne 0x1800031bb
movsxd rax, dword [rdx + 1]
lea rcx, [rdx + 5]
add rcx, rax
cmp rcx, r9
jb 0x180003159
cmp rcx, rsi
jbe 0x1800031bb
mov eax, dword [rbx + 0x88]
mov r11d, r14d
add rax, r8
mov ebp, dword [rax + 0x20]
mov r15d, dword [rax + 0x18]
add rbp, r8
test r15d, r15d
je 0x1800031b3
mov r13d, dword [rax + 0x24]
mov eax, dword [rax + 0x1c]
mov qword [rsp + 0x50], rax
mov r14d, r11d
lea rax, [r14*2]
add rax, r13
movzx ecx, word [rax + r8]
mov rax, qword [rsp + 0x50]
lea rax, [rax + rcx*4]
mov ecx, dword [rax + r8]
add rcx, r8
cmp rcx, rdx
je 0x1800031f3
inc r11d
cmp r11d, r15d
jb 0x180003180
xor r14d, r14d
mov rax, r14
test rax, rax
jne 0x180003200
add rdx, 4
cmp rdx, rsi
jb 0x18000313f
inc r10d
cmp r10d, r12d
jb 0x1800030fd
xor eax, eax
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov eax, dword [rbp + r14*4]
add rax, r8
xor r14d, r14d
jmp 0x1800031b6
mov eax, 1
jmp 0x1800031d6
Function at 0x140004000
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
cld
and rsp, 0xfffffffffffffff0
call fcn.1400040d6
push r9
push r8
push rdx
push rcx
push rsi
xor rdx, rdx
mov rdx, qword gs:[rdx + 0x60]
mov rdx, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x20]
mov rsi, qword [rdx + 0x50]
xor r9, r9
movzx rcx, word [rdx + 0x4a]
xor rax, rax
lodsb al, byte [rsi]
cmp al, 0x61
jl 0x140004037
sub al, 0x20
ror r9d, 0xd
add r9d, eax
loop 0x14000402d
push rdx
push r9
mov rdx, qword [rdx + 0x20]
mov eax, dword [rdx + 0x3c]
add rax, rdx
cmp word [rax + 0x18], 0x20b
jne 0x1400040cb
mov eax, dword [rax + 0x88]
test rax, rax
je 0x1400040cb
add rax, rdx
mov ecx, dword [rax + 0x18]
push rax
mov r8d, dword [rax + 0x20]
add r8, rdx
jrcxz 0x1400040ca
xor r9, r9
dec rcx
mov esi, dword [r8 + rcx*4]
add rsi, rdx
xor rax, rax
lodsb al, byte [rsi]
ror r9d, 0xd
add r9d, eax
cmp al, ah
jne 0x140004081
add r9, qword [rsp + 8]
cmp r9d, r10d
jne 0x140004072
pop rax
mov r8d, dword [rax + 0x24]
add r8, rdx
mov cx, word [r8 + rcx*2]
mov r8d, dword [rax + 0x1c]
add r8, rdx
mov eax, dword [r8 + rcx*4]
pop r8
add rax, rdx
pop r8
pop rsi
pop rcx
pop rdx
pop r8
pop r9
pop r10
sub rsp, 0x20
push r10
jmp rax
pop rax
pop r9
pop rdx
mov rdx, qword [rdx]
jmp 0x140004021
Function at 0x140001360
Capabilities:
Access peb ldr_data

Disassembly:
push rbp
mov r11d, ecx
push rdi
push rsi
push rbx
mov rax, qword gs:[0x60]
sub rsp, 0x118
mov rax, qword [rax + 0x18]
mov r8, qword [rax + 0x20]
cmp word [r8 + 0x48], 0
jne 0x140001393
mov rdx, qword [r8]
lea rbp, [rsp + 0xc]
xor eax, eax
jmp 0x14000140a
lea rbx, [rsp + 0xc]
mov ecx, 0x41
xor eax, eax
mov rsi, qword [r8 + 0x50]
mov rdi, rbx
rep stosd dword [rdi], eax
mov ax, word [rsi + rcx*2]
xor r9d, r9d
cmp ax, 0x2e
je 0x1400013bd
test ax, ax
je 0x1400013d4
mov r9b, 1
lea r10d, [rax - 0x41]
mov edx, eax
xor edx, 0x20
cmp r10b, 0x1a
cmovae edx, eax
mov byte [rsp + rcx + 0xc], dl
inc rcx
mov r10, rbx
mov eax, 0xff
movzx edx, byte [r10]
inc r10
test dl, dl
jne 0x1400013f3
cmp r11d, eax
je 0x1400013fa
test r9b, r9b
jne 0x1400013a8
jmp 0x140001387
imul eax, eax, 0x21
add eax, edx
jmp 0x1400013dc
mov rax, qword [r8 + 0x20]
jmp 0x14000147f
cmp word [rdx + 0x48], 0
jne 0x140001411
mov rdx, qword [rdx]
cmp rdx, r8
jne 0x140001400
jmp 0x14000147d
mov ecx, 0x41
mov rdi, rbp
xor r10d, r10d
rep stosd dword [rdi], eax
mov rdi, qword [rdx + 0x50]
mov cx, word [rdi + r10*2]
xor ebx, ebx
cmp cx, 0x2e
je 0x140001436
test cx, cx
je 0x140001450
mov bl, 1
lea esi, [rcx - 0x41]
mov r9d, ecx
xor r9d, 0x20
cmp sil, 0x1a
cmovae r9d, ecx
mov byte [rsp + r10 + 0xc], r9b
inc r10
mov rsi, rbp
mov ecx, 0xff
movzx r9d, byte [rsi]
inc rsi
test r9b, r9b
jne 0x14000146f
cmp r11d, ecx
je 0x140001477
test bl, bl
jne 0x140001422
jmp 0x140001407
imul ecx, ecx, 0x21
add ecx, r9d
jmp 0x140001458
mov rax, qword [rdx + 0x20]
jmp 0x14000147f
xor eax, eax
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
ret

Function at 0x140001490
Capabilities:
Parse pe header

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x1e0
cmp word [rcx], 0x5a4d
movsxd rsi, dword [rcx + 0x3c]
je 0x1400014ac
xor eax, eax
jmp 0x14000154c
add rsi, rcx
mov r8, rcx
cmp dword [rsi], 0x4550
jne 0x1400014a5
lea rdi, [rsp + 0xf0]
add rsi, 0x18
mov ecx, 0x3c
mov r9d, edx
rep movsd dword [rdi], dword [rsi]
mov rdi, rsp
lea rsi, [rsp + 0xf0]
mov ecx, 0x3c
rep movsd dword [rdi], dword [rsi]
movsxd rax, dword [rsp + 0x70]
add rax, r8
movsxd r10, dword [rax + 0x20]
mov esi, dword [rax + 0x1c]
mov ebx, dword [rax + 0x24]
mov edi, dword [rax + 0x14]
xor eax, eax
add r10, r8
cmp edi, eax
jle 0x1400014a5
movsxd rcx, dword [r10]
mov edx, 0xff
add rcx, r8
movzx r11d, byte [rcx]
inc rcx
test r11b, r11b
jne 0x140001529
lea rcx, [rax + 1]
add r10, 4
cmp r9d, edx
je 0x140001531
mov rax, rcx
jmp 0x1400014fc
imul edx, edx, 0x21
add edx, r11d
jmp 0x14000150b
add rax, rax
movsxd rcx, ebx
movsxd rdx, esi
add rax, r8
movzx eax, word [rax + rcx]
lea rax, [r8 + rax*4]
movsxd rax, dword [rax + rdx]
add rax, r8
add rsp, 0x1e0
pop rbx
pop rsi
pop rdi
ret