Function at 0x180064380
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r13
push r14
sub rsp, 0x50
mov rdi, rdx
mov r14, rcx
lea rdx, [0x1800c8385]
mov rcx, r8
call fcn.180066690
or r13, 0xffffffffffffffff
nop
inc r13
cmp byte [rdi + r13], 0
jne 0x1800643b0
add r13, 0x100
mov rcx, r13
call fcn.180068f50
mov r8, r13
xor edx, edx
mov rcx, rax
mov rbp, rax
call fcn.18006ced0
movzx eax, byte [rdi]
xor esi, esi
test al, al
je 0x180064860
mov qword [rsp + 0x98], rbx
movabs r8, 0xbffffff01ff967d
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r15
cmp al, 0x3d
jne 0x180064839
cmp byte [rdi + 1], 0x3f
jne 0x180064839
cmp byte [rdi + 2], 0
lea rdx, [rdi + 2]
mov rbx, rdx
je 0x180064442
movzx ecx, byte [rbx]
lea eax, [rcx - 0x21]
cmp al, 0x3b
ja 0x180064435
movsx rax, al
bt r8, rax
jb 0x18006443a
cmp cl, 0x5e
jl 0x180064442
inc rbx
cmp byte [rbx], 0
jne 0x180064421
cmp byte [rbx], 0x3f
jne 0x180064833
movzx ecx, byte [rbx + 1]
lea eax, [rcx - 0x51]
test al, 0xdf
jne 0x180064604
cmp byte [rbx + 2], 0x3f
jne 0x180064604
mov rcx, r14
mov byte [rbx], 0
call fcn.180064c30
mov byte [rbx], 0x3f
mov r12d, eax
movzx ecx, byte [rbx + 3]
add rbx, 3
mov r15, rsi
test cl, cl
je 0x180064548
nop dword [rax + rax]
cmp cl, 0x3f
je 0x18006454d
cmp cl, 0x20
jle 0x180064548
cmp cl, 0x3d
jne 0x180064525
movsx ecx, byte [rbx + 1]
call fcn.1800797a0
test eax, eax
je 0x1800644c2
movzx edi, byte [rbx + 1]
sub dil, 0x30
jmp 0x1800644dd
movsx ecx, byte [rbx + 1]
call fcn.180079814
movzx edi, byte [rbx + 1]
test eax, eax
je 0x1800644d9
sub dil, 0x57
jmp 0x1800644dd
sub dil, 0x37
movsx ecx, byte [rbx + 2]
add rbx, 2
shl dil, 4
call fcn.1800797a0
test eax, eax
je 0x180064500
movzx eax, byte [rbx]
sub al, 0x30
add dil, al
mov byte [rsi + rbp], dil
jmp 0x180064536
movsx ecx, byte [rbx]
call fcn.180079814
test eax, eax
movzx eax, byte [rbx]
je 0x18006451a
sub al, 0x57
add dil, al
mov byte [rsi + rbp], dil
jmp 0x180064536
sub al, 0x37
add dil, al
mov byte [rsi + rbp], dil
jmp 0x180064536
movzx eax, cl
cmp cl, 0x5f
mov ecx, 0x20
cmove eax, ecx
mov byte [rsi + rbp], al
movzx ecx, byte [rbx + 1]
inc rbx
inc rsi
test cl, cl
jne 0x180064490
cmp byte [rbx], 0x3f
jne 0x180064557
cmp byte [rbx + 1], 0x3d
jne 0x180064557
add rbx, 2
xor eax, eax
lea r14, [r15 + rbp]
mov dword [rsp + 0x28], eax
or rsi, 0xffffffffffffffff
mov r9d, esi
mov qword [rsp + 0x20], rax
mov r8, r14
xor edx, edx
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
inc eax
movsxd rdi, eax
mov eax, 2
mul rdi
cmovo rax, rsi
mov rcx, rax
call fcn.180068f50
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.18006ced0
or r9, 0xffffffffffffffff
mov dword [rsp + 0x28], edi
mov r8, r14
mov qword [rsp + 0x20], rsi
xor edx, edx
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
or r12, 0xffffffffffffffff
mov qword [rsp + 0x38], rax
mov r9d, r12d
mov qword [rsp + 0x30], rax
mov r8, rsi
mov dword [rsp + 0x28], r13d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, rsi
call fcn.1800686a4
mov rsi, r12
inc rsi
cmp byte [r14 + rsi], 0
jne 0x1800645f5
jmp 0x1800647fb
sub cl, 0x42
test cl, 0xdf
jne 0x180064833
cmp byte [rbx + 2], 0x3f
jne 0x180064833
mov rcx, r14
mov byte [rbx], 0
call fcn.180064c30
mov byte [rbx], 0x3f
xor edi, edi
add rbx, 3
mov r12d, eax
mov r15, rsi
cmp byte [rbx], dil
je 0x180064651
movzx ecx, byte [rbx]
nop dword [rax]
cmp cl, 0x3f
je 0x180064651
movzx ecx, byte [rdi + rbx + 1]
inc rdi
test cl, cl
jne 0x180064640
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x88], rdi
mov rcx, rbx
call fcn.180064140
add rbx, rdi
test rax, rax
je 0x18006469e
mov r8, qword [rsp + 0x88]
xor edx, edx
test r8, r8
je 0x180064692
movzx ecx, byte [rax + rdx]
inc rdx
mov byte [rsi + rbp], cl
inc rsi
cmp rdx, r8
jb 0x180064680
mov rcx, rax
mov byte [rsi + rbp], 0
call fcn.1800686a4
cmp byte [rbx], 0x3f
jne 0x1800646ad
cmp byte [rbx + 1], 0x3d
jne 0x1800646ad
add rbx, 2
or rsi, 0xffffffffffffffff
cmp r12d, 0xc42c
jne 0x180064752
lea rcx, [r15 + rbp]
mov rax, rsi
inc rax
cmp byte [rcx + rax], 0
jne 0x1800646c5
cmp rax, 6
jb 0x180064752
mov eax, dword [rcx]
cmp eax, dword [str.e_Be_B]
jne 0x1800646eb
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b2440]
je 0x180064730
mov eax, dword [rcx]
cmp eax, dword [str.e_Be__]
jne 0x180064702
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b2448]
je 0x180064730
mov eax, dword [rcx]
cmp eax, dword [str.e__e_B]
jne 0x180064719
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b2450]
je 0x180064730
mov eax, dword [rcx]
cmp eax, dword [str.e__e__]
jne 0x180064752
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b2458]
jne 0x180064752
lea rdx, [rcx + 3]
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180064740
inc r8
call fcn.18006c9b0
lea r14, [r15 + rbp]
mov dword [rsp + 0x28], 0
mov r8, r14
mov qword [rsp + 0x20], 0
mov r9d, esi
xor edx, edx
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
inc eax
movsxd rdi, eax
mov eax, 2
mul rdi
cmovo rax, rsi
mov rcx, rax
call fcn.180068f50
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.18006ced0
mov dword [rsp + 0x28], edi
mov r8, r14
or rdi, 0xffffffffffffffff
mov qword [rsp + 0x20], rsi
mov r9d, edi
xor edx, edx
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor r12d, r12d
mov r9d, edi
mov qword [rsp + 0x38], r12
mov r8, rsi
mov qword [rsp + 0x30], r12
xor edx, edx
mov dword [rsp + 0x28], r13d
xor ecx, ecx
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, rsi
call fcn.1800686a4
mov rsi, rdi
inc rsi
cmp byte [r14 + rsi], r12b
jne 0x1800647f2
movzx eax, byte [rbx]
add rsi, r15
cmp al, 0x20
je 0x180064809
cmp al, 9
jne 0x18006481b
cmp byte [rbx + 1], 0x3d
lea rax, [rbx + 1]
jne 0x18006481b
cmp byte [rbx + 2], 0x3f
cmove rbx, rax
mov r14, qword [rsp + 0x80]
lea rdi, [rbx - 1]
movabs r8, 0xbffffff01ff967d
jmp 0x18006483f
mov byte [rsi + rbp], 0x3d
jmp 0x18006483c
mov byte [rsi + rbp], al
inc rsi
movzx eax, byte [rdi + 1]
inc rdi
test al, al
jne 0x180064402
mov r15, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
mov rdx, rbp
mov byte [rsi + rbp], 0
call fcn.180066690
mov rcx, rbp
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
jmp fcn.1800686a4