joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140093879
Capabilities:
Encrypt data using rc4 prga

Disassembly:
test rcx, rcx
je 0x1400939d0
mov r11, rsp
push rbp
push rsi
sub rsp, 0x98
mov rax, qword [0x140375828]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov rax, qword [rcx + 0x20]
mov rbp, r8
mov rsi, rdx
mov r9, rcx
test rax, rax
je 0x1400939b7
cmp byte [rax], 0
je 0x1400939b7
mov r8, qword [rcx + 0x18]
mov qword [r11 + 8], rbx
mov qword [r11 - 0x18], rdi
cmp rax, r8
jbe 0x1400938dc
movzx ecx, byte [rax]
cmp cl, 0xa
je 0x1400938d4
cmp cl, 0xd
jne 0x1400938dc
dec rax
cmp rax, r8
ja 0x1400938c7
xor ebx, ebx
mov ecx, ebx
inc ecx
cmp rax, r8
jbe 0x1400938fc
movzx edx, byte [rax]
cmp dl, 0xa
je 0x140093909
cmp dl, 0xd
je 0x1400938fc
dec rax
cmp ecx, 0x50
jb 0x1400938e0
movzx ecx, byte [rax]
cmp cl, 0xa
je 0x140093909
cmp cl, 0xd
jne 0x14009390c
inc rax
mov edi, dword [r9 + 0x20]
lea rdx, [rsp + 0x20]
movzx ecx, byte [rax]
sub edi, eax
mov r8d, ebx
test cl, cl
je 0x140093951
lea r9, [rsp + 0x20]
sub rax, r9
nop dword [rax]
cmp cl, 0xa
je 0x140093951
cmp cl, 0xd
je 0x140093951
cmp r8d, 0x50
jae 0x140093951
mov byte [rdx], cl
inc r8d
movzx ecx, byte [rax + rdx + 1]
inc rdx
test cl, cl
jne 0x140093930
mov byte [rdx], bl
lea r8, [rsp + 0x20]
lea rdx, [0x1401f4f94]
mov rcx, rbp
call rsi
lea r8, [rsp + 0x20]
test edi, edi
je 0x140093990
nop dword [rax]
mov eax, ebx
inc ebx
cmp eax, 0x4f
jae 0x140093990
movzx eax, byte [r8]
test al, al
je 0x140093990
cmp al, 9
je 0x140093989
mov byte [r8], 0x20
inc r8
cmp ebx, edi
jb 0x140093970
mov word [r8], 0x5e
lea rdx, [0x1401f4f94]
lea r8, [rsp + 0x20]
mov rcx, rbp
call rsi
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1401dd140
add rsp, 0x98
pop rsi
pop rbp
ret
Function at 0x140094d40
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x20
mov rbx, rcx
mov r15, r9
movsxd rcx, r8d
lea rax, [rcx - 2]
add rcx, rcx
add rax, rax
mov r13, qword [rdx + rcx*8 - 8]
mov r12, qword [rdx + rax*8 + 8]
mov rdi, r13
mov rsi, qword [rdx + rax*8]
cmp r12, r13
mov qword [rsp + 0x58], r12
cmovl rdi, r12
cmp qword [r9], rdi
jae 0x140094dd3
mov rcx, qword [r9 + 8]
lea rbp, [rdi*8]
mov rdx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140094dcc
lea ecx, [rax + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rbp
lea rdx, str.Error_allocating_temporary_storage_for_tim_sort:_need__lu_bytes
mov rcx, rax
call fcn.140093460
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
mov qword [r15 + 8], rax
mov qword [r15], rdi
mov r15, qword [r15 + 8]
mov qword [rsp + 0x50], r14
mov rcx, r15
cmp r12, r13
jge 0x140094e76
lea r8, [r12*8]
lea rdx, [rbx + rsi*8]
call sub.VCRUNTIME140.dll_memcpy
add r13, rsi
lea rbp, [rsi + r12]
add r13, r12
xor edi, edi
cmp rsi, r13
jge 0x140094efb
nop
cmp rdi, r12
jge 0x140094e5e
cmp rbp, r13
jge 0x140094e51
mov r14, qword [rbx + rbp*8]
mov r12, qword [r15 + rdi*8]
mov rdx, r14
mov rcx, r12
call fcn.140096560
cmp eax, 0xfffffffe
je 0x140094e43
neg eax
test eax, eax
jle 0x140094e43
mov r12, qword [rsp + 0x58]
mov qword [rbx + rsi*8], r14
jmp 0x140094e66
mov qword [rbx + rsi*8], r12
inc rdi
mov r12, qword [rsp + 0x58]
jmp 0x140094e69
mov rax, qword [r15 + rdi*8]
inc rdi
mov qword [rbx + rsi*8], rax
jmp 0x140094e69
mov rax, qword [rbx + rbp*8]
mov qword [rbx + rsi*8], rax
inc rbp
inc rsi
cmp rsi, r13
jl 0x140094e10
jmp 0x140094efb
lea rdi, [rsi + r12]
lea rdx, [rbx + rdi*8]
lea r8, [r13*8]
call sub.VCRUNTIME140.dll_memcpy
lea r14, [rdi - 1]
lea rax, [rsi + r13]
lea rdi, [r12 - 1]
add rdi, rax
lea rbp, [r13 - 1]
cmp rdi, rsi
jl 0x140094efb
test rbp, rbp
js 0x140094ee8
cmp r14, rsi
jl 0x140094edb
mov r12, qword [r15 + rbp*8]
mov r13, qword [rbx + r14*8]
mov rdx, r12
mov rcx, r13
call fcn.140096560
cmp eax, 0xfffffffe
je 0x140094ed2
neg eax
test eax, eax
jle 0x140094ed2
mov qword [rbx + rdi*8], r13
jmp 0x140094ef0
mov qword [rbx + rdi*8], r12
dec rbp
jmp 0x140094ef3
mov rax, qword [r15 + rbp*8]
dec rbp
mov qword [rbx + rdi*8], rax
jmp 0x140094ef3
mov rax, qword [rbx + r14*8]
mov qword [rbx + rdi*8], rax
dec r14
dec rdi
cmp rdi, rsi
jge 0x140094ea4
mov r14, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret
Function at 0x1400a5010
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
sub rsp, 0x30
mov rdx, rcx
xor ecx, ecx
mov r10d, ecx
mov r11d, ecx
mov ebx, ecx
test rdx, rdx
jne 0x1400a5031
xorps xmm0, xmm0
add rsp, 0x30
pop rbx
ret
mov qword [rsp + 0x40], rdi
movabs rdi, 0x100002600
movzx eax, byte [rdx]
cmp al, 0x20
ja 0x1400a5055
movzx eax, al
bt rdi, rax
jae 0x1400a5055
inc rdx
jmp 0x1400a5040
movzx r8d, byte [rdx]
cmp r8b, 0x2e
je 0x1400a5080
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x1400a5080
cmp r8b, 0x2d
je 0x1400a5086
movsd xmm0, qword [0x14037ccf8]
mov rdi, qword [rsp + 0x40]
add rsp, 0x30
pop rbx
ret
cmp r8b, 0x2d
jne 0x1400a508f
mov r11d, 1
inc rdx
movzx eax, byte [rdx]
xorps xmm1, xmm1
movsd xmm2, qword [0x1401f7758]
movaps xmmword [rsp + 0x20], xmm6
movaps xmm6, xmm1
cmp al, 0x30
jb 0x1400a50dd
nop dword [rax]
cmp al, 0x39
ja 0x1400a50dd
movzx eax, al
inc rdx
sub eax, 0x30
mulsd xmm6, xmm2
mov r10d, 1
movd xmm0, eax
movzx eax, byte [rdx]
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm6
movaps xmm6, xmm0
cmp al, 0x30
jae 0x1400a50b0
cmp byte [rdx], 0x2e
jne 0x1400a516f
movzx r8d, byte [rdx + 1]
inc rdx
mov r9d, ecx
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x1400a5102
test r10d, r10d
je 0x1400a51cc
cmp r8b, 0x30
jb 0x1400a513e
cmp r8b, 0x39
ja 0x1400a513e
cmp r9d, 0x14
jge 0x1400a513e
movzx eax, r8b
inc rdx
sub eax, 0x30
mulsd xmm1, xmm2
inc r9d
movzx r8d, byte [rdx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
movaps xmm1, xmm0
cmp r8b, 0x30
jae 0x1400a5108
movsxd rax, r9d
lea r8, [0x1403181a0]
divsd xmm1, qword [r8 + rax*8]
movzx eax, byte [rdx]
addsd xmm6, xmm1
cmp al, 0x30
jb 0x1400a516f
nop dword [rax]
cmp al, 0x39
ja 0x1400a516f
movzx eax, byte [rdx + 1]
inc rdx
cmp al, 0x30
jae 0x1400a5160
movzx eax, byte [rdx]
sub al, 0x45
test al, 0xdf
jne 0x1400a51b2
movzx eax, byte [rdx + 1]
inc rdx
cmp al, 0x2d
jne 0x1400a518a
mov ebx, 1
jmp 0x1400a518e
cmp al, 0x2b
jne 0x1400a5191
inc rdx
movzx eax, byte [rdx]
cmp al, 0x30
jb 0x1400a51b2
cmp al, 0x39
ja 0x1400a51b2
movzx eax, al
lea ecx, [rcx + rcx*4]
inc rdx
lea ecx, [rcx - 0x18]
lea ecx, [rax + rcx*2]
movzx eax, byte [rdx]
cmp al, 0x30
jae 0x1400a5198
movzx eax, byte [rdx]
cmp al, 0x20
ja 0x1400a51c7
movzx eax, al
bt rdi, rax
jae 0x1400a51c7
inc rdx
jmp 0x1400a51b2
cmp byte [rdx], 0
je 0x1400a51e4
movsd xmm0, qword [0x14037ccf8]
movaps xmm6, xmmword [rsp + 0x20]
mov rdi, qword [rsp + 0x40]
add rsp, 0x30
pop rbx
ret
test r11d, r11d
je 0x1400a51f0
xorps xmm6, xmmword [0x1401f7780]
test ebx, ebx
je 0x1400a51f6
neg ecx
movd xmm1, ecx
movaps xmm0, xmm2
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
mov rdi, qword [rsp + 0x40]
mulsd xmm0, xmm6
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret

Function at 0x1400aa4d0
Capabilities:
Encode data using xor

Disassembly:
test edx, edx
jle 0x1400aa516
test rcx, rcx
je 0x1400aa516
xor r9d, r9d
movsxd rdx, edx
test rdx, rdx
jle 0x1400aa504
movzx eax, byte [r9 + rcx]
inc r9
add eax, r8d
imul r8d, eax, 0x401
mov eax, r8d
shr eax, 6
xor r8d, eax
cmp r9, rdx
jl 0x1400aa4e4
lea eax, [r8 + r8*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul eax, ecx, 0x8001
ret
xor eax, eax
ret
Function at 0x1400aa520
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, dword [rsp + 0x28]
xor r10d, r10d
movsxd rdx, edx
mov ebx, r10d
test rdx, rdx
jle 0x1400aa55f
nop dword [rax + rax]
movzx eax, byte [rbx + rcx]
inc rbx
add eax, r11d
imul r11d, eax, 0x401
mov eax, r11d
shr eax, 6
xor r11d, eax
cmp rbx, rdx
jl 0x1400aa540
lea eax, [r11 + 0x3a]
movsxd rdx, r9d
imul eax, eax, 0x401
mov ecx, eax
shr ecx, 6
xor eax, ecx
test r9d, r9d
jle 0x1400aa59c
nop dword [rax + rax]
movzx ecx, byte [r10 + r8]
inc r10
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor eax, ecx
cmp r10, rdx
jl 0x1400aa580
mov rbx, qword [rsp + 8]
lea ecx, [rax + rax*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul eax, eax, 0x8001
ret
Function at 0x1400ab6b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
xor eax, eax
mov r10, rdx
mov rbx, rcx
test rdx, rdx
je 0x1400ab6f0
movzx r11d, byte [rdx]
imul eax, r11d, 0x1e
test r11b, r11b
je 0x1400ab6f0
nop
mov edx, eax
mov ecx, eax
shl edx, 5
inc r10
shr ecx, 3
add edx, ecx
movsx ecx, r11b
add edx, ecx
movzx r11d, byte [r10]
xor eax, edx
test r11b, r11b
jne 0x1400ab6d0
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test r8, r8
je 0x1400ab730
movzx r10d, byte [r8]
test r10b, r10b
je 0x1400ab730
nop dword [rax]
mov edx, eax
mov ecx, eax
shl edx, 5
inc r8
shr ecx, 3
add edx, ecx
movsx ecx, r10b
add edx, ecx
movzx r10d, byte [r8]
xor eax, edx
test r10b, r10b
jne 0x1400ab710
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test r9, r9
je 0x1400ab771
movzx r8d, byte [r9]
test r8b, r8b
je 0x1400ab771
nop dword [rax]
mov edx, eax
lea r9, [r9 + 1]
shl edx, 5
mov ecx, eax
shr ecx, 3
add edx, ecx
movsx ecx, r8b
movzx r8d, byte [r9]
add edx, ecx
xor eax, edx
test r8b, r8b
jne 0x1400ab750
xor edx, edx
div dword [rbx + 8]
mov rbx, qword [rsp + 8]
mov eax, edx
ret
Function at 0x1400ab780
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov r10, rdx
mov rbx, rcx
test rdx, rdx
je 0x1400ab7d3
movzx r11d, byte [rdx]
imul eax, r11d, 0x1e
test r11b, r11b
je 0x1400ab7c0
nop dword [rax]
mov edx, eax
mov ecx, eax
shl edx, 5
inc r10
shr ecx, 3
add edx, ecx
movsx ecx, r11b
add edx, ecx
movzx r11d, byte [r10]
xor eax, edx
test r11b, r11b
jne 0x1400ab7a0
mov ecx, eax
mov edx, eax
shr ecx, 3
add ecx, 0x3a
shl edx, 5
add ecx, edx
xor eax, ecx
jmp 0x1400ab7da
movzx eax, byte [r8]
imul eax, eax, 0x1e
test r8, r8
je 0x1400ab810
movzx r10d, byte [r8]
test r10b, r10b
je 0x1400ab810
nop dword [rax + rax]
mov edx, eax
mov ecx, eax
shl edx, 5
inc r8
shr ecx, 3
add edx, ecx
movsx ecx, r10b
add edx, ecx
movzx r10d, byte [r8]
xor eax, edx
test r10b, r10b
jne 0x1400ab7f0
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test r9, r9
je 0x1400ab861
movzx r8d, byte [r9]
test r8b, r8b
je 0x1400ab850
nop dword [rax]
mov edx, eax
mov ecx, eax
shl edx, 5
inc r9
shr ecx, 3
add edx, ecx
movsx ecx, r8b
add edx, ecx
movzx r8d, byte [r9]
xor eax, edx
test r8b, r8b
jne 0x1400ab830
mov ecx, eax
mov edx, eax
shr ecx, 3
add ecx, 0x3a
shl edx, 5
add ecx, edx
xor eax, ecx
mov r8, qword [rsp + 0x28]
test r8, r8
je 0x1400ab8a1
movzx r9d, byte [r8]
test r9b, r9b
je 0x1400ab8a1
nop dword [rax]
nop dword [rax + rax]
mov edx, eax
lea r8, [r8 + 1]
shl edx, 5
mov ecx, eax
shr ecx, 3
add edx, ecx
movsx ecx, r9b
movzx r9d, byte [r8]
add edx, ecx
xor eax, edx
test r9b, r9b
jne 0x1400ab880
mov r8, qword [rsp + 0x30]
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test r8, r8
je 0x1400ab8f4
movzx r9d, byte [r8]
test r9b, r9b
je 0x1400ab8e3
mov edx, eax
lea r8, [r8 + 1]
shl edx, 5
mov ecx, eax
shr ecx, 3
add edx, ecx
movsx ecx, r9b
movzx r9d, byte [r8]
add edx, ecx
xor eax, edx
test r9b, r9b
jne 0x1400ab8c2
mov ecx, eax
mov edx, eax
shr ecx, 3
add ecx, 0x3a
shl edx, 5
add ecx, edx
xor eax, ecx
mov r8, qword [rsp + 0x38]
test r8, r8
je 0x1400ab931
movzx r9d, byte [r8]
test r9b, r9b
je 0x1400ab931
nop word [rax + rax]
mov edx, eax
lea r8, [r8 + 1]
shl edx, 5
mov ecx, eax
shr ecx, 3
add edx, ecx
movsx ecx, r9b
movzx r9d, byte [r8]
add edx, ecx
xor eax, edx
test r9b, r9b
jne 0x1400ab910
xor edx, edx
div dword [rbx + 8]
mov rbx, qword [rsp + 8]
mov eax, edx
ret
Function at 0x1400af270
Capabilities:
Parse credit card information

Disassembly:
push rbx
sub rsp, 0x20
mov ebx, edx
test rcx, rcx
je 0x1400af384
test byte [rcx + 0xac], 4
je 0x1400af384
cmp edx, 0x100
jge 0x1400af2c6
cmp edx, 0xd7
je 0x1400af2dc
lea eax, [rdx - 0x7b]
cmp eax, 0x44
jbe 0x1400af2dc
lea eax, [rdx - 0x5b]
cmp eax, 5
jbe 0x1400af2dc
cmp edx, 0x40
jle 0x1400af2dc
cmp edx, 0xf7
je 0x1400af2dc
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea rdx, [0x1401f9660]
mov ecx, ebx
call fcn.1400b8510
test eax, eax
jne 0x1400af379
cmp ebx, 0x100
jl 0x1400af31c
lea eax, [rbx - 0x3021]
cmp eax, 8
jbe 0x1400af379
cmp ebx, 0x3007
je 0x1400af379
lea eax, [rbx - 0x4e00]
cmp eax, 0x51a5
jbe 0x1400af379
lea rdx, [0x1401f96a8]
mov ecx, ebx
call fcn.1400b8510
test eax, eax
jne 0x1400af379
jmp 0x1400af324
lea eax, [rbx - 0x30]
cmp eax, 9
jbe 0x1400af379
lea eax, [rbx - 0x2d]
cmp eax, 0x32
ja 0x1400af33c
movabs rcx, 0x4000000002003
bt rcx, rax
jb 0x1400af379
cmp ebx, 0x100
jl 0x1400af366
lea rdx, [0x1401f9690]
mov ecx, ebx
call fcn.1400b8510
test eax, eax
jne 0x1400af379
lea rdx, [0x1401f96c0]
mov ecx, ebx
call fcn.1400b8510
jmp 0x1400af371
xor eax, eax
cmp ebx, 0xb7
sete al
test eax, eax
je 0x1400af449
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea eax, [rdx - 0x2041]
cmp eax, 0x2e
jbe 0x1400af449
lea eax, [rdx - 0xfffe]
cmp eax, 1
jbe 0x1400af449
lea eax, [rdx - 0xfdd0]
cmp eax, 0x1f
jbe 0x1400af449
lea eax, [rdx - 0xd800]
cmp eax, 0x20ff
jbe 0x1400af449
lea eax, [rdx - 0x2ff0]
cmp eax, 0x10
jbe 0x1400af449
lea eax, [rdx - 0x2190]
cmp eax, 0xa6f
jbe 0x1400af449
cmp edx, 0x2c
jle 0x1400af449
lea eax, [rdx - 0x2000]
cmp eax, 0x3e
ja 0x1400af3fa
movabs rcx, 0x7fffffffffffcfff
bt rcx, rax
jb 0x1400af449
cmp edx, 0x37e
je 0x1400af449
lea eax, [rdx - 0xb8]
cmp eax, 0x3f
ja 0x1400af41d
movabs rcx, 0x80000000800000ff
bt rcx, rax
jb 0x1400af449
lea eax, [rdx - 0x7b]
cmp eax, 0x3b
jbe 0x1400af449
lea eax, [rdx - 0x2f]
cmp eax, 0x31
ja 0x1400af43d
movabs rcx, 0x2f0000003f001
bt rcx, rax
jb 0x1400af449
cmp edx, 0xf0000
jl 0x1400af379
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x1400bc360
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
sub rsp, 0x28
call fcn.1400bc5a0
mov ecx, dword [0x140318b18]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400bc386
mov rax, qword [rax]
test rax, rax
jne 0x1400bc493
mov qword [rsp + 0x30], rbx
mov ecx, 0x3c8
mov qword [rsp + 0x20], rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
jne 0x1400bc3cd
call fcn.1400b5450
mov rbx, rax
call fcn.1400b5480
lea rdx, str.xmlGetGlobalState:_out_of_memory_n
mov rcx, qword [rax]
call qword [rbx]
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret
xor edx, edx
mov r8d, 0x3c8
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rcx, rdi
call fcn.1400b57d0
mov ecx, 0x18
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
jne 0x1400bc437
call fcn.1400b5450
mov rbx, rax
call fcn.1400b5480
lea rdx, str.xmlGetGlobalState:_out_of_memory_n
mov rcx, qword [rax]
call qword [rbx]
lea rcx, [rdi + 0x358]
call fcn.1400943e0
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret
lea rcx, [0x14037d148]
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x14037d138]
test rax, rax
je 0x1400bc457
mov qword [rax + 8], rbx
mov ecx, dword [0x140318b18]
mov rdx, rbx
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], 0
mov qword [0x14037d138], rbx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
lea rcx, [0x14037d148]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret

Function at 0x1400bc5a0
Capabilities:
Allocate thread local storage

Disassembly:
sub rsp, 0x28
cmp dword [0x14037d120], 0
jne 0x1400bc607
mov eax, 1
lock xadd dword [0x14037d124], eax
inc eax
cmp eax, 1
jne 0x1400bc5ed
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x140318b18], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x14037d140], eax
call fcn.1400aa1d0
mov dword [0x14037d120], 1
add rsp, 0x28
ret
cmp dword [0x14037d120], 0
jne 0x1400bc607
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x14037d120], 0
je 0x1400bc5f6
add rsp, 0x28
ret

Function at 0x1400be730
Capabilities:
Query environment variable

Disassembly:
sub rsp, 0x28
cmp dword [0x14037d550], 0
je 0x1400be745
or eax, 0xffffffff
add rsp, 0x28
ret
mov dword [0x14037d550], 1
call fcn.1400bc520
lea rcx, str.XML_MEM_BREAKPOINT
mov qword [0x14037d560], rax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x1400be783
lea r8, [0x14037d56c]
mov rcx, rax
lea rdx, [0x1402051fc]
call fcn.1400be6b0
lea rcx, str.XML_MEM_TRACE
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x1400be7ab
lea r8, [0x14037d570]
mov rcx, rax
lea rdx, [0x140205210]
call fcn.1400be6b0
xor eax, eax
add rsp, 0x28
ret
Function at 0x1400c52f0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x800
mov rax, qword [0x140375828]
xor rax, rsp
mov qword [rsp + 0x7f0], rax
xor ebx, ebx
lea rdx, str.urn:publicid:
mov rdi, rcx
lea r8d, [rbx + 0xd]
call fcn.1400a9cd0
test eax, eax
je 0x1400c534b
xor eax, eax
mov rcx, qword [rsp + 0x7f0]
xor rcx, rsp
call fcn.1401dd140
mov rbx, qword [rsp + 0x818]
add rsp, 0x800
pop rdi
ret
movzx ecx, byte [rdi + 0xd]
add rdi, 0xd
test cl, cl
je 0x1400c54ad
nop dword [rax + rax]
cmp ebx, 0x7cc
ja 0x1400c54ad
cmp cl, 0x2b
jne 0x1400c537b
mov byte [rsp + rbx + 0x20], 0x20
jmp 0x1400c549b
cmp cl, 0x3a
jne 0x1400c5391
mov byte [rsp + rbx + 0x20], 0x2f
inc ebx
mov byte [rsp + rbx + 0x20], 0x2f
jmp 0x1400c549b
cmp cl, 0x3b
jne 0x1400c53a7
mov byte [rsp + rbx + 0x20], 0x3a
inc ebx
mov byte [rsp + rbx + 0x20], 0x3a
jmp 0x1400c549b
cmp cl, 0x25
jne 0x1400c5497
movzx eax, byte [rdi + 1]
lea rcx, [rdi + 1]
cmp al, 0x32
jne 0x1400c53d4
cmp byte [rdi + 2], 0x42
jne 0x1400c53d4
mov byte [rsp + rbx + 0x20], 0x2b
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x33
jne 0x1400c53f0
cmp byte [rdi + 2], 0x41
jne 0x1400c53f0
mov byte [rsp + rbx + 0x20], 0x3a
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x32
jne 0x1400c540c
cmp byte [rdi + 2], 0x46
jne 0x1400c540c
mov byte [rsp + rbx + 0x20], 0x2f
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x33
jne 0x1400c5425
cmp byte [rdi + 2], 0x42
jne 0x1400c5425
mov byte [rsp + rbx + 0x20], 0x3b
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x32
jne 0x1400c543e
cmp byte [rdi + 2], 0x37
jne 0x1400c543e
mov byte [rsp + rbx + 0x20], 0x27
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x33
jne 0x1400c5457
cmp byte [rdi + 2], 0x46
jne 0x1400c5457
mov byte [rsp + rbx + 0x20], 0x3f
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x32
jne 0x1400c5489
cmp byte [rdi + 2], 0x33
jne 0x1400c5470
mov byte [rsp + rbx + 0x20], 0x23
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
cmp al, 0x32
jne 0x1400c5489
cmp byte [rdi + 2], 0x35
jne 0x1400c5489
mov byte [rsp + rbx + 0x20], 0x25
mov eax, ebx
inc ebx
add rdi, 3
jmp 0x1400c54a2
mov eax, ebx
mov rdi, rcx
mov byte [rsp + rbx + 0x20], 0x25
inc ebx
jmp 0x1400c54a2
mov byte [rsp + rbx + 0x20], cl
mov eax, ebx
inc ebx
inc rdi
movzx ecx, byte [rdi]
test cl, cl
jne 0x1400c5360
cmp ebx, 0x7d0
jae 0x1400c54c9
lea rcx, [rsp + 0x20]
mov byte [rsp + rbx + 0x20], 0
call fcn.1400a9a00
jmp 0x1400c532a
call fcn.1401dd8c8
int3
Function at 0x1400d3c60
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
cmp qword [rdx + 0x18], 8
mov rbp, r9
mov eax, r8d
mov rdi, rdx
mov rbx, rcx
jb 0x1400d3c8a
mov rdx, qword [rdx]
cmp qword [rcx + 0x18], 8
jb 0x1400d3c94
mov rcx, qword [rcx]
xor esi, esi
test eax, eax
mov r8d, esi
sete r8b
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400d3cb1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea rax, str.boost::filesystem::copy_file
mov r9, rbp
mov r8, rdi
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov ecx, esi
call fcn.1400d4ce0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x1400d4000
Capabilities:
Create directory

Disassembly:
mov rax, rsp
push rsi
sub rsp, 0xd0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
mov rax, qword [0x140375828]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rbx, rdx
mov rsi, rcx
cmp qword [rcx + 0x18], 8
jb 0x1400d403e
mov rcx, qword [rcx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x1400d4065
test rbx, rbx
je 0x1400d405e
mov dword [rbx], 0
call fcn.1400d2cb0
mov qword [rbx + 8], rax
mov al, 1
jmp 0x1400d4130
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov dword [rsp + 0x20], 0
call fcn.1400d2cb0
mov qword [rsp + 0x28], rax
cmp ebp, 0xb7
jne 0x1400d40b4
lea r8, [rsp + 0x20]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.1400d5ff0
cmp dword [rax], 3
jne 0x1400d40b4
test rbx, rbx
je 0x1400d412e
mov dword [rbx], 0
call fcn.1400d2cb0
jmp 0x1400d412a
test rbx, rbx
jne 0x1400d4123
mov qword [rsp + 0x58], 0xf
mov qword [rsp + 0x50], rbx
mov byte [rsp + 0x40], bl
lea r8d, [rbx + 0x23]
lea rdx, str.boost::filesystem::create_directory
lea rcx, [rsp + 0x40]
call fcn.140003a80
nop
mov dword [rsp + 0x20], ebp
call fcn.1400d2cb0
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
lea r9, [rsp + 0x20]
mov r8, rsi
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.1400d2f70
lea rdx, [0x1403127f0]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.1400d2cb0
mov dword [rbx], ebp
mov qword [rbx + 8], rax
xor al, al
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.1401dd140
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop rsi
ret
Function at 0x1400d4160
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rsi
mov rbp, rdx
mov r14, rcx
xor edi, edi
mov dword [rsp + 0x20], edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov esi, eax
mov eax, 1
test esi, esi
cmove esi, eax
mov edx, esi
mov eax, 2
mul rdx
mov r15, 0xffffffffffffffff
cmovo rax, r15
mov rcx, rax
call fcn.1401dd7b8
mov rbx, rax
mov qword [rsp + 0x50], rax
mov rdx, rax
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x1400d41e4
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400d41e6
mov eax, edi
lea r8, str.boost::filesystem::current_path
mov rdx, rbp
mov ecx, eax
call fcn.1400d4f00
mov qword [r14 + 0x18], 7
mov qword [r14 + 0x10], rdi
cmp qword [r14 + 0x18], 8
jb 0x1400d420f
mov rax, qword [r14]
jmp 0x1400d4212
mov rax, r14
mov word [rax], di
cmp word [rbx], 0
je 0x1400d422a
mov rdi, r15
nop
inc rdi
cmp word [rbx + rdi*2], 0
jne 0x1400d4220
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.140026520
nop
mov rcx, rbx
call fcn.1401dd1a8
mov rax, r14
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret