Function at 0x140161e90
Capabilities:
Parse credit card information

Disassembly:
push rsi
push r12
push r13
push r15
sub rsp, 0x38
mov r10, qword [rcx + 0x1128]
mov r13, rcx
mov r15, qword [rcx + 0x1b8]
inc r10
mov rsi, r10
movzx ecx, byte [r10]
call fcn.140161be0
mov r12d, 3
test al, al
je 0x140161f1c
nop word [rax + rax]
movzx ecx, byte [rsi + 1]
mov r8, rsi
inc rsi
call fcn.140161be0
test al, al
jne 0x140161ed0
cmp rsi, r10
je 0x140161f1c
mov rdx, rsi
jbe 0x140161ef5
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.140123c90
test eax, eax
je 0x140161f24
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 0x140162452
movzx eax, byte [rsi + 1]
lea r14, [0x140000000]
inc rsi
mov rdi, rsi
test al, al
je 0x14016244d
nop word [rax + rax]
cmp al, 0x3d
je 0x140161f77
movzx eax, byte [rsi + 1]
inc rsi
test al, al
jne 0x140161f60
mov eax, r12d
jmp 0x14016248c
cmp byte [rsi], 0
je 0x14016244d
mov rbx, rsi
sub rbx, rdi
jne 0x140161f99
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140161f90
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x140162447
mov rbp, rax
test rbx, rbx
je 0x14016204f
nop dword [rax + rax]
movzx ecx, byte [rdi]
cmp cl, 0x25
jne 0x140162025
cmp rbx, 2
jbe 0x140162025
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x140161feb
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x140161feb
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x140162025
movsx rdx, byte [rdi + 2]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x140162005
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x140162005
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x140162025
movzx ecx, byte [r8 + r14 + 0x26ff98]
mov rax, 0xfffffffffffffffd
shl cl, 4
or cl, byte [rdx + r14 + 0x26ff98]
mov rdx, r12
jmp 0x140162031
mov edx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp cl, 0x20
jb 0x1401623f4
mov byte [r9], cl
add rdi, rdx
inc r9
test rbx, rbx
jne 0x140161fc0
inc rsi
mov byte [r9], 0
mov rdi, rsi
movzx ecx, byte [rsi]
call fcn.140161be0
test al, al
je 0x140162080
nop word [rax + rax]
movzx ecx, byte [rsi + 1]
inc rsi
call fcn.140161be0
test al, al
jne 0x140162070
mov rbx, rsi
sub rbx, rdi
jne 0x140162099
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140162090
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x140162433
mov r14, rax
test rbx, rbx
je 0x140162151
lea r10, [0x140000000]
movzx edx, byte [rdi]
cmp dl, 0x25
jne 0x140162127
cmp rbx, 2
jbe 0x140162127
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x1401620ed
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x1401620ed
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x140162127
movsx rcx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x140162107
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x140162107
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x140162127
movzx edx, byte [r8 + r10 + 0x26ff98]
mov rax, 0xfffffffffffffffd
shl dl, 4
or dl, byte [rcx + r10 + 0x26ff98]
mov rcx, r12
jmp 0x140162133
mov ecx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp dl, 0x20
jb 0x140162405
mov byte [r9], dl
add rdi, rcx
inc r9
test rbx, rbx
jne 0x1401620c2
mov byte [r9], 0
mov r10, rbp
sub r9, r14
test rbp, rbp
je 0x14016241c
cmp byte [rbp], 0
lea rdx, str.UIDVALIDITY
je 0x1401621a0
lea rbx, [0x140000000]
movzx eax, byte [rdx]
test al, al
je 0x1401621a0
movzx ecx, byte [rbp]
movzx eax, byte [rax + rbx + 0x26f9e0]
cmp byte [rcx + rbx + 0x26f9e0], al
jne 0x1401621df
inc rbp
inc rdx
cmp byte [rbp], 0
jne 0x140162178
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 0x1401621e3
cmp qword [r15 + 0x10], 0
jne 0x1401621e3
test r9, r9
je 0x1401621d6
cmp byte [r14 + r9 - 1], 0x2f
jne 0x1401621d6
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x10], r14
jmp 0x1401623da
xor ecx, ecx
jmp 0x1401621b8
test r10, r10
je 0x14016241c
cmp byte [r10], 0
lea r8, [0x1402b8ed0]
mov rdx, r10
je 0x140162227
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x140162227
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26f9e0]
cmp byte [rcx + rbx + 0x26f9e0], al
jne 0x14016225f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140162200
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 0x140162263
cmp qword [r15 + 0x18], 0
jne 0x140162263
test r9, r9
je 0x140162256
cmp byte [r14 + r9 - 1], 0x2f
jne 0x140162256
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x18], r14
jmp 0x1401623da
xor ecx, ecx
jmp 0x140162238
test r10, r10
je 0x14016241c
cmp byte [r10], 0
lea r8, str.MAILINDEX
mov rdx, r10
je 0x1401622a7
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x1401622a7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26f9e0]
cmp byte [rcx + rbx + 0x26f9e0], al
jne 0x1401622df
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140162280
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 0x1401622e3
cmp qword [r15 + 0x20], 0
jne 0x1401622e3
test r9, r9
je 0x1401622d6
cmp byte [r14 + r9 - 1], 0x2f
jne 0x1401622d6
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x20], r14
jmp 0x1401623da
xor ecx, ecx
jmp 0x1401622b8
test r10, r10
je 0x14016241c
cmp byte [r10], 0
lea r8, str.SECTION
mov rdx, r10
je 0x140162327
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x140162327
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26f9e0]
cmp byte [rcx + rbx + 0x26f9e0], al
jne 0x14016235c
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140162300
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 0x140162360
cmp qword [r15 + 0x28], 0
jne 0x140162360
test r9, r9
je 0x140162356
cmp byte [r14 + r9 - 1], 0x2f
jne 0x140162356
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x28], r14
jmp 0x1401623da
xor ecx, ecx
jmp 0x140162338
test r10, r10
je 0x14016241c
cmp byte [r10], 0
lea r8, str.PARTIAL
mov rdx, r10
je 0x1401623a7
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x1401623a7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x26f9e0]
cmp byte [rcx + rbx + 0x26f9e0], al
jne 0x1401623f0
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140162380
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 0x14016241c
cmp qword [r15 + 0x30], 0
jne 0x14016241c
test r9, r9
je 0x1401623d6
cmp byte [r14 + r9 - 1], 0x2f
jne 0x1401623d6
mov byte [r14 + r9 - 1], 0
mov qword [r15 + 0x30], r14
mov rcx, r10
call qword [0x1402e1138]
xor ecx, ecx
call qword [0x1402e1138]
jmp 0x140161f38
xor ecx, ecx
jmp 0x1401623b8
mov rcx, rbp
call qword [0x1402e1138]
mov eax, r12d
jmp 0x14016248c
mov rcx, r14
call qword [0x1402e1138]
mov rcx, rbp
call qword [0x1402e1138]
mov eax, r12d
jmp 0x14016248c
mov rcx, r10
call qword [0x1402e1138]
mov rcx, r14
call qword [0x1402e1138]
mov eax, r12d
jmp 0x14016248c
mov rcx, rbp
mov r12d, reloc.WLDAP32.dll_Ordinal_27
call qword [0x1402e1138]
mov eax, r12d
jmp 0x14016248c
mov r12d, reloc.WLDAP32.dll_Ordinal_27
mov eax, r12d
jmp 0x14016248c
cmp qword [r15 + 8], 0
je 0x140162482
cmp qword [r15 + 0x18], 0
jne 0x140162482
cmp qword [r15 + 0x20], 0
jne 0x140162482
mov rcx, qword [r13 + 0x10f0]
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