Function at 0x180018630
Capabilities:
Parse credit card information

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
xor cl, cl
cmp dword [rdi + 0x60], 0xffff
je 0x180018a6a
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
xor esi, esi
mov qword [rsp + 0x30], rbx
lea rbp, [0x1800fac98]
mov eax, dword [rdi + 0x60]
cmp eax, 0x7c
je 0x180018a52
cmp eax, 0x29
jne 0x18001868b
cmp dword [rdi + 0x1c], esi
jne 0x180018a52
test dword [rdi + 0x64], 0x10000000
jne 0x18001868b
lea ecx, [rax - 0x24]
jmp 0x180018a36
cmp eax, 0x2e
jne 0x180018746
lea ecx, [rax - 0xe]
call fcn.1800bfab0
mov r11, rax
test rax, rax
je 0x1800186b9
mov qword [rax], rbp
mov qword [rax + 8], 5
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
jmp 0x1800186bc
mov r11, rsi
mov rax, qword [rdi + 0x30]
mov qword [r11 + 0x18], rax
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1800186e1
mov qword [r11 + 0x10], rcx
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0x10]
mov qword [rcx + 0x18], r11
mov rax, qword [rdi + 0x30]
mov qword [rax + 0x10], r11
mov qword [rdi + 0x30], r11
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180018739
cmp word [rax], 0x5c
jne 0x180018735
add rax, 2
cmp rax, rcx
je 0x18001871d
test byte [rdi + 0x64], 8
jne 0x18001871d
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180018732
cmp cx, 0x29
je 0x180018732
test byte [rdi + 0x64], 0x10
jne 0x180018735
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180018732
cmp cx, 0x7d
jne 0x180018735
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.1800169b0
jmp 0x180018a3b
cmp eax, 0x5c
jne 0x180018857
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x18001879b
cmp word [rax], 0x5c
jne 0x180018797
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x18001877f
test byte [rdi + 0x64], 8
jne 0x18001877f
movzx eax, word [rdx]
cmp ax, 0x28
je 0x180018794
cmp ax, 0x29
je 0x180018794
test byte [rdi + 0x64], 0x10
jne 0x180018797
movzx eax, word [rdx]
cmp ax, 0x7b
je 0x180018794
cmp ax, 0x7d
jne 0x180018797
mov qword [rdi], rdx
add qword [rdi], 2
mov rcx, rdi
call fcn.1800169b0
mov eax, dword [rdi + 0x64]
and eax, 0x80
je 0x18001881b
cmp word [rdi + 0x5e], 0x62
jne 0x18001881b
lea rcx, [rdi + 0x28]
mov edx, 4
call fcn.180018b30
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
cmp rcx, rax
je 0x18001880e
cmp word [rcx], 0x5c
jne 0x18001880a
add rcx, 2
cmp rcx, rax
je 0x1800187f2
test byte [rdi + 0x64], 8
jne 0x1800187f2
movzx eax, word [rcx]
cmp ax, 0x28
je 0x180018807
cmp ax, 0x29
je 0x180018807
test byte [rdi + 0x64], 0x10
jne 0x18001880a
movzx eax, word [rcx]
cmp ax, 0x7b
je 0x180018807
cmp ax, 0x7d
jne 0x18001880a
mov qword [rdi], rcx
add qword [rdi], 2
mov rcx, rdi
call fcn.1800169b0
jmp 0x180018a43
test eax, eax
je 0x18001884a
cmp word [rdi + 0x5e], 0x42
jne 0x18001884a
lea rcx, [rdi + 0x28]
mov edx, 4
call fcn.180018b30
mov r11, qword [rdi + 0x30]
mov rcx, rdi
xor dword [r11 + 0xc], 1
call fcn.1800185d0
jmp 0x180018a43
mov rcx, rdi
call fcn.18001a7e0
jmp 0x180018a3b
cmp eax, 0x5b
jne 0x180018925
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x1800188ac
cmp word [rax], 0x5c
jne 0x1800188a8
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x180018890
test byte [rdi + 0x64], 8
jne 0x180018890
movzx eax, word [rdx]
cmp ax, 0x28
je 0x1800188a5
cmp ax, 0x29
je 0x1800188a5
test byte [rdi + 0x64], 0x10
jne 0x1800188a8
movzx eax, word [rdx]
cmp ax, 0x7b
je 0x1800188a5
cmp ax, 0x7d
jne 0x1800188a8
mov qword [rdi], rdx
add qword [rdi], 2
mov rcx, rdi
call fcn.1800169b0
mov rcx, rdi
call fcn.18001a720
cmp dword [rdi + 0x60], 0x5d
je 0x1800188cc
mov ecx, 4
call fcn.1800d52a8
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180018918
cmp word [rax], 0x5c
jne 0x180018914
add rax, 2
cmp rax, rcx
je 0x1800188fc
test byte [rdi + 0x64], 8
jne 0x1800188fc
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180018911
cmp cx, 0x29
je 0x180018911
test byte [rdi + 0x64], 0x10
jne 0x180018914
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180018911
cmp cx, 0x7d
jne 0x180018914
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.1800169b0
jmp 0x180018a3b
cmp eax, 0x28
jne 0x1800189a7
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180018976
cmp word [rax], 0x5c
jne 0x180018972
add rax, 2
cmp rax, rcx
je 0x18001895a
test byte [rdi + 0x64], 8
jne 0x18001895a
movzx ecx, word [rax]
cmp cx, 0x28
je 0x18001896f
cmp cx, 0x29
je 0x18001896f
test byte [rdi + 0x64], 0x10
jne 0x180018972
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x18001896f
cmp cx, 0x7d
jne 0x180018972
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.1800169b0
mov rcx, rdi
call fcn.18001a8b0
mov edx, 0x29
mov rcx, rdi
lea r8d, [rdx - 0x24]
movzx ebx, al
call fcn.18001a6b0
test bl, bl
je 0x180018a43
jmp 0x180018a3b
cmp eax, 0x5e
jne 0x1800189c5
lea rcx, [rdi + 0x28]
lea edx, [rax - 0x5c]
call fcn.180018b30
mov rcx, rdi
call fcn.1800185d0
jmp 0x180018a43
cmp eax, 0x24
jne 0x1800189e0
lea rcx, [rdi + 0x28]
lea edx, [rax - 0x21]
call fcn.180018b30
mov rcx, rdi
call fcn.1800185d0
jmp 0x180018a43
cmp eax, 0x2a
je 0x180018a31
cmp eax, 0x2b
je 0x180018a31
cmp eax, 0x3f
je 0x180018a31
cmp eax, 0x7b
je 0x180018a31
cmp eax, 0x7d
jne 0x180018a07
test dword [rdi + 0x64], 0x10000000
jne 0x180018a07
lea ecx, [rax - 0x77]
jmp 0x180018a36
cmp eax, 0x5d
jne 0x180018a1a
test dword [rdi + 0x64], 0x10000000
jne 0x180018a1a
lea ecx, [rax - 0x59]
jmp 0x180018a36
movzx edx, word [rdi + 0x5e]
lea rcx, [rdi + 0x28]
call fcn.18001abb0
mov rcx, rdi
call fcn.1800185d0
jmp 0x180018a3b
mov ecx, 0xa
call fcn.1800d52a8
mov rcx, rdi
call fcn.18001aa10
cmp dword [rdi + 0x60], 0xffff
mov cl, 1
jne 0x180018660
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
movzx eax, cl
add rsp, 0x20
pop rdi
ret
movzx eax, cl
add rsp, 0x20
pop rdi
ret