Function at 0x1802a9d90
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, [0x1800935b8]
mov rcx, r8
call fcn.1802b2220
or r13, 0xffffffffffffffff
nop
inc r13
cmp byte [rdi + r13], 0
jne 0x1802a9dc0
add r13, 0x100
mov rcx, r13
call fcn.1802b8484
mov r8, r13
xor edx, edx
mov rcx, rax
mov rbp, rax
call fcn.1802c7550
movzx eax, byte [rdi]
xor esi, esi
test al, al
je 0x1802aa270
mov qword [rsp + 0x98], rbx
movabs r8, 0xbffffff01ff967d
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r15
cmp al, 0x3d
jne 0x1802aa249
cmp byte [rdi + 1], 0x3f
jne 0x1802aa249
cmp byte [rdi + 2], 0
lea rdx, [rdi + 2]
mov rbx, rdx
je 0x1802a9e52
movzx ecx, byte [rbx]
lea eax, [rcx - 0x21]
cmp al, 0x3b
ja 0x1802a9e45
movsx rax, al
bt r8, rax
jb 0x1802a9e4a
cmp cl, 0x5e
jl 0x1802a9e52
inc rbx
cmp byte [rbx], 0
jne 0x1802a9e31
cmp byte [rbx], 0x3f
jne 0x1802aa243
movzx ecx, byte [rbx + 1]
lea eax, [rcx - 0x51]
test al, 0xdf
jne 0x1802aa014
cmp byte [rbx + 2], 0x3f
jne 0x1802aa014
mov rcx, r14
mov byte [rbx], 0
call fcn.1802ab4c0
mov byte [rbx], 0x3f
mov r12d, eax
movzx ecx, byte [rbx + 3]
add rbx, 3
mov r15, rsi
test cl, cl
je 0x1802a9f58
nop dword [rax + rax]
cmp cl, 0x3f
je 0x1802a9f5d
cmp cl, 0x20
jle 0x1802a9f58
cmp cl, 0x3d
jne 0x1802a9f35
movsx ecx, byte [rbx + 1]
call fcn.1802d54bc
test eax, eax
je 0x1802a9ed2
movzx edi, byte [rbx + 1]
sub dil, 0x30
jmp 0x1802a9eed
movsx ecx, byte [rbx + 1]
call fcn.1802d5530
movzx edi, byte [rbx + 1]
test eax, eax
je 0x1802a9ee9
sub dil, 0x57
jmp 0x1802a9eed
sub dil, 0x37
movsx ecx, byte [rbx + 2]
add rbx, 2
shl dil, 4
call fcn.1802d54bc
test eax, eax
je 0x1802a9f10
movzx eax, byte [rbx]
sub al, 0x30
add dil, al
mov byte [rsi + rbp], dil
jmp 0x1802a9f46
movsx ecx, byte [rbx]
call fcn.1802d5530
test eax, eax
movzx eax, byte [rbx]
je 0x1802a9f2a
sub al, 0x57
add dil, al
mov byte [rsi + rbp], dil
jmp 0x1802a9f46
sub al, 0x37
add dil, al
mov byte [rsi + rbp], dil
jmp 0x1802a9f46
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 0x1802a9ea0
cmp byte [rbx], 0x3f
jne 0x1802a9f67
cmp byte [rbx + 1], 0x3d
jne 0x1802a9f67
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.1802b8484
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.1802c7550
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.1802b8d50
mov rsi, r12
inc rsi
cmp byte [r14 + rsi], 0
jne 0x1802aa005
jmp 0x1802aa20b
sub cl, 0x42
test cl, 0xdf
jne 0x1802aa243
cmp byte [rbx + 2], 0x3f
jne 0x1802aa243
mov rcx, r14
mov byte [rbx], 0
call fcn.1802ab4c0
mov byte [rbx], 0x3f
xor edi, edi
add rbx, 3
mov r12d, eax
mov r15, rsi
cmp byte [rbx], dil
je 0x1802aa061
movzx ecx, byte [rbx]
nop dword [rax]
cmp cl, 0x3f
je 0x1802aa061
movzx ecx, byte [rdi + rbx + 1]
inc rdi
test cl, cl
jne 0x1802aa050
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x88], rdi
mov rcx, rbx
call fcn.1802a9840
add rbx, rdi
test rax, rax
je 0x1802aa0ae
mov r8, qword [rsp + 0x88]
xor edx, edx
test r8, r8
je 0x1802aa0a2
movzx ecx, byte [rax + rdx]
inc rdx
mov byte [rsi + rbp], cl
inc rsi
cmp rdx, r8
jb 0x1802aa090
mov rcx, rax
mov byte [rsi + rbp], 0
call fcn.1802b8d50
cmp byte [rbx], 0x3f
jne 0x1802aa0bd
cmp byte [rbx + 1], 0x3d
jne 0x1802aa0bd
add rbx, 2
or rsi, 0xffffffffffffffff
cmp r12d, 0xc42c
jne 0x1802aa162
lea rcx, [r15 + rbp]
mov rax, rsi
inc rax
cmp byte [rcx + rax], 0
jne 0x1802aa0d5
cmp rax, 6
jb 0x1802aa162
mov eax, dword [rcx]
cmp eax, dword [0x180075d80]
jne 0x1802aa0fb
movzx eax, word [rcx + 4]
cmp ax, word [0x180075d84]
je 0x1802aa140
mov eax, dword [rcx]
cmp eax, dword [0x180075d88]
jne 0x1802aa112
movzx eax, word [rcx + 4]
cmp ax, word [0x180075d8c]
je 0x1802aa140
mov eax, dword [rcx]
cmp eax, dword [0x180075d90]
jne 0x1802aa129
movzx eax, word [rcx + 4]
cmp ax, word [0x180075d94]
je 0x1802aa140
mov eax, dword [rcx]
cmp eax, dword [0x180075d98]
jne 0x1802aa162
movzx eax, word [rcx + 4]
cmp ax, word [0x180075d9c]
jne 0x1802aa162
lea rdx, [rcx + 3]
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1802aa150
inc r8
call fcn.1802c7100
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.1802b8484
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.1802c7550
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.1802b8d50
mov rsi, rdi
inc rsi
cmp byte [r14 + rsi], r12b
jne 0x1802aa202
movzx eax, byte [rbx]
add rsi, r15
cmp al, 0x20
je 0x1802aa219
cmp al, 9
jne 0x1802aa22b
cmp byte [rbx + 1], 0x3d
lea rax, [rbx + 1]
jne 0x1802aa22b
cmp byte [rbx + 2], 0x3f
cmove rbx, rax
mov r14, qword [rsp + 0x80]
lea rdi, [rbx - 1]
movabs r8, 0xbffffff01ff967d
jmp 0x1802aa24f
mov byte [rsi + rbp], 0x3d
jmp 0x1802aa24c
mov byte [rsi + rbp], al
inc rsi
movzx eax, byte [rdi + 1]
inc rdi
test al, al
jne 0x1802a9e12
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.1802b2220
mov rcx, rbp
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
jmp fcn.1802b8d50