Function at 0x180066250
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, [0x1800cb705]
mov rcx, r8
call fcn.180068560
or r13, 0xffffffffffffffff
nop
inc r13
cmp byte [rdi + r13], 0
jne 0x180066280
add r13, 0x100
mov rcx, r13
call fcn.18006af50
mov r8, r13
xor edx, edx
mov rcx, rax
mov rbp, rax
call fcn.18006eed0
movzx eax, byte [rdi]
xor esi, esi
test al, al
je 0x180066730
mov qword [rsp + 0x98], rbx
movabs r8, 0xbffffff01ff967d
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r15
cmp al, 0x3d
jne 0x180066709
cmp byte [rdi + 1], 0x3f
jne 0x180066709
cmp byte [rdi + 2], 0
lea rdx, [rdi + 2]
mov rbx, rdx
je 0x180066312
movzx ecx, byte [rbx]
lea eax, [rcx - 0x21]
cmp al, 0x3b
ja 0x180066305
movsx rax, al
bt r8, rax
jb 0x18006630a
cmp cl, 0x5e
jl 0x180066312
inc rbx
cmp byte [rbx], 0
jne 0x1800662f1
cmp byte [rbx], 0x3f
jne 0x180066703
movzx ecx, byte [rbx + 1]
lea eax, [rcx - 0x51]
test al, 0xdf
jne 0x1800664d4
cmp byte [rbx + 2], 0x3f
jne 0x1800664d4
mov rcx, r14
mov byte [rbx], 0
call fcn.180066b00
mov byte [rbx], 0x3f
mov r12d, eax
movzx ecx, byte [rbx + 3]
add rbx, 3
mov r15, rsi
test cl, cl
je 0x180066418
nop dword [rax + rax]
cmp cl, 0x3f
je 0x18006641d
cmp cl, 0x20
jle 0x180066418
cmp cl, 0x3d
jne 0x1800663f5
movsx ecx, byte [rbx + 1]
call fcn.18007b7a0
test eax, eax
je 0x180066392
movzx edi, byte [rbx + 1]
sub dil, 0x30
jmp 0x1800663ad
movsx ecx, byte [rbx + 1]
call fcn.18007b814
movzx edi, byte [rbx + 1]
test eax, eax
je 0x1800663a9
sub dil, 0x57
jmp 0x1800663ad
sub dil, 0x37
movsx ecx, byte [rbx + 2]
add rbx, 2
shl dil, 4
call fcn.18007b7a0
test eax, eax
je 0x1800663d0
movzx eax, byte [rbx]
sub al, 0x30
add dil, al
mov byte [rsi + rbp], dil
jmp 0x180066406
movsx ecx, byte [rbx]
call fcn.18007b814
test eax, eax
movzx eax, byte [rbx]
je 0x1800663ea
sub al, 0x57
add dil, al
mov byte [rsi + rbp], dil
jmp 0x180066406
sub al, 0x37
add dil, al
mov byte [rsi + rbp], dil
jmp 0x180066406
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 0x180066360
cmp byte [rbx], 0x3f
jne 0x180066427
cmp byte [rbx + 1], 0x3d
jne 0x180066427
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.18006af50
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.18006eed0
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.18006aeb8
mov rsi, r12
inc rsi
cmp byte [r14 + rsi], 0
jne 0x1800664c5
jmp 0x1800666cb
sub cl, 0x42
test cl, 0xdf
jne 0x180066703
cmp byte [rbx + 2], 0x3f
jne 0x180066703
mov rcx, r14
mov byte [rbx], 0
call fcn.180066b00
mov byte [rbx], 0x3f
xor edi, edi
add rbx, 3
mov r12d, eax
mov r15, rsi
cmp byte [rbx], dil
je 0x180066521
movzx ecx, byte [rbx]
nop dword [rax]
cmp cl, 0x3f
je 0x180066521
movzx ecx, byte [rdi + rbx + 1]
inc rdi
test cl, cl
jne 0x180066510
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x88], rdi
mov rcx, rbx
call fcn.180066010
add rbx, rdi
test rax, rax
je 0x18006656e
mov r8, qword [rsp + 0x88]
xor edx, edx
test r8, r8
je 0x180066562
movzx ecx, byte [rax + rdx]
inc rdx
mov byte [rsi + rbp], cl
inc rsi
cmp rdx, r8
jb 0x180066550
mov rcx, rax
mov byte [rsi + rbp], 0
call fcn.18006aeb8
cmp byte [rbx], 0x3f
jne 0x18006657d
cmp byte [rbx + 1], 0x3d
jne 0x18006657d
add rbx, 2
or rsi, 0xffffffffffffffff
cmp r12d, 0xc42c
jne 0x180066622
lea rcx, [r15 + rbp]
mov rax, rsi
inc rax
cmp byte [rcx + rax], 0
jne 0x180066595
cmp rax, 6
jb 0x180066622
mov eax, dword [rcx]
cmp eax, dword [str.e_Be_B]
jne 0x1800665bb
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b5790]
je 0x180066600
mov eax, dword [rcx]
cmp eax, dword [str.e_Be__]
jne 0x1800665d2
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b5798]
je 0x180066600
mov eax, dword [rcx]
cmp eax, dword [str.e__e_B]
jne 0x1800665e9
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b57a0]
je 0x180066600
mov eax, dword [rcx]
cmp eax, dword [str.e__e__]
jne 0x180066622
movzx eax, word [rcx + 4]
cmp ax, word [0x1800b57a8]
jne 0x180066622
lea rdx, [rcx + 3]
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180066610
inc r8
call fcn.18006e9b0
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.18006af50
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.18006eed0
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.18006aeb8
mov rsi, rdi
inc rsi
cmp byte [r14 + rsi], r12b
jne 0x1800666c2
movzx eax, byte [rbx]
add rsi, r15
cmp al, 0x20
je 0x1800666d9
cmp al, 9
jne 0x1800666eb
cmp byte [rbx + 1], 0x3d
lea rax, [rbx + 1]
jne 0x1800666eb
cmp byte [rbx + 2], 0x3f
cmove rbx, rax
mov r14, qword [rsp + 0x80]
lea rdi, [rbx - 1]
movabs r8, 0xbffffff01ff967d
jmp 0x18006670f
mov byte [rsi + rbp], 0x3d
jmp 0x18006670c
mov byte [rsi + rbp], al
inc rsi
movzx eax, byte [rdi + 1]
inc rdi
test al, al
jne 0x1800662d2
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.180068560
mov rcx, rbp
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
jmp fcn.18006aeb8