Function at 0x140033ad0
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 + 0x1208]
mov rbx, rcx
mov r15, qword [rcx + 0x198]
inc r10
mov rsi, r10
movzx ecx, byte [r10]
call fcn.140033820
mov r12d, 3
test al, al
je 0x140033b60
nop dword [rax + rax]
movzx ecx, byte [rsi + 1]
mov r8, rsi
inc rsi
call fcn.140033820
test al, al
jne 0x140033b10
cmp rsi, r10
je 0x140033b60
mov rdx, rsi
jbe 0x140033b35
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.140018370
test eax, eax
je 0x140033b6c
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 0x140034035
movzx eax, byte [rsi + 1]
inc rsi
mov rdi, rsi
test al, al
je 0x1400340e6
cmp al, 0x3d
je 0x140033bad
movzx eax, byte [rsi + 1]
inc rsi
test al, al
jne 0x140033b96
mov eax, r12d
jmp 0x14003406d
mov rbx, rsi
sub rbx, rdi
jne 0x140033bc9
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140033bc0
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x1400340e0
mov r14, rax
test rbx, rbx
je 0x140033c89
nop dword [rax + rax]
movzx ecx, byte [rdi]
cmp cl, 0x25
jne 0x140033c5f
cmp rbx, 2
jbe 0x140033c5f
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x140033c1b
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x140033c1b
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x140033c5f
movsx rdx, byte [rdi + 2]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x140033c35
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x140033c35
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x140033c5f
mov rax, r8
lea r8, [0x140000000]
movzx ecx, byte [rax + r8 + 0x67e00]
mov rax, 0xfffffffffffffffd
shl cl, 4
or cl, byte [rdx + r8 + 0x67e00]
mov rdx, r12
jmp 0x140033c6b
mov edx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp cl, 0x20
jb 0x140034090
mov byte [r9], cl
add rdi, rdx
inc r9
test rbx, rbx
jne 0x140033bf0
inc rsi
mov byte [r9], 0
mov rdi, rsi
movzx ecx, byte [rsi]
call fcn.140033820
test al, al
je 0x140033cb0
nop
movzx ecx, byte [rsi + 1]
inc rsi
call fcn.140033820
test al, al
jne 0x140033ca0
mov rbx, rsi
sub rbx, rdi
jne 0x140033cc9
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140033cc0
lea rcx, [rbx + 1]
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rax
test rax, rax
je 0x1400340cc
mov rbp, rax
test rbx, rbx
je 0x140033d89
nop dword [rax + rax]
movzx edx, byte [rdi]
cmp dl, 0x25
jne 0x140033d5f
cmp rbx, 2
jbe 0x140033d5f
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x140033d1b
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x140033d1b
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x140033d5f
movsx rcx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x140033d35
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x140033d35
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x140033d5f
mov rax, r8
lea r8, [0x140000000]
movzx edx, byte [rax + r8 + 0x67e00]
mov rax, 0xfffffffffffffffd
shl dl, 4
or dl, byte [rcx + r8 + 0x67e00]
mov rcx, r12
jmp 0x140033d6b
mov ecx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp dl, 0x20
jb 0x14003409e
mov byte [r9], dl
add rdi, rcx
inc r9
test rbx, rbx
jne 0x140033cf0
mov byte [r9], 0
mov r10, r14
sub r9, rbp
test r14, r14
je 0x1400340b5
cmp byte [r14], 0
lea rdx, str.UIDVALIDITY
je 0x140033dd8
lea rbx, [0x140000000]
movzx eax, byte [rdx]
test al, al
je 0x140033dd8
movzx ecx, byte [r14]
movzx eax, byte [rax + rbx + 0x69160]
cmp byte [rcx + rbx + 0x69160], al
jne 0x140033e17
inc r14
inc rdx
cmp byte [r14], 0
jne 0x140033db0
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 0x140033e1b
cmp qword [r15 + 0x10], 0
jne 0x140033e1b
test r9, r9
je 0x140033e0e
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140033e0e
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x10], rbp
jmp 0x140034016
xor ecx, ecx
jmp 0x140033df0
test r10, r10
je 0x1400340b5
cmp byte [r10], 0
lea r8, [0x14006f338]
mov rdx, r10
je 0x140033e5b
movzx eax, byte [r8]
test al, al
je 0x140033e5b
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x69160]
cmp byte [rcx + rbx + 0x69160], al
jne 0x140033e93
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140033e34
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 0x140033e97
cmp qword [r15 + 0x18], 0
jne 0x140033e97
test r9, r9
je 0x140033e8a
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140033e8a
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x18], rbp
jmp 0x140034016
xor ecx, ecx
jmp 0x140033e6c
test r10, r10
je 0x1400340b5
cmp byte [r10], 0
lea r8, str.MAILINDEX
mov rdx, r10
je 0x140033ed7
movzx eax, byte [r8]
test al, al
je 0x140033ed7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x69160]
cmp byte [rcx + rbx + 0x69160], al
jne 0x140033f0f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140033eb0
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 0x140033f13
cmp qword [r15 + 0x20], 0
jne 0x140033f13
test r9, r9
je 0x140033f06
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140033f06
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x20], rbp
jmp 0x140034016
xor ecx, ecx
jmp 0x140033ee8
test r10, r10
je 0x1400340b5
cmp byte [r10], 0
lea r8, str.SECTION
mov rdx, r10
je 0x140033f57
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x140033f57
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x69160]
cmp byte [rcx + rbx + 0x69160], al
jne 0x140033f8f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140033f30
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 0x140033f93
cmp qword [r15 + 0x28], 0
jne 0x140033f93
test r9, r9
je 0x140033f86
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140033f86
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x28], rbp
jmp 0x140034016
xor ecx, ecx
jmp 0x140033f68
test r10, r10
je 0x1400340b5
cmp byte [r10], 0
lea r8, str.PARTIAL
mov rdx, r10
je 0x140033fdb
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x140033fdb
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x69160]
cmp byte [rcx + rbx + 0x69160], al
jne 0x140034089
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x140033fb0
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 0x1400340b5
cmp qword [r15 + 0x30], 0
jne 0x1400340b5
test r9, r9
je 0x140034012
cmp byte [r9 + rbp - 1], 0x2f
jne 0x140034012
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x30], rbp
mov rcx, r10
call qword [0x14007c4b8]
xor ecx, ecx
call qword [0x14007c4b8]
cmp byte [rsi], 0x3b
je 0x140033b84
mov rbx, qword [rsp + 0x60]
cmp qword [r13], 0
je 0x140034063
cmp qword [r15 + 0x18], 0
jne 0x140034063
cmp qword [r15 + 0x20], 0
jne 0x140034063
mov rcx, qword [rbx + 0x11d0]
lea r8, [r15 + 0x38]
mov edx, 8
lea r9d, [rdx + 0x38]
call fcn.140063710
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 0x140033fec
mov rcx, r14
call qword [0x14007c4b8]
mov eax, r12d
jmp 0x14003406d
mov rcx, rbp
call qword [0x14007c4b8]
mov rcx, r14
call qword [0x14007c4b8]
mov eax, r12d
jmp 0x14003406d
mov rcx, r10
call qword [0x14007c4b8]
mov rcx, rbp
call qword [0x14007c4b8]
mov eax, r12d
jmp 0x14003406d
mov rcx, r14
mov r12d, reloc.WLDAP32.dll_Ordinal_27
call qword [0x14007c4b8]
mov eax, r12d
jmp 0x14003406d
mov r12d, reloc.WLDAP32.dll_Ordinal_27
mov eax, r12d
jmp 0x14003406d