Function at 0x1803f06e0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, rcx
call fcn.1803f9d10
mov rdi, rax
lea rbx, [rax + 0x10]
mov rdx, qword [rax + 0x110]
cmp rdx, 0x40
mov qword [rsp + 0x48], rsi
jb 0x1803f0755
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1803f07b6
cmp qword [rdi + 0x160], 0
js 0x1803f07b6
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.1803f9d70
jmp 0x1803f07c1
movzx ecx, byte [rdi + rdx*4 + 0x10]
mov byte [rsp + 0x2f], cl
lea rcx, [rdx + 1]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x3f
jne 0x1803f07cb
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1803f082c
cmp qword [rdi + 0x160], 0
js 0x1803f082c
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.1803f9d70
jmp 0x1803f0837
mov rcx, rax
mov rdx, rbx
call fcn.1803eccb0
movzx edx, byte [rbx]
mov ecx, 1
jmp 0x1803f083e
movzx ebp, byte [rdi + rdx*4 + 0x14]
lea rcx, [rdx + 2]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x3e
jb 0x1803f0a14
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1803f0a7a
cmp qword [rdi + 0x160], 0
js 0x1803f0a7a
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.1803f9d70
jmp 0x1803f0a85
mov rcx, rax
mov rdx, rbx
call fcn.1803eccb0
xor ecx, ecx
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rbx + rcx*4]
movzx r9d, byte [rbx + rcx*4 + 4]
lea rax, [rcx + 2]
add rcx, 3
movzx r10d, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
movzx r11d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx ebx, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
movzx eax, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x36], al
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx eax, byte [rdi + rax*4 + 0x10]
mov byte [rsp + 0x37], al
mov qword [rdi + 0x110], rcx
movzx eax, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x35], al
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx esi, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
movzx r13d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx ebp, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
movzx r14d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
mov r15d, dword [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
mov r12d, dword [rdi + rcx*4 + 0x10]
inc rcx
mov qword [rdi + 0x110], rcx
movzx eax, byte [rdi + rcx*4 + 0x10]
inc rcx
mov qword [rdi + 0x110], rcx
mov byte [rsp + 0x38], dl
mov byte [rsp + 0x39], r8b
mov byte [rsp + 0x3a], r9b
mov byte [rsp + 0x3b], r10b
mov byte [rsp + 0x3c], r11b
mov byte [rsp + 0x3d], bl
movzx ecx, byte [rsp + 0x36]
mov byte [rsp + 0x3e], cl
movzx ecx, byte [rsp + 0x37]
mov byte [rsp + 0x3f], cl
movzx ecx, byte [rsp + 0x35]
mov byte [rsp + 0x40], cl
mov byte [rsp + 0x41], sil
mov byte [rsp + 0x42], r13b
mov byte [rsp + 0x43], bpl
mov byte [rsp + 0x44], r14b
mov byte [rsp + 0x45], r15b
mov byte [rsp + 0x46], r12b
mov byte [rsp + 0x47], al
dec qword [rdi]
jne 0x1803f09a2
dec qword [rdi + 8]
jne 0x1803f09a2
mov edx, 0x170
mov r8d, 0x10
mov rcx, rdi
call fcn.1802cbf20
mov rax, qword [0x1804e1518]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [0x1804e1508]
movaps xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x38]
mov r9d, 0x10
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
call fcn.1803f9c30
mov rdx, qword [rsp + 0x50]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x1803f0a00
test rdx, rdx
je 0x1803f0a00
mov rcx, qword [rsp + 0x58]
mov r8d, 1
call fcn.1802cbf20
mov rax, rsi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rsp + 0x30], bpl
movzx r9d, byte [rdi + rdx*4 + 0x18]
lea r8, [rdx + 3]
mov qword [rdi + 0x110], r8
cmp rdx, 0x3d
jne 0x1803f0a9f
mov ebp, r9d
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1803f0b00
cmp qword [rdi + 0x160], 0
js 0x1803f0b00
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.1803f9d70
jmp 0x1803f0b0b
mov rcx, rax
mov rdx, rbx
call fcn.1803eccb0
movzx r9d, byte [rbx]
mov eax, 1
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
mov r8d, ebp
jmp 0x1803f0851
movzx r10d, byte [rdi + rdx*4 + 0x1c]
lea r8, [rdx + 4]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3e
jne 0x1803f0b24
mov r14d, r10d
mov ebp, r9d
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1803f0b74
cmp qword [rdi + 0x160], 0
js 0x1803f0b74
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.1803f9d70
jmp 0x1803f0b7f
mov rcx, rax
mov rdx, rbx
call fcn.1803eccb0
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
mov r9d, ebp
jmp 0x1803f0851
movzx r11d, byte [rdi + rdx*4 + 0x20]
lea rcx, [rdx + 5]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x3b
jb 0x1803f0ba2
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov ebp, r10d
mov r14d, r11d
call fcn.1803ecb30
mov r11d, r14d
mov r10d, ebp
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
jmp 0x1803f0873
mov rcx, rax
mov rdx, rbx
call fcn.1803eccb0
movzx r11d, byte [rbx]
mov eax, 1
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
mov r9d, ebp
mov r10d, r14d
jmp 0x1803f0873
movzx ecx, byte [rdi + rdx*4 + 0x24]
mov byte [rsp + 0x31], cl
lea rcx, [rdx + 6]
mov qword [rdi + 0x110], rcx
cmp r8, 0x3e
jne 0x1803f0bee
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov ebp, r10d
mov r14d, r11d
call fcn.1803ecb30
mov r11d, r14d
mov r10d, ebp
mov r9d, ebx
movzx eax, byte [rdi + 0x10]
mov byte [rsp + 0x36], al
mov eax, 1
jmp 0x1803f0c2f
movzx r8d, byte [rdi + rdx*4 + 0x28]
mov byte [rsp + 0x36], r8b
lea r8, [rdx + 7]
mov qword [rdi + 0x110], r8
cmp rdx, 0x39
jb 0x1803f0c48
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov ebp, r10d
mov r14d, r11d
call fcn.1803ecb30
mov r11d, r14d
mov r10d, ebp
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
movzx ebx, byte [rsp + 0x31]
jmp 0x1803f0897
movzx r8d, byte [rdi + rdx*4 + 0x2c]
mov byte [rsp + 0x37], r8b
lea r8, [rdx + 8]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3e
jne 0x1803f0c96
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov esi, r10d
mov ebp, r11d
call fcn.1803ecb30
mov r11d, ebp
mov r10d, esi
mov r9d, ebx
movzx eax, byte [rdi + 0x10]
mov byte [rsp + 0x35], al
mov eax, 1
jmp 0x1803f0cd5
movzx ecx, byte [rdi + rdx*4 + 0x30]
mov byte [rsp + 0x35], cl
lea rcx, [rdx + 9]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x37
jb 0x1803f0cee
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov esi, r10d
mov ebp, r11d
call fcn.1803ecb30
mov r11d, ebp
mov r10d, esi
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
movzx ebx, byte [rsp + 0x31]
jmp 0x1803f08bf
movzx esi, byte [rdi + rdx*4 + 0x34]
lea rcx, [rdx + 0xa]
mov qword [rdi + 0x110], rcx
cmp r8, 0x3e
jne 0x1803f0d33
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov ebp, r10d
mov r14d, r11d
call fcn.1803ecb30
mov r11d, r14d
mov r10d, ebp
mov r9d, ebx
movzx r13d, byte [rdi + 0x10]
mov eax, 1
jmp 0x1803f0d6f
movzx r13d, byte [rdi + rdx*4 + 0x38]
lea r8, [rdx + 0xb]
mov qword [rdi + 0x110], r8
cmp rdx, 0x35
jb 0x1803f0d88
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov ebp, r10d
mov r14d, r11d
call fcn.1803ecb30
mov r11d, r14d
mov r10d, ebp
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
movzx ebx, byte [rsp + 0x31]
jmp 0x1803f08e0
movzx ebp, byte [rdi + rdx*4 + 0x3c]
lea r8, [rdx + 0xc]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3e
jne 0x1803f0de4
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r14d, r10d
mov r15d, r11d
call fcn.1803ecb30
mov r11d, r15d
mov r10d, r14d
mov r9d, ebx
movzx r14d, byte [rdi + 0x10]
mov eax, 1
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
movzx ebx, byte [rsp + 0x31]
jmp 0x1803f0901
mov byte [rsp + 0x32], r11b
mov byte [rsp + 0x33], r10b
mov byte [rsp + 0x34], r9b
movzx r14d, byte [rdi + rdx*4 + 0x40]
lea rcx, [rdx + 0xd]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x33
jb 0x1803f0e48
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.1803ecb30
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
movzx r9d, byte [rsp + 0x34]
movzx r10d, byte [rsp + 0x33]
movzx r11d, byte [rsp + 0x32]
movzx ebx, byte [rsp + 0x31]
jmp 0x1803f0901
mov r15d, dword [rdi + rdx*4 + 0x44]
lea rcx, [rdx + 0xe]
mov qword [rdi + 0x110], rcx
cmp r8, 0x3e
jne 0x1803f0e85
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.1803ecb30
mov r12d, dword [rdi + 0x10]
mov qword [rdi + 0x110], 1
mov ecx, 1
jmp 0x1803f0eae
mov r12d, dword [rdi + rdx*4 + 0x48]
lea rcx, [rdx + 0xf]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x31
jb 0x1803f0eae
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.1803ecb30
xor ecx, ecx
movzx edx, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x30]
movzx r9d, byte [rsp + 0x34]
movzx r10d, byte [rsp + 0x33]
movzx r11d, byte [rsp + 0x32]
movzx ebx, byte [rsp + 0x31]
jmp 0x1803f091c