Function at 0x180059b90
Capabilities:
Parse credit card information

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
xor cl, cl
cmp dword [rdi + 0x60], 0xffff
je 0x180059fca
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
xor esi, esi
mov qword [rsp + 0x30], rbx
lea rbp, [0x18010a088]
mov eax, dword [rdi + 0x60]
cmp eax, 0x7c
je 0x180059fb2
cmp eax, 0x29
jne 0x180059beb
cmp dword [rdi + 0x1c], esi
jne 0x180059fb2
test dword [rdi + 0x64], 0x10000000
jne 0x180059beb
lea ecx, [rax - 0x24]
jmp 0x180059f96
cmp eax, 0x2e
jne 0x180059ca6
lea ecx, [rax - 0xe]
call fcn.18005f544
mov r11, rax
test rax, rax
je 0x180059c19
mov qword [rax], rbp
mov qword [rax + 8], 5
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
jmp 0x180059c1c
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 0x180059c41
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 0x180059c99
cmp word [rax], 0x5c
jne 0x180059c95
add rax, 2
cmp rax, rcx
je 0x180059c7d
test byte [rdi + 0x64], 8
jne 0x180059c7d
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180059c92
cmp cx, 0x29
je 0x180059c92
test byte [rdi + 0x64], 0x10
jne 0x180059c95
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180059c92
cmp cx, 0x7d
jne 0x180059c95
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.180064560
jmp 0x180059f9b
cmp eax, 0x5c
jne 0x180059db7
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180059cfb
cmp word [rax], 0x5c
jne 0x180059cf7
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x180059cdf
test byte [rdi + 0x64], 8
jne 0x180059cdf
movzx eax, word [rdx]
cmp ax, 0x28
je 0x180059cf4
cmp ax, 0x29
je 0x180059cf4
test byte [rdi + 0x64], 0x10
jne 0x180059cf7
movzx eax, word [rdx]
cmp ax, 0x7b
je 0x180059cf4
cmp ax, 0x7d
jne 0x180059cf7
mov qword [rdi], rdx
add qword [rdi], 2
mov rcx, rdi
call fcn.180064560
mov eax, dword [rdi + 0x64]
and eax, 0x80
je 0x180059d7b
cmp word [rdi + 0x5e], 0x62
jne 0x180059d7b
lea rcx, [rdi + 0x28]
mov edx, 4
call fcn.180028820
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
cmp rcx, rax
je 0x180059d6e
cmp word [rcx], 0x5c
jne 0x180059d6a
add rcx, 2
cmp rcx, rax
je 0x180059d52
test byte [rdi + 0x64], 8
jne 0x180059d52
movzx eax, word [rcx]
cmp ax, 0x28
je 0x180059d67
cmp ax, 0x29
je 0x180059d67
test byte [rdi + 0x64], 0x10
jne 0x180059d6a
movzx eax, word [rcx]
cmp ax, 0x7b
je 0x180059d67
cmp ax, 0x7d
jne 0x180059d6a
mov qword [rdi], rcx
add qword [rdi], 2
mov rcx, rdi
call fcn.180064560
jmp 0x180059fa3
test eax, eax
je 0x180059daa
cmp word [rdi + 0x5e], 0x42
jne 0x180059daa
lea rcx, [rdi + 0x28]
mov edx, 4
call fcn.180028820
mov r11, qword [rdi + 0x30]
mov rcx, rdi
xor dword [r11 + 0xc], 1
call fcn.18005a240
jmp 0x180059fa3
mov rcx, rdi
call fcn.180015270
jmp 0x180059f9b
cmp eax, 0x5b
jne 0x180059e85
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180059e0c
cmp word [rax], 0x5c
jne 0x180059e08
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x180059df0
test byte [rdi + 0x64], 8
jne 0x180059df0
movzx eax, word [rdx]
cmp ax, 0x28
je 0x180059e05
cmp ax, 0x29
je 0x180059e05
test byte [rdi + 0x64], 0x10
jne 0x180059e08
movzx eax, word [rdx]
cmp ax, 0x7b
je 0x180059e05
cmp ax, 0x7d
jne 0x180059e08
mov qword [rdi], rdx
add qword [rdi], 2
mov rcx, rdi
call fcn.180064560
mov rcx, rdi
call fcn.180046af0
cmp dword [rdi + 0x60], 0x5d
je 0x180059e2c
mov ecx, 4
call fcn.180051808
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180059e78
cmp word [rax], 0x5c
jne 0x180059e74
add rax, 2
cmp rax, rcx
je 0x180059e5c
test byte [rdi + 0x64], 8
jne 0x180059e5c
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180059e71
cmp cx, 0x29
je 0x180059e71
test byte [rdi + 0x64], 0x10
jne 0x180059e74
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180059e71
cmp cx, 0x7d
jne 0x180059e74
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.180064560
jmp 0x180059f9b
cmp eax, 0x28
jne 0x180059f07
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x180059ed6
cmp word [rax], 0x5c
jne 0x180059ed2
add rax, 2
cmp rax, rcx
je 0x180059eba
test byte [rdi + 0x64], 8
jne 0x180059eba
movzx ecx, word [rax]
cmp cx, 0x28
je 0x180059ecf
cmp cx, 0x29
je 0x180059ecf
test byte [rdi + 0x64], 0x10
jne 0x180059ed2
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x180059ecf
cmp cx, 0x7d
jne 0x180059ed2
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.180064560
mov rcx, rdi
call fcn.1800215d0
mov edx, 0x29
mov rcx, rdi
lea r8d, [rdx - 0x24]
movzx ebx, al
call fcn.180061330
test bl, bl
je 0x180059fa3
jmp 0x180059f9b
cmp eax, 0x5e
jne 0x180059f25
lea rcx, [rdi + 0x28]
lea edx, [rax - 0x5c]
call fcn.180028820
mov rcx, rdi
call fcn.18005a240
jmp 0x180059fa3
cmp eax, 0x24
jne 0x180059f40
lea rcx, [rdi + 0x28]
lea edx, [rax - 0x21]
call fcn.180028820
mov rcx, rdi
call fcn.18005a240
jmp 0x180059fa3
cmp eax, 0x2a
je 0x180059f91
cmp eax, 0x2b
je 0x180059f91
cmp eax, 0x3f
je 0x180059f91
cmp eax, 0x7b
je 0x180059f91
cmp eax, 0x7d
jne 0x180059f67
test dword [rdi + 0x64], 0x10000000
jne 0x180059f67
lea ecx, [rax - 0x77]
jmp 0x180059f96
cmp eax, 0x5d
jne 0x180059f7a
test dword [rdi + 0x64], 0x10000000
jne 0x180059f7a
lea ecx, [rax - 0x59]
jmp 0x180059f96
movzx edx, word [rdi + 0x5e]
lea rcx, [rdi + 0x28]
call fcn.18001a570
mov rcx, rdi
call fcn.18005a240
jmp 0x180059f9b
mov ecx, 0xa
call fcn.180051808
mov rcx, rdi
call fcn.18005e100
cmp dword [rdi + 0x60], 0xffff
mov cl, 1
jne 0x180059bc0
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