Function at 0x1403caee0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp, 0x28
mov r14, rcx
mov rsi, rdx
mov rbp, r8
mov ebx, r9d
mov edi, dword [rsp + 0x90]
xor r15d, r15d
xor r13d, r13d
xor r12d, r12d
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x1403cb0e8
xor r8d, r8d
test dword [rax + 0x10], 0x10000000
setne r8b
mov dword [rsp + 0x24], r8d
mov eax, dword [rbp]
cmp eax, ebx
jge 0x1403caff0
movsxd rcx, eax
movzx ecx, word [rsi + rcx*2]
cmp ecx, 0x1f
jle 0x1403cb0a5
cmp ecx, 0x7f
jge 0x1403cb1a0
cmp ecx, 0x7e
jg 0x1403cb1b1
movzx r10d, di
cmp ecx, r10d
je 0x1403caff0
cmp r10d, 0x3f
jne 0x1403caf75
cmp ecx, 0x23
je 0x1403cb295
cmp ecx, 0x3f
je 0x1403cb2b3
cmp ecx, 0x23
je 0x1403cb2f2
cmp ecx, 0x2f
je 0x1403cb01d
cmp ecx, 0x5c
je 0x1403cb01d
cmp ecx, 0x2e
je 0x1403cb058
cmp ecx, 0x22
jle 0x1403cb0dd
cmp ecx, 0x5b
jl 0x1403cafb9
cmp ecx, 0x5e
jle 0x1403cb0c3
cmp ecx, 0x3e
je 0x1403cb0c3
cmp ecx, 0x3c
je 0x1403cb0c3
cmp ecx, 0x60
je 0x1403cb0c3
cmp ecx, 0x7b
jge 0x1403cb126
cmp ecx, 0x25
je 0x1403cb130
inc eax
cmp eax, ebx
jl 0x1403caf37
test r12d, r12d
jne 0x1403cb118
or r15d, 2
test r13d, r13d
jne 0x1403cb006
or r15d, 1
mov dword [rbp], eax
mov eax, r15d
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r15b, 0x10
jne 0x1403cb02c
cmp ecx, 0x5c
je 0x1403cb0ba
test r15b, 4
jne 0x1403cafe6
lea ecx, [rax + 1]
cmp ecx, ebx
je 0x1403cafe6
lea r10d, [rax + 1]
movsxd rcx, r10d
movzx ecx, word [rsi + rcx*2]
cmp ecx, 0x2f
je 0x1403cb32a
cmp ecx, 0x5c
je 0x1403cb32a
jmp 0x1403cafe6
test r15b, 4
jne 0x1403cb069
lea ecx, [rax + 1]
cmp ecx, ebx
je 0x1403cb32a
lea ecx, [rax + 1]
movsxd rcx, ecx
movzx ecx, word [rsi + rcx*2]
cmp ecx, 0x2e
je 0x1403cb32a
cmp ecx, 0x2f
je 0x1403cb32a
cmp ecx, 0x5c
je 0x1403cb32a
cmp ecx, 0x3f
je 0x1403cb32a
cmp ecx, 0x23
je 0x1403cb32a
jmp 0x1403cafe6
mov r13d, 1
mov r12d, 1
or r15d, 0x20
jmp 0x1403cafe6
or r15d, 0x10
jmp 0x1403cb02c
test r13d, r13d
je 0x1403cb0f3
movabs rcx, 0x200000000
test qword [r14 + 0x28], rcx
jne 0x1403cb0fb
jmp 0x1403cafe6
cmp ecx, 0x21
je 0x1403cafab
jmp 0x1403cb0c3
mov r8d, 1
jmp 0x1403caf27
mov r13d, 1
jmp 0x1403cb0c8
or r15d, 0x40
jmp 0x1403cafe6
test r13d, r13d
jne 0x1403cafe6
mov r13d, 1
jmp 0x1403cafe6
test r13d, r13d
jne 0x1403cb006
jmp 0x1403cb002
cmp ecx, 0x7d
jle 0x1403cb10d
jmp 0x1403cafdd
test r12d, r12d
jne 0x1403cb13b
mov r12d, 1
lea ecx, [rax + 2]
cmp ecx, ebx
jge 0x1403cb104
lea ecx, [rax + 1]
movsxd rcx, ecx
movzx edx, word [rsi + rcx*2]
mov ecx, edx
mov dword [rsp + 0x20], eax
lea edx, [rax + 2]
movsxd rdx, edx
movzx edx, word [rsi + rdx*2]
call fcn.1403d0820
mov ecx, eax
cmp ecx, 0xffff
je 0x1403cb192
cmp ecx, 0x2e
je 0x1403cb17a
cmp ecx, 0x2f
je 0x1403cb17a
cmp ecx, 0x5c
jne 0x1403cb181
or r15d, 0x80
mov eax, dword [rsp + 0x20]
add eax, 2
mov r8d, dword [rsp + 0x24]
jmp 0x1403cafe6
mov eax, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x24]
jmp 0x1403cb104
cmp ecx, 0x9f
jg 0x1403caf50
jmp 0x1403cb0a5
test r8d, r8d
je 0x1403cb282
or r15d, 8
lea edx, [rcx - 0xd800]
cmp edx, 0x3ff
ja 0x1403cb237
lea edx, [rax + 1]
cmp edx, ebx
jge 0x1403cb27e
lea edx, [rax + 1]
movsxd rdx, edx
movzx edx, word [rsi + rdx*2]
add ecx, 0xffff2800
lea r10d, [rdx - 0xdc00]
or r10d, ecx
cmp r10d, 0x3ff
ja 0x1403cb20b
shl ecx, 0xa
lea ecx, [rcx + rdx + 0x2400]
mov edx, 1
jmp 0x1403cb20f
xor ecx, ecx
xor edx, edx
test edx, edx
je 0x1403cb233
movzx edx, cx
cmp edx, 0xfffe
jge 0x1403cb233
add ecx, 0xfff20000
cmp ecx, 0x1000
jb 0x1403cb233
mov ecx, 1
jmp 0x1403cb235
xor ecx, ecx
jmp 0x1403cb27a
lea edx, [rcx - 0xa0]
cmp edx, 0xd75f
jbe 0x1403cb275
lea edx, [rcx - 0xf900]
cmp edx, 0x4cf
jbe 0x1403cb275
lea edx, [rcx - 0xfdf0]
cmp edx, 0x1ff
jbe 0x1403cb275
add ecx, 0xffff2000
cmp ecx, 0x18ff
setbe cl
movzx ecx, cl
jmp 0x1403cb27a
mov ecx, 1
test ecx, ecx
jne 0x1403cb282
or r15d, 0x40
test r13d, r13d
mov r8d, dword [rsp + 0x24]
jne 0x1403cafe6
jmp 0x1403cb10d
cmp qword [r14 + 0x18], 0
je 0x1403caf75
mov rdx, qword [r14 + 0x18]
test byte [rdx + 0x10], 0x40
jne 0x1403caff0
jmp 0x1403caf75
test dword [r14 + 0x28], 0x20000000
jne 0x1403cb2e3
cmp qword [r14 + 0x18], 0
je 0x1403cafe6
mov rcx, qword [r14 + 0x18]
test byte [rcx + 0x10], 0x20
jne 0x1403cafe6
cmp r10d, 0xfffe
je 0x1403cafe6
or r15d, 0x20
mov r12d, 1
jmp 0x1403cb10d
mov r13d, 1
test dword [r14 + 0x28], 0x20000000
jne 0x1403cb31b
cmp qword [r14 + 0x18], 0
je 0x1403cafe6
mov rcx, qword [r14 + 0x18]
test byte [rcx + 0x10], 0x40
jne 0x1403cafe6
or r15d, 0x20
mov r12d, 1
jmp 0x1403cafe6
or r15d, 4
jmp 0x1403cafe6