Function at 0x18015a620
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rcx
call fcn.1801808b0
mov rdi, rax
lea rbx, [rax + 0x10]
mov rdx, qword [rax + 0x110]
cmp rdx, 0x40
jb 0x18015a68c
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18015a6ea
cmp qword [rdi + 0x160], 0
js 0x18015a6ea
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.180180910
jmp 0x18015a6f5
movzx ecx, byte [rdi + rdx*4 + 0x10]
mov byte [rsp + 0x2e], cl
lea rcx, [rdx + 1]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x3f
jne 0x18015a6ff
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18015a75c
cmp qword [rdi + 0x160], 0
js 0x18015a75c
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.180180910
jmp 0x18015a767
mov rcx, rax
mov rdx, rbx
call fcn.18015ba20
movzx edx, byte [rbx]
mov ecx, 1
jmp 0x18015a76e
movzx ebp, byte [rdi + rdx*4 + 0x14]
lea rcx, [rdx + 2]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x3e
jb 0x18015a785
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18015a7e3
cmp qword [rdi + 0x160], 0
js 0x18015a7e3
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.180180910
jmp 0x18015a7ee
mov rcx, rax
mov rdx, rbx
call fcn.18015ba20
xor ecx, ecx
movzx edx, byte [rsp + 0x2e]
movzx ebp, byte [rbx + rcx*4]
movzx r14d, byte [rbx + rcx*4 + 4]
lea rax, [rcx + 2]
add rcx, 3
jmp 0x18015a871
movzx r14d, byte [rdi + rdx*4 + 0x18]
lea r8, [rdx + 3]
mov qword [rdi + 0x110], r8
cmp rdx, 0x3d
jne 0x18015a7f9
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18015a85b
cmp qword [rdi + 0x160], 0
js 0x18015a85b
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.180180910
jmp 0x18015a866
mov rcx, rax
mov rdx, rbx
call fcn.18015ba20
movzx r14d, byte [rbx]
mov eax, 1
jmp 0x18015a868
movzx r15d, byte [rdi + rdx*4 + 0x1c]
lea r8, [rdx + 4]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3e
jne 0x18015aa17
add rax, 0x120
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18015aa58
cmp qword [rdi + 0x160], 0
js 0x18015aa58
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rbx
call fcn.180180910
jmp 0x18015aa63
mov rcx, rax
mov rdx, rbx
call fcn.18015ba20
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r15d, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
movzx r8d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx r9d, byte [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
movzx r10d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx r11d, byte [rdi + rax*4 + 0x10]
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 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 + 0x34], al
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
movzx eax, byte [rdi + rax*4 + 0x10]
mov byte [rsp + 0x36], al
mov qword [rdi + 0x110], rcx
movzx eax, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x33], al
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
add rcx, 2
mov r12d, dword [rdi + rax*4 + 0x10]
mov qword [rdi + 0x110], rcx
mov r13d, dword [rdi + rcx*4 + 0x10]
inc rcx
mov qword [rdi + 0x110], rcx
mov ebx, dword [rdi + rcx*4 + 0x10]
inc rcx
mov qword [rdi + 0x110], rcx
dec qword [rdi]
jne 0x18015a9b2
dec qword [rdi + 8]
jne 0x18015a9b2
mov byte [rsp + 0x2f], r15b
mov byte [rsp + 0x31], r14b
mov byte [rsp + 0x30], bpl
mov byte [rsp + 0x2e], dl
mov edx, 0x170
mov r15d, r8d
mov r8d, 0x10
mov rcx, rdi
mov edi, r9d
mov r14d, r10d
mov ebp, r11d
call fcn.180057680
mov r11d, ebp
mov r10d, r14d
mov r9d, edi
mov r8d, r15d
movzx edx, byte [rsp + 0x2e]
movzx ebp, byte [rsp + 0x30]
movzx r14d, byte [rsp + 0x31]
movzx r15d, byte [rsp + 0x2f]
mov byte [rsi], dl
mov byte [rsi + 1], bpl
mov byte [rsi + 2], r14b
mov byte [rsi + 3], r15b
mov byte [rsi + 4], r8b
mov byte [rsi + 5], r9b
mov byte [rsi + 6], r10b
mov byte [rsi + 7], r11b
movzx eax, byte [rsp + 0x35]
mov byte [rsi + 8], al
movzx eax, byte [rsp + 0x37]
mov byte [rsi + 9], al
movzx eax, byte [rsp + 0x34]
mov byte [rsi + 0xa], al
movzx eax, byte [rsp + 0x36]
mov byte [rsi + 0xb], al
movzx eax, byte [rsp + 0x33]
mov byte [rsi + 0xc], al
mov byte [rsi + 0xd], r12b
mov byte [rsi + 0xe], r13b
mov byte [rsi + 0xf], bl
mov rax, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx ecx, byte [rdi + rdx*4 + 0x20]
mov byte [rsp + 0x2f], cl
lea rcx, [rdx + 5]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x3b
jb 0x18015aa7a
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.18015b9f0
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
jmp 0x18015a893
mov rcx, rax
mov rdx, rbx
call fcn.18015ba20
movzx r8d, byte [rbx]
mov eax, 1
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
jmp 0x18015a893
movzx r9d, byte [rdi + rdx*4 + 0x24]
lea rcx, [rdx + 6]
mov qword [rdi + 0x110], rcx
cmp r8, 0x3e
jne 0x18015aab4
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
call fcn.18015b9f0
mov r9d, ebx
movzx r10d, byte [rdi + 0x10]
mov eax, 1
jmp 0x18015aaea
movzx r10d, byte [rdi + rdx*4 + 0x28]
lea r8, [rdx + 7]
mov qword [rdi + 0x110], r8
cmp rdx, 0x39
jb 0x18015aafe
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r12d, r10d
call fcn.18015b9f0
mov r10d, r12d
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
jmp 0x18015a8b5
movzx r11d, byte [rdi + rdx*4 + 0x2c]
lea r8, [rdx + 8]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3e
jne 0x18015ab47
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r12d, r10d
mov r13d, r11d
call fcn.18015b9f0
mov r11d, r13d
mov r10d, r12d
mov r9d, ebx
movzx eax, byte [rdi + 0x10]
mov byte [rsp + 0x35], al
mov eax, 1
jmp 0x18015ab86
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 0x18015ab9a
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r12d, r10d
mov r13d, r11d
call fcn.18015b9f0
mov r11d, r13d
mov r10d, r12d
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
jmp 0x18015a8da
movzx ecx, byte [rdi + rdx*4 + 0x34]
mov byte [rsp + 0x37], cl
lea rcx, [rdx + 0xa]
mov qword [rdi + 0x110], rcx
cmp r8, 0x3e
jne 0x18015abe6
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r12d, r10d
mov r13d, r11d
call fcn.18015b9f0
mov r11d, r13d
mov r10d, r12d
mov r9d, ebx
movzx eax, byte [rdi + 0x10]
mov byte [rsp + 0x34], al
mov eax, 1
jmp 0x18015ac27
movzx r8d, byte [rdi + rdx*4 + 0x38]
mov byte [rsp + 0x34], r8b
lea r8, [rdx + 0xb]
mov qword [rdi + 0x110], r8
cmp rdx, 0x35
jb 0x18015ac3b
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r12d, r10d
mov r13d, r11d
call fcn.18015b9f0
mov r11d, r13d
mov r10d, r12d
mov r9d, ebx
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
jmp 0x18015a902
movzx r8d, byte [rdi + rdx*4 + 0x3c]
mov byte [rsp + 0x36], r8b
lea r8, [rdx + 0xc]
mov qword [rdi + 0x110], r8
cmp rcx, 0x3e
jne 0x18015ac9b
add rax, 0x120
mov rcx, rax
mov rdx, rbx
mov ebx, r9d
mov r12d, r10d
mov r13d, r11d
call fcn.18015b9f0
mov r11d, r13d
mov r10d, r12d
mov r9d, ebx
movzx eax, byte [rdi + 0x10]
mov byte [rsp + 0x33], al
mov eax, 1
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
jmp 0x18015a92a
mov byte [rsp + 0x32], r11b
mov byte [rsp + 0x30], r10b
mov byte [rsp + 0x31], r9b
movzx ecx, byte [rdi + rdx*4 + 0x40]
mov byte [rsp + 0x33], cl
lea rcx, [rdx + 0xd]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x33
jb 0x18015acfd
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.18015b9f0
xor eax, eax
lea rcx, [rax + 1]
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
movzx r9d, byte [rsp + 0x31]
movzx r10d, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x32]
jmp 0x18015a92a
mov r12d, dword [rdi + rdx*4 + 0x44]
lea rcx, [rdx + 0xe]
mov qword [rdi + 0x110], rcx
cmp r8, 0x3e
jne 0x18015ad3a
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.18015b9f0
mov r13d, dword [rdi + 0x10]
mov qword [rdi + 0x110], 1
mov ecx, 1
jmp 0x18015ad63
mov r13d, dword [rdi + rdx*4 + 0x48]
lea rcx, [rdx + 0xf]
mov qword [rdi + 0x110], rcx
cmp rdx, 0x31
jb 0x18015ad63
add rax, 0x120
mov rcx, rax
mov rdx, rbx
call fcn.18015b9f0
xor ecx, ecx
movzx edx, byte [rsp + 0x2e]
movzx r8d, byte [rsp + 0x2f]
movzx r9d, byte [rsp + 0x31]
movzx r10d, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x32]
jmp 0x18015a945