Function at 0x14003f710
Capabilities:
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
call fcn.14004de00
mov rdi, rax
mov qword [rbp - 0x40], rax
lea rbx, [rax + 0x10]
mov rcx, qword [rax + 0x110]
cmp rcx, 0x40
mov qword [rbp - 0x48], rsi
jb 0x14003f795
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x14003f7f7
cmp qword [rdi + 0x160], 0
js 0x14003f7f7
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.14004df20
jmp 0x14003f802
movzx r9d, byte [rdi + rcx*4 + 0x10]
lea rdx, [rcx + 1]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x3f
mov byte [rbp - 0xb], r9b
jne 0x14003f810
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x14003f876
cmp qword [rdi + 0x160], 0
js 0x14003f876
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.14004df20
jmp 0x14003f881
mov rcx, rax
mov rdx, rbx
call fcn.1400422e0
movzx eax, byte [rbx]
mov byte [rbp - 0xb], al
mov r14d, 1
jmp 0x14003f884
movzx r10d, byte [rdi + rcx*4 + 0x14]
lea rdx, [rcx + 2]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x3e
mov byte [rbp - 0xa], r10b
jb 0x14003fa54
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x14003fab3
cmp qword [rdi + 0x160], 0
js 0x14003fab3
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.14004df20
jmp 0x14003fabe
mov rcx, rax
mov rdx, rbx
call fcn.1400422e0
xor r14d, r14d
movzx eax, byte [rbx + r14*4]
mov byte [rbp - 0xa], al
movzx eax, byte [rbx + r14*4 + 4]
mov byte [rbp - 7], al
lea rax, [r14 + 2]
add r14, 3
movzx eax, byte [rdi + rax*4 + 0x10]
mov byte [rbp - 9], al
mov qword [rdi + 0x110], r14
movzx edx, byte [rdi + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rdi + 0x110], rax
add r14, 2
movzx r8d, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], r14
movzx r9d, byte [rdi + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rdi + 0x110], rax
add r14, 2
movzx r10d, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], r14
movzx r11d, byte [rdi + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rdi + 0x110], rax
add r14, 2
movzx eax, byte [rdi + rax*4 + 0x10]
mov byte [rbp - 8], al
mov qword [rdi + 0x110], r14
movzx eax, byte [rdi + r14*4 + 0x10]
mov byte [rbp - 6], al
lea rax, [r14 + 1]
mov qword [rdi + 0x110], rax
add r14, 2
movzx r13d, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], r14
movzx esi, byte [rdi + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rdi + 0x110], rax
add r14, 2
mov r15d, dword [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], r14
lea rbx, [rbx + r14*4]
inc r14
mov r12d, dword [rbx]
mov qword [rdi + 0x110], r14
movzx eax, byte [rdi + r14*4 + 0x10]
inc r14
mov qword [rdi + 0x110], r14
movzx ecx, byte [rbp - 0xb]
mov byte [rbp - 0x1b], cl
movzx ecx, byte [rbp - 0xa]
mov byte [rbp - 0x1a], cl
movzx ecx, byte [rbp - 7]
mov byte [rbp - 0x19], cl
movzx ecx, byte [rbp - 9]
mov byte [rbp - 0x18], cl
mov byte [rbp - 0x17], dl
mov byte [rbp - 0x16], r8b
mov byte [rbp - 0x15], r9b
mov byte [rbp - 0x14], r10b
mov byte [rbp - 0x13], r11b
movzx ecx, byte [rbp - 8]
mov byte [rbp - 0x12], cl
movzx ecx, byte [rbp - 6]
mov byte [rbp - 0x11], cl
mov byte [rbp - 0x10], r13b
mov byte [rbp - 0xf], sil
mov byte [rbp - 0xe], r15b
mov byte [rbp - 0xd], r12b
mov byte [rbp - 0xc], al
dec qword [rdi]
jne 0x14003f9e9
dec qword [rdi + 8]
jne 0x14003f9e9
mov edx, 0x170
mov r8d, 0x10
mov rcx, rdi
call fcn.14003d050
mov rax, qword [0x1400d0e40]
mov qword [rbp - 0x30], rax
movups xmm0, xmmword [0x1400d0e30]
movaps xmmword [rbp - 0x40], xmm0
lea rdx, [rbp - 0x40]
lea r8, [rbp - 0x1b]
mov r9d, 0x10
mov rsi, qword [rbp - 0x48]
mov rcx, rsi
call fcn.14004da90
mov rdx, qword [rbp - 0x40]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x14003fa40
test rdx, rdx
je 0x14003fa40
mov rcx, qword [rbp - 0x38]
mov r8d, 1
call fcn.14003d050
mov rax, rsi
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx r11d, byte [rdi + rcx*4 + 0x18]
lea r8, [rcx + 3]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3d
mov byte [rbp - 7], r11b
jne 0x14003facb
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x14003fb21
cmp qword [rdi + 0x160], 0
js 0x14003fb21
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.14004df20
jmp 0x14003fb2c
mov rcx, rax
mov rdx, rbx
call fcn.1400422e0
movzx eax, byte [rbx]
mov byte [rbp - 7], al
mov eax, 1
jmp 0x14003fb2e
movzx esi, byte [rdi + rcx*4 + 0x1c]
lea r8, [rcx + 4]
mov qword [rdi + 0x110], r8
cmp rdx, 0x3e
mov byte [rbp - 9], sil
jne 0x14003fb37
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x14003fb68
cmp qword [rdi + 0x160], 0
js 0x14003fb68
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.14004df20
jmp 0x14003fb73
mov rcx, rax
mov rdx, rbx
call fcn.1400422e0
xor eax, eax
lea r14, [rax + 1]
jmp 0x14003f89d
movzx edx, byte [rdi + rcx*4 + 0x20]
mov byte [rbp - 1], dl
lea rdx, [rcx + 5]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x3b
jb 0x14003fb84
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.140041ea0
mov dl, byte [rbp - 1]
xor eax, eax
jmp 0x14003fb7b
mov rcx, rax
mov rdx, rbx
call fcn.1400422e0
movzx edx, byte [rbx]
mov eax, 1
lea r14, [rax + 1]
jmp 0x14003f8c1
movzx edx, byte [rdi + rcx*4 + 0x24]
mov byte [rbp - 2], dl
lea rdx, [rcx + 6]
mov qword [rdi + 0x110], rdx
cmp r8, 0x3e
jne 0x14003fbc1
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r9d, byte [rbx]
mov eax, 1
jmp 0x14003fbf9
movzx r9d, byte [rdi + rcx*4 + 0x28]
lea r8, [rcx + 7]
mov qword [rdi + 0x110], r8
cmp rcx, 0x39
jb 0x14003fc02
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov sil, r9b
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
mov r9d, esi
xor eax, eax
lea r14, [rax + 1]
jmp 0x14003f8e3
movzx r10d, byte [rdi + rcx*4 + 0x2c]
lea r8, [rcx + 8]
mov qword [rdi + 0x110], r8
cmp rdx, 0x3e
jne 0x14003fc49
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov sil, r9b
mov r14b, r10b
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
mov r10d, r14d
mov r9d, esi
movzx r11d, byte [rbx]
mov eax, 1
jmp 0x14003fc8e
movzx edx, byte [rdi + rcx*4 + 0x30]
mov byte [rbp - 3], dl
lea rdx, [rcx + 9]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x37
jb 0x14003fc97
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov sil, r9b
mov r14b, r10b
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r11d, byte [rbp - 3]
mov r10d, r14d
mov r9d, esi
xor eax, eax
lea r14, [rax + 1]
jmp 0x14003f905
movzx edx, byte [rdi + rcx*4 + 0x34]
mov byte [rbp - 8], dl
lea rdx, [rcx + 0xa]
mov qword [rdi + 0x110], rdx
cmp r8, 0x3e
jne 0x14003fce7
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov sil, r9b
mov r14b, r10b
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r11d, byte [rbp - 3]
mov r10d, r14d
mov r9d, esi
movzx eax, byte [rbx]
mov byte [rbp - 6], al
mov eax, 1
jmp 0x14003fd2e
movzx r8d, byte [rdi + rcx*4 + 0x38]
mov byte [rbp - 6], r8b
lea r8, [rcx + 0xb]
mov qword [rdi + 0x110], r8
cmp rcx, 0x35
jb 0x14003fd37
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov sil, r9b
mov r14b, r10b
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r11d, byte [rbp - 3]
mov r10d, r14d
mov r9d, esi
xor eax, eax
lea r14, [rax + 1]
jmp 0x14003f92c
movzx r13d, byte [rdi + rcx*4 + 0x3c]
lea r8, [rcx + 0xc]
mov qword [rdi + 0x110], r8
cmp rdx, 0x3e
jne 0x14003fd82
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov sil, r9b
mov r14b, r10b
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r11d, byte [rbp - 3]
mov r10d, r14d
mov r9d, esi
movzx esi, byte [rbx]
mov eax, 1
jmp 0x14003fdca
mov byte [rbp - 4], r10b
mov byte [rbp - 5], r9b
movzx esi, byte [rdi + rcx*4 + 0x40]
lea rdx, [rcx + 0xd]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x33
jb 0x14003fdd3
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r9d, byte [rbp - 5]
movzx r10d, byte [rbp - 4]
movzx r11d, byte [rbp - 3]
xor eax, eax
lea r14, [rax + 1]
jmp 0x14003f94e
mov r15d, dword [rdi + rcx*4 + 0x44]
lea rdx, [rcx + 0xe]
mov qword [rdi + 0x110], rdx
cmp r8, 0x3e
jne 0x14003fe1c
add rax, 0x120
mov r14d, 1
mov rcx, rax
mov rdx, rbx
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r9d, byte [rbp - 5]
movzx r10d, byte [rbp - 4]
movzx r11d, byte [rbp - 3]
jmp 0x14003f961
mov r12d, dword [rdi + rcx*4 + 0x48]
lea r14, [rcx + 0xf]
mov qword [rdi + 0x110], r14
cmp rcx, 0x31
jb 0x14003fe62
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.140041ea0
mov dl, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r9d, byte [rbp - 5]
movzx r10d, byte [rbp - 4]
movzx r11d, byte [rbp - 3]
xor r14d, r14d
jmp 0x14003f96b
movzx edx, byte [rbp - 1]
movzx r8d, byte [rbp - 2]
movzx r9d, byte [rbp - 5]
movzx r10d, byte [rbp - 4]
movzx r11d, byte [rbp - 3]
jmp 0x14003f96b