Function at 0x140157f40
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push r12
push r13
push r15
sub rsp, 0x30
mov r10, qword [rcx + 0x1188]
mov rbx, rcx
mov r15, qword [rcx + 0x1d0]
inc r10
mov rsi, r10
movzx ecx, byte [r10]
call fcn.140157c90
mov r12d, 3
test al, al
je 0x140157fd0
nop dword [rax + rax]
movzx ecx, byte [rsi + 1]
mov r8, rsi
inc rsi
call fcn.140157c90
test al, al
jne 0x140157f80
cmp rsi, r10
je 0x140157fd0
mov rdx, rsi
jbe 0x140157fa5
cmp byte [r8], 0x2f
cmove rdx, r8
lea r13, [r15 + 8]
mov dword [rsp + 0x20], r12d
mov r8, r13
sub rdx, r10
xor r9d, r9d
mov rcx, r10
call fcn.140158840
test eax, eax
je 0x140157fdc
add rsp, 0x30
pop r15
pop r13
pop r12
pop rsi
pop rbx
ret
lea r13, [r15 + 8]
mov qword [r13], 0
cmp byte [rsi], 0x3b
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], r14
jne 0x1401584a5
movzx eax, byte [rsi + 1]
inc rsi
mov rdi, rsi
test al, al
je 0x140158556
cmp al, 0x3d
je 0x14015801d
movzx eax, byte [rsi + 1]
inc rsi
test al, al
jne 0x140158006
mov eax, r12d
jmp 0x1401584dd
mov rbx, rsi
sub rbx, rdi
jne 0x140158039
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140158030
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x140158550
mov r14, rax
test rbx, rbx
je 0x1401580f9
nop dword [rax + rax]
movzx ecx, byte [rdi]
cmp cl, 0x25
jne 0x1401580cf
cmp rbx, 2
jbe 0x1401580cf
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x14015808b
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x14015808b
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x1401580cf
movsx rdx, byte [rdi + 2]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x1401580a5
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x1401580a5
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x1401580cf
mov rax, r8
lea r8, [0x140000000]
movzx ecx, byte [rax + r8 + 0x26b910]
mov rax, 0xfffffffffffffffd
shl cl, 4
or cl, byte [rdx + r8 + 0x26b910]
mov rdx, r12
jmp 0x1401580db
mov edx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp cl, 0x20
jb 0x140158500
mov byte [r9], cl
add rdi, rdx
inc r9
test rbx, rbx
jne 0x140158060
inc rsi
mov byte [r9], 0
mov rdi, rsi
movzx ecx, byte [rsi]
call fcn.140157c90
test al, al
je 0x140158120
nop
movzx ecx, byte [rsi + 1]
inc rsi
call fcn.140157c90
test al, al
jne 0x140158110
mov rbx, rsi
sub rbx, rdi
jne 0x140158139
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140158130
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x14015853c
mov rbp, rax
test rbx, rbx
je 0x1401581f9
nop dword [rax + rax]
movzx edx, byte [rdi]
cmp dl, 0x25
jne 0x1401581cf
cmp rbx, 2
jbe 0x1401581cf
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x14015818b
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x14015818b
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x1401581cf
movsx rcx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x1401581a5
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x1401581a5
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x1401581cf
mov rax, r8
lea r8, [0x140000000]
movzx edx, byte [rax + r8 + 0x26b910]
mov rax, 0xfffffffffffffffd
shl dl, 4
or dl, byte [rcx + r8 + 0x26b910]
mov rcx, r12
jmp 0x1401581db
mov ecx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp dl, 0x20
jb 0x14015850e
mov byte [r9], dl
add rdi, rcx
inc r9
test rbx, rbx
jne 0x140158160
mov byte [r9], 0
mov r10, r14
sub r9, rbp
test r14, r14
je 0x140158525
cmp byte [r14], 0
lea rdx, str.UIDVALIDITY
je 0x140158248
lea rbx, [0x140000000]
movzx eax, byte [rdx]
test al, al
je 0x140158248
movzx ecx, byte [r14]
movzx eax, byte [rax + rbx + 0x269d90]
cmp byte [rcx + rbx + 0x269d90], al
jne 0x140158287
inc r14
inc rdx
cmp byte [r14], 0
jne 0x140158220
xor ecx, ecx
lea rbx, [0x140000000]
cmp byte [rdx], cl
setne cl
xor eax, eax
cmp byte [r14], al
sete al
xor ecx, eax
test ecx, ecx
je 0x14015828b
cmp qword [r15 + 0x10], 0
jne 0x14015828b
test r9, r9
je 0x14015827e
cmp byte [r9 + rbp - 1], 0x2f
jne 0x14015827e
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x10], rbp
jmp 0x140158486
xor ecx, ecx
jmp 0x140158260
test r10, r10
je 0x140158525
cmp byte [r10], 0
lea r8, [0x1402b13f0]
mov rdx, r10
je 0x1401582cb
movzx eax, byte [r8]
test al, al
je 0x1401582cb
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x269d90]
cmp byte [rcx + rbx + 0x269d90], al
jne 0x140158303
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x1401582a4
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 0x140158307
cmp qword [r15 + 0x18], 0
jne 0x140158307
test r9, r9
je 0x1401582fa
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401582fa
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x18], rbp
jmp 0x140158486
xor ecx, ecx
jmp 0x1401582dc
test r10, r10
je 0x140158525
cmp byte [r10], 0
lea r8, str.MAILINDEX
mov rdx, r10
je 0x140158347
movzx eax, byte [r8]
test al, al
je 0x140158347
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x269d90]
cmp byte [rcx + rbx + 0x269d90], al
jne 0x14015837f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140158320
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 0x140158383
cmp qword [r15 + 0x20], 0
jne 0x140158383
test r9, r9
je 0x140158376
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140158376
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x20], rbp
jmp 0x140158486
xor ecx, ecx
jmp 0x140158358
test r10, r10
je 0x140158525
cmp byte [r10], 0
lea r8, str.SECTION
mov rdx, r10
je 0x1401583c7
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x1401583c7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x269d90]
cmp byte [rcx + rbx + 0x269d90], al
jne 0x1401583ff
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x1401583a0
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 0x140158403
cmp qword [r15 + 0x28], 0
jne 0x140158403
test r9, r9
je 0x1401583f6
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401583f6
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x28], rbp
jmp 0x140158486
xor ecx, ecx
jmp 0x1401583d8
test r10, r10
je 0x140158525
cmp byte [r10], 0
lea r8, str.PARTIAL
mov rdx, r10
je 0x14015844b
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x14015844b
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x269d90]
cmp byte [rcx + rbx + 0x269d90], al
jne 0x1401584f9
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140158420
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 0x140158525
cmp qword [r15 + 0x30], 0
jne 0x140158525
test r9, r9
je 0x140158482
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140158482
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x30], rbp
mov rcx, r10
call qword [fcn.14016c458]
xor ecx, ecx
call qword [fcn.14016c458]
cmp byte [rsi], 0x3b
je 0x140157ff4
mov rbx, qword [rsp + 0x60]
cmp qword [r13], 0
je 0x1401584d3
cmp qword [r15 + 0x18], 0
jne 0x1401584d3
cmp qword [r15 + 0x20], 0
jne 0x1401584d3
mov rcx, qword [rbx + 0x1150]
lea r8, [r15 + 0x38]
mov edx, 8
lea r9d, [rdx + 0x38]
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 r14, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r13
pop r12
pop rsi
pop rbx
ret
xor ecx, ecx
jmp 0x14015845c
mov rcx, r14
call qword [fcn.14016c458]
mov eax, r12d
jmp 0x1401584dd
mov rcx, rbp
call qword [fcn.14016c458]
mov rcx, r14
call qword [fcn.14016c458]
mov eax, r12d
jmp 0x1401584dd
mov rcx, r10
call qword [fcn.14016c458]
mov rcx, rbp
call qword [fcn.14016c458]
mov eax, r12d
jmp 0x1401584dd
mov rcx, r14
mov r12d, reloc.WLDAP32.dll_Ordinal_27
call qword [fcn.14016c458]
mov eax, r12d
jmp 0x1401584dd
mov r12d, reloc.WLDAP32.dll_Ordinal_27
mov eax, r12d
jmp 0x1401584dd