Function at 0x1800c55d0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r14
mov rbp, rsp
sub rsp, 0x30
movsxd r14, r8d
mov rsi, rdx
mov qword [rbp + 0x38], 0
mov rbx, rcx
cmp r14d, 0xa
ja case.default.0x1800c561b
mov qword [rsp + 0x50], rdi
lea rdi, [rcx + 4]
mov qword [rsp + 0x58], r12
lea r12, [0x180000000]
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
cmp dword [rdi], 0x3f
jne case.0x1800c5c3b.1
mov rcx, rbx
call fcn.1800c65d0
xor r8d, r8d
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rdi], 0x2c
je 0x1800c5622
cmp dword [rdi], 0x3a
mov rcx, rbx
jne case.default.0x1800c5686
call fcn.1800c65d0
xor r8d, r8d
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi], 0
lea rdi, [rbx + 4]
mov ecx, dword [rbp - 0xc]
mov eax, dword [rbp - 0x10]
cmovne eax, dword [rbp + 0x38]
cmp dword [rbp + 0x3c], ecx
mov dword [rsi], eax
cmova ecx, dword [rbp + 0x3c]
mov dword [rsi + 4], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
cmp dword [rdi], 0x104
jne case.0x1800c5c3b.2
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 2
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi], 0
jne case.default.0x1800c56cb
cmp dword [rbp + 0x38], 0
jne case.default.0x1800c56cb
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
xor eax, eax
mov dword [rsi], eax
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
mov eax, 1
mov dword [rsi], eax
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
cmp dword [rdi], 0x105
jne case.0x1800c5c3b.3
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 3
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi], 0
je case.default.0x1800c572e
cmp dword [rbp + 0x38], 0
je case.default.0x1800c572e
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
mov eax, 1
mov dword [rsi], eax
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
xor eax, eax
mov dword [rsi], eax
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
cmp dword [rdi], 0x7c
jne case.0x1800c5c3b.4
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 4
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
or dword [rsi], eax
jmp 0x1800c5b03
cmp dword [rdi], 0x5e
jne case.0x1800c5c3b.5
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 5
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
xor dword [rsi], eax
jmp 0x1800c5b03
cmp dword [rdi], 0x26
jne case.0x1800c5c3b.6
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 6
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
and dword [rsi], eax
jmp 0x1800c5b03
cmp dword [rdi], 0x106
jne case.default.0x1800c5803
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 7
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
mov dword [rsi + 4], 9
sete cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
cmp dword [rdi], 0x107
jne case.0x1800c5c3b.7
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 7
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
mov dword [rsi + 4], 9
setne cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
cmp dword [rdi], 0x3c
jne 0x1800c58b2
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi + 4], 9
jne case.default.0x1800c5890
cmp dword [rbp + 0x3c], 9
jne case.default.0x1800c5890
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setl cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setb cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
cmp dword [rdi], 0x3e
jne 0x1800c591d
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi + 4], 9
jne case.default.0x1800c58fb
cmp dword [rbp + 0x3c], 9
jne case.default.0x1800c58fb
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setg cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
seta cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
cmp dword [rdi], 0x108
jne 0x1800c598b
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi + 4], 9
jne case.default.0x1800c5969
cmp dword [rbp + 0x3c], 9
jne case.default.0x1800c5969
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setle cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setbe cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
cmp dword [rdi], 0x109
jne case.0x1800c5c3b.8
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi + 4], 9
jne case.default.0x1800c59d7
cmp dword [rbp + 0x3c], 9
jne case.default.0x1800c59d7
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setge cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rsi], eax
setae cl
mov dword [rsi], ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], 9
jmp rcx
cmp dword [rdi], 0x10a
jne case.default.0x1800c5a2b
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 9
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov ecx, dword [rbp + 0x38]
shl dword [rsi], cl
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
cmp dword [rdi], 0x10b
jne case.0x1800c5c3b.9
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 9
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
cmp dword [rsi + 4], 9
mov ecx, dword [rbp + 0x38]
jne case.default.0x1800c5a65
sar dword [rsi], cl
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
shr dword [rsi], cl
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
jmp rcx
cmp dword [rdi], 0x2b
jne 0x1800c5a9c
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 0xa
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
add dword [rsi], eax
jmp 0x1800c5b03
cmp dword [rdi], 0x2d
jne case.0x1800c5a2b.10
mov rcx, rbx
call fcn.1800c65d0
mov r8d, 0xa
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6470
mov eax, dword [rbp + 0x38]
sub dword [rsi], eax
jmp 0x1800c5b03
cmp dword [rdi], 0x2a
jne 0x1800c5b1f
mov rcx, rbx
call fcn.1800c65d0
mov eax, dword [rbx + 0x6c]
inc eax
mov dword [rbx + 0x6c], eax
cmp eax, 0x14
jg 0x1800c5c6e
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6050
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c5e20
dec dword [rbx + 0x6c]
mov eax, dword [rbp + 0x38]
imul eax, dword [rsi]
mov dword [rsi], eax
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rsi + 4]
jbe case.default.0x1800c5b1d
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
add rcx, r12
mov dword [rsi + 4], eax
jmp rcx
cmp dword [rdi], 0x2f
jne 0x1800c5bb2
mov rcx, rbx
call fcn.1800c65d0
mov eax, dword [rbx + 0x6c]
inc eax
mov dword [rbx + 0x6c], eax
cmp eax, 0x14
jg 0x1800c5c6e
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6050
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c5e20
dec dword [rbx + 0x6c]
mov edx, dword [rsi + 4]
mov eax, dword [rbp + 0x3c]
cmp eax, edx
jbe 0x1800c5b6b
mov dword [rsi + 4], eax
mov edx, eax
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x1800c5c60
mov eax, dword [rsi]
cmp edx, 9
jne 0x1800c5b9f
cmp eax, 0x80000000
jne 0x1800c5b8d
cmp ecx, 0xffffffff
je 0x1800c5c60
cdq
idiv ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
mov dword [rsi], eax
add rcx, r12
jmp rcx
xor edx, edx
div ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
mov dword [rsi], eax
add rcx, r12
jmp rcx
cmp dword [rdi], 0x25
jne 0x1800c5c3d
mov rcx, rbx
call fcn.1800c65d0
mov eax, dword [rbx + 0x6c]
inc eax
mov dword [rbx + 0x6c], eax
cmp eax, 0x14
jg 0x1800c5c6e
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c6050
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800c5e20
dec dword [rbx + 0x6c]
mov edx, dword [rsi + 4]
mov eax, dword [rbp + 0x3c]
cmp eax, edx
jbe 0x1800c5bfe
mov dword [rsi + 4], eax
mov edx, eax
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x1800c5c60
mov eax, dword [rsi]
cmp edx, 9
jne 0x1800c5c2a
cmp eax, 0x80000000
jne 0x1800c5c18
cmp ecx, 0xffffffff
je 0x1800c5c60
cdq
idiv ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
mov dword [rsi], edx
add rcx, r12
jmp rcx
xor edx, edx
div ecx
mov ecx, dword [r12 + r14*4 + 0xc5c7c]
mov dword [rsi], edx
add rcx, r12
jmp rcx
mov rdi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
mov edx, 0x3a
call fcn.1800c5450
int3
mov edx, 0x219
mov rcx, rbx
call fcn.1800c53f0
int3
mov edx, 0x8d0
mov rcx, rbx
call fcn.1800c53f0
int3