joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140356590
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
mov eax, gethostbyname
call fcn.1403983a0
sub rsp, rax
xor edi, edi
mov qword [rsp + 0x40], rbp
movsxd rbx, r9d
mov r11, r8
mov dword [rsp + 0x58], reloc.WS2_32.dll_recv
mov rbp, rcx
mov r10d, edi
test r9d, r9d
jle 0x1403566b4
cmp ebx, 8
jb 0x1403566b4
lea rax, [rbx - 1]
lea rcx, [rax + rdx]
add rax, r8
cmp rdx, rax
ja 0x1403565e9
cmp rcx, r8
jae 0x1403566b4
sub r8, rdx
cmp ebx, 0x40
jb 0x14035667e
mov eax, ebx
mov qword [rsp + 0x48], rsi
and eax, 0xffffffc0
mov r9, 0xfffffffffffffff0
movsxd rsi, eax
sub r9, rdx
lea rcx, [rdx + 0x10]
movdqu xmm0, xmmword [rcx - 0x10]
add r10d, 0x40
movdqu xmm1, xmmword [rcx + r8 - 0x10]
lea rcx, [rcx + 0x40]
lea rax, [r9 + rcx]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rcx + r8 - 0x40]
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm2, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rcx + r8 - 0x30]
xorps xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm1, xmmword [rcx + r8 - 0x20]
xorps xmm1, xmm0
movdqu xmmword [rcx - 0x20], xmm1
cmp rax, rsi
jl 0x140356610
mov rsi, qword [rsp + 0x48]
mov eax, ebx
and al, 0x3f
cmp al, 8
jb 0x1403566b4
mov ecx, ebx
and ecx, 0xfffffff8
movsxd rax, r10d
movsxd r9, ecx
lea rcx, [rax + rdx]
nop dword [rax]
movq xmm0, qword [rcx]
add r10d, 8
movq xmm1, qword [r8 + rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rcx, 8
mov rax, rcx
sub rax, rdx
cmp rax, r9
jl 0x140356690
movsxd rcx, r10d
mov r8, rbx
cmp rcx, rbx
jge 0x1403566e1
sub r11, rdx
lea rax, [rcx + rdx]
sub r8, rcx
nop dword [rax]
movzx ecx, byte [r11 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r8, 1
jne 0x1403566d0
mov rcx, qword [rbp + 0x10]
lea r8, [rsp + 0x58]
mov r9, rdx
mov dword [rsp + 0x20], ebx
call fcn.14022cf20
mov rbp, qword [rsp + 0x40]
test eax, eax
je 0x140356714
cmp dword [rsp + 0x58], ebx
sete dil
mov eax, edi
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x50]
xor eax, eax
add rsp, 0x30
pop rdi
ret

Function at 0x1403568a0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rdx
mov r10, rcx
test rdx, rdx
je 0x14035691b
test r8, r8
je 0x14035691b
mov r9, qword [rcx + 0x28]
cmp r8, r9
cmovb r9, r8
test r9, r9
je 0x1403568e1
add rcx, 0x34
sub rdx, r10
nop word [rax + rax]
movzx eax, byte [rdx + rcx - 0x34]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r9, 1
jne 0x1403568d0
mov rax, qword [r10 + 0x28]
cmp r8, rax
jbe 0x14035691b
sub r8, rax
cmp r8, 0x10
jbe 0x1403568fb
mov r8d, reloc.WS2_32.dll_recv
jmp 0x140356900
test r8, r8
je 0x14035691b
xor ecx, ecx
mov rax, qword [r10 + 0x28]
add rax, rcx
movzx eax, byte [rax + r11]
xor byte [r10 + rcx + 0x54], al
inc rcx
cmp rcx, r8
jb 0x140356902
ret
Function at 0x140387180
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x60
call fcn.1403983a0
sub rsp, rax
mov rax, qword [0x14048bd00]
xor rax, rsp
mov qword [rsp + 0x58], rax
movups xmm0, xmmword [rdx]
mov rdi, qword [rsp + 0xc0]
xor ebp, ebp
mov r15, r9
mov rsi, r8
mov r12, rcx
mov r14d, ebp
mov ebx, ebp
movups xmmword [rsp + 0x38], xmm0
test rdi, rdi
je 0x140387262
mov rcx, qword [r12]
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x30]
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x20], reloc.WS2_32.dll_recv
call fcn.14022dca0
test eax, eax
mov ecx, ebp
mov rdx, rdi
sete cl
inc dword [rsp + 0x38]
or r14d, ecx
sub rdx, rbx
cmp rdx, 0x10
jbe 0x140387219
mov edx, reloc.WS2_32.dll_recv
jmp 0x14038721e
test rdx, rdx
je 0x140387255
mov r9, r15
lea r8, [rsp + 0x48]
sub r9, rsi
lea rcx, [rsi + rbx]
sub r8, rsi
sub r8, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
xor al, byte [rcx + r9]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140387240
add rbx, 0x10
cmp rbx, rdi
jb 0x1403871d0
test r14d, r14d
sete bpl
mov eax, ebp
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140397b20
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x140387e80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
movzx r9d, byte [rdx]
lea eax, [r8 - 1]
movzx r11d, r9b
movsxd r10, eax
shr r11b, 7
xor edi, edi
mov esi, r8d
mov rbx, rcx
test eax, eax
jle 0x140387ee4
mov r8, rcx
sub rdx, rcx
mov edi, eax
nop word [rax + rax]
movzx ecx, byte [r8 + rdx + 1]
lea r8, [r8 + 1]
add r9b, r9b
movzx eax, cl
shr al, 7
or al, r9b
movzx r9d, cl
mov byte [r8 - 1], al
sub r10, 1
jne 0x140387ec0
cmp esi, 0x10
mov eax, 0x87
mov rsi, qword [rsp + 0x10]
mov ecx, reloc.WLDAP32.dll_Ordinal_27
cmove ecx, eax
movsxd rax, edi
mov rdi, qword [rsp + 0x18]
neg r11b
and cl, r11b
add r9b, r9b
xor cl, r9b
mov byte [rax + rbx], cl
mov rbx, qword [rsp + 8]
ret
Function at 0x140387f20
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
mov r11, qword [rcx]
mov rsi, rdx
mov r10, qword [rcx + 8]
mov rbx, rcx
mov r9, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x18]
mov rax, qword [rcx + 0x20]
shl r11, 0x38
cmp dword [rcx + 0x30], 0
je 0x14038819e
test r8, r8
je 0x14038819e
mov r14d, dword [rcx + 0x2c]
cmp r8, r14
jne 0x14038819e
mov ecx, dword [rcx + 0x28]
dec ecx
cmp ecx, 6
ja case.default.0x140387f8d
lea r8, [0x140000000]
mov edx, dword [r8 + rcx*4 + 0x3881b8]
add rdx, r8
jmp rdx
movzx ecx, byte [rbx + 0x3e]
shl rcx, 0x30
or r11, rcx
movzx ecx, byte [rbx + 0x3d]
shl rcx, 0x28
or r11, rcx
movzx ecx, byte [rbx + 0x3c]
shl rcx, 0x20
or r11, rcx
movzx ecx, byte [rbx + 0x3b]
shl rcx, 0x18
or r11, rcx
movzx ecx, byte [rbx + 0x3a]
shl rcx, 0x10
or r11, rcx
movzx ecx, byte [rbx + 0x39]
shl rcx, 8
or r11, rcx
movzx ecx, byte [rbx + 0x38]
or r11, rcx
xor rax, r11
cmp dword [rbx + 0x30], 0
jbe 0x140388036
mov r8d, dword [rbx + 0x30]
nop word [rax + rax]
add rdi, rax
add r10, r9
ror r9, 0x33
xor r9, r10
ror rax, 0x30
xor rax, rdi
ror r10, 0x20
add rdi, r9
add r10, rax
mov rdx, rdi
ror r9, 0x2f
mov rcx, rdi
shr rdx, 0x20
xor r9, rdi
ror rax, 0x2b
shl rcx, 0x20
mov rdi, rdx
or rdi, rcx
xor rax, r10
sub r8, 1
jne 0x140387ff0
xor r10, r11
mov ecx, 0xff
cmp r14d, 0x10
mov r8d, 0xee
cmovne r8d, ecx
mov ecx, dword [rbx + 0x34]
xor r8, rdi
test ecx, ecx
je 0x1403880a6
mov r11d, ecx
nop dword [rax]
add r8, rax
add r10, r9
ror r9, 0x33
xor r9, r10
ror rax, 0x30
xor rax, r8
ror r10, 0x20
add r8, r9
add r10, rax
mov rdx, r8
ror r9, 0x2f
mov rcx, r8
shr rdx, 0x20
xor r9, r8
ror rax, 0x2b
shl rcx, 0x20
mov r8, rdx
or r8, rcx
xor rax, r10
sub r11, 1
jne 0x140388060
mov rdx, rax
xor rdx, r8
xor rdx, r9
xor rdx, r10
mov ecx, edx
mov byte [rsi], dl
shr ecx, 8
mov byte [rsi + 1], cl
mov ecx, edx
shr ecx, 0x10
mov byte [rsi + 2], cl
mov ecx, edx
shr ecx, 0x18
shr rdx, 0x20
mov byte [rsi + 3], cl
mov ecx, edx
shr ecx, 8
mov byte [rsi + 5], cl
mov ecx, edx
mov byte [rsi + 4], dl
shr ecx, 0x10
shr edx, 0x18
mov byte [rsi + 6], cl
mov byte [rsi + 7], dl
cmp dword [rbx + 0x2c], 8
je 0x140388197
mov ecx, dword [rbx + 0x34]
xor r9, 0xdd
test ecx, ecx
je 0x140388156
mov r11d, ecx
nop dword [rax]
nop dword [rax + rax]
add r8, rax
add r10, r9
ror r9, 0x33
xor r9, r10
ror rax, 0x30
xor rax, r8
ror r10, 0x20
add r8, r9
add r10, rax
mov rdx, r8
ror r9, 0x2f
mov rcx, r8
shr rdx, 0x20
xor r9, r8
ror rax, 0x2b
shl rcx, 0x20
mov r8, rdx
or r8, rcx
xor rax, r10
sub r11, 1
jne 0x140388110
xor rax, r8
xor rax, r9
xor rax, r10
mov ecx, eax
mov byte [rsi + 8], al
shr ecx, 8
mov byte [rsi + 9], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rsi + 0xa], cl
mov ecx, eax
shr ecx, 0x18
shr rax, 0x20
mov byte [rsi + 0xb], cl
mov ecx, eax
shr ecx, 8
mov byte [rsi + 0xd], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rsi + 0xc], al
shr eax, 0x18
mov byte [rsi + 0xf], al
mov byte [rsi + 0xe], cl
mov eax, 1
jmp 0x1403881a0
xor eax, eax
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
mov r14, qword [rsp + 0x20]
ret
Function at 0x140388330
Capabilities:
Encode data using xor

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
mov eax, reloc.WLDAP32.dll_Ordinal_32
call fcn.1403983a0
sub rsp, rax
add qword [rcx], r8
mov r14, rcx
mov rsi, qword [rcx + 8]
mov r15, r8
mov rdi, qword [rcx + 0x10]
mov r13, rdx
mov rbp, qword [rcx + 0x18]
mov rbx, qword [rcx + 0x20]
mov ecx, dword [rcx + 0x28]
test ecx, ecx
je 0x14038846f
mov r12d, 8
sub r12d, ecx
add rcx, 0x38
add rcx, r14
cmp r8, r12
jae 0x14038839f
call sub.VCRUNTIME140.dll_memcpy
add dword [r14 + 0x28], r15d
jmp 0x140388585
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [r14 + 0x3e]
lea rcx, [r14 + 0x38]
movzx r8d, byte [r14 + 0x3f]
sub r15, r12
shl r8, 8
add r13, r12
or r8, rax
movzx eax, byte [r14 + 0x3d]
shl r8, 8
or r8, rax
movzx eax, byte [r14 + 0x3c]
shl r8, 8
or r8, rax
movzx eax, byte [r14 + 0x3b]
shl r8, 8
or r8, rax
movzx eax, byte [r14 + 0x3a]
shl r8, 8
or r8, rax
movzx eax, byte [r14 + 0x39]
shl r8, 8
or r8, rax
movzx eax, byte [rcx]
shl r8, 8
or r8, rax
mov eax, dword [r14 + 0x30]
xor rbx, r8
test eax, eax
je 0x14038846a
mov edx, eax
nop word [rax + rax]
add rbp, rbx
add rsi, rdi
ror rdi, 0x33
xor rdi, rsi
ror rbx, 0x30
xor rbx, rbp
ror rsi, 0x20
add rbp, rdi
add rsi, rbx
mov rcx, rbp
ror rdi, 0x2f
mov rax, rbp
shr rcx, 0x20
xor rdi, rbp
ror rbx, 0x2b
shl rax, 0x20
mov rbp, rcx
or rbp, rax
xor rbx, rsi
sub rdx, 1
jne 0x140388420
lea rcx, [r14 + 0x38]
xor rsi, r8
jmp 0x140388473
lea rcx, [r14 + 0x38]
mov r12d, r15d
mov r10, r13
and r12d, 7
sub r10, r12
add r10, r15
cmp r13, r10
je 0x140388561
mov r11d, dword [r14 + 0x30]
lea r9, [r13 + 6]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r9]
movzx r8d, byte [r9 + 1]
shl r8, 8
or r8, rax
movzx eax, byte [r9 - 1]
shl r8, 8
or r8, rax
movzx eax, byte [r9 - 2]
shl r8, 8
or r8, rax
movzx eax, byte [r9 - 3]
shl r8, 8
or r8, rax
movzx eax, byte [r9 - 4]
shl r8, 8
or r8, rax
movzx eax, byte [r9 - 5]
shl r8, 8
or r8, rax
movzx eax, byte [r9 - 6]
shl r8, 8
or r8, rax
xor rbx, r8
test r11d, r11d
je 0x140388549
mov rdx, r11
add rbp, rbx
add rsi, rdi
ror rdi, 0x33
xor rdi, rsi
ror rbx, 0x30
xor rbx, rbp
ror rsi, 0x20
add rbp, rdi
add rsi, rbx
mov rcx, rbp
ror rdi, 0x2f
mov rax, rbp
shr rcx, 0x20
xor rdi, rbp
ror rbx, 0x2b
shl rax, 0x20
mov rbp, rcx
or rbp, rax
xor rbx, rsi
sub rdx, 1
jne 0x140388503
add r9, 8
xor rsi, r8
lea rax, [r9 - 6]
cmp rax, r10
jne 0x1403884a0
lea rcx, [r14 + 0x38]
test r12d, r12d
je 0x140388571
mov r8, r12
mov rdx, r10
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + 0x28], r12d
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], rdi
mov qword [r14 + 0x18], rbp
mov qword [r14 + 0x20], rbx
mov rbx, qword [rsp + 0x50]
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 0x1403932c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
mov eax, 0x68
call fcn.1403983a0
sub rsp, rax
mov rax, qword [0x14048bd00]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov eax, dword [rcx + 0x3c]
mov rdi, r9
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test eax, eax
je 0x1403933f3
movups xmm0, xmmword [rcx + 0x10]
mov r15, qword [rcx + 0x20]
lea rbx, [rcx + 0x10]
dec eax
mov dword [rsp + 0x28], 1
mov dword [rcx + 0x3c], eax
xor r9d, r9d
mov eax, dword [rbx + 8]
xor r8d, r8d
and al, 0x7f
mov dword [rsp + 0x30], edi
movups xmmword [rsp + 0x48], xmm0
and byte [rsp + 0x54], 0x7f
xor edx, edx
mov byte [rsp + 0x50], al
mov rcx, r15
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call fcn.14022cee0
test eax, eax
je 0x1403933f3
mov eax, dword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov r9, r14
mov dword [rsp + 0x20], eax
mov rdx, rbp
mov rcx, r15
call fcn.14022dca0
test eax, eax
je 0x1403933f3
mov r9, rdi
lea rdx, [rsp + 0x38]
mov r8, rbp
mov rcx, rsi
call fcn.1403939e0
test eax, eax
je 0x1403933f3
lea rax, [rbx + 0xf]
xor r8d, r8d
lea rcx, [rsp + 0x38]
cmp rcx, rax
ja 0x1403933c9
lea rax, [rsp + 0x47]
cmp rax, rbx
jb 0x1403933c9
lea rcx, [rsp + 0x38]
mov eax, r8d
sub rbx, rcx
nop
lea rdx, [rsp + 0x38]
add rdx, rax
inc rax
movzx ecx, byte [rbx + rdx]
xor byte [rdx], cl
cmp rax, 0x10
jl 0x1403933b0
jmp 0x1403933dc
movdqu xmm1, xmmword [rsp + 0x38]
movdqu xmm0, xmmword [rbx]
xorps xmm1, xmm0
movdqu xmmword [rsp + 0x38], xmm1
mov rax, qword [rsp + 0x38]
or rax, qword [rsp + 0x40]
je 0x14039340f
mov rdx, rdi
mov rcx, rbp
call fcn.140001240
xor eax, eax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140397b20
add rsp, 0x68
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [rsi + 0x38], r8d
mov eax, edi
jmp 0x1403933f5
Function at 0x1403945c0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r9, rdx
test rdx, rdx
jne 0x1403945cb
xor eax, eax
ret
lea r11, [0x14045f620]
not ecx
cmp r8d, 8
jb 0x1403946a1
mov r10d, r8d
shr r10, 3
nop word [rax + rax]
movzx edx, byte [r9]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
add r8d, 0xfffffff8
movzx edx, byte [r9 + 1]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 2]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 3]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 4]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 5]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 6]
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
movzx edx, byte [r9 + 7]
add r9, 8
xor ecx, dword [r11 + rax*4]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [r11 + rax*4]
sub r10, 1
jne 0x1403945f0
test r8d, r8d
je 0x1403946cd
nop word [rax + rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [r11 + rax*4]
add r8d, 0xffffffff
jne 0x1403946b0
not ecx
mov eax, ecx
ret
Function at 0x1403978f0
Capabilities:
Get file size
Read file on windows
Read file via mapping

Disassembly:
push rbx
push rbp
sub rsp, 0x48
mov rbp, rdx
mov rbx, rcx
test rcx, rcx
jne 0x14039790c
lea eax, [rcx + 0x28]
add rsp, 0x48
pop rbp
pop rbx
ret
mov qword [rsp + 0x68], rsi
xor r9d, r9d
mov qword [rsp + 0x40], r14
mov edx, 0x80000000
xor r14d, r14d
mov rcx, rbp
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
lea r8d, [r14 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140397960
mov r14, qword [rsp + 0x40]
lea eax, [rsi + 2]
mov rsi, qword [rsp + 0x68]
add rsp, 0x48
pop rbp
pop rbx
ret
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x78], rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140397a85
mov rax, qword [rsp + 0x70]
cmp rax, 0x7fffffff
jg 0x140397a85
test rax, rax
je 0x140397a85
xor r9d, r9d
mov qword [rsp + 0x28], r14
xor edx, edx
mov dword [rsp + 0x20], r14d
mov rcx, rsi
lea r8d, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov rdi, rax
test rax, rax
je 0x140397a85
mov ecx, dword [rsp + 0x70]
xor r9d, r9d
mov dword [rbx + 8], ecx
xor r8d, r8d
mov rcx, rax
mov dword [rbx + 0xc], r14d
mov qword [rsp + 0x20], r14
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rcx, rdi
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], r14
je 0x1403979fa
lea rax, [0x140397ae0]
jmp 0x140397a53
mov rcx, qword [rbx + 0x30]
xor edx, edx
movsxd r8, dword [rbx + 8]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
test rax, rax
je 0x140397a85
mov edi, r14d
nop dword [rax + rax]
mov r8d, dword [rbx + 8]
lea r9, [rsp + 0x60]
mov edx, edi
sub r8d, edi
add rdx, qword [rbx]
mov rcx, rsi
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140397a73
add edi, dword [rsp + 0x60]
cmp edi, dword [rbx + 8]
jne 0x140397a20
lea rax, [0x140397ab0]
mov rcx, rsi
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbx]
mov qword [rbx + 0x10], rax
xor eax, eax
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x20], r14
jmp 0x140397a9a
mov rcx, qword [rbx + 0x30]
xor edx, edx
mov r8, qword [rbx]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x51
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x40]
add rsp, 0x48
pop rbp
pop rbx
ret

Function at 0x140398860
Capabilities:
Parse pe header

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

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x1400021e8
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x14000220e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140002210
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x140002269
test ecx, ecx
jle 0x140002249
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x140002269
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x140002269
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret

Function at 0x140002290
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x1400022b2
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x1400022c8
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x1400022e4
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x1400022e6
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x140002322
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x1400023be
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x14000235d
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x14000239e
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x1400023be
cmp rbx, rax
ja 0x140002370
test rbx, rbx
je 0x1400023be
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x140002820
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x14000a040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x14000284d
xor eax, eax
jmp 0x1400029b9
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x140002887
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x140002887
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 0x1400029b9
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x1400029ac
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x1400028ca
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 0x1400028f5
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 0x1400029b1
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 0x140002964
sub eax, 1
je 0x140002964
cmp eax, 2
jne 0x1400029ac
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 0x1400029b1
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140002992
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 0x1400029ac
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x1400029b1
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140004340
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret