Function at 0x8521a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
mov rax, qword [rcx]
mov rax, qword [rax]
mov r10d, dword [rax + 0x30]
mov word [rsp + 0x6a], r9w
mov rdi, rcx
mov rbp, r8
mov qword [rsp + 0x208], rdx
mov dword [rsp + 0x110], r9d
mov qword [rsp + 0x70], rax
test r10d, r10d
jne 0x853288
mov r15, qword [rcx + 0x10]
mov rbx, rax
mov rbx, qword [rbx]
movzx esi, word [r15 + 0x1a]
mov eax, dword [r15 + 0x38]
movzx r9d, word [r15 + 0x18]
mov qword [rsp + 0xb0], rbx
mov word [rsp + 0x11c], si
movzx esi, word [r15 + 0x1c]
mov dword [rsp + 0x80], eax
and eax, 0x20
mov word [rsp + 0xd0], si
mov rsi, qword [r15 + 0x16]
cmp eax, 1
sbb edx, edx
mov word [rsp + 0x6c], r9w
mov qword [rsp + 0xc8], rsi
movzx esi, word [r15 + 0x3e]
and edx, 0x183
cmp eax, 1
sbb eax, eax
mov dword [rsp + 0x90], r9d
mov word [rsp + 0xd2], si
mov rsi, qword [r15 + 0x38]
and eax, 0x1a7
add eax, 0x18
test byte [r8 + 0x64], 4
mov qword [rsp + 0xc0], rsi
movzx esi, word [r15 + 0x3c]
cmovne eax, edx
mov rdx, qword [rcx + 8]
lea rcx, [rsp + 0x140]
mov word [rsp + 0x6e], si
mov rsi, qword [r15]
mov qword [rsp + 0x78], rsi
movzx esi, word [r15 + 0x16]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x28], r8
mov r8d, dword [rax + 0x44]
mov word [rsp + 0x5a], si
mov rsi, rcx
call fcn.00859010
xor r8d, r8d
xor r9d, r9d
mov r11, rax
mov rax, qword [rbp + 0x10]
mov word [r15 + 0x12], r8w
mov word [rsp + 0x68], r9w
movsx rbx, word [rax]
mov dword [rsp + 0x84], ebx
mov rax, rbx
cmp bx, 0xa
jg 0x852c80
test r11, r11
je 0x853738
movzx eax, word [rsp + 0x6c]
mov r14, rsi
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0x98], rax
add rax, rax
mov qword [rsp + 0x48], rax
movzx eax, word [rsp + 0x6e]
add eax, 8
mov ebx, eax
and eax, 0x1fff8
shl rax, 3
and ebx, 0xfffffff8
mov qword [rsp + 0xb8], rax
mov dword [rsp + 0xd4], ebx
mov rbx, r11
nop
movzx esi, word [rbx + 0x14]
cmp si, 0x100
je 0x852361
test byte [rbx + 0x12], 0x80
je 0x852383
mov rax, qword [rbp + 8]
mov rcx, qword [rsp + 0x48]
movsx rdx, word [rax + rcx]
mov rax, rdx
test edx, edx
jns 0x852950
cmp edx, 0xffffffff
je 0x852938
mov rax, qword [rbx + 0x28]
mov rdx, qword [r15 + 8]
mov rcx, rax
and rcx, rdx
mov qword [rsp + 0x50], rcx
jne 0x852938
cmp si, 0x10
sete r12b
and r12b, byte [rbx + 0x13]
jne 0x852bb8
mov rcx, qword [rsp + 0x208]
movzx ecx, byte [rcx + 0x3c]
test cl, 0x58
je 0x8523f0
mov r8, qword [rbx]
mov r9d, dword [r8 + 4]
test r9b, 3
je 0x852938
mov r10, qword [rsp + 0x208]
mov r11d, dword [r10 + 0x44]
cmp dword [r8 + 0x34], r11d
jne 0x852938
and ecx, 0x18
jne 0x852928
nop
cmp byte [rbp + 0x62], 0
movzx ecx, byte [rdi + 0x2c]
je 0x852411
movzx r8d, word [rbp + 0x5e]
sub r8d, 1
cmp dword [rsp + 0x90], r8d
je 0x852bc0
or ecx, 1
mov r10d, dword [rdi + 0x28]
movzx r8d, word [rsp + 0x6e]
mov byte [rdi + 0x2c], cl
mov ecx, dword [rsp + 0x80]
mov dword [rsp + 0x5c], r10d
mov dword [r15 + 0x38], ecx
movzx ecx, word [rsp + 0x6c]
mov word [r15 + 0x3c], r8w
mov word [r15 + 0x18], cx
movzx ecx, word [rsp + 0x11c]
mov word [r15 + 0x1a], cx
movzx ecx, word [rsp + 0xd0]
mov word [r15 + 0x1c], cx
cmp word [r15 + 0x40], r8w
ja 0x852980
mov r13, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xb8]
mov rcx, r13
call fcn.007ae070
mov r12, rax
test rax, rax
je 0x853738
movzx r8d, word [r15 + 0x40]
mov rdx, qword [r15 + 0x48]
mov rcx, rax
shl r8, 3
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + 0x48]
lea rax, [r15 + 0x58]
cmp rdx, rax
je 0x8524b3
mov rcx, r13
call fcn.007adee0
movzx eax, word [rsp + 0xd4]
movzx r8d, word [r15 + 0x3c]
mov qword [r15 + 0x48], r12
mov rdx, qword [r15 + 8]
mov word [r15 + 0x40], ax
mov rax, qword [rbx + 0x28]
or rax, qword [rsp + 0x78]
not rdx
lea ecx, [r8 + 1]
and rax, rdx
mov word [r15 + 0x3c], cx
mov qword [r12 + r8*8], rbx
mov qword [r15], rax
mov eax, esi
and ax, 1
mov word [rsp + 0x60], ax
je 0x852990
movzx edx, byte [rbp + 0x64]
mov r8, qword [rbx]
shr dl, 7
cmp word [rsp + 0x68], 9
setg al
and edx, eax
test byte [r8 + 5], 0x10
jne 0x853230
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x852531
movsxd rax, dword [rax]
test eax, eax
jne 0x852c10
test dl, dl
jne 0x853740
mov r9d, dword [r15 + 0x38]
xor r12d, r12d
or r9d, 4
mov dword [r15 + 0x38], r9d
movzx r10d, word [r15 + 0x18]
test r9b, 2
jne 0x852a10
movzx r13d, word [rbx + 0x10]
add r10d, 1
mov word [r15 + 0x18], r10w
test r13w, r13w
jle 0x852b40
cmp word [rsp + 0x6a], 0
mov qword [rsp + 0x128], 0
jne 0x852748
mov eax, dword [rbp + 0x68]
test eax, eax
je 0x852748
movzx r11d, r10w
cmp dword [rbp + 0x70], r11d
jl 0x852748
cmp word [rsp + 0x60], 0
je 0x8525b5
mov rax, qword [rbx]
test byte [rax + 5], 0x10
jne 0x852748
mov rax, qword [rsp + 0xb0]
test byte [rax + 0x61], 8
jne 0x852748
mov rax, qword [rbx]
test si, 0x182
jne 0x853cb0
mov rax, qword [rax + 0x20]
mov r8, rax
mov rax, qword [rdi + 0x10]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x10]
movsx eax, word [rax]
mov ecx, eax
imul eax, eax, 0x6667
mov edx, ecx
mov r9d, ecx
sar dx, 0xf
sar eax, 0x12
sub eax, edx
lea edx, [rax + rax*4]
add edx, edx
sub r9d, edx
movsx rdx, r9w
cmp rdx, 4
jbe 0x8542ae
sub rdx, 2
movabs r9, 0x7fffffffffffffff
mov qword [rsp + 0x60], r9
cmp cx, 0x261
jg 0x85264d
add rdx, 8
cwde
cmp cx, 0x1d
jle 0x854336
sub eax, 3
mov ecx, eax
shl rdx, cl
mov qword [rsp + 0x60], rdx
mov word [rsp + 0x88], r10w
xor eax, eax
mov r13d, dword [rdi + 0x28]
lea r9, [rsp + 0x130]
mov dword [rsp + 0xe8], r11d
mov qword [rsp + 0xd8], r15
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0xf0], rbx
mov rbx, qword [rsp + 0x60]
mov dword [rsp + 0x94], r12d
mov r12, rax
mov word [rsp + 0xe0], si
mov rsi, r8
mov qword [rsp + 0x210], rbp
mov rbp, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x50], r14
mov r14, r9
nop dword [rax]
cmp dword [rsi], edi
jle 0x8542bb
mov rax, rdi
mov r9, r14
mov rdx, rbp
mov rcx, r15
shl rax, 5
mov qword [rsp + 0x130], rbx
add rdi, 1
mov r8, qword [rsi + rax + 8]
call fcn.00850240
mov dword [rbp + 0x28], r13d
add r12, qword [rsp + 0x130]
test eax, eax
je 0x8526b8
cmp eax, 0xc
mov r13d, eax
mov rdi, rbp
mov r14, qword [rsp + 0x50]
movzx r10d, word [rsp + 0x88]
mov r12d, dword [rsp + 0x94]
setne al
mov r15, qword [rsp + 0xd8]
movzx esi, word [rsp + 0xe0]
mov r11d, dword [rsp + 0xe8]
mov rbx, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0x210]
jmp 0x853cee
mov rax, qword [rbp + 0x10]
movzx r10d, r10w
movzx r13d, word [r15 + 0x16]
mov word [rsp + 0x60], r12w
add r13w, word [rax + r10*2]
sub r13w, word [rax + r10*2 - 2]
mov ebx, r13d
test si, 0x100
jne 0x852c48
movzx eax, byte [rbp + 0x64]
and eax, 3
cmp al, 3
je 0x852b04
movsx ecx, word [rbp + 0x5c]
mov rsi, qword [rsp + 0x208]
movsx r8d, word [rsp + 0x68]
mov rdx, qword [rsi + 0x20]
mov eax, ecx
shl eax, 4
sub eax, ecx
movsx ecx, word [rdx + 0x3c]
cdq
idiv ecx
lea eax, [r13 + rax + 1]
mov edx, eax
movsx ecx, ax
cmp ax, r8w
jg 0x852b1d
lea eax, [rcx + 0x31]
mov edx, r8d
cmp r8d, eax
jg 0x8527e0
lea eax, [rcx + 0x1f]
lea edx, [r8 + 1]
cmp r8d, eax
jle 0x852bf0
nop word cs:[rax + rax]
and r9d, 0x4000140
mov eax, edx
jne 0x852820
lea eax, [r13 + 0x10]
movsx r8d, dx
movsx ecx, ax
cmp ax, dx
jg 0x852b90
mov eax, edx
lea edx, [rcx + 0x31]
cmp r8d, edx
jg 0x852820
lea edx, [rcx + 0x1f]
cmp r8d, edx
jle 0x853360
add eax, 1
nop dword [rax + rax]
movzx esi, word [rsp + 0x60]
add si, word [rsp + 0x6a]
mov rdx, r15
add eax, esi
add r13d, esi
mov rcx, qword [rdi + 8]
mov r8d, dword [rsp + 0x84]
mov word [r15 + 0x14], ax
mov word [r15 + 0x16], r13w
call fcn.00856810
mov rdx, r15
mov rcx, rdi
call fcn.00856280
mov r13d, eax
mov eax, dword [r15 + 0x38]
test al, 2
cmovne bx, word [rsp + 0x5a]
mov word [r15 + 0x16], bx
test al, 0x10
jne 0x8528a6
movzx eax, word [r15 + 0x18]
cmp ax, word [rbp + 0x60]
jae 0x8528a6
cmp ax, word [rbp + 0x5e]
jae 0x852c58
cmp ax, 3
ja 0x853150
mov rdx, qword [rsp + 0x208]
movsx r9d, si
mov r8, rbp
mov rcx, rdi
call fcn.008521a0
movzx eax, word [rsp + 0x5a]
test r13d, r13d
sete r12b
mov word [r15 + 0x16], ax
mov eax, dword [rsp + 0x5c]
mov dword [rdi + 0x28], eax
mov rcx, r14
call fcn.00859130
mov rbx, rax
test rax, rax
je 0x8528d7
test r12b, r12b
jne 0x852350
mov rax, qword [rsp + 0x78]
movzx ebx, word [rsp + 0xd2]
mov qword [r15], rax
mov rax, qword [rsp + 0xc8]
mov qword [r15 + 0x16], rax
mov rax, qword [rsp + 0xc0]
mov qword [r15 + 0x38], rax
cmp word [rsp + 0x6c], bx
je 0x852ff0
mov eax, r13d
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
and r9d, 2
je 0x8523f0
nop word [rax + rax]
xor r13d, r13d
mov r12d, 1
jmp 0x8528be
mov rdx, qword [rbp + 0x18]
lea rax, [rax + rax*2]
mov rcx, qword [rdx + 8]
lea rax, [rcx + rax*8]
test byte [rax + 8], 0xf
je 0x852383
xor r13d, r13d
mov r12d, 1
jmp 0x8528be
mov r12, qword [r15 + 0x48]
jmp 0x8524d1
test sil, 0x82
je 0x852b70
mov rax, qword [rbp + 8]
mov edx, dword [r15 + 0x38]
mov rcx, qword [rsp + 0x48]
mov r9d, edx
movsx eax, word [rax + rcx]
or r9d, 1
mov dword [r15 + 0x38], r9d
cmp eax, 0xffffffff
je 0x853208
test eax, eax
js 0x8529e1
cmp word [rsp + 0x6a], 0
jne 0x8529e1
movzx eax, word [rbp + 0x5e]
mov ecx, eax
sub eax, 1
cmp dword [rsp + 0x90], eax
je 0x8531c8
xor r12d, r12d
cmp byte [rsp + 0x169], 1
jbe 0x852548
or r9d, 0x200000
movzx r10d, word [r15 + 0x18]
mov dword [r15 + 0x38], r9d
test r9b, 2
je 0x852557
nop dword [rax]
movsx eax, word [r15 + 0x16]
mov word [rsp + 0x60], r12w
mov dword [rsp + 0x94], eax
mov r13d, eax
mov rax, qword [r15 + 0x20]
mov ebx, dword [rax + 0x68]
mov qword [rsp + 0x88], rax
test ebx, ebx
jle 0x852a4f
mov rsi, rax
movzx eax, r10w
mov dword [rsp + 0xd8], eax
cmp eax, dword [rsi + 0x70]
jl 0x852cb8
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
xor esi, esi
test rbx, rbx
setne sil
xor eax, eax
test r12, r12
setne al
add esi, eax
test rbx, rbx
je 0x852a97
movzx eax, word [rbx + 0x10]
test ax, ax
jle 0x852fd0
movzx eax, word [rsp + 0x94]
sub eax, 0x14
test byte [rbx + 0x12], 0x80
cmove r13d, eax
test r12, r12
je 0x852ad0
movzx eax, word [r12 + 0x10]
test ax, ax
jle 0x852fe8
lea edx, [r13 - 0x14]
test byte [r12 + 0x12], 0x80
cmove r13d, edx
test rbx, rbx
je 0x852ad0
cmp word [rbx + 0x10], 0
jle 0x852ad0
lea edx, [r13 - 0x14]
test ax, ax
cmovg r13d, edx
mov edx, dword [rsp + 0x94]
mov eax, 0xa
sub edx, esi
cmp r13w, 0xa
cmovl r13d, eax
movzx eax, byte [rbp + 0x64]
movsx r13d, r13w
cmp r13d, edx
cmovg r13d, edx
and eax, 3
mov ebx, r13d
cmp al, 3
jne 0x852783
movsx r8d, word [rsp + 0x68]
lea eax, [r13 + 0x10]
mov edx, eax
movsx ecx, ax
cmp ax, r8w
jle 0x8527bb
lea r10d, [r8 + 0x31]
cmp ecx, r10d
jg 0x8527e0
lea edx, [r8 + 0x1f]
cmp ecx, edx
jle 0x852bd0
lea edx, [rax + 1]
jmp 0x8527e0
mov rax, qword [rbp + 8]
mov rdx, qword [rsp + 0x48]
cmp word [rax + rdx], 0
js 0x85256f
add r13w, word [r15 + 0x16]
mov word [rsp + 0x60], r12w
sub r13d, r12d
mov ebx, r13d
jmp 0x852774
test si, 0x100
je 0x853298
mov r9d, dword [r15 + 0x38]
xor r12d, r12d
or r9d, 8
mov dword [r15 + 0x38], r9d
jmp 0x852548
lea edx, [r8 + 0x31]
cmp ecx, edx
jg 0x852820
lea edx, [r8 + 0x1f]
cmp ecx, edx
jle 0x853380
lea eax, [r13 + 0x11]
jmp 0x852820
xor r13d, r13d
jmp 0x8528be
or ecx, 2
jmp 0x852414
sub ecx, r8d
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd rcx, ecx
movzx edx, byte [rdx + rcx]
add edx, eax
jmp 0x8527e0
sub r8d, ecx
lea rax, str._n_n_t_t_b_b_a_a_a
movsxd r8, r8d
movzx edx, byte [rax + r8]
add dx, word [rsp + 0x68]
jmp 0x8527e0
cmp rax, 7
ja 0x8533a0
mov ecx, 0x1e
cmp rax, 1
je 0x853c67
nop dword [rax]
add rax, rax
mov r12d, ecx
sub ecx, 0xa
cmp rax, 7
jbe 0x852c30
jmp 0x8533bc
add r13d, 0xa
mov ebx, r13d
jmp 0x852774
movzx edx, byte [rbp + 0x64]
and edx, 3
cmp dl, 2
je 0x8528a6
cmp ax, 3
jbe 0x85288f
jmp 0x853150
bsr rdx, rbx
mov ecx, 0x3c
xor rdx, 0x3f
sub ecx, edx
lea rdx, [0x00966700]
shr rax, cl
lea ecx, [rcx + rcx*4]
and eax, 7
movzx eax, word [rdx + rax*2]
lea eax, [rax + rcx*2 - 3]
mov word [rsp + 0x68], ax
jmp 0x8522ee
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov qword [rsp + 0xe8], rax
test byte [rax + 0x61], 8
jne 0x852a4f
mov r11d, dword [rdi + 0x28]
movzx esi, r10w
cmp dword [rsp + 0xd8], r11d
jne 0x853796
mov rdx, qword [rdi + 0x20]
movzx eax, word [r15 + 0x1c]
movzx r13d, word [r15 + 0x1a]
mov qword [rsp + 0x128], rdx
mov dword [rsp + 0xd8], eax
test rdx, rdx
je 0x852d0f
mov word [rdx + 0x1c], r11w
test r11d, r11d
jne 0x8541f9
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x90]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x38]
cmp byte [rax + rsi], 0
jne 0x853c89
mov r12, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
test rbx, rbx
je 0x85417b
mov rax, qword [rbx]
lea r10, [rsp + 0x128]
mov rdx, qword [rsp + 0x88]
mov dword [rsp + 0xf8], r11d
mov rcx, qword [rsp + 0x70]
mov r8, r10
mov qword [rsp + 0xf0], r10
mov rsi, qword [rax + 0x18]
lea rax, [rsp + 0x120]
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], r13d
mov qword [rsp + 0x30], rax
mov r9, rsi
mov qword [rsp + 0xe8], rax
call fcn.007f9740
mov r10, qword [rsp + 0xf0]
mov r11d, dword [rsp + 0xf8]
test eax, eax
mov r13d, eax
jne 0x8541bb
mov ecx, dword [rsp + 0x120]
test ecx, ecx
je 0x8541bb
movzx eax, byte [rsi]
cmp al, 0xb0
jne 0x852de9
movzx eax, byte [rsi + 2]
cmp al, 0xb1
je 0x8544f7
mov edx, 1
cmp al, 0x8a
jne 0x852e04
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 0x20]
mov edx, dword [rax]
cmp ecx, edx
mov eax, 0xc
mov rdx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x88]
mov esi, 0x18
lea r9, [rsp + 0x130]
mov qword [rsp + 0x100], r10
cmovge esi, eax
xor r8d, r8d
mov dword [rsp + 0xf8], r11d
call fcn.00850d30
test word [rbx + 0x14], si
mov r11d, dword [rsp + 0xf8]
mov dword [rsp + 0xf0], eax
mov r10, qword [rsp + 0x100]
mov rax, qword [rsp + 0x130]
je 0x852e70
add rax, qword [rsp + 0x138]
mov rbx, qword [rsp + 0x50]
cmp rbx, rax
cmovae rax, rbx
sub dword [rsp + 0x94], 1
xor esi, esi
xor ebx, ebx
mov qword [rsp + 0x50], rax
mov edx, 0xffffffff
test r12, r12
je 0x852fa8
mov rax, qword [r12]
mov rdx, qword [rsp + 0x88]
mov r8, r10
mov rcx, qword [rsp + 0x70]
mov r9, qword [rax + 0x18]
mov rax, qword [rsp + 0xe8]
mov dword [rsp + 0x28], r11d
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0xd8]
mov qword [rsp + 0xd8], r9
mov dword [rsp + 0x20], eax
call fcn.007f9740
mov r9, qword [rsp + 0xd8]
test eax, eax
mov r13d, eax
jne 0x8541ae
mov ecx, dword [rsp + 0x120]
test ecx, ecx
je 0x8541ae
movzx eax, byte [r9]
cmp al, 0xb0
jne 0x852f0c
movzx eax, byte [r9 + 2]
cmp al, 0xb1
je 0x8544ec
mov edx, 1
cmp al, 0x8a
jne 0x852f27
mov rax, qword [r9 + 0x20]
mov rax, qword [rax + 0x20]
mov edx, dword [rax]
cmp ecx, edx
mov eax, 0xc
mov edx, 0x18
mov rcx, qword [rsp + 0x88]
cmovge edx, eax
lea r9, [rsp + 0x130]
mov r8d, 1
mov r10d, edx
mov rdx, qword [rsp + 0x128]
mov dword [rsp + 0xd8], r10d
call fcn.00850d30
mov r10d, dword [rsp + 0xd8]
mov edx, eax
mov rax, qword [rsp + 0x130]
test word [r12 + 0x14], r10w
je 0x852f86
add rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0xe0]
cmp rcx, rax
cmovbe rax, rcx
sub dword [rsp + 0x94], 1
xor r12d, r12d
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x128]
mov qword [rdi + 0x20], rax
test r13d, r13d
je 0x8540fa
movzx r13d, word [rsp + 0x94]
mov r9d, dword [r15 + 0x38]
jmp 0x852a72
movzx ecx, word [rsp + 0x94]
lea r13d, [rax + rcx]
jmp 0x852a97
add r13d, eax
jmp 0x852ab9
mov eax, dword [rsp + 0x90]
movzx edx, word [rbp + 0x5e]
add eax, 1
cmp eax, edx
jge 0x85290a
movzx ebx, word [rsp + 0x6e]
cmp word [rsp + 0x6c], bx
jne 0x85290a
movzx eax, byte [rbp + 0x64]
and eax, 0xffffffc0
cmp al, 0x80
jne 0x85290a
mov rcx, qword [rsp + 0xb0]
test byte [rcx + 0x61], 0x40
jne 0x85290a
movzx edx, word [rsp + 0x6c]
mov rax, qword [rbp + 0x10]
lea rbx, [rdx + rdx + 2]
lea r9, [rax + rbx]
cmp word [r9], 0x29
jle 0x85290a
movzx r8d, word [rsp + 0x6e]
movzx edx, word [r15 + 0x40]
add r8d, 1
cmp r8d, edx
jle 0x854502
mov rdx, r15
call fcn.00856ab0
mov r13d, eax
test eax, eax
jne 0x85290a
movzx eax, word [r15 + 0x3c]
movzx ecx, word [r15 + 0x18]
movzx edx, word [r15 + 0x3e]
mov r8d, dword [r15 + 0x38]
mov word [rsp + 0x6e], ax
mov rax, qword [rbp + 0x10]
movzx r10d, word [r15 + 0x16]
lea r9, [rax + rbx]
movzx esi, word [rsp + 0x6e]
add ecx, 1
add edx, 1
xor r13d, r13d
mov word [r15 + 0x18], cx
mov rcx, qword [r15 + 0x48]
or r8d, 0x8000
mov word [r15 + 0x3e], dx
lea edx, [rsi + 1]
mov word [r15 + 0x3c], dx
movzx edx, si
movzx eax, word [rax + rbx - 2]
mov qword [rcx + rdx*8], 0
movzx ecx, word [r9]
movzx ebx, word [rsp + 0x110]
mov dword [r15 + 0x38], r8d
mov r8, rbp
lea edx, [r10 + rcx]
sub edx, eax
lea eax, [rax + rbx + 5]
mov word [r15 + 0x16], dx
sub eax, ecx
mov rdx, qword [rsp + 0x208]
mov rcx, rdi
movsx r9d, ax
call fcn.008521a0
movzx eax, word [rsp + 0x5a]
mov word [r15 + 0x16], ax
movzx eax, word [rsp + 0x6c]
mov word [r15 + 0x18], ax
movzx eax, word [rsp + 0xd2]
mov word [r15 + 0x3e], ax
mov eax, dword [rsp + 0x80]
mov dword [r15 + 0x38], eax
jmp 0x85290a
mov rbx, qword [rsp + 0x70]
mov rax, qword [rbx]
mov edx, dword [rax + 0x198]
test edx, edx
jne 0x85346e
mov r8, qword [rax + 0x210]
test r8, r8
je 0x85288f
cmp dword [rbx + 0x18], 9
je 0x8531b4
mov ecx, dword [rbx + 0x98]
lea edx, [rcx + 1]
mov dword [rsp + 0x50], ecx
mov dword [rbx + 0x98], edx
cmp edx, dword [rax + 0x220]
jb 0x85288f
mov rcx, qword [rax + 0x218]
call r8
test eax, eax
je 0x8531b4
add dword [rbx + 0x30], 1
mov dword [rbx + 0x18], 9
mov rax, qword [rsp + 0x70]
mov dword [rax + 0x98], 0
jmp 0x85288f
test byte [rbp + 0x64], 8
jne 0x853208
cmp cx, 1
je 0x8531f7
or edx, 0x10001
xor r12d, r12d
cmp byte [rsp + 0x169], 1
mov dword [r15 + 0x38], edx
mov r9d, edx
ja 0x8529f2
jmp 0x852548
cmp byte [rbp + 0x62], 0
je 0x8531d4
cmp si, 2
jne 0x8531d4
nop dword [rax + rax]
or edx, 0x1001
xor r12d, r12d
cmp byte [rsp + 0x169], 1
mov dword [r15 + 0x38], edx
mov r9d, edx
ja 0x8529f2
jmp 0x852548
cmp cx, 1
jbe 0x854087
movzx ecx, cx
mov rax, r12
xor r10d, r10d
sub ecx, 2
lea r9, [r12 + rcx*8 + 8]
mov r12d, 0x2e
nop dword [rax]
mov rcx, qword [rax]
test rcx, rcx
je 0x853267
cmp qword [rcx], r8
cmove r12d, r10d
add rax, 8
cmp r9, rax
jne 0x853258
test dl, dl
jne 0x8533db
mov r9d, dword [r15 + 0x38]
jmp 0x852540
mov r13d, dword [rax + 0x18]
jmp 0x85290a
mov rax, qword [rsp + 0x208]
mov rdx, qword [rbx]
mov eax, dword [rax + 0x44]
mov rcx, qword [rdx + 0x10]
mov dword [rsp + 0x88], eax
movzx eax, byte [rcx]
cmp al, 0xb0
je 0x85348c
cmp al, 0xb1
je 0x853c5c
mov r13d, 1
cmp al, 0x8a
je 0x853495
mov eax, dword [r15 + 0x38]
test sil, 0x24
je 0x853430
or eax, 0x22
mov word [r15 + 0x1a], r13w
mov dword [r15 + 0x38], eax
mov r9d, eax
test byte [rbx + 0x13], 1
je 0x853c40
movzx r8d, word [r15 + 0x3c]
lea rax, [rbx + 0x38]
movzx edx, word [r15 + 0x40]
mov qword [rsp + 0xa0], rax
mov rax, r8
add r8d, 1
cmp r8d, edx
jg 0x853d87
lea ecx, [rax + 1]
mov rdx, qword [r15 + 0x48]
or r9d, 0x10
mov r12d, 1
mov word [r15 + 0x3c], cx
lea rcx, [rbx + 0x38]
mov qword [rdx + rax*8], rcx
mov qword [rsp + 0xa8], rbx
mov word [r15 + 0x1c], r12w
xor r12d, r12d
mov dword [r15 + 0x38], r9d
jmp 0x852548
sub r8d, ecx
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd r8, r8d
movzx edx, byte [rdx + r8]
add eax, edx
jmp 0x852820
sub ecx, r8d
lea rdx, str._n_n_t_t_b_b_a_a_a
movsxd rcx, ecx
movzx edx, byte [rdx + rcx]
add eax, edx
jmp 0x852820
bsr r8, rax
mov ecx, 0x3c
xor r8, 0x3f
sub ecx, r8d
lea r12d, [rcx + rcx*4]
shr rax, cl
lea r12d, [r12 + r12 + 0x28]
and eax, 7
lea rcx, [0x00966700]
movzx eax, word [rcx + rax*2]
lea r12d, [r12 + rax - 0xa]
movsx r12d, r12w
test dl, dl
je 0x853278
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x48]
mov edx, r12d
movzx r8d, word [rax + rcx]
cmp r12d, 0xa
jle 0x8544dc
movsxd r9, r12d
mov ecx, 0x3c
lea rax, [0x00966700]
bsr r10, r9
xor r10, 0x3f
sub ecx, r10d
shr r9, cl
lea ecx, [rcx + rcx*4]
and r9d, 7
movzx eax, word [rax + r9*2]
lea eax, [rax + rcx*2 - 3]
jmp 0x853755
mov r9d, eax
mov word [r15 + 0x1c], r13w
or r9d, 0x12
mov dword [r15 + 0x38], r9d
test al, 0x20
je 0x853c24
movzx edx, word [r15 + 0x3c]
mov rax, qword [r15 + 0x48]
mov qword [rsp + 0xa0], rbx
xor r12d, r12d
mov rax, qword [rax + rdx*8 - 0x10]
mov qword [rsp + 0xa8], rax
jmp 0x852548
add dword [rbx + 0x30], 1
cmp qword [rax + 0x210], 0
mov dword [rbx + 0x18], 9
je 0x85288f
jmp 0x8531b4
movzx eax, byte [rcx + 2]
jmp 0x8532bc
mov rcx, qword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
mov eax, dword [rax]
movzx r13d, word [rbp + 0x60]
sub r13d, dword [rsp + 0x90]
cmp r13d, eax
cmovle eax, r13d
mov dword [rsp + 0x94], eax
cmp eax, 1
jle 0x854527
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xa8], r14
mov word [rsp + 0xa0], si
lea r8, [rax + 1]
mov eax, 1
mov qword [rsp + 0x200], rdi
mov rdi, rbp
mov esi, eax
mov rbp, r8
nop dword [rax]
mov rdx, qword [rdx + 0x18]
movsxd rax, esi
shl rax, 5
mov r12, qword [rcx + rax + 8]
mov rcx, qword [rdx + 0x20]
test byte [rdx + 5], 0x10
je 0x8536c0
add rax, qword [rcx + 0x20]
mov r13, qword [rax + 8]
cmp byte [r12], 0xa7
jne 0x853688
mov eax, dword [rsp + 0x88]
cmp eax, dword [r12 + 0x2c]
jne 0x853688
mov rax, qword [rdi + 8]
movzx eax, word [rax + rbp*2]
cmp word [r12 + 0x30], ax
jne 0x853688
mov rax, qword [rdi + 0x38]
mov rcx, qword [rsp + 0x98]
movzx edx, byte [rax + rcx]
cmp byte [rax + rbp], dl
jne 0x853688
mov rcx, r12
call fcn.007b36b0
mov rcx, r13
mov r14d, eax
call fcn.007b36b0
cmp al, 0x40
jle 0x8536d0
cmp r14b, 0x40
jle 0x8536d0
cmp al, 0x42
jg 0x853710
mov eax, 0x41
cmp r14b, 0x42
jg 0x853710
movsx rdx, word [r12 + 0x30]
mov rcx, qword [rdi + 0x18]
test dx, dx
js 0x853688
cmp word [rcx + 0x36], dx
jle 0x853688
mov r14, qword [rcx + 8]
lea rdx, [rdx + rdx*2]
lea rdx, [r14 + rdx*8]
movzx r9d, byte [rdx + 0xc]
cmp r9b, al
jne 0x853688
test byte [r12 + 5], 2
jne 0x853670
test r13, r13
je 0x8535f7
test byte [r13 + 5], 2
jne 0x853720
mov rcx, qword [rsp + 0x70]
mov rdx, r12
call fcn.007b7cf0
test rax, rax
je 0x853720
mov rdx, qword [rdi + 0x40]
mov r9, qword [rax]
xor ecx, ecx
mov r10, qword [rdx + rbp*8]
jmp 0x853636
lea r11, [0x00998440]
movzx edx, byte [r11 + rdx]
cmp byte [r11 + rax], dl
jne 0x853688
add rcx, 1
movzx eax, byte [r9 + rcx]
movzx edx, byte [r10 + rcx]
cmp eax, edx
jne 0x853620
test eax, eax
jne 0x853632
add esi, 1
add rbp, 1
cmp dword [rsp + 0x94], esi
je 0x8541d0
mov rdx, qword [rbx]
mov rax, qword [rdx + 0x10]
mov rcx, qword [rax + 0x20]
jmp 0x8534f8
mov rcx, qword [rsp + 0x70]
mov rdx, r12
call fcn.007b7cf0
test rax, rax
jne 0x85360d
nop word [rax + rax]
mov eax, esi
movzx esi, word [rsp + 0xa0]
mov rbp, rdi
mov r14, qword [rsp + 0xa8]
mov r13d, eax
mov rdi, qword [rsp + 0x200]
mov eax, dword [r15 + 0x38]
test sil, 0x24
je 0x853430
jmp 0x8532e0
mov r13, qword [rcx + rax + 8]
jmp 0x85351e
movsx r10, word [r12 + 0x30]
mov edx, r14d
mov r9d, 0x44
or edx, 0x40
cmp al, 0x41
cmovl eax, edx
mov rdx, r10
test r10d, r10d
js 0x8535d2
mov rcx, qword [rdi + 0x18]
movsx r11d, word [rcx + 0x36]
cmp r10d, r11d
jge 0x8535d2
jmp 0x8535c1
mov eax, 0x43
jmp 0x8535a4
mov rcx, qword [rsp + 0x70]
mov rdx, r13
call fcn.007b7cf0
jmp 0x85367d
xor r13d, r13d
jmp 0x8528d7
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x48]
xor r12d, r12d
xor edx, edx
movzx r8d, word [rax + rcx]
xor eax, eax
sub ax, word [rsp + 0x68]
lea eax, [r8 + rax + 0xa]
cmp ax, dx
jns 0x853278
cmp word [rsp + 0x6a], 1
jg 0x852938
mov rax, qword [rsp + 0xb0]
test byte [rax + 0x62], 2
jne 0x852938
mov r9d, dword [r15 + 0x38]
or r9d, 0x100000
jmp 0x852540
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x85437e
movzx r12d, byte [rax + rsi]
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 0
mov rax, qword [rax + 0x40]
mov rdx, qword [rax + rsi*8]
mov rsi, qword [rsp + 0x70]
mov rcx, rsi
call fcn.007dbb00
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x853d70
mov rax, qword [rax]
xor r9d, r9d
movzx r8d, r12b
mov rcx, rsi
mov rdx, qword [rax + 0x18]
lea rax, [rsp + 0x120]
mov qword [rsp + 0x20], rax
call fcn.0083bdd0
mov dword [rsp + 0x114], 0
test eax, eax
sete dl
cmp qword [rsp + 0xa0], 0
setne byte [rsp + 0x11f]
je 0x85403f
test dl, dl
je 0x85403f
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x70]
xor r9d, r9d
movzx r8d, r12b
lea r10, [rsp + 0x128]
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
mov qword [rsp + 0x20], r10
call fcn.0083bdd0
cmp qword [rsp + 0x128], 0
je 0x85446d
mov dword [rsp + 0x118], 0
mov r12, qword [rsp + 0x120]
lea rbx, [rsp + 0x130]
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0x100], rbx
test eax, eax
jne 0x8539cd
mov qword [rsp + 0x200], rdi
mov rdi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x88]
cmp dword [rax + 0x68], edi
jle 0x854072
mov rbx, rax
lea rax, [rdi + rdi*4]
mov rdx, qword [rbx + 0x80]
lea rax, [rdx + rax*8]
mov r10, qword [rax]
mov ebx, dword [rax + 8]
movzx r8d, byte [r10]
mov dword [rsp + 0x50], ebx
mov ebx, 1
test r8b, r8b
js 0x853f80
cmp dword [rsp + 0x50], r8d
jl 0x853f58
cmp ebx, r8d
jge 0x853f58
mov eax, dword [rsp + 0xd8]
mov r9, rbp
xor esi, esi
mov r12d, r8d
mov qword [rsp + 0xf8], rdi
mov ebp, r8d
mov rdi, r10
mov r10, r14
lea r11d, [rax + 1]
mov r14d, r13d
mov r13d, r11d
jmp 0x853972
movzx edx, al
mov eax, edx
lea rcx, [0x009983a0]
movzx eax, byte [rcx + rax]
add esi, 1
add eax, r12d
cmp esi, r13d
je 0x853e38
mov r12d, eax
movsxd rcx, ebx
add rcx, rdi
movzx eax, byte [rcx]
test al, al
js 0x853db0
add ebx, 1
cmp ebp, ebx
jge 0x853950
lea rax, [0x009569cc]
mov rdi, qword [rsp + 0x200]
mov r13d, r14d
mov rbp, r9
mov qword [rsp + 0x20], rax
mov r14, r10
mov r9d, 0x1477d
lea r8, str.database_corruption
lea rdx, str._s_at_line__d_of___.10s_
mov ecx, 0xb
call fcn.0082f270
mov r12, qword [rsp + 0x120]
mov ebx, dword [rsp + 0x118]
sub ebx, dword [rsp + 0x114]
cmp qword [rsp + 0xa0], 0
sete dl
cmp qword [rsp + 0xa8], 0
sete al
or dl, al
jne 0x853a02
xor esi, esi
cmp ebx, 1
jle 0x853aa9
mov rax, qword [rsp + 0x88]
movsxd rax, dword [rax + 0x68]
cmp rax, 7
ja 0x854290
cmp rax, 1
jbe 0x8544ba
mov ecx, 0x1e
nop word [rax + rax]
add rax, rax
mov edx, ecx
sub ecx, 0xa
cmp rax, 7
jbe 0x853a30
and eax, 7
lea rcx, [0x00966700]
movzx ecx, word [rcx + rax*2]
lea ecx, [rdx + rcx - 0xa]
movsx edx, cx
test ebx, ebx
mov eax, 1
cmovg eax, ebx
cdqe
cmp ebx, 7
jg 0x85426f
cmp ebx, 1
jle 0x853a9f
mov ecx, 0x1e
nop word [rax + rax]
add rax, rax
mov r8d, ecx
sub ecx, 0xa
cmp rax, 7
jbe 0x853a78
lea rcx, [0x00966700]
and eax, 7
movzx eax, word [rcx + rax*2]
mov ecx, edx
lea r8d, [r8 + rax - 0xa]
sub ecx, r8d
sub word [r15 + 0x16], cx
mov esi, 1
test r12, r12
je 0x853b0d
test word [r12 + 0x14], 0x9000
jne 0x853ac2
mov r8d, dword [r12 + 0x20]
test r8d, r8d
je 0x853aca
mov rcx, r12
call fcn.00848830
mov rcx, qword [r12 + 0x18]
test rcx, rcx
je 0x853b05
cmp qword [rcx + 0x1f0], r12
jbe 0x853af7
cmp qword [rcx + 0x1e0], r12
jbe 0x85444e
cmp qword [rcx + 0x1e8], r12
jbe 0x85449b
cmp qword [rcx + 0x308], 0
jne 0x85434a
mov rcx, r12
call fcn.0082d7e0
mov r12, qword [rsp + 0x128]
test r12, r12
je 0x853b78
test word [r12 + 0x14], 0x9000
jne 0x853b2d
mov ecx, dword [r12 + 0x20]
test ecx, ecx
je 0x853b35
mov rcx, r12
call fcn.00848830
mov rcx, qword [r12 + 0x18]
test rcx, rcx
je 0x853b70
cmp qword [rcx + 0x1f0], r12
jbe 0x853b62
cmp qword [rcx + 0x1e0], r12
jbe 0x854437
cmp qword [rcx + 0x1e8], r12
jbe 0x854484
cmp qword [rcx + 0x308], 0
jne 0x854371
mov rcx, r12
call fcn.0082d7e0
mov rax, qword [rsp + 0xe0]
test rax, rax
je 0x853bf0
test word [rax + 0x14], 0x9000
jne 0x853b94
mov edx, dword [rax + 0x20]
test edx, edx
je 0x853ba1
mov rcx, qword [rsp + 0xe0]
call fcn.00848830
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x853be3
cmp qword [rcx + 0x1f0], rax
jbe 0x853bd5
cmp qword [rcx + 0x1e0], rax
jbe 0x85441e
cmp qword [rcx + 0x1e8], rax
jbe 0x8544c3
cmp qword [rcx + 0x308], 0
jne 0x85435f
mov rcx, qword [rsp + 0xe0]
call fcn.0082d7e0
mov r9d, dword [r15 + 0x38]
test esi, esi
jne 0x854243
mov rbx, qword [rsp + 0xa8]
xor esi, esi
movzx eax, byte [rsp + 0x11f]
mov r12, qword [rsp + 0xa0]
test rbx, rbx
setne sil
add esi, eax
jmp 0x852a72
mov qword [rsp + 0xa0], rbx
xor r12d, r12d
mov qword [rsp + 0xa8], 0
jmp 0x852548
mov qword [rsp + 0xa8], rbx
xor r12d, r12d
mov qword [rsp + 0xa0], 0
jmp 0x852548
mov rcx, qword [rcx + 0x20]
mov eax, dword [rcx]
jmp 0x85349f
xor r12d, r12d
test dl, dl
je 0x853278
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x48]
xor edx, edx
movzx r8d, word [rax + rcx]
xor eax, eax
jmp 0x853755
mov eax, r13d
mov r12, qword [rsp + 0xa8]
mov r13d, dword [rsp + 0xd8]
mov rbx, qword [rsp + 0xa0]
mov dword [rsp + 0xd8], eax
jmp 0x852d55
mov r8, qword [rax + 0x18]
mov rcx, qword [rsp + 0x70]
mov rdx, rdi
lea r9, [rsp + 0x128]
mov dword [rsp + 0x60], r11d
mov dword [rsp + 0x50], r10d
call fcn.00850240
mov r10d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x60]
mov r13d, eax
test eax, eax
setne al
cmp r13d, 0xc
setne dl
and eax, edx
test al, al
jne 0x8528d7
mov rax, qword [rsp + 0x128]
mov r9d, dword [r15 + 0x38]
test rax, rax
je 0x852748
cmp rax, 7
ja 0x854318
xor edx, edx
cmp rax, 1
je 0x853d42
mov ecx, 0x1e
add rax, rax
mov edx, ecx
sub ecx, 0xa
cmp rax, 7
jbe 0x853d22
and eax, 7
lea rcx, [0x00966700]
movzx eax, word [rcx + rax*2]
lea edx, [rdx + rax - 0xa]
mov word [r15 + 0x16], dx
cmp r11d, 1
je 0x8543a9
movzx eax, word [rsp + 0x5a]
mov word [rsp + 0x60], r12w
cmp ax, dx
cmovle edx, eax
mov r13d, edx
sub r13d, r12d
mov ebx, r13d
jmp 0x852774
mov dword [rsp + 0x114], 0xffffffff
xor eax, eax
mov edx, 1
jmp 0x853831
mov rcx, qword [rsp + 0xb0]
mov rdx, r15
call fcn.00856ab0
test eax, eax
jne 0x853738
movzx eax, word [r15 + 0x3c]
mov r9d, dword [r15 + 0x38]
jmp 0x85331f
movzx r11d, byte [rcx + 1]
test r11b, r11b
jns 0x853f40
movzx edx, byte [rcx + 2]
test dl, dl
jns 0x853ef8
mov rdx, qword [rsp + 0x100]
mov qword [rsp + 0xf0], r10
mov qword [rsp + 0x210], r9
call fcn.007d4e50
mov r9, qword [rsp + 0x210]
mov r10, qword [rsp + 0xf0]
mov ecx, eax
mov rax, qword [rsp + 0x130]
mov edx, eax
cmp rax, rdx
je 0x853fe0
movzx eax, cl
add ebx, eax
cmp ebx, ebp
jg 0x85398a
mov eax, 0x7ffffff9
add esi, 1
mov edx, 0xffffffff
add eax, r12d
cmp esi, r13d
jne 0x85396f
nop word [rax + rax]
mov r13d, r14d
mov rbp, r9
mov r14, r10
movsxd r9, r12d
mov r10, rdi
mov r12d, edx
mov rdi, qword [rsp + 0xf8]
cmp dword [rsp + 0x50], eax
jl 0x854250
cmp qword [rsp + 0xe0], 0
je 0x853fea
mov r8, qword [rsp + 0xe0]
lea rcx, [r10 + r9]
mov edx, r12d
call fcn.00815150
mov rax, qword [rsp + 0xe8]
mov rdx, r8
movzx eax, byte [rax + 0x64]
mov byte [r8 + 0x16], al
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x853eb9
mov r8, qword [rsp + 0x108]
call fcn.007dcbe0
cmp eax, 0x80000000
adc dword [rsp + 0x114], 0
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x853ee8
mov r8, qword [rsp + 0x108]
mov rdx, qword [rsp + 0xe0]
call fcn.007dcbe0
cmp eax, 0x80000000
adc dword [rsp + 0x118], 0
add rdi, 1
jmp 0x8538d0
shl eax, 0xe
shl r11d, 7
movzx ecx, dl
and eax, 0x1fc000
and r11d, 0x3f80
or eax, r11d
or eax, ecx
mov edx, eax
mov eax, 3
add ebx, eax
cmp ebx, ebp
jg 0x85398a
cmp edx, 0x7f
jbe 0x853953
lea eax, [rdx - 0xc]
shr eax, 1
jmp 0x853960
shl eax, 7
movzx edx, r11b
and eax, 0x3f80
or edx, eax
mov eax, 2
jmp 0x853f1a
lea rax, [0x009569cc]
mov rdi, qword [rsp + 0x200]
mov r9d, 0x14777
mov qword [rsp + 0x20], rax
jmp 0x8539ad
movzx eax, byte [r10 + 1]
test al, al
jns 0x8540c1
movzx edx, byte [r10 + 2]
test dl, dl
jns 0x85409e
mov rdx, qword [rsp + 0x100]
mov rcx, r10
mov qword [rsp + 0xf0], r10
call fcn.007d4e50
mov r8, qword [rsp + 0x130]
mov r10, qword [rsp + 0xf0]
movzx ebx, al
mov edx, r8d
cmp r8, rdx
mov edx, 0xffffffff
cmovne r8d, edx
jmp 0x85390f
mov edx, eax
movzx eax, cl
jmp 0x853f1a
mov rcx, qword [rsp + 0xe8]
mov edx, 0x38
mov qword [rsp + 0x50], r10
mov dword [rsp + 0xf0], r9d
call fcn.007ae150
mov r10, qword [rsp + 0x50]
movsxd r9, dword [rsp + 0xf0]
test rax, rax
mov qword [rsp + 0xe0], rax
je 0x854072
mov rbx, qword [rsp + 0xe8]
mov r11d, 1
mov word [rax + 0x14], r11w
mov qword [rax + 0x18], rbx
jmp 0x853e6b
add ebx, 1
mov dword [rsp + 0x118], ebx
mov r12, qword [rsp + 0x120]
test r12, r12
jne 0x85389f
cmp qword [rsp + 0x128], 0
jne 0x85389f
mov r9d, dword [r15 + 0x38]
jmp 0x853bfc
mov rdi, qword [rsp + 0x200]
mov r12, qword [rsp + 0x120]
jmp 0x8539cd
test dl, dl
jne 0x8543fb
mov r9d, dword [r15 + 0x38]
mov r12d, 0x2e
jmp 0x852540
shl r8d, 0xe
shl eax, 7
mov ebx, 3
and r8d, 0x1fc000
and eax, 0x3f80
or r8d, eax
or r8d, edx
jmp 0x85390f
shl r8d, 7
mov ebx, 2
and r8d, 0x3f80
or r8d, eax
jmp 0x85390f
mov rax, qword [rsp + 0x128]
xor esi, esi
mov rbx, r12
mov edx, 0xffffffff
mov dword [rsp + 0xf0], 0xfffffffe
mov qword [rdi + 0x20], rax
mov rcx, qword [rsp + 0xe0]
mov r11, qword [rsp + 0x50]
mov eax, 0xa
cmp rcx, r11
jbe 0x854163
sub rcx, r11
mov r8, rcx
cmp rcx, 7
ja 0x8543dd
cmp rcx, 1
je 0x8544e3
mov ecx, 0x1e
add r8, r8
mov eax, ecx
sub ecx, 0xa
cmp r8, 7
jbe 0x854130
and r8d, 7
lea rcx, [0x00966700]
movzx ecx, word [rcx + r8*2]
lea eax, [rax + rcx - 0xa]
movsx ecx, ax
sub eax, 0x14
cmp edx, dword [rsp + 0xf0]
cwde
cmovne eax, ecx
mov ecx, dword [rsp + 0x94]
cmp ecx, eax
cmovle eax, ecx
mov dword [rsp + 0x94], eax
jmp 0x852fbd
test r12, r12
je 0x8540d9
lea rax, [rsp + 0x120]
xor esi, esi
mov dword [rsp + 0xf0], 0xfffffffe
lea r10, [rsp + 0x128]
mov qword [rsp + 0xe8], rax
jmp 0x852e9b
add esi, 1
mov edx, 0xffffffff
jmp 0x852fa8
mov dword [rsp + 0xf0], 0xfffffffe
mov esi, 1
jmp 0x852e8d
mov rbp, rdi
movzx esi, word [rsp + 0xa0]
mov rdi, qword [rsp + 0x200]
mov r14, qword [rsp + 0xa8]
movzx r13d, word [rsp + 0x94]
jmp 0x8532d2
mov rcx, qword [rsp + 0x88]
lea r9, [rsp + 0x130]
xor r8d, r8d
mov dword [rsp + 0xe8], r11d
call fcn.00850d30
mov rax, qword [rsp + 0x130]
mov r11d, dword [rsp + 0xe8]
mov qword [rsp + 0x50], rax
add rax, qword [rsp + 0x138]
mov qword [rsp + 0xe0], rax
jmp 0x852d2f
movzx ebx, word [r15 + 0x16]
mov r13d, ebx
jmp 0x852774
lea rax, [0x009569cc]
mov rdi, qword [rsp + 0x200]
mov r9d, 0x14783
mov qword [rsp + 0x20], rax
jmp 0x8539ad
bsr r8, rax
mov ecx, 0x3c
xor r8, 0x3f
sub ecx, r8d
lea r8d, [rcx + rcx*4]
shr rax, cl
lea r8d, [r8 + r8 + 0x28]
jmp 0x853a87
bsr rdx, rax
mov ecx, 0x3c
xor rdx, 0x3f
sub ecx, edx
lea edx, [rcx + rcx*4]
shr rax, cl
lea edx, [rdx + rdx + 0x28]
jmp 0x853a3e
cmp rdx, 1
adc rdx, 0xffffffffffffffff
jmp 0x85261b
mov rcx, qword [rsp + 0x60]
mov rax, r12
mov rdi, rbp
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0xd8]
movzx esi, word [rsp + 0xe0]
cmp rcx, rax
mov r11d, dword [rsp + 0xe8]
movzx r10d, word [rsp + 0x88]
cmovbe rax, rcx
mov rbx, qword [rsp + 0xf0]
mov r12d, dword [rsp + 0x94]
mov rbp, qword [rsp + 0x210]
mov qword [rsp + 0x128], rax
jmp 0x853cf6
bsr rdx, rax
mov ecx, 0x3c
xor rdx, 0x3f
sub ecx, edx
lea edx, [rcx + rcx*4]
shr rax, cl
lea edx, [rdx + rdx + 0x28]
jmp 0x853d30
mov ecx, 3
sub ecx, eax
shr rdx, cl
mov qword [rsp + 0x60], rdx
jmp 0x85264d
mov rdx, r12
call fcn.007595e0
mov r12, qword [rsp + 0x128]
jmp 0x853b15
mov rdx, qword [rsp + 0xe0]
call fcn.007595e0
jmp 0x853bf0
mov rdx, r12
call fcn.007595e0
jmp 0x853b78
mov r12, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xe8]
mov rdx, r12
call fcn.006ea0d0
test rax, rax
je 0x85451c
mov rax, qword [r12 + 0x20]
jmp 0x8537ab
mov rcx, qword [rbp + 0x10]
movsx eax, dx
add eax, 9
movsx ecx, word [rcx]
cmp eax, ecx
jl 0x853d51
movzx eax, word [rbx + 0x12]
mov ecx, eax
or ch, 0x40
mov word [rbx + 0x12], cx
test ah, 0x20
je 0x853d51
or byte [rdi + 0x2d], 4
jmp 0x853d51
bsr rax, rcx
mov ecx, 0x3c
xor rax, 0x3f
sub ecx, eax
lea eax, [rcx + rcx*4]
shr r8, cl
lea eax, [rax + rax + 0x28]
jmp 0x85413e
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x48]
mov edx, 0x2e
mov r12d, 0x2e
movzx r8d, word [rax + rcx]
mov eax, 0x16
jmp 0x853755
mov rbx, rax
mov rax, qword [rcx + 0x1d8]
mov qword [rbx], rax
mov qword [rcx + 0x1d8], rbx
jmp 0x853bf0
mov rax, qword [rcx + 0x1d8]
mov qword [r12], rax
mov qword [rcx + 0x1d8], r12
jmp 0x853b78
mov rax, qword [rcx + 0x1d8]
mov qword [r12], rax
mov qword [rcx + 0x1d8], r12
mov r12, qword [rsp + 0x128]
jmp 0x853b15
mov rbx, qword [rsp + 0x88]
mov ebx, dword [rbx + 0x68]
mov dword [rsp + 0x118], ebx
jmp 0x854049
mov rax, qword [rcx + 0x1c8]
mov qword [r12], rax
mov qword [rcx + 0x1c8], r12
jmp 0x853b78
mov rax, qword [rcx + 0x1c8]
mov qword [r12], rax
mov qword [rcx + 0x1c8], r12
mov r12, qword [rsp + 0x128]
jmp 0x853b15
xor edx, edx
xor ecx, ecx
jmp 0x853a53
mov rbx, rax
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov qword [rcx + 0x1c8], rbx
jmp 0x853bf0
xor eax, eax
jmp 0x853755
xor eax, eax
xor ecx, ecx
jmp 0x854155
mov rax, qword [r9 + 0x20]
mov edx, dword [rax]
jmp 0x852f27
mov rax, qword [rsi + 0x20]
mov edx, dword [rax]
jmp 0x852e04
movzx ecx, word [rsp + 0x6c]
movzx r10d, word [rsp + 0x5a]
mov r8d, dword [rsp + 0x80]
mov edx, ecx
jmp 0x8530a4
mov r12d, 0x41
jmp 0x8537b0
mov r13d, 1
jmp 0x8532d2