Function at 0x140044390
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, [0x140105e08]
mov rcx, r8
call fcn.1400472e0
or r13, 0xffffffffffffffff
nop
inc r13
cmp byte [rdi + r13], 0
jne 0x1400443c0
add r13, 0x100
mov rcx, r13
call fcn.14005f15c
mov r8, r13
xor edx, edx
mov rcx, rax
mov rbp, rax
call fcn.140060ef0
movzx eax, byte [rdi]
xor esi, esi
test al, al
je 0x140044870
mov qword [rsp + 0x98], rbx
movabs r8, 0xbffffff01ff967d
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r15
cmp al, 0x3d
jne 0x140044849
cmp byte [rdi + 1], 0x3f
jne 0x140044849
cmp byte [rdi + 2], 0
lea rdx, [rdi + 2]
mov rbx, rdx
je 0x140044452
movzx ecx, byte [rbx]
lea eax, [rcx - 0x21]
cmp al, 0x3b
ja 0x140044445
movsx rax, al
bt r8, rax
jb 0x14004444a
cmp cl, 0x5e
jl 0x140044452
inc rbx
cmp byte [rbx], 0
jne 0x140044431
cmp byte [rbx], 0x3f
jne 0x140044843
movzx ecx, byte [rbx + 1]
lea eax, [rcx - 0x51]
test al, 0xdf
jne 0x140044614
cmp byte [rbx + 2], 0x3f
jne 0x140044614
mov rcx, r14
mov byte [rbx], 0
call fcn.1400451d0
mov byte [rbx], 0x3f
mov r12d, eax
movzx ecx, byte [rbx + 3]
add rbx, 3
mov r15, rsi
test cl, cl
je 0x140044558
nop dword [rax + rax]
cmp cl, 0x3f
je 0x14004455d
cmp cl, 0x20
jle 0x140044558
cmp cl, 0x3d
jne 0x140044535
movsx ecx, byte [rbx + 1]
call fcn.1400780b8
test eax, eax
je 0x1400444d2
movzx edi, byte [rbx + 1]
sub dil, 0x30
jmp 0x1400444ed
movsx ecx, byte [rbx + 1]
call fcn.14007812c
movzx edi, byte [rbx + 1]
test eax, eax
je 0x1400444e9
sub dil, 0x57
jmp 0x1400444ed
sub dil, 0x37
movsx ecx, byte [rbx + 2]
add rbx, 2
shl dil, 4
call fcn.1400780b8
test eax, eax
je 0x140044510
movzx eax, byte [rbx]
sub al, 0x30
add dil, al
mov byte [rsi + rbp], dil
jmp 0x140044546
movsx ecx, byte [rbx]
call fcn.14007812c
test eax, eax
movzx eax, byte [rbx]
je 0x14004452a
sub al, 0x57
add dil, al
mov byte [rsi + rbp], dil
jmp 0x140044546
sub al, 0x37
add dil, al
mov byte [rsi + rbp], dil
jmp 0x140044546
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 0x1400444a0
cmp byte [rbx], 0x3f
jne 0x140044567
cmp byte [rbx + 1], 0x3d
jne 0x140044567
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.14005f15c
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.140060ef0
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.14005f164
mov rsi, r12
inc rsi
cmp byte [r14 + rsi], 0
jne 0x140044605
jmp 0x14004480b
sub cl, 0x42
test cl, 0xdf
jne 0x140044843
cmp byte [rbx + 2], 0x3f
jne 0x140044843
mov rcx, r14
mov byte [rbx], 0
call fcn.1400451d0
mov byte [rbx], 0x3f
xor edi, edi
add rbx, 3
mov r12d, eax
mov r15, rsi
cmp byte [rbx], dil
je 0x140044661
movzx ecx, byte [rbx]
nop dword [rax]
cmp cl, 0x3f
je 0x140044661
movzx ecx, byte [rdi + rbx + 1]
inc rdi
test cl, cl
jne 0x140044650
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x88], rdi
mov rcx, rbx
call fcn.140043e40
add rbx, rdi
test rax, rax
je 0x1400446ae
mov r8, qword [rsp + 0x88]
xor edx, edx
test r8, r8
je 0x1400446a2
movzx ecx, byte [rax + rdx]
inc rdx
mov byte [rsi + rbp], cl
inc rsi
cmp rdx, r8
jb 0x140044690
mov rcx, rax
mov byte [rsi + rbp], 0
call fcn.14005f164
cmp byte [rbx], 0x3f
jne 0x1400446bd
cmp byte [rbx + 1], 0x3d
jne 0x1400446bd
add rbx, 2
or rsi, 0xffffffffffffffff
cmp r12d, 0xc42c
jne 0x140044762
lea rcx, [r15 + rbp]
mov rax, rsi
inc rax
cmp byte [rcx + rax], 0
jne 0x1400446d5
cmp rax, 6
jb 0x140044762
mov eax, dword [rcx]
cmp eax, dword [str.e_Be_B]
jne 0x1400446fb
movzx eax, word [rcx + 4]
cmp ax, word [0x1400c4d88]
je 0x140044740
mov eax, dword [rcx]
cmp eax, dword [str.e_Be__]
jne 0x140044712
movzx eax, word [rcx + 4]
cmp ax, word [0x1400c4d90]
je 0x140044740
mov eax, dword [rcx]
cmp eax, dword [str.e__e_B]
jne 0x140044729
movzx eax, word [rcx + 4]
cmp ax, word [0x1400c4d98]
je 0x140044740
mov eax, dword [rcx]
cmp eax, dword [str.e__e__]
jne 0x140044762
movzx eax, word [rcx + 4]
cmp ax, word [0x1400c4da0]
jne 0x140044762
lea rdx, [rcx + 3]
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140044750
inc r8
call fcn.140060aa0
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.14005f15c
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.140060ef0
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.14005f164
mov rsi, rdi
inc rsi
cmp byte [r14 + rsi], r12b
jne 0x140044802
movzx eax, byte [rbx]
add rsi, r15
cmp al, 0x20
je 0x140044819
cmp al, 9
jne 0x14004482b
cmp byte [rbx + 1], 0x3d
lea rax, [rbx + 1]
jne 0x14004482b
cmp byte [rbx + 2], 0x3f
cmove rbx, rax
mov r14, qword [rsp + 0x80]
lea rdi, [rbx - 1]
movabs r8, 0xbffffff01ff967d
jmp 0x14004484f
mov byte [rsi + rbp], 0x3d
jmp 0x14004484c
mov byte [rsi + rbp], al
inc rsi
movzx eax, byte [rdi + 1]
inc rdi
test al, al
jne 0x140044412
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.1400472e0
mov rcx, rbp
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
jmp fcn.14005f164