Function at 0x18000c890
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x198
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rdx
mov rbx, rcx
mov rax, qword [0x18001c500]
xor rax, rsp
mov qword [rsp + 0x190], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
mov word [rsp + 0xb0], 0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x70], 0
lea r14, [rsp + 0xc0]
mov rcx, r14
mov edx, 0xc8
mov r8, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
xor ebp, ebp
test rax, rax
je 0x18000cc78
mov rsi, qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
xor edi, edi
mov qword [rsp + 0x28], rbx
jmp 0x18000c950
test ebp, ebp
cmove ebp, edi
mov rcx, r14
mov edx, 0xc8
mov r8, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
je 0x18000cc78
test edi, edi
sete al
cmp byte [rsp + 0xc0], 0xef
sete cl
and cl, al
cmp byte [rsp + 0xc1], 0xbb
sete al
cmp byte [rsp + 0xc2], 0xbf
sete dl
and dl, al
and dl, cl
movzx eax, dl
lea rax, [rax + rax*2]
lea r13, [rsp + rax]
add r13, 0xc0
mov rcx, r13
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
jle 0x18000c9c7
mov r15, rax
add r15, r13
nop word cs:[rax + rax]
movzx ecx, byte [r15 - 1]
call rsi
test eax, eax
je 0x18000c9c7
dec r15
mov byte [r15], 0
cmp r15, r13
ja 0x18000c9b0
inc edi
movzx r15d, byte [r13]
test r15b, r15b
je 0x18000c9fe
nop word cs:[rax + rax]
movzx r12d, r15b
mov ecx, r12d
call rsi
test eax, eax
je 0x18000caa0
movzx r15d, byte [r13 + 1]
inc r13
test r15b, r15b
jne 0x18000c9e0
xor r15d, r15d
cmp byte [rsp + 0x40], 0
je 0x18000ca40
cmp r13, r14
seta al
test r15b, r15b
je 0x18000ca40
test al, al
je 0x18000ca40
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x40]
mov r9, r13
call qword [rsp + 0x30]
or eax, ebp
jmp 0x18000c933
test r15b, r15b
je 0x18000c936
movzx eax, r15b
cmp eax, 0x5b
jne 0x18000cab9
movzx ecx, byte [r13 + 1]
test cl, cl
je 0x18000c931
lea r15, [r13 + 1]
add r13, 2
xor eax, eax
jmp 0x18000ca85
movzx ecx, cl
call rsi
movzx ecx, byte [r13]
inc r13
test cl, cl
je 0x18000c931
cmp cl, 0x5d
je 0x18000cbdc
cmp cl, 0x3b
jne 0x18000ca70
test eax, eax
je 0x18000ca70
jmp 0x18000c931
cmp r15b, 0x23
je 0x18000c936
cmp r12d, 0x3b
je 0x18000c936
jmp 0x18000ca01
mov rbx, r14
lea r12, [r13 + 1]
lea r14, [r13 + 2]
xor eax, eax
jmp 0x18000caea
movzx ecx, r15b
call rsi
movzx r15d, byte [r12]
inc r12
inc r14
test r15b, r15b
je 0x18000cbca
mov edx, 1
mov ecx, r15d
shl rdx, cl
cmp r15b, 0x3f
ja 0x18000cb0a
movabs rcx, 0x2400000000000001
and rdx, rcx
jne 0x18000cb19
cmp r15b, 0x3b
jne 0x18000cad0
test eax, eax
je 0x18000cad0
jmp 0x18000cbca
cmp r15b, 0x3d
je 0x18000cb2c
movzx eax, r15b
cmp eax, 0x3a
jne 0x18000cbca
mov byte [r12 - 1], 0
mov rcx, r13
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
jle 0x18000cb67
mov r15, rax
add r15, r13
nop word cs:[rax + rax]
movzx ecx, byte [r15 - 1]
call rsi
test eax, eax
je 0x18000cb67
dec r15
mov byte [r15], 0
cmp r15, r13
ja 0x18000cb50
movzx r15d, byte [r12]
test r15b, r15b
je 0x18000cc0a
xor eax, eax
mov ecx, r15d
jmp 0x18000cb90
movzx ecx, cl
call rsi
movzx ecx, byte [r14]
inc r14
test cl, cl
je 0x18000cba3
cmp cl, 0x3b
jne 0x18000cb80
test eax, eax
je 0x18000cb80
mov byte [r14 - 1], 0
movzx r15d, byte [r12]
mov r14, rbx
mov rbx, qword [rsp + 0x28]
test r15b, r15b
je 0x18000cc12
movzx ecx, r15b
call rsi
test eax, eax
je 0x18000cc12
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x18000cbb0
jmp 0x18000cc12
test ebp, ebp
cmove ebp, edi
mov r14, rbx
mov rbx, qword [rsp + 0x28]
jmp 0x18000c936
mov byte [r13 - 1], 0
mov r8d, 0x32
lea rcx, [rsp + 0x80]
mov rdx, r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [rsp + 0xb1], 0
mov byte [rsp + 0x40], 0
jmp 0x18000c936
mov r14, rbx
mov rbx, qword [rsp + 0x28]
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
jle 0x18000cc47
mov r15, rax
add r15, r12
nop word cs:[rax + rax]
movzx ecx, byte [r15 - 1]
call rsi
test eax, eax
je 0x18000cc47
dec r15
mov byte [r15], 0
cmp r15, r12
ja 0x18000cc30
mov r8d, 0x32
lea rcx, [rsp + 0x40]
mov rdx, r13
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [rsp + 0x71], 0
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x80]
mov r8, r13
mov r9, r12
jmp 0x18000ca2c
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.1800143c0
mov eax, ebp
add rsp, 0x198
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret