Function at 0x140012270
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
movzx eax, byte [r8]
mov qword [rsp + 0x110], rcx
mov r15, r8
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x128], r9
test al, al
je 0x1400124f4
mov dword [rsp + 0x2c], 0
jmp 0x140012308
mov edx, 0x25
mov rcx, r15
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
test rax, rax
je 0x140012510
mov r8d, eax
mov rcx, qword [rsp + 0x118]
mov r9, r15
lea rdx, str._.s
sub r8d, r15d
call qword [rsp + 0x110]
movsxd rdx, eax
add r15, rdx
cmp eax, 0xffffffff
je 0x1400124f4
movzx eax, byte [r15]
test al, al
je 0x1400124f4
cmp al, 0x25
jne 0x1400122b8
movzx ebp, byte [r15 + 1]
cmp bpl, 0x25
je 0x140012530
mov byte [rsp + 0x40], 0x25
lea r13, [r15 + 1]
cmp bpl, 0x30
je 0x140012610
mov rdx, qword [0x1400ce2f0]
movzx eax, bpl
movsx ebx, bpl
mov edi, 0xffffffff
test byte [rdx + rax*2], 4
je 0x140012360
cmp byte [r15 + 2], 0x24
jne 0x140012360
lea edi, [rbx - 0x31]
movsx ebx, byte [r15 + 3]
lea r13, [r15 + 3]
mov ebp, ebx
nop dword [rax]
lea r14, [rsp + 0x41]
lea rsi, str.__0I
jmp 0x140012383
movsx ebx, byte [r13 + 1]
add r13, 1
add r14, 1
mov byte [r14 - 1], bpl
mov ebp, ebx
mov edx, ebx
mov rcx, rsi
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
test rax, rax
jne 0x140012370
cmp bpl, 0x2a
jne 0x140012550
movzx edx, byte [r13 + 1]
mov eax, dword [rsp + 0x2c]
lea rbx, [r13 + 1]
cmp dl, 0x30
je 0x1400123d0
mov rsi, qword [0x1400ce2f0]
movsx ecx, dl
movzx edx, dl
test byte [rsi + rdx*2], 4
je 0x1400123d0
cmp byte [r13 + 2], 0x24
jne 0x1400123d0
lea eax, [rcx - 0x31]
lea rbx, [r13 + 3]
nop
shl rax, 4
add dword [rsp + 0x2c], 1
mov rcx, r14
mov r13, rbx
mov rsi, qword [rsp + 0x128]
lea rdx, [0x1400affcc]
mov eax, dword [rsi + rax]
mov r8d, eax
neg r8d
cmovs r8d, eax
call fcn.1400a5860
movzx ebp, byte [rbx]
cdqe
add r14, rax
cmp bpl, 0x2e
je 0x14001258c
xor ebp, ebp
xor esi, esi
lea rbx, [0x1400affa2]
jmp 0x14001243a
cmp r12b, 0x4c
jne 0x1400128cc
mov esi, 2
mov byte [r14], r12b
add r14, 1
add r13, 1
movsx edx, byte [r13]
mov rcx, rbx
mov r12d, edx
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
test rax, rax
je 0x140012470
cmp r12b, 0x68
je 0x140012460
cmp r12b, 0x6c
jne 0x140012420
add esi, 1
jmp 0x14001242f
mov ebp, 1
jmp 0x14001242f
test edi, edi
mov byte [r14], r12b
cmovs edi, dword [rsp + 0x2c]
lea r15, [r13 + 1]
mov byte [r14 + 1], 0
cmp r12b, 0x67
jle 0x140012620
lea ecx, [r12 - 0x69]
cmp cl, 0xf
ja 0x140012900
mov eax, 1
shl rax, cl
test eax, 0x9041
jne 0x140012688
cmp cl, 7
je 0x140012700
cmp cl, 0xa
jne 0x140012900
mov rax, qword [rsp + 0x128]
mov edi, edi
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x118]
shl rdi, 4
mov r8, qword [rax + rdi]
call qword [rsp + 0x110]
add dword [rsp + 0x2c], 1
cmp eax, 0xffffffff
jne 0x1400122fc
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x118]
mov r8, r15
lea rdx, [0x1400affc9]
call qword [rsp + 0x110]
jmp 0x1400122ed
mov rdx, qword [rsp + 0x118]
mov ecx, 0x25
add r15, 2
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputc
jmp 0x1400122fc
mov rdx, qword [0x1400ce2f0]
movzx ebx, bl
test byte [rdx + rbx*2], 4
je 0x140012408
nop dword [rax]
movzx eax, byte [r13 + 1]
add r13, 1
add r14, 1
mov byte [r14 - 1], bpl
mov rbp, rax
test byte [rdx + rax*2], 4
jne 0x140012568
cmp bpl, 0x2e
jne 0x140012412
movzx eax, byte [r13 + 1]
mov byte [r14], 0x2e
lea rsi, [r14 + 1]
cmp al, 0x2a
jne 0x140012740
movzx edx, byte [r13 + 2]
mov eax, dword [rsp + 0x2c]
lea rbx, [r13 + 2]
cmp dl, 0x30
je 0x1400125d2
mov rcx, qword [0x1400ce2f0]
movsx r8d, dl
movzx edx, dl
test byte [rcx + rdx*2], 4
je 0x1400125d2
cmp byte [r13 + 3], 0x24
je 0x140012898
mov rcx, qword [rsp + 0x128]
shl rax, 4
add dword [rsp + 0x2c], 1
mov r13, rbx
lea rdx, [0x1400affcc]
mov eax, dword [rcx + rax]
mov rcx, rsi
mov r8d, eax
neg r8d
cmovs r8d, eax
call fcn.1400a5860
movsxd r11, eax
lea r14, [rsi + r11]
jmp 0x140012412
mov edi, 0xffffffff
mov ebx, 0x30
jmp 0x140012360
cmp r12b, 0x44
jle 0x140012900
lea ecx, [r12 - 0x45]
mov eax, 1
movabs rdx, 0x700000005
shl rax, cl
test rax, rdx
je 0x14001267d
mov edi, edi
shl rdi, 4
add rdi, qword [rsp + 0x128]
test esi, esi
jne 0x14001277f
mov r8, qword [rdi]
mov rcx, qword [rsp + 0x118]
lea rdx, [rsp + 0x40]
movq xmm2, r8
call qword [rsp + 0x110]
jmp 0x1400124e6
test eax, 0xc0080000
je 0x140012900
mov edi, edi
shl rdi, 4
add rdi, qword [rsp + 0x128]
test ebp, ebp
jne 0x1400126e0
test esi, esi
je 0x1400126e0
cmp esi, 1
je 0x1400126e0
mov eax, 0x3649
mov byte [r14], 0x34
mov r8, qword [rdi]
lea rdx, [rsp + 0x40]
mov word [r14 - 2], ax
mov rcx, qword [rsp + 0x118]
mov byte [r14 + 1], r12b
mov byte [r14 + 2], 0
call qword [rsp + 0x110]
jmp 0x1400124e6
mov r8d, dword [rdi]
mov rcx, qword [rsp + 0x118]
lea rdx, [rsp + 0x40]
call qword [rsp + 0x110]
jmp 0x1400124e6
mov rsi, qword [rsp + 0x128]
mov edi, edi
movzx eax, byte [r13 + 1]
shl rdi, 4
mov r8, qword [rsi + rdi]
cmp al, 0x41
je 0x1400127a3
cmp al, 0x42
je 0x14001281f
mov rcx, qword [rsp + 0x118]
lea rdx, [rsp + 0x40]
call qword [rsp + 0x110]
jmp 0x1400124e6
mov rdx, qword [0x1400ce2f0]
movzx ecx, al
add r13, 1
mov r14, rsi
test byte [rdx + rcx*2], 4
je 0x140012412
nop dword [rax + rax]
movzx ecx, byte [r13 + 1]
add r13, 1
add r14, 1
mov byte [r14 - 1], al
mov rax, rcx
test byte [rdx + rcx*2], 4
jne 0x140012760
jmp 0x140012412
fld xword [rdi]
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x118]
fstp xword [rsp + 0x30]
call qword [rsp + 0x110]
jmp 0x1400124e6
lea r15, [r13 + 2]
test r8, r8
je 0x140012918
mov rax, qword [r8 + 0xe0]
test rax, rax
je 0x14001287a
mov rax, qword [rax + 8]
mov eax, dword [rax + 8]
cmp eax, 5
je 0x140012862
cmp eax, 2
jne 0x14001287a
mov rax, qword [r8 + 0xd0]
test rax, rax
je 0x14001287a
mov rax, qword [rax + 0x40]
test rax, rax
je 0x14001287a
mov r9, qword [rax]
mov rax, qword [r8]
test r9, r9
je 0x14001287a
mov rcx, qword [rsp + 0x118]
mov r8, rax
lea rdx, [0x1400affcf]
call qword [rsp + 0x110]
jmp 0x1400124e6
lea r15, [r13 + 2]
test r8, r8
je 0x1400128e4
mov rax, qword [r8 + 0xe0]
mov r8, qword [r8]
test rax, rax
je 0x1400128a5
test byte [rax + 0x45], 0x10
jne 0x1400128a5
mov r9, r8
mov rcx, qword [rsp + 0x118]
mov r8, qword [rax]
lea rdx, str._s__s_
call qword [rsp + 0x110]
jmp 0x1400124e6
mov rax, qword [r8 + 0xd0]
cmp qword [rax + 0xc0], 0
je 0x14001287a
test byte [r8 + 0x27], 2
je 0x1400128c0
mov r8, qword [r8]
mov rcx, qword [rsp + 0x118]
lea rdx, [0x1400affc9]
call qword [rsp + 0x110]
jmp 0x1400124e6
lea eax, [r8 - 0x31]
lea rbx, [r13 + 4]
jmp 0x1400125d2
mov rcx, qword [rsp + 0x118]
lea rdx, [0x1400affc9]
call qword [rsp + 0x110]
jmp 0x1400124e6
mov r9, qword [rax + 0xb0]
jmp 0x1400127f9
lea r8, str._bfd_doprnt
mov edx, 0x40a
lea rcx, str.___w_arm_none_eabi_gcc_xpack_arm_none_eabi_gcc_xpack_build_win32_x64_sources_binutils_gdb_binutils_2.40_arm_none_eabi_12.3.rel1_bfd_bfd.c
call fcn.14000f9b0
lea r8, str._bfd_doprnt
mov edx, 0x473
lea rcx, str.___w_arm_none_eabi_gcc_xpack_arm_none_eabi_gcc_xpack_build_win32_x64_sources_binutils_gdb_binutils_2.40_arm_none_eabi_12.3.rel1_bfd_bfd.c
call fcn.14000f9b0
nop dword [rax]
lea r8, str._bfd_doprnt
mov edx, 0x480
lea rcx, str.___w_arm_none_eabi_gcc_xpack_arm_none_eabi_gcc_xpack_build_win32_x64_sources_binutils_gdb_binutils_2.40_arm_none_eabi_12.3.rel1_bfd_bfd.c
call fcn.14000f9b0
lea r8, str._bfd_doprnt
mov edx, 0x459
lea rcx, str.___w_arm_none_eabi_gcc_xpack_arm_none_eabi_gcc_xpack_build_win32_x64_sources_binutils_gdb_binutils_2.40_arm_none_eabi_12.3.rel1_bfd_bfd.c
call fcn.14000f9b0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop