Function at 0x1400aa6cf
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rbx, r9
mov r10, r8
mov r14, rdx
mov r12, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xc0]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r12
and qword [rsp + 0x48], 0
mov rsi, rcx
cmp byte [rdx], 0
mov qword [rsp + 0x30], r8
je 0x1400aa79f
movzx ecx, byte [r14 + 1]
mov byte [r14], 0
test rbx, rbx
je 0x1400aa7ae
cmp r12, 2
jbe 0x1400aa7c4
mov al, byte [r10]
cmp cl, 0x1f
jbe 0x1400aa7dc
lea edx, [rax + 0x5f]
lea r8d, [rcx - 0x20]
movzx r8d, r8b
cmp dl, 0x5e
jae 0x1400aa7e8
imul r13, r8, 0x5e
movzx eax, dl
lea r8, [rax + r13]
add r8, 0xfffffffffffffa7e
add r13, rax
cmp r8, 0x92e
mov qword [rsp + 0x50], r14
jae 0x1400aa8c8
lea rax, [0x140198ea0]
movzx r13d, word [rax + r13*2 - 0xb04]
mov eax, r13d
shr eax, 0xc
or al, 0xe0
mov byte [r15], al
mov eax, r13d
jmp 0x1400aa89c
mov qword [rsp + 0x50], r14
xor r14d, r14d
xor ebp, ebp
jmp 0x1400aaaf7
cmp byte [rsp + 0xd0], 0
je 0x1400aa7ca
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
jmp 0x1400aa7ce
mov byte [rsi + 8], 1
jmp 0x1400aa7ce
mov byte [rsi + 8], 0
and qword [rsi], 0
and qword [rsi + 0x10], 0
jmp 0x1400ab0ee
lea edx, [rax + 0x7f]
cmp dl, 0x7e
jae 0x1400aa7fc
add al, 0xb3
jmp 0x1400aa80a
lea ecx, [rax + 0x7f]
cmp cl, 0x20
jae 0x1400aa8ea
lea ecx, [rax - 0x4d]
jmp 0x1400aa939
lea edx, [rax - 0x61]
cmp dl, 0x1a
jae 0x1400aa8f7
add al, 0xb9
mov edx, eax
mov rbp, r10
movzx eax, cx
imul eax, eax, 0xb2
movzx r13d, dl
add r13d, eax
lea r8, [rsp + 0x2e]
mov word [r8], r13w
lea rdi, [0x140197568]
mov edx, 0x437
mov rcx, rdi
call fcn.1400a62b5
mov r9, rdx
test rax, rax
mov qword [rsp + 0x50], r14
je 0x1400aa871
mov rcx, r9
dec rcx
cmp rcx, 0x437
jae 0x1400ab16f
lea rax, [0x140197dd6]
add r13w, word [rax + r9*2 - 2]
sub r13w, word [rdi + r9*2 - 2]
jmp 0x1400aa88a
cmp r9, 0x437
jae 0x1400ab180
lea rax, [0x140197dd6]
movzx r13d, word [rax + r9*2]
mov r10, rbp
movzx eax, r13w
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [r15], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [r15 + 1], al
mov r14d, 3
mov eax, 2
and r13b, 0x3f
or r13b, 0x80
mov byte [r15 + rax], r13b
mov ebp, 1
jmp 0x1400aaaf2
cmp r13d, 0xa5
jae 0x1400aa908
lea rax, [0x14019c72c]
movzx r13d, word [rax + r13*2]
cmp r13w, 0x800
jae 0x1400aa88d
jmp 0x1400aaa25
lea ecx, [rax - 0x61]
cmp cl, 0x1a
jae 0x1400aa931
lea ecx, [rax - 0x47]
jmp 0x1400aa939
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x1400aa80c
jmp 0x1400aa9a8
lea r8, [r13 - 0xf0e]
cmp r8, 0x1318
jae 0x1400aa9ee
lea rax, str.OsOGP
movzx r13d, word [rax + r13*2 - 0x1e1c]
jmp 0x1400aa78c
lea ecx, [rax - 0x41]
cmp cl, 0x1a
jae 0x1400aa9a8
imul rdx, r8, 0x54
movzx r13d, cl
add r13, rdx
cmp r13, 0xc36
jae 0x1400aa9a8
mov rbp, r10
lea r8, [rsp + 0x2e]
mov word [r8], r13w
lea rdi, [0x140198644]
mov edx, 0x217
mov rcx, rdi
call fcn.1400a62b5
mov r9, rdx
test rax, rax
mov qword [rsp + 0x50], r14
je 0x1400aa9cd
mov rcx, r9
dec rcx
cmp rcx, 0x217
jae 0x1400ab18e
mov r10, rbp
lea rax, [0x140198a72]
add r13w, word [rax + r9*2 - 2]
sub r13w, word [rdi + r9*2 - 2]
jmp 0x1400aa88d
mov byte [rsi + 8], 2
test al, al
js 0x1400aa9bb
mov word [rsi + 9], 1
jmp 0x1400aa7ce
mov word [rsi + 9], 2
mov qword [rsi], 1
jmp 0x1400aa7d2
cmp r9, 0x217
jae 0x1400ab19f
mov r10, rbp
lea rax, [0x140198a72]
movzx r13d, word [rax + r9*2]
jmp 0x1400aa88d
cmp cl, 0x27
jne 0x1400aaa0f
cmp dl, 0xf
jae 0x1400aaa0f
lea rcx, [0x14019c876]
movzx r13d, word [rcx + rax*2]
test r13w, r13w
jne 0x1400aaa25
jmp 0x1400aaadd
cmp cl, 0x28
jne 0x1400aaa40
cmp dl, 0x10
jae 0x1400aaa40
lea rcx, [0x14019c894]
movzx r13d, word [rcx + rax*2]
mov eax, r13d
shr eax, 6
or al, 0xc0
mov byte [r15], al
mov r14d, 2
mov eax, 1
jmp 0x1400aa8b2
cmp cl, 0x25
jne 0x1400aaa5b
cmp dl, 0x44
jae 0x1400aaa5b
lea rcx, [0x14019c8b4]
movzx r13d, word [rcx + rax*2]
jmp 0x1400aa78c
add r13, 0xffffffffffffff44
cmp r13, 0x39f
jae 0x1400aaadd
mov rbp, r10
lea r8, [rsp + 0x2e]
mov word [r8], r13w
lea rdi, [0x14019c93c]
mov edx, 0x4d
mov rcx, rdi
call fcn.1400a62b5
mov r9, rdx
test rax, rax
je 0x1400aaab8
mov rcx, r9
dec rcx
cmp rcx, 0x4d
jae 0x1400ab1b3
lea rax, [0x14019c9d8]
add r13w, word [rax + r9*2 - 2]
sub r13w, word [rdi + r9*2 - 2]
jmp 0x1400aaace
cmp r9, 0x4d
jae 0x1400ab1c4
lea rax, [0x14019c9d8]
movzx r13d, word [rax + r9*2]
mov r10, rbp
cmp r13w, 0x80
jae 0x1400aa8dd
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
jmp 0x1400aa9c1
add r14, rax
inc r14
mov qword [rsp + 0x48], r14
lea r9, [0x1401a7a18]
mov rcx, rbp
mov rdx, r10
mov r8, rbx
call fcn.14003cd5a
mov r13, rax
mov rdi, rdx
lea r9, [0x1401a7a30]
mov rcx, r14
mov rdx, r15
mov r8, r12
call fcn.14003cd5a
cmp rdx, rdi
mov r14, rdi
cmovb r14, rdx
mov r8d, eax
xor r8d, r13d
xor ecx, ecx
test r8b, 7
je 0x1400aab8e
mov r10, qword [rsp + 0x30]
cmp rcx, r14
jae 0x1400aab60
mov r11b, byte [r13 + rcx]
test r11b, r11b
js 0x1400aac2e
mov byte [rax + rcx], r11b
inc rcx
jmp 0x1400aab44
xor eax, eax
cmp rdx, rdi
setb al
add rbp, r14
add r14, qword [rsp + 0x48]
lea rcx, [rsp + 0x38]
and ecx, 0xffff00
or rcx, rax
mov qword [rsi], rbp
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], r14
jmp 0x1400ab0ee
mov r9d, r13d
neg r9d
and r9d, 7
lea r8, [r9 + 0x10]
xor ecx, ecx
cmp r8, r14
ja 0x1400aab3f
xor ecx, ecx
mov r10, qword [rsp + 0x30]
cmp r9, rcx
je 0x1400aabc2
mov r11b, byte [r13 + rcx]
test r11b, r11b
js 0x1400aac2e
mov byte [rax + rcx], r11b
inc rcx
jmp 0x1400aabaa
movabs r8, 0x8080808080808080
lea r9, [r14 - 0x10]
mov r11, qword [r13 + rcx]
mov r10, qword [r13 + rcx + 8]
mov qword [rax + rcx], r11
mov qword [rax + rcx + 8], r10
and r11, r8
and r10, r8
mov r15, r10
or r15, r11
jne 0x1400aabff
add rcx, 0x10
cmp rcx, r9
jbe 0x1400aabd0
jmp 0x1400aab3f
test r11, r11
je 0x1400aac0d
bsf rax, r11
shr eax, 3
jmp 0x1400aac21
mov eax, 0x40
test r10, r10
je 0x1400aac1b
bsf rax, r10
shr eax, 3
add eax, 8
mov r10, qword [rsp + 0x30]
add rcx, rax
mov r11b, byte [r13 + rcx]
add rbp, rcx
mov rax, qword [rsp + 0x48]
lea r14, [rax + rcx]
mov qword [rsp + 0x48], r14
add rax, rcx
add rax, 2
cmp rax, r12
jae 0x1400ab12a
inc rbp
lea r13, [r10 + 1]
lea r8, [rsp + 0x2e]
mov rdi, rbp
lea eax, [r11 + 0x7f]
cmp al, 0x7d
ja 0x1400ab10c
cmp rdi, rbx
jae 0x1400ab102
mov cl, byte [r10 + rdi]
lea rbp, [rdi + 1]
cmp al, 0x1f
jbe 0x1400aacf1
lea edx, [rcx + 0x5f]
add r11b, 0x5f
movzx r9d, r11b
cmp dl, 0x5e
jae 0x1400aacfe
imul r12, r9, 0x5e
movzx ecx, dl
lea r9, [r12 + rcx]
add r9, 0xfffffffffffffa7e
add r12, rcx
cmp r9, 0x92e
jae 0x1400aad1c
lea rax, [0x140198ea0]
movzx eax, word [rax + r12*2 - 0xb04]
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov r15, qword [rsp + 0x38]
mov byte [r15 + r14], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [r15 + r14 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [r15 + r14 + 2], al
mov eax, 3
jmp 0x1400aaeea
lea edx, [rcx + 0x7f]
cmp dl, 0x7e
jae 0x1400aad0d
add cl, 0xb3
jmp 0x1400aad18
lea eax, [rcx + 0x7f]
cmp al, 0x20
jae 0x1400aad51
lea eax, [rcx - 0x4d]
jmp 0x1400aae2d
lea edx, [rcx - 0x61]
cmp dl, 0x1a
jae 0x1400aad64
add cl, 0xb9
mov edx, ecx
jmp 0x1400aad70
cmp r12d, 0xa5
jae 0x1400aadf8
lea rax, [0x14019c72c]
movzx eax, word [rax + r12*2]
mov r15, qword [rsp + 0x38]
cmp ax, 0x800
jae 0x1400aaf64
mov ecx, eax
shr ecx, 6
or cl, 0xc0
jmp 0x1400aafb7
lea eax, [rcx - 0x61]
cmp al, 0x1a
jae 0x1400aae22
lea eax, [rcx - 0x47]
jmp 0x1400aae2d
lea edx, [rcx - 0x41]
cmp dl, 0x1a
jae 0x1400ab145
movzx eax, al
imul eax, eax, 0xb2
movzx r15d, dl
add r15d, eax
mov word [rsp + 0x2e], r15w
mov edx, 0x437
lea rcx, [0x140197568]
mov r12, r8
call fcn.1400a62b5
mov r9, rdx
test rax, rax
je 0x1400aadd1
mov rcx, r9
dec rcx
cmp rcx, 0x437
jae 0x1400ab16f
lea rax, [0x140197dd6]
add r15w, word [rax + r9*2 - 2]
lea rax, [0x140197568]
sub r15w, word [rax + r9*2 - 2]
jmp 0x1400aadea
cmp r9, 0x437
jae 0x1400ab180
lea rax, [0x140197dd6]
movzx r15d, word [rax + r9*2]
mov r10, qword [rsp + 0x30]
movzx eax, r15w
jmp 0x1400aaeb8
lea r9, [r12 - 0xf0e]
cmp r9, 0x1318
jae 0x1400aaf78
lea rax, str.OsOGP
movzx eax, word [rax + r12*2 - 0x1e1c]
jmp 0x1400aacbd
lea eax, [rcx - 0x41]
cmp al, 0x1a
jae 0x1400ab145
imul rdx, r9, 0x54
movzx r15d, al
add r15, rdx
cmp r15, 0xc36
jae 0x1400ab145
mov word [rsp + 0x2e], r15w
mov edx, 0x217
lea rcx, [0x140198644]
mov r12, r8
call fcn.1400a62b5
mov r9, rdx
test rax, rax
je 0x1400aae96
mov rcx, r9
dec rcx
cmp rcx, 0x217
jae 0x1400ab18e
lea rax, [0x140198a72]
add r15w, word [rax + r9*2 - 2]
lea rax, [0x140198644]
sub r15w, word [rax + r9*2 - 2]
jmp 0x1400aaeaf
cmp r9, 0x217
jae 0x1400ab19f
lea rax, [0x140198a72]
movzx r15d, word [rax + r9*2]
mov r10, qword [rsp + 0x30]
movzx eax, r15w
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov r15, qword [rsp + 0x38]
mov byte [r15 + r14], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [r15 + r14 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [r15 + r14 + 2], al
mov eax, 3
mov r8, r12
add r14, rax
cmp rbp, rbx
jae 0x1400ab118
lea rax, [r14 + 2]
mov r12, qword [rsp + 0x40]
cmp rax, r12
jae 0x1400ab11e
lea rcx, [r15 + r14]
lea rdx, [rdi + r13]
xor eax, eax
mov r11b, byte [rdx + rax]
test r11b, r11b
js 0x1400aaf50
lea rbp, [rdi + rax]
add rbp, 2
mov byte [rcx + rax], r11b
cmp r11b, 0x3b
ja 0x1400aaaec
cmp rbp, rbx
jae 0x1400ab0cc
lea r9, [r14 + rax]
add r9, 3
cmp r9, r12
jae 0x1400ab0d5
inc rax
jmp 0x1400aaf12
add r14, rax
mov qword [rsp + 0x48], r14
add rdi, rax
add rdi, 2
jmp 0x1400aac5e
movzx ecx, ax
mov edx, ecx
shr edx, 0xc
or dl, 0xe0
mov byte [r15 + r14], dl
jmp 0x1400aacd0
cmp al, 0x27
jne 0x1400aaf96
cmp dl, 0xf
jae 0x1400aaf96
lea rax, [0x14019c876]
movzx eax, word [rax + rcx*2]
test ax, ax
jne 0x1400aafaa
jmp 0x1400ab163
cmp al, 0x28
jne 0x1400aafce
cmp dl, 0x10
jae 0x1400aafce
lea rax, [0x14019c894]
movzx eax, word [rax + rcx*2]
mov ecx, eax
shr ecx, 6
or cl, 0xc0
mov r15, qword [rsp + 0x38]
mov byte [r15 + r14], cl
and al, 0x3f
or al, 0x80
mov byte [r15 + r14 + 1], al
mov eax, 2
jmp 0x1400aaeea
cmp al, 0x25
jne 0x1400aafe7
cmp dl, 0x44
jae 0x1400aafe7
lea rax, [0x14019c8b4]
movzx eax, word [rax + rcx*2]
jmp 0x1400aacbd
add r12, 0xffffffffffffff44
cmp r12, 0x39f
jae 0x1400ab163
mov word [rsp + 0x2e], r12w
mov edx, 0x4d
lea rcx, [0x14019c93c]
mov r15, r8
call fcn.1400a62b5
mov r9, rdx
test rax, rax
je 0x1400ab049
mov rcx, r9
dec rcx
cmp rcx, 0x4d
jae 0x1400ab1b3
lea rax, [0x14019c9d8]
add r12w, word [rax + r9*2 - 2]
lea rax, [0x14019c93c]
sub r12w, word [rax + r9*2 - 2]
jmp 0x1400ab05f
cmp r9, 0x4d
jae 0x1400ab1c4
lea rax, [0x14019c9d8]
movzx r12d, word [rax + r9*2]
mov r10, qword [rsp + 0x30]
cmp r12w, 0x80
jb 0x1400ab163
mov r8, r15
mov r15, qword [rsp + 0x38]
cmp r12w, 0x800
jae 0x1400ab09e
mov eax, r12d
shr eax, 6
or al, 0xc0
mov byte [r15 + r14], al
and r12b, 0x3f
or r12b, 0x80
mov byte [r15 + r14 + 1], r12b
jmp 0x1400aafc4
movzx eax, r12w
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [r15 + r14], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [r15 + r14 + 1], al
and r12b, 0x3f
or r12b, 0x80
mov byte [r15 + r14 + 2], r12b
jmp 0x1400aace7
mov byte [rsi + 8], 0
mov qword [rsi], rbx
jmp 0x1400ab0e4
mov byte [rsi + 8], 1
lea rcx, [rdi + rax]
add rcx, 2
mov qword [rsi], rcx
add rax, r14
inc rax
mov qword [rsi + 0x10], rax
mov rax, rsi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsp + 0xd0], 0
je 0x1400ab134
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
jmp 0x1400ab153
mov byte [rsi + 8], 0
jmp 0x1400ab122
mov byte [rsi + 8], 1
mov qword [rsi], rbp
jmp 0x1400aab85
mov eax, 1
jmp 0x1400aab70
mov rcx, qword [rsp + 0x50]
mov byte [rcx], 1
mov byte [rcx + 1], al
mov byte [rsi + 8], 0
jmp 0x1400ab153
mov byte [rsi + 8], 2
test cl, cl
js 0x1400ab15b
mov word [rsi + 9], 1
mov qword [rsi], rdi
jmp 0x1400aab85
mov word [rsi + 9], 2
jmp 0x1400ab122
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
jmp 0x1400ab122
lea r8, [0x1401a7990]
mov edx, 0x437
call fcn.14016c200
lea r8, [0x1401a7978]
mov edx, 0x437
jmp 0x1400ab1ab
lea r8, [0x1401a7990]
mov edx, 0x217
call fcn.14016c200
lea r8, [0x1401a7978]
mov edx, 0x217
mov rcx, r9
call fcn.14016c200
lea r8, [0x1401a7990]
mov edx, 0x4d
call fcn.14016c200
lea r8, [0x1401a7978]
mov edx, 0x4d
jmp 0x1400ab1ab