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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x100
mov rbp, rcx
mov r12, r9
mov ecx, 0x10030
mov rsi, r8
mov rdi, rdx
xor ebx, ebx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
movsxd r15, dword [r12]
mov r11, rdi
movsxd rcx, dword [rsp + 0x160]
add r15, rdi
add rcx, rsi
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x58], rdi
mov r9, rdi
mov qword [rsp + 0x78], rdi
mov r10, rsi
mov qword [rsp + 0x40], r15
lea rdx, [r15 - 0xc]
mov qword [rsp + 0xe8], rdx
mov r14, rax
mov qword [rsp + 0x80], rsi
test rax, rax
je 0x14002a596
xor r8d, r8d
mov qword [rsp + 0xf8], r13
cmp dword [rsp + 0x178], 2
lea rbx, [rcx - 5]
mov dword [r12], r8d
movabs r13, 0x8080808080808081
cmovne rbx, rcx
cmp qword [rsp + 0x170], 0x1000
mov ecx, 0xfff
mov qword [rsp + 0xb8], rbx
cmovb rcx, qword [rsp + 0x170]
mov qword [rsp + 0xe0], rcx
cmp rdi, rdx
ja 0x14002a478
nop dword [rax]
mov edi, dword [rbp + 0x4001c]
mov edx, r11d
mov r15d, dword [rbp + 0x40018]
mov eax, r11d
mov rsi, qword [rbp + 0x40008]
sub eax, r9d
mov ebx, dword [rsp + 0x168]
sub edx, esi
mov dword [rsp + 0x60], eax
lea ecx, [rdi + 0x10000]
mov rax, qword [rbp + 0x40028]
add edx, r15d
mov qword [rsp + 0xc0], rax
cmp ecx, edx
mov rcx, qword [rsp + 0x58]
mov r11d, edi
mov dword [rsp + 0x50], edx
mov r12, r8
lea eax, [rdx - 0xffff]
mov qword [rsp + 0xc8], 0
mov rdx, qword [rbp + 0x40010]
cmovbe r11d, eax
mov eax, r15d
mov qword [rsp + 0x38], rsi
sub rax, rdi
mov dword [rsp + 0x2c], r15d
add rax, rdx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x70], rax
mov r13d, 3
mov dword [rsp + 0x20], r11d
mov ebp, r8d
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0xa8], r15
mov dword [rsp + 0x160], ebx
mov dword [rsp + 0x30], r8d
call fcn.14002b210
mov r9d, eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x140]
mov r10d, r15d
sub r10d, esi
mov dword [rsp + 0x64], r8d
mov qword [rsp + 0x98], r8
add r10d, ecx
mov r14, rax
mov r8d, dword [rax + 0x40020]
cmp r8d, r10d
jae 0x140027685
mov r9d, r8d
mov edi, 0xffff
sub r9, r15
add r9, rsi
mov rcx, r9
call fcn.14002a670
mov ecx, eax
lea rdx, [r14 + rcx*4]
movzx eax, r8w
mov ecx, r8d
sub ecx, dword [rdx]
cmp rcx, rdi
cmova rcx, rdi
inc r9
mov word [r14 + rax*2 + 0x20000], cx
mov dword [rdx], r8d
inc r8d
cmp r8d, r10d
jb 0x140027642
mov rdx, qword [rsp + 0x68]
mov r9d, dword [rsp + 0x24]
mov edi, dword [rsp + 0x28]
mov dword [r14 + 0x40020], r10d
mov r10, qword [rsp + 0x58]
mov rcx, r10
call fcn.14002a670
mov ecx, eax
mov r14d, dword [r14 + rcx*4]
cmp r14d, r11d
jb 0x140027e0b
jmp 0x1400276ba
mov rsi, qword [rsp + 0x38]
mov r9d, dword [rsp + 0x24]
test ebx, ebx
jle 0x140027e0b
dec dword [rsp + 0x160]
xor ebx, ebx
cmp dword [rsp + 0x190], ebx
je 0x1400276e4
mov eax, dword [rsp + 0x50]
sub eax, r14d
cmp eax, 8
jb 0x140027a9f
cmp r14d, r15d
jb 0x140027842
mov eax, r15d
lea rcx, [r10 - 1]
mov r11d, r14d
sub r11, rax
movsxd rdx, r13d
add rcx, rdx
add r11, rsi
call fcn.14002b200
lea rcx, [r11 - 1]
movzx r8d, ax
add rcx, rdx
call fcn.14002b200
cmp r8w, ax
jne 0x140027a9f
mov rcx, r11
call fcn.14002b210
cmp eax, r9d
jne 0x140027a9f
mov rdi, qword [rsp + 0x40]
lea rbx, [r10 + 4]
add rdi, 0xfffffffffffffffb
lea r8, [r11 + 4]
mov r9, rbx
lea r10, [rdi - 7]
cmp rbx, r10
jae 0x140027774
mov rcx, rbx
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027825
lea r9, [rbx + 8]
add r8, 8
cmp r9, r10
jae 0x1400277a9
nop dword [rax]
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027832
add r9, 8
add r8, 8
cmp r9, r10
jb 0x140027780
lea rax, [rdi - 3]
cmp r9, rax
jae 0x1400277d0
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x1400277d0
add r9, 4
add r8, 4
lea rax, [rdi - 1]
cmp r9, rax
jae 0x1400277f9
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x1400277f9
add r9, 2
add r8, 2
cmp r9, rdi
jae 0x14002780a
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x14002780a
inc r9
sub r9d, ebx
lea ebx, [r9 + 4]
cmp ebx, r13d
jle 0x140027aa2
mov r13d, ebx
mov r12, r11
jmp 0x140027aa8
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x14002780d
mov rcx, rdx
sub r9d, ebx
call fcn.14002a890
add r9d, eax
jmp 0x14002780d
mov r8d, r14d
lea eax, [r15 - 4]
sub r8d, edi
add r8, rdx
cmp r14d, eax
ja 0x140027a9f
mov rcx, r8
call fcn.14002b210
cmp eax, r9d
jne 0x140027a9f
mov rax, qword [rsp + 0x40]
lea rbx, [r10 + 4]
add rax, 0xfffffffffffffffb
mov ecx, r15d
sub ecx, r14d
mov r11, rax
add rcx, r10
mov r9, rbx
cmp rcx, rax
cmovbe r11, rcx
add r8, 4
lea r10, [r11 - 7]
cmp rbx, r10
jae 0x1400278bd
mov rcx, rbx
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027a5f
lea r9, [rbx + 8]
add r8, 8
cmp r9, r10
jae 0x1400278eb
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027a6f
add r9, 8
add r8, 8
cmp r9, r10
jb 0x1400278c2
lea rax, [r11 - 3]
cmp r9, rax
jae 0x140027912
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140027912
add r9, 4
add r8, 4
lea rax, [r11 - 1]
cmp r9, rax
jae 0x14002793b
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x14002793b
add r9, 2
add r8, 2
cmp r9, r11
jae 0x14002794c
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x14002794c
inc r9
sub r9d, ebx
lea ebx, [r9 + 4]
movsxd rdi, ebx
add rdi, qword [rsp + 0x58]
cmp rdi, r11
jne 0x140027a49
mov r10, qword [rsp + 0x40]
add r10, 0xfffffffffffffffb
cmp r11, r10
jae 0x140027a49
add r10, 0xfffffffffffffff9
mov r8, rsi
mov r9, rdi
cmp rdi, r10
jae 0x1400279a9
mov rcx, rsi
call fcn.14002b220
mov rcx, rdi
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027a82
lea r9, [rdi + 8]
lea r8, [rsi + 8]
cmp r9, r10
jae 0x1400279d9
nop
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027a8f
add r9, 8
add r8, 8
cmp r9, r10
jb 0x1400279b0
mov r10, qword [rsp + 0x40]
add r10, 0xfffffffffffffffb
lea rax, [r10 - 3]
cmp r9, rax
jae 0x140027a09
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140027a09
add r9, 4
add r8, 4
lea rax, [r10 - 1]
cmp r9, rax
jae 0x140027a32
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140027a32
add r9, 2
add r8, 2
cmp r9, r10
jae 0x140027a43
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x140027a43
inc r9
sub r9d, edi
add ebx, r9d
cmp ebx, r13d
jle 0x140027aa2
mov r12d, r14d
mov r13d, ebx
mov eax, r15d
sub r12, rax
add r12, rsi
jmp 0x140027aa8
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x14002794f
mov rcx, rdx
sub r9d, ebx
call fcn.14002a890
add r9d, eax
jmp 0x14002794f
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x140027a46
mov rcx, rdx
sub r9d, edi
call fcn.14002a890
add r9d, eax
jmp 0x140027a46
cmp ebx, r13d
jne 0x140027b3f
lea eax, [r14 + r13]
cmp eax, dword [rsp + 0x50]
ja 0x140027b3f
lea ebx, [r13 - 3]
xor r10d, r10d
mov esi, 0x10
mov r11d, 1
mov r8d, esi
test ebx, ebx
jle 0x140027b3f
mov r15, qword [rsp + 0x140]
mov edi, r14d
nop word [rax + rax]
mov edx, r8d
lea rax, [rdi + r10]
movzx eax, ax
inc r8d
sar edx, 4
movzx ecx, word [r15 + rax*2 + 0x20000]
mov eax, r10d
cmp ecx, r11d
mov r9d, ecx
cmovbe r9d, r11d
cmovbe eax, ebp
cmova r8d, esi
mov ebp, eax
add r10d, edx
mov r11d, r9d
cmp r10d, ebx
jl 0x140027ae0
mov r15d, dword [rsp + 0x2c]
mov dword [rsp + 0x30], eax
cmp r9d, 1
jbe 0x140027b3f
mov r11d, dword [rsp + 0x20]
cmp r9d, r14d
ja 0x140027dff
sub r14d, r9d
jmp 0x140027bf3
mov r10, qword [rsp + 0x140]
movzx edi, r14w
cmp word [r10 + rdi*2 + 0x20000], 1
jne 0x140027bdc
test ebp, ebp
jne 0x140027bdc
mov ebx, dword [rsp + 0x64]
lea esi, [r14 - 1]
test ebx, ebx
jne 0x140027c16
mov r9d, dword [rsp + 0x24]
xor r8d, r8d
mov eax, r9d
mov edx, r9d
shr eax, 0x18
cmp r9b, al
movzx eax, r9w
sete r8b
xor ecx, ecx
shr edx, 0x10
cmp eax, edx
sete cl
test ecx, r8d
je 0x140027bd4
mov rcx, qword [rsp + 0x58]
mov r8d, r9d
mov rdx, qword [rsp + 0x40]
add rcx, 4
add rdx, 0xfffffffffffffffb
mov dword [rsp + 0x64], 2
call fcn.14002a5c0
mov r10, qword [rsp + 0x140]
mov eax, eax
add rax, 4
mov qword [rsp + 0x98], rax
jmp 0x140027c1b
mov dword [rsp + 0x64], 1
mov r11d, dword [rsp + 0x20]
lea eax, [rdi + rbp]
movzx eax, ax
movzx ecx, word [r10 + rax*2 + 0x20000]
sub r14d, ecx
mov rdx, qword [rsp + 0x68]
mov edi, dword [rsp + 0x28]
mov ebx, dword [rsp + 0x160]
mov r10, qword [rsp + 0x58]
cmp r14d, r11d
jae 0x1400276b0
jmp 0x140027e0b
cmp ebx, 2
jne 0x140027bdc
cmp esi, dword [rsp + 0x20]
jb 0x140027bdc
mov edx, esi
mov ecx, r15d
call fcn.14002a700
test eax, eax
je 0x140027bdc
mov rcx, qword [rsp + 0x68]
sub rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x38]
mov edx, r15d
sub rax, rdx
mov ebx, esi
cmp esi, r15d
cmovb rax, rcx
add rbx, rax
mov rcx, rbx
call fcn.14002b210
mov r9d, dword [rsp + 0x24]
cmp eax, r9d
jne 0x140027bdc
mov r14, qword [rsp + 0x40]
lea rcx, [rbx + 4]
cmp esi, r15d
mov r8d, r9d
lea rbp, [r14 - 5]
cmovb rbp, qword [rsp + 0x70]
mov rdx, rbp
call fcn.14002a5c0
mov edi, eax
add rdi, 4
cmp esi, r15d
jae 0x140027cd6
lea rax, [rdi + rbx]
cmp rax, rbp
jne 0x140027cd6
mov edx, dword [rsp + 0x24]
mov rcx, rdi
call fcn.14002a780
mov rcx, qword [rsp + 0x38]
lea rdx, [r14 - 5]
mov r8d, eax
call fcn.14002a5c0
mov r8d, dword [rsp + 0x24]
mov rcx, rbx
mov rdx, qword [rsp + 0x68]
mov eax, eax
add rdi, rax
call fcn.14002a710
mov ebp, eax
jmp 0x140027d2e
mov r14, qword [rsp + 0x38]
cmp esi, r15d
mov r8d, dword [rsp + 0x24]
mov rdx, r14
cmovb rdx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.14002a710
mov ebp, eax
cmp esi, r15d
jb 0x140027d2e
sub rbx, rbp
cmp rbx, r14
jne 0x140027d2e
cmp dword [rsp + 0x28], r15d
jae 0x140027d2e
mov edx, dword [rsp + 0x24]
mov ecx, ebp
neg ecx
call fcn.14002a780
mov rdx, qword [rsp + 0x68]
mov r8d, eax
mov rcx, qword [rsp + 0x70]
call fcn.14002a710
mov eax, eax
add rbp, rax
mov r11d, dword [rsp + 0x20]
mov r8d, esi
mov r9, qword [rsp + 0x98]
mov eax, esi
sub eax, ebp
mov r14d, r11d
cmp eax, r11d
cmova r14d, eax
sub r8d, r14d
add r8, rdi
cmp r8, r9
jb 0x140027d7d
cmp rdi, r9
ja 0x140027d7d
sub edi, r9d
mov ecx, r15d
lea r14d, [rdi + rsi]
mov edx, r14d
call fcn.14002a700
mov ebp, dword [rsp + 0x30]
test eax, eax
cmove r14d, r15d
jmp 0x140027bf3
mov edx, r14d
mov ecx, r15d
call fcn.14002a700
test eax, eax
jne 0x140027d98
mov ebp, dword [rsp + 0x30]
mov r14d, r15d
jmp 0x140027bf3
mov r10, qword [rsp + 0x58]
cmp r8, r9
mov rcx, r9
movsxd rax, r13d
cmovb rcx, r8
cmp rax, rcx
jae 0x140027ddd
mov rsi, qword [rsp + 0x38]
mov r9d, 0xffff
mov edx, r14d
mov eax, r15d
sub rax, rdx
mov r8d, r15d
sub rax, rsi
add rax, r10
cmp rax, r9
ja 0x140027e04
mov r12d, edx
mov r13d, ecx
sub r12, r8
add r12, rsi
mov rcx, qword [rsp + 0x140]
movzx eax, r14w
movzx ecx, word [rcx + rax*2 + 0x20000]
cmp ecx, r14d
ja 0x140027e04
mov ebp, dword [rsp + 0x30]
jmp 0x140027bf0
mov r10, qword [rsp + 0x58]
mov ebx, dword [rsp + 0x160]
cmp dword [rsp + 0x188], 1
jne 0x140028027
test ebx, ebx
jle 0x140028027
mov edx, dword [rsp + 0x50]
mov r15d, 0xffff
mov eax, edx
sub eax, r11d
cmp eax, r15d
jae 0x140028027
mov r8, qword [rsp + 0xc0]
mov rcx, r10
mov rbp, qword [r8 + 0x40008]
mov r14, qword [r8 + 0x40000]
mov esi, dword [r8 + 0x40018]
sub r14, rbp
add r14, rsi
call fcn.14002a670
mov ecx, eax
sub r11d, r14d
mov eax, edx
mov edi, dword [r8 + rcx*4]
add r11d, edi
sub eax, r11d
mov dword [rsp + 0x20], r11d
cmp eax, r15d
ja 0x140028027
mov r15d, dword [rsp + 0x24]
nop dword [rax + rax]
mov eax, ebx
dec ebx
mov dword [rsp + 0x160], ebx
test eax, eax
je 0x140028027
mov r8, rbp
mov edx, edi
sub r8, rsi
add r8, rdx
mov rcx, r8
call fcn.14002b210
cmp eax, r15d
jne 0x140027ff6
mov rax, qword [rsp + 0x40]
lea rbx, [r10 + 4]
add rax, 0xfffffffffffffffb
mov rcx, r14
sub rcx, rdx
mov r11, rax
add rcx, r10
mov r9, rbx
cmp rcx, rax
cmovbe r11, rcx
add r8, 4
lea r10, [r11 - 7]
cmp rbx, r10
jae 0x140027f13
mov rcx, rbx
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027fd4
lea r9, [rbx + 8]
add r8, 8
cmp r9, r10
jae 0x140027f41
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140027fe1
add r9, 8
add r8, 8
cmp r9, r10
jb 0x140027f18
lea rax, [r11 - 3]
cmp r9, rax
jae 0x140027f68
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140027f68
add r9, 4
add r8, 4
lea rax, [r11 - 1]
cmp r9, rax
jae 0x140027f91
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140027f91
add r9, 2
add r8, 2
cmp r9, r11
jae 0x140027fa2
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x140027fa2
inc r9
sub r9d, ebx
mov ebx, dword [rsp + 0x160]
lea eax, [r9 + 4]
mov r10, qword [rsp + 0x58]
cmp eax, r13d
jle 0x140027ff1
mov r11d, dword [rsp + 0x20]
mov r13d, eax
mov r12d, r11d
sub r12, qword [rsp + 0xa8]
add r12, qword [rsp + 0x38]
jmp 0x140027ff6
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x140027fa5
mov rcx, rdx
sub r9d, ebx
call fcn.14002a890
add r9d, eax
jmp 0x140027fa5
mov r11d, dword [rsp + 0x20]
mov rcx, qword [rsp + 0xc0]
mov edx, dword [rsp + 0x50]
movzx eax, di
movzx ecx, word [rcx + rax*2 + 0x20000]
sub r11d, ecx
sub edi, ecx
sub edx, r11d
mov dword [rsp + 0x20], r11d
mov ecx, 0xffff
cmp edx, ecx
jbe 0x140027e90
cmp r13d, 3
jg 0x14002803c
mov rcx, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x58]
jmp 0x140028087
cmp dword [rsp + 0x190], 0
je 0x140028063
xor eax, eax
cmp r13d, 0x24
mov ecx, eax
setle cl
cmp r13d, 0x12
setg al
test eax, ecx
mov eax, 0x12
cmovne r13d, eax
mov r11, qword [rsp + 0x58]
mov edx, r11d
mov ecx, r13d
sub edx, r12d
shl rcx, 0x20
mov dword [rsp + 0xc8], edx
or rcx, rdx
mov dword [rsp + 0xcc], r13d
mov r15, rcx
mov qword [rsp + 0x70], rcx
shr r15, 0x20
test r15d, r15d
jne 0x1400280cb
mov r10, qword [rsp + 0x80]
inc r11
mov r9, qword [rsp + 0x78]
mov qword [rsp + 0x58], r11
xor r8d, r8d
cmp r11, qword [rsp + 0xe8]
ja 0x14002a452
mov rbp, qword [rsp + 0x140]
jmp 0x140027540
movsxd r8, r15d
mov qword [rsp + 0xa0], r8
cmp r8, qword [rsp + 0xe0]
jbe 0x1400282b5
mov ebx, dword [rsp + 0x178]
mov rbp, r11
movsxd rax, ecx
mov rsi, r11
mov rcx, qword [rsp + 0x80]
sub rbp, rax
mov qword [rsp + 0x70], rcx
mov r13, rcx
mov r9, rcx
movabs r10, 0x8080808080808081
lea r12, [rcx + 1]
mov rcx, qword [rsp + 0x78]
sub rsi, rcx
mov rdi, r12
test ebx, ebx
je 0x14002814a
mov rax, r10
mul rsi
lea rax, [r12 + 8]
shr rdx, 7
add rdx, rsi
add rax, rdx
cmp rax, qword [rsp + 0xb8]
ja 0x14002a283
cmp rsi, 0xf
jb 0x1400281ad
lea r14, [rsi - 0xf]
mov byte [r13], 0xf0
cmp r14, 0xff
jb 0x1400281a5
mov rax, r10
mov rcx, rdi
mul r14
mov rbx, rdx
mov dl, 0xff
shr rbx, 7
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov r8, qword [rsp + 0xa0]
add rdi, rbx
mov r11, qword [rsp + 0x58]
mov r9, r13
mov rcx, qword [rsp + 0x78]
imul rax, rbx, 0xffffffffffffff01
mov ebx, dword [rsp + 0x178]
add r14, rax
mov byte [rdi], r14b
inc rdi
jmp 0x1400281b8
movzx eax, sil
shl al, 4
mov byte [r13], al
lea r10, [rsi + rdi]
sub rcx, rdi
nop
mov rax, qword [rcx + rdi]
mov qword [rdi], rax
add rdi, 8
cmp rdi, r10
jb 0x1400281c0
movzx edx, r11w
mov rcx, r10
sub dx, bp
call fcn.14002b480
add r10, 2
lea rcx, [r8 - 4]
mov qword [rsp + 0x80], r10
movabs rdi, 0x8080808080808081
test ebx, ebx
je 0x14002821c
mov rax, rdi
mul rcx
lea rax, [r10 + 6]
shr rdx, 7
add rax, rdx
cmp rax, qword [rsp + 0xb8]
ja 0x14002a283
movzx eax, byte [r9]
cmp rcx, 0xf
jb 0x14002829a
add al, 0xf
sub rcx, 0xf
mov byte [r13], al
cmp rcx, 0x1fe
jb 0x140028260
mov rax, rdi
mul rcx
shr rdx, 8
imul rax, rdx, 0xfffffffffffffe02
add rcx, rax
nop dword [rax]
mov word [r10], 0xffff
add r10, 2
sub rdx, 1
jne 0x140028250
cmp rcx, 0xff
jb 0x140028277
sub rcx, 0xff
mov byte [r10], 0xff
inc r10
mov byte [r10], cl
inc r10
add r11, r8
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x58], r11
mov r9, r11
mov qword [rsp + 0x78], r11
jmp 0x1400280ad
add al, cl
add r11, r8
mov byte [r13], al
mov qword [rsp + 0x58], r11
mov r9, r11
mov qword [rsp + 0x78], r11
jmp 0x1400280ad
mov esi, dword [rsp + 0x60]
mov eax, esi
cmp esi, 0xf
jl 0x1400282de
lea r8d, [rsi - 0xf]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rsi + 1]
add eax, edx
mov r14, qword [rsp + 0x88]
lea r9d, [rsi + 1]
xor r12d, r12d
mov dword [r14], eax
mov eax, r9d
mov dword [r14 + 8], 1
mov dword [r14 + 4], r12d
mov dword [r14 + 0xc], esi
cmp r9d, 0xf
jl 0x140028327
lea r8d, [rsi - 0xe]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rsi + 2]
add eax, edx
mov dword [r14 + 0x1c], r9d
lea r9d, [rsi + 2]
mov dword [r14 + 0x10], eax
mov eax, r9d
mov dword [r14 + 0x18], 1
mov dword [r14 + 0x14], r12d
cmp r9d, 0xf
jl 0x140028366
lea r8d, [rsi - 0xd]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rsi + 3]
add eax, edx
mov dword [r14 + 0x2c], r9d
lea r9d, [rsi + 3]
mov dword [r14 + 0x20], eax
mov eax, r9d
mov dword [r14 + 0x28], 1
mov dword [r14 + 0x24], r12d
cmp r9d, 0xf
jl 0x1400283a5
lea r8d, [rsi - 0xc]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rsi + 4]
add eax, edx
movsxd rbx, dword [rsp + 0x74]
mov r10d, 4
mov dword [r14 + 0x38], 1
mov rdi, rbx
mov dword [r14 + 0x34], r12d
mov dword [r14 + 0x3c], r9d
mov dword [r14 + 0x30], eax
mov dword [rsp + 0x60], ebx
cmp rbx, r10
jl 0x140028447
lea r9, [r14 + 0x44]
add rbx, 0xfffffffffffffffd
mov r11d, esi
cmp esi, 0xf
jl 0x140028400
lea r8d, [rsi - 0xf]
mov eax, 0x80808081
imul r8d
lea r11d, [rsi + 1]
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add r11d, edx
add r11d, 3
cmp r10d, 0x13
jl 0x140028429
lea r8d, [r10 - 0x13]
mov eax, 0x80808081
imul r8d
inc r11d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add r11d, edx
mov dword [r9 + 4], r10d
inc r10d
mov dword [r9], ecx
mov dword [r9 + 8], esi
mov dword [r9 - 4], r11d
add r9, 0x10
sub rbx, 1
jne 0x1400283d8
mov ebx, edi
mov r13d, 1
lea rcx, [rdi + 1]
shl rcx, 4
mov rdx, rdi
add rcx, r14
mov dword [rsp + 0x64], r13d
add rdx, rdx
mov dword [rcx + 8], 1
mov dword [rcx + 4], r12d
mov dword [rcx + 0xc], 1
mov eax, dword [r14 + rdx*8]
inc eax
mov dword [rcx + 0x18], 1
mov dword [rcx], eax
mov dword [rcx + 0x14], r12d
mov dword [rcx + 0x1c], 2
mov eax, dword [r14 + rdx*8]
add eax, 2
mov dword [rcx + 0x28], 1
mov dword [rcx + 0x10], eax
lea rax, [rdi + 3]
add rax, rax
mov dword [rcx + 0x24], r12d
mov dword [rcx + 0x2c], 3
mov ecx, dword [r14 + rdx*8]
add ecx, 3
mov dword [r14 + rax*8], ecx
mov eax, r13d
mov qword [rsp + 0x70], rax
cmp ebx, r13d
jle 0x140029fb7
nop
movsxd rbp, r13d
add rbp, qword [rsp + 0x58]
mov qword [rsp + 0x38], rbp
cmp rbp, qword [rsp + 0xe8]
ja 0x140029fb7
mov r10d, dword [rsp + 0x180]
mov rcx, rax
shl rcx, 4
mov qword [rsp + 0x98], rcx
mov eax, dword [rcx + r14]
test r10d, r10d
je 0x14002852d
cmp dword [rcx + r14 + 0x10], eax
jg 0x140028538
mov rcx, qword [rsp + 0x70]
add eax, 3
add rcx, 4
add rcx, rcx
cmp dword [r14 + rcx*8], eax
jl 0x140029f99
jmp 0x140028538
cmp dword [rcx + r14 + 0x10], eax
jle 0x140029f99
mov rdx, qword [rsp + 0x140]
mov r8d, dword [rdx + 0x4001c]
mov r9d, dword [rdx + 0x40018]
mov rax, qword [rdx + 0x40028]
mov esi, r9d
mov r14, qword [rdx + 0x40008]
mov rdx, qword [rdx + 0x40010]
lea ecx, [r8 + 0x10000]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x160], r9d
mov dword [rsp + 0x50], r8d
mov qword [rsp + 0x68], rdx
test r10d, r10d
je 0x1400290aa
mov edi, r9d
mov qword [rsp + 0xd0], 0
sub edi, r14d
mov qword [rsp + 0xb0], r12
add edi, ebp
mov qword [rsp + 0x90], r9
cmp ecx, edi
mov dword [rsp + 0x28], edi
mov ebx, r8d
mov rcx, rbp
mov r11, r12
mov r13d, 3
lea eax, [rdi - 0xffff]
cmovbe ebx, eax
mov rax, rdx
mov edx, dword [rsp + 0x168]
sub rax, r8
add rax, r9
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0x24], edx
call fcn.14002b210
mov r9d, eax
mov dword [rsp + 0x2c], eax
xor eax, eax
mov r10d, esi
sub r10d, r14d
mov dword [rsp + 0x20], eax
add r10d, dword [rsp + 0x38]
mov ebp, eax
mov r15d, eax
mov rax, qword [rsp + 0x140]
mov r8d, dword [rax + 0x40020]
cmp r8d, r10d
jae 0x140028683
mov r9d, r8d
mov ebp, 0xffff
sub r9, rsi
add r9, r14
mov r14, rax
nop
mov rcx, r9
call fcn.14002a670
mov ecx, eax
lea rdx, [r14 + rcx*4]
movzx eax, r8w
mov ecx, r8d
sub ecx, dword [rdx]
cmp rcx, rbp
cmova rcx, rbp
inc r9
mov word [r14 + rax*2 + 0x20000], cx
mov dword [rdx], r8d
inc r8d
cmp r8d, r10d
jb 0x140028640
mov r9d, dword [rsp + 0x2c]
mov ebp, r15d
mov edx, dword [rsp + 0x24]
jmp 0x14002868b
mov r14, qword [rsp + 0x140]
mov dword [r14 + 0x40020], r10d
mov r10, qword [rsp + 0x38]
mov rcx, r10
call fcn.14002a670
mov ecx, eax
mov r14d, dword [r14 + rcx*4]
cmp r14d, ebx
jb 0x140028e43
jmp 0x1400286bd
mov r9d, dword [rsp + 0x2c]
mov rsi, qword [rsp + 0x90]
test edx, edx
jle 0x140028e3b
dec edx
xor ebx, ebx
mov dword [rsp + 0x24], edx
cmp dword [rsp + 0x190], ebx
je 0x1400286e4
mov eax, edi
sub eax, r14d
cmp eax, 8
jb 0x140028ac1
mov edx, dword [rsp + 0x160]
cmp r14d, edx
jb 0x140028847
mov edi, r14d
lea rcx, [r10 - 1]
movsxd rdx, r13d
sub rdi, rsi
add rdi, qword [rsp + 0x48]
add rcx, rdx
call fcn.14002b200
lea rcx, [rdx - 1]
movzx r8d, ax
add rcx, rdi
call fcn.14002b200
cmp r8w, ax
jne 0x140028ac1
mov rcx, rdi
call fcn.14002b210
cmp eax, r9d
jne 0x140028ac1
mov rbx, qword [rsp + 0x40]
lea r11, [r10 + 4]
add rbx, 0xfffffffffffffffb
lea r8, [rdi + 4]
mov r9, r11
lea r10, [rbx - 7]
cmp r11, r10
jae 0x14002877a
mov rcx, r11
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x14002882a
lea r9, [r11 + 8]
add r8, 8
cmp r9, r10
jae 0x1400287a9
nop
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140028837
add r9, 8
add r8, 8
cmp r9, r10
jb 0x140028780
lea rax, [rbx - 3]
cmp r9, rax
jae 0x1400287d0
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x1400287d0
add r9, 4
add r8, 4
lea rax, [rbx - 1]
cmp r9, rax
jae 0x1400287f9
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x1400287f9
add r9, 2
add r8, 2
cmp r9, rbx
jae 0x14002880a
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x14002880a
inc r9
sub r9d, r11d
lea ebx, [r9 + 4]
cmp ebx, r13d
jle 0x140028ac4
mov r13d, ebx
mov qword [rsp + 0xb0], rdi
jmp 0x140028aca
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x14002880d
mov rcx, rdx
sub r9d, r11d
call fcn.14002a890
add r9d, eax
jmp 0x14002880d
mov r8d, r14d
lea eax, [rdx - 4]
sub r8d, dword [rsp + 0x50]
add r8, qword [rsp + 0x68]
cmp r14d, eax
ja 0x140028ac1
mov rcx, r8
call fcn.14002b210
cmp eax, r9d
jne 0x140028ac1
mov rax, qword [rsp + 0x40]
lea rbx, [r10 + 4]
add rax, 0xfffffffffffffffb
mov ecx, edx
sub ecx, r14d
mov r11, rax
add rcx, r10
mov r9, rbx
cmp rcx, rax
cmovbe r11, rcx
add r8, 4
lea r10, [r11 - 7]
cmp rbx, r10
jae 0x1400288c4
mov rcx, rbx
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140028a5c
lea r9, [rbx + 8]
add r8, 8
cmp r9, r10
jae 0x1400288f9
nop dword [rax]
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140028a6c
add r9, 8
add r8, 8
cmp r9, r10
jb 0x1400288d0
lea rax, [r11 - 3]
cmp r9, rax
jae 0x140028920
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140028920
add r9, 4
add r8, 4
lea rax, [r11 - 1]
cmp r9, rax
jae 0x140028949
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140028949
add r9, 2
add r8, 2
cmp r9, r11
jae 0x14002895a
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x14002895a
inc r9
sub r9d, ebx
lea ebx, [r9 + 4]
movsxd rdi, ebx
add rdi, qword [rsp + 0x38]
cmp rdi, r11
jne 0x140028aa1
mov r10, qword [rsp + 0x40]
add r10, 0xfffffffffffffffb
cmp r11, r10
mov r11, qword [rsp + 0x48]
jae 0x140028aa6
add r10, 0xfffffffffffffff9
mov r8, r11
mov r9, rdi
cmp rdi, r10
jae 0x1400289bc
mov rcx, rdi
call fcn.14002b220
mov rcx, r11
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140028a7f
lea r9, [rdi + 8]
lea r8, [r11 + 8]
cmp r9, r10
jae 0x1400289ea
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140028a8e
add r9, 8
add r8, 8
cmp r9, r10
jb 0x1400289c1
mov r10, qword [rsp + 0x40]
add r10, 0xfffffffffffffffb
lea rax, [r10 - 3]
cmp r9, rax
jae 0x140028a1a
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140028a1a
add r9, 4
add r8, 4
lea rax, [r10 - 1]
cmp r9, rax
jae 0x140028a43
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140028a43
add r9, 2
add r8, 2
cmp r9, r10
jae 0x140028a54
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x140028a54
inc r9
sub r9d, edi
add ebx, r9d
jmp 0x140028aa6
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x14002895d
mov rcx, rdx
sub r9d, ebx
call fcn.14002a890
add r9d, eax
jmp 0x14002895d
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
add ebx, eax
jmp 0x140028aa6
mov rcx, rdx
sub r9d, edi
call fcn.14002a890
add r9d, eax
add ebx, r9d
jmp 0x140028aa6
mov r11, qword [rsp + 0x48]
cmp ebx, r13d
jle 0x140028ac4
mov edi, r14d
mov r13d, ebx
sub rdi, rsi
add rdi, r11
mov qword [rsp + 0xb0], rdi
jmp 0x140028aca
cmp ebx, r13d
jne 0x140028b5a
lea eax, [r14 + r13]
cmp eax, dword [rsp + 0x28]
ja 0x140028b5a
lea ebx, [r13 - 3]
xor r10d, r10d
mov esi, 0x10
mov r11d, 1
mov r9d, esi
test ebx, ebx
jle 0x140028b5a
mov rbp, qword [rsp + 0x140]
mov edi, r14d
nop dword [rax]
mov edx, r9d
lea rax, [rdi + r10]
movzx eax, ax
inc r9d
sar edx, 4
movzx ecx, word [rbp + rax*2 + 0x20000]
mov eax, r10d
cmp ecx, r11d
mov r8d, ecx
cmovbe r8d, r11d
cmovbe eax, r12d
cmova r9d, esi
mov r12d, eax
add r10d, edx
mov r11d, r8d
cmp r10d, ebx
jl 0x140028b00
mov ebp, dword [rsp + 0x20]
cmp r8d, 1
jbe 0x140028b5a
mov ebx, dword [rsp + 0x30]
cmp r8d, r14d
ja 0x140028e2e
sub r14d, r8d
jmp 0x140028c02
mov r10, qword [rsp + 0x140]
movzx edi, r14w
cmp word [r10 + rdi*2 + 0x20000], 1
jne 0x140028beb
test r12d, r12d
jne 0x140028beb
lea esi, [r14 - 1]
test ebp, ebp
jne 0x140028c1d
mov r9d, dword [rsp + 0x2c]
xor r8d, r8d
mov eax, r9d
mov edx, r9d
shr eax, 0x18
cmp r9b, al
movzx eax, r9w
sete r8b
xor ecx, ecx
shr edx, 0x10
cmp eax, edx
sete cl
test ecx, r8d
je 0x140028be2
mov rcx, qword [rsp + 0x38]
mov ebp, 2
mov rdx, qword [rsp + 0x40]
add rcx, 4
add rdx, 0xfffffffffffffffb
mov dword [rsp + 0x20], ebp
mov r8d, r9d
call fcn.14002a5c0
mov r10, qword [rsp + 0x140]
mov r15d, eax
add r15, 4
jmp 0x140028c22
mov ebp, 1
mov dword [rsp + 0x20], ebp
mov ebx, dword [rsp + 0x30]
lea eax, [rdi + r12]
movzx eax, ax
movzx ecx, word [r10 + rax*2 + 0x20000]
sub r14d, ecx
mov edx, dword [rsp + 0x24]
mov edi, dword [rsp + 0x28]
mov r10, qword [rsp + 0x38]
cmp r14d, ebx
jae 0x1400286b0
jmp 0x140028e3b
cmp ebp, 2
jne 0x140028beb
cmp esi, dword [rsp + 0x30]
jb 0x140028beb
mov r8d, dword [rsp + 0x160]
mov edx, esi
mov ecx, r8d
call fcn.14002a700
test eax, eax
je 0x140028beb
mov rcx, qword [rsp + 0x68]
mov edx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
sub rcx, rdx
sub rax, qword [rsp + 0x90]
cmp esi, r8d
mov ebx, esi
cmovb rax, rcx
add rbx, rax
mov rcx, rbx
call fcn.14002b210
mov r9d, dword [rsp + 0x2c]
cmp eax, r9d
jne 0x140028beb
mov r14, qword [rsp + 0x40]
lea rcx, [rbx + 4]
cmp esi, r8d
mov r8d, r9d
lea rbp, [r14 - 5]
cmovb rbp, qword [rsp + 0xa8]
mov rdx, rbp
call fcn.14002a5c0
mov ecx, dword [rsp + 0x160]
mov edi, eax
add rdi, 4
cmp esi, ecx
jae 0x140028cef
lea rax, [rdi + rbx]
cmp rax, rbp
jne 0x140028cef
mov edx, dword [rsp + 0x2c]
mov rcx, rdi
call fcn.14002a780
mov rcx, qword [rsp + 0x48]
lea rdx, [r14 - 5]
mov r8d, eax
call fcn.14002a5c0
mov r8d, dword [rsp + 0x2c]
mov rcx, rbx
mov rdx, qword [rsp + 0x68]
mov eax, eax
add rdi, rax
call fcn.14002a710
mov ebp, eax
jmp 0x140028d55
mov rdx, qword [rsp + 0x48]
cmp esi, ecx
mov r14d, dword [rsp + 0x2c]
mov rcx, rbx
cmovb rdx, qword [rsp + 0x68]
mov r8d, r14d
call fcn.14002a710
mov r9d, dword [rsp + 0x160]
mov ebp, eax
cmp esi, r9d
jb 0x140028d5d
mov r10, qword [rsp + 0x48]
sub rbx, rbp
cmp rbx, r10
jne 0x140028d62
cmp dword [rsp + 0x50], r9d
jae 0x140028d62
mov ecx, ebp
mov edx, r14d
neg ecx
call fcn.14002a780
mov rdx, qword [rsp + 0x68]
mov r8d, eax
mov rcx, qword [rsp + 0xa8]
call fcn.14002a710
mov eax, eax
add rbp, rax
mov r9d, dword [rsp + 0x160]
mov r10, qword [rsp + 0x48]
mov ebx, dword [rsp + 0x30]
mov r8d, esi
mov eax, esi
mov r14d, ebx
sub eax, ebp
cmp eax, ebx
cmova r14d, eax
sub r8d, r14d
add r8, rdi
cmp r8, r15
jb 0x140028da7
cmp rdi, r15
ja 0x140028da7
sub edi, r15d
mov ecx, r9d
lea r14d, [rdi + rsi]
mov edx, r14d
call fcn.14002a700
mov ebp, dword [rsp + 0x20]
test eax, eax
cmove r14d, r9d
jmp 0x140028c02
mov edx, r14d
mov ecx, r9d
call fcn.14002a700
test eax, eax
jne 0x140028dc2
mov ebp, dword [rsp + 0x20]
mov r14d, r9d
jmp 0x140028c02
cmp r8, r15
movsxd rax, r13d
mov rcx, r15
cmovb rcx, r8
cmp rax, rcx
jae 0x140028e0c
mov rsi, qword [rsp + 0x90]
mov r8d, 0xffff
mov rax, rsi
mov edx, r14d
sub rax, r10
sub rax, rdx
add rax, qword [rsp + 0x38]
cmp rax, r8
ja 0x140028e2e
mov r11, r10
mov r13d, ecx
sub r11, rsi
add r11, rdx
mov qword [rsp + 0xb0], r11
mov rcx, qword [rsp + 0x140]
movzx eax, r14w
movzx ecx, word [rcx + rax*2 + 0x20000]
cmp ecx, r14d
ja 0x140028e2e
mov ebp, dword [rsp + 0x20]
jmp 0x140028bff
mov edx, dword [rsp + 0x24]
mov edi, dword [rsp + 0x28]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0xb0]
cmp dword [rsp + 0x188], 1
jne 0x140029053
test edx, edx
jle 0x140029053
mov eax, edi
mov r12d, 0xffff
sub eax, ebx
cmp eax, r12d
jae 0x140029053
mov r9, qword [rsp + 0xc0]
mov rcx, r10
mov r14, qword [r9 + 0x40008]
mov r15, qword [r9 + 0x40000]
mov ebp, dword [r9 + 0x40018]
sub r15, r14
add r15, rbp
call fcn.14002a670
mov ecx, eax
mov eax, dword [rsp + 0x28]
mov esi, dword [r9 + rcx*4]
mov edi, esi
sub edi, r15d
add edi, ebx
sub eax, edi
cmp eax, r12d
ja 0x140029053
mov r12d, dword [rsp + 0x2c]
nop dword [rax + rax]
mov eax, edx
dec edx
mov dword [rsp + 0x24], edx
test eax, eax
je 0x140029053
mov r9, r14
mov edx, esi
sub r9, rbp
add r9, rdx
mov rcx, r9
call fcn.14002b210
cmp eax, r12d
jne 0x140029025
mov rax, qword [rsp + 0x40]
lea rbx, [r10 + 4]
add rax, 0xfffffffffffffffb
mov rcx, r15
sub rcx, rdx
mov r11, rax
add rcx, r10
mov rdx, rbx
cmp rcx, rax
cmovbe r11, rcx
add r9, 4
lea r8, [r11 - 7]
cmp rbx, r8
jae 0x140028f40
mov rcx, rbx
call fcn.14002b220
mov rcx, r9
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140028ffe
lea rdx, [rbx + 8]
add r9, 8
cmp rdx, r8
jae 0x140028f6e
mov rcx, rdx
call fcn.14002b220
mov rcx, r9
mov r10, rax
call fcn.14002b220
xor r10, rax
jne 0x14002900a
add rdx, 8
add r9, 8
cmp rdx, r8
jb 0x140028f45
lea rax, [r11 - 3]
cmp rdx, rax
jae 0x140028f97
mov rcx, rdx
call fcn.14002b210
mov rcx, r9
mov r8d, eax
call fcn.14002b210
cmp eax, r8d
jne 0x140028f97
add rdx, 4
add r9, 4
lea rax, [r11 - 1]
cmp rdx, rax
jae 0x140028fc2
mov rcx, rdx
call fcn.14002b200
mov rcx, r9
movzx r8d, ax
call fcn.14002b200
cmp ax, r8w
jne 0x140028fc2
add rdx, 2
add r9, 2
cmp rdx, r11
jae 0x140028fd2
movzx eax, byte [rdx]
cmp byte [r9], al
jne 0x140028fd2
inc rdx
sub edx, ebx
mov r10, qword [rsp + 0x38]
lea eax, [rdx + 4]
cmp eax, r13d
jle 0x14002901d
mov r11d, edi
mov r13d, eax
sub r11, qword [rsp + 0x90]
add r11, qword [rsp + 0x48]
mov qword [rsp + 0xb0], r11
jmp 0x140029025
mov rcx, rdx
call fcn.14002a890
mov edx, eax
jmp 0x140028fd4
sub edx, ebx
mov rcx, r10
mov r8d, edx
call fcn.14002a890
lea edx, [r8 + rax]
jmp 0x140028fd4
mov r11, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xc0]
mov edx, dword [rsp + 0x24]
movzx eax, si
movzx ecx, word [rcx + rax*2 + 0x20000]
mov eax, dword [rsp + 0x28]
sub edi, ecx
sub esi, ecx
sub eax, edi
mov ecx, 0xffff
cmp eax, ecx
jbe 0x140028ec0
cmp r13d, 3
jg 0x140029066
mov rcx, qword [rsp + 0xd0]
jmp 0x140029bd2
cmp dword [rsp + 0x190], 0
je 0x14002908d
xor eax, eax
cmp r13d, 0x24
mov ecx, eax
setle cl
cmp r13d, 0x12
setg al
test eax, ecx
mov eax, 0x12
cmovne r13d, eax
sub r10d, r11d
mov dword [rsp + 0xd4], r13d
mov eax, r10d
mov dword [rsp + 0xd0], eax
mov ecx, r13d
jmp 0x140029bcb
mov eax, ebx
mov qword [rsp + 0xd8], 0
sub eax, r13d
mov qword [rsp + 0x90], r12
mov dword [rsp + 0xb0], eax
mov r15d, eax
mov edi, ebp
mov qword [rsp + 0xa8], rsi
sub edi, r14d
mov ebx, r8d
add edi, r9d
mov r10, r12
cmp ecx, edi
mov dword [rsp + 0x2c], edi
mov rcx, rbp
mov r13d, r12d
lea eax, [rdi - 0xffff]
cmovbe ebx, eax
mov rax, r9
sub rax, r8
mov dword [rsp + 0x30], ebx
add rax, rdx
mov edx, dword [rsp + 0x168]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x24], edx
call fcn.14002b210
mov r11d, eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x140]
mov ebp, r12d
mov dword [rsp + 0x28], r12d
mov r8d, dword [rax + 0x40020]
cmp r8d, edi
jae 0x140029192
mov r9d, r8d
mov ebp, 0xffff
sub r9, rsi
add r9, r14
mov r14, rax
mov rcx, r9
call fcn.14002a670
mov ecx, eax
lea rdx, [r14 + rcx*4]
movzx eax, r8w
mov ecx, r8d
sub ecx, dword [rdx]
cmp rcx, rbp
cmova rcx, rbp
inc r9
mov word [r14 + rax*2 + 0x20000], cx
mov dword [rdx], r8d
inc r8d
cmp r8d, edi
jb 0x140029151
mov edx, dword [rsp + 0x24]
mov ebp, r12d
mov r9d, esi
jmp 0x14002919a
mov r14, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x38]
mov dword [r14 + 0x40020], edi
call fcn.14002a670
mov ecx, eax
mov r14d, dword [r14 + rcx*4]
cmp r14d, ebx
jb 0x14002995b
jmp 0x1400291c8
mov rsi, qword [rsp + 0xa8]
test edx, edx
jle 0x140029953
dec edx
xor ebx, ebx
mov dword [rsp + 0x24], edx
cmp dword [rsp + 0x190], ebx
je 0x1400291ef
mov eax, edi
sub eax, r14d
cmp eax, 8
jb 0x1400295c7
cmp r14d, r9d
jb 0x14002934f
mov edi, r14d
sub rdi, rsi
movsxd rdx, r15d
add rdi, qword [rsp + 0x48]
lea rcx, [rdi - 1]
add rcx, rdx
call fcn.14002b200
mov r9, qword [rsp + 0x38]
movzx r8d, ax
lea rcx, [r9 - 1]
add rcx, rdx
call fcn.14002b200
cmp ax, r8w
jne 0x1400295c7
mov rcx, rdi
call fcn.14002b210
cmp eax, r11d
jne 0x1400295c7
mov rbx, qword [rsp + 0x40]
lea r11, [r9 + 4]
add rbx, 0xfffffffffffffffb
lea r8, [rdi + 4]
mov r9, r11
lea r10, [rbx - 7]
cmp r11, r10
jae 0x140029283
mov rcx, r11
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029332
lea r9, [r11 + 8]
add r8, 8
cmp r9, r10
jae 0x1400292b1
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x14002933f
add r9, 8
add r8, 8
cmp r9, r10
jb 0x140029288
lea rax, [rbx - 3]
cmp r9, rax
jae 0x1400292d8
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x1400292d8
add r9, 4
add r8, 4
lea rax, [rbx - 1]
cmp r9, rax
jae 0x140029301
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140029301
add r9, 2
add r8, 2
cmp r9, rbx
jae 0x140029312
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x140029312
inc r9
sub r9d, r11d
lea ebx, [r9 + 4]
cmp ebx, r15d
jle 0x1400295ca
mov r15d, ebx
mov qword [rsp + 0x90], rdi
jmp 0x1400295d0
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x140029315
mov rcx, rdx
sub r9d, r11d
call fcn.14002a890
add r9d, eax
jmp 0x140029315
mov r8d, r14d
lea eax, [r9 - 4]
sub r8d, dword [rsp + 0x50]
add r8, qword [rsp + 0x68]
cmp r14d, eax
ja 0x1400295c7
mov rcx, r8
call fcn.14002b210
cmp eax, r11d
jne 0x1400295c7
mov rdi, qword [rsp + 0x38]
mov ecx, r9d
mov rax, qword [rsp + 0x40]
sub ecx, r14d
add rcx, rdi
add rax, 0xfffffffffffffffb
cmp rcx, rax
mov r11, rax
lea rbx, [rdi + 4]
cmovbe r11, rcx
mov r9, rbx
add r8, 4
lea r10, [r11 - 7]
cmp rbx, r10
jae 0x1400293d3
mov rcx, rbx
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029562
lea r9, [rbx + 8]
add r8, 8
cmp r9, r10
jae 0x140029401
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029572
add r9, 8
add r8, 8
cmp r9, r10
jb 0x1400293d8
lea rax, [r11 - 3]
cmp r9, rax
jae 0x140029428
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140029428
add r9, 4
add r8, 4
lea rax, [r11 - 1]
cmp r9, rax
jae 0x140029451
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140029451
add r9, 2
add r8, 2
cmp r9, r11
jae 0x140029462
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x140029462
inc r9
sub r9d, ebx
lea ebx, [r9 + 4]
movsxd rax, ebx
add rdi, rax
cmp rdi, r11
jne 0x1400295a7
mov r10, qword [rsp + 0x40]
add r10, 0xfffffffffffffffb
cmp r11, r10
mov r11, qword [rsp + 0x48]
jae 0x1400295ac
add r10, 0xfffffffffffffff9
mov r8, r11
mov r9, rdi
cmp rdi, r10
jae 0x1400294c2
mov rcx, rdi
call fcn.14002b220
mov rcx, r11
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029585
lea r9, [rdi + 8]
lea r8, [r11 + 8]
cmp r9, r10
jae 0x1400294f0
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029594
add r9, 8
add r8, 8
cmp r9, r10
jb 0x1400294c7
mov r10, qword [rsp + 0x40]
add r10, 0xfffffffffffffffb
lea rax, [r10 - 3]
cmp r9, rax
jae 0x140029520
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140029520
add r9, 4
add r8, 4
lea rax, [r10 - 1]
cmp r9, rax
jae 0x140029549
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140029549
add r9, 2
add r8, 2
cmp r9, r10
jae 0x14002955a
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x14002955a
inc r9
sub r9d, edi
add ebx, r9d
jmp 0x1400295ac
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x140029465
mov rcx, rdx
sub r9d, ebx
call fcn.14002a890
add r9d, eax
jmp 0x140029465
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
add ebx, eax
jmp 0x1400295ac
mov rcx, rdx
sub r9d, edi
call fcn.14002a890
add r9d, eax
add ebx, r9d
jmp 0x1400295ac
mov r11, qword [rsp + 0x48]
cmp ebx, r15d
jle 0x1400295ca
mov edi, r14d
mov r15d, ebx
sub rdi, rsi
add rdi, r11
mov qword [rsp + 0x90], rdi
jmp 0x1400295d0
cmp ebx, r15d
jne 0x140029665
lea eax, [r14 + r15]
cmp eax, dword [rsp + 0x2c]
ja 0x140029665
lea r11d, [r15 - 3]
xor r10d, r10d
mov esi, 0x10
mov ebx, 1
mov r9d, esi
test r11d, r11d
jle 0x140029665
mov rbp, qword [rsp + 0x140]
mov edi, r14d
nop dword [rax]
nop word [rax + rax]
mov edx, r9d
lea rax, [rdi + r10]
movzx eax, ax
inc r9d
sar edx, 4
movzx ecx, word [rbp + rax*2 + 0x20000]
mov eax, r10d
cmp ecx, ebx
mov r8d, ecx
cmovbe r8d, ebx
cmovbe eax, r13d
cmova r9d, esi
mov r13d, eax
add r10d, edx
mov ebx, r8d
cmp r10d, r11d
jl 0x140029610
mov ebp, dword [rsp + 0x28]
cmp r8d, 1
jbe 0x140029665
cmp r8d, r14d
ja 0x140029946
sub r14d, r8d
jmp 0x140029709
mov r10, qword [rsp + 0x140]
movzx edi, r14w
cmp word [r10 + rdi*2 + 0x20000], 1
jne 0x1400296f6
test r13d, r13d
jne 0x1400296f6
lea esi, [r14 - 1]
test ebp, ebp
jne 0x14002972e
mov r9d, dword [rsp + 0x20]
xor r8d, r8d
mov eax, r9d
mov edx, r9d
shr eax, 0x18
cmp r9b, al
movzx eax, r9w
sete r8b
xor ecx, ecx
shr edx, 0x10
cmp eax, edx
sete cl
test ecx, r8d
je 0x1400296ed
mov rcx, qword [rsp + 0x38]
mov ebp, 2
mov rdx, qword [rsp + 0x40]
add rcx, 4
add rdx, 0xfffffffffffffffb
mov dword [rsp + 0x28], ebp
mov r8d, r9d
call fcn.14002a5c0
mov r10, qword [rsp + 0x140]
mov r12d, eax
add r12, 4
jmp 0x140029733
mov ebp, 1
mov dword [rsp + 0x28], ebp
lea eax, [rdi + r13]
movzx eax, ax
movzx ecx, word [r10 + rax*2 + 0x20000]
sub r14d, ecx
mov r9d, dword [rsp + 0x160]
mov r11d, dword [rsp + 0x20]
mov edx, dword [rsp + 0x24]
mov edi, dword [rsp + 0x2c]
cmp r14d, dword [rsp + 0x30]
jae 0x1400291c0
jmp 0x140029953
cmp ebp, 2
jne 0x1400296f6
cmp esi, dword [rsp + 0x30]
jb 0x1400296f6
mov r8d, dword [rsp + 0x160]
mov edx, esi
mov ecx, r8d
call fcn.14002a700
test eax, eax
je 0x1400296f6
mov rcx, qword [rsp + 0x68]
mov edx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
sub rcx, rdx
sub rax, qword [rsp + 0xa8]
cmp esi, r8d
mov ebx, esi
cmovb rax, rcx
add rbx, rax
mov rcx, rbx
call fcn.14002b210
mov r9d, dword [rsp + 0x20]
cmp eax, r9d
jne 0x1400296f6
mov rbp, qword [rsp + 0x40]
lea rcx, [rbx + 4]
add rbp, 0xfffffffffffffffb
cmp esi, r8d
mov r8d, r9d
cmovb rbp, qword [rsp + 0xa0]
mov rdx, rbp
call fcn.14002a5c0
mov ecx, dword [rsp + 0x160]
mov edi, eax
add rdi, 4
cmp esi, ecx
jae 0x140029805
lea rax, [rdi + rbx]
cmp rax, rbp
jne 0x140029805
mov edx, dword [rsp + 0x20]
mov rcx, rdi
call fcn.14002a780
mov rdx, qword [rsp + 0x40]
mov r8d, eax
mov rcx, qword [rsp + 0x48]
add rdx, 0xfffffffffffffffb
call fcn.14002a5c0
mov r8d, dword [rsp + 0x20]
mov rcx, rbx
mov rdx, qword [rsp + 0x68]
mov eax, eax
add rdi, rax
call fcn.14002a710
mov ebp, eax
jmp 0x14002986b
mov rdx, qword [rsp + 0x48]
cmp esi, ecx
mov r14d, dword [rsp + 0x20]
mov rcx, rbx
cmovb rdx, qword [rsp + 0x68]
mov r8d, r14d
call fcn.14002a710
mov r9d, dword [rsp + 0x160]
mov ebp, eax
cmp esi, r9d
jb 0x140029873
mov r11, qword [rsp + 0x48]
sub rbx, rbp
cmp rbx, r11
jne 0x140029878
cmp dword [rsp + 0x50], r9d
jae 0x140029878
mov ecx, ebp
mov edx, r14d
neg ecx
call fcn.14002a780
mov rdx, qword [rsp + 0x68]
mov r8d, eax
mov rcx, qword [rsp + 0xa0]
call fcn.14002a710
mov eax, eax
add rbp, rax
mov r9d, dword [rsp + 0x160]
mov r11, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x30]
mov r8d, esi
mov eax, esi
sub eax, ebp
cmp eax, r14d
cmova r14d, eax
sub r8d, r14d
add r8, rdi
cmp r8, r12
jb 0x1400298bc
cmp rdi, r12
ja 0x1400298bc
sub edi, r12d
mov ecx, r9d
lea r14d, [rdi + rsi]
mov edx, r14d
call fcn.14002a700
mov ebp, dword [rsp + 0x28]
test eax, eax
cmove r14d, r9d
jmp 0x140029711
mov edx, r14d
mov ecx, r9d
call fcn.14002a700
test eax, eax
jne 0x1400298d7
mov ebp, dword [rsp + 0x28]
mov r14d, r9d
jmp 0x140029711
cmp r8, r12
movsxd rax, r15d
mov rcx, r12
cmovb rcx, r8
cmp rax, rcx
jae 0x140029921
mov rsi, qword [rsp + 0xa8]
mov r8d, 0xffff
mov rax, rsi
mov edx, r14d
sub rax, rdx
sub rax, r11
add rax, qword [rsp + 0x38]
cmp rax, r8
ja 0x140029946
mov r10d, edx
mov r15d, ecx
sub r10, rsi
add r10, r11
mov qword [rsp + 0x90], r10
mov rcx, qword [rsp + 0x140]
movzx eax, r14w
movzx ecx, word [rcx + rax*2 + 0x20000]
cmp ecx, r14d
ja 0x140029946
mov ebp, dword [rsp + 0x28]
sub r14d, ecx
jmp 0x140029711
mov r11d, dword [rsp + 0x20]
mov edx, dword [rsp + 0x24]
mov edi, dword [rsp + 0x2c]
mov r10, qword [rsp + 0x90]
cmp dword [rsp + 0x188], 1
jne 0x140029b76
test edx, edx
jle 0x140029b76
mov r12d, dword [rsp + 0x30]
mov eax, edi
sub eax, r12d
mov ebx, 0xffff
cmp eax, ebx
jae 0x140029b76
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x38]
mov rcx, r9
mov rbp, qword [r8 + 0x40008]
mov r14, qword [r8 + 0x40000]
mov esi, dword [r8 + 0x40018]
sub r14, rbp
add r14, rsi
call fcn.14002a670
mov r13d, dword [rsp + 0x2c]
sub r12d, r14d
mov ecx, eax
mov eax, r13d
mov edi, dword [r8 + rcx*4]
add r12d, edi
sub eax, r12d
cmp eax, ebx
ja 0x140029b76
nop word [rax + rax]
mov eax, edx
dec edx
mov dword [rsp + 0x24], edx
test eax, eax
je 0x140029b76
mov r8, rbp
mov edx, edi
sub r8, rsi
add r8, rdx
mov rcx, r8
call fcn.14002b210
cmp eax, r11d
jne 0x140029b47
mov rax, qword [rsp + 0x40]
lea rbx, [r9 + 4]
add rax, 0xfffffffffffffffb
mov rcx, r14
sub rcx, rdx
mov r11, rax
add rcx, r9
mov r9, rbx
cmp rcx, rax
cmovbe r11, rcx
add r8, 4
lea r10, [r11 - 7]
cmp rbx, r10
jae 0x140029a60
mov rcx, rbx
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029b22
lea r9, [rbx + 8]
add r8, 8
cmp r9, r10
jae 0x140029a8e
mov rcx, r9
call fcn.14002b220
mov rcx, r8
mov rdx, rax
call fcn.14002b220
xor rdx, rax
jne 0x140029b2f
add r9, 8
add r8, 8
cmp r9, r10
jb 0x140029a65
lea rax, [r11 - 3]
cmp r9, rax
jae 0x140029ab5
mov rcx, r9
call fcn.14002b210
mov rcx, r8
mov edx, eax
call fcn.14002b210
cmp eax, edx
jne 0x140029ab5
add r9, 4
add r8, 4
lea rax, [r11 - 1]
cmp r9, rax
jae 0x140029ade
mov rcx, r9
call fcn.14002b200
mov rcx, r8
movzx edx, ax
call fcn.14002b200
cmp ax, dx
jne 0x140029ade
add r9, 2
add r8, 2
cmp r9, r11
jae 0x140029aef
movzx eax, byte [r9]
cmp byte [r8], al
jne 0x140029aef
inc r9
sub r9d, ebx
mov r11d, dword [rsp + 0x20]
lea eax, [r9 + 4]
mov r9, qword [rsp + 0x38]
cmp eax, r15d
jle 0x140029b3f
mov r10d, r12d
mov r15d, eax
sub r10, qword [rsp + 0xa8]
add r10, qword [rsp + 0x48]
mov qword [rsp + 0x90], r10
jmp 0x140029b47
mov rcx, rdx
call fcn.14002a890
mov r9d, eax
jmp 0x140029af2
mov rcx, rdx
sub r9d, ebx
call fcn.14002a890
add r9d, eax
jmp 0x140029af2
mov r10, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xc0]
mov edx, dword [rsp + 0x24]
movzx eax, di
movzx ecx, word [rcx + rax*2 + 0x20000]
mov eax, r13d
sub r12d, ecx
sub edi, ecx
sub eax, r12d
mov ecx, 0xffff
cmp eax, ecx
jbe 0x1400299e0
cmp r15d, dword [rsp + 0xb0]
jg 0x140029b8a
mov rcx, qword [rsp + 0xd8]
jmp 0x140029bd2
cmp dword [rsp + 0x190], 0
je 0x140029bb1
xor eax, eax
cmp r15d, 0x24
mov ecx, eax
setle cl
cmp r15d, 0x12
setg al
test eax, ecx
mov eax, 0x12
cmovne r15d, eax
mov rax, qword [rsp + 0x38]
sub eax, r10d
mov dword [rsp + 0xdc], r15d
mov dword [rsp + 0xd8], eax
mov ecx, r15d
shl rcx, 0x20
or rcx, rax
mov r13d, dword [rsp + 0x64]
mov rdx, rcx
shr rdx, 0x20
mov r9, rcx
mov qword [rsp + 0xa0], rcx
test edx, edx
je 0x140029f8a
movsxd rax, edx
cmp rax, qword [rsp + 0xe0]
ja 0x14002a05e
lea eax, [rdx + r13]
cmp eax, 0x1000
jge 0x14002a05e
mov rsi, qword [rsp + 0x98]
mov r14, qword [rsp + 0x88]
mov r9d, dword [rsi + r14 + 0xc]
mov edi, r9d
lea r10d, [r9 - 0xf]
cmp r9d, 0xf
jl 0x140029c4e
mov eax, 0x80808081
lea edi, [r9 + 1]
imul r10d
add edx, r10d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add edi, edx
lea edx, [r9 + 1]
mov r11d, edx
cmp edx, 0xf
jl 0x140029c79
lea r8d, [rdx - 0xf]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
add edx, 2
shr eax, 0x1f
add edx, eax
add edx, r9d
mov rbp, qword [rsp + 0x70]
sub edx, edi
mov ebx, dword [rsi + r14]
add edx, ebx
lea rax, [rbp + 1]
add rax, rax
cmp edx, dword [r14 + rax*8]
jge 0x140029cb2
mov dword [r14 + rax*8 + 8], 1
mov dword [r14 + rax*8 + 4], 0
mov dword [r14 + rax*8 + 0xc], r11d
mov dword [r14 + rax*8], edx
mov ebx, dword [rsi + r14]
mov esi, r9d
cmp r9d, 0xf
jl 0x140029cd6
mov eax, 0x80808081
lea esi, [r9 + 1]
imul r10d
add edx, r10d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add esi, edx
lea edi, [r11 + 1]
mov edx, edi
cmp edi, 0xf
jl 0x140029d00
lea r8d, [r11 - 0xe]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
add edx, 3
shr eax, 0x1f
add edx, eax
add edx, r9d
sub edx, esi
lea rax, [rbp + 2]
mov rsi, qword [rsp + 0x98]
add rax, rax
add edx, ebx
cmp edx, dword [r14 + rax*8]
jge 0x140029d38
mov dword [r14 + rax*8 + 8], 1
mov dword [r14 + rax*8 + 4], 0
mov dword [r14 + rax*8 + 0xc], edi
mov dword [r14 + rax*8], edx
mov ebx, dword [rsi + r14]
mov edi, r9d
cmp r9d, 0xf
jl 0x140029d5c
mov eax, 0x80808081
lea edi, [r9 + 1]
imul r10d
add edx, r10d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add edi, edx
lea r10d, [r11 + 2]
mov edx, r10d
cmp r10d, 0xf
jl 0x140029d88
lea r8d, [r11 - 0xd]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
add edx, 4
shr eax, 0x1f
add edx, eax
add edx, r9d
sub edx, edi
lea rax, [rbp + 3]
add rax, rax
add edx, ebx
xor r8d, r8d
cmp edx, dword [r14 + rax*8]
jge 0x140029db3
mov dword [r14 + rax*8 + 8], 1
mov dword [r14 + rax*8 + 4], r8d
mov dword [r14 + rax*8 + 0xc], r10d
mov dword [r14 + rax*8], edx
movsxd r15, dword [rsp + 0xa4]
mov ebp, 4
mov ebx, dword [rsp + 0x60]
cmp rbp, r15
jg 0x140029f14
lea r11, [r14 + 0x44]
mov r12d, 0xffffffed
add r11, rsi
lea r9d, [r13 + 4]
sub r12d, r13d
mov r14d, r13d
neg r14d
nop word [rax + rax]
mov rdi, qword [rsp + 0x88]
cmp dword [rsi + rdi + 8], 1
jne 0x140029e83
mov r10d, dword [rsi + rdi + 0xc]
cmp r13d, r10d
jle 0x140029e1e
mov eax, r13d
sub eax, r10d
movsxd rdx, eax
add rdx, rdx
mov esi, dword [rdi + rdx*8]
jmp 0x140029e21
mov esi, r8d
mov ebx, r10d
cmp r10d, 0xf
jl 0x140029e49
lea r8d, [r10 - 0xf]
mov eax, 0x80808081
imul r8d
lea ebx, [r10 + 1]
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add ebx, edx
add ebx, 3
lea edi, [r14 + r9]
cmp edi, 0x13
jl 0x140029e72
lea r8d, [r12 + r9]
mov eax, 0x80808081
imul r8d
inc ebx
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add ebx, edx
lea edx, [rsi + rbx]
mov ebx, dword [rsp + 0x60]
mov rsi, qword [rsp + 0x98]
jmp 0x140029ebd
lea edi, [r14 + r9]
mov r10d, r8d
mov edx, 3
cmp edi, 0x13
jl 0x140029eb0
lea r8d, [r12 + r9]
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, 4
add edx, eax
mov rax, qword [rsp + 0x88]
mov eax, dword [rsi + rax]
add edx, eax
lea eax, [rbx + 3]
cmp r9d, eax
jg 0x140029ed4
mov eax, dword [r11 - 4]
sub eax, dword [rsp + 0x190]
cmp edx, eax
jg 0x140029ef3
cmp rbp, r15
jne 0x140029ee4
cmp ebx, r9d
cmovl ebx, r9d
mov dword [rsp + 0x60], ebx
mov dword [r11 + 4], edi
mov dword [r11], ecx
mov dword [r11 + 8], r10d
mov dword [r11 - 4], edx
inc r9d
inc rbp
add r11, 0x10
mov r8d, 0
cmp rbp, r15
jle 0x140029df0
mov r14, qword [rsp + 0x88]
xor r12d, r12d
movsxd rcx, ebx
mov rdx, rcx
add rdx, rdx
lea r8, [rcx + 1]
mov rcx, r8
shl rcx, 4
add rcx, r14
mov dword [rcx + 8], 1
mov dword [rcx + 4], r12d
mov dword [rcx + 0xc], 1
mov eax, dword [r14 + rdx*8]
inc eax
mov dword [rcx + 0x18], 1
mov dword [rcx], eax
mov dword [rcx + 0x14], r12d
mov dword [rcx + 0x1c], 2
mov eax, dword [r14 + rdx*8]
add eax, 2
mov dword [rcx + 0x28], 1
mov dword [rcx + 0x10], eax
lea rax, [r8 + 2]
mov dword [rcx + 0x24], r12d
mov dword [rcx + 0x2c], 3
mov ecx, dword [r14 + rdx*8]
add ecx, 3
add rax, rax
mov dword [r14 + rax*8], ecx
jmp 0x140029f99
mov ebx, dword [rsp + 0x60]
xor r12d, r12d
mov r14, qword [rsp + 0x88]
mov rax, qword [rsp + 0x70]
inc r13d
inc rax
mov dword [rsp + 0x64], r13d
mov qword [rsp + 0x70], rax
cmp r13d, ebx
jl 0x1400284d0
movsxd rax, ebx
mov r13d, ebx
add rax, rax
mov edx, dword [r14 + rax*8 + 8]
sub r13d, edx
mov r9d, dword [r14 + rax*8 + 4]
movsxd rax, r13d
add rax, rax
mov r8d, dword [r14 + rax*8 + 8]
mov r10d, dword [r14 + rax*8 + 4]
mov dword [r14 + rax*8 + 8], edx
mov edx, r8d
mov dword [r14 + rax*8 + 4], r9d
cmp r8d, r13d
jg 0x14002a016
nop
sub r13d, r8d
movsxd rcx, r13d
shl rcx, 4
add rcx, r14
mov r8d, dword [rcx + 8]
mov eax, dword [rcx + 4]
mov dword [rcx + 8], edx
mov edx, r8d
mov dword [rcx + 4], r10d
mov r10d, eax
cmp r8d, r13d
jle 0x140029ff0
xor r8d, r8d
mov r15d, r8d
test ebx, ebx
jle 0x14002a262
nop dword [rax]
nop dword [rax + rax]
mov r11, qword [rsp + 0x58]
movsxd rax, r15d
add rax, rax
movsxd r13, dword [r14 + rax*8 + 8]
cmp r13d, 1
jne 0x14002a073
mov r10, qword [rsp + 0x80]
inc r11
mov r9, qword [rsp + 0x78]
inc r15d
jmp 0x14002a24f
mov r14, qword [rsp + 0x88]
lea ebx, [r13 + 1]
mov dword [rsp + 0x60], ebx
jmp 0x140029fcd
mov rcx, qword [rsp + 0x80]
mov rbp, r11
movsxd rax, dword [r14 + rax*8 + 4]
mov r9, rcx
sub rbp, rax
mov qword [rsp + 0x70], rcx
mov r14, rcx
mov qword [rsp + 0x98], rbp
lea r12, [rcx + 1]
mov rsi, r11
mov rcx, qword [rsp + 0x78]
add r15d, r13d
sub rsi, rcx
mov rdi, r12
cmp dword [rsp + 0x178], 0
movabs r8, 0x8080808080808081
je 0x14002a0e5
mov rax, r8
mul rsi
lea rax, [r12 + 8]
shr rdx, 7
add rdx, rsi
add rax, rdx
cmp rax, qword [rsp + 0xb8]
ja 0x14002a279
cmp rsi, 0xf
jb 0x14002a144
lea rbp, [rsi - 0xf]
mov byte [r14], 0xf0
cmp rbp, 0xff
jb 0x14002a134
mov rax, r8
mov rcx, rdi
mul rbp
mov rbx, rdx
mov dl, 0xff
shr rbx, 7
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov r11, qword [rsp + 0x58]
add rdi, rbx
mov rcx, qword [rsp + 0x78]
mov r9, r14
imul rax, rbx, 0xffffffffffffff01
mov ebx, dword [rsp + 0x60]
add rbp, rax
mov byte [rdi], bpl
inc rdi
mov rbp, qword [rsp + 0x98]
jmp 0x14002a14e
movzx eax, sil
shl al, 4
mov byte [r14], al
lea r10, [rsi + rdi]
sub rcx, rdi
nop word [rax + rax]
mov rax, qword [rcx + rdi]
mov qword [rdi], rax
add rdi, 8
cmp rdi, r10
jb 0x14002a160
movzx edx, r11w
mov rcx, r10
sub dx, bp
call fcn.14002b480
add r10, 2
lea rcx, [r13 - 4]
cmp dword [rsp + 0x178], 0
movabs rdi, 0x8080808080808081
mov qword [rsp + 0x80], r10
je 0x14002a1c2
mov rax, rdi
mul rcx
lea rax, [r10 + 6]
shr rdx, 7
add rax, rdx
cmp rax, qword [rsp + 0xb8]
ja 0x14002a279
movzx eax, byte [r9]
cmp rcx, 0xf
jb 0x14002a237
add al, 0xf
sub rcx, 0xf
mov byte [r14], al
cmp rcx, 0x1fe
jb 0x14002a210
mov rax, rdi
mul rcx
shr rdx, 8
imul rax, rdx, 0xfffffffffffffe02
add rcx, rax
nop dword [rax]
nop word [rax + rax]
mov word [r10], 0xffff
add r10, 2
sub rdx, 1
jne 0x14002a200
cmp rcx, 0xff
jb 0x14002a227
sub rcx, 0xff
mov byte [r10], 0xff
inc r10
mov byte [r10], cl
inc r10
mov qword [rsp + 0x80], r10
jmp 0x14002a23c
add cl, al
mov byte [r14], cl
mov r14, qword [rsp + 0x88]
add r11, r13
mov r9, r11
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x58], r11
cmp r15d, ebx
jl 0x14002a030
jmp 0x1400280ad
mov r10, qword [rsp + 0x80]
mov r11, qword [rsp + 0x58]
mov r9, qword [rsp + 0x78]
jmp 0x1400280b0
mov ebx, dword [rsp + 0x178]
mov r15d, r13d
cmp ebx, 2
jne 0x14002a584
mov r9, qword [rsp + 0x70]
lea rcx, [rsi + 0xf0]
mov rbx, qword [rsp + 0xb8]
lea r8, [rsi + 1]
movabs r13, 0x8080808080808081
mov r10, r9
mov rax, r13
mul rcx
lea rcx, [rbx - 3]
shr rdx, 7
add r8, rdx
lea rax, [r8 + r9]
cmp rax, rcx
ja 0x14002a466
sub rcx, r8
movsxd rax, r15d
sub rcx, r9
imul rcx, rcx, 0xff
add rcx, 0x12
cmp rax, rcx
mov rax, rbx
cmovbe ecx, r15d
sub rax, r8
sub rax, r9
movsxd r14, ecx
add rax, 2
add rax, r14
cmp rax, 0xc
jl 0x14002a466
cmp rsi, 0xf
jb 0x14002a356
lea rdi, [rsi - 0xf]
mov byte [r9], 0xf0
cmp rdi, 0xff
jb 0x14002a34d
mov rax, r13
mov rcx, r12
mul rdi
mov rbx, rdx
mov dl, 0xff
shr rbx, 7
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
imul rax, rbx, 0xffffffffffffff01
add r12, rbx
mov rbx, qword [rsp + 0xb8]
add rdi, rax
mov byte [r12], dil
inc r12
jmp 0x14002a360
movzx eax, sil
shl al, 4
mov byte [r9], al
mov r9, qword [rsp + 0x78]
lea r10, [rsi + r12]
sub r9, r12
nop dword [rax]
mov rax, qword [r9 + r12]
mov qword [r12], rax
add r12, 8
cmp r12, r10
jb 0x14002a370
mov r8, qword [rsp + 0x58]
mov rcx, r10
movzx edx, r8w
sub dx, bp
call fcn.14002b480
mov r9, qword [rsp + 0x70]
lea rcx, [r14 - 4]
add r10, 2
movzx eax, byte [r9]
cmp rcx, 0xf
jb 0x14002a40f
add al, 0xf
sub rcx, 0xf
mov byte [r9], al
cmp rcx, 0x1fe
jb 0x14002a3f0
mov rax, r13
mul rcx
shr rdx, 8
imul rax, rdx, 0xfffffffffffffe02
add rcx, rax
nop dword [rax]
nop word [rax + rax]
mov word [r10], 0xffff
add r10, 2
sub rdx, 1
jne 0x14002a3e0
cmp rcx, 0xff
jb 0x14002a407
sub rcx, 0xff
mov byte [r10], 0xff
inc r10
mov byte [r10], cl
inc r10
jmp 0x14002a414
add cl, al
mov byte [r9], cl
mov r15, qword [rsp + 0x40]
lea r9, [r14 + r8]
mov r14, qword [rsp + 0x88]
sub r15, r9
mov r11d, dword [rsp + 0x178]
mov rax, r13
mov qword [rsp + 0x78], r9
mov r8, r10
lea rcx, [r15 + 0xf0]
mul rcx
lea rcx, [rbx + 5]
shr rdx, 7
add rdx, r15
jmp 0x14002a4ab
mov rbx, qword [rsp + 0xb8]
movabs r13, 0x8080808080808081
jmp 0x14002a46b
mov r9, qword [rsp + 0x78]
mov r14, qword [rsp + 0x88]
mov r15, qword [rsp + 0x40]
mov r11d, dword [rsp + 0x178]
sub r15, r9
mov rax, r13
mov r8, r10
lea rcx, [r15 + 0xf0]
mul rcx
lea rcx, [rbx + 5]
shr rdx, 7
add rdx, r15
cmp r11d, 2
cmovne rcx, rbx
test r11d, r11d
je 0x14002a4d8
lea rax, [r10 + 1]
add rax, rdx
cmp rax, rcx
jbe 0x14002a4d8
cmp r11d, 1
je 0x14002a58c
mov r15, rcx
sub r15, r10
dec r15
lea rax, [r15 + 0xf1]
shr rax, 8
sub r15, rax
lea rsi, [r15 + r9]
cmp r15, 0xf
jb 0x14002a53a
mov byte [r10], 0xf0
lea rdi, [r15 - 0xf]
inc r10
mov qword [rsp + 0x80], r10
cmp rdi, 0xff
jb 0x14002a532
mov rax, r13
mov rcx, r10
mul rdi
mov rbx, rdx
mov dl, 0xff
shr rbx, 7
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov r10, qword [rsp + 0x80]
mov r9, qword [rsp + 0x78]
add r10, rbx
imul rax, rbx, 0xffffffffffffff01
add rdi, rax
mov r8, r10
mov byte [r10], dil
jmp 0x14002a544
movzx eax, r15b
shl al, 4
mov byte [r10], al
inc r10
lea rcx, [r8 + 1]
mov r8, r15
mov qword [rsp + 0x80], r10
mov rdx, r9
call sub.VCRUNTIME140.dll_memcpy
sub esi, dword [rsp + 0x148]
mov rax, qword [rsp + 0x158]
sub r15d, dword [rsp + 0x150]
mov rbx, qword [rsp + 0x80]
add ebx, r15d
mov dword [rax], esi
jmp 0x14002a58e
mov r14, qword [rsp + 0x88]
xor ebx, ebx
mov r13, qword [rsp + 0xf8]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, ebx
add rsp, 0x100
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret