Function at 0x1400aa7df
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 0x1400aa8af
movzx ecx, byte [r14 + 1]
mov byte [r14], 0
test rbx, rbx
je 0x1400aa8be
cmp r12, 2
jbe 0x1400aa8d4
mov al, byte [r10]
cmp cl, 0x1f
jbe 0x1400aa8ec
lea edx, [rax + 0x5f]
lea r8d, [rcx - 0x20]
movzx r8d, r8b
cmp dl, 0x5e
jae 0x1400aa8f8
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 0x1400aa9d8
lea rax, [0x140498f60]
movzx r13d, word [rax + r13*2 - 0xb04]
mov eax, r13d
shr eax, 0xc
or al, 0xe0
mov byte [r15], al
mov eax, r13d
jmp 0x1400aa9ac
mov qword [rsp + 0x50], r14
xor r14d, r14d
xor ebp, ebp
jmp 0x1400aac07
cmp byte [rsp + 0xd0], 0
je 0x1400aa8da
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
jmp 0x1400aa8de
mov byte [rsi + 8], 1
jmp 0x1400aa8de
mov byte [rsi + 8], 0
and qword [rsi], 0
and qword [rsi + 0x10], 0
jmp 0x1400ab1fe
lea edx, [rax + 0x7f]
cmp dl, 0x7e
jae 0x1400aa90c
add al, 0xb3
jmp 0x1400aa91a
lea ecx, [rax + 0x7f]
cmp cl, 0x20
jae 0x1400aa9fa
lea ecx, [rax - 0x4d]
jmp 0x1400aaa49
lea edx, [rax - 0x61]
cmp dl, 0x1a
jae 0x1400aaa07
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, [0x140497628]
mov edx, 0x437
mov rcx, rdi
call fcn.1400a63c5
mov r9, rdx
test rax, rax
mov qword [rsp + 0x50], r14
je 0x1400aa981
mov rcx, r9
dec rcx
cmp rcx, 0x437
jae 0x1400ab27f
lea rax, [0x140497e96]
add r13w, word [rax + r9*2 - 2]
sub r13w, word [rdi + r9*2 - 2]
jmp 0x1400aa99a
cmp r9, 0x437
jae 0x1400ab290
lea rax, [0x140497e96]
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 0x1400aac02
cmp r13d, 0xa5
jae 0x1400aaa18
lea rax, [0x14049c7ec]
movzx r13d, word [rax + r13*2]
cmp r13w, 0x800
jae 0x1400aa99d
jmp 0x1400aab35
lea ecx, [rax - 0x61]
cmp cl, 0x1a
jae 0x1400aaa41
lea ecx, [rax - 0x47]
jmp 0x1400aaa49
lea edx, [rax - 0x41]
cmp dl, 0x1a
jb 0x1400aa91c
jmp 0x1400aaab8
lea r8, [r13 - 0xf0e]
cmp r8, 0x1318
jae 0x1400aaafe
lea rax, str.OsOGP
movzx r13d, word [rax + r13*2 - 0x1e1c]
jmp 0x1400aa89c
lea ecx, [rax - 0x41]
cmp cl, 0x1a
jae 0x1400aaab8
imul rdx, r8, 0x54
movzx r13d, cl
add r13, rdx
cmp r13, 0xc36
jae 0x1400aaab8
mov rbp, r10
lea r8, [rsp + 0x2e]
mov word [r8], r13w
lea rdi, [0x140498704]
mov edx, 0x217
mov rcx, rdi
call fcn.1400a63c5
mov r9, rdx
test rax, rax
mov qword [rsp + 0x50], r14
je 0x1400aaadd
mov rcx, r9
dec rcx
cmp rcx, 0x217
jae 0x1400ab29e
mov r10, rbp
lea rax, [0x140498b32]
add r13w, word [rax + r9*2 - 2]
sub r13w, word [rdi + r9*2 - 2]
jmp 0x1400aa99d
mov byte [rsi + 8], 2
test al, al
js 0x1400aaacb
mov word [rsi + 9], 1
jmp 0x1400aa8de
mov word [rsi + 9], 2
mov qword [rsi], 1
jmp 0x1400aa8e2
cmp r9, 0x217
jae 0x1400ab2af
mov r10, rbp
lea rax, [0x140498b32]
movzx r13d, word [rax + r9*2]
jmp 0x1400aa99d
cmp cl, 0x27
jne 0x1400aab1f
cmp dl, 0xf
jae 0x1400aab1f
lea rcx, [0x14049c936]
movzx r13d, word [rcx + rax*2]
test r13w, r13w
jne 0x1400aab35
jmp 0x1400aabed
cmp cl, 0x28
jne 0x1400aab50
cmp dl, 0x10
jae 0x1400aab50
lea rcx, [0x14049c954]
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 0x1400aa9c2
cmp cl, 0x25
jne 0x1400aab6b
cmp dl, 0x44
jae 0x1400aab6b
lea rcx, [0x14049c974]
movzx r13d, word [rcx + rax*2]
jmp 0x1400aa89c
add r13, 0xffffffffffffff44
cmp r13, 0x39f
jae 0x1400aabed
mov rbp, r10
lea r8, [rsp + 0x2e]
mov word [r8], r13w
lea rdi, [0x14049c9fc]
mov edx, 0x4d
mov rcx, rdi
call fcn.1400a63c5
mov r9, rdx
test rax, rax
je 0x1400aabc8
mov rcx, r9
dec rcx
cmp rcx, 0x4d
jae 0x1400ab2c3
lea rax, [0x14049ca98]
add r13w, word [rax + r9*2 - 2]
sub r13w, word [rdi + r9*2 - 2]
jmp 0x1400aabde
cmp r9, 0x4d
jae 0x1400ab2d4
lea rax, [0x14049ca98]
movzx r13d, word [rax + r9*2]
mov r10, rbp
cmp r13w, 0x80
jae 0x1400aa9ed
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
jmp 0x1400aaad1
add r14, rax
inc r14
mov qword [rsp + 0x48], r14
lea r9, [0x1404a7ad8]
mov rcx, rbp
mov rdx, r10
mov r8, rbx
call fcn.14003ce6a
mov r13, rax
mov rdi, rdx
lea r9, str.hzJ_
mov rcx, r14
mov rdx, r15
mov r8, r12
call fcn.14003ce6a
cmp rdx, rdi
mov r14, rdi
cmovb r14, rdx
mov r8d, eax
xor r8d, r13d
xor ecx, ecx
test r8b, 7
je 0x1400aac9e
mov r10, qword [rsp + 0x30]
cmp rcx, r14
jae 0x1400aac70
mov r11b, byte [r13 + rcx]
test r11b, r11b
js 0x1400aad3e
mov byte [rax + rcx], r11b
inc rcx
jmp 0x1400aac54
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 0x1400ab1fe
mov r9d, r13d
neg r9d
and r9d, 7
lea r8, [r9 + 0x10]
xor ecx, ecx
cmp r8, r14
ja 0x1400aac4f
xor ecx, ecx
mov r10, qword [rsp + 0x30]
cmp r9, rcx
je 0x1400aacd2
mov r11b, byte [r13 + rcx]
test r11b, r11b
js 0x1400aad3e
mov byte [rax + rcx], r11b
inc rcx
jmp 0x1400aacba
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 0x1400aad0f
add rcx, 0x10
cmp rcx, r9
jbe 0x1400aace0
jmp 0x1400aac4f
test r11, r11
je 0x1400aad1d
bsf rax, r11
shr eax, 3
jmp 0x1400aad31
mov eax, 0x40
test r10, r10
je 0x1400aad2b
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 0x1400ab23a
inc rbp
lea r13, [r10 + 1]
lea r8, [rsp + 0x2e]
mov rdi, rbp
lea eax, [r11 + 0x7f]
cmp al, 0x7d
ja 0x1400ab21c
cmp rdi, rbx
jae 0x1400ab212
mov cl, byte [r10 + rdi]
lea rbp, [rdi + 1]
cmp al, 0x1f
jbe 0x1400aae01
lea edx, [rcx + 0x5f]
add r11b, 0x5f
movzx r9d, r11b
cmp dl, 0x5e
jae 0x1400aae0e
imul r12, r9, 0x5e
movzx ecx, dl
lea r9, [r12 + rcx]
add r9, 0xfffffffffffffa7e
add r12, rcx
cmp r9, 0x92e
jae 0x1400aae2c
lea rax, [0x140498f60]
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 0x1400aaffa
lea edx, [rcx + 0x7f]
cmp dl, 0x7e
jae 0x1400aae1d
add cl, 0xb3
jmp 0x1400aae28
lea eax, [rcx + 0x7f]
cmp al, 0x20
jae 0x1400aae61
lea eax, [rcx - 0x4d]
jmp 0x1400aaf3d
lea edx, [rcx - 0x61]
cmp dl, 0x1a
jae 0x1400aae74
add cl, 0xb9
mov edx, ecx
jmp 0x1400aae80
cmp r12d, 0xa5
jae 0x1400aaf08
lea rax, [0x14049c7ec]
movzx eax, word [rax + r12*2]
mov r15, qword [rsp + 0x38]
cmp ax, 0x800
jae 0x1400ab074
mov ecx, eax
shr ecx, 6
or cl, 0xc0
jmp 0x1400ab0c7
lea eax, [rcx - 0x61]
cmp al, 0x1a
jae 0x1400aaf32
lea eax, [rcx - 0x47]
jmp 0x1400aaf3d
lea edx, [rcx - 0x41]
cmp dl, 0x1a
jae 0x1400ab255
movzx eax, al
imul eax, eax, 0xb2
movzx r15d, dl
add r15d, eax
mov word [rsp + 0x2e], r15w
mov edx, 0x437
lea rcx, [0x140497628]
mov r12, r8
call fcn.1400a63c5
mov r9, rdx
test rax, rax
je 0x1400aaee1
mov rcx, r9
dec rcx
cmp rcx, 0x437
jae 0x1400ab27f
lea rax, [0x140497e96]
add r15w, word [rax + r9*2 - 2]
lea rax, [0x140497628]
sub r15w, word [rax + r9*2 - 2]
jmp 0x1400aaefa
cmp r9, 0x437
jae 0x1400ab290
lea rax, [0x140497e96]
movzx r15d, word [rax + r9*2]
mov r10, qword [rsp + 0x30]
movzx eax, r15w
jmp 0x1400aafc8
lea r9, [r12 - 0xf0e]
cmp r9, 0x1318
jae 0x1400ab088
lea rax, str.OsOGP
movzx eax, word [rax + r12*2 - 0x1e1c]
jmp 0x1400aadcd
lea eax, [rcx - 0x41]
cmp al, 0x1a
jae 0x1400ab255
imul rdx, r9, 0x54
movzx r15d, al
add r15, rdx
cmp r15, 0xc36
jae 0x1400ab255
mov word [rsp + 0x2e], r15w
mov edx, 0x217
lea rcx, [0x140498704]
mov r12, r8
call fcn.1400a63c5
mov r9, rdx
test rax, rax
je 0x1400aafa6
mov rcx, r9
dec rcx
cmp rcx, 0x217
jae 0x1400ab29e
lea rax, [0x140498b32]
add r15w, word [rax + r9*2 - 2]
lea rax, [0x140498704]
sub r15w, word [rax + r9*2 - 2]
jmp 0x1400aafbf
cmp r9, 0x217
jae 0x1400ab2af
lea rax, [0x140498b32]
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 0x1400ab228
lea rax, [r14 + 2]
mov r12, qword [rsp + 0x40]
cmp rax, r12
jae 0x1400ab22e
lea rcx, [r15 + r14]
lea rdx, [rdi + r13]
xor eax, eax
mov r11b, byte [rdx + rax]
test r11b, r11b
js 0x1400ab060
lea rbp, [rdi + rax]
add rbp, 2
mov byte [rcx + rax], r11b
cmp r11b, 0x3b
ja 0x1400aabfc
cmp rbp, rbx
jae 0x1400ab1dc
lea r9, [r14 + rax]
add r9, 3
cmp r9, r12
jae 0x1400ab1e5
inc rax
jmp 0x1400ab022
add r14, rax
mov qword [rsp + 0x48], r14
add rdi, rax
add rdi, 2
jmp 0x1400aad6e
movzx ecx, ax
mov edx, ecx
shr edx, 0xc
or dl, 0xe0
mov byte [r15 + r14], dl
jmp 0x1400aade0
cmp al, 0x27
jne 0x1400ab0a6
cmp dl, 0xf
jae 0x1400ab0a6
lea rax, [0x14049c936]
movzx eax, word [rax + rcx*2]
test ax, ax
jne 0x1400ab0ba
jmp 0x1400ab273
cmp al, 0x28
jne 0x1400ab0de
cmp dl, 0x10
jae 0x1400ab0de
lea rax, [0x14049c954]
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 0x1400aaffa
cmp al, 0x25
jne 0x1400ab0f7
cmp dl, 0x44
jae 0x1400ab0f7
lea rax, [0x14049c974]
movzx eax, word [rax + rcx*2]
jmp 0x1400aadcd
add r12, 0xffffffffffffff44
cmp r12, 0x39f
jae 0x1400ab273
mov word [rsp + 0x2e], r12w
mov edx, 0x4d
lea rcx, [0x14049c9fc]
mov r15, r8
call fcn.1400a63c5
mov r9, rdx
test rax, rax
je 0x1400ab159
mov rcx, r9
dec rcx
cmp rcx, 0x4d
jae 0x1400ab2c3
lea rax, [0x14049ca98]
add r12w, word [rax + r9*2 - 2]
lea rax, [0x14049c9fc]
sub r12w, word [rax + r9*2 - 2]
jmp 0x1400ab16f
cmp r9, 0x4d
jae 0x1400ab2d4
lea rax, [0x14049ca98]
movzx r12d, word [rax + r9*2]
mov r10, qword [rsp + 0x30]
cmp r12w, 0x80
jb 0x1400ab273
mov r8, r15
mov r15, qword [rsp + 0x38]
cmp r12w, 0x800
jae 0x1400ab1ae
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 0x1400ab0d4
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 0x1400aadf7
mov byte [rsi + 8], 0
mov qword [rsi], rbx
jmp 0x1400ab1f4
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 0x1400ab244
mov word [rsi + 8], 0x102
mov byte [rsi + 0xa], 0
jmp 0x1400ab263
mov byte [rsi + 8], 0
jmp 0x1400ab232
mov byte [rsi + 8], 1
mov qword [rsi], rbp
jmp 0x1400aac95
mov eax, 1
jmp 0x1400aac80
mov rcx, qword [rsp + 0x50]
mov byte [rcx], 1
mov byte [rcx + 1], al
mov byte [rsi + 8], 0
jmp 0x1400ab263
mov byte [rsi + 8], 2
test cl, cl
js 0x1400ab26b
mov word [rsi + 9], 1
mov qword [rsi], rdi
jmp 0x1400aac95
mov word [rsi + 9], 2
jmp 0x1400ab232
mov word [rsi + 8], 0x202
mov byte [rsi + 0xa], 0
jmp 0x1400ab232
lea r8, [0x1404a7a50]
mov edx, 0x437
call fcn.14016c310
lea r8, [0x1404a7a38]
mov edx, 0x437
jmp 0x1400ab2bb
lea r8, [0x1404a7a50]
mov edx, 0x217
call fcn.14016c310
lea r8, [0x1404a7a38]
mov edx, 0x217
mov rcx, r9
call fcn.14016c310
lea r8, [0x1404a7a50]
mov edx, 0x4d
call fcn.14016c310
lea r8, [0x1404a7a38]
mov edx, 0x4d
jmp 0x1400ab2bb