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

Disassembly:
push rbx
push rdi
push r12
push r15
sub rsp, 0x608
mov rax, qword [0x140377790]
xor rax, rsp
mov qword [rsp + 0x540], rax
cmp dword [rcx], 0
mov rax, qword [rsp + 0x650]
mov rdi, qword [rsp + 0x660]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x690]
mov r15d, r9d
mov dword [rsp + 0x40], r9d
mov r12, r8
movsxd rbx, edx
mov qword [rsp + 0xf0], rax
mov r10, rcx
mov qword [rsp + 0xa8], rcx
je 0x140244c70
mov eax, 1
jmp 0x140245d1c
mov qword [rsp + 0x600], rsi
mov esi, dword [rsp + 0x658]
test esi, esi
je 0x140245e93
mov eax, dword [rsp + 0x678]
test eax, eax
je 0x140245e93
mov r9d, dword [rsp + 0x680]
test r9d, r9d
je 0x140245e93
add eax, 0xfffffffe
mov qword [rsp + 0x640], rbp
mov qword [rsp + 0x5f8], r13
mov dword [rcx + 0x48], eax
add eax, 2
mov qword [rsp + 0x5f0], r14
movaps xmmword [rsp + 0x5a0], xmm10
mov dword [rcx + 0x50], eax
mov eax, dword [rsp + 0x688]
mov dword [rcx + 0x4c], r9d
test eax, eax
je 0x140244ce8
mov dword [rcx + 0x60], eax
jmp 0x140244cec
mov dword [rcx + 0x60], r9d
mov r8d, dword [rcx + 0x60]
mov eax, r9d
cdq
idiv r8d
mov dword [rcx + 0x64], eax
mov ecx, eax
imul ecx, r8d
cmp ecx, r9d
jge 0x140244d0b
inc eax
mov dword [r10 + 0x64], eax
movaps xmmword [rsp + 0x5e0], xmm6
lea ecx, [rsi + rsi*8]
movaps xmmword [rsp + 0x5d0], xmm7
shl ecx, 3
movaps xmmword [rsp + 0x5c0], xmm8
movaps xmmword [rsp + 0x5b0], xmm9
call fcn.14014a890
lea rdx, [rsp + 0x44]
mov r9, rdi
mov rcx, rax
mov r8d, esi
mov qword [rsp + 0xb0], rax
call fcn.14020b660
lea ecx, [rbx + rbx*2]
shl ecx, 4
call fcn.14014a890
mov r14, rbx
xor ebx, ebx
movsd xmm10, qword [0x140339230]
mov r13, rax
mov qword [rsp + 0x78], rax
test r14, r14
jle 0x140244e7e
movss xmm7, dword [rsp + 0x40]
movss xmm8, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x658]
mov r13, qword [rsp + 0xb0]
lea rsi, [rax + 8]
add r12, 8
mov eax, dword [r12 - 8]
mov ebp, ebx
mov edi, ebx
mov dword [rsi - 8], eax
mov eax, dword [r12 - 4]
movss xmm9, dword [rsi - 8]
mov dword [rsi - 4], eax
movss xmm6, dword [r12]
movss dword [rsi], xmm6
test r15d, r15d
jle 0x140244e5a
nop
lea rax, [rsp + 0x74]
movaps xmm3, xmm6
movaps xmm2, xmm9
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov edx, edi
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.14020b940
test eax, eax
jne 0x140244e3b
test ebp, ebp
jne 0x140244e0f
movss xmm7, dword [rsp + 0x74]
movss xmm8, dword [rsp + 0x70]
lea ebp, [rax + 1]
jmp 0x140244e3b
movss xmm2, dword [rsp + 0x74]
unpcklps xmm7, xmm7
unpcklps xmm2, xmm2
cvtps2pd xmm0, xmm7
cvtps2pd xmm1, xmm2
andpd xmm0, xmm10
andpd xmm1, xmm10
comisd xmm0, xmm1
jbe 0x140244e3b
movss xmm8, dword [rsp + 0x70]
movaps xmm7, xmm2
inc edi
cmp edi, r15d
jl 0x140244dd0
test ebp, ebp
je 0x140244e5a
movss dword [rsi + 8], xmm8
movss dword [rsi + 0xc], xmm7
mov dword [rsi + 4], 1
jmp 0x140244e5d
mov dword [rsi + 4], ebx
mov dword [rsi + 0x10], ebx
add rsi, 0x30
add r12, 0xc
sub r14, 1
jne 0x140244da2
mov r13, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x40]
jmp 0x140244e8b
movss xmm7, dword [rsp + 0x40]
movss xmm8, dword [rsp + 0x40]
lea ecx, [r15 + r15*2]
shl ecx, 2
call fcn.14014a890
mov rdx, qword [rsp + 0x90]
lea ecx, [r15 + r15*2]
movsxd r8, ecx
mov rcx, rax
mov qword [rsp + 0x78], rax
shl r8, 2
call sub.MSVCR90.dll_memcpy
mov edi, 0xa
mov ecx, 0x1e0
mov esi, ebx
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x64], edi
call fcn.14014a890
lea ecx, [rdi + 0x6e]
mov dword [rsp + 0x48], ebx
mov rbp, rax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], edi
call fcn.14014a890
mov r14, rbx
mov qword [rsp + 0x88], rbx
mov r15, rax
mov qword [rsp + 0x80], rax
movsxd rax, dword [rsp + 0x40]
mov qword [rsp + 0x90], rax
test rax, rax
jle 0x140245391
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa0], rax
mov rdi, qword [rsp + 0xa0]
mov esi, 3
lea r15, [rsp + 0x2a8]
lea ebp, [rsi + 0x2d]
xor r12d, r12d
nop dword [rax]
movsxd rbx, dword [rdi]
lea rcx, [r15 - 0x18]
mov r8, rbp
lea rdx, [rbx + rbx*2]
shl rdx, 4
add rdx, r13
call sub.MSVCR90.dll_memcpy
mov dword [r15], r12d
mov dword [r15 + 4], ebx
add r15, rbp
add rdi, 4
sub rsi, 1
jne 0x140244f40
movss xmm0, dword [rsp + 0x44]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x110]
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x1d0]
lea edx, [rsi + 3]
lea rcx, [rsp + 0x290]
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x20], rax
call fcn.140243b30
mov rbp, qword [rsp + 0x68]
mov esi, dword [rsp + 0x50]
mov edi, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x60]
mov r15, qword [rsp + 0x80]
movsxd rcx, eax
mov dword [rsp + 0x98], eax
mov qword [rsp + 0x58], rcx
test eax, eax
jle 0x1402450ea
lea r12, [r14 + r14*2]
lea r15, [rsp + 0x1f0]
shl r12, 4
cmp dword [r15 - 8], 0
lea rax, [r15 - 0x20]
je 0x140245043
cmp esi, edi
jne 0x140245019
add edi, edi
mov rcx, rbp
lea edx, [rdi + rdi*2]
shl edx, 4
call fcn.14014a8b0
mov rbp, rax
lea rax, [r15 - 0x20]
lea rbx, [r12 + rbp]
mov rdx, rax
mov r8d, 0x30
mov rcx, rbx
call sub.MSVCR90.dll_memcpy
mov dword [r15], esi
inc esi
inc r14
mov dword [rbx + 0x18], 0
add r12, 0x30
jmp 0x1402450b9
movsxd rax, dword [r15 - 4]
lea rax, [rax + rax*2]
shl rax, 4
mov qword [rsp + 0x68], rax
cmp dword [rax + r13 + 0x18], 0
je 0x140245066
mov eax, dword [rax + r13 + 0x20]
mov dword [r15], eax
jmp 0x1402450b9
cmp esi, edi
jne 0x14024507d
add edi, edi
mov rcx, rbp
lea edx, [rdi + rdi*2]
shl edx, 4
call fcn.14014a8b0
mov rbp, rax
lea rbx, [r12 + rbp]
lea rdx, [r15 - 0x20]
mov r8d, 0x30
mov rcx, rbx
call sub.MSVCR90.dll_memcpy
mov rax, qword [rsp + 0x68]
mov dword [rbx + 0x18], 0
mov dword [rax + r13 + 0x18], 1
mov dword [r15], esi
mov dword [rax + r13 + 0x20], esi
inc esi
inc r14
add r12, 0x30
add r15, 0x30
sub qword [rsp + 0x58], 1
jne 0x140244ff3
mov r12d, dword [rsp + 0x60]
mov r15, qword [rsp + 0x80]
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x64], edi
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x68], rbp
add eax, 0xfffffffe
test eax, eax
jle 0x1402451a4
mov r8, qword [rsp + 0x88]
mov ebp, dword [rsp + 0x1f0]
mov edx, eax
mov eax, dword [rsp + 0x48]
lea rbx, [r8 + r8*2]
lea rcx, [rsp + 0x250]
shl rbx, 2
add r8, rdx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x80], rdx
cmp eax, r12d
jne 0x140245159
add r12d, r12d
mov rcx, r15
lea edx, [r12 + r12*2]
shl edx, 2
call fcn.14014a8b0
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x80]
mov r15, rax
mov eax, dword [rcx - 0x30]
add rcx, 0x30
mov dword [rbx + r15], ebp
mov dword [rbx + r15 + 4], eax
mov eax, dword [rcx - 0x30]
add rbx, 0xc
mov dword [rbx + r15 - 4], eax
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0x58], rcx
inc eax
sub rdx, 1
mov qword [rsp + 0x80], rdx
mov dword [rsp + 0x48], eax
jne 0x140245132
mov rbp, qword [rsp + 0x68]
mov qword [rsp + 0x80], r15
mov dword [rsp + 0x60], r12d
mov eax, dword [rsp + 0x40]
test eax, eax
jle 0x1402452b4
lea r12, [r14 + r14*2]
lea r15, [rsp + 0x130]
mov qword [rsp + 0x58], rax
shl r12, 4
cmp dword [r15 - 8], 0
lea rax, [r15 - 0x20]
je 0x140245218
cmp esi, edi
jne 0x1402451eb
add edi, edi
mov rcx, rbp
lea edx, [rdi + rdi*2]
shl edx, 4
call fcn.14014a8b0
mov rbp, rax
lea rax, [r15 - 0x20]
lea rbx, [r12 + rbp]
mov rdx, rax
mov r8d, 0x30
mov rcx, rbx
call sub.MSVCR90.dll_memcpy
mov dword [r15], esi
inc esi
inc r14
mov dword [rbx + 0x18], 0
add r12, 0x30
jmp 0x14024528e
movsxd rax, dword [r15 - 4]
lea rax, [rax + rax*2]
shl rax, 4
mov qword [rsp + 0x68], rax
cmp dword [rax + r13 + 0x18], 0
je 0x14024523b
mov eax, dword [rax + r13 + 0x20]
mov dword [r15], eax
jmp 0x14024528e
cmp esi, edi
jne 0x140245252
add edi, edi
mov rcx, rbp
lea edx, [rdi + rdi*2]
shl edx, 4
call fcn.14014a8b0
mov rbp, rax
lea rbx, [r12 + rbp]
lea rdx, [r15 - 0x20]
mov r8d, 0x30
mov rcx, rbx
call sub.MSVCR90.dll_memcpy
mov rax, qword [rsp + 0x68]
mov dword [rbx + 0x18], 0
mov dword [rax + r13 + 0x18], 1
mov dword [r15], esi
mov dword [rax + r13 + 0x20], esi
inc esi
inc r14
add r12, 0x30
add r15, 0x30
sub qword [rsp + 0x58], 1
jne 0x1402451c5
mov r12d, dword [rsp + 0x60]
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x64], edi
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x68], rbp
add eax, 0xfffffffe
test eax, eax
jle 0x140245378
mov r8, qword [rsp + 0x88]
mov r15, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x130]
mov edx, eax
mov eax, dword [rsp + 0x48]
lea rbx, [r8 + r8*2]
lea rcx, [rsp + 0x190]
shl rbx, 2
add r8, rdx
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x98], rdx
cmp eax, r12d
jne 0x14024532b
add r12d, r12d
mov rcx, r15
lea edx, [r12 + r12*2]
shl edx, 2
call fcn.14014a8b0
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x98]
mov r15, rax
mov eax, dword [rcx - 0x30]
add rcx, 0x30
mov dword [rbx + r15], ebp
mov dword [rbx + r15 + 4], eax
mov eax, dword [rcx - 0x30]
add rbx, 0xc
mov dword [rbx + r15 - 4], eax
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0x58], rcx
inc eax
sub rdx, 1
mov qword [rsp + 0x98], rdx
mov dword [rsp + 0x48], eax
jne 0x140245304
mov rbp, qword [rsp + 0x68]
mov qword [rsp + 0x80], r15
mov dword [rsp + 0x60], r12d
jmp 0x140245380
mov r15, qword [rsp + 0x80]
sub qword [rsp + 0x90], 1
jne 0x140244f21
xor ebx, ebx
mov rcx, r13
call fcn.14014a8e0
mov rcx, qword [rsp + 0x78]
call fcn.14014a8e0
movsxd r9, esi
mov qword [rsp + 0x88], r9
test esi, esi
jle 0x1402453cc
lea rax, [rbp + 0x24]
mov rcx, r9
nop dword [rax]
mov dword [rax], ebx
add rax, 0x30
sub rcx, 1
jne 0x1402453c0
movsxd rdi, dword [rsp + 0x48]
mov qword [rsp + 0x58], rdi
test edi, edi
jle 0x140245800
movsd xmm2, qword [0x1403397d8]
movss xmm4, dword [rsp + 0x44]
mov r14, qword [rsp + 0xa8]
movaps xmmword [rsp + 0x590], xmm11
movaps xmmword [rsp + 0x580], xmm12
movaps xmmword [rsp + 0x570], xmm13
lea rdx, [r15 + 8]
mov r13, r15
mov r15d, 0x30
movss xmm13, dword [rsp + 0x670]
xorps xmm12, xmm12
movss xmm11, dword [0x140339240]
mov qword [rsp + 0x90], rdx
movaps xmmword [rsp + 0x560], xmm14
movaps xmmword [rsp + 0x550], xmm15
movss xmm15, dword [rsp + 0x668]
movsd xmm14, qword [0x140339750]
subss xmm13, xmm15
nop word [rax + rax]
movsxd rax, dword [rdx - 8]
mov r12d, ebx
mov edi, ebx
lea rcx, [rax + rax*2]
movsxd rax, dword [rdx - 4]
add rcx, rcx
movss xmm0, dword [rbp + rcx*8]
movss xmm1, dword [rbp + rcx*8 + 8]
lea rcx, [rax + rax*2]
movsxd rax, dword [rdx]
add rcx, rcx
addss xmm0, xmm12
addss xmm1, xmm12
addss xmm0, dword [rbp + rcx*8]
addss xmm1, dword [rbp + rcx*8 + 8]
lea rcx, [rax + rax*2]
add rcx, rcx
cmp dword [rsp + 0x658], 0
addss xmm0, dword [rbp + rcx*8]
addss xmm1, dword [rbp + rcx*8 + 8]
unpcklps xmm0, xmm0
unpcklps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
divsd xmm0, xmm2
divsd xmm1, xmm2
cvtsd2ss xmm6, xmm0
cvtsd2ss xmm9, xmm1
jle 0x14024558e
mov r14d, dword [rsp + 0x658]
mov rsi, qword [rsp + 0xb0]
nop
lea rax, [rsp + 0x74]
movaps xmm3, xmm9
movaps xmm2, xmm6
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov edx, edi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14020b940
test eax, eax
jne 0x14024556d
test r12d, r12d
jne 0x140245541
movss xmm7, dword [rsp + 0x74]
movss xmm8, dword [rsp + 0x70]
lea r12d, [rax + 1]
jmp 0x14024556d
movss xmm2, dword [rsp + 0x74]
unpcklps xmm7, xmm7
unpcklps xmm2, xmm2
cvtps2pd xmm0, xmm7
cvtps2pd xmm1, xmm2
andpd xmm0, xmm10
andpd xmm1, xmm10
comisd xmm0, xmm1
jbe 0x14024556d
movss xmm8, dword [rsp + 0x70]
movaps xmm7, xmm2
inc edi
cmp edi, r14d
jl 0x140245500
movss xmm4, dword [rsp + 0x44]
mov esi, dword [rsp + 0x50]
mov r14, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x88]
lea ecx, [rsi + rsi*2]
lea rdx, [r9 + r9*2]
mov r8d, 3
shl ecx, 4
shl rdx, 4
mov qword [rsp + 0x78], r8
nop word [rax + rax]
movsxd rax, dword [r13]
lea r12, [rax + rax*2]
mov eax, dword [r14 + 0x48]
add r12, r12
movd xmm0, eax
movss xmm3, dword [rbp + r12*8 + 0x14]
subss xmm3, xmm15
cvtdq2ps xmm0, xmm0
divss xmm3, xmm13
mulss xmm3, xmm0
addss xmm3, dword [0x140339228]
comiss xmm11, xmm3
jbe 0x1402455ef
movaps xmm3, xmm11
jmp 0x140245611
inc eax
unpcklps xmm3, xmm3
movd xmm1, eax
cvtps2pd xmm0, xmm3
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [0x140339290]
comisd xmm0, xmm1
jbe 0x140245611
cvtsd2ss xmm3, xmm1
movd xmm0, dword [r14 + 0x50]
movsd xmm2, qword [0x140339298]
unpcklps xmm3, xmm3
cvtdq2ps xmm0, xmm0
unpcklps xmm0, xmm0
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm3
divsd xmm2, xmm1
movss xmm1, dword [rbp + r12*8 + 0x10]
mulsd xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x140339464]
cvtsd2ss xmm9, xmm2
movaps xmm2, xmm8
subss xmm2, xmm1
comiss xmm0, xmm2
jbe 0x140245680
subss xmm1, xmm4
comiss xmm12, xmm1
movss dword [rbp + r12*8 + 0x10], xmm1
jbe 0x140245678
mov dword [rbp + r12*8 + 0x10], ebx
movss xmm4, dword [rsp + 0x44]
jmp 0x1402456b0
movss xmm4, dword [rsp + 0x44]
jmp 0x1402456b0
movaps xmm0, xmm4
mulss xmm0, xmm11
comiss xmm2, xmm0
jbe 0x1402456b0
addss xmm1, xmm4
movss dword [rbp + r12*8 + 0x10], xmm1
movss xmm4, dword [rsp + 0x44]
comiss xmm1, xmm4
jbe 0x1402456b0
movss dword [rbp + r12*8 + 0x10], xmm4
movss xmm4, dword [rsp + 0x44]
cmp dword [rbp + r12*8 + 0x24], 0
movss xmm6, dword [rbp + r12*8 + 0x10]
divss xmm6, xmm4
jne 0x1402456e5
movss dword [rbp + r12*8 + 0x28], xmm9
movss dword [rbp + r12*8 + 0x2c], xmm6
mov dword [rbp + r12*8 + 0x24], 1
movss xmm4, dword [rsp + 0x44]
jmp 0x140245786
movss xmm0, dword [rbp + r12*8 + 0x2c]
subss xmm0, xmm6
unpcklps xmm0, xmm0
cvtps2pd xmm1, xmm0
andpd xmm1, xmm10
comisd xmm1, xmm14
jbe 0x140245786
add ecx, r15d
mov rbx, rdx
add rdx, r15
mov qword [rsp + 0xa0], rdx
inc r9
mov edx, ecx
mov dword [rsp + 0x98], ecx
mov rcx, rbp
mov edi, esi
inc esi
mov qword [rsp + 0x88], r9
call fcn.14014a8b0
add rbx, rax
lea rdx, [rax + r12*8]
mov r8, r15
mov rcx, rbx
mov rbp, rax
call sub.MSVCR90.dll_memcpy
mov ecx, dword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
movss dword [rbx + 0x28], xmm9
movss dword [rbx + 0x2c], xmm6
mov r8, qword [rsp + 0x78]
mov r9, qword [rsp + 0x88]
mov dword [rbx + 0x24], 1
mov dword [r13], edi
xor ebx, ebx
movss xmm4, dword [rsp + 0x44]
add r13, 4
sub r8, 1
mov qword [rsp + 0x78], r8
jne 0x1402455b0
mov rdx, qword [rsp + 0x90]
movsd xmm2, qword [0x1403397d8]
mov dword [rsp + 0x50], esi
add rdx, 0xc
sub qword [rsp + 0x58], 1
mov qword [rsp + 0x90], rdx
jne 0x140245470
mov r15, qword [rsp + 0x80]
mov edi, dword [rsp + 0x48]
movaps xmm15, xmmword [rsp + 0x550]
movaps xmm14, xmmword [rsp + 0x560]
movaps xmm13, xmmword [rsp + 0x570]
movaps xmm12, xmmword [rsp + 0x580]
movaps xmm11, xmmword [rsp + 0x590]
jmp 0x140245808
mov r14, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xb0]
call fcn.14014a8e0
lea ecx, [rsi + rsi*2]
mov dword [0x14037757c], 0x3039
shl ecx, 2
call fcn.14014a890
movsxd r8, esi
mov r10, rbx
cmp r8, 4
movaps xmm10, xmmword [rsp + 0x5a0]
movaps xmm9, xmmword [rsp + 0x5b0]
mov r12, rax
movaps xmm8, xmmword [rsp + 0x5c0]
movaps xmm7, xmmword [rsp + 0x5d0]
jl 0x1402458e8
lea r9, [r8 - 4]
lea rcx, [rax + 8]
lea rdx, [rbp + 8]
shr r9, 2
inc r9
lea r10, [r9*4]
nop dword [rax + rax]
mov eax, dword [rdx - 8]
add rcx, 0x30
add rdx, 0xc0
sub r9, 1
mov dword [rcx - 0x38], eax
mov eax, dword [rdx - 0xc4]
mov dword [rcx - 0x34], eax
mov eax, dword [rdx - 0xc0]
mov dword [rcx - 0x30], eax
mov eax, dword [rdx - 0x98]
mov dword [rcx - 0x2c], eax
mov eax, dword [rdx - 0x94]
mov dword [rcx - 0x28], eax
mov eax, dword [rdx - 0x90]
mov dword [rcx - 0x24], eax
mov eax, dword [rdx - 0x68]
mov dword [rcx - 0x20], eax
mov eax, dword [rdx - 0x64]
mov dword [rcx - 0x1c], eax
mov eax, dword [rdx - 0x60]
mov dword [rcx - 0x18], eax
mov eax, dword [rdx - 0x38]
mov dword [rcx - 0x14], eax
mov eax, dword [rdx - 0x34]
mov dword [rcx - 0x10], eax
mov eax, dword [rdx - 0x30]
mov dword [rcx - 0xc], eax
jne 0x140245880
cmp r10, r8
jge 0x140245925
lea rax, [r10 + r10*2]
lea rcx, [r12 + rax*4 + 8]
lea rax, [r10 + r10*2]
add rax, rax
sub r8, r10
lea rdx, [rbp + rax*8 + 8]
mov eax, dword [rdx - 8]
add rcx, 0xc
add rdx, 0x30
sub r8, 1
mov dword [rcx - 0x14], eax
mov eax, dword [rdx - 0x34]
mov dword [rcx - 0x10], eax
mov eax, dword [rdx - 0x30]
mov dword [rcx - 0xc], eax
jne 0x140245905
xor eax, eax
lea rcx, [rsp + 0xb8]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0xc8], r15
mov dword [rsp + 0xd0], edi
mov dword [rsp + 0xb8], 1
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rax
call fcn.1402f1d50
mov rcx, r12
call fcn.14014a8e0
mov dword [r14 + 4], edi
imul edi, edi, 0x64
mov ecx, edi
call fcn.14014a890
cmp dword [r14 + 4], 0
mov dword [rsp + 0x40], ebx
mov qword [r14 + 8], rax
jle 0x140245bcf
movss xmm6, dword [0x14030da30]
mov r13, rbx
mov rcx, rbx
mov qword [rsp + 0x78], rbx
mov r12d, 0x30
mov rax, qword [rsp + 0xd8]
movsxd rcx, dword [rcx + rax + 0x1c]
lea r8, [rcx + rcx*2]
mov rcx, qword [r14 + 8]
movsxd rax, dword [r15 + r8*4]
lea rdx, [rax + rax*2]
add rdx, rdx
mov eax, dword [rbp + rdx*8]
mov dword [r13 + rcx], eax
mov eax, dword [rbp + rdx*8 + 4]
mov dword [r13 + rcx + 4], eax
mov eax, dword [rbp + rdx*8 + 8]
mov dword [r13 + rcx + 8], eax
mov eax, dword [rbp + rdx*8 + 0x28]
mov rcx, qword [r14 + 8]
mov dword [r12 + rcx - 0xc], eax
mov eax, dword [rbp + rdx*8 + 0x2c]
mov rcx, qword [r14 + 8]
mov dword [r12 + rcx], eax
movsxd rax, dword [r15 + r8*4 + 4]
mov rcx, qword [r14 + 8]
lea rdx, [rax + rax*2]
add rdx, rdx
mov eax, dword [rbp + rdx*8]
mov dword [r13 + rcx + 0xc], eax
mov eax, dword [rbp + rdx*8 + 4]
mov dword [r13 + rcx + 0x10], eax
mov eax, dword [rbp + rdx*8 + 8]
mov dword [r13 + rcx + 0x14], eax
mov eax, dword [rbp + rdx*8 + 0x28]
mov rcx, qword [r14 + 8]
mov dword [r12 + rcx - 8], eax
mov eax, dword [rbp + rdx*8 + 0x2c]
mov rcx, qword [r14 + 8]
mov dword [r12 + rcx + 4], eax
movsxd rax, dword [r15 + r8*4 + 8]
mov rcx, qword [r14 + 8]
mov r8d, dword [0x14037757c]
lea rdx, [rax + rax*2]
add rdx, rdx
imul r8d, r8d, 0x41c64e6d
add r8d, 0x3039
mov eax, dword [rbp + rdx*8]
mov dword [r13 + rcx + 0x18], eax
mov eax, dword [rbp + rdx*8 + 4]
mov dword [r13 + rcx + 0x1c], eax
mov eax, dword [rbp + rdx*8 + 8]
mov dword [r13 + rcx + 0x20], eax
mov eax, dword [rbp + rdx*8 + 0x28]
mov rcx, qword [r14 + 8]
mov dword [r12 + rcx - 4], eax
mov eax, dword [rbp + rdx*8 + 0x2c]
mov rcx, qword [r14 + 8]
mov dword [r12 + rcx + 8], eax
mov ecx, r8d
mov eax, 3
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1e
imul r8d, r8d, 0x41c64e6d
add r8d, 0x3039
mov dword [0x14037757c], r8d
imul eax, eax, 0x7fffffff
sub ecx, eax
mov rax, qword [r14 + 8]
mov dword [r13 + rax + 0x58], ecx
mov eax, 3
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1e
imul eax, eax, 0x7fffffff
sub r8d, eax
mov rax, qword [r14 + 8]
mov dword [r13 + rax + 0x5c], r8d
mov rax, qword [r14 + 8]
lea rsi, [r13 + rax]
mov rcx, rsi
lea r8, [rsi + 0x18]
lea rdx, [rsi + 0xc]
call fcn.14024e740
lea rcx, [rsi + 0x40]
lea r9, [rsi + 0x18]
lea r8, [rsi + 0xc]
mov rdx, rsi
cvtsd2ss xmm1, xmm0
movss dword [rsi + 0x3c], xmm1
call fcn.140245ea0
mov eax, dword [rsp + 0x40]
movss xmm5, dword [rsi]
movss xmm0, dword [rsi + 0x10]
movss xmm1, dword [rsi + 0x14]
mov rcx, qword [rsp + 0x78]
inc eax
add r12, 0x64
addss xmm5, dword [rsi + 0xc]
addss xmm0, dword [rsi + 4]
addss xmm1, dword [rsi + 8]
add rcx, 0x20
add r13, 0x64
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x78], rcx
addss xmm5, dword [rsi + 0x18]
addss xmm0, dword [rsi + 0x1c]
addss xmm1, dword [rsi + 0x20]
divss xmm5, xmm6
divss xmm0, xmm6
divss xmm1, xmm6
movss dword [rsi + 0x4c], xmm5
movss dword [rsi + 0x50], xmm0
movss dword [rsi + 0x54], xmm1
cmp eax, dword [r14 + 4]
jl 0x1402459d0
xor ebx, ebx
mov rcx, rbp
call fcn.14014a8e0
mov rcx, r15
call fcn.14014a8e0
mov eax, dword [rsp + 0xe4]
lea ecx, [rax + rax*4]
mov dword [r14 + 0x10], eax
shl ecx, 3
call fcn.14014a890
cmp dword [r14 + 0x10], 0
mov r13, qword [rsp + 0x5f8]
movaps xmm6, xmmword [rsp + 0x5e0]
mov rbp, qword [rsp + 0x640]
mov qword [r14 + 0x18], rax
jle 0x140245ce1
mov r8, rbx
mov r9, rbx
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x18]
inc ebx
mov eax, dword [r9 + rcx]
add r8, 0x28
add r9, 0x2c
mov dword [r8 + rdx - 0x28], eax
mov eax, dword [r9 + rcx - 0x28]
mov dword [r8 + rdx - 0x24], eax
mov eax, dword [r9 + rcx - 0x24]
mov dword [r8 + rdx - 0x20], eax
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x18]
mov eax, dword [r9 + rcx - 0x20]
mov dword [r8 + rdx - 0x1c], eax
mov eax, dword [r9 + rcx - 0x1c]
mov dword [r8 + rdx - 0x18], eax
mov eax, dword [r9 + rcx - 0x18]
mov dword [r8 + rdx - 0x14], eax
mov rax, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x18]
mov ecx, dword [r9 + rax - 0x10]
mov dword [r8 + rdx - 4], ecx
mov rax, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x18]
mov ecx, dword [r9 + rax - 0x14]
mov dword [r8 + rdx - 8], ecx
mov rax, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x18]
mov ecx, dword [r9 + rax - 8]
mov dword [r8 + rdx - 0x10], ecx
mov rax, qword [rsp + 0xe8]
mov rdx, qword [r14 + 0x18]
mov ecx, dword [r9 + rax - 4]
mov dword [r8 + rdx - 0xc], ecx
cmp ebx, dword [r14 + 0x10]
jl 0x140245c22
lea rcx, [rsp + 0xb8]
call fcn.1402f2030
mov rbx, qword [rsp + 0xf0]
lea rcx, [rsp + 0x4c]
mov rdx, rbx
call fcn.1401466f0
test eax, eax
je 0x140245d3a
mov eax, 1
mov r14, qword [rsp + 0x5f0]
mov rsi, qword [rsp + 0x600]
mov rcx, qword [rsp + 0x540]
xor rcx, rsp
call fcn.140291ec0
add rsp, 0x608
pop r15
pop r12
pop rdi
pop rbx
ret
mov ecx, dword [rsp + 0x4c]
lea rdx, [r14 + 0x20]
lea r8, str.max_density
call fcn.140146fb0
mov ecx, dword [rsp + 0x4c]
lea rdx, [r14 + 0x24]
lea r8, str.height
call fcn.140146fb0
mov ecx, dword [rsp + 0x4c]
lea rdx, [r14 + 0x28]
lea r8, str.height_diff
call fcn.140146fb0
mov ecx, dword [rsp + 0x4c]
lea rdx, [r14 + 0x2c]
lea r8, str.width
call fcn.140146fb0
mov ecx, dword [rsp + 0x4c]
lea rdx, [r14 + 0x30]
lea r8, [0x1403139e0]
call fcn.140146fb0
mov ecx, dword [rsp + 0x4c]
lea r8, str.texture
lea rdx, [rsp + 0x320]
call fcn.140146bb0
mov ecx, dword [rsp + 0x4c]
call fcn.1401470a0
mov rcx, rbx
call fcn.14014ab30
lea r9, [rsp + 0x320]
lea rdx, str._s_s
lea rcx, [rsp + 0x430]
mov r8, rax
call sub.MSVCR90.dll_sprintf
lea rdx, [rsp + 0x430]
lea rcx, [rsp + 0xf8]
xor r8d, r8d
call fcn.1402519a0
test eax, eax
jne 0x140245e55
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
mov dword [r14 + 0x3c], ecx
mov dword [r14 + 0x38], eax
imul ecx, eax
shl ecx, 2
call fcn.14014a890
lea rcx, [rsp + 0xf8]
mov r9d, 1
xor r8d, r8d
mov rdx, rax
mov dword [rsp + 0x20], 2
mov qword [r14 + 0x40], rax
call fcn.140251ce0
lea rcx, [rsp + 0xf8]
call fcn.1402522d0
mov ecx, dword [r14 + 0x50]
imul ecx, dword [r14 + 0x4c]
call fcn.14014a890
mov edx, dword [r14 + 0x50]
mov rcx, rax
mov qword [r14 + 0x58], rax
imul edx, dword [r14 + 0x4c]
movsxd r8, edx
xor edx, edx
call sub.MSVCR90.dll_memset
mov rcx, r14
mov dword [r14], 1
call fcn.140243d50
xor eax, eax
jmp 0x140245d0c
mov eax, 1
jmp 0x140245d14