Function at 0x140011820
Capabilities:
Parse credit card information

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
xor cl, cl
cmp dword [rdi + 0x60], 0xffff
je 0x140011c5a
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
xor esi, esi
mov qword [rsp + 0x30], rbx
lea rbp, vtable.std::tr1::_Node_base.0
mov eax, dword [rdi + 0x60]
cmp eax, 0x7c
je 0x140011c42
cmp eax, 0x29
jne 0x14001187b
cmp dword [rdi + 0x1c], esi
jne 0x140011c42
test dword [rdi + 0x64], 0x10000000
jne 0x14001187b
lea ecx, [rax - 0x24]
jmp 0x140011c26
cmp eax, 0x2e
jne 0x140011936
lea ecx, [rax - 0xe]
call fcn.14004b164
mov r11, rax
test rax, rax
je 0x1400118a9
mov qword [rax], rbp
mov qword [rax + 8], 5
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
jmp 0x1400118ac
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 0x1400118d1
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 0x140011929
cmp word [rax], 0x5c
jne 0x140011925
add rax, 2
cmp rax, rcx
je 0x14001190d
test byte [rdi + 0x64], 8
jne 0x14001190d
movzx ecx, word [rax]
cmp cx, 0x28
je 0x140011922
cmp cx, 0x29
je 0x140011922
test byte [rdi + 0x64], 0x10
jne 0x140011925
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x140011922
cmp cx, 0x7d
jne 0x140011925
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.14000ffa0
jmp 0x140011c2b
cmp eax, 0x5c
jne 0x140011a47
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x14001198b
cmp word [rax], 0x5c
jne 0x140011987
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x14001196f
test byte [rdi + 0x64], 8
jne 0x14001196f
movzx eax, word [rdx]
cmp ax, 0x28
je 0x140011984
cmp ax, 0x29
je 0x140011984
test byte [rdi + 0x64], 0x10
jne 0x140011987
movzx eax, word [rdx]
cmp ax, 0x7b
je 0x140011984
cmp ax, 0x7d
jne 0x140011987
mov qword [rdi], rdx
add qword [rdi], 2
mov rcx, rdi
call fcn.14000ffa0
mov eax, dword [rdi + 0x64]
and eax, 0x80
je 0x140011a0b
cmp word [rdi + 0x5e], 0x62
jne 0x140011a0b
lea rcx, [rdi + 0x28]
mov edx, 4
call fcn.140011e50
mov rcx, qword [rdi]
mov rax, qword [rdi + 0x10]
cmp rcx, rax
je 0x1400119fe
cmp word [rcx], 0x5c
jne 0x1400119fa
add rcx, 2
cmp rcx, rax
je 0x1400119e2
test byte [rdi + 0x64], 8
jne 0x1400119e2
movzx eax, word [rcx]
cmp ax, 0x28
je 0x1400119f7
cmp ax, 0x29
je 0x1400119f7
test byte [rdi + 0x64], 0x10
jne 0x1400119fa
movzx eax, word [rcx]
cmp ax, 0x7b
je 0x1400119f7
cmp ax, 0x7d
jne 0x1400119fa
mov qword [rdi], rcx
add qword [rdi], 2
mov rcx, rdi
call fcn.14000ffa0
jmp 0x140011c33
test eax, eax
je 0x140011a3a
cmp word [rdi + 0x5e], 0x42
jne 0x140011a3a
lea rcx, [rdi + 0x28]
mov edx, 4
call fcn.140011e50
mov r11, qword [rdi + 0x30]
mov rcx, rdi
xor dword [r11 + 0xc], 1
call fcn.1400117c0
jmp 0x140011c33
mov rcx, rdi
call fcn.140012cb0
jmp 0x140011c2b
cmp eax, 0x5b
jne 0x140011b15
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x140011a9c
cmp word [rax], 0x5c
jne 0x140011a98
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x140011a80
test byte [rdi + 0x64], 8
jne 0x140011a80
movzx eax, word [rdx]
cmp ax, 0x28
je 0x140011a95
cmp ax, 0x29
je 0x140011a95
test byte [rdi + 0x64], 0x10
jne 0x140011a98
movzx eax, word [rdx]
cmp ax, 0x7b
je 0x140011a95
cmp ax, 0x7d
jne 0x140011a98
mov qword [rdi], rdx
add qword [rdi], 2
mov rcx, rdi
call fcn.14000ffa0
mov rcx, rdi
call fcn.140012bf0
cmp dword [rdi + 0x60], 0x5d
je 0x140011abc
mov ecx, 4
call fcn.14002d0a8
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x140011b08
cmp word [rax], 0x5c
jne 0x140011b04
add rax, 2
cmp rax, rcx
je 0x140011aec
test byte [rdi + 0x64], 8
jne 0x140011aec
movzx ecx, word [rax]
cmp cx, 0x28
je 0x140011b01
cmp cx, 0x29
je 0x140011b01
test byte [rdi + 0x64], 0x10
jne 0x140011b04
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x140011b01
cmp cx, 0x7d
jne 0x140011b04
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.14000ffa0
jmp 0x140011c2b
cmp eax, 0x28
jne 0x140011b97
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x10]
cmp rax, rcx
je 0x140011b66
cmp word [rax], 0x5c
jne 0x140011b62
add rax, 2
cmp rax, rcx
je 0x140011b4a
test byte [rdi + 0x64], 8
jne 0x140011b4a
movzx ecx, word [rax]
cmp cx, 0x28
je 0x140011b5f
cmp cx, 0x29
je 0x140011b5f
test byte [rdi + 0x64], 0x10
jne 0x140011b62
movzx ecx, word [rax]
cmp cx, 0x7b
je 0x140011b5f
cmp cx, 0x7d
jne 0x140011b62
mov qword [rdi], rax
add qword [rdi], 2
mov rcx, rdi
call fcn.14000ffa0
mov rcx, rdi
call fcn.140012d80
mov edx, 0x29
mov rcx, rdi
lea r8d, [rdx - 0x24]
movzx ebx, al
call fcn.140012b80
test bl, bl
je 0x140011c33
jmp 0x140011c2b
cmp eax, 0x5e
jne 0x140011bb5
lea rcx, [rdi + 0x28]
lea edx, [rax - 0x5c]
call fcn.140011e50
mov rcx, rdi
call fcn.1400117c0
jmp 0x140011c33
cmp eax, 0x24
jne 0x140011bd0
lea rcx, [rdi + 0x28]
lea edx, [rax - 0x21]
call fcn.140011e50
mov rcx, rdi
call fcn.1400117c0
jmp 0x140011c33
cmp eax, 0x2a
je 0x140011c21
cmp eax, 0x2b
je 0x140011c21
cmp eax, 0x3f
je 0x140011c21
cmp eax, 0x7b
je 0x140011c21
cmp eax, 0x7d
jne 0x140011bf7
test dword [rdi + 0x64], 0x10000000
jne 0x140011bf7
lea ecx, [rax - 0x77]
jmp 0x140011c26
cmp eax, 0x5d
jne 0x140011c0a
test dword [rdi + 0x64], 0x10000000
jne 0x140011c0a
lea ecx, [rax - 0x59]
jmp 0x140011c26
movzx edx, word [rdi + 0x5e]
lea rcx, [rdi + 0x28]
call fcn.140013080
mov rcx, rdi
call fcn.1400117c0
jmp 0x140011c2b
mov ecx, 0xa
call fcn.14002d0a8
mov rcx, rdi
call fcn.140012ee0
cmp dword [rdi + 0x60], 0xffff
mov cl, 1
jne 0x140011850
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