Function at 0x14009e4e0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
mov qword [rax + 0x20], r9
push rbp
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x98
mov qword [rax - 0x28], rbx
xor r11d, r11d
mov qword [rax - 0x30], rsi
test rcx, rcx
mov qword [rax - 0x40], r13
lea rsi, [rbp + 0x7f]
lea rax, [0x140066820]
mov qword [rbp - 0x21], rsi
lea r13, [fcn.140066830]
mov qword [rbp - 0x31], r11
mov r15, r13
mov rbx, r8
cmovne r15, rax
mov r12, rdx
movzx eax, byte [r8]
mov r14, rcx
test al, al
je 0x14009f6b9
mov qword [rsp + 0x80], rdi
mov r10d, 0x100
nop dword [rax + rax]
cmp al, 0x25
je 0x14009e58c
mov r8, r11
inc r11
mov qword [rbp - 0x31], r11
cmp r15, r13
je 0x14009f6a2
mov r9, r12
mov rdx, r14
movzx ecx, al
call r15
mov r11, qword [rbp - 0x31]
jmp 0x14009f69c
inc rbx
xor edi, edi
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14009e5c8
cmp al, 0x23
je 0x14009e5c0
cmp al, 0x2b
je 0x14009e5b8
cmp al, 0x2d
je 0x14009e5b0
cmp al, 0x30
jne 0x14009e5d0
or edi, 1
inc rbx
jmp 0x14009e591
or edi, 2
inc rbx
jmp 0x14009e591
or edi, 4
inc rbx
jmp 0x14009e591
or edi, 0x10
inc rbx
jmp 0x14009e591
inc rbx
or edi, 8
jmp 0x14009e591
xor r9d, r9d
movzx edx, al
mov dword [rbp - 0x39], r9d
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14009e600
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14009e630
movsx eax, dl
lea r9d, [r9 + r9*4]
movzx edx, byte [rbx + 1]
lea r9d, [r9 - 0x18]
inc rbx
lea r9d, [rax + r9*2]
jmp 0x14009e5e1
mov qword [rbp - 0x19], rbx
cmp dl, 0x2a
jne 0x14009e638
mov ecx, dword [rsi]
add rsi, 8
mov qword [rbp - 0x21], rsi
mov r9d, ecx
test ecx, ecx
jns 0x14009e61d
neg r9d
movzx edx, byte [rbx + 1]
mov eax, edi
or eax, 2
inc rbx
test ecx, ecx
cmovns eax, edi
mov edi, eax
mov dword [rbp - 0x39], r9d
mov qword [rbp - 0x19], rbx
xor r13d, r13d
cmp dl, 0x2e
jne 0x14009e696
movzx edx, byte [rbx + 1]
inc rbx
bts edi, 0xa
mov qword [rbp - 0x19], rbx
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14009e676
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x14009e692
movsx eax, dl
lea r13d, [r13 + r13*4]
movzx edx, byte [rbx + 1]
lea r13d, [r13 - 0x18]
inc rbx
lea r13d, [rax + r13*2]
jmp 0x14009e656
cmp dl, 0x2a
jne 0x14009e696
mov eax, dword [rsi]
add rsi, 8
movzx edx, byte [rbx + 1]
test eax, eax
mov qword [rbp - 0x21], rsi
cmovg r13d, eax
inc rbx
mov qword [rbp - 0x19], rbx
cmp dl, 0x68
je 0x14009e6dc
cmp dl, 0x6a
je 0x14009e6af
cmp dl, 0x6c
je 0x14009e6b5
cmp dl, 0x74
je 0x14009e6af
cmp dl, 0x7a
jne 0x14009e6f6
bts edi, 9
jmp 0x14009e6ef
movzx ecx, byte [rbx + 1]
inc rbx
mov qword [rbp - 0x19], rbx
cmp cl, 0x6c
jne 0x14009e6cc
inc rbx
mov qword [rbp - 0x19], rbx
cmp cl, 0x6c
mov eax, 0x300
cmovne eax, r10d
or edi, eax
jmp 0x14009e6f6
inc rbx
bts edi, 7
mov qword [rbp - 0x19], rbx
cmp byte [rbx], 0x68
jne 0x14009e6f6
or edi, 0x40
inc rbx
mov qword [rbp - 0x19], rbx
movsx r10d, byte [rbx]
lea eax, [r10 - 0x25]
cmp eax, 0x53
ja case.0x14009e722.42
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x9fae4]
mov ecx, dword [rdx + rax*4 + 0x9facc]
add rcx, rdx
jmp rcx
lea eax, [r10 - 0x58]
test al, 0xdf
je 0x14009e753
cmp r10b, 0x6f
jne 0x14009e73a
mov r12d, 8
jmp 0x14009e775
cmp r10b, 0x62
jne 0x14009e748
mov r12d, 2
jmp 0x14009e775
mov r12d, 0xa
and edi, 0xffffffef
jmp 0x14009e759
mov r12d, select
mov eax, edi
or eax, 0x20
cmp r10b, 0x58
cmovne eax, edi
mov ecx, eax
cmp r10b, 0x69
je 0x14009e789
mov edi, eax
cmp r10b, 0x64
je 0x14009e789
and edi, 0xfffffff3
mov esi, edi
mov eax, edi
and esi, 0xfffffffe
and eax, 0x400
cmove esi, edi
jmp 0x14009e7ac
mov esi, ecx
mov eax, ecx
and esi, 0xfffffffe
and eax, 0x400
cmove esi, ecx
cmp r10b, 0x69
je 0x14009ee9f
cmp r10b, 0x64
je 0x14009ee9f
mov rax, qword [rbp - 0x21]
add rax, 8
mov qword [rbp - 0x21], rax
bt esi, 9
jae 0x14009ea15
mov r8, qword [rax - 8]
xor ebx, ebx
mov r10d, esi
mov r9d, r12d
and r10d, 0xffffffef
test r8, r8
cmovne r10d, esi
mov r11d, r10d
and r11d, 0x400
je 0x14009e7f0
test r8, r8
je 0x14009e82b
nop word [rax + rax]
xor edx, edx
mov rax, r8
div r9
movsx ecx, dl
mov r8, rax
cmp dl, 0xa
jge 0x14009e808
lea eax, [rcx + 0x30]
jmp 0x14009e819
movzx eax, r10b
not al
and eax, 0x20
or eax, 0x41
add eax, 0xfffffff6
add eax, ecx
mov byte [rbp + rbx - 0x11], al
inc rbx
test r8, r8
je 0x14009e82b
cmp rbx, 0x20
jb 0x14009e7f0
mov ecx, dword [rbp - 0x39]
mov r14d, r10d
and r14d, 2
jne 0x14009e888
test ecx, ecx
je 0x14009e84e
mov eax, r10d
and eax, 1
je 0x14009e84e
test r10b, 0xc
je 0x14009e84e
dec ecx
mov dword [rbp - 0x39], ecx
mov eax, r13d
cmp rbx, rax
jae 0x14009e869
cmp rbx, 0x20
jae 0x14009e869
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009e856
mov eax, r10d
and eax, 1
je 0x14009e888
mov eax, ecx
cmp rbx, rax
jae 0x14009e888
cmp rbx, 0x20
jae 0x14009e888
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009e873
test r10b, 0x10
je 0x14009e900
test r11d, r11d
jne 0x14009e8b8
test rbx, rbx
je 0x14009e8b8
mov eax, r13d
cmp rbx, rax
je 0x14009e8a7
mov eax, ecx
cmp rbx, rax
jne 0x14009e8b8
sub rbx, 1
je 0x14009e8b8
cmp r12d, 0x10
jne 0x14009e8de
dec rbx
jmp 0x14009e8be
cmp r12d, 0x10
jne 0x14009e8de
test r10b, 0x20
jne 0x14009e8d1
cmp rbx, 0x20
jae 0x14009e921
mov byte [rbp + rbx - 0x11], 0x78
jmp 0x14009e8ef
cmp rbx, 0x20
jae 0x14009e921
mov byte [rbp + rbx - 0x11], 0x58
jmp 0x14009e8ef
cmp r12d, 2
jne 0x14009e8f2
cmp rbx, 0x20
jae 0x14009e921
mov byte [rbp + rbx - 0x11], 0x62
inc rbx
cmp rbx, 0x20
jae 0x14009e921
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009e921
test r10b, 4
je 0x14009e913
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009e91e
test r10b, 8
je 0x14009e921
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
mov r12, qword [rbp - 0x31]
mov r13, qword [rbp + 0x6f]
mov rdi, r12
test r10b, 3
jne 0x14009e977
mov esi, ecx
cmp rbx, rsi
jae 0x14009e977
mov r12, qword [rbp + 0x67]
lea rax, [fcn.140066830]
sub rsi, rbx
nop word [rax + rax]
mov r8, rdi
inc rdi
cmp r15, rax
je 0x14009e96d
mov r9, r13
mov rdx, r12
mov cl, 0x20
call r15
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009e950
mov r12, qword [rbp - 0x31]
lea rsi, [fcn.140066830]
test rbx, rbx
je 0x14009e9b5
mov r12, qword [rbp + 0x67]
nop word [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, rsi
je 0x14009e9ac
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r13
mov rdx, r12
call r15
test rbx, rbx
jne 0x14009e990
mov r12, qword [rbp - 0x31]
test r14d, r14d
je 0x14009e9f2
mov ebx, dword [rbp - 0x39]
mov rax, rdi
sub rax, r12
cmp rax, rbx
jae 0x14009e9f2
nop dword [rax + rax]
mov r8, rdi
inc rdi
cmp r15, rsi
je 0x14009e9e7
mov rdx, qword [rbp + 0x67]
mov r9, r13
mov cl, 0x20
call r15
mov rax, rdi
sub rax, r12
cmp rax, rbx
jb 0x14009e9d0
mov rsi, qword [rbp - 0x21]
mov qword [rbp - 0x31], rdi
mov r11, rdi
mov r14, qword [rbp + 0x67]
lea r13, [fcn.140066830]
mov r12, qword [rbp + 0x6f]
mov rbx, qword [rbp - 0x19]
jmp 0x14009f69c
bt esi, 8
jae 0x14009ec4b
mov r8d, dword [rax - 8]
xor ebx, ebx
mov qword [rbp - 0x21], rax
test r8d, r8d
jne 0x14009ea31
and esi, 0xffffffef
mov r9d, esi
and r9d, 0x400
je 0x14009ea42
test r8d, r8d
je 0x14009ea7d
xor edx, edx
mov eax, r8d
div r12d
movsx ecx, dl
mov r8d, eax
cmp dl, 0xa
jge 0x14009ea5a
lea eax, [rcx + 0x30]
jmp 0x14009ea6b
movzx eax, sil
not al
and eax, 0x20
or eax, 0x41
add eax, 0xfffffff6
add eax, ecx
mov byte [rbp + rbx - 0x11], al
inc rbx
test r8d, r8d
je 0x14009ea7d
cmp rbx, 0x20
jb 0x14009ea42
mov ecx, dword [rbp - 0x39]
mov r14d, esi
and r14d, 2
mov dword [rbp - 0x29], r14d
jne 0x14009eae5
test ecx, ecx
je 0x14009eaa3
mov eax, esi
and eax, 1
je 0x14009eaa3
test sil, 0xc
je 0x14009eaa3
dec ecx
mov dword [rbp - 0x39], ecx
mov eax, r13d
cmp rbx, rax
jae 0x14009eac3
nop dword [rax + rax]
cmp rbx, 0x20
jae 0x14009eac3
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009eab0
mov eax, esi
and eax, 1
je 0x14009eae5
mov eax, ecx
nop dword [rax]
cmp rbx, rax
jae 0x14009eae5
cmp rbx, 0x20
jae 0x14009eae5
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009ead0
test sil, 0x10
je 0x14009eb5d
test r9d, r9d
jne 0x14009eb15
test rbx, rbx
je 0x14009eb15
mov eax, r13d
cmp rbx, rax
je 0x14009eb04
mov eax, ecx
cmp rbx, rax
jne 0x14009eb15
sub rbx, 1
je 0x14009eb15
cmp r12d, 0x10
jne 0x14009eb3b
dec rbx
jmp 0x14009eb1b
cmp r12d, 0x10
jne 0x14009eb3b
test sil, 0x20
jne 0x14009eb2e
cmp rbx, 0x20
jae 0x14009eb7e
mov byte [rbp + rbx - 0x11], 0x78
jmp 0x14009eb4c
cmp rbx, 0x20
jae 0x14009eb7e
mov byte [rbp + rbx - 0x11], 0x58
jmp 0x14009eb4c
cmp r12d, 2
jne 0x14009eb4f
cmp rbx, 0x20
jae 0x14009eb7e
mov byte [rbp + rbx - 0x11], 0x62
inc rbx
cmp rbx, 0x20
jae 0x14009eb7e
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009eb7e
test sil, 4
je 0x14009eb70
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009eb7b
test sil, 8
je 0x14009eb7e
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
mov r13, qword [rbp + 0x6f]
mov rdi, r11
test sil, 3
jne 0x14009ebc7
mov esi, ecx
cmp rbx, rsi
jae 0x14009ebc7
mov r14, qword [rbp + 0x67]
lea rax, [fcn.140066830]
sub rsi, rbx
mov r8, rdi
inc rdi
cmp r15, rax
je 0x14009ebbd
mov r9, r13
mov rdx, r14
mov cl, 0x20
call r15
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009eba0
mov r14d, dword [rbp - 0x29]
lea rsi, [fcn.140066830]
test rbx, rbx
je 0x14009ec05
mov r14, qword [rbp + 0x67]
nop word [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, rsi
je 0x14009ebfc
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r13
mov rdx, r14
call r15
test rbx, rbx
jne 0x14009ebe0
mov r14d, dword [rbp - 0x29]
test r14d, r14d
je 0x14009e9f2
mov r12, qword [rbp - 0x31]
mov rax, rdi
mov ebx, dword [rbp - 0x39]
sub rax, r12
cmp rax, rbx
jae 0x14009e9f2
mov r8, rdi
inc rdi
cmp r15, rsi
je 0x14009ec3b
mov rdx, qword [rbp + 0x67]
mov r9, r13
mov cl, 0x20
call r15
mov rax, rdi
sub rax, r12
cmp rax, rbx
jb 0x14009ec24
jmp 0x14009e9f2
test sil, 0x40
je 0x14009ec58
movzx r8d, byte [rax - 8]
jmp 0x14009ec68
test sil, sil
jns 0x14009ec64
movzx r8d, word [rax - 8]
jmp 0x14009ec68
mov r8d, dword [rax - 8]
xor ebx, ebx
test r8d, r8d
jne 0x14009ec72
and esi, 0xffffffef
mov r9d, esi
and r9d, 0x400
je 0x14009ec90
test r8d, r8d
je 0x14009eccb
nop dword [rax]
nop word [rax + rax]
xor edx, edx
mov eax, r8d
div r12d
movsx ecx, dl
mov r8d, eax
cmp dl, 0xa
jge 0x14009eca8
lea eax, [rcx + 0x30]
jmp 0x14009ecb9
movzx eax, sil
not al
and eax, 0x20
or eax, 0x41
add eax, 0xfffffff6
add eax, ecx
mov byte [rbp + rbx - 0x11], al
inc rbx
test r8d, r8d
je 0x14009eccb
cmp rbx, 0x20
jb 0x14009ec90
mov ecx, dword [rbp - 0x39]
mov r14d, esi
and r14d, 2
mov dword [rbp - 0x29], r14d
jne 0x14009ed35
test ecx, ecx
je 0x14009ecf1
mov eax, esi
and eax, 1
je 0x14009ecf1
test sil, 0xc
je 0x14009ecf1
dec ecx
mov dword [rbp - 0x39], ecx
mov eax, r13d
cmp rbx, rax
jae 0x14009ed13
nop dword [rax]
cmp rbx, 0x20
jae 0x14009ed13
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009ed00
mov eax, esi
and eax, 1
je 0x14009ed35
mov eax, ecx
nop dword [rax]
cmp rbx, rax
jae 0x14009ed35
cmp rbx, 0x20
jae 0x14009ed35
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009ed20
test sil, 0x10
je 0x14009edad
test r9d, r9d
jne 0x14009ed65
test rbx, rbx
je 0x14009ed65
mov eax, r13d
cmp rbx, rax
je 0x14009ed54
mov eax, ecx
cmp rbx, rax
jne 0x14009ed65
sub rbx, 1
je 0x14009ed65
cmp r12d, 0x10
jne 0x14009ed8b
dec rbx
jmp 0x14009ed6b
cmp r12d, 0x10
jne 0x14009ed8b
test sil, 0x20
jne 0x14009ed7e
cmp rbx, 0x20
jae 0x14009edce
mov byte [rbp + rbx - 0x11], 0x78
jmp 0x14009ed9c
cmp rbx, 0x20
jae 0x14009edce
mov byte [rbp + rbx - 0x11], 0x58
jmp 0x14009ed9c
cmp r12d, 2
jne 0x14009ed9f
cmp rbx, 0x20
jae 0x14009edce
mov byte [rbp + rbx - 0x11], 0x62
inc rbx
cmp rbx, 0x20
jae 0x14009edce
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009edce
test sil, 4
je 0x14009edc0
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009edcb
test sil, 8
je 0x14009edce
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
mov r13, qword [rbp + 0x6f]
mov rdi, r11
test sil, 3
jne 0x14009ee17
mov esi, ecx
cmp rbx, rsi
jae 0x14009ee17
mov r14, qword [rbp + 0x67]
lea rax, [fcn.140066830]
sub rsi, rbx
mov r8, rdi
inc rdi
cmp r15, rax
je 0x14009ee0d
mov r9, r13
mov rdx, r14
mov cl, 0x20
call r15
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009edf0
mov r14d, dword [rbp - 0x29]
lea rsi, [fcn.140066830]
test rbx, rbx
je 0x14009ee55
mov r14, qword [rbp + 0x67]
nop word [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, rsi
je 0x14009ee4c
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r13
mov rdx, r14
call r15
test rbx, rbx
jne 0x14009ee30
mov r14d, dword [rbp - 0x29]
test r14d, r14d
je 0x14009ee92
mov r12, qword [rbp - 0x31]
mov rax, rdi
mov ebx, dword [rbp - 0x39]
sub rax, r12
cmp rax, rbx
jae 0x14009ee92
nop dword [rax]
mov r8, rdi
inc rdi
cmp r15, rsi
je 0x14009ee87
mov rdx, qword [rbp + 0x67]
mov r9, r13
mov cl, 0x20
call r15
mov rax, rdi
sub rax, r12
cmp rax, rbx
jb 0x14009ee70
mov rsi, qword [rbp - 0x21]
mov qword [rbp - 0x21], rsi
jmp 0x14009e9f6
mov rax, qword [rbp - 0x21]
add rax, 8
mov qword [rbp - 0x21], rax
bt esi, 9
jae 0x14009f107
mov r8, qword [rax - 8]
mov r11, r8
mov r9d, r12d
shr r11, 0x3f
test r8, r8
jg 0x14009eecb
neg r8
xor ebx, ebx
test r8, r8
jne 0x14009eed5
and esi, 0xffffffef
mov r10d, esi
and r10d, 0x400
je 0x14009eef0
test r8, r8
je 0x14009ef2b
nop word [rax + rax]
xor edx, edx
mov rax, r8
div r9
movsx ecx, dl
mov r8, rax
cmp dl, 0xa
jge 0x14009ef08
lea eax, [rcx + 0x30]
jmp 0x14009ef19
movzx eax, sil
not al
and eax, 0x20
or eax, 0x41
add eax, 0xfffffff6
add eax, ecx
mov byte [rbp + rbx - 0x11], al
inc rbx
test r8, r8
je 0x14009ef2b
cmp rbx, 0x20
jb 0x14009eef0
mov ecx, dword [rbp - 0x39]
mov r14d, esi
and r14d, 2
jne 0x14009ef95
test ecx, ecx
je 0x14009ef52
mov eax, esi
and eax, 1
je 0x14009ef52
test r11b, r11b
jne 0x14009ef4d
test sil, 0xc
je 0x14009ef52
dec ecx
mov dword [rbp - 0x39], ecx
mov eax, r13d
cmp rbx, rax
jae 0x14009ef73
nop word [rax + rax]
cmp rbx, 0x20
jae 0x14009ef73
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009ef60
mov eax, esi
and eax, 1
je 0x14009ef95
mov eax, ecx
nop dword [rax]
cmp rbx, rax
jae 0x14009ef95
cmp rbx, 0x20
jae 0x14009ef95
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009ef80
test sil, 0x10
je 0x14009f00d
test r10d, r10d
jne 0x14009efc5
test rbx, rbx
je 0x14009efc5
mov eax, r13d
cmp rbx, rax
je 0x14009efb4
mov eax, ecx
cmp rbx, rax
jne 0x14009efc5
sub rbx, 1
je 0x14009efc5
cmp r12d, 0x10
jne 0x14009efeb
dec rbx
jmp 0x14009efcb
cmp r12d, 0x10
jne 0x14009efeb
test sil, 0x20
jne 0x14009efde
cmp rbx, 0x20
jae 0x14009f03a
mov byte [rbp + rbx - 0x11], 0x78
jmp 0x14009effc
cmp rbx, 0x20
jae 0x14009f03a
mov byte [rbp + rbx - 0x11], 0x58
jmp 0x14009effc
cmp r12d, 2
jne 0x14009efff
cmp rbx, 0x20
jae 0x14009f03a
mov byte [rbp + rbx - 0x11], 0x62
inc rbx
cmp rbx, 0x20
jae 0x14009f03a
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009f03a
test r11b, r11b
je 0x14009f01f
mov byte [rbp + rbx - 0x11], 0x2d
jmp 0x14009f037
test sil, 4
je 0x14009f02c
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009f037
test sil, 8
je 0x14009f03a
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
mov r12, qword [rbp - 0x31]
mov r13, qword [rbp + 0x6f]
mov rdi, r12
test sil, 3
jne 0x14009f087
mov esi, ecx
cmp rbx, rsi
jae 0x14009f087
mov r12, qword [rbp + 0x67]
lea rax, [fcn.140066830]
sub rsi, rbx
mov r8, rdi
inc rdi
cmp r15, rax
je 0x14009f07d
mov r9, r13
mov rdx, r12
mov cl, 0x20
call r15
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009f060
mov r12, qword [rbp - 0x31]
lea rsi, [fcn.140066830]
test rbx, rbx
je 0x14009f0c5
mov r12, qword [rbp + 0x67]
nop word [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, rsi
je 0x14009f0bc
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r13
mov rdx, r12
call r15
test rbx, rbx
jne 0x14009f0a0
mov r12, qword [rbp - 0x31]
test r14d, r14d
je 0x14009e9f2
mov ebx, dword [rbp - 0x39]
mov rax, rdi
sub rax, r12
cmp rax, rbx
jae 0x14009e9f2
mov r8, rdi
inc rdi
cmp r15, rsi
je 0x14009f0f7
mov rdx, qword [rbp + 0x67]
mov r9, r13
mov cl, 0x20
call r15
mov rax, rdi
sub rax, r12
cmp rax, rbx
jb 0x14009f0e0
jmp 0x14009e9f2
bt esi, 8
jae 0x14009f36b
mov r8d, dword [rax - 8]
mov r10d, r8d
shr r10d, 0x1f
mov qword [rbp - 0x21], rax
test r8d, r8d
jg 0x14009f128
neg r8d
xor ebx, ebx
test r8d, r8d
jne 0x14009f132
and esi, 0xffffffef
mov r9d, esi
and r9d, 0x400
je 0x14009f150
test r8d, r8d
je 0x14009f18b
nop dword [rax]
nop word [rax + rax]
xor edx, edx
mov eax, r8d
div r12d
movsx ecx, dl
mov r8d, eax
cmp dl, 0xa
jge 0x14009f168
lea eax, [rcx + 0x30]
jmp 0x14009f179
movzx eax, sil
not al
and eax, 0x20
or eax, 0x41
add eax, 0xfffffff6
add eax, ecx
mov byte [rbp + rbx - 0x11], al
inc rbx
test r8d, r8d
je 0x14009f18b
cmp rbx, 0x20
jb 0x14009f150
mov ecx, dword [rbp - 0x39]
mov r14d, esi
and r14d, 2
mov dword [rbp - 0x29], r14d
jne 0x14009f1f5
test ecx, ecx
je 0x14009f1b6
mov eax, esi
and eax, 1
je 0x14009f1b6
test r10b, r10b
jne 0x14009f1b1
test sil, 0xc
je 0x14009f1b6
dec ecx
mov dword [rbp - 0x39], ecx
mov eax, r13d
cmp rbx, rax
jae 0x14009f1d3
nop
cmp rbx, 0x20
jae 0x14009f1d3
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009f1c0
mov eax, esi
and eax, 1
je 0x14009f1f5
mov eax, ecx
nop dword [rax]
cmp rbx, rax
jae 0x14009f1f5
cmp rbx, 0x20
jae 0x14009f1f5
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009f1e0
test sil, 0x10
je 0x14009f26d
test r9d, r9d
jne 0x14009f225
test rbx, rbx
je 0x14009f225
mov eax, r13d
cmp rbx, rax
je 0x14009f214
mov eax, ecx
cmp rbx, rax
jne 0x14009f225
sub rbx, 1
je 0x14009f225
cmp r12d, 0x10
jne 0x14009f24b
dec rbx
jmp 0x14009f22b
cmp r12d, 0x10
jne 0x14009f24b
test sil, 0x20
jne 0x14009f23e
cmp rbx, 0x20
jae 0x14009f29a
mov byte [rbp + rbx - 0x11], 0x78
jmp 0x14009f25c
cmp rbx, 0x20
jae 0x14009f29a
mov byte [rbp + rbx - 0x11], 0x58
jmp 0x14009f25c
cmp r12d, 2
jne 0x14009f25f
cmp rbx, 0x20
jae 0x14009f29a
mov byte [rbp + rbx - 0x11], 0x62
inc rbx
cmp rbx, 0x20
jae 0x14009f29a
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009f29a
test r10b, r10b
je 0x14009f27f
mov byte [rbp + rbx - 0x11], 0x2d
jmp 0x14009f297
test sil, 4
je 0x14009f28c
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009f297
test sil, 8
je 0x14009f29a
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
mov r13, qword [rbp + 0x6f]
mov rdi, r11
test sil, 3
jne 0x14009f2e7
mov esi, ecx
cmp rbx, rsi
jae 0x14009f2e7
mov r14, qword [rbp + 0x67]
lea rax, [fcn.140066830]
sub rsi, rbx
nop dword [rax]
mov r8, rdi
inc rdi
cmp r15, rax
je 0x14009f2dd
mov r9, r13
mov rdx, r14
mov cl, 0x20
call r15
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009f2c0
mov r14d, dword [rbp - 0x29]
lea rsi, [fcn.140066830]
test rbx, rbx
je 0x14009f325
mov r14, qword [rbp + 0x67]
nop word [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, rsi
je 0x14009f31c
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r13
mov rdx, r14
call r15
test rbx, rbx
jne 0x14009f300
mov r14d, dword [rbp - 0x29]
test r14d, r14d
je 0x14009e9f2
mov r12, qword [rbp - 0x31]
mov rax, rdi
mov ebx, dword [rbp - 0x39]
sub rax, r12
cmp rax, rbx
jae 0x14009e9f2
mov r8, rdi
inc rdi
cmp r15, rsi
je 0x14009f35b
mov rdx, qword [rbp + 0x67]
mov r9, r13
mov cl, 0x20
call r15
mov rax, rdi
sub rax, r12
cmp rax, rbx
jb 0x14009f344
jmp 0x14009e9f2
test sil, 0x40
je 0x14009f377
movsx eax, byte [rax - 8]
jmp 0x14009f385
test sil, sil
jns 0x14009f382
movsx eax, word [rax - 8]
jmp 0x14009f385
mov eax, dword [rax - 8]
mov r10d, eax
mov ebx, 0
cdq
shr r10d, 0x1f
mov r8d, eax
xor r8d, edx
sub r8d, edx
jne 0x14009f3a0
and esi, 0xffffffef
mov r9d, esi
and r9d, 0x400
je 0x14009f3b1
test r8d, r8d
je 0x14009f3ec
xor edx, edx
mov eax, r8d
div r12d
movsx ecx, dl
mov r8d, eax
cmp dl, 0xa
jge 0x14009f3c9
lea eax, [rcx + 0x30]
jmp 0x14009f3da
movzx eax, sil
not al
and eax, 0x20
or eax, 0x41
add eax, 0xfffffff6
add eax, ecx
mov byte [rbp + rbx - 0x11], al
inc rbx
test r8d, r8d
je 0x14009f3ec
cmp rbx, 0x20
jb 0x14009f3b1
mov ecx, dword [rbp - 0x39]
mov r14d, esi
and r14d, 2
mov dword [rbp - 0x29], r14d
jne 0x14009f455
test ecx, ecx
je 0x14009f417
mov eax, esi
and eax, 1
je 0x14009f417
test r10b, r10b
jne 0x14009f412
test sil, 0xc
je 0x14009f417
dec ecx
mov dword [rbp - 0x39], ecx
mov eax, r13d
cmp rbx, rax
jae 0x14009f433
nop
cmp rbx, 0x20
jae 0x14009f433
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009f420
mov eax, esi
and eax, 1
je 0x14009f455
mov eax, ecx
nop dword [rax]
cmp rbx, rax
jae 0x14009f455
cmp rbx, 0x20
jae 0x14009f455
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009f440
test sil, 0x10
je 0x14009f4cd
test r9d, r9d
jne 0x14009f485
test rbx, rbx
je 0x14009f485
mov eax, r13d
cmp rbx, rax
je 0x14009f474
mov eax, ecx
cmp rbx, rax
jne 0x14009f485
sub rbx, 1
je 0x14009f485
cmp r12d, 0x10
jne 0x14009f4ab
dec rbx
jmp 0x14009f48b
cmp r12d, 0x10
jne 0x14009f4ab
test sil, 0x20
jne 0x14009f49e
cmp rbx, 0x20
jae 0x14009f4fa
mov byte [rbp + rbx - 0x11], 0x78
jmp 0x14009f4bc
cmp rbx, 0x20
jae 0x14009f4fa
mov byte [rbp + rbx - 0x11], 0x58
jmp 0x14009f4bc
cmp r12d, 2
jne 0x14009f4bf
cmp rbx, 0x20
jae 0x14009f4fa
mov byte [rbp + rbx - 0x11], 0x62
inc rbx
cmp rbx, 0x20
jae 0x14009f4fa
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009f4fa
test r10b, r10b
je 0x14009f4df
mov byte [rbp + rbx - 0x11], 0x2d
jmp 0x14009f4f7
test sil, 4
je 0x14009f4ec
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009f4f7
test sil, 8
je 0x14009f4fa
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
mov r13, qword [rbp + 0x6f]
mov rdi, r11
test sil, 3
jne 0x14009f547
mov esi, ecx
cmp rbx, rsi
jae 0x14009f547
mov r14, qword [rbp + 0x67]
lea rax, [fcn.140066830]
sub rsi, rbx
nop dword [rax]
mov r8, rdi
inc rdi
cmp r15, rax
je 0x14009f53d
mov r9, r13
mov rdx, r14
mov cl, 0x20
call r15
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009f520
mov r14d, dword [rbp - 0x29]
lea rsi, [fcn.140066830]
test rbx, rbx
je 0x14009f585
mov r14, qword [rbp + 0x67]
nop word [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, rsi
je 0x14009f57c
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r13
mov rdx, r14
call r15
test rbx, rbx
jne 0x14009f560
mov r14d, dword [rbp - 0x29]
test r14d, r14d
je 0x14009ee92
mov r12, qword [rbp - 0x31]
mov rax, rdi
mov ebx, dword [rbp - 0x39]
sub rax, r12
cmp rax, rbx
jae 0x14009ee92
mov r8, rdi
inc rdi
cmp r15, rsi
je 0x14009f5bb
mov rdx, qword [rbp + 0x67]
mov r9, r13
mov cl, 0x20
call r15
mov rax, rdi
sub rax, r12
cmp rax, rbx
jb 0x14009f5a4
mov rsi, qword [rbp - 0x21]
mov qword [rbp - 0x21], rsi
jmp 0x14009e9f6
mov esi, 1
and edi, 2
jne 0x14009f621
cmp r9d, esi
jbe 0x14009f61f
lea ebx, [r9 - 1]
mov esi, r9d
lea rax, [fcn.140066830]
mov r8, r11
inc r11
mov qword [rbp - 0x31], r11
cmp r15, rax
je 0x14009f615
mov r9, r12
mov rdx, r14
mov cl, 0x20
call r15
mov r11, qword [rbp - 0x31]
lea rax, [fcn.140066830]
sub rbx, 1
jne 0x14009f5f0
mov rbx, qword [rbp - 0x19]
inc esi
mov rax, qword [rbp - 0x21]
lea r13, [fcn.140066830]
add rax, 8
mov r8, r11
inc r11
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x31], r11
cmp r15, r13
je 0x14009f654
movzx ecx, byte [rax - 8]
mov r9, r12
mov rdx, r14
call r15
mov r11, qword [rbp - 0x31]
test edi, edi
je 0x14009f698
mov eax, dword [rbp - 0x39]
cmp esi, eax
jae 0x14009f698
sub eax, esi
mov ebx, eax
nop dword [rax]
nop word [rax + rax]
mov r8, r11
inc r11
mov qword [rbp - 0x31], r11
cmp r15, r13
je 0x14009f68e
mov r9, r12
mov rdx, r14
mov cl, 0x20
call r15
mov r11, qword [rbp - 0x31]
sub rbx, 1
jne 0x14009f670
mov rbx, qword [rbp - 0x19]
mov rsi, qword [rbp - 0x21]
mov r10d, 0x100
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x14009e560
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
cmp r15, r13
mov r13, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x90]
je 0x14009fab9
lea rcx, [r12 - 1]
cmp r11, r12
mov r8, r11
mov r9, r12
cmovae r8, rcx
mov rdx, r14
xor ecx, ecx
call r15
mov rax, qword [rbp - 0x31]
add rsp, 0x98
pop r15
pop r14
pop r12
pop rbp
ret
mov rbx, qword [rsi]
add rsi, 8
mov qword [rbp - 0x21], rsi
mov ecx, r13d
test r13d, r13d
jne 0x14009f71e
mov rcx, 0xffffffffffffffff
xor r14d, r14d
mov qword [rbp + 0xf], r14
cmp byte [rbx], r14b
je 0x14009f749
nop word [rax + rax]
mov rax, rcx
dec rcx
test rax, rax
je 0x14009f745
inc r14
cmp byte [r14 + rbx], 0
jne 0x14009f730
mov qword [rbp + 0xf], r14
mov r12d, edi
and r12d, 0x400
mov dword [rbp - 0x25], r12d
je 0x14009f76a
cmp r14d, r13d
mov eax, r13d
cmovb eax, r14d
mov r14d, eax
mov qword [rbp + 0xf], r14
and edi, 2
mov dword [rbp - 0x29], edi
jne 0x14009f7de
cmp r14d, r9d
jae 0x14009f7d7
mov r12, qword [rbp + 0x6f]
lea rax, [fcn.140066830]
mov esi, r9d
sub esi, r14d
mov r14d, r9d
mov qword [rbp + 0xf], r14
mov r14, qword [rbp + 0x67]
nop dword [rax]
nop word [rax + rax]
mov r8, r11
inc r11
mov qword [rbp - 0x31], r11
cmp r15, rax
je 0x14009f7c5
mov r9, r12
mov rdx, r14
mov cl, 0x20
call r15
mov r11, qword [rbp - 0x31]
lea rax, [fcn.140066830]
sub rsi, 1
jne 0x14009f7a0
mov r14, qword [rbp + 0xf]
mov r12d, dword [rbp - 0x25]
mov rsi, qword [rbp - 0x21]
inc r14d
mov qword [rbp + 0xf], r14
movzx ecx, byte [rbx]
test cl, cl
je 0x14009f834
mov r14, qword [rbp + 0x6f]
lea rsi, [fcn.140066830]
mov rdi, qword [rbp + 0x67]
test r12d, r12d
je 0x14009f803
mov eax, r13d
dec r13d
test eax, eax
je 0x14009f829
mov r8, r11
inc rbx
inc r11
mov qword [rbp - 0x31], r11
cmp r15, rsi
je 0x14009f822
mov r9, r14
mov rdx, rdi
call r15
mov r11, qword [rbp - 0x31]
movzx ecx, byte [rbx]
test cl, cl
jne 0x14009f7f4
mov edi, dword [rbp - 0x29]
mov r14, qword [rbp + 0xf]
mov rsi, qword [rbp - 0x21]
test edi, edi
je 0x14009e9fd
mov eax, dword [rbp - 0x39]
lea r13, [fcn.140066830]
cmp r14d, eax
jae 0x14009faa8
sub eax, r14d
mov ebx, eax
nop dword [rax]
nop dword [rax + rax]
mov r12, qword [rbp + 0x6f]
mov r8, r11
mov r14, qword [rbp + 0x67]
inc r11
mov qword [rbp - 0x31], r11
cmp r15, r13
je 0x14009f886
mov r9, r12
mov rdx, r14
mov cl, 0x20
call r15
mov r11, qword [rbp - 0x31]
sub rbx, 1
jne 0x14009f860
mov rbx, qword [rbp - 0x19]
jmp 0x14009f69c
mov rdx, qword [rsi]
add rsi, 8
or edi, 0x21
mov qword [rbp - 0x21], rsi
xor ebx, ebx
mov r8d, edi
and r8d, 0xffffffef
test rdx, rdx
cmovne r8d, edi
mov r9d, r8d
and r9d, 0x400
je 0x14009f8c4
test rdx, rdx
je 0x14009f8fa
mov r10d, 0x37
nop word [rax + rax]
movzx ecx, dl
mov eax, 0x30
and cl, 0xf
cmp cl, 0xa
cmovae eax, r10d
shr rdx, 4
add al, cl
mov byte [rbp + rbx - 0x11], al
inc rbx
test rdx, rdx
je 0x14009f8fa
cmp rbx, 0x20
jb 0x14009f8d0
mov r14d, r8d
mov esi, select
and r14d, 2
mov dword [rbp - 0x25], r14d
jne 0x14009f94c
mov eax, r8d
and al, 0xc
neg al
mov eax, r13d
sbb ecx, ecx
add ecx, esi
cmp rbx, rax
jae 0x14009f933
nop
cmp rbx, 0x20
jae 0x14009f933
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, rax
jb 0x14009f920
mov eax, ecx
mov esi, ecx
cmp rbx, rax
jae 0x14009f94c
cmp rbx, 0x20
jae 0x14009f94c
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
jmp 0x14009f935
test r8b, 0x10
je 0x14009f990
test r9d, r9d
jne 0x14009f974
test rbx, rbx
je 0x14009f974
mov eax, r13d
cmp rbx, rax
je 0x14009f96b
mov eax, esi
cmp rbx, rax
jne 0x14009f974
sub rbx, 1
je 0x14009f974
dec rbx
cmp rbx, 0x20
jae 0x14009f9b1
mov byte [rbp + rbx - 0x11], 0x58
inc rbx
cmp rbx, 0x20
jae 0x14009f9b1
mov byte [rbp + rbx - 0x11], 0x30
inc rbx
cmp rbx, 0x20
jae 0x14009f9b1
test r8b, 4
je 0x14009f9a3
mov byte [rbp + rbx - 0x11], 0x2b
jmp 0x14009f9ae
test r8b, 8
je 0x14009f9b1
mov byte [rbp + rbx - 0x11], 0x20
inc rbx
lea r13, [fcn.140066830]
mov rdi, r11
test rbx, rbx
je 0x14009f9f9
mov r14, qword [rbp + 0x67]
nop dword [rax]
nop dword [rax + rax]
mov r8, rdi
dec rbx
inc rdi
cmp r15, r13
je 0x14009f9ec
movzx ecx, byte [rbp + rbx - 0x11]
mov r9, r12
mov rdx, r14
call r15
test rbx, rbx
jne 0x14009f9d0
mov r14d, dword [rbp - 0x25]
mov r11, qword [rbp - 0x31]
test r14d, r14d
je 0x14009fa36
mov rax, rdi
mov ebx, esi
sub rax, r11
cmp rax, rbx
jae 0x14009fa36
nop dword [rax + rax]
mov r8, rdi
inc rdi
cmp r15, r13
je 0x14009fa2b
mov rdx, qword [rbp + 0x67]
mov r9, r12
mov cl, 0x20
call r15
mov r11, qword [rbp - 0x31]
mov rax, rdi
sub rax, r11
cmp rax, rbx
jb 0x14009fa10
mov rbx, qword [rbp - 0x19]
mov r11, rdi
mov r14, qword [rbp + 0x67]
mov qword [rbp - 0x31], rdi
jmp 0x14009f698
mov r8, r11
lea r13, [fcn.140066830]
inc r11
mov qword [rbp - 0x31], r11
cmp r15, r13
je 0x14009f69c
mov r9, r12
mov rdx, r14
mov cl, 0x25
call r15
mov r11, qword [rbp - 0x31]
jmp 0x14009f69c
mov r8, r11
lea r13, [fcn.140066830]
inc r11
mov qword [rbp - 0x31], r11
cmp r15, r13
je 0x14009f69c
mov r9, r12
mov rdx, r14
movzx ecx, r10b
call r15
mov r11, qword [rbp - 0x31]
jmp 0x14009f69c
mov rbx, qword [rbp - 0x19]
mov r12, qword [rbp + 0x6f]
mov r14, qword [rbp + 0x67]
jmp 0x14009f69c
mov eax, r11d
add rsp, 0x98
pop r15
pop r14
pop r12
pop rbp
ret