Function at 0x14012e190
Capabilities:
Parse credit card information

Disassembly:
push rbx
push rdi
push r12
push r13
push r14
sub rsp, 0x60
mov rax, qword [0x14025d030]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r10, qword [rcx + 0x11a8]
mov rdi, rcx
mov r13, qword [rcx + 0x1b0]
inc r10
mov qword [rsp + 0x30], rcx
mov r14, r10
movzx ecx, byte [r10]
call fcn.14012df90
test al, al
je 0x14012e229
nop word [rax + rax]
movzx ecx, byte [r14 + 1]
mov r8, r14
inc r14
call fcn.14012df90
test al, al
jne 0x14012e1e0
cmp r14, r10
je 0x14012e229
mov rdx, r14
jbe 0x14012e206
cmp byte [r8], 0x2f
cmove rdx, r8
lea r8, [r13 + 8]
mov dword [rsp + 0x20], 3
sub rdx, r10
xor r9d, r9d
mov rcx, r10
call fcn.14012e940
test eax, eax
je 0x14012e231
jmp 0x14012e71f
mov qword [r13 + 8], 0
cmp byte [r14], 0x3b
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], r15
jne 0x14012e6ce
movzx eax, byte [r14 + 1]
inc r14
mov rdi, r14
test al, al
je 0x14012e781
cmp al, 0x3d
je 0x14012e280
movzx eax, byte [r14 + 1]
inc r14
test al, al
jne 0x14012e266
mov eax, 3
jmp 0x14012e707
mov rbx, r14
mov ebp, 0
sub rbx, rdi
jne 0x14012e29d
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], bpl
jne 0x14012e294
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
je 0x14012e7a0
test rbx, rbx
je 0x14012e34e
nop dword [rax]
movzx r8d, byte [rdi]
cmp r8b, 0x25
jne 0x14012e330
cmp rbx, 2
jbe 0x14012e33a
movzx edx, byte [rdi + 1]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x14012e2e9
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x14012e2e9
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x14012e33a
movzx ecx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x14012e302
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x14012e302
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14012e33a
mov byte [rsp + 0x48], dl
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x49], cl
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x48]
mov byte [rsp + 0x4a], 0
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add rdi, 2
mov r8d, eax
sub rbx, 2
cmp r8b, 0x20
jb 0x14012e740
mov byte [r15 + rbp], r8b
inc rdi
inc rbp
sub rbx, 1
jne 0x14012e2c0
inc r14
mov byte [r15 + rbp], 0
mov rdi, r14
movzx ecx, byte [r14]
call fcn.14012df90
test al, al
je 0x14012e381
nop word [rax + rax]
movzx ecx, byte [r14 + 1]
inc r14
call fcn.14012df90
test al, al
jne 0x14012e370
mov rbx, r14
mov ebp, 0
sub rbx, rdi
jne 0x14012e39e
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], bpl
jne 0x14012e395
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r12, rax
test rax, rax
je 0x14012e78b
test rbx, rbx
je 0x14012e44e
nop dword [rax]
movzx r8d, byte [rdi]
cmp r8b, 0x25
jne 0x14012e430
cmp rbx, 2
jbe 0x14012e43a
movzx edx, byte [rdi + 1]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x14012e3e9
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x14012e3e9
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x14012e43a
movzx ecx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x14012e402
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x14012e402
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x14012e43a
mov byte [rsp + 0x4c], dl
mov r8d, reloc.WS2_32.dll_recv
mov byte [rsp + 0x4d], cl
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x4c]
mov byte [rsp + 0x4e], 0
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add rdi, 2
mov r8d, eax
sub rbx, 2
cmp r8b, 0x20
jb 0x14012e754
mov byte [r12 + rbp], r8b
inc rdi
inc rbp
sub rbx, 1
jne 0x14012e3c0
mov byte [r12 + rbp], 0
mov r9, r15
test r15, r15
je 0x14012e76f
cmp byte [r15], 0
lea rdx, str.UIDVALIDITY
je 0x14012e493
lea rbx, [0x1401f42d0]
movzx eax, byte [rdx]
test al, al
je 0x14012e493
movzx ecx, byte [r15]
movzx eax, byte [rax + rbx]
cmp byte [rcx + rbx], al
jne 0x14012e4d2
inc r15
inc rdx
cmp byte [r15], 0
jne 0x14012e473
xor ecx, ecx
lea rbx, [0x1401f42d0]
cmp byte [r15], cl
sete cl
xor eax, eax
cmp byte [rdx], al
setne al
xor ecx, eax
test ecx, ecx
je 0x14012e4d6
cmp qword [r13 + 0x10], 0
jne 0x14012e4d6
test rbp, rbp
je 0x14012e4c9
cmp byte [r12 + rbp - 1], 0x2f
jne 0x14012e4c9
mov byte [r12 + rbp - 1], 0
mov qword [r13 + 0x10], r12
jmp 0x14012e6ae
xor ecx, ecx
jmp 0x14012e4ab
test r9, r9
je 0x14012e76f
cmp byte [r9], 0
lea r8, [0x14023aab8]
mov rdx, r9
je 0x14012e50f
nop
movzx eax, byte [r8]
test al, al
je 0x14012e50f
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx]
cmp byte [rcx + rbx], al
jne 0x14012e547
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14012e4f0
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 0x14012e54b
cmp qword [r13 + 0x18], 0
jne 0x14012e54b
test rbp, rbp
je 0x14012e53e
cmp byte [r12 + rbp - 1], 0x2f
jne 0x14012e53e
mov byte [r12 + rbp - 1], 0
mov qword [r13 + 0x18], r12
jmp 0x14012e6ae
xor ecx, ecx
jmp 0x14012e520
test r9, r9
je 0x14012e76f
cmp byte [r9], 0
lea r8, str.MAILINDEX
mov rdx, r9
je 0x14012e583
movzx eax, byte [r8]
test al, al
je 0x14012e583
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx]
cmp byte [rcx + rbx], al
jne 0x14012e5bb
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14012e564
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 0x14012e5bf
cmp qword [r13 + 0x20], 0
jne 0x14012e5bf
test rbp, rbp
je 0x14012e5b2
cmp byte [r12 + rbp - 1], 0x2f
jne 0x14012e5b2
mov byte [r12 + rbp - 1], 0
mov qword [r13 + 0x20], r12
jmp 0x14012e6ae
xor ecx, ecx
jmp 0x14012e594
test r9, r9
je 0x14012e76f
cmp byte [r9], 0
lea r8, str.SECTION
mov rdx, r9
je 0x14012e5f7
movzx eax, byte [r8]
test al, al
je 0x14012e5f7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx]
cmp byte [rcx + rbx], al
jne 0x14012e62f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14012e5d8
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 0x14012e633
cmp qword [r13 + 0x28], 0
jne 0x14012e633
test rbp, rbp
je 0x14012e626
cmp byte [r12 + rbp - 1], 0x2f
jne 0x14012e626
mov byte [r12 + rbp - 1], 0
mov qword [r13 + 0x28], r12
jmp 0x14012e6ae
xor ecx, ecx
jmp 0x14012e608
test r9, r9
je 0x14012e76f
cmp byte [r9], 0
lea r8, str.PARTIAL
mov rdx, r9
je 0x14012e673
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x14012e673
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx]
cmp byte [rcx + rbx], al
jne 0x14012e739
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x14012e650
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 0x14012e76f
cmp qword [r13 + 0x30], 0
jne 0x14012e76f
test rbp, rbp
je 0x14012e6aa
cmp byte [r12 + rbp - 1], 0x2f
jne 0x14012e6aa
mov byte [r12 + rbp - 1], 0
mov qword [r13 + 0x30], r12
mov rcx, r9
call qword [0x14025d0c8]
xor ecx, ecx
call qword [0x14025d0c8]
cmp byte [r14], 0x3b
je 0x14012e253
mov rdi, qword [rsp + 0x30]
cmp qword [r13 + 8], 0
je 0x14012e6fc
cmp qword [r13 + 0x18], 0
jne 0x14012e6fc
cmp qword [r13 + 0x20], 0
jne 0x14012e6fc
mov rcx, qword [rdi + 0x1170]
lea r8, [r13 + 0x38]
mov edx, 8
lea r9d, [rdx + 0x38]
call sym.CheraxLoader.exe_curl_url_get
movzx eax, byte [r14]
neg al
sbb eax, eax
and eax, 3
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14013ea20
add rsp, 0x60
pop r14
pop r13
pop r12
pop rdi
pop rbx
ret
xor ecx, ecx
jmp 0x14012e684
mov rcx, r15
call qword [0x14025d0c8]
mov r12d, 3
mov eax, r12d
jmp 0x14012e707
mov rcx, r12
call qword [0x14025d0c8]
mov rcx, r15
mov ebx, 3
call qword [0x14025d0c8]
mov eax, ebx
jmp 0x14012e707
mov rcx, r9
call qword [0x14025d0c8]
mov rcx, r12
call qword [0x14025d0c8]
mov eax, 3
jmp 0x14012e707
mov rcx, r15
mov ebx, reloc.WLDAP32.dll_Ordinal_27
call qword [0x14025d0c8]
mov eax, ebx
jmp 0x14012e707
mov r12d, reloc.WLDAP32.dll_Ordinal_27
mov eax, r12d
jmp 0x14012e707