Function at 0x1400396c0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x140039981
cmp ecx, 0x7c
je 0x140039981
cmp ecx, 0x29
jne 0x140039712
cmp dword [rbx + 0x1c], 0
jne 0x140039981
test dword [rbx + 0x80], 0x10000000
je 0x1400399a1
jmp 0x140039885
cmp ecx, 0x2e
jne 0x14003972a
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.140039a40
jmp 0x140039892
cmp ecx, 0x5c
jne 0x14003979f
mov rcx, rbx
call fcn.140039650
test byte [rbx + 0x80], 0x80
je 0x140039792
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x140039765
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.140039a40
mov rcx, rbx
call fcn.140039650
jmp 0x140039973
cmp ax, 0x42
jne 0x140039792
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.140039a40
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
add rax, 0xc
call fcn.140039650
jmp 0x140039973
mov rcx, rbx
call fcn.14003a1a0
jmp 0x14003989a
cmp ecx, 0x5b
jne 0x1400397c3
mov rcx, rbx
call fcn.140039650
mov rcx, rbx
call fcn.14003a030
cmp dword [rbx + 0x7c], 0x5d
jne 0x1400399ac
jmp 0x140039892
cmp ecx, 0x28
jne 0x1400397fb
mov rcx, rbx
call fcn.140039650
mov rcx, rbx
call fcn.14003a320
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x1400399cd
mov rcx, rbx
call fcn.140039650
test dil, dil
je 0x140039973
jmp 0x14003989a
cmp ecx, 0x5e
jne 0x14003981b
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.140039a40
mov rcx, rbx
call fcn.140039650
jmp 0x140039973
cmp ecx, 0x24
jne 0x14003983b
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.140039a40
mov rcx, rbx
call fcn.140039650
jmp 0x140039973
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x1400399c2
cmp ecx, 0x3f
je 0x1400399c2
cmp ecx, 0x7b
je 0x1400399c2
cmp ecx, 0x7d
jne 0x140039870
test dword [rbx + 0x80], 0x10000000
je 0x1400399b7
jmp 0x140039885
cmp ecx, 0x5d
jne 0x140039885
test dword [rbx + 0x80], 0x10000000
je 0x1400399d8
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.14003a490
mov rcx, rbx
call fcn.140039650
mov eax, dword [rbx + 0x7c]
xor esi, esi
lea edi, [rsi - 1]
cmp eax, 0x2a
je 0x14003992b
cmp eax, 0x2b
jne 0x1400398b5
lea esi, [rdi + 2]
jmp 0x14003992b
cmp eax, 0x3f
jne 0x1400398bf
lea edi, [rax - 0x3e]
jmp 0x14003992b
cmp eax, 0x7b
jne 0x140039973
mov rcx, rbx
call fcn.140039650
mov rcx, rbx
call fcn.14003bc50
test al, al
je 0x140039996
mov eax, dword [rbx + 0x7c]
mov esi, dword [rbx + 0x74]
cmp eax, 0x2c
je 0x1400398ef
mov edi, esi
jmp 0x140039915
mov rcx, rbx
call fcn.140039650
mov eax, dword [rbx + 0x7c]
cmp eax, 0x7d
je 0x14003991e
mov rcx, rbx
call fcn.14003bc50
test al, al
je 0x1400399e3
mov edi, dword [rbx + 0x74]
mov eax, dword [rbx + 0x7c]
cmp eax, 0x7d
jne 0x1400399ee
cmp edi, 0xffffffff
je 0x14003992b
cmp edi, esi
jl 0x1400399ee
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
add rax, 0xc
call fcn.140039650
test dword [rbx + 0x80], 0x400
je 0x14003995e
cmp dword [rbx + 0x7c], 0x3f
jne 0x14003995e
xor bpl, bpl
mov rcx, rbx
call fcn.140039650
jmp 0x140039961
mov bpl, 1
lea rcx, [rbx + 0x40]
movzx r9d, bpl
mov r8d, edi
mov edx, esi
call fcn.14003c3e0
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1400396e5
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov edx, 7
call fcn.140038cf0
int3
mov edx, 5
call fcn.140038cf0
int3
mov edx, 4
call fcn.140038cf0
int3
mov edx, 6
call fcn.140038cf0
int3
mov edx, 0xa
call fcn.140038cf0
int3
mov edx, 5
call fcn.140038cf0
int3
mov edx, 4
call fcn.140038cf0
int3
mov edx, 7
call fcn.140038cf0
int3
mov edx, 7
call fcn.140038cf0
int3