Function at 0x140111fa0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x10], edx
mov r11, rsp
mov qword [r11 + 8], rcx
push rbp
push rbx
push rsi
lea rbp, [r11 - 0x228]
sub rsp, 0x310
mov eax, 0x200
xorps xmm0, xmm0
mov ebx, edx
mov rsi, rcx
movdqu xmmword [rbp - 0x30], xmm0
cmp word [rcx + 0x16], ax
jb 0x140114483
cmp word [rcx + 0x14], ax
jb 0x140114483
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
xor r12d, r12d
mov r9d, r12d
lea ecx, [r9 + 6]
mov eax, 0x2aaaaaab
imul ecx
mov edi, r12d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, 0x44
lea r8, [rax + rax*2]
add r8, r8
nop word [rax + rax]
lea ecx, [rdi + 6]
mov eax, 0x2aaaaaab
imul ecx
inc edi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, r8
movsx rcx, byte [rax + rsi]
inc dword [rbp + rcx*4 - 0x30]
cmp edi, 6
jl 0x140112020
inc r9d
cmp r9d, 6
jl 0x140111ff0
mov eax, dword [rbp - 0x30]
add eax, 0xfffffffa
cmp eax, 4
ja 0x1401144dd
mov eax, dword [rbp - 0x2c]
add eax, 0xfffffff0
cmp eax, 8
ja 0x1401144dd
mov eax, dword [rbp - 0x28]
add eax, 0xfffffffa
cmp eax, 4
ja 0x1401144dd
cmp dword [rbp - 0x24], r12d
jne 0x1401144dd
mov qword [rsp + 0x2f8], r13
lea rdi, [rbp + 0xa0]
mov eax, 0x7fbc
mov qword [rsp + 0x2f0], r14
movsx rax, ax
mov ecx, 0x90
rep stosw word [rdi], ax
mov rcx, rsi
mov qword [rsp + 0x2e8], r15
xor r8d, r8d
xor edx, edx
call fcn.140111c30
mov eax, 0x1780000
cmp ebx, 1
mov edx, 0xc80000
mov rcx, rsi
cmovg edx, eax
call fcn.1400fa240
lea r8, str.xtrans_interpolate__
mov qword [rbp - 0x60], rax
mov rdx, rax
mov rcx, rsi
mov rdi, rax
call fcn.1400fa510
cmp ebx, 1
mov dword [rsp + 0x24], r12d
mov eax, 0xc00000
mov dword [rsp + 0x20], r12d
mov ecx, 0x600000
mov dword [rsp + 0x48], r12d
cmovg ecx, eax
mov qword [rsp + 0x38], r12
mov qword [rbp], rcx
mov r10d, r12d
mov r11d, r12d
mov r14d, r12d
lea rax, [rcx + rdi]
mov qword [rbp + 0x10], rax
lea rax, [rcx + 0x180000]
add rax, rdi
mov ecx, 0x1580000
mov qword [rbp - 0x38], rax
cmp ebx, 1
mov eax, 0xb80000
cmovg eax, ecx
add rax, rdi
mov qword [rbp - 0x20], rax
jmp 0x140112167
mov rsi, qword [rbp + 0x230]
lea ecx, [r14 + 6]
mov dword [rsp + 0x2c], r12d
mov eax, 0x2aaaaaab
mov qword [rbp - 0x70], r12
imul ecx
mov r13d, r12d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, 0x44
lea rdi, [rax + rax*2]
add rdi, rdi
mov qword [rsp + 0x30], rdi
jmp 0x1401121b7
mov rsi, qword [rbp + 0x230]
lea ecx, [r13 + 6]
mov qword [rsp + 0x50], r12
mov eax, 0x2aaaaaab
mov r15d, r12d
imul ecx
mov r9d, 5
mov ebx, r12d
mov eax, edx
mov qword [rsp + 0x60], r9
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, rdi
movzx r8d, byte [rax + rsi]
lea rsi, [0x140374eae]
cmp r8b, 1
mov byte [rbp + 0x240], r8b
sete r15b
inc r15d
mov dword [rbp - 0x78], r15d
nop
movsx ecx, word [rsi - 6]
mov eax, 0x2aaaaaab
add ecx, 6
add ecx, r14d
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
movsx ecx, word [rsi - 2]
add rax, 0x44
add ecx, 6
add ecx, r13d
lea rdi, [rax + rax*2]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov rdx, qword [rbp + 0x230]
add eax, eax
sub ecx, eax
lea eax, [rbx + 1]
xor ebx, ebx
movsxd rcx, ecx
add rcx, rdx
cmp byte [rcx + rdi*2], 1
cmovne ebx, eax
movzx eax, r13w
cmp ebx, 4
mov dword [rsp + 0x4c], ebx
cmovne ax, word [rsp + 0x28]
movzx ecx, ax
mov word [rsp + 0x28], ax
movzx eax, r14w
cmovne ax, word [rbp + 0x248]
mov word [rbp + 0x248], ax
cmp ebx, r15d
jne 0x1401125ac
mov r15, qword [rsp + 0x38]
xor edx, edx
movsx r13d, word [rsi - 6]
cmp r8b, 1
mov edi, 2
mov eax, 0x20
mov r14d, edx
mov qword [rbp - 0x40], rdi
cmove r14d, edi
mov r9d, edx
add r15, qword [rbp - 0x70]
and r14, r12
movsx r12d, word [rsi - 4]
mov ebx, edi
shl r15, 4
cmp r8b, 1
cmove r9d, eax
lea rax, [0x140374ec0]
add r9, rax
nop dword [rax]
nop word [rax + rax]
movsx ecx, word [r9 + 2]
movsx edx, word [r9]
mov r8d, ecx
mov edi, ecx
imul r8d, r12d
mov eax, edx
mov ecx, edx
imul eax, r13d
lea rdx, [rbx - 2]
add r8d, eax
mov eax, dword [rsp + 0x24]
cmp r8d, r10d
cmovl r10d, r8d
cmp r8d, eax
cmovg eax, r8d
cmp r8d, r11d
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
cmovl r11d, r8d
cmp r8d, eax
cmovg eax, r8d
xor rdx, r14
mov dword [rsp + 0x20], eax
add rdx, r15
movsx eax, word [rsi]
imul edi, eax
movsx eax, word [rsi - 2]
imul ecx, eax
movsx eax, r8w
add di, cx
mov rcx, qword [rbp + 0x230]
movsx ecx, word [rcx + 0x16]
imul ecx, eax
mov eax, 0x200
cwde
add cx, di
mov word [rbp + rdx*2 + 0xa0], cx
movsx ecx, r8w
imul ecx, eax
add cx, di
mov word [rbp + rdx*2 + 0xb0], cx
movsx ecx, word [r9 + 4]
movsx edx, word [r9 + 6]
mov eax, ecx
imul eax, r13d
mov edi, ecx
mov ecx, edx
mov r8d, edx
imul r8d, r12d
lea rdx, [rbx - 1]
add r8d, eax
mov eax, dword [rsp + 0x24]
cmp r8d, r10d
cmovl r10d, r8d
cmp r8d, eax
cmovg eax, r8d
cmp r8d, r11d
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
cmovl r11d, r8d
cmp r8d, eax
cmovg eax, r8d
xor rdx, r14
mov dword [rsp + 0x20], eax
add rdx, r15
movsx eax, word [rsi - 2]
imul edi, eax
movsx eax, word [rsi]
imul ecx, eax
movsx eax, r8w
add di, cx
mov rcx, qword [rbp + 0x230]
movsx ecx, word [rcx + 0x16]
imul ecx, eax
mov eax, 0x200
cwde
add cx, di
mov word [rbp + rdx*2 + 0xa0], cx
movsx ecx, r8w
imul ecx, eax
add cx, di
mov word [rbp + rdx*2 + 0xb0], cx
movsx ecx, word [r9 + 8]
movsx edx, word [r9 + 0xa]
mov eax, ecx
imul eax, r13d
mov edi, ecx
mov ecx, edx
mov r8d, edx
imul r8d, r12d
mov rdx, rbx
add r8d, eax
mov eax, dword [rsp + 0x24]
cmp r8d, r10d
cmovl r10d, r8d
cmp r8d, eax
cmovg eax, r8d
cmp r8d, r11d
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
cmovl r11d, r8d
cmp r8d, eax
cmovg eax, r8d
xor rdx, r14
mov dword [rsp + 0x20], eax
add rdx, r15
movsx eax, word [rsi - 2]
imul edi, eax
movsx eax, word [rsi]
imul ecx, eax
movsx eax, r8w
add di, cx
mov rcx, qword [rbp + 0x230]
movsx ecx, word [rcx + 0x16]
imul ecx, eax
mov eax, 0x200
cwde
add cx, di
mov word [rbp + rdx*2 + 0xa0], cx
movsx ecx, r8w
imul ecx, eax
add cx, di
mov word [rbp + rdx*2 + 0xb0], cx
movsx ecx, word [r9 + 0xc]
movsx edx, word [r9 + 0xe]
mov eax, ecx
imul eax, r13d
mov edi, ecx
mov ecx, edx
mov r8d, edx
imul r8d, r12d
lea rdx, [rbx + 1]
add r8d, eax
mov eax, dword [rsp + 0x24]
cmp r8d, r10d
cmovl r10d, r8d
cmp r8d, eax
cmovg eax, r8d
cmp r8d, r11d
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
cmovl r11d, r8d
cmp r8d, eax
cmovg eax, r8d
xor rdx, r14
mov dword [rsp + 0x20], eax
add rdx, r15
movsx eax, word [rsi - 2]
imul edi, eax
movsx eax, word [rsi]
imul ecx, eax
movsx eax, r8w
add di, cx
mov rcx, qword [rbp + 0x230]
movsx ecx, word [rcx + 0x16]
imul ecx, eax
mov eax, 0x200
cwde
add cx, di
mov word [rbp + rdx*2 + 0xa0], cx
movsx ecx, r8w
imul ecx, eax
add cx, di
lea r9, [r9 + 0x10]
add rbx, 4
mov word [rbp + rdx*2 + 0xb0], cx
sub qword [rbp - 0x40], 1
jne 0x140112300
mov ebx, dword [rsp + 0x4c]
mov r12, qword [rsp + 0x50]
mov r13d, dword [rsp + 0x2c]
movzx r8d, byte [rbp + 0x240]
mov r9, qword [rsp + 0x60]
mov r14d, dword [rsp + 0x48]
mov r15d, dword [rbp - 0x78]
mov rdx, qword [rbp + 0x230]
movzx ecx, word [rsp + 0x28]
movzx eax, word [rbp + 0x248]
add r12, 2
add rsi, 4
sub r9, 1
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r9
jne 0x140112210
inc qword [rbp - 0x70]
inc r13d
mov rdi, qword [rsp + 0x30]
mov r12d, 0
mov word [rbp + 0x248], ax
mov word [rsp + 0x28], cx
mov dword [rsp + 0x2c], r13d
cmp r13d, 3
jl 0x1401121b0
add qword [rsp + 0x38], 3
inc r14d
mov dword [rsp + 0x48], r14d
cmp r14d, 3
jl 0x140112160
movzx r14d, word [rdx + 0x16]
lea r13, [rbp + 0xa0]
mov r9d, dword [rsp + 0x20]
xor edi, edi
mov eax, r14d
mov dword [rbp + 0x240], edi
imul eax, dword [rsp + 0x24]
inc r9d
mov r8d, r14d
add r9d, eax
nop word [rax + rax]
mov r12d, edi
mov r15, r13
nop word [rax + rax]
mov esi, edi
mov rbx, r15
mov edx, edi
mov rcx, rbx
nop word [rax + rax]
movsx edi, word [rcx]
cmp edi, r9d
jg 0x1401144bf
mov eax, r14d
imul eax, r10d
dec eax
add eax, r11d
cmp edi, eax
jl 0x1401144bf
inc edx
add rcx, 2
cmp edx, 8
jl 0x140112660
inc esi
add rbx, 0x10
mov edi, 0
cmp esi, 2
jl 0x140112655
inc r12d
add r15, 0x20
cmp r12d, 3
jl 0x140112650
mov edx, dword [rbp + 0x240]
add r13, 0x60
inc edx
mov dword [rbp + 0x240], edx
cmp edx, 3
jl 0x140112640
mov rdi, qword [rbp + 0x230]
xor ebx, ebx
mov r10d, 2
mov r13d, ebx
mov r11d, r10d
mov ecx, 0xffff
movzx edx, word [rdi + 0x14]
lea r15d, [rbx + 8]
lea eax, [rdx - 2]
cmp eax, r10d
jle 0x14011298a
lea eax, [r8 - 2]
movzx r12d, bx
movzx r9d, cx
cmp eax, 2
jle 0x140112970
mov esi, r15d
lea r15d, [r11 + 6]
nop dword [rax]
mov r8, qword [rbp + 0x230]
mov eax, 0x2aaaaaab
imul r15d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r15d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
mov eax, 0x2aaaaaab
imul esi
add rcx, 0x44
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
lea rdi, [rcx + rcx*2]
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
add rcx, r8
cmp byte [rcx + rdi*2], 1
jne 0x14011276e
mov ecx, 0xffff
mov r12d, ebx
mov r9d, ecx
jmp 0x140112949
movzx eax, r14w
imul eax, r11d
movsxd rcx, eax
movsxd rax, r10d
add rcx, rax
mov rax, qword [r8 + 8]
lea r14, [rax + rcx*8]
mov eax, 0x55555556
imul r11d
mov ecx, r11d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r10d
lea rbx, [rax + rax*2]
mov eax, 0x55555556
imul r10d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
add rbx, rax
shl rbx, 5
test r12w, r12w
jne 0x1401128b0
movsx rax, word [rbp + rbx + 0xa0]
movzx r8d, word [r14 + rax*8 + 2]
cmp r9w, r8w
movzx edx, r8w
cmovbe dx, r9w
xor eax, eax
cmp ax, r8w
cmovae r8w, ax
movsx rax, word [rbp + rbx + 0xa2]
movzx edi, word [r14 + rax*8 + 2]
movsx rax, word [rbp + rbx + 0xa4]
cmp dx, di
movzx ecx, di
cmovbe cx, dx
cmp r8w, di
cmovae di, r8w
movzx r8d, word [r14 + rax*8 + 2]
movsx rax, word [rbp + rbx + 0xa6]
cmp cx, r8w
movzx edx, r8w
cmovbe dx, cx
cmp di, r8w
movzx r9d, word [r14 + rax*8 + 2]
cmovae r8w, di
movsx rax, word [rbp + rbx + 0xa8]
cmp dx, r9w
movzx ecx, r9w
cmovbe cx, dx
cmp r8w, r9w
movzx edx, word [r14 + rax*8 + 2]
cmovae r9w, r8w
movsx rax, word [rbp + rbx + 0xaa]
cmp cx, dx
mov r8, qword [rbp + 0x230]
movzx edi, dx
cmovbe di, cx
cmp r9w, dx
movzx ecx, word [r14 + rax*8 + 2]
cmovae dx, r9w
cmp dx, cx
movzx r12d, cx
cmovae r12w, dx
cmp di, cx
cmovbe cx, di
movzx r9d, cx
movzx eax, word [rbp + 0x248]
mov ecx, r11d
sub ecx, eax
mov word [r14 + 2], r9w
mov eax, 0x55555556
mov word [r14 + 6], r12w
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
sub ecx, 1
je 0x14011292a
xor ebx, ebx
cmp ecx, 1
mov ecx, 0xffff
jne 0x140112949
movzx edx, word [r8 + 0x16]
add r10d, 2
add esi, 2
movzx r12d, bx
movzx r9d, cx
lea eax, [rdx - 3]
cmp r10d, eax
jge 0x140112949
cmp r11d, 2
jle 0x140112949
movzx ecx, word [r8 + 0x14]
mov eax, r13d
imul ecx, edx
dec r11d
dec r15d
inc r13d
cmp eax, ecx
jg 0x1401144a1
jmp 0x140112944
movzx eax, word [r8 + 0x14]
sub eax, 3
cmp r11d, eax
jge 0x140112942
inc r11d
inc r15d
dec r10d
dec esi
xor ebx, ebx
mov ecx, 0xffff
movzx r14d, word [r8 + 0x16]
inc r10d
inc esi
mov r8d, r14d
lea eax, [r14 - 2]
cmp r10d, eax
jl 0x140112710
mov rdi, qword [rbp + 0x230]
mov r15d, 8
movzx edx, word [rdi + 0x14]
inc r11d
lea eax, [rdx - 2]
cmp r11d, eax
jge 0x14011298a
mov r10d, 2
jmp 0x1401126f1
mov r10d, 3
movzx eax, dx
sub eax, 0x13
mov dword [rsp + 0x24], r10d
cmp eax, r10d
jle 0x140114438
mov r14, qword [rbp + 0x230]
lea edi, [r10 + 1]
movaps xmmword [rsp + 0x2d0], xmm6
mov r8d, 0x200000
movss xmm6, dword [0x140326800]
movaps xmmword [rsp + 0x2c0], xmm7
movss xmm7, dword [0x14031b73c]
jmp 0x1401129e6
mov r15d, 8
movzx ecx, word [r14 + 0x16]
mov esi, 3
mov dword [rsp + 0x20], esi
lea eax, [rcx - 0x13]
cmp eax, esi
jle 0x1401143f7
cmp dword [rbp + 0x238], 1
lea r9d, [r10 + 0x200]
mov r12, qword [rbp - 0x60]
mov rax, rdi
cmovg rax, r15
mov qword [rbp + 8], rax
mov eax, 0x100000
cmovg rax, r8
mov qword [rbp + 0x18], rax
lea r11, [r12 + 0x180000]
mov rax, rdi
mov qword [rbp - 0x30], r11
movzx edi, word [r14 + 0x14]
cmovg rax, r15
mov qword [rbp - 0x70], rax
cmp r10d, 8
mov eax, r15d
cmovl eax, r10d
mov dword [rbp - 0x40], eax
jmp 0x140112a64
mov r12, qword [rbp - 0x60]
mov r15d, dword [rsp + 0x20]
mov r13d, r9d
movzx eax, di
add eax, 0xfffffffd
cmp r9d, eax
mov r9d, r10d
cmovge r13d, eax
add esi, 0x200
movzx eax, cx
add eax, 0xfffffffd
mov dword [rsp + 0x48], r13d
cmp esi, eax
cmovge esi, eax
mov dword [rbp + 0x240], esi
cmp r10d, r13d
jge 0x140112af6
nop dword [rax]
mov r8d, r15d
cmp r15d, esi
jge 0x140112aee
mov eax, r9d
sub eax, r10d
cdqe
lea rdi, [rax + rax*2]
shl rdi, 0xa
add rdi, r12
nop dword [rax + rax]
mov rcx, qword [r14 + 8]
lea rdi, [rdi + 6]
movzx eax, word [r14 + 0x16]
imul eax, r9d
add eax, r8d
inc r8d
movsxd rdx, eax
mov eax, dword [rcx + rdx*8]
mov dword [rdi - 6], eax
movzx eax, word [rcx + rdx*8 + 4]
mov word [rdi - 2], ax
cmp r8d, esi
jl 0x140112ac0
inc r9d
cmp r9d, r13d
jl 0x140112aa0
mov rdi, r11
mov ebx, 3
nop
mov r8d, 0x180000
mov rdx, r12
mov rcx, rdi
call fcn.1402d15b0
add rdi, 0x180000
sub rbx, 1
jne 0x140112b00
mov r10d, dword [rsp + 0x24]
mov r8d, r10d
mov dword [rsp + 0x2c], r10d
cmp r10d, r13d
jge 0x140112ee0
lea ecx, [r10 + 6]
mov dword [rbp - 0x78], ecx
nop dword [rax + rax]
mov r13d, r15d
cmp r15d, esi
jge 0x140112eca
movsxd r9, dword [rsp + 0x20]
mov eax, r8d
sub eax, r10d
mov qword [rsp + 0x40], r9
add ecx, eax
mov dword [rsp + 0x4c], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, 0x44
lea rdi, [rax + rax*2]
add rdi, rdi
xor eax, eax
mov qword [rsp + 0x30], rdi
mov r15d, eax
nop
lea ecx, [r13 + 6]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, rdi
movsx r10, byte [rax + r14]
cmp r10b, 1
je 0x140112eae
movzx eax, word [r14 + 0x16]
imul eax, r8d
movsxd rcx, eax
mov rax, qword [r14 + 8]
add rcx, r9
add rcx, r15
lea rbx, [rax + rcx*8]
mov ecx, r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r13d
lea r11, [rax + rax*2]
mov eax, 0x55555556
imul r13d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
add r11, rax
shl r11, 5
movsx r8, word [rbp + r11 + 0xa0]
movsx r9, word [rbp + r11 + 0xa2]
mov eax, r8d
add eax, eax
cdqe
movzx edx, word [rbx + rax*8 + 2]
mov eax, r9d
add eax, eax
cdqe
movzx ecx, word [rbx + rax*8 + 2]
add edx, ecx
movzx ecx, word [rbx + r9*8 + 2]
imul edi, edx, 0x2e
movzx edx, word [rbx + r8*8 + 2]
movzx r8d, word [rbx + r10*2]
add edx, ecx
imul r12d, edx, 0xae
mov rcx, r10
lea r9d, [r8 + r8]
mov edx, r9d
sub r12d, edi
movsx rdi, word [rbp + r11 + 0xa4]
mov dword [rbp + 0x60], r12d
lea rax, [rdi*4]
sub rcx, rax
movzx eax, word [rbx + rcx*2]
mov ecx, r8d
movsx r8, word [rbp + r11 + 0xa8]
sub ecx, eax
movsx rax, word [rbp + r11 + 0xa6]
imul r14d, ecx, 0x5c
movzx ecx, word [rbx + rax*8 + 2]
imul eax, ecx, 0xdf
add r14d, eax
movzx eax, word [rbx + rdi*8 + 2]
imul ecx, eax, 0x21
mov edi, r8d
lea eax, [r8 + r8*2]
add r14d, ecx
movsxd rcx, eax
mov dword [rbp + 0x64], r14d
lea rax, [r10 + rcx*4]
movzx ecx, word [rbx + rax*2]
sub edx, ecx
imul eax, r8d, 0xfffffffd
movsxd rcx, eax
lea rax, [r10 + rcx*4]
movzx ecx, word [rbx + rax*2]
sub edx, ecx
imul esi, edx, 0x21
neg edi
lea eax, [rdi + rdi]
cdqe
movzx ecx, word [rbx + rax*8 + 2]
movsx rdi, word [rbp + r11 + 0xaa]
imul eax, ecx, 0x5c
mov edx, edi
movzx ecx, word [rbx + r8*8 + 2]
neg edx
sar r12d, 8
add esi, eax
imul eax, ecx, 0xa4
add esi, eax
lea eax, [rdi + rdi*2]
movsxd rcx, eax
mov dword [rbp + 0x68], esi
lea rax, [r10 + rcx*4]
movzx ecx, word [rbx + rax*2]
sub r9d, ecx
imul eax, edi, 0xfffffffd
movsxd rcx, eax
lea rax, [r10 + rcx*4]
movzx ecx, word [rbx + rax*2]
lea eax, [rdx + rdx]
cdqe
sub r9d, ecx
imul r8d, r9d, 0x21
movsxd r9, dword [rsp + 0x4c]
movzx ecx, word [rbx + rax*8 + 2]
imul eax, ecx, 0x5c
movzx ecx, word [rbx + rdi*8 + 2]
mov edi, dword [rsp + 0x2c]
add r8d, eax
imul eax, ecx, 0xa4
movzx ecx, word [rbx + 2]
add r8d, eax
movzx eax, word [rbp + 0x248]
sub edi, eax
mov dword [rbp + 0x6c], r8d
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
movzx edx, word [rbx + 6]
sub edi, eax
mov eax, r12d
cmp r12d, edx
cmovge eax, edx
cmp ecx, eax
jg 0x140112da7
cmp r12d, edx
mov ecx, edx
cmovl ecx, r12d
mov r12, qword [rbp - 0x60]
xor eax, eax
test edi, edi
mov r10d, 0x200
cmove eax, r10d
sar r14d, 8
add rax, r9
shl rax, 9
add rax, r15
lea rax, [rax + rax*2]
mov word [r12 + rax*2 + 2], cx
mov eax, r14d
movzx ecx, word [rbx + 6]
movzx edx, word [rbx + 2]
cmp r14d, ecx
cmovge eax, ecx
cmp edx, eax
jg 0x140112def
cmp r14d, ecx
mov edx, ecx
cmovl edx, r14d
mov eax, edi
neg eax
sbb rcx, rcx
sar esi, 8
and rcx, r10
add rcx, r9
shl rcx, 9
add rcx, r15
lea rax, [rcx + rcx*2]
mov word [r12 + rax*2 + 2], dx
mov eax, esi
movzx edx, word [rbx + 6]
movzx ecx, word [rbx + 2]
cmp esi, edx
cmovge eax, edx
cmp ecx, eax
jg 0x140112e2a
cmp esi, edx
mov ecx, edx
cmovl ecx, esi
test edi, edi
mov r11d, 0x400
mov eax, r11d
mov r10d, 0x600
cmove eax, r10d
sar r8d, 8
add rax, r9
shl rax, 9
add rax, r15
lea rax, [rax + rax*2]
mov word [r12 + rax*2 + 2], cx
mov eax, r8d
movzx edx, word [rbx + 6]
movzx ecx, word [rbx + 2]
cmp r8d, edx
cmovge eax, edx
cmp ecx, eax
jg 0x140112e75
cmp r8d, edx
mov ecx, edx
cmovl ecx, r8d
mov r8d, dword [rsp + 0x2c]
test edi, edi
mov rdi, qword [rsp + 0x30]
mov rax, r10
mov r14, qword [rbp + 0x230]
cmove rax, r11
mov esi, dword [rbp + 0x240]
add rax, r9
mov r9, qword [rsp + 0x40]
shl rax, 9
add rax, r15
lea rax, [rax + rax*2]
mov word [r12 + rax*2 + 2], cx
inc r13d
inc r15
cmp r13d, esi
jl 0x140112b90
mov ecx, dword [rbp - 0x78]
mov r15d, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x24]
mov r13d, dword [rsp + 0x48]
inc r8d
mov dword [rsp + 0x2c], r8d
cmp r8d, r13d
jl 0x140112b40
xor eax, eax
mov r8d, eax
mov dword [rsp + 0x4c], eax
cmp dword [rbp + 0x238], eax
jle 0x140113c28
movzx edi, word [rbp + 0x248]
lea r15d, [r13 - 2]
mov ecx, r10d
mov dword [rsp + 0x2c], r15d
sub ecx, edi
lea r13d, [r10 + 2]
add ecx, 4
mov dword [rbp - 0x78], r13d
mov eax, 0x55555556
mov rbx, r12
imul ecx
mov qword [rsp + 0x38], rbx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdi + rdx*2]
add ecx, edx
mov dword [rbp - 0x58], ecx
jmp 0x140112f4c
mov r14, qword [rbp + 0x230]
mov r10d, dword [rsp + 0x24]
cmp r8d, 1
jne 0x140112f76
add rbx, 0x600000
mov r8d, 0x600000
mov rcx, rbx
mov qword [rsp + 0x38], rbx
mov rdx, r12
call fcn.1402d15b0
mov r10d, dword [rsp + 0x24]
jmp 0x140112f7f
test r8d, r8d
je 0x140113342
mov dword [rsp + 0x78], r13d
mov esi, r13d
cmp r13d, r15d
jge 0x14011333c
mov ecx, dword [rbp + 0x240]
lea edi, [r13 + 6]
mov r11d, dword [rsp + 0x20]
add ecx, 0xfffffffe
mov eax, r13d
mov dword [rsp + 0x68], edi
sub eax, r10d
movsxd r10, eax
lea r9d, [r11 + 2]
mov qword [rsp + 0x50], r10
mov dword [rsp + 0x58], r9d
nop dword [rax]
mov r13d, r9d
cmp r9d, ecx
jge 0x14011331a
mov eax, 0x2aaaaaab
movsxd r8, r9d
imul edi
mov qword [rsp + 0x70], r8
lea r12d, [r9 + 6]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
mov eax, r9d
add rcx, 0x44
lea rdi, [rcx + rcx*2]
add rdi, rdi
sub eax, r11d
mov qword [rsp + 0x40], rdi
movsxd r15, eax
nop dword [rax + rax]
mov eax, 0x2aaaaaab
imul r12d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r12d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
add rcx, rdi
movsx rdi, byte [rcx + r14]
cmp dil, 1
je 0x1401132df
movzx eax, word [r14 + 0x16]
mov r9, rdi
imul eax, esi
mov ecx, esi
mov r14, qword [r14 + 8]
movsxd rbx, eax
mov eax, 0x55555556
imul esi
add rbx, r8
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r13d
lea r11, [rax + rax*2]
mov eax, 0x55555556
imul r13d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
movzx ecx, word [rbp + 0x248]
add r11, rax
sub esi, ecx
shl r11, 5
mov eax, 0x55555556
mov qword [rsp + 0x30], r11
imul esi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub esi, eax
mov eax, esi
neg eax
mov eax, 0x200
sbb rcx, rcx
and rcx, rax
add rcx, r10
movzx r10d, word [r14 + rbx*8 + 6]
shl rcx, 9
add rcx, r15
lea rax, [rcx + rcx*2]
mov rcx, qword [rsp + 0x38]
lea rdx, [rcx + rax*2]
movsx rax, word [rbp + r11 + 0xb6]
mov ecx, eax
mov qword [rsp + 0x60], rdx
neg ecx
add ecx, ecx
movsxd r8, ecx
lea rcx, [rdi + rax*2]
mov rdi, qword [rsp + 0x60]
add rcx, rax
lea rax, [rax + rax*2]
movzx edi, word [rdi + rax*2 + 2]
movzx edx, word [rdx + rcx*2]
lea rcx, [r9 + r8*2]
sub edi, edx
add rcx, r8
mov rdx, qword [rsp + 0x60]
add edi, edi
movzx eax, word [rdx + rcx*2]
sub edi, eax
movzx eax, word [rdx + r9*2]
lea ecx, [rax + rax*2]
add edi, ecx
lea rax, [r8 + r8*2]
movzx ecx, word [rdx + rax*2 + 2]
mov eax, 0x55555556
add edi, ecx
movzx ecx, word [r14 + rbx*8 + 2]
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edx
cmp edx, r10d
cmovge eax, r10d
cmp ecx, eax
jg 0x140113162
cmp edx, r10d
mov ecx, r10d
cmovl ecx, edx
mov rdi, qword [rsp + 0x60]
test esi, esi
mov eax, 0x400
mov word [rdi + 2], cx
mov ecx, 0x600
cmove eax, ecx
mov rcx, qword [rsp + 0x38]
add rax, qword [rsp + 0x50]
shl rax, 9
add rax, r15
lea rax, [rax + rax*2]
lea r10, [rcx + rax*2]
movsx rax, word [rbp + r11 + 0xb8]
movzx r11d, word [r14 + rbx*8 + 6]
mov ecx, eax
neg ecx
add ecx, ecx
movsxd r8, ecx
lea rcx, [r9 + rax*2]
add rcx, rax
lea rax, [rax + rax*2]
movzx edi, word [r10 + rax*2 + 2]
movzx edx, word [r10 + rcx*2]
lea rcx, [r9 + r8*2]
sub edi, edx
add rcx, r8
add edi, edi
movzx eax, word [r10 + rcx*2]
sub edi, eax
movzx eax, word [r10 + r9*2]
lea ecx, [rax + rax*2]
add edi, ecx
lea rax, [r8 + r8*2]
movzx ecx, word [r10 + rax*2 + 2]
mov eax, 0x55555556
add edi, ecx
movzx ecx, word [r14 + rbx*8 + 2]
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, r11d
mov eax, edx
cmovge eax, r11d
cmp ecx, eax
jg 0x140113213
cmp edx, r11d
mov ecx, r11d
cmovl ecx, edx
mov word [r10 + 2], cx
test esi, esi
movzx r11d, word [r14 + rbx*8 + 6]
mov ecx, 0x400
mov eax, 0x600
cmove eax, ecx
mov rcx, qword [rsp + 0x38]
add rax, qword [rsp + 0x50]
shl rax, 9
add rax, r15
lea rax, [rax + rax*2]
lea r10, [rcx + rax*2]
mov rax, qword [rsp + 0x30]
movsx rax, word [rbp + rax + 0xba]
mov ecx, eax
neg ecx
add ecx, ecx
movsxd r8, ecx
lea rcx, [r9 + rax*2]
add rcx, rax
lea rax, [rax + rax*2]
movzx edi, word [r10 + rax*2 + 2]
movzx edx, word [r10 + rcx*2]
lea rcx, [r9 + r8*2]
sub edi, edx
add rcx, r8
add edi, edi
movzx eax, word [r10 + rcx*2]
sub edi, eax
movzx eax, word [r10 + r9*2]
lea ecx, [rax + rax*2]
add edi, ecx
lea rax, [r8 + r8*2]
movzx ecx, word [r10 + rax*2 + 2]
mov eax, 0x55555556
add edi, ecx
movzx ecx, word [r14 + rbx*8 + 2]
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, r11d
mov eax, edx
cmovge eax, r11d
cmp ecx, eax
jg 0x1401132c5
cmp edx, r11d
mov ecx, r11d
cmovl ecx, edx
mov r8, qword [rsp + 0x70]
mov esi, dword [rsp + 0x78]
mov r14, qword [rbp + 0x230]
mov word [r10 + 2], cx
mov r10, qword [rsp + 0x50]
mov ecx, dword [rbp + 0x240]
inc r8
mov rdi, qword [rsp + 0x40]
add ecx, 0xfffffffe
inc r13d
mov qword [rsp + 0x70], r8
inc r12d
inc r15
cmp r13d, ecx
jl 0x140113010
mov r9d, dword [rsp + 0x58]
mov edi, dword [rsp + 0x68]
mov r15d, dword [rsp + 0x2c]
mov r11d, dword [rsp + 0x20]
inc esi
inc edi
inc r10
mov dword [rsp + 0x78], esi
mov dword [rsp + 0x68], edi
mov qword [rsp + 0x50], r10
cmp esi, r15d
jl 0x140112fc0
mov rbx, qword [rsp + 0x38]
mov esi, dword [rbp + 0x240]
mov r8d, dword [rbp - 0x58]
mov r9d, r8d
mov dword [rbp - 0x80], r8d
cmp r8d, r15d
jge 0x14011369f
movzx edi, word [rsp + 0x28]
lea r11d, [rsi - 2]
mov r13d, dword [rsp + 0x20]
mov eax, 0x55555556
mov ecx, r13d
mov dword [rsp + 0x50], r11d
sub ecx, edi
mov esi, 0x600
add ecx, 4
imul ecx
mov r10d, edx
shr r10d, 0x1f
add r10d, edx
lea eax, [rdi + r10*2]
add r10d, eax
lea edi, [r8 + 6]
mov eax, r8d
mov dword [rsp + 0x60], r10d
sub eax, dword [rsp + 0x24]
movsxd r8, eax
shl r8, 9
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x58], edi
nop
cmp r10d, r11d
jge 0x140113671
mov eax, 0x2aaaaaab
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
lea edi, [r10 + 7]
mov dword [rsp + 0x78], edi
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
mov eax, r10d
add rcx, 0x44
sub eax, r13d
lea r9, [rcx + rcx*2]
movsxd rcx, eax
add rcx, r8
add r9, r9
mov qword [rbp - 0x50], r9
lea rax, [rcx + rcx*2]
mov ecx, r11d
lea r8, [rbx + rax*2]
sub ecx, r10d
dec ecx
mov qword [rbp - 0x68], r8
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [rdx + 1]
mov qword [rsp + 0x40], rax
nop dword [rax + rax]
mov eax, 0x2aaaaaab
xorps xmm0, xmm0
imul edi
movups xmmword [rbp - 0x18], xmm0
mov r10, r8
mov r12d, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
add rcx, r9
movsx eax, byte [rcx + r14]
xor ecx, ecx
mov qword [rbp - 8], rcx
mov ebx, ecx
mov r8d, ecx
mov dword [rsp + 0x68], eax
movzx r9d, word [r10 + 2]
mov r15d, r12d
movsxd rdi, eax
neg r15d
movsxd rdx, r12d
add r9d, r9d
movsxd rcx, r15d
mov r11d, r9d
mov r14, rdi
xor r14, 2
lea rax, [rcx + rcx*2]
movzx r13d, word [r10 + rax*2 + 2]
lea rax, [rdx + rdx*2]
movzx eax, word [r10 + rax*2 + 2]
sub r11d, r13d
sub r11d, eax
mov dword [rsp + 0x70], eax
lea rax, [rdi + rcx*2]
add rcx, rax
lea rax, [r8 + rdi*8]
movzx esi, word [r10 + rcx*2]
lea rcx, [rdi + rdx*2]
add rcx, rdx
movzx edx, word [r10 + rcx*2]
lea ecx, [rsi + rdx]
add ecx, r11d
mov dword [rbp + rax*4 + 0x40], ecx
cmp r8, 1
jbe 0x1401134f6
mov eax, dword [rsp + 0x70]
sub esi, r13d
sub esi, edx
imul r11d, r11d
add eax, esi
imul eax, eax
add eax, r11d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rbp + r8*4 - 0x18]
movss dword [rbp + r8*4 - 0x18], xmm0
lea eax, [r15 + r15]
movsxd rcx, eax
lea rax, [rcx + rcx*2]
movzx r11d, word [r10 + rax*2 + 2]
lea eax, [r12 + r12]
movsxd rdx, eax
lea rax, [rdx + rdx*2]
movzx edi, word [r10 + rax*2 + 2]
lea rax, [r14 + rcx*2]
add rcx, rax
sub r9d, edi
sub r9d, r11d
movzx esi, word [r10 + rcx*2]
lea rcx, [r14 + rdx*2]
add rcx, rdx
movzx edx, word [r10 + rcx*2]
lea rcx, [r8 + r14*8]
lea eax, [rdx + r9]
add eax, esi
mov dword [rbp + rcx*4 + 0x40], eax
cmp r8, 1
jbe 0x140113572
sub edi, edx
imul r9d, r9d
sub edi, r11d
lea eax, [rdi + rsi]
imul eax, eax
add r9d, eax
movd xmm0, r9d
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rbp + r8*4 - 0x18]
movss dword [rbp + r8*4 - 0x18], xmm0
cmp ebx, 1
jbe 0x1401135a2
test bl, 1
je 0x1401135a2
movss xmm0, dword [rbp + r8*4 - 0x18]
comiss xmm0, dword [rbp + r8*4 - 0x1c]
jbe 0x1401135a2
mov eax, dword [rbp + r8*4 + 0x3c]
mov dword [rbp + r8*4 + 0x40], eax
mov eax, dword [rbp + r8*4 + 0x7c]
mov dword [rbp + r8*4 + 0x80], eax
cmp ebx, 2
jb 0x1401135b0
test bl, 1
je 0x1401135fd
nop dword [rax]
mov eax, dword [rbp + r8*4 + 0x40]
mov edi, 0xffff
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
jge 0x1401135cf
test eax, eax
mov ecx, 0
cmovs eax, ecx
jmp 0x1401135d3
mov eax, edi
xor ecx, ecx
mov word [r10], ax
mov eax, dword [rbp + r8*4 + 0x80]
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
jge 0x1401135ef
test eax, eax
cmovs eax, ecx
jmp 0x1401135f1
mov eax, edi
mov word [r10 + 4], ax
add r10, 0x180000
mov eax, dword [rsp + 0x68]
inc ebx
xor eax, 2
inc r8
xor r12d, 0x201
mov dword [rsp + 0x68], eax
cmp ebx, 6
jl 0x140113461
mov r8, qword [rbp - 0x68]
mov edi, dword [rsp + 0x78]
add r8, 0x12
mov r9, qword [rbp - 0x50]
add edi, 3
sub qword [rsp + 0x40], 1
mov r14, qword [rbp + 0x230]
mov qword [rbp - 0x68], r8
mov dword [rsp + 0x78], edi
jne 0x140113420
mov r10d, dword [rsp + 0x60]
mov esi, 0x600
mov edi, dword [rsp + 0x58]
mov r8, qword [rsp + 0x30]
mov r9d, dword [rbp - 0x80]
mov r11d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x2c]
mov r13d, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x38]
add r9d, 3
mov r14, qword [rbp + 0x230]
add edi, 3
add r8, rsi
mov dword [rbp - 0x80], r9d
mov dword [rsp + 0x58], edi
mov qword [rsp + 0x30], r8
cmp r9d, r15d
jl 0x1401133b0
jmp 0x1401136a4
mov esi, 0x600
mov ecx, dword [rsp + 0x24]
mov edi, dword [rsp + 0x48]
add edi, 0xfffffffd
lea edx, [rcx + 3]
cmp edx, edi
jge 0x14011398a
movzx ecx, word [rbp + 0x248]
mov r9d, edx
mov r8d, dword [rsp + 0x20]
sub r9d, ecx
mov ebx, dword [rbp + 0x240]
add ecx, 6
add ebx, 0xfffffffd
mov dword [rbp - 0x80], r9d
mov eax, edi
mov dword [rsp + 0x60], ebx
sub eax, edx
mov qword [rsp + 0x68], rsi
lea r10d, [r8 + 3]
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x50], r10d
mov r11, rsi
mov dword [rsp + 0x70], ecx
mov edx, 0x200
cmp r10d, ebx
jge 0x140113963
add ecx, r9d
lea r13d, [r10 + 6]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, 0x44
lea rdi, [rax + rax*2]
mov eax, r10d
sub eax, r8d
add rdi, rdi
movsxd r8, eax
mov eax, ebx
sub eax, r10d
mov qword [rbp - 0x50], rdi
mov r10d, eax
mov qword [rbp - 0x68], r10
mov qword [rsp + 0x40], r8
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x2aaaaaab
imul r13d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r13d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
mov rax, qword [rbp + 0x230]
add rcx, rdi
mov edi, 2
movsx eax, byte [rcx + rax]
sub edi, eax
cmp edi, 1
je 0x14011392a
lea rax, [r11 + r8]
mov r14d, 1
lea rcx, [rax + rax*2]
movsxd r8, edi
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], r8
lea rsi, [rax + rcx*2]
mov eax, 0x55555556
imul r9d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x200
lea ecx, [rdx + rdx*2]
cmp r9d, ecx
cmovne r14d, eax
mov eax, r14d
mov r9d, r14d
xor eax, 0x201
lea ecx, [rax + rax*2]
xor eax, eax
mov r15d, eax
mov dword [rsp + 0x58], ecx
nop
cmp r15d, 1
ja 0x14011389a
mov eax, r14d
xor eax, r15d
test al, 1
jne 0x14011389a
movzx r12d, word [rsi + 2]
mov eax, ecx
mov r8d, r12d
mov ebx, r12d
mov r10d, r12d
lea rcx, [rax + rax*2]
mov rax, rsi
lea rdx, [rcx + rcx]
sub rax, rdx
movzx ecx, word [rax + 2]
movzx eax, word [rsi + rdx + 2]
sub ebx, ecx
sub r8d, eax
mov r11d, ebx
lea rax, [r9 + r9*2]
sar r11d, 0x1f
lea rdx, [rax + rax]
xor ebx, r11d
mov edi, r8d
mov rax, rsi
sub rax, rdx
sar edi, 0x1f
xor r8d, edi
add ebx, r8d
mov r8, qword [rsp + 0x30]
sub ebx, edi
movzx ecx, word [rax + 2]
sub ebx, r11d
movzx eax, word [rdx + rsi + 2]
sub r10d, ecx
mov r9d, r10d
mov ecx, r12d
sub ecx, eax
sar r9d, 0x1f
xor r10d, r9d
mov eax, ecx
sar eax, 0x1f
add ebx, ebx
xor ecx, eax
add r10d, ecx
sub r10d, eax
sub r10d, r9d
cmp r10d, ebx
jl 0x14011389a
mov eax, dword [rsp + 0x58]
jmp 0x1401138a2
movzx r12d, word [rsi + 2]
mov eax, r14d
lea rcx, [rax + rax*2]
lea rax, [rax + rax*2]
lea rdx, [rax + rax]
lea rax, [r8 + rcx]
movzx edi, word [rsi + rax*2]
mov rax, r8
sub rax, rcx
movzx eax, word [rsi + rax*2]
add edi, eax
mov rax, rsi
sub rax, rdx
movzx ecx, word [rax + 2]
movzx eax, word [rdx + rsi + 2]
sub edi, ecx
sub edi, eax
mov ecx, 0xffff
movzx eax, r12w
lea eax, [rdi + rax*2]
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jge 0x1401138f6
test eax, eax
mov ecx, 0
cmovs eax, ecx
jmp 0x1401138f8
mov eax, ecx
mov ecx, dword [rsp + 0x58]
inc r15d
mov word [rsi + r8*2], ax
add rsi, 0x180000
mov r9d, r14d
cmp r15d, 4
jl 0x1401137f0
mov r8, qword [rsp + 0x40]
mov r9d, dword [rbp - 0x80]
mov r10, qword [rbp - 0x68]
mov r11, qword [rsp + 0x68]
mov rdi, qword [rbp - 0x50]
inc r8
inc r13d
mov qword [rsp + 0x40], r8
sub r10, 1
mov qword [rbp - 0x68], r10
jne 0x140113760
mov r10d, dword [rsp + 0x50]
mov edx, 0x200
mov rax, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x70]
mov r8d, dword [rsp + 0x20]
add r11, rdx
inc r9d
sub rax, 1
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x78], rax
mov dword [rbp - 0x80], r9d
jne 0x140113703
mov r15d, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x24]
mov r13d, dword [rbp - 0x78]
mov r8d, r13d
mov dword [rbp - 0x80], r13d
cmp r13d, r15d
jge 0x140113bff
movzx edx, word [rbp + 0x248]
mov eax, r13d
sub eax, ecx
mov edi, r13d
sub edi, edx
movsxd r9, eax
shl r9, 9
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x68], edi
nop
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*2]
cmp edi, ecx
je 0x140113bd8
mov ecx, dword [rsp + 0x20]
mov eax, dword [rbp + 0x240]
add eax, 0xfffffffe
lea r11d, [rcx + 2]
cmp r11d, eax
jge 0x140113bd8
movzx eax, word [rsp + 0x28]
mov r15d, r11d
sub r15d, eax
mov eax, r11d
sub eax, ecx
movsxd rdi, eax
mov qword [rsp + 0x30], rdi
nop dword [rax + rax]
mov eax, 0x55555556
imul r15d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*2]
cmp r15d, ecx
je 0x140113baf
lea rax, [r9 + rdi]
mov r12d, 2
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x38]
lea r14, [rbp + 0xb2]
lea r9, [rax + rcx*2]
mov eax, 0x55555556
imul r8d
mov ecx, r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r11d
lea rdi, [rax + rax*2]
mov eax, 0x55555556
imul r11d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
add rdi, rax
mov eax, 4
shl rdi, 5
add r14, rdi
cmp dword [rbp + 0x238], 1
cmovg r12d, eax
nop dword [rax + rax]
movsx r8, word [r14]
movsx rdi, word [r14 - 2]
movzx ebx, word [r9 + 2]
mov ecx, edi
lea rsi, [r8 + r8*2]
lea rax, [rdi + rdi*2]
add rsi, rsi
movzx r13d, word [r9 + rax*2 + 2]
lea r10, [rdi + rdi*2]
lea rax, [r8 + r8*2]
add ecx, r8d
movzx eax, word [r9 + rax*2 + 2]
mov r8, r9
mov dword [rsp + 0x58], eax
je 0x140113b39
lea edi, [rbx + rbx*2]
mov ebx, 2
lea eax, [r13*2]
sub edi, eax
sub edi, dword [rsp + 0x58]
movzx ecx, word [rsi + r8]
mov eax, 0x55555556
movzx edx, word [r9 + r10*2]
add ecx, edi
lea edx, [rcx + rdx*2]
mov ecx, 0xffff
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, ecx
jge 0x140113b23
test edx, edx
mov eax, 0
cmovs edx, eax
jmp 0x140113b25
mov edx, ecx
mov word [r8], dx
add r10, 2
add r8, 4
sub rbx, 1
jne 0x140113af1
jmp 0x140113b8c
lea edi, [rbx + rbx]
mov ebx, 2
sub edi, eax
sub edi, r13d
nop word [rax + rax]
movzx ecx, word [r9 + r10*2]
movzx eax, word [rsi + r8]
add ecx, edi
add eax, ecx
mov ecx, 0xffff
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jge 0x140113b78
test eax, eax
mov ecx, 0
cmovs eax, ecx
jmp 0x140113b7a
mov eax, ecx
mov word [r8], ax
add r10, 2
add r8, 4
sub rbx, 1
jne 0x140113b50
add r14, 4
add r9, 0x180000
sub r12, 1
jne 0x140113aa0
mov rdi, qword [rsp + 0x30]
mov r8d, dword [rbp - 0x80]
mov r9, qword [rsp + 0x40]
mov eax, dword [rbp + 0x240]
inc rdi
add eax, 0xfffffffe
mov qword [rsp + 0x30], rdi
inc r11d
inc r15d
cmp r11d, eax
jl 0x140113a10
mov edi, dword [rsp + 0x68]
mov r15d, dword [rsp + 0x2c]
inc r8d
inc edi
mov eax, 0x200
mov dword [rbp - 0x80], r8d
add r9, rax
mov dword [rsp + 0x68], edi
mov qword [rsp + 0x40], r9
cmp r8d, r15d
jl 0x1401139c0
mov r13d, dword [rbp - 0x78]
mov r8d, dword [rsp + 0x4c]
mov rbx, qword [rsp + 0x38]
inc r8d
mov r12, qword [rbp - 0x60]
mov esi, dword [rbp + 0x240]
mov dword [rsp + 0x4c], r8d
cmp r8d, dword [rbp + 0x238]
jl 0x140112f40
mov ecx, dword [rsp + 0x48]
sub ecx, dword [rsp + 0x24]
sub esi, dword [rsp + 0x20]
mov rdx, qword [rbp]
mov rdi, qword [rbp + 8]
lea eax, [rcx - 2]
mov dword [rsp + 0x48], ecx
lea r9d, [rcx - 3]
mov dword [rbp + 0x240], esi
xor ecx, ecx
mov dword [rsp + 0x60], eax
mov r12d, ecx
mov qword [rbp - 0x78], rcx
mov r13d, ecx
mov qword [rsp + 0x70], rcx
mov qword [rbp - 0x58], rcx
mov dword [rsp + 0x4c], r9d
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x58], rdi
cmp eax, 2
jle 0x140113d04
mov r12, qword [rbp + 0x230]
lea r14d, [rsi - 2]
mov r13, qword [rbp - 0x60]
add eax, 0xfffffffe
mov r15d, eax
mov esi, 2
cmp r14d, 2
jle 0x140113ce2
lea rax, [rcx + rsi]
lea rcx, [rax + rax*2]
shl rcx, 0xa
lea rdi, [r13 + 0xc]
add rdi, rcx
lea ebx, [r14 - 2]
nop word [rax + rax]
lea r8, [rdx + rdi]
mov rcx, r12
mov rdx, rdi
call fcn.140111c30
mov rdx, qword [rsp + 0x38]
add rdi, 6
sub rbx, 1
jne 0x140113cc0
mov rcx, qword [rbp - 0x58]
inc rsi
sub r15, 1
jne 0x140113c98
mov r12, qword [rbp - 0x78]
mov r13, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x4c]
mov esi, dword [rbp + 0x240]
mov rax, r13
and eax, 3
cmp r9d, 3
jle 0x140113ee9
mov rdx, qword [rbp + 0x10]
lea rcx, [0x140374f00]
movsx r13, word [rcx + rax*2]
lea r8d, [rsi - 3]
add rdx, 0x2416
mov qword [rsp + 0x68], r13
mov ecx, 3
mov dword [rsp + 0x50], r8d
mov qword [rsp + 0x30], rcx
lea rax, [r13*2]
add rax, r13
lea rdi, [rax + rax]
add rdx, rdi
mov qword [rsp + 0x78], rdi
lea eax, [r9 - 3]
mov qword [rsp + 0x40], rdx
mov qword [rbp - 0x68], rax
nop word [rax + rax]
cmp r8d, 3
jle 0x140113eaf
mov r11, qword [rbp - 0x38]
lea rax, [r12 + rcx]
shl rax, 0xb
lea esi, [r8 - 3]
imul rcx, r13, 0xfffffffffffffffa
add r11, 0xc
mov rbx, 0xfffffffffffffffc
add r11, rax
mov qword [rbp - 0x80], rcx
imul rax, r13, 0xfffffffffffffff4
sub rbx, rdi
mov r14, 0xfffffffffffffffe
mov qword [rbp - 0x50], rax
mov r15, rbx
lea rax, [r13*2]
sub r15, rdi
add rax, r13
mov r12, 0xfffffffffffffffe
mov r13, qword [rbp - 0x50]
mov r10, rdx
shl rax, 2
sub r14, rax
sub r12, rdi
nop dword [rax + rax]
movsx r8d, word [r10 + rcx]
lea r11, [r11 + 4]
movsx eax, word [r10 + r15]
add r8d, r8d
movsx r9d, word [r10 + rbx]
movsx ecx, word [r10 + r12]
lea r10, [r10 + 6]
add r9d, r9d
add ecx, ecx
sub r9d, eax
movsx eax, word [r10 - 0xa]
sub r9d, eax
movsx eax, word [r10 + r13 - 6]
sub r8d, eax
imul edi, r9d, 0x1f4
imul r9d, r9d
mov eax, 0xe1fc780f
imul edi
add edx, edi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, word [r10 - 6]
sub r8d, edx
sub r8d, eax
movsx eax, word [r10 + r14 - 6]
sub ecx, eax
imul r8d, r8d
movsx eax, word [r10 - 8]
sub ecx, eax
mov eax, 0x8d3dcb09
imul edi
add edx, edi
sar edx, 7
add ecx, edx
mov eax, edx
shr eax, 0x1f
add ecx, eax
imul ecx, ecx
add r9d, ecx
mov rcx, qword [rbp - 0x80]
add r9d, r8d
movd xmm0, r9d
cvtdq2ps xmm0, xmm0
movss dword [r11 - 4], xmm0
sub rsi, 1
jne 0x140113de0
mov r13, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x78]
mov rax, qword [rbp - 0x68]
mov r8d, dword [rsp + 0x50]
mov r12, qword [rbp - 0x78]
inc rcx
add rdx, 0xc00
sub rax, 1
mov qword [rsp + 0x30], rcx
mov qword [rbp - 0x68], rax
mov qword [rsp + 0x40], rdx
jne 0x140113d70
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rbp - 0x58]
mov r13, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x4c]
mov esi, dword [rbp + 0x240]
mov eax, 0x200
add rcx, rax
add r12, rax
mov eax, dword [rsp + 0x60]
inc r13
sub rdx, 0x180000
mov qword [rsp + 0x70], r13
sub rdi, 1
mov qword [rbp - 0x58], rcx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x38], rdx
mov qword [rbp - 0x78], r12
jne 0x140113c75
mov rdi, qword [rbp - 0x20]
xor edx, edx
mov r8, qword [rbp + 0x18]
mov rcx, rdi
call fcn.1402d1c50
mov eax, dword [rsp + 0x48]
add eax, 0xfffffffc
cmp eax, 4
jle 0x1401140d7
lea r14, [rdi + 0x800]
mov ecx, esi
mov rdi, qword [rbp - 0x38]
add ecx, 0xfffffffc
mov r9d, 4
mov dword [rsp + 0x50], ecx
add eax, 0xfffffffc
mov r15d, r9d
mov qword [rsp + 0x40], rax
mov edx, 0x200
lea r13, [rdi + 0x202010]
mov qword [rsp + 0x30], r13
cmp ecx, 4
jle 0x1401140b6
mov r12, qword [rbp - 0x70]
lea esi, [rcx - 4]
add r12, 0xfffffffffffffffc
mov r11, r13
mov r13, qword [rbp - 0x70]
mov rbx, r9
shr r12, 2
movaps xmm1, xmm6
lea rcx, [r12 + 1]
mov rax, r11
lea rdx, [r12*4 + 4]
nop word [rax + rax]
movss xmm0, dword [rax - 0x200000]
movss xmm2, dword [rax]
minss xmm0, xmm1
movss xmm1, dword [rax - 0x100000]
lea rax, [rax + 0x400000]
minss xmm1, xmm0
minss xmm2, xmm1
movss xmm1, dword [rax - 0x300000]
minss xmm1, xmm2
sub rcx, 1
jne 0x140113fc0
cmp rdx, r13
jge 0x140114031
mov rax, rdx
shl rax, 9
add rax, r15
shl rax, 9
add rax, rbx
lea rcx, [rdi + rax*4]
mov rax, r13
sub rax, rdx
movss xmm0, dword [rcx]
lea rcx, [rcx + 0x100000]
minss xmm0, xmm1
movaps xmm1, xmm0
sub rax, 1
jne 0x140114019
mulss xmm1, xmm7
lea rcx, [r14 + rbx]
lea r8, [r11 - 0x200804]
mov r10, r13
mov rdx, r8
mov r9d, 3
nop dword [rax]
mov rax, rdx
mov edi, 3
comiss xmm1, dword [rax]
jb 0x14011405f
inc byte [rcx]
add rax, 4
sub rdi, 1
jne 0x140114058
add rdx, 0x800
sub r9, 1
jne 0x140114050
add r8, 0x100000
add rcx, 0x40000
sub r10, 1
jne 0x140114043
mov rdi, qword [rbp - 0x38]
inc rbx
add r11, 4
sub rsi, 1
jne 0x140113fa3
mov r13, qword [rsp + 0x30]
lea r9d, [r10 + 4]
mov ecx, dword [rsp + 0x50]
mov edx, 0x200
mov rax, qword [rsp + 0x40]
add r13, 0x800
inc r15
add r14, rdx
mov qword [rsp + 0x30], r13
sub rax, 1
mov qword [rsp + 0x40], rax
jne 0x140113f81
mov r14, qword [rbp + 0x230]
mov esi, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x24]
movsxd r11, dword [rbp - 0x40]
movzx edi, word [r14 + 0x14]
movzx edx, word [r14 + 0x16]
mov ecx, edi
sub ecx, r10d
mov eax, edx
sub eax, esi
movzx r8d, di
cmp eax, 0x204
lea r9d, [rax + 2]
cmovge r9d, dword [rbp + 0x240]
lea eax, [rcx + 2]
cmp ecx, 0x204
cmovge eax, dword [rsp + 0x48]
lea ecx, [rax - 8]
cmp r11d, ecx
jge 0x1401143ca
lea r8d, [r9 - 8]
mov edx, 8
cmp esi, edx
mov dword [rsp + 0x50], r8d
lea eax, [r11 - 2]
mov r12, r11
cmovl edx, esi
movsxd r9, eax
shl r9, 9
lea edi, [r11 + r10]
sub ecx, r11d
mov dword [rsp + 0x70], edx
mov eax, ecx
mov ecx, 0x200
mov qword [rsp + 0x40], rax
mov dword [rbp + 0x240], edi
mov qword [rsp + 0x30], r9
mov r15d, edx
cmp edx, r8d
jge 0x14011438e
xor esi, esi
movsxd r14, edx
cmp dword [rbp + 0x238], 1
mov eax, 4
mov ebx, esi
cmovg ebx, eax
lea eax, [rdx - 2]
movsxd r13, eax
add r13, r9
mov dword [rsp + 0x60], ebx
add r13, qword [rbp - 0x20]
mov qword [rsp + 0x38], r13
jmp 0x1401141b2
xor esi, esi
mov r10, r13
mov rdx, rsi
mov r13, qword [rbp - 0x70]
nop dword [rax]
mov r8d, esi
mov rdi, r10
mov r11d, 5
nop dword [rax]
mov rcx, rdi
mov r9d, 5
nop dword [rax]
movsx eax, byte [rcx]
lea rcx, [rcx + 1]
add r8d, eax
sub r9, 1
jne 0x1401141e0
mov eax, 0x200
add rdi, rax
sub r11, 1
jne 0x1401141d0
mov dword [rbp + rdx*4 + 0x20], r8d
add r10, 0x40000
inc rdx
cmp rdx, r13
jl 0x1401141c0
test ebx, ebx
je 0x14011423a
lea rax, [rbp + 0x30]
mov edi, ebx
nop dword [rax]
mov ecx, dword [rax - 0x10]
cmp ecx, dword [rax]
jge 0x14011422c
mov dword [rax - 0x10], esi
jmp 0x140114230
jle 0x140114230
mov dword [rax], esi
add rax, 4
sub rdi, 1
jne 0x140114220
movzx edi, word [rbp + 0x20]
mov edx, 1
mov r8, r13
nop word [rax + rax]
mov ecx, dword [rbp + rdx*4 + 0x20]
movzx eax, di
cmp eax, ecx
cmovge cx, di
inc rdx
movzx edi, cx
cmp rdx, r8
jl 0x140114250
mov r13, qword [rbp - 0x60]
movzx eax, cx
shr ax, 3
xorps xmm0, xmm0
sub di, ax
mov r8, rsi
movups xmmword [rbp - 0x50], xmm0
mov r9d, dword [rbp - 0x44]
xor eax, eax
mov r10d, dword [rbp - 0x48]
mov ecx, 0x200
mov r11d, dword [rbp - 0x4c]
mov ebx, dword [rbp - 0x50]
movzx esi, di
mov edi, eax
mov rax, qword [rbp - 0x70]
nop
cmp dword [rbp + r8*4 + 0x20], esi
jl 0x1401142dc
lea rax, [r12 + rdi]
shl rax, 9
add rax, r14
lea rdx, [rax + rax*2]
mov rax, qword [rbp - 0x70]
movzx ecx, word [r13 + rdx*2]
add ebx, ecx
movzx ecx, word [r13 + rdx*2 + 2]
add r11d, ecx
movzx ecx, word [r13 + rdx*2 + 4]
add r10d, ecx
mov ecx, 0x200
inc r9d
inc r8
add rdi, rcx
cmp r8, rax
jl 0x1401142a0
mov r8, qword [rbp + 0x230]
mov eax, ebx
mov edi, dword [rbp + 0x240]
cdq
mov esi, dword [rsp + 0x20]
inc r14
mov r13, qword [rsp + 0x38]
movzx ecx, word [r8 + 0x16]
inc r13
mov ebx, dword [rsp + 0x60]
imul ecx, edi
idiv r9d
add ecx, esi
mov qword [rsp + 0x38], r13
add ecx, r15d
movsxd rdx, ecx
mov rcx, qword [r8 + 8]
mov word [rcx + rdx*8], ax
mov eax, r11d
movzx ecx, word [r8 + 0x16]
cdq
imul ecx, edi
idiv r9d
add ecx, esi
add ecx, r15d
movsxd rdx, ecx
mov rcx, qword [r8 + 8]
mov word [rcx + rdx*8 + 2], ax
mov eax, r10d
movzx ecx, word [r8 + 0x16]
cdq
idiv r9d
imul ecx, edi
add ecx, esi
add ecx, r15d
inc r15d
movsxd rdx, ecx
mov rcx, qword [r8 + 8]
mov r8d, dword [rsp + 0x50]
mov word [rcx + rdx*8 + 4], ax
cmp r15d, r8d
jl 0x1401141b0
mov edx, dword [rsp + 0x70]
mov ecx, 0x200
mov r9, qword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
inc edi
add r9, rcx
inc r12
mov dword [rbp + 0x240], edi
sub rax, 1
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x40], rax
jne 0x140114170
mov r14, qword [rbp + 0x230]
mov r10d, dword [rsp + 0x24]
movzx r8d, word [r14 + 0x14]
movzx edx, word [r14 + 0x16]
movzx edi, r8w
mov r11, qword [rbp - 0x30]
lea r9d, [r10 + 0x200]
add esi, 0x1f0
movzx eax, dx
sub eax, 0x13
mov dword [rsp + 0x20], esi
movzx ecx, dx
cmp esi, eax
jl 0x140112a60
mov edi, 4
jmp 0x1401143fb
movzx r8d, dx
movzx eax, r8w
add r10d, 0x1f0
sub eax, 0x13
mov dword [rsp + 0x24], r10d
movzx edx, r8w
mov r8d, 0x200000
cmp r10d, eax
jl 0x1401129e0
mov rdi, qword [rbp + 0x230]
movaps xmm7, xmmword [rsp + 0x2c0]
movaps xmm6, xmmword [rsp + 0x2d0]
mov rdx, qword [rbp - 0x60]
mov rcx, rdi
call fcn.1400fa4c0
mov edx, 8
mov rcx, rdi
mov r14, qword [rsp + 0x2f0]
mov r13, qword [rsp + 0x2f8]
mov r15, qword [rsp + 0x2e8]
mov rdi, qword [rsp + 0x308]
mov r12, qword [rsp + 0x300]
add rsp, 0x310
pop rsi
pop rbx
pop rbp
jmp fcn.140110850
lea rdx, [0x1404ad790]
mov dword [rbp + 0x230], 5
lea rcx, [rbp + 0x230]
call fcn.1402d12e0
int3
lea rdx, [0x1404ad790]
mov dword [rbp + 0x230], 5
lea rcx, [rbp + 0x230]
call fcn.1402d12e0
int3
lea rdx, [0x1404ad790]
mov dword [rbp + 0x230], 5
lea rcx, [rbp + 0x230]
call fcn.1402d12e0
int3
lea rdx, [0x1404ad790]
mov dword [rbp + 0x230], 5
lea rcx, [rbp + 0x230]
call fcn.1402d12e0
int3