Function at 0x18000b800
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.1800b3da0
mov r14, rax
mov rdi, rax
lea rbx, [rax + 0x10]
mov rcx, qword [rax + 0x110]
cmp rcx, 0x40
jb 0x18000b878
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000b8de
cmp qword [rdi + 0x160], rax
js 0x18000b8de
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000b8ec
movzx r8d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
cmp rcx, 0x3f
jne 0x18000b8f6
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000b963
cmp qword [rdi + 0x160], rax
js 0x18000b963
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000b971
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx edx, byte [rbx]
mov eax, 1
jmp 0x18000b975
movzx r9d, byte [rdi + rcx*4 + 0x14]
lea rax, [rcx + 2]
mov qword [rdi + 0x110], rax
cmp rcx, 0x3e
jb 0x18000bae4
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bb50
cmp qword [rdi + 0x160], rax
js 0x18000bb50
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bb5e
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor eax, eax
mov edx, ebp
movzx r8d, byte [rbx + rax*4]
movzx r9d, byte [rbx + rax*4 + 4]
lea rcx, [rax + 2]
add rax, 3
movzx r10d, byte [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
movzx r11d, byte [rdi + rax*4 + 0x10]
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx ebx, byte [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
movzx r14d, byte [rdi + rax*4 + 0x10]
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx ecx, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x37], cl
mov qword [rdi + 0x110], rax
movzx ecx, byte [rdi + rax*4 + 0x10]
mov byte [rsp + 0x35], cl
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx ecx, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x36], cl
mov qword [rdi + 0x110], rax
movzx ecx, byte [rdi + rax*4 + 0x10]
mov byte [rsp + 0x34], cl
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx r13d, byte [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
movzx ebp, byte [rdi + rax*4 + 0x10]
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
mov r15d, dword [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
mov r12d, dword [rdi + rax*4 + 0x10]
inc rax
mov qword [rdi + 0x110], rax
movzx ecx, byte [rdi + rax*4 + 0x10]
inc rax
mov qword [rdi + 0x110], rax
mov byte [rsi], dl
mov byte [rsi + 1], r8b
mov byte [rsi + 2], r9b
mov byte [rsi + 3], r10b
mov byte [rsi + 4], r11b
mov byte [rsi + 5], bl
mov byte [rsi + 6], r14b
movzx eax, byte [rsp + 0x37]
mov byte [rsi + 7], al
movzx eax, byte [rsp + 0x35]
mov byte [rsi + 8], al
movzx eax, byte [rsp + 0x36]
mov byte [rsi + 9], al
movzx eax, byte [rsp + 0x34]
mov byte [rsi + 0xa], al
mov byte [rsi + 0xb], r13b
mov byte [rsi + 0xc], bpl
mov byte [rsi + 0xd], r15b
mov byte [rsi + 0xe], r12b
mov byte [rsi + 0xf], cl
dec qword [rdi]
jne 0x18000bad0
dec qword [rdi + 8]
jne 0x18000bad0
mov edx, 0x170
mov r8d, 0x10
mov rcx, rdi
call fcn.18000b3d0
mov rax, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx r10d, byte [rdi + rcx*4 + 0x18]
lea rdx, [rcx + 3]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x3d
jne 0x18000bb75
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bbe4
cmp qword [rdi + 0x160], rax
js 0x18000bbe4
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bbf2
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx r9d, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
jmp 0x18000b988
movzx r11d, byte [rdi + rcx*4 + 0x1c]
lea rdx, [rcx + 4]
mov qword [rdi + 0x110], rdx
cmp rax, 0x3e
jne 0x18000bc05
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bc7b
cmp qword [rdi + 0x160], rax
js 0x18000bc7b
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bc89
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
jmp 0x18000b988
movzx eax, byte [rdi + rcx*4 + 0x20]
mov byte [rsp + 0x2d], al
lea rax, [rcx + 5]
mov qword [rdi + 0x110], rax
cmp rcx, 0x3b
jb 0x18000bca6
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bd1c
cmp qword [rdi + 0x160], rax
js 0x18000bd1c
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bd2a
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx r11d, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
jmp 0x18000b9aa
movzx eax, byte [rdi + rcx*4 + 0x24]
mov byte [rsp + 0x2e], al
lea rax, [rcx + 6]
mov qword [rdi + 0x110], rax
cmp rdx, 0x3e
jne 0x18000bd46
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bdbc
cmp qword [rdi + 0x160], rax
js 0x18000bdbc
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bdca
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
jmp 0x18000b9aa
movzx edx, byte [rdi + rcx*4 + 0x28]
mov byte [rsp + 0x2f], dl
lea rdx, [rcx + 7]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x39
jb 0x18000bdf2
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000be69
cmp qword [rdi + 0x160], rax
js 0x18000be69
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000be77
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx r14d, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
jmp 0x18000b9cb
movzx ebp, byte [rdi + rcx*4 + 0x2c]
lea rdx, [rcx + 8]
mov qword [rdi + 0x110], rdx
cmp rax, 0x3e
mov byte [rsp + 0x37], bpl
jne 0x18000be9e
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bf12
cmp qword [rdi + 0x160], rax
js 0x18000bf12
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bf20
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x18000b9cb
movzx r15d, byte [rdi + rcx*4 + 0x30]
lea rax, [rcx + 9]
mov qword [rdi + 0x110], rax
cmp rcx, 0x37
mov byte [rsp + 0x35], r15b
jb 0x18000bf31
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000bfa9
cmp qword [rdi + 0x160], rax
js 0x18000bfa9
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000bfb7
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx eax, byte [rbx]
mov byte [rsp + 0x35], al
mov ecx, 1
jmp 0x18000bfb9
movzx r12d, byte [rdi + rcx*4 + 0x34]
lea rax, [rcx + 0xa]
mov qword [rdi + 0x110], rax
cmp rdx, 0x3e
mov byte [rsp + 0x36], r12b
jne 0x18000bfde
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000c050
cmp qword [rdi + 0x160], rax
js 0x18000c050
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000c05e
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x18000b9f3
movzx edx, byte [rdi + rcx*4 + 0x38]
mov byte [rsp + 0x34], dl
lea rdx, [rcx + 0xb]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x35
jb 0x18000c06f
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000c0e6
cmp qword [rdi + 0x160], rax
js 0x18000c0e6
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000c0f4
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx eax, byte [rbx]
mov byte [rsp + 0x34], al
mov ecx, 1
jmp 0x18000c0f6
movzx r13d, byte [rdi + rcx*4 + 0x3c]
lea rdx, [rcx + 0xc]
mov qword [rdi + 0x110], rdx
cmp rax, 0x3e
mov byte [rsp + 0x31], r10b
mov byte [rsp + 0x30], r11b
jne 0x18000c11b
mov r12d, r9d
mov r15d, r8d
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000c187
cmp qword [rdi + 0x160], rax
js 0x18000c187
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000c195
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x18000ba1b
mov byte [rsp + 0x32], r9b
mov byte [rsp + 0x33], r8b
movzx ebp, byte [rdi + rcx*4 + 0x40]
lea rax, [rcx + 0xd]
mov qword [rdi + 0x110], rax
cmp rcx, 0x33
jb 0x18000c1ac
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000c212
cmp qword [rdi + 0x160], rax
js 0x18000c212
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000c220
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
movzx ebp, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, r15d
mov r8d, r12d
jmp 0x18000c231
mov r15d, dword [rdi + rcx*4 + 0x44]
lea rax, [rcx + 0xe]
mov qword [rdi + 0x110], rax
cmp rdx, 0x3e
jne 0x18000c253
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000c2aa
cmp qword [rdi + 0x160], rax
js 0x18000c2aa
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000c2b8
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor ecx, ecx
lea rax, [rcx + 1]
movzx edx, byte [rsp + 0x33]
movzx r8d, byte [rsp + 0x32]
movzx r9d, byte [rsp + 0x31]
movzx r10d, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x18000ba3c
mov r12d, dword [rdi + rcx*4 + 0x48]
lea rax, [rcx + 0xf]
mov qword [rdi + 0x110], rax
cmp rcx, 0x31
jb 0x18000c2de
add r14, 0x120
call fcn.180011560
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18000c2ce
cmp qword [rdi + 0x160], rax
js 0x18000c2ce
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800b4130
jmp 0x18000c2dc
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
mov r12d, dword [rdi + 0x10]
mov qword [rdi + 0x110], 1
mov eax, 1
jmp 0x18000c2de
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.18000b4d0
xor eax, eax
movzx edx, byte [rsp + 0x33]
movzx r8d, byte [rsp + 0x32]
movzx r9d, byte [rsp + 0x31]
movzx r10d, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x18000ba57