Function at 0x14015e530
Capabilities:
Parse credit card information

Disassembly:
push rsi
push r12
push r13
push r15
sub rsp, 0x38
mov r10, qword [rcx + 0x1188]
mov r13, rcx
mov r15, qword [rcx + 0x1d0]
inc r10
mov rsi, r10
movzx ecx, byte [r10]
call fcn.14015e280
mov r12d, 3
test al, al
je 0x14015e5bc
nop word [rax + rax]
movzx ecx, byte [rsi + 1]
mov r8, rsi
inc rsi
call fcn.14015e280
test al, al
jne 0x14015e570
cmp rsi, r10
je 0x14015e5bc
mov rdx, rsi
jbe 0x14015e595
cmp byte [r8], 0x2f
cmove rdx, r8
lea r8, [r15 + 8]
mov dword [rsp + 0x20], r12d
sub rdx, r10
xor r9d, r9d
mov rcx, r10
call fcn.140120b00
test eax, eax
je 0x14015e5c4
add rsp, 0x38
pop r15
pop r13
pop r12
pop rsi
ret
mov qword [r15 + 8], 0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x30], r14
cmp byte [rsi], 0x3b
jne 0x14015eaf2
movzx eax, byte [rsi + 1]
lea r14, [0x140000000]
inc rsi
mov rdi, rsi
test al, al
je 0x14015eaed
nop word [rax + rax]
cmp al, 0x3d
je 0x14015e617
movzx eax, byte [rsi + 1]
inc rsi
test al, al
jne 0x14015e600
mov eax, r12d
jmp 0x14015eb2c
cmp byte [rsi], 0
je 0x14015eaed
mov rbx, rsi
sub rbx, rdi
jne 0x14015e639
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14015e630
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x14015eae7
mov rbp, rax
test rbx, rbx
je 0x14015e6ef
nop dword [rax + rax]
movzx ecx, byte [rdi]
cmp cl, 0x25
jne 0x14015e6c5
cmp rbx, 2
jbe 0x14015e6c5
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x14015e68b
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x14015e68b
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x14015e6c5
movsx rdx, byte [rdi + 2]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x14015e6a5
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x14015e6a5
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x14015e6c5
movzx ecx, byte [r8 + r14 + 0x26bf78]
mov rax, 0xfffffffffffffffd
shl cl, 4
or cl, byte [rdx + r14 + 0x26bf78]
mov rdx, r12
jmp 0x14015e6d1
mov edx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp cl, 0x20
jb 0x14015ea94
mov byte [r9], cl
add rdi, rdx
inc r9
test rbx, rbx
jne 0x14015e660
inc rsi
mov byte [r9], 0
mov rdi, rsi
movzx ecx, byte [rsi]
call fcn.14015e280
test al, al
je 0x14015e720
nop word [rax + rax]
movzx ecx, byte [rsi + 1]
inc rsi
call fcn.14015e280
test al, al
jne 0x14015e710
mov rbx, rsi
sub rbx, rdi
jne 0x14015e739
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14015e730
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x14015ead3
mov r14, rax
test rbx, rbx
je 0x14015e7f1
lea r10, [0x140000000]
movzx edx, byte [rdi]
cmp dl, 0x25
jne 0x14015e7c7
cmp rbx, 2
jbe 0x14015e7c7
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x14015e78d
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x14015e78d
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x14015e7c7
movsx rcx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x14015e7a7
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x14015e7a7
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14015e7c7
movzx edx, byte [r8 + r10 + 0x26bf78]
mov rax, 0xfffffffffffffffd
shl dl, 4
or dl, byte [rcx + r10 + 0x26bf78]
mov rcx, r12
jmp 0x14015e7d3
mov ecx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp dl, 0x20
jb 0x14015eaa5
mov byte [r9], dl
add rdi, rcx
inc r9
test rbx, rbx
jne 0x14015e762
mov byte [r9], 0
mov r10, rbp
sub r9, r14
test rbp, rbp
je 0x14015eabc
cmp byte [rbp], 0
lea rdx, str.UIDVALIDITY
je 0x14015e840
lea rbx, [0x140000000]
movzx eax, byte [rdx]
test al, al
je 0x14015e840
movzx ecx, byte [rbp]
movzx eax, byte [rax + rbx + 0x26b9b0]
cmp byte [rcx + rbx + 0x26b9b0], al
jne 0x14015e87f
inc rbp
inc rdx
cmp byte [rbp], 0
jne 0x14015e818
xor ecx, ecx
lea rbx, [0x140000000]
cmp byte [rbp], cl
sete cl
xor eax, eax
cmp byte [rdx], al
setne al
xor ecx, eax
test ecx, ecx
je 0x14015e883
cmp qword [r15 + 0x10], 0
jne 0x14015e883
test r9, r9
je 0x14015e876
cmp byte [r14 + r9 - 1], 0x2f
jne 0x14015e876
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x10], r14
jmp 0x14015ea7a
xor ecx, ecx
jmp 0x14015e858
test r10, r10
je 0x14015eabc
cmp byte [r10], 0
lea r8, [0x1402b3e50]
mov rdx, r10
je 0x14015e8c7
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x14015e8c7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26b9b0]
cmp byte [rcx + rbx + 0x26b9b0], al
jne 0x14015e8ff
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14015e8a0
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x14015e903
cmp qword [r15 + 0x18], 0
jne 0x14015e903
test r9, r9
je 0x14015e8f6
cmp byte [r14 + r9 - 1], 0x2f
jne 0x14015e8f6
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x18], r14
jmp 0x14015ea7a
xor ecx, ecx
jmp 0x14015e8d8
test r10, r10
je 0x14015eabc
cmp byte [r10], 0
lea r8, str.MAILINDEX
mov rdx, r10
je 0x14015e947
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x14015e947
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26b9b0]
cmp byte [rcx + rbx + 0x26b9b0], al
jne 0x14015e97f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14015e920
xor ecx, ecx
cmp byte [r8], cl
setne cl
xor eax, eax
cmp byte [rdx], al
sete al
xor ecx, eax
test ecx, ecx
je 0x14015e983
cmp qword [r15 + 0x20], 0
jne 0x14015e983
test r9, r9
je 0x14015e976
cmp byte [r14 + r9 - 1], 0x2f
jne 0x14015e976
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x20], r14
jmp 0x14015ea7a
xor ecx, ecx
jmp 0x14015e958
test r10, r10
je 0x14015eabc
cmp byte [r10], 0
lea r8, str.SECTION
mov rdx, r10
je 0x14015e9c7
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x14015e9c7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26b9b0]
cmp byte [rcx + rbx + 0x26b9b0], al
jne 0x14015e9fc
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14015e9a0
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x14015ea00
cmp qword [r15 + 0x28], 0
jne 0x14015ea00
test r9, r9
je 0x14015e9f6
cmp byte [r14 + r9 - 1], 0x2f
jne 0x14015e9f6
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x28], r14
jmp 0x14015ea7a
xor ecx, ecx
jmp 0x14015e9d8
test r10, r10
je 0x14015eabc
cmp byte [r10], 0
lea r8, str.PARTIAL
mov rdx, r10
je 0x14015ea47
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x14015ea47
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26b9b0]
cmp byte [rcx + rbx + 0x26b9b0], al
jne 0x14015ea90
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14015ea20
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x14015eabc
cmp qword [r15 + 0x30], 0
jne 0x14015eabc
test r9, r9
je 0x14015ea76
cmp byte [r14 + r9 - 1], 0x2f
jne 0x14015ea76
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x30], r14
mov rcx, r10
call qword [fcn.14016f1de]
xor ecx, ecx
call qword [fcn.14016f1de]
jmp 0x14015e5d8
xor ecx, ecx
jmp 0x14015ea58
mov rcx, rbp
call qword [fcn.14016f1de]
mov eax, r12d
jmp 0x14015eb2c
mov rcx, r14
call qword [fcn.14016f1de]
mov rcx, rbp
call qword [fcn.14016f1de]
mov eax, r12d
jmp 0x14015eb2c
mov rcx, r10
call qword [fcn.14016f1de]
mov rcx, r14
call qword [fcn.14016f1de]
mov eax, r12d
jmp 0x14015eb2c
mov rcx, rbp
mov r12d, reloc.WLDAP32.dll_Ordinal_27
call qword [fcn.14016f1de]
mov eax, r12d
jmp 0x14015eb2c
mov r12d, reloc.WLDAP32.dll_Ordinal_27
mov eax, r12d
jmp 0x14015eb2c
cmp qword [r15 + 8], 0
je 0x14015eb22
cmp qword [r15 + 0x18], 0
jne 0x14015eb22
cmp qword [r15 + 0x20], 0
jne 0x14015eb22
mov rcx, qword [r13 + 0x1150]
lea r8, [r15 + 0x38]
mov edx, 8
mov r9d, 0x40
call sym.CheraxLoader.exe_curl_url_get
movzx eax, byte [rsi]
neg al
sbb eax, eax
and eax, r12d
mov rdi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x30]
add rsp, 0x38
pop r15
pop r13
pop r12
pop rsi
ret