Function at 0x14001d16c
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r13, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x100]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], r13
and qword [rsp + 0x50], 0
mov rdi, rdx
mov rax, rcx
cmp byte [rdx + 6], 0
je 0x14001d1d4
cmp r13, 2
jbe 0x14001d8b0
mov qword [rsp + 0x30], rax
mov al, byte [rdi + 7]
mov byte [rdi + 6], 0
mov byte [rbx], al
mov qword [rsp + 0x50], 1
mov r14d, 1
jmp 0x14001d1dc
mov qword [rsp + 0x30], rax
xor r14d, r14d
lea r15, [rdi + 8]
mov al, byte [rdi + 8]
mov bpl, byte [rdi + 0xa]
movzx r10d, byte [rdi + 9]
mov cl, byte [rdi + 0xb]
mov byte [rsp + 0x68], cl
imul ecx, r10d, 0xbe
mov dword [rsp + 0x84], ecx
lea ecx, [r10 - 0x20]
movzx ecx, cl
imul rcx, rcx, 0x60
mov qword [rsp + 0x90], rcx
lea r11d, [r10 - 0x2f]
lea ecx, [r10 - 0x21]
movzx ecx, cl
imul ecx, ecx, 0x5e
lea edx, [r10 - 0x77]
movzx edx, dl
imul edx, edx, 0x5e
add edx, 0xffffe234
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x80], r11d
movzx edx, r11b
imul rdx, rdx, 0x5e
mov qword [rsp + 0x88], rdx
imul rdx, r10, 0x3138
mov qword [rsp + 0x70], rdx
xor r11d, r11d
movzx ecx, cx
mov dword [rsp + 0x7c], ecx
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x60], r10
test al, al
je 0x14001d8c0
cmp r9, r11
je 0x14001e1b4
lea r12, [r14 + 3]
cmp r12, r13
jae 0x14001e1e8
mov cl, byte [r8 + r11]
mov byte [r15], 0
cmp al, 1
je 0x14001d2cb
movzx eax, al
cmp eax, 2
jne 0x14001d314
add cl, 0x7f
cmp cl, 0x7d
ja 0x14001e239
mov byte [rdi + 8], 3
mov byte [rdi + 9], r10b
mov byte [rdi + 0xa], bpl
mov byte [rdi + 0xb], cl
mov al, 3
mov byte [rsp + 0x68], cl
jmp 0x14001d629
lea edx, [rcx - 0x30]
cmp dl, 9
jbe 0x14001d36e
cmp r10b, 0x1f
jbe 0x14001d3dd
lea eax, [rcx + 0x5f]
cmp al, 0x5e
jae 0x14001d4c7
movzx esi, al
cmp byte [rsp + 0x80], 0x48
jae 0x14001d669
add esi, dword [rsp + 0x88]
lea rax, [0x1402b00d8]
movzx eax, word [rax + rsi*2]
jmp 0x14001d719
add cl, 0xd0
cmp cl, 9
ja 0x14001e25f
movzx eax, bpl
imul rax, rax, 0x4ec
movzx edx, byte [rsp + 0x68]
imul rdx, rdx, 0xa
add rdx, qword [rsp + 0x70]
add rdx, rax
movzx esi, cl
add rsi, rdx
cmp rsi, 0x99fc
jae 0x14001d382
cmp esi, 0x1d21
jne 0x14001d46b
mov rbx, qword [rsp + 0x40]
mov word [rbx + r14], 0x9fee
mov byte [rbx + r14 + 2], 0x87
jmp 0x14001d743
mov byte [rdi + 8], 2
mov byte [rdi + 9], r10b
mov byte [rdi + 0xa], dl
mov al, 2
mov ebp, edx
jmp 0x14001d629
lea rax, [rsi - 0x2e248]
cmp rax, 0x100000
jae 0x14001e287
add esi, 0xfffe1db8
mov eax, esi
shr eax, 0x12
or al, 0xf0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], al
mov eax, esi
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 1], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 2], al
and sil, 0x3f
or sil, 0x80
mov byte [rbx + r14 + 3], sil
add r14, 4
jmp 0x14001d622
lea eax, [rcx - 0x40]
cmp al, 0x3e
jbe 0x14001d3f2
cmp cl, 0xfe
jg 0x14001e2d2
add cl, 0xbf
mov eax, ecx
mov byte [rsp + 0x5f], bpl
mov rbp, r15
mov r15, r13
mov r13, r11
movzx esi, al
add esi, dword [rsp + 0x84]
mov word [rsp + 0x26], si
mov edx, 0x77c
lea rcx, [0x1402ac7c4]
lea r8, [rsp + 0x26]
call fcn.1400233b4
mov r10, rdx
test rax, rax
je 0x14001d568
mov rcx, r10
dec rcx
cmp rcx, 0x77c
mov r9, qword [rsp + 0x38]
jae 0x14001e415
mov r11, r13
lea rax, [0x1402ad6bc]
add si, word [rax + r10*2 - 2]
lea rax, [0x1402ac7c4]
sub si, word [rax + r10*2 - 2]
jmp 0x14001d589
mov rbx, r11
mov word [rsp + 0x26], si
mov edx, 0xce
lea rcx, [0x1402b378e]
lea r8, [rsp + 0x26]
call fcn.1400233b4
mov r9, rdx
test rax, rax
je 0x14001d5cf
mov rcx, r9
dec rcx
cmp rcx, 0xce
jae 0x14001e426
lea rax, [0x1402b392a]
add si, word [rax + r9*2 - 2]
lea rax, [0x1402b378e]
sub si, word [rax + r9*2 - 2]
jmp 0x14001d5e8
lea eax, [rcx - 0x40]
cmp al, 0x3e
jbe 0x14001d4dc
cmp cl, 0xa0
jg 0x14001e2d2
add cl, 0xbf
mov eax, ecx
movzx esi, al
mov rax, qword [rsp + 0x90]
lea rbx, [rax + rsi]
add rbx, 0xfffffffffffffca0
cmp rbx, 0x1f7b
jae 0x14001d69b
mov rsi, r11
mov word [rsp + 0x26], bx
mov edx, 0x65b
lea rcx, [0x1402ae5b4]
lea r8, [rsp + 0x26]
call fcn.1400233b4
mov r10, rdx
test rax, rax
je 0x14001d74f
mov rcx, r10
dec rcx
cmp rcx, 0x65b
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
jae 0x14001e459
mov r11, rsi
lea rax, [0x1402af26a]
add bx, word [rax + r10*2 - 2]
lea rax, [0x1402ae5b4]
sub bx, word [rax + r10*2 - 2]
jmp 0x14001d775
cmp r10, 0x77c
mov r9, qword [rsp + 0x38]
jae 0x14001e437
mov r11, r13
lea rax, [0x1402ad6bc]
movzx esi, word [rax + r10*2]
mov r8, qword [rsp + 0x28]
mov r13, r15
movzx eax, si
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [rbx + r14], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rbx + r14 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 2], al
mov qword [rsp + 0x50], r12
xor eax, eax
mov r15, rbp
mov bpl, byte [rsp + 0x5f]
mov r10, qword [rsp + 0x60]
jmp 0x14001d62c
cmp r9, 0xce
jae 0x14001e445
lea rax, [0x1402b392a]
movzx esi, word [rax + r9*2]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
mov r11, rbx
mov r10, qword [rsp + 0x60]
cmp si, 0x800
jae 0x14001d637
mov eax, esi
shr eax, 6
or al, 0xc0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], al
and sil, 0x3f
or sil, 0x80
mov byte [rbx + r14 + 1], sil
add r14, 2
mov qword [rsp + 0x50], r14
xor eax, eax
mov r12, r14
inc r11
mov r14, r12
jmp 0x14001d273
movzx eax, si
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 1], al
and sil, 0x3f
or sil, 0x80
mov byte [rbx + r14 + 2], sil
jmp 0x14001d743
cmp r10d, 0x20
je 0x14001d7c6
cmp r10d, 0x25
je 0x14001d7ae
cmp r10d, 0x27
jne 0x14001d80f
cmp al, 0x20
jae 0x14001d831
lea rax, [0x1402b36a0]
jmp 0x14001d7cd
add rsi, rax
cmp esi, 0x360
jae 0x14001d6f9
mov rbx, r11
mov word [rsp + 0x26], si
mov edx, 0x3b
lea rcx, [0x1402aff20]
lea r8, [rsp + 0x26]
call fcn.1400233b4
mov r9, rdx
test rax, rax
je 0x14001d884
mov rcx, r9
dec rcx
cmp rcx, 0x3b
jae 0x14001e48f
lea rax, [0x1402aff98]
add si, word [rax + r9*2 - 2]
lea rax, [0x1402aff20]
jmp 0x14001d4bc
lea rcx, [rsi - 0x22db]
cmp rcx, 0x65
jae 0x14001e46a
lea rax, [0x1402b000e]
movzx eax, word [rax + rsi*2 - 0x45b6]
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rbx + r14 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 2], al
mov qword [rsp + 0x50], r12
xor eax, eax
jmp 0x14001d62c
cmp r10, 0x65b
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
jae 0x14001e47b
mov r11, rsi
lea rax, [0x1402af26a]
movzx ebx, word [rax + r10*2]
movzx eax, bx
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rbx + r14 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 2], al
mov qword [rsp + 0x50], r12
xor eax, eax
jmp 0x14001d5c8
add cl, 0x20
cmp cl, 0x15
ja 0x14001d831
movzx eax, cl
lea rcx, [0x1402b3674]
movzx eax, word [rcx + rax*2]
jmp 0x14001d7d1
lea rax, [0x1402b35b8]
movzx eax, word [rax + rsi*2]
cmp ax, 0x800
jae 0x14001d7f6
mov ecx, eax
shr ecx, 6
or cl, 0xc0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], cl
and al, 0x3f
or al, 0x80
mov byte [rbx + r14 + 1], al
jmp 0x14001d61e
movzx ecx, ax
mov edx, ecx
shr edx, 0xc
or dl, 0xe0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], dl
jmp 0x14001d72c
cmp r10b, 0x76
jbe 0x14001d831
add esi, dword [rsp + 0x78]
movzx eax, si
shr eax, 0xc
or al, 0xe0
mov rbx, qword [rsp + 0x40]
mov byte [rbx + r14], al
mov eax, esi
jmp 0x14001d64b
mov rbx, r11
add esi, dword [rsp + 0x7c]
mov word [rsp + 0x26], si
mov edx, 0x2b
lea rcx, [0x1402b36e0]
lea r8, [rsp + 0x26]
call fcn.1400233b4
mov r9, rdx
test rax, rax
je 0x14001d89a
mov rcx, r9
dec rcx
cmp rcx, 0x2b
jae 0x14001e4a0
lea rax, [0x1402b3738]
add si, word [rax + r9*2 - 2]
lea rax, [0x1402b36e0]
jmp 0x14001d4bc
cmp r9, 0x3b
jae 0x14001e4b1
lea rax, [0x1402aff98]
jmp 0x14001d5e3
cmp r9, 0x2b
jae 0x14001e4bf
lea rax, [0x1402b3738]
jmp 0x14001d5e3
mov byte [rax + 8], 1
and qword [rax], 0
xor r14d, r14d
jmp 0x14001e3cb
mov qword [rsp + 0x60], rdi
mov rdx, qword [rsp + 0x48]
mov rdi, r9
sub rdi, r11
jb 0x14001e4cd
mov r10, rdx
sub r10, r14
jb 0x14001e4df
mov qword [rsp + 0x68], r11
lea rcx, [r8 + r11]
mov rbp, qword [rsp + 0x40]
cmp r10, rdi
mov r11, rdi
cmovb r11, r10
lea rbx, [r14 + rbp]
mov eax, ecx
xor eax, ebx
test al, 7
mov qword [rsp + 0x70], rbp
jne 0x14001d923
mov r12d, ecx
neg r12d
and r12d, 7
lea rax, [r12 + 0x10]
cmp rax, r11
jbe 0x14001e0a5
xor r13d, r13d
cmp r13, r11
jae 0x14001e1f6
mov al, byte [rcx + r13]
test al, al
js 0x14001d940
mov byte [rbx + r13], al
inc r13
jmp 0x14001d926
mov r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rbx, r13
lea r12, [r14 + r13]
mov qword [rsp + 0x50], r12
lea rcx, [r14 + r13]
add rcx, 3
cmp rcx, rdx
jae 0x14001e3a9
inc rbx
mov sil, byte [rsp + 0x110]
lea r13, [rsp + 0x26]
lea ecx, [rax + 0x7f]
cmp cl, 0x7d
ja 0x14001e11b
cmp rbx, r9
jae 0x14001e2a1
mov dl, byte [r8 + rbx]
lea r15, [rbx + 1]
lea r11d, [rdx - 0x30]
movzx r10d, cl
cmp r11b, 9
jbe 0x14001da27
cmp cl, 0x1f
jbe 0x14001dab7
lea r11d, [rdx + 0x5f]
cmp r11b, 0x5e
jae 0x14001db93
lea r10d, [rax + 0x50]
movzx r8d, r11b
cmp r10b, 0x48
jae 0x14001dce3
movzx eax, r10b
imul eax, eax, 0x5e
add eax, r8d
lea rcx, [0x1402b00d8]
movzx eax, word [rcx + rax*2]
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [rbp + r12], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rbp + r12 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 2], al
mov eax, 3
mov r8, qword [rsp + 0x28]
mov r11, r15
jmp 0x14001de05
mov rdx, r15
cmp r15, r9
jae 0x14001e300
mov al, byte [r8 + rbx + 1]
add al, 0x7f
cmp al, 0x7d
ja 0x14001e312
lea rdx, [rbx + 2]
cmp rdx, r9
jae 0x14001e338
mov cl, byte [r8 + rbx + 2]
add cl, 0xd0
cmp cl, 9
ja 0x14001e34e
add rbx, 3
imul rdx, r10, 0x3138
movzx r10d, r11b
imul r10, r10, 0x4ec
add r10, rdx
movzx eax, al
imul rax, rax, 0xa
movzx r14d, cl
add r14, rax
add r14, r10
cmp r14, 0x99fc
jae 0x14001db37
cmp r14d, 0x1d21
jne 0x14001dc32
mov word [rbp + r12], 0x9fee
mov byte [rbp + r12 + 2], 0x87
jmp 0x14001ddfd
lea eax, [rdx - 0x40]
cmp al, 0x3e
jbe 0x14001dacc
cmp dl, 0xfe
jg 0x14001e3e3
add dl, 0xbf
mov eax, edx
imul ecx, r10d, 0xbe
movzx ebx, al
add ebx, ecx
mov word [rsp + 0x26], bx
mov edx, 0x77c
lea rcx, [0x1402ac7c4]
mov r8, r13
call fcn.1400233b4
mov r10, rdx
test rax, rax
je 0x14001dc8a
mov rcx, r10
dec rcx
cmp rcx, 0x77c
mov r9, qword [rsp + 0x38]
jae 0x14001e415
mov r11, r15
lea rax, [0x1402ad6bc]
add bx, word [rax + r10*2 - 2]
lea rax, [0x1402ac7c4]
sub bx, word [rax + r10*2 - 2]
jmp 0x14001dcab
lea rax, [r14 - 0x2e248]
cmp rax, 0x100000
jae 0x14001e3b6
add r14d, 0xfffe1db8
mov eax, r14d
shr eax, 0x12
or al, 0xf0
mov byte [rbp + r12], al
mov eax, r14d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 1], al
mov eax, r14d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 2], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rbp + r12 + 3], r14b
mov eax, 4
jmp 0x14001de02
lea ecx, [rdx - 0x40]
cmp cl, 0x3e
jbe 0x14001dba9
cmp dl, 0xa0
jg 0x14001e3f5
add dl, 0xbf
mov ecx, edx
add al, 0x5f
movzx eax, al
imul rbx, rax, 0x60
movzx eax, cl
lea r14, [rbx + rax]
add r14, 0xfffffffffffffca0
cmp r14, 0x1f7b
jae 0x14001dd24
mov word [rsp + 0x26], r14w
mov edx, 0x65b
lea rcx, [0x1402ae5b4]
mov r8, r13
call fcn.1400233b4
mov r10, rdx
test rax, rax
je 0x14001de6d
mov rcx, r10
dec rcx
cmp rcx, 0x65b
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
jae 0x14001e459
mov r11, r15
lea rax, [0x1402af26a]
add r14w, word [rax + r10*2 - 2]
lea rax, [0x1402ae5b4]
sub r14w, word [rax + r10*2 - 2]
jmp 0x14001de93
mov word [rsp + 0x26], r14w
mov edx, 0xce
lea rcx, [0x1402b378e]
mov r8, r13
call fcn.1400233b4
mov r9, rdx
test rax, rax
je 0x14001dd87
mov rcx, r9
dec rcx
cmp rcx, 0xce
jae 0x14001e426
lea rax, [0x1402b392a]
add r14w, word [rax + r9*2 - 2]
lea rax, [0x1402b378e]
sub r14w, word [rax + r9*2 - 2]
jmp 0x14001dda0
cmp r10, 0x77c
mov r9, qword [rsp + 0x38]
jae 0x14001e437
mov r11, r15
lea rax, [0x1402ad6bc]
movzx ebx, word [rax + r10*2]
mov r8, qword [rsp + 0x28]
movzx eax, bx
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [rbp + r12], cl
mov ecx, eax
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [rbp + r12 + 1], cl
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 2], al
mov eax, 3
jmp 0x14001de05
cmp al, 0xa1
je 0x14001dee0
movzx r10d, al
cmp r10d, 0xa6
je 0x14001de9c
cmp r10d, 0xa8
jne 0x14001df19
cmp r11b, 0x20
jae 0x14001df36
lea rax, [0x1402b36a0]
movzx eax, word [rax + r8*2]
jmp 0x14001deb6
add rbx, rax
cmp ebx, 0x360
jae 0x14001de40
mov word [rsp + 0x26], bx
mov edx, 0x3b
lea rcx, [0x1402aff20]
mov r8, r13
call fcn.1400233b4
mov r9, rdx
test rax, rax
je 0x14001df95
mov rcx, r9
dec rcx
cmp rcx, 0x3b
jae 0x14001e48f
lea rax, [0x1402aff98]
add bx, word [rax + r9*2 - 2]
lea rax, [0x1402aff20]
sub bx, word [rax + r9*2 - 2]
jmp 0x14001dfab
cmp r9, 0xce
jae 0x14001e445
lea rax, [0x1402b392a]
movzx r14d, word [rax + r9*2]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
cmp r14w, 0x800
jae 0x14001ddd3
mov eax, r14d
shr eax, 6
or al, 0xc0
mov byte [rbp + r12], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rbp + r12 + 1], r14b
mov eax, 2
jmp 0x14001de02
movzx eax, r14w
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [rbp + r12], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 1], al
and r14b, 0x3f
or r14b, 0x80
mov byte [rbp + r12 + 2], r14b
mov eax, 3
mov r11, rbx
add r12, rax
mov qword [rsp + 0x50], r12
cmp r11, r9
jae 0x14001e2b6
lea rax, [r12 + 3]
mov rdx, qword [rsp + 0x48]
cmp rax, rdx
jae 0x14001e2c1
mov al, byte [r8 + r11]
inc r11
mov rbx, r11
test al, al
js 0x14001d986
jmp 0x14001e13d
lea rcx, [rbx - 0x22db]
cmp rcx, 0x65
mov r8, qword [rsp + 0x28]
jae 0x14001e46a
mov r11, r15
lea rax, [0x1402b000e]
movzx eax, word [rax + rbx*2 - 0x45b6]
jmp 0x14001dcb3
cmp r10, 0x65b
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
jae 0x14001e47b
mov r11, r15
lea rax, [0x1402af26a]
movzx r14d, word [rax + r10*2]
movzx eax, r14w
jmp 0x14001dcb3
add dl, 0x20
cmp dl, 0x15
ja 0x14001df36
movzx eax, dl
lea rcx, [0x1402b3674]
movzx eax, word [rcx + rax*2]
cmp ax, 0x800
jae 0x14001e07b
mov ecx, eax
shr ecx, 6
or cl, 0xc0
mov byte [rbp + r12], cl
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 1], al
mov eax, 2
jmp 0x14001da1a
lea rax, [0x1402b35b8]
movzx eax, word [rax + r8*2]
cmp ax, 0x800
mov r8, qword [rsp + 0x28]
mov r11, r15
jae 0x14001e090
mov ecx, eax
shr ecx, 6
or cl, 0xc0
mov byte [rbp + r12], cl
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 1], al
jmp 0x14001e045
cmp cl, 0x76
jbe 0x14001df36
add al, 8
movzx eax, al
imul eax, eax, 0x5e
add eax, r8d
add eax, 0xffffe234
movzx ecx, ax
jmp 0x14001d9f1
add al, 0x5e
movzx eax, al
imul ebx, eax, 0x5e
add ebx, r8d
mov word [rsp + 0x26], bx
mov edx, 0x2b
lea rcx, [0x1402b36e0]
mov r8, r13
call fcn.1400233b4
mov r9, rdx
test rax, rax
je 0x14001e004
mov rcx, r9
dec rcx
cmp rcx, 0x2b
jae 0x14001e4a0
lea rax, [0x1402b3738]
add bx, word [rax + r9*2 - 2]
lea rax, [0x1402b36e0]
sub bx, word [rax + r9*2 - 2]
jmp 0x14001e01a
cmp r9, 0x3b
jae 0x14001e4b1
lea rax, [0x1402aff98]
movzx ebx, word [rax + r9*2]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
mov r11, r15
cmp bx, 0x800
jae 0x14001dfd8
mov eax, ebx
shr eax, 6
or al, 0xc0
mov byte [rbp + r12], al
and bl, 0x3f
or bl, 0x80
mov byte [rbp + r12 + 1], bl
jmp 0x14001e045
movzx eax, bx
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [rbp + r12], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [rbp + r12 + 2], bl
jmp 0x14001dcd9
cmp r9, 0x2b
jae 0x14001e4bf
lea rax, [0x1402b3738]
movzx ebx, word [rax + r9*2]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x28]
mov r11, r15
cmp bx, 0x800
jae 0x14001e04f
mov eax, ebx
shr eax, 6
or al, 0xc0
mov byte [rbp + r12], al
and bl, 0x3f
or bl, 0x80
mov byte [rbp + r12 + 1], bl
mov eax, 2
jmp 0x14001de05
movzx eax, bx
mov ecx, eax
shr ecx, 0xc
or cl, 0xe0
mov byte [rbp + r12], cl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rbp + r12 + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [rbp + r12 + 2], bl
jmp 0x14001dcd9
movzx ecx, ax
mov edx, ecx
shr edx, 0xc
or dl, 0xe0
mov byte [rbp + r12], dl
jmp 0x14001d9fe
movzx ecx, ax
mov edx, ecx
shr edx, 0xc
or dl, 0xe0
mov byte [rbp + r12], dl
jmp 0x14001dcc2
xor r13d, r13d
cmp r12, r13
je 0x14001e0be
mov al, byte [rcx + r13]
test al, al
js 0x14001e102
mov byte [rbx + r13], al
inc r13
jmp 0x14001e0a8
lea rax, [r11 - 0x10]
lea r12, [r14 + rbp]
add r12, 8
mov r15, qword [rcx + r13]
mov rsi, qword [rcx + r13 + 8]
mov qword [r12 + r13 - 8], r15
mov qword [r12 + r13], rsi
movabs r8, 0x8080808080808080
and r15, r8
and rsi, r8
mov rbp, rsi
or rbp, r15
jne 0x14001e152
add r13, 0x10
cmp r13, rax
jbe 0x14001e0ca
jmp 0x14001d926
mov r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
jmp 0x14001d959
cmp al, 0x80
jne 0x14001e2a6
mov word [rbp + r12], 0x82e2
mov byte [rbp + r12 + 2], 0xac
add r12, 3
mov r14, r12
mov r11, rbx
jmp 0x14001e148
mov byte [rbp + r12], al
inc r12
mov r14, r12
mov qword [rsp + 0x50], r14
jmp 0x14001d8ca
test r15, r15
je 0x14001e179
bsf rax, r15
shr eax, 3
mov r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
jmp 0x14001e1a8
test rsi, rsi
mov r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
je 0x14001e19d
bsf rax, rsi
jmp 0x14001e1a2
mov eax, 0x40
shr eax, 3
add eax, 8
add r13, rax
mov al, byte [rcx + r13]
jmp 0x14001d959
cmp byte [rsp + 0x110], 0
je 0x14001e228
mov rcx, r15
mov rsi, r9
call fcn.14001d0ec
xor ecx, ecx
mov byte [r15], cl
mov rdx, qword [rsp + 0x30]
mov byte [rdx + 8], 2
mov byte [rdx + 9], al
mov rax, rdx
mov byte [rdx + 0xa], cl
mov qword [rdx], rsi
jmp 0x14001e3cb
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 1
jmp 0x14001e299
xor eax, eax
cmp r10, rdi
setb al
mov rbx, qword [rsp + 0x68]
add rbx, r11
add r14, r11
lea rcx, [rsp + 0x40]
and ecx, 0xffff00
or rcx, rax
mov rax, qword [rsp + 0x30]
mov qword [rax], rbx
mov qword [rax + 8], rcx
jmp 0x14001e3cb
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 0
mov qword [rax], r9
jmp 0x14001e3cb
add bpl, 0x30
mov al, 1
mov byte [rdi + 6], al
mov byte [rdi + 7], bpl
mov rcx, qword [rsp + 0x30]
mov word [rcx + 8], 0x102
mov byte [rcx + 0xa], al
mov rax, rcx
mov qword [rcx], r11
jmp 0x14001e3cb
add bpl, 0x30
mov al, 1
mov byte [rdi + 6], al
mov byte [rdi + 7], bpl
mov byte [rdi + 8], al
mov al, byte [rsp + 0x68]
mov byte [rdi + 9], al
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x102
mov byte [rax + 0xa], 2
jmp 0x14001e299
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x402
mov byte [rax + 0xa], 0
inc r11
mov qword [rax], r11
jmp 0x14001e3cb
test sil, sil
je 0x14001e2eb
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x102
jmp 0x14001e3c1
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 0
jmp 0x14001e2ca
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 1
mov qword [rax], r11
jmp 0x14001e3c8
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 2
test cl, cl
js 0x14001e37f
mov word [rax + 9], 1
jmp 0x14001e299
mov byte [rdi + 8], 1
mov byte [rdi + 9], cl
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 0
jmp 0x14001e3c5
test sil, sil
je 0x14001e372
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x202
jmp 0x14001e348
or r11b, 0x30
mov al, 1
mov byte [rdi + 6], al
mov byte [rdi + 7], r11b
mov rcx, qword [rsp + 0x30]
mov word [rcx + 8], 0x102
mov byte [rcx + 0xa], al
mov rax, rcx
mov qword [rcx], rdx
jmp 0x14001e3c8
test sil, sil
je 0x14001e38d
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x302
mov byte [rax + 0xa], 0
jmp 0x14001e3a4
or r11b, 0x30
mov cl, 1
mov byte [rdi + 6], cl
mov byte [rdi + 7], r11b
mov byte [rdi + 8], cl
mov byte [rdi + 9], al
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x102
mov byte [rax + 0xa], 2
jmp 0x14001e3a4
mov byte [rdi + 8], 2
mov byte [rdi + 9], cl
mov byte [rdi + 0xa], r11b
jmp 0x14001e39b
inc r11
mov word [rax + 9], 2
jmp 0x14001e299
mov byte [rdi + 8], 3
mov byte [rdi + 9], cl
mov byte [rdi + 0xa], r11b
mov byte [rdi + 0xb], al
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 0
mov qword [rax], rdx
jmp 0x14001e3c8
mov eax, 1
mov r14, r12
jmp 0x14001e209
mov rax, qword [rsp + 0x30]
mov word [rax + 8], 0x402
mov byte [rax + 0xa], 0
mov qword [rax], rbx
mov r14, r12
mov qword [rax + 0x10], r14
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 2
test dl, dl
jns 0x14001e402
mov rcx, r15
jmp 0x14001e40a
mov rax, qword [rsp + 0x30]
mov byte [rax + 8], 2
test dl, dl
js 0x14001e40a
mov word [rax + 9], 1
jmp 0x14001e3c5
mov word [rax + 9], 2
mov qword [rax], r15
jmp 0x14001e3c8
lea r8, str.K___
mov edx, 0x77c
call fcn.140011c70
lea r8, str.K___
mov edx, 0xce
call fcn.140011c70
lea r8, [0x1402921b0]
mov edx, 0x77c
jmp 0x14001e487
lea r8, [0x1402921b0]
mov edx, 0xce
mov rcx, r9
call fcn.140011c70
lea r8, str.K___
mov edx, 0x65b
call fcn.140011c70
lea r8, [0x140292278]
mov edx, 0x65
call fcn.140011c70
lea r8, [0x1402921b0]
mov edx, 0x65b
mov rcx, r10
call fcn.140011c70
lea r8, str.K___
mov edx, 0x3b
call fcn.140011c70
lea r8, str.K___
mov edx, 0x2b
call fcn.140011c70
lea r8, [0x1402921b0]
mov edx, 0x3b
jmp 0x14001e451
lea r8, [0x1402921b0]
mov edx, 0x2b
jmp 0x14001e451
lea r8, [0x140292248]
mov rcx, r11
mov rdx, r9
call fcn.140015fd0
lea r8, [0x140292260]
mov rcx, r14
call fcn.140015fd0
int3