Function at 0x1400aee90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0xf8
mov rax, qword [0x1403ad830]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r9, r8
mov qword [rbp - 0x41], r8
mov r8d, dword [rcx + 0x75c]
mov rbx, rcx
mov dword [rbp - 0x7d], edx
cmp dword [rcx + 0x758], r8d
je 0x1400aeef7
lea rdx, [r8 + r8*2]
add rdx, rdx
mov eax, dword [rcx + rdx*8 + 0x784]
mov ecx, dword [rcx + rdx*8 + 0x788]
sub eax, r8d
mov dword [r9], ecx
mov ecx, dword [rbx + rdx*8 + 0x784]
mov dword [rbx + 0x75c], ecx
jmp 0x1400b05bf
xor eax, eax
mov qword [rsp + 0xf0], rdi
mov qword [rsp + 0xe8], r12
mov qword [rsp + 0xe0], r13
mov qword [rcx + 0x758], rax
cmp dword [rcx + 0x33204], eax
jne 0x1400aef32
lea rdx, [rbp - 0x65]
call fcn.1400b2ff0
mov r12d, dword [rbp - 0x65]
mov r13d, eax
jmp 0x1400aef40
mov r13d, dword [rcx + 0x760]
mov r12d, dword [rcx + 0x764]
mov edi, dword [rbx + 0x768]
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0xd8], r14
mov qword [rsp + 0xd0], r15
mov dword [rbp - 0x69], r12d
mov dword [rsp + 0x28], r13d
cmp edi, 2
jb 0x1400b0580
mov rcx, qword [rbx + 0x30]
mov eax, 0x111
cmp edi, eax
cmova edi, eax
call qword [rbx + reloc.ODBC32.dll_SQLAllocHandle]
movzx r15d, byte [rax - 1]
xor r10d, r10d
xor r11d, r11d
lea r8, [rax - 1]
mov ecx, dword [rbx + r11*4 + 0x33208]
lea rsi, [r11*4]
mov dword [rbp + rsi - 1], ecx
mov r9, r8
inc ecx
sub r9, rcx
cmp r15b, byte [r9]
jne 0x1400aeff9
movzx eax, byte [r9 + 1]
cmp byte [r8 + 1], al
jne 0x1400aeff9
mov edx, 2
cmp edi, edx
jbe 0x1400aefe2
lea rcx, [r8 + 2]
sub r9, r8
nop dword [rax]
movzx eax, byte [r9 + rcx]
cmp byte [rcx], al
jne 0x1400aefe2
inc edx
inc rcx
cmp edx, edi
jb 0x1400aefd0
mov eax, r10d
mov ecx, r11d
mov dword [rbp + rsi + 0xf], edx
cmp edx, dword [rbp + rax*4 + 0xf]
cmovbe ecx, r10d
mov r10d, ecx
jmp 0x1400af001
mov dword [rbp + rsi + 0xf], 0
lea esi, [r11 + 1]
mov r9, r8
mov ecx, dword [rbx + rsi*4 + 0x33208]
lea r14, [rsi*4]
mov dword [rbp + r14 - 1], ecx
inc ecx
sub r9, rcx
cmp r15b, byte [r9]
jne 0x1400af068
movzx eax, byte [r9 + 1]
cmp byte [r8 + 1], al
jne 0x1400af068
mov edx, 2
cmp edi, edx
jbe 0x1400af053
lea rcx, [r8 + 2]
sub r9, r8
movzx eax, byte [rcx + r9]
cmp byte [rcx], al
jne 0x1400af053
inc edx
inc rcx
cmp edx, edi
jb 0x1400af041
mov eax, r10d
mov dword [rbp + r14 + 0xf], edx
cmp edx, dword [rbp + rax*4 + 0xf]
cmovbe esi, r10d
mov r10d, esi
jmp 0x1400af071
mov dword [rbp + r14 + 0xf], 0
lea esi, [r11 + 2]
mov r9, r8
mov ecx, dword [rbx + rsi*4 + 0x33208]
lea r14, [rsi*4]
mov dword [rbp + r14 - 1], ecx
inc ecx
sub r9, rcx
cmp r15b, byte [r9]
jne 0x1400af0d8
movzx eax, byte [r9 + 1]
cmp byte [r8 + 1], al
jne 0x1400af0d8
mov edx, 2
cmp edi, edx
jbe 0x1400af0c3
lea rcx, [r8 + 2]
sub r9, r8
movzx eax, byte [rcx + r9]
cmp byte [rcx], al
jne 0x1400af0c3
inc edx
inc rcx
cmp edx, edi
jb 0x1400af0b1
mov eax, r10d
mov dword [rbp + r14 + 0xf], edx
cmp edx, dword [rbp + rax*4 + 0xf]
cmovbe esi, r10d
mov r10d, esi
jmp 0x1400af0e1
mov dword [rbp + r14 + 0xf], 0
lea esi, [r11 + 3]
mov r9, r8
mov ecx, dword [rbx + rsi*4 + 0x33208]
lea r14, [rsi*4]
mov dword [rbp + r14 - 1], ecx
inc ecx
sub r9, rcx
cmp r15b, byte [r9]
jne 0x1400af148
movzx eax, byte [r9 + 1]
cmp byte [r8 + 1], al
jne 0x1400af148
mov edx, 2
cmp edi, edx
jbe 0x1400af133
lea rcx, [r8 + 2]
sub r9, r8
movzx eax, byte [rcx + r9]
cmp byte [rcx], al
jne 0x1400af133
inc edx
inc rcx
cmp edx, edi
jb 0x1400af121
mov eax, r10d
mov dword [rbp + r14 + 0xf], edx
cmp edx, dword [rbp + rax*4 + 0xf]
cmovbe esi, r10d
mov r10d, esi
jmp 0x1400af151
mov dword [rbp + r14 + 0xf], 0
add r11d, 4
cmp r11d, 4
jb 0x1400aef90
mov eax, r10d
mov edi, dword [rbp + rax*4 + 0xf]
mov eax, dword [rbx + 0x33200]
cmp edi, eax
jb 0x1400af192
mov rcx, qword [rbp - 0x41]
lea edx, [rdi - 1]
mov dword [rcx], r10d
test edx, edx
je 0x1400af18b
add dword [rbx + 0x33204], edx
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x28]
mov eax, edi
jmp 0x1400b058f
cmp r13d, eax
jb 0x1400af1c9
mov rcx, qword [rbp - 0x41]
lea eax, [r12 - 1]
mov eax, dword [rbx + rax*4 + 0x3296c]
lea edx, [r13 - 1]
add eax, 4
mov dword [rcx], eax
test edx, edx
je 0x1400af1c1
add dword [rbx + 0x33204], edx
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x28]
mov eax, r13d
jmp 0x1400b058f
mov ecx, dword [rbp - 1]
mov rax, r8
movzx r14d, byte [r8]
inc ecx
sub rax, rcx
movzx esi, byte [rax]
cmp r13d, 2
jae 0x1400af1ef
cmp r14b, sil
je 0x1400af1ef
cmp edi, 2
jb 0x1400b0580
mov eax, dword [rbx + 0x33218]
lea r9, [rbx + 0x3276c]
mov r13d, dword [rbp - 0x7d]
mov ecx, 8
mov dword [rbx + 0x770], eax
sub cl, byte [rbx + 0x33e64]
mov eax, dword [rbp - 0x7d]
and eax, dword [rbx + 0x33e70]
movzx edx, byte [r8 - 1]
and r13d, dword [rbx + 0x33e74]
mov r15d, dword [rbx + 0x33218]
shr edx, cl
mov ecx, dword [rbx + 0x33e64]
shl eax, cl
add edx, eax
mov rax, qword [rbx + 0x33e78]
lea ecx, [rdx + rdx*2]
movzx edx, r14b
shl ecx, 8
lea rcx, [rax + rcx*2]
cmp r15d, 7
jb 0x1400af25f
movzx r8d, sil
call fcn.1400b1400
jmp 0x1400af267
mov r8, r9
call fcn.1400b13b0
mov r9d, eax
mov r12d, r13d
lea rax, [r15 + 0x19f4]
xor r10d, r10d
shl rax, 4
add rax, r12
movzx eax, word [rbx + rax*2]
shr rax, 4
mov r8d, dword [rbx + rax*4 + 0x3276c]
mov dword [rbx + 0x7b8], 0xffffffff
add r8d, r9d
mov dword [rbx + 0x79c], r8d
mov dword [rbx + 0x7a4], r10d
mov edx, dword [rbx + 0x33218]
lea rax, [rdx + 0x19f4]
shl rax, 4
add rax, r12
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + rdx*2 + 0x34000]
xor rcx, 0x7f0
xor rax, 0x7f0
shr rcx, 4
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0x3276c]
mov r15d, dword [rbx + rax*4 + 0x3276c]
mov eax, 0xffffffff
add r15d, ecx
mov dword [rbp - 0x65], ecx
cmp sil, r14b
jne 0x1400af34a
lea rax, [rdx + 0x1a03]
shl rax, 4
add rax, r12
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + rdx*2 + 0x34018]
shr rax, 4
shr rcx, 4
mov edx, dword [rbx + rcx*4 + 0x3276c]
add edx, dword [rbx + rax*4 + 0x3276c]
mov eax, 0xffffffff
add edx, r15d
cmp edx, r8d
jae 0x1400af34a
mov dword [rbx + 0x79c], edx
mov eax, r10d
mov dword [rbx + 0x7b8], r10d
mov edx, dword [rsp + 0x28]
cmp edx, edi
cmovb edx, edi
mov dword [rsp + 0x20], edx
cmp edx, 2
jae 0x1400af367
mov rcx, qword [rbp - 0x41]
mov dword [rcx], eax
jmp 0x1400b058a
mov eax, dword [rbp - 1]
mov dword [rbx + 0x7b4], r10d
mov dword [rbx + 0x78c], eax
mov eax, dword [rbp + 3]
mov dword [rbx + 0x790], eax
mov eax, dword [rbp + 7]
mov dword [rbx + 0x794], eax
mov eax, dword [rbp + 0xb]
mov dword [rbx + 0x798], eax
lea rcx, [rdx + rdx*2]
dec edx
add rcx, rcx
mov dword [rbx + rcx*8 + 0x76c], 0x40000000
cmp edx, 2
jae 0x1400af392
mov esi, r10d
lea r14, [rbp + 0xf]
mov edi, dword [r14]
cmp edi, 2
jb 0x1400af42d
mov r8d, dword [rbx + 0x33218]
mov r9d, r13d
mov edx, esi
mov rcx, rbx
call fcn.1400b0900
add eax, r15d
imul r9, r12, 0x110
nop dword [rax + rax]
lea edx, [rdi - 2]
mov ecx, edi
add rdx, r9
xor r10d, r10d
mov r8d, dword [rbx + rdx*4 + 0x39130]
lea rdx, [rcx + rcx*2]
add rdx, rdx
add r8d, eax
cmp r8d, dword [rbx + rdx*8 + 0x76c]
jae 0x1400af426
mov dword [rbx + rdx*8 + 0x76c], r8d
mov dword [rbx + rdx*8 + 0x784], r10d
mov dword [rbx + rdx*8 + 0x788], esi
mov dword [rbx + rdx*8 + 0x774], r10d
dec edi
cmp edi, 2
jae 0x1400af3e0
inc esi
add r14, 4
cmp esi, 4
jb 0x1400af3b2
mov r9d, dword [rbp + 0xf]
mov eax, dword [rbx + 0x33218]
mov r14d, dword [rbp - 0x65]
movzx ecx, word [rbx + rax*2 + 0x34000]
shr rcx, 4
add r14d, dword [rbx + rcx*4 + 0x3276c]
cmp r9d, 2
inc r9d
jae 0x1400af46d
mov r9d, 2
lea r13, [rbx + 0x3296c]
cmp r9d, dword [rsp + 0x28]
ja 0x1400af58b
mov edx, r10d
cmp r9d, dword [r13]
jbe 0x1400af49a
nop dword [rax + rax]
add edx, 2
cmp r9d, dword [r13 + rdx*4]
ja 0x1400af490
mov r15d, dword [rbp - 0x69]
imul rsi, r12, 0x110
nop word [rax + rax]
lea eax, [rdx + 1]
mov r8d, 3
mov r11d, dword [r13 + rax*4]
lea ecx, [r9 - 2]
mov eax, ecx
mov r10d, r11d
add rax, rsi
mov edi, dword [rbx + rax*4 + 0x348e8]
add edi, r14d
cmp r9d, 5
cmovb r8d, ecx
cmp r11d, 0x80
jae 0x1400af4f6
shl r8, 7
add r8, r11
mov eax, dword [rbx + r8*4 + 0x3361c]
jmp 0x1400af534
mov rax, r10
shl r8, 6
mov ecx, 0x7ffff
and r10d, 0xf
sub ecx, r11d
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x3076c]
lea eax, [rax + rcx*2]
add rax, r8
mov eax, dword [rbx + rax*4 + 0x3321c]
add eax, dword [rbx + r10*4 + 0x33e1c]
lea r8d, [rax + rdi]
mov eax, r9d
lea rcx, [rax + rax*2]
add rcx, rcx
cmp r8d, dword [rbx + rcx*8 + 0x76c]
jae 0x1400af572
mov dword [rbx + rcx*8 + 0x76c], r8d
lea eax, [r11 + 4]
xor r8d, r8d
mov dword [rbx + rcx*8 + 0x788], eax
mov dword [rbx + rcx*8 + 0x784], r8d
mov dword [rbx + rcx*8 + 0x774], r8d
mov eax, edx
cmp r9d, dword [r13 + rax*4]
jne 0x1400af583
add edx, 2
cmp edx, r15d
je 0x1400af58b
inc r9d
jmp 0x1400af4b0
mov r14d, 1
mov dword [rsp + 0x24], r14d
cmp dword [rsp + 0x20], r14d
je 0x1400b056f
lea r15, [0x140000000]
nop dword [rax + rax]
mov rcx, qword [rbx + 0x30]
xor edi, edi
mov dword [rbp - 0x71], edi
call qword [rbx + reloc.ODBC32.dll_SQLFreeStmt]
mov rcx, qword [rbx + 0x30]
mov rdx, r13
mov dword [rbx + 0x768], eax
call qword [rbx + 0x20]
mov dword [rbp - 0x65], eax
mov esi, eax
test eax, eax
je 0x1400af63b
lea ecx, [rax - 2]
mov edi, dword [rbx + rcx*4 + 0x3296c]
mov dword [rbp - 0x71], edi
cmp edi, dword [rbx + 0x33200]
jne 0x1400af63b
mov rcx, qword [rbx + 0x30]
call qword [rbx + reloc.ODBC32.dll_SQLAllocHandle]
mov r8d, dword [rbx + 0x768]
lea ecx, [rsi - 1]
mov ecx, dword [rbx + rcx*4 + 0x3296c]
lea r9, [rax - 1]
inc ecx
mov eax, 0x111
cmp r8d, eax
mov rdx, r9
cmova r8d, eax
sub rdx, rcx
cmp edi, r8d
jae 0x1400af63b
lea rcx, [r9 + rdi]
sub rdx, r9
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x1400af638
inc edi
inc rcx
cmp edi, r8d
jb 0x1400af626
mov dword [rbp - 0x71], edi
inc dword [rbx + 0x33204]
cmp edi, dword [rbx + 0x33200]
jae 0x1400b0563
inc dword [rbp - 0x7d]
lea rdi, [rbx + 0x76c]
mov eax, r14d
lea rcx, [rax + rax*2]
shl rcx, 4
add rdi, rcx
mov r8d, dword [rdi + 8]
mov edx, dword [rdi + 0x18]
test r8d, r8d
je 0x1400af6d4
dec edx
cmp dword [rdi + 0xc], 0
je 0x1400af6bc
mov eax, dword [rdi + 0x10]
lea rcx, [rax + rax*2]
add rcx, rcx
cmp dword [rdi + 0x14], 4
mov eax, dword [rbx + rcx*8 + 0x770]
lea rax, [rax*4]
jae 0x1400af6aa
mov eax, dword [rax + r15 + 0x2ef678]
mov ecx, dword [r15 + rax*4 + 0x2ef618]
jmp 0x1400af6e2
mov eax, dword [rax + r15 + 0x2ef648]
mov ecx, dword [r15 + rax*4 + 0x2ef618]
jmp 0x1400af6e2
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov eax, dword [rbx + rcx*8 + 0x770]
mov ecx, dword [r15 + rax*4 + 0x2ef618]
jmp 0x1400af6e2
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x770]
lea eax, [r14 - 1]
cmp edx, eax
jne 0x1400af714
cmp dword [rdi + 0x1c], 0
mov eax, ecx
jne 0x1400af703
mov r14d, dword [r15 + rax*4 + 0x2ef6a8]
mov dword [rbp - 0x75], r14d
jmp 0x1400af7f3
mov r14d, dword [r15 + rax*4 + 0x2ef618]
mov dword [rbp - 0x75], r14d
jmp 0x1400af7f3
test r8d, r8d
je 0x1400af732
cmp dword [rdi + 0xc], 0
je 0x1400af732
mov edx, dword [rdi + 0x10]
mov r9d, dword [rdi + 0x14]
mov eax, ecx
mov r14d, dword [r15 + rax*4 + 0x2ef678]
jmp 0x1400af750
mov r9d, dword [rdi + 0x1c]
mov eax, ecx
cmp r9d, 4
jae 0x1400af748
mov r14d, dword [r15 + rax*4 + 0x2ef678]
jmp 0x1400af750
mov r14d, dword [r15 + rax*4 + 0x2ef648]
mov eax, edx
lea r10, [rbx + 0x76c]
mov dword [rbp - 0x75], r14d
lea rcx, [rax + rax*2]
shl rcx, 4
add r10, rcx
cmp r9d, 4
jae 0x1400af7d7
mov eax, r9d
mov r8d, 1
mov ecx, dword [r10 + rax*4 + 0x20]
mov dword [rbp - 1], ecx
cmp r9d, r8d
jb 0x1400af7ae
nop dword [rax]
nop dword [rax + rax]
mov edx, r8d
lea eax, [r8 - 1]
mov eax, dword [r10 + rax*4 + 0x20]
inc r8d
mov dword [rbp + rdx*4 - 1], eax
cmp r8d, r9d
jbe 0x1400af790
cmp r8d, 4
jae 0x1400af7f3
mov eax, r8d
lea rdx, [r10 + 0x20]
lea rcx, [rbp - 1]
lea rcx, [rcx + rax*4]
lea rdx, [rdx + rax*4]
mov eax, 4
sub eax, r8d
mov r8d, eax
shl r8, 2
call fcn.140284ff0
jmp 0x1400af7f3
lea eax, [r9 - 4]
mov dword [rbp - 1], eax
mov eax, dword [r10 + 0x20]
mov dword [rbp + 3], eax
mov eax, dword [r10 + 0x24]
mov dword [rbp + 7], eax
mov eax, dword [r10 + 0x28]
mov dword [rbp + 0xb], eax
mov eax, dword [rbp + 3]
xor esi, esi
mov r15d, dword [rbp - 1]
mov dword [rdi + 4], r14d
mov dword [rdi + 0x24], eax
mov eax, dword [rbp + 7]
mov dword [rdi + 0x28], eax
mov eax, dword [rbp + 0xb]
mov dword [rdi + 0x2c], eax
mov dword [rdi + 0x20], r15d
mov rcx, qword [rbx + 0x30]
mov r13d, dword [rdi]
call qword [rbx + reloc.ODBC32.dll_SQLAllocHandle]
movzx r8d, byte [rax - 1]
lea r12d, [r15 + 1]
mov ecx, dword [rbp - 0x7d]
and ecx, dword [rbx + 0x33e74]
lea rdx, [rax - 1]
mov dword [rbp - 0x21], ecx
mov qword [rbp - 0x19], rcx
mov rax, rdx
sub rax, r12
mov qword [rbp - 0x59], rdx
movzx edx, byte [rdx - 1]
mov qword [rbp - 0x31], rax
mov byte [rbp - 0x79], r8b
bts r8d, 8
movzx r15d, byte [rax]
mov eax, r14d
add rax, 0x19f4
shl rax, 4
add rax, rcx
mov ecx, 8
sub cl, byte [rbx + 0x33e64]
shr edx, cl
mov ecx, dword [rbx + 0x33e64]
lea r10, [rbx + rax*2]
movzx eax, word [rbx + rax*2]
shr rax, 4
mov qword [rbp - 0x29], r10
mov r14d, dword [rbx + rax*4 + 0x3276c]
mov eax, dword [rbp - 0x7d]
add r14d, r13d
and eax, dword [rbx + 0x33e70]
shl eax, cl
add edx, eax
mov rax, qword [rbx + 0x33e78]
lea ecx, [rdx + rdx*2]
shl ecx, 8
cmp dword [rbp - 0x75], 7
lea rdi, [rax + rcx*2]
jb 0x1400af926
movzx r9d, r15b
xor r11d, r11d
mov r10d, 0x100
nop dword [rax + rax]
mov ecx, r8d
add r9d, r9d
shr ecx, 8
mov eax, r10d
and eax, r9d
add eax, r10d
add ecx, eax
movzx edx, word [rdi + rcx*2]
mov ecx, r8d
shr ecx, 7
add r8d, r8d
and ecx, 1
shr rdx, 4
neg ecx
mov eax, r8d
sar rcx, 4
xor eax, r9d
and ecx, 0x7f
not eax
xor rdx, rcx
and r10d, eax
add r11d, dword [rbx + rdx*4 + 0x3276c]
cmp r8d, 0x10000
jb 0x1400af8d0
mov r10, qword [rbp - 0x29]
jmp 0x1400af96b
xor r9d, r9d
nop dword [rax]
mov ecx, r8d
mov eax, r8d
shr ecx, 7
add r8d, r8d
and ecx, 1
shr rax, 8
neg ecx
sar rcx, 4
and ecx, 0x7f
movzx edx, word [rdi + rax*2]
shr rdx, 4
xor rdx, rcx
add r9d, dword [rbx + rdx*4 + 0x3276c]
cmp r8d, 0x10000
jb 0x1400af930
mov r11d, r9d
add r14d, r11d
lea rdx, [rbx + 0x76c]
mov r11d, dword [rsp + 0x24]
lea eax, [r11 + 1]
lea rcx, [rax + rax*2]
mov dword [rbp - 0x69], eax
shl rcx, 4
add rdx, rcx
mov r9d, dword [rdx]
cmp r14d, r9d
jae 0x1400af9ad
mov dword [rdx + 8], esi
mov r9d, r14d
mov esi, 1
mov dword [rdx], r14d
mov dword [rdx + 0x18], r11d
mov dword [rdx + 0x1c], 0xffffffff
movzx eax, word [r10]
movzx r10d, byte [rbp - 0x79]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rax*4 + 0x3276c]
mov eax, dword [rbp - 0x75]
add ecx, r13d
mov r13d, eax
mov dword [rbp - 0x45], ecx
add rax, 0x1a000
lea rax, [rbx + rax*2]
mov qword [rbp + 0xf], rax
movzx eax, word [rax]
xor rax, 0x7f0
shr rax, 4
mov edi, dword [rbx + rax*4 + 0x3276c]
add edi, ecx
mov dword [rbp - 0x51], edi
cmp r15b, r10b
jne 0x1400afa59
cmp dword [rdx + 0x18], r11d
jae 0x1400afa0b
cmp dword [rdx + 0x1c], 0
je 0x1400afa59
lea rax, [r13 + 0x1a03]
shl rax, 4
add rax, qword [rbp - 0x19]
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + r13*2 + 0x34018]
shr rcx, 4
shr rax, 4
mov r8d, dword [rbx + rcx*4 + 0x3276c]
add r8d, dword [rbx + rax*4 + 0x3276c]
add r8d, edi
cmp r8d, r9d
ja 0x1400afa59
xor eax, eax
mov dword [rdx], r8d
mov dword [rdx + 0x18], r11d
mov dword [rdx + 0x1c], eax
mov dword [rdx + 8], eax
lea esi, [rax + 1]
mov eax, dword [rbx + 0x768]
mov r9d, 0xfff
sub r9d, r11d
cmp r9d, eax
cmovae r9d, eax
mov dword [rbp - 0x39], r9d
cmp r9d, 2
jb 0x1400b0530
mov eax, dword [rbx + 0x33200]
mov edx, r9d
cmp r9d, eax
cmova edx, eax
mov dword [rsp + 0x28], edx
test esi, esi
jne 0x1400afc14
cmp r15b, r10b
je 0x1400afc14
inc eax
mov r8d, r9d
cmp eax, r9d
mov edx, 1
cmovbe r8d, eax
cmp r8d, edx
jbe 0x1400afad3
mov rcx, qword [rbp - 0x31]
inc rcx
nop
movzx eax, byte [rcx]
cmp byte [r12 + rcx], al
jne 0x1400afad3
inc edx
inc rcx
cmp edx, r8d
jb 0x1400afac0
lea edi, [rdx - 1]
cmp edi, 2
jb 0x1400afc10
mov r8d, dword [rbp - 0x7d]
lea rax, [0x140000000]
mov r10d, dword [rax + r13*4 + 0x2ef618]
inc r8d
mov eax, dword [rbx + 0x33e74]
add r11d, edx
mov esi, dword [rsp + 0x20]
and r8, rax
lea rax, [r10 + 0x19f4]
shl rax, 4
add rax, r8
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + r10*2 + 0x34000]
xor rcx, 0x7f0
shr rcx, 4
xor rax, 0x7f0
shr rax, 4
mov r9d, dword [rbx + rcx*4 + 0x3276c]
add r9d, dword [rbx + rax*4 + 0x3276c]
add r9d, r14d
cmp esi, r11d
jae 0x1400afb81
lea rcx, [rsi + rsi*2]
mov eax, r11d
shl rcx, 4
lea rdx, [rbx + 0x76c]
add rdx, rcx
sub eax, esi
add esi, eax
mov ecx, eax
mov dword [rsp + 0x20], esi
nop dword [rax]
mov dword [rdx + 0x30], 0x40000000
lea rdx, [rdx + 0x30]
sub rcx, 1
jne 0x1400afb70
imul rax, r8, 0x110
lea edx, [rdi - 2]
add rdx, rax
lea rax, [r10 + 0x1a03]
shl rax, 4
add rax, r8
mov r8d, dword [rbx + rdx*4 + 0x39130]
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + r10*2 + 0x34018]
xor rcx, 0x7f0
shr rcx, 4
shr rax, 4
add r8d, dword [rbx + rcx*4 + 0x3276c]
lea rcx, [r11 + r11*2]
add r8d, dword [rbx + rax*4 + 0x3276c]
add rcx, rcx
mov r11d, dword [rsp + 0x24]
add r8d, r9d
cmp r8d, dword [rbx + rcx*8 + 0x76c]
jae 0x1400afc10
mov eax, dword [rbp - 0x69]
xor edx, edx
mov dword [rbx + rcx*8 + 0x788], edx
mov dword [rbx + rcx*8 + 0x76c], r8d
mov dword [rbx + rcx*8 + 0x784], eax
mov qword [rbx + rcx*8 + 0x774], 1
mov edx, dword [rsp + 0x28]
mov rcx, qword [rbp - 0x59]
lea rax, [r13*4]
mov qword [rbp - 0x29], rax
xor r15d, r15d
lea rax, [rbp - 1]
mov dword [rbp - 0x6d], r15d
mov qword [rbp - 0x31], rax
mov r12d, 2
nop dword [rax]
mov esi, dword [rax]
mov r14, rcx
inc esi
sub r14, rsi
mov qword [rbp - 0x11], rsi
movzx eax, byte [r14]
cmp byte [rcx], al
jne 0x1400b0022
movzx eax, byte [r14 + 1]
cmp byte [rcx + 1], al
jne 0x1400b0022
mov edi, 2
cmp edx, edi
jbe 0x1400afc86
lea rcx, [r14 + 2]
movzx eax, byte [rcx]
cmp byte [rsi + rcx], al
jne 0x1400afc86
inc edi
inc rcx
cmp edi, edx
jb 0x1400afc75
mov r8d, dword [rsp + 0x20]
lea edx, [rdi + r11]
cmp r8d, edx
jae 0x1400afcd1
lea rcx, [r8 + r8*2]
sub edx, r8d
shl rcx, 4
lea rax, [rbx + 0x76c]
add rax, rcx
mov ecx, edx
add r8d, edx
mov dword [rsp + 0x20], r8d
nop dword [rax]
nop word [rax + rax]
mov dword [rax + 0x30], 0x40000000
lea rax, [rax + 0x30]
sub rcx, 1
jne 0x1400afcc0
mov r9d, dword [rbp - 0x21]
mov edx, r15d
mov r8d, dword [rbp - 0x75]
mov rcx, rbx
mov r13d, edi
mov dword [rbp - 0x61], edi
call fcn.1400b0900
imul rsi, qword [rbp - 0x19], 0x110
add eax, dword [rbp - 0x51]
mov r11d, dword [rsp + 0x24]
xor r9d, r9d
mov qword [rbp - 9], rsi
mov dword [rbp - 0x4d], eax
nop dword [rax]
nop dword [rax + rax]
lea edx, [rdi - 2]
add rdx, rsi
lea ecx, [rdi + r11]
lea rcx, [rcx + rcx*2]
add rcx, rcx
mov r8d, dword [rbx + rdx*4 + 0x39130]
add r8d, eax
cmp r8d, dword [rbx + rcx*8 + 0x76c]
jae 0x1400afd56
mov dword [rbx + rcx*8 + 0x76c], r8d
mov dword [rbx + rcx*8 + 0x784], r11d
mov dword [rbx + rcx*8 + 0x788], r15d
mov dword [rbx + rcx*8 + 0x774], r9d
dec edi
cmp edi, 2
jae 0x1400afd10
mov edx, dword [rbp - 0x39]
lea r10d, [r13 + 1]
mov ecx, dword [rbx + 0x33200]
test r15d, r15d
mov rsi, qword [rbp - 0x11]
mov r8d, r10d
cmovne r8d, r12d
add ecx, r10d
cmp ecx, edx
mov dword [rbp - 0x49], r8d
cmovbe edx, ecx
cmp r10d, edx
jae 0x1400afda3
mov ecx, r10d
add rcx, r14
nop
movzx eax, byte [rcx]
cmp byte [rsi + rcx], al
jne 0x1400afda3
inc r10d
inc rcx
cmp r10d, edx
jb 0x1400afd90
mov ecx, dword [rbp - 0x61]
mov eax, 0xffffffff
sub eax, ecx
mov r13d, r10d
add r10d, eax
mov r12d, r8d
cmp r10d, 2
jb 0x1400b001e
movzx edi, byte [r14 + rcx]
lea eax, [rcx - 1]
mov r8, qword [rbp - 0x59]
mov esi, 0x100
mov edx, dword [rbx + 0x33e64]
xor r14d, r14d
mov r9d, dword [rbp - 0x7d]
mov r12d, dword [rbx + 0x33e74]
add r9d, ecx
movzx r11d, byte [rcx + r8]
and r12d, r9d
movzx r8d, byte [rax + r8]
mov ecx, 8
and r9d, dword [rbx + 0x33e70]
sub cl, dl
mov r15, qword [rbx + 0x33e78]
or r11d, esi
shr r8d, cl
mov ecx, edx
shl r9d, cl
add r8d, r9d
lea r8d, [r8 + r8*2]
shl r8d, 8
add edi, edi
mov eax, esi
and eax, edi
mov ecx, r11d
shr ecx, 8
add eax, esi
add eax, ecx
mov ecx, r11d
shr ecx, 7
add rax, r8
and ecx, 1
add r11d, r11d
neg ecx
sar rcx, 4
movzx edx, word [r15 + rax*2]
and ecx, 0x7f
shr rdx, 4
mov eax, r11d
xor rdx, rcx
xor eax, edi
not eax
and esi, eax
add r14d, dword [rbx + rdx*4 + 0x3276c]
cmp r11d, 0x10000
jb 0x1400afe20
mov rax, qword [rbp - 0x29]
lea rdx, [0x140000000]
mov r8d, dword [rbp - 0x7d]
mov esi, dword [rbp - 0x61]
inc r8d
mov r9d, dword [rsp + 0x24]
add r8d, esi
mov ecx, dword [rax + rdx + 0x2ef678]
add r9d, r13d
mov eax, dword [rbx + 0x33e74]
and r8, rax
mov eax, r12d
mov edi, dword [rdx + rcx*4 + 0x2ef618]
add rcx, 0x19f4
shl rcx, 4
add rcx, rax
lea rax, [rdi + 0x19f4]
shl rax, 4
movzx edx, word [rbx + rcx*2]
add rax, r8
shr rdx, 4
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + rdi*2 + 0x34000]
xor rcx, 0x7f0
mov r11d, dword [rbx + rdx*4 + 0x3276c]
xor rax, 0x7f0
shr rcx, 4
shr rax, 4
add r11d, dword [rbx + rcx*4 + 0x3276c]
lea ecx, [rsi - 2]
add r11d, dword [rbx + rax*4 + 0x3276c]
add rcx, qword [rbp - 9]
add r11d, dword [rbx + rcx*4 + 0x39130]
add r11d, r14d
mov r14d, dword [rsp + 0x20]
add r11d, dword [rbp - 0x4d]
cmp r14d, r9d
jae 0x1400aff61
lea rcx, [r14 + r14*2]
mov eax, r9d
shl rcx, 4
lea rdx, [rbx + 0x76c]
add rdx, rcx
sub eax, r14d
add r14d, eax
mov ecx, eax
mov dword [rsp + 0x20], r14d
nop word [rax + rax]
mov dword [rdx + 0x30], 0x40000000
lea rdx, [rdx + 0x30]
sub rcx, 1
jne 0x1400aff50
mov r15d, dword [rbp - 0x6d]
lea edx, [r10 - 2]
imul rax, r8, 0x110
add rdx, rax
lea rax, [rdi + 0x1a03]
shl rax, 4
add rax, r8
mov r8d, dword [rbx + rdx*4 + 0x39130]
mov edx, dword [rbp - 0x49]
mov r12d, edx
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + rdi*2 + 0x34018]
xor rcx, 0x7f0
shr rcx, 4
shr rax, 4
add r8d, dword [rbx + rcx*4 + 0x3276c]
lea rcx, [r9 + r9*2]
add r8d, dword [rbx + rax*4 + 0x3276c]
add rcx, rcx
add r8d, r11d
mov r11d, dword [rsp + 0x24]
cmp r8d, dword [rbx + rcx*8 + 0x76c]
jae 0x1400b0018
mov eax, dword [rbp - 0x69]
add eax, esi
mov dword [rbx + rcx*8 + 0x76c], r8d
mov dword [rbx + rcx*8 + 0x784], eax
mov dword [rbx + rcx*8 + 0x788], 0
mov dword [rbx + rcx*8 + 0x774], 1
mov dword [rbx + rcx*8 + 0x778], 1
mov dword [rbx + rcx*8 + 0x77c], r11d
mov dword [rbx + rcx*8 + 0x780], r15d
mov rcx, qword [rbp - 0x59]
jmp 0x1400b0027
mov rcx, qword [rbp - 0x59]
mov r14d, dword [rsp + 0x20]
mov rax, qword [rbp - 0x31]
inc r15d
mov edx, dword [rsp + 0x28]
add rax, 4
mov dword [rbp - 0x6d], r15d
mov qword [rbp - 0x31], rax
cmp r15d, 4
jb 0x1400afc40
mov ecx, dword [rbp - 0x71]
lea r10, [rbx + 0x3296c]
mov eax, edx
cmp ecx, edx
jbe 0x1400b0074
mov ecx, edx
xor edx, edx
cmp ecx, dword [r10]
jbe 0x1400b006a
add edx, 2
cmp eax, dword [r10 + rdx*4]
ja 0x1400b0061
mov dword [r10 + rdx*4], eax
add edx, 2
mov dword [rbp - 0x65], edx
cmp ecx, r12d
jb 0x1400b0530
mov rax, qword [rbp + 0xf]
lea edx, [rcx + r11]
mov r9d, dword [rbp - 0x45]
movzx eax, word [rax]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x3276c]
add r9d, eax
mov dword [rbp - 0x51], r9d
cmp r14d, edx
jae 0x1400b00e1
mov eax, r14d
sub edx, r14d
lea rcx, [rax + rax*2]
shl rcx, 4
lea rax, [rbx + 0x76c]
add rax, rcx
mov ecx, edx
add r14d, edx
mov dword [rsp + 0x20], r14d
nop word [rax + rax]
mov dword [rax + 0x30], 0x40000000
lea rax, [rax + 0x30]
sub rcx, 1
jne 0x1400b00d0
xor r8d, r8d
mov dword [rbp - 0x71], r8d
cmp r12d, dword [r10]
jbe 0x1400b00fe
nop dword [rax]
add r8d, 2
cmp r12d, dword [r10 + r8*4]
ja 0x1400b00f0
mov dword [rbp - 0x71], r8d
imul rdx, qword [rbp - 0x19], 0x110
mov edi, dword [rbp - 0x7d]
lea eax, [r8 + 1]
mov r15d, dword [r10 + rax*4]
mov ecx, 0x7ffff
mov r14d, dword [rsp + 0x24]
sub ecx, r15d
mov rsi, qword [rbp - 0x59]
mov eax, r15d
shr ecx, 0x1f
neg ecx
mov qword [rbp + 0xf], rdx
and ecx, 0xc
add ecx, 6
shr rax, cl
inc r12d
dec r11d
dec edi
mov dword [rsp + 0x28], r11d
movzx eax, byte [rax + rbx + 0x3076c]
mov dword [rbp - 0x61], edi
lea r10d, [rax + rcx*2]
mov dword [rbp - 0x6d], r10d
nop word [rax + rax]
lea r13d, [r12 - 1]
lea ecx, [r13 - 2]
mov eax, ecx
add rax, rdx
mov edx, r15d
mov eax, dword [rbx + rax*4 + 0x348e8]
add r9d, eax
cmp r13d, 5
mov eax, 3
cmovb eax, ecx
mov ecx, eax
cmp r15d, 0x80
jae 0x1400b01a2
shl rcx, 7
add rcx, rdx
mov eax, dword [rbx + rcx*4 + 0x3361c]
jmp 0x1400b01bd
shl rcx, 6
and edx, 0xf
mov eax, r10d
add rcx, rax
mov eax, dword [rbx + rcx*4 + 0x3321c]
add eax, dword [rbx + rdx*4 + 0x33e1c]
lea edx, [r9 + rax]
lea eax, [r11 + r12]
mov dword [rbp - 0x49], edx
lea rcx, [rax + rax*2]
shl rcx, 4
add rcx, rbx
cmp edx, dword [rcx + 0x76c]
jae 0x1400b01fc
lea eax, [r15 + 4]
mov dword [rcx + 0x76c], edx
mov dword [rcx + 0x788], eax
mov dword [rcx + 0x784], r14d
mov dword [rcx + 0x774], 0
lea r9, [rbx + 0x3296c]
cmp r13d, dword [r9 + r8*4]
jne 0x1400b0520
mov edx, dword [rbp - 0x39]
lea r8d, [r15 + 1]
mov ecx, dword [rbx + 0x33200]
mov r10, rsi
add ecx, r12d
sub r10, r8
cmp ecx, edx
mov r11d, r12d
cmovbe edx, ecx
cmp r12d, edx
jae 0x1400b024a
mov ecx, r12d
add rcx, r10
movzx eax, byte [rcx]
cmp byte [r8 + rcx], al
jne 0x1400b024a
inc r11d
inc rcx
cmp r11d, edx
jb 0x1400b0236
mov eax, 0xffffffff
mov dword [rbp - 0x4d], r11d
sub eax, r13d
add r11d, eax
cmp r11d, 2
jb 0x1400b04bb
mov r8, qword [rbp - 0x59]
lea r9d, [rdi + r12]
movzx edi, byte [r13 + r10]
mov eax, r9d
and eax, dword [rbx + 0x33e74]
mov ecx, 8
and r9d, dword [rbx + 0x33e70]
mov esi, 0x100
movzx r10d, byte [r13 + r8]
xor r14d, r14d
mov edx, dword [rbx + 0x33e64]
or r10d, esi
sub cl, dl
mov dword [rbp - 0x45], eax
lea eax, [r13 - 1]
movzx r8d, byte [rax + r8]
shr r8d, cl
mov ecx, edx
shl r9d, cl
add r8d, r9d
lea r9d, [r8 + r8*2]
mov r8, qword [rbx + 0x33e78]
shl r9d, 8
nop word [rax + rax]
add edi, edi
mov eax, esi
and eax, edi
mov ecx, r10d
shr ecx, 8
add eax, esi
add eax, ecx
mov ecx, r10d
shr ecx, 7
add rax, r9
and ecx, 1
add r10d, r10d
neg ecx
sar rcx, 4
movzx edx, word [r8 + rax*2]
and ecx, 0x7f
shr rdx, 4
mov eax, r10d
xor rdx, rcx
xor eax, edi
not eax
and esi, eax
add r14d, dword [rbx + rdx*4 + 0x3276c]
cmp r10d, 0x10000
jb 0x1400b02d0
mov r9d, dword [rbp - 0x45]
lea rdx, [0x140000000]
mov rax, qword [rbp - 0x29]
mov r10d, dword [rbp - 0x4d]
mov esi, dword [rsp + 0x24]
add r10d, esi
lea r8d, [r9 + 1]
mov ecx, dword [rax + rdx + 0x2ef648]
mov eax, dword [rbx + 0x33e74]
and r8, rax
mov edi, dword [rdx + rcx*4 + 0x2ef618]
add rcx, 0x19f4
shl rcx, 4
add rcx, r9
lea rax, [rdi + 0x19f4]
shl rax, 4
add rax, r8
movzx edx, word [rbx + rax*2]
movzx eax, word [rbx + rcx*2]
xor rdx, 0x7f0
shr rax, 4
shr rdx, 4
mov r9d, dword [rbx + rdx*4 + 0x3276c]
add r9d, dword [rbx + rax*4 + 0x3276c]
movzx eax, word [rbx + rdi*2 + 0x34000]
xor rax, 0x7f0
shr rax, 4
add r9d, dword [rbx + rax*4 + 0x3276c]
add r9d, r14d
mov r14d, dword [rsp + 0x20]
add r9d, dword [rbp - 0x49]
cmp r14d, r10d
jae 0x1400b0401
lea rcx, [r14 + r14*2]
mov eax, r10d
shl rcx, 4
lea rdx, [rbx + 0x76c]
add rdx, rcx
sub eax, r14d
add r14d, eax
mov ecx, eax
mov dword [rsp + 0x20], r14d
nop dword [rax]
nop word [rax + rax]
mov dword [rdx + 0x30], 0x40000000
lea rdx, [rdx + 0x30]
sub rcx, 1
jne 0x1400b03f0
imul rax, r8, 0x110
lea edx, [r11 - 2]
mov r14d, esi
add rdx, rax
lea rax, [rdi + 0x1a03]
shl rax, 4
add rax, r8
mov r8d, dword [rbx + rdx*4 + 0x39130]
movzx ecx, word [rbx + rax*2]
movzx eax, word [rbx + rdi*2 + 0x34018]
xor rcx, 0x7f0
mov edi, dword [rbp - 0x61]
shr rcx, 4
shr rax, 4
add r8d, dword [rbx + rcx*4 + 0x3276c]
lea rcx, [r10 + r10*2]
add r8d, dword [rbx + rax*4 + 0x3276c]
add rcx, rcx
add r8d, r9d
lea r9, [rbx + 0x3296c]
cmp r8d, dword [rbx + rcx*8 + 0x76c]
jae 0x1400b04b7
lea eax, [r12 + rsi]
mov dword [rbx + rcx*8 + 0x76c], r8d
mov dword [rbx + rcx*8 + 0x784], eax
lea eax, [r15 + 4]
mov dword [rbx + rcx*8 + 0x780], eax
mov dword [rbx + rcx*8 + 0x788], 0
mov dword [rbx + rcx*8 + 0x774], 1
mov dword [rbx + rcx*8 + 0x778], 1
mov dword [rbx + rcx*8 + 0x77c], esi
mov rsi, qword [rbp - 0x59]
mov r8d, dword [rbp - 0x71]
add r8d, 2
mov dword [rbp - 0x71], r8d
cmp r8d, dword [rbp - 0x65]
je 0x1400b0530
mov r11d, dword [rsp + 0x28]
lea eax, [r8 + 1]
mov r15d, dword [r9 + rax*4]
cmp r15d, 0x80
jb 0x1400b051c
mov rdx, qword [rbp + 0xf]
mov ecx, 0x7ffff
mov r9d, dword [rbp - 0x51]
sub ecx, r15d
shr ecx, 0x1f
mov eax, r15d
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
inc r12d
movzx eax, byte [rax + rbx + 0x3076c]
lea r10d, [rax + rcx*2]
mov dword [rbp - 0x6d], r10d
jmp 0x1400b0160
mov r10d, dword [rbp - 0x6d]
mov rdx, qword [rbp + 0xf]
inc r12d
mov r9d, dword [rbp - 0x51]
jmp 0x1400b0160
mov r14d, dword [rbp - 0x69]
lea r13, [rbx + 0x3296c]
lea r15, [0x140000000]
mov dword [rsp + 0x24], r14d
cmp r14d, dword [rsp + 0x20]
jne 0x1400af5b0
mov rdx, qword [rbp - 0x41]
mov r8d, r14d
mov rcx, rbx
call fcn.1400ae570
jmp 0x1400b058f
mov dword [rbx + 0x764], esi
mov dword [rbx + 0x760], edi
mov rdx, qword [rbp - 0x41]
mov r8d, r14d
mov rcx, rbx
call fcn.1400ae570
jmp 0x1400b058f
mov rcx, qword [rbp - 0x41]
mov dword [rcx], 0xffffffff
mov eax, 1
mov r14, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0x128]
mov r15, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xf0]
mov r12, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xe0]
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.140283120
add rsp, 0xf8
pop rbx
pop rbp
ret