Function at 0x407f60
Capabilities:
Parse credit card information

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
cmp cx, 0xffff
mov ebx, ecx
mov edi, edx
je 0x408af0
xor esi, esi
test ch, 0x10
jne 0x408560
test bh, 0x40
jne 0x408520
test bx, bx
js 0x4085d0
test bh, 0x20
je 0x407fd7
test edi, edi
jne 0x408610
mov edx, 9
mov rcx, rsi
call fcn.00405f70
mov rdx, qword [0x00426b50]
mov rsi, rax
mov rax, qword [rax]
lea rax, [rsi + rax + 0x10]
mov qword [rax], rdx
movzx edx, word [0x00426b58]
mov word [rax + 8], dx
add qword [rsi], 9
mov ecx, ebx
and cx, 0xfff
cmp cx, 0x16
je 0x408d68
jbe 0x4082e0
cmp cx, 0x25
je 0x408d54
jbe 0x4083f0
cmp cx, 0x44
je 0x408e50
ja 0x408240
cmp cx, 0x41
je 0x408d40
jbe 0x4082b0
cmp cx, 0x42
je 0x408b70
cmp cx, 0x43
jne 0x408f30
lea rcx, [0x00426660]
call fcn.00403800
mov rbx, rax
nop dword [rax + rax]
nop word cs:[rax + rax]
test rbx, rbx
je 0x408ad0
mov rdx, qword [rbx]
mov rcx, rsi
call fcn.00405f70
mov r8, qword [rbx]
lea r11, [rbx + 0x10]
mov rdx, qword [rax]
test r8, r8
lea rcx, [rax + rdx + 0x10]
js 0x408226
lea rdx, [rax + rdx + 0x20]
cmp r11, rdx
lea rdx, [rbx + 0x20]
setae r9b
cmp rcx, rdx
setae dl
or r9b, dl
je 0x408aa0
cmp r8, 0xe
jbe 0x408aa0
lea r10, [r8 + 1]
xor edx, edx
mov r9, r10
and r9, 0xfffffffffffffff0
nop dword [rax]
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rbx + rdx + 0x10]
movups xmmword [rcx + rdx], xmm1
add rdx, 0x10
cmp rdx, r9
jne 0x4080c0
mov rdx, r10
and rdx, 0xfffffffffffffff0
cmp r10, rdx
je 0x408220
movzx r9d, byte [r11 + rdx]
cmp r8, rdx
mov byte [rcx + rdx], r9b
lea r9, [rdx + 1]
jle 0x408220
movzx r10d, byte [r11 + rdx + 1]
cmp r8, r9
mov byte [rcx + rdx + 1], r10b
lea r10, [rdx + 2]
jle 0x408220
movzx r9d, byte [r11 + rdx + 2]
cmp r10, r8
mov byte [rcx + rdx + 2], r9b
lea r9, [rdx + 3]
jge 0x408220
movzx r10d, byte [r11 + rdx + 3]
cmp r9, r8
mov byte [rcx + rdx + 3], r10b
lea r10, [rdx + 4]
jge 0x408220
movzx r9d, byte [r11 + rdx + 4]
cmp r8, r10
mov byte [rcx + rdx + 4], r9b
lea r9, [rdx + 5]
jle 0x408220
movzx r10d, byte [r11 + rdx + 5]
cmp r8, r9
mov byte [rcx + rdx + 5], r10b
lea r10, [rdx + 6]
jle 0x408220
movzx r9d, byte [r11 + rdx + 6]
cmp r8, r10
mov byte [rcx + rdx + 6], r9b
lea r9, [rdx + 7]
jle 0x408220
movzx r10d, byte [r11 + rdx + 7]
cmp r8, r9
mov byte [rcx + rdx + 7], r10b
lea r10, [rdx + 8]
jle 0x408220
movzx r9d, byte [r11 + rdx + 8]
cmp r8, r10
mov byte [rcx + rdx + 8], r9b
lea r9, [rdx + 9]
jle 0x408220
movzx r10d, byte [r11 + rdx + 9]
cmp r8, r9
mov byte [rcx + rdx + 9], r10b
lea r10, [rdx + 0xa]
jle 0x408220
movzx r9d, byte [r11 + rdx + 0xa]
cmp r8, r10
mov byte [rcx + rdx + 0xa], r9b
lea r9, [rdx + 0xb]
jle 0x408220
movzx r10d, byte [r11 + rdx + 0xb]
cmp r8, r9
mov byte [rcx + rdx + 0xb], r10b
lea r10, [rdx + 0xc]
jle 0x408220
movzx r9d, byte [r11 + rdx + 0xc]
cmp r8, r10
mov byte [rcx + rdx + 0xc], r9b
lea r9, [rdx + 0xd]
jle 0x408220
movzx r10d, byte [r11 + rdx + 0xd]
cmp r8, r9
mov byte [rcx + rdx + 0xd], r10b
jle 0x408220
movzx r8d, byte [r11 + rdx + 0xe]
mov byte [rcx + rdx + 0xe], r8b
mov rdx, qword [rax]
mov r8, qword [rbx]
add r8, rdx
mov qword [rax], r8
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
cmp cx, 0x47
je 0x408e30
jbe 0x408280
cmp cx, 0x48
je 0x408bb0
cmp cx, 0xfff
jne 0x408f30
lea rcx, [0x00426560]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x45
je 0x408b90
cmp cx, 0x46
jne 0x408f30
lea rcx, [0x004265c0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x26
je 0x408b50
cmp cx, 0x40
jne 0x408f30
lea rcx, [0x004266c0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0xa
je 0x408dd4
ja 0x408340
cmp cx, 4
je 0x408da0
jbe 0x4084a0
cmp cx, 7
je 0x408d80
jbe 0x4083c0
cmp cx, 8
je 0x408c30
cmp cx, 9
jne 0x408f30
lea rcx, [0x004269e0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x10
je 0x408dc0
jbe 0x4084e0
cmp cx, 0x13
je 0x408ef0
jbe 0x408390
cmp cx, 0x14
je 0x408c70
cmp cx, 0x15
jne 0x408f30
lea rcx, [0x00426880]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x11
je 0x408c50
cmp cx, 0x12
jne 0x408f30
lea rcx, [0x004268e0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 5
je 0x408c10
cmp cx, 6
jne 0x408f30
lea rcx, [0x00426a40]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x1b
je 0x408e10
jbe 0x408460
cmp cx, 0x1e
je 0x408df0
jbe 0x408430
cmp cx, 0x1f
je 0x408bf0
cmp cx, 0x24
jne 0x408f30
lea rcx, [0x00426720]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x1c
je 0x408bd0
cmp cx, 0x1d
jne 0x408f30
lea rcx, [0x00426780]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0x18
je 0x408f50
jb 0x408f10
cmp cx, 0x19
je 0x408c90
cmp cx, 0x1a
jne 0x408f30
lea rcx, [0x004267e0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 1
je 0x408ed0
test cx, cx
je 0x408eb0
cmp cx, 2
je 0x408cd0
cmp cx, 3
jne 0x408f30
lea rcx, [0x00426aa0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
cmp cx, 0xc
je 0x408e90
jb 0x408e70
cmp cx, 0xd
je 0x408cb0
cmp cx, 0xe
jne 0x408f30
lea rcx, [0x00426940]
call fcn.00403800
mov rbx, rax
jmp 0x408050
mov edx, 9
mov rcx, rsi
call fcn.00405f70
mov rdx, qword [0x00426b90]
mov rsi, rax
mov rax, qword [rax]
lea rax, [rsi + rax + 0x10]
mov qword [rax], rdx
movzx edx, word [0x00426b98]
mov word [rax + 8], dx
add qword [rsi], 9
test bx, bx
jns 0x407f99
jmp 0x4085d0
mov rcx, qword [0x0046e990]
call fcn.0041b0f0
mov edx, 0x2b
mov rcx, rax
call fcn.00403600
mov rcx, qword [0x00426bb0]
movdqa xmm0, xmmword [0x00427ea0]
mov qword [rax + 8], 1
lea rdx, [rax + 0x20]
lea rsi, [rax + 0x10]
movups xmmword [rax + 0x10], xmm0
mov qword [rax + 0x20], rcx
movzx eax, word [0x00426bb8]
mov word [rdx + 8], ax
movzx eax, byte [0x00426bba]
mov byte [rdx + 0xa], al
add qword [rsi], 0xa
test bh, 0x40
je 0x407f90
jmp 0x408520
mov edx, 0xc
mov rcx, rsi
call fcn.00405f70
mov rdx, qword [0x00426b70]
mov rsi, rax
mov rax, qword [rax]
lea rax, [rsi + rax + 0x10]
mov qword [rax], rdx
mov edx, dword [0x00426b78]
mov dword [rax + 8], edx
movzx edx, byte [0x00426b7c]
mov byte [rax + 0xc], dl
add qword [rsi], 0xc
jmp 0x407f99
lea rcx, [rsp + 0x28]
mov edx, 1
mov qword [rsp + 0x28], 0
call fcn.004079e0
mov rdi, qword [rsp + 0x28]
test rdi, rdi
je 0x408a80
mov rax, qword [rdi]
lea rbp, [rax + 0xc]
mov eax, 7
cmp rbp, 7
cmovl rbp, rax
lea r14, [rbp + 0x11]
lea r12, [rbp + 0x21]
mov rcx, qword [0x0046e990]
call fcn.0041b0f0
mov rdx, r12
mov rcx, rax
call fcn.00403600
xor edx, edx
mov r8, r14
lea r13, [rax + 0x10]
mov qword [rax + 8], 1
mov r12, rax
mov rcx, r13
call fcn.0041b308
mov rax, qword [0x00426b30]
mov qword [r13 + 8], rbp
test rdi, rdi
lea rbp, [r12 + 0x20]
lea rcx, [r12 + 0x29]
mov qword [r12 + 0x20], rax
movzx eax, word [0x00426b38]
mov word [rbp + 8], ax
mov qword [r12 + 0x10], 9
je 0x408885
mov rdx, qword [rdi]
lea rax, [rdi + 0x10]
test rdx, rdx
js 0x408d28
lea r8, [r12 + 0x39]
cmp rax, r8
lea rax, [rdi + 0x20]
setae r8b
cmp rcx, rax
setae al
or r8b, al
je 0x408d05
cmp rdx, 0xe
jbe 0x408d05
lea r9, [rdx + 1]
xor eax, eax
mov r8, r9
and r8, 0xfffffffffffffff0
nop dword [rax]
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rdi + rax + 0x10]
movups xmmword [rcx + rax], xmm3
add rax, 0x10
cmp rax, r8
jne 0x408710
mov rax, r9
and rax, 0xfffffffffffffff0
cmp r9, rax
je 0x408870
movzx ecx, byte [rdi + rax + 0x10]
cmp rdx, rax
mov byte [r12 + rax + 0x29], cl
lea rcx, [rax + 1]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x11]
cmp rdx, rcx
mov byte [r12 + rax + 0x2a], r8b
lea r8, [rax + 2]
jle 0x408870
movzx ecx, byte [rdi + rax + 0x12]
cmp rdx, r8
mov byte [r12 + rax + 0x2b], cl
lea rcx, [rax + 3]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x13]
cmp rdx, rcx
mov byte [r12 + rax + 0x2c], r8b
lea r8, [rax + 4]
jle 0x408870
movzx ecx, byte [rdi + rax + 0x14]
cmp rdx, r8
mov byte [r12 + rax + 0x2d], cl
lea rcx, [rax + 5]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x15]
cmp rdx, rcx
mov byte [r12 + rax + 0x2e], r8b
lea r8, [rax + 6]
jle 0x408870
movzx ecx, byte [rdi + rax + 0x16]
cmp rdx, r8
mov byte [r12 + rax + 0x2f], cl
lea rcx, [rax + 7]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x17]
cmp rdx, rcx
mov byte [r12 + rax + 0x30], r8b
lea r8, [rax + 8]
jle 0x408870
movzx ecx, byte [rdi + rax + 0x18]
cmp rdx, r8
mov byte [r12 + rax + 0x31], cl
lea rcx, [rax + 9]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x19]
cmp rdx, rcx
mov byte [r12 + rax + 0x32], r8b
lea r8, [rax + 0xa]
jle 0x408870
movzx ecx, byte [rdi + rax + 0x1a]
cmp rdx, r8
mov byte [r12 + rax + 0x33], cl
lea rcx, [rax + 0xb]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x1b]
cmp rdx, rcx
mov byte [r12 + rax + 0x34], r8b
lea r8, [rax + 0xc]
jle 0x408870
movzx ecx, byte [rdi + rax + 0x1c]
cmp rdx, r8
mov byte [r12 + rax + 0x35], cl
lea rcx, [rax + 0xd]
jle 0x408870
movzx r8d, byte [rdi + rax + 0x1d]
mov byte [r12 + rax + 0x36], r8b
add rax, 0xe
cmp rdx, rcx
jle 0x408870
movzx edx, byte [rdi + rax + 0x10]
mov byte [r12 + rax + 0x29], dl
nop
mov rax, qword [r12 + 0x10]
mov rdx, qword [rdi]
add rdx, rax
mov qword [r12 + 0x10], rdx
lea rcx, [r13 + rdx + 0x10]
mov dword [rcx], 0x7c2944
mov rax, qword [r12 + 0x10]
mov rcx, rsi
lea rdx, [rax + 3]
mov qword [r12 + 0x10], rdx
call fcn.00405f70
mov rdx, qword [r12 + 0x10]
mov rsi, rax
mov rax, qword [rax]
test rdx, rdx
lea rcx, [rsi + rax + 0x10]
js 0x408a68
lea r8, [r13 + 0x10]
lea rax, [rsi + rax + 0x20]
cmp r8, rax
setae r8b
add r13, 0x20
cmp rcx, r13
setae al
or r8b, al
je 0x408ce4
cmp rdx, 0xe
jbe 0x408ce4
lea r10, [rdx + 1]
mov r9, rcx
mov rax, rbp
mov r8, r10
sub r9, r12
and r8, 0xfffffffffffffff0
add r8, rbp
nop
movdqu xmm2, xmmword [rax]
movups xmmword [r9 + rax - 0x20], xmm2
add rax, 0x10
cmp rax, r8
jne 0x408900
mov rax, r10
and rax, 0xfffffffffffffff0
cmp r10, rax
je 0x408a60
movzx r8d, byte [r12 + rax + 0x20]
cmp rdx, rax
mov byte [rcx + rax], r8b
lea r8, [rax + 1]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x21]
cmp rdx, r8
mov byte [rcx + rax + 1], r9b
lea r9, [rax + 2]
jle 0x408a60
movzx r8d, byte [r12 + rax + 0x22]
cmp rdx, r9
mov byte [rcx + rax + 2], r8b
lea r8, [rax + 3]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x23]
cmp rdx, r8
mov byte [rcx + rax + 3], r9b
lea r9, [rax + 4]
jle 0x408a60
movzx r8d, byte [r12 + rax + 0x24]
cmp rdx, r9
mov byte [rcx + rax + 4], r8b
lea r8, [rax + 5]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x25]
cmp rdx, r8
mov byte [rcx + rax + 5], r9b
lea r9, [rax + 6]
jle 0x408a60
movzx r8d, byte [r12 + rax + 0x26]
cmp rdx, r9
mov byte [rcx + rax + 6], r8b
lea r8, [rax + 7]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x27]
cmp rdx, r8
mov byte [rcx + rax + 7], r9b
lea r9, [rax + 8]
jle 0x408a60
movzx r8d, byte [r12 + rax + 0x28]
cmp rdx, r9
mov byte [rcx + rax + 8], r8b
lea r8, [rax + 9]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x29]
cmp rdx, r8
mov byte [rcx + rax + 9], r9b
lea r9, [rax + 0xa]
jle 0x408a60
movzx r8d, byte [r12 + rax + 0x2a]
cmp rdx, r9
mov byte [rcx + rax + 0xa], r8b
lea r8, [rax + 0xb]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x2b]
cmp rdx, r8
mov byte [rcx + rax + 0xb], r9b
lea r9, [rax + 0xc]
jle 0x408a60
movzx r8d, byte [r12 + rax + 0x2c]
cmp rdx, r9
mov byte [rcx + rax + 0xc], r8b
lea r8, [rax + 0xd]
jle 0x408a60
movzx r9d, byte [r12 + rax + 0x2d]
cmp rdx, r8
mov byte [rcx + rax + 0xd], r9b
jle 0x408a60
movzx edx, byte [r12 + rax + 0x2e]
mov byte [rcx + rax + 0xe], dl
mov rax, qword [rsi]
mov rdx, qword [r12 + 0x10]
add rdx, rax
mov qword [rsi], rdx
jmp 0x407fd7
mov r12d, 0x2d
mov r14d, 0x1d
mov ebp, 0xc
jmp 0x408652
add r8, 1
xor edx, edx
nop word cs:[rax + rax]
movzx r9d, byte [rbx + rdx + 0x10]
mov byte [rcx + rdx], r9b
add rdx, 1
cmp rdx, r8
jne 0x408ab0
mov rdx, qword [rax]
mov r8, qword [rbx]
jmp 0x408226
xor edx, edx
mov rcx, rsi
call fcn.00405f70
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rcx, qword [0x0046e990]
call fcn.0041b0f0
mov edx, 0x2b
mov rcx, rax
call fcn.00403600
mov r8, qword [0x00426bd0]
movdqa xmm0, xmmword [0x00427e90]
mov rdx, rax
mov qword [rax + 8], 1
lea rcx, [rdx + 0x20]
movups xmmword [rdx + 0x10], xmm0
lea rax, [rax + 0x10]
mov qword [rdx + 0x20], r8
movzx edx, word [0x00426bd8]
mov word [rcx + 8], dx
movzx edx, byte [0x00426bda]
mov byte [rcx + 0xa], dl
jmp 0x40822c
lea rcx, [0x004266e0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426680]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004265e0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426580]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004267a0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426740]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426a60]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426a00]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426900]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004268a0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426800]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426960]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426ac0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea r8, [r12 + rdx + 0x21]
mov rax, rbp
sub rcx, r12
nop
movzx edx, byte [rax]
mov byte [rcx + rax - 0x20], dl
add rax, 1
cmp rax, r8
jne 0x408cf0
jmp 0x408a60
add rdx, 1
xor eax, eax
nop dword [rax + rax]
movzx r8d, byte [rdi + rax + 0x10]
mov byte [rcx + rax], r8b
add rax, 1
cmp rax, rdx
jne 0x408d10
jmp 0x408870
mov eax, 9
jmp 0x408878
lea rcx, [0x004266a0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426700]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426860]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426a20]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426a80]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426920]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004269c0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426760]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004267c0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004265a0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426620]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004269a0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426980]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426b00]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426ae0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x004268c0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426840]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426bc0]
call fcn.00403800
mov rbx, rax
jmp 0x408050
lea rcx, [0x00426820]
call fcn.00403800
mov rbx, rax
jmp 0x408050