Function at 0x61b650
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x74e58a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4fc
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x98]
push edi
push eax
lea ecx, [esp + 0x5c]
call fcn.00412d00
mov eax, dword [esi + 0x50]
cdq
idiv dword [esi + 0x5c]
mov ebp, 1
mov edi, eax
add edi, ebp
test byte [esi + 0x18], 1
je 0x61b743
push 0
push 0x85e214
push 0x85e200
push 0
push esi
call fcn.0071f44c
push 0x10
mov ebx, eax
call fcn.0040fa60
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x20], ecx
test ecx, ecx
mov dword [esp + 0x514], 0
je 0x61b6e5
mov eax, dword [esi + 0x50]
cdq
idiv dword [esi + 0x5c]
push eax
call fcn.0043de00
jmp 0x61b6e7
xor eax, eax
push 0xff
lea ecx, [esp + 0x5c]
push ecx
mov ecx, eax
mov dword [esp + 0x51c], 0xffffffff
mov dword [ebx + 0xf0], eax
call fcn.0043e1a0
mov eax, dword [esi + 0x80]
push ebp
cdq
push 0
sub eax, edx
push 0
sar eax, 1
push 0
add eax, ebp
push 0
push eax
mov eax, dword [esi + 0x80]
cdq
sub eax, edx
sub esp, 8
mov ecx, esp
sar eax, 1
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov edx, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x40], esp
call dword [edx + 0x17c]
mov ecx, dword [0x86fb70]
imul edi, edi
mov eax, dword [ecx]
push 0
push 0
push edi
call dword [eax + 8]
test edi, edi
mov ebx, eax
mov dword [esp + 0x2c], ebx
jle 0x61b774
mov ecx, edi
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi + 0x50]
cdq
idiv dword [esi + 0x5c]
lea ecx, [esp + 0x70]
push eax
call fcn.0043e2d0
lea ecx, [esp + 0x58]
mov dword [esp + 0x514], ebp
call fcn.00412aa0
push eax
lea ecx, [esp + 0x3c]
call fcn.00412d00
push 0x3f333333
push 6
push 2
lea ecx, [esp + 0x7c]
call fcn.0043d5d0
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
fild qword [esp + 0x10]
mov ecx, dword [0x895598]
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fmul qword [0x780750]
lea edx, [ecx*8 + 0x895540]
push edx
fstp qword [0x895590]
call edi
add dword [0x895598], ebp
mov eax, dword [esi + 0x50]
cdq
idiv dword [esi + 0x5c]
lea ecx, [esp + 0xc8]
push eax
call fcn.0043e2d0
push 0x3f333333
push 6
push 2
lea ecx, [esp + 0xd4]
mov byte [esp + 0x520], 2
call fcn.0043d5d0
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xcc]
call fcn.0043d770
call fcn.00607080
push eax
lea ecx, [esp + 0x30c]
push str.Perlin_noise_making_time:__d_n
push ecx
call fcn.0071f52c
lea edx, [esp + 0x314]
push edx
call fcn.0041be20
mov eax, dword [esi + 0x50]
cdq
idiv dword [esi + 0x5c]
add esp, 0x10
lea ecx, [esp + 0x40]
push eax
call fcn.0043de00
mov eax, dword [0x895598]
lea ecx, [eax*8 + 0x895540]
push ecx
mov byte [esp + 0x518], 3
call edi
add dword [0x895598], ebp
push 0xff
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x48]
call fcn.0043e1a0
call fcn.00607080
push eax
lea eax, [esp + 0x30c]
push str.Subdivision_noise_making_time:__d_n
push eax
call fcn.0071f52c
lea ecx, [esp + 0x314]
push ecx
call fcn.0041be20
mov eax, dword [esi + 0x50]
cdq
idiv dword [esi + 0x5c]
add esp, 0x10
lea ecx, [esp + 0x120]
push eax
call fcn.0043e2d0
mov edx, dword [0x895598]
lea eax, [edx*8 + 0x895540]
push eax
mov byte [esp + 0x518], 4
call edi
add dword [0x895598], ebp
push 0
push 0x85e214
push 0x85e200
push 0
push esi
call fcn.0071f44c
add esp, 0x14
test eax, eax
jne 0x61b9bb
mov eax, dword [esi + 0x50]
cmp eax, 0x2000
jg 0x61b93b
je 0x61b934
cmp eax, 0x1000
je 0x61b92d
cmp eax, 0x1800
jne 0x61b949
mov ecx, 0x78
jmp 0x61b959
mov ecx, 0x1f
jmp 0x61b959
mov ecx, 0xf0
jmp 0x61b959
cmp eax, 0x3800
je 0x61b954
cmp eax, 0x5800
je 0x61b94d
xor ecx, ecx
jmp 0x61b959
mov ecx, 0x578
jmp 0x61b959
mov ecx, 0x244
cmp eax, 0x2000
jg 0x61b985
je 0x61b97e
cmp eax, 0x1000
je 0x61b977
cmp eax, 0x1800
jne 0x61b993
mov eax, 0x1f4
jmp 0x61b9a3
mov eax, 0xc8
jmp 0x61b9a3
mov eax, 0x320
jmp 0x61b9a3
cmp eax, 0x3800
je 0x61b99e
cmp eax, 0x5800
je 0x61b997
xor eax, eax
jmp 0x61b9a3
mov eax, 0x17d4
jmp 0x61b9a3
mov eax, 0xaf0
push ebx
push ecx
push eax
lea ecx, [esp + 0x12c]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00619bc0
add esp, 0x14
call fcn.00607080
push eax
lea eax, [esp + 0x30c]
push str.Make_ter_time:__d_n
push eax
call fcn.0071f52c
lea ecx, [esp + 0x314]
push ecx
call fcn.0041be20
mov ecx, dword [esp + 0x84]
mov edx, ecx
imul edx, ecx
add esp, 0x10
xor eax, eax
test edx, edx
jle 0x61ba20
jmp 0x61ba00
mov ecx, dword [esp + 0x128]
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x78]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x74]
mov edx, ecx
imul edx, ecx
add eax, ebp
cmp eax, edx
jl 0x61ba00
mov eax, dword [0x895598]
lea ecx, [eax*8 + 0x895540]
push ecx
call edi
add dword [0x895598], 1
mov edx, dword [esi + 0x28]
xor ebp, ebp
xor ebx, ebx
xor edi, edi
mov eax, 2
add edx, 0x408
lea ebx, [ebx]
mov ecx, dword [edx - 4]
test ecx, ecx
je 0x61ba94
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x61ba6e
lea ecx, [eax - 2]
mov dword [esp + ebp*4 + 0x178], ecx
add ebp, 1
jmp 0x61ba94
cmp ecx, 2
jne 0x61ba82
lea ecx, [eax - 2]
mov dword [esp + ebx*4 + 0x178], ecx
add ebx, 1
jmp 0x61ba94
cmp ecx, 3
jne 0x61ba94
lea ecx, [eax - 2]
mov dword [esp + edi*4 + 0x178], ecx
add edi, 1
mov ecx, dword [edx]
test ecx, ecx
je 0x61bad7
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x61bab1
lea ecx, [eax - 1]
mov dword [esp + ebp*4 + 0x178], ecx
add ebp, 1
jmp 0x61bad7
cmp ecx, 2
jne 0x61bac5
lea ecx, [eax - 1]
mov dword [esp + ebx*4 + 0x178], ecx
add ebx, 1
jmp 0x61bad7
cmp ecx, 3
jne 0x61bad7
lea ecx, [eax - 1]
mov dword [esp + edi*4 + 0x178], ecx
add edi, 1
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x61bb12
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x61baf2
mov dword [esp + ebp*4 + 0x178], eax
add ebp, 1
jmp 0x61bb12
cmp ecx, 2
jne 0x61bb03
mov dword [esp + ebx*4 + 0x178], eax
add ebx, 1
jmp 0x61bb12
cmp ecx, 3
jne 0x61bb12
mov dword [esp + edi*4 + 0x178], eax
add edi, 1
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x61bb56
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x61bb30
lea ecx, [eax + 1]
mov dword [esp + ebp*4 + 0x178], ecx
add ebp, 1
jmp 0x61bb56
cmp ecx, 2
jne 0x61bb44
lea ecx, [eax + 1]
mov dword [esp + ebx*4 + 0x178], ecx
add ebx, 1
jmp 0x61bb56
cmp ecx, 3
jne 0x61bb56
lea ecx, [eax + 1]
mov dword [esp + edi*4 + 0x178], ecx
add edi, 1
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x61bb9a
mov ecx, dword [ecx + 0x18]
cmp ecx, 1
jne 0x61bb74
lea ecx, [eax + 2]
mov dword [esp + ebp*4 + 0x178], ecx
add ebp, 1
jmp 0x61bb9a
cmp ecx, 2
jne 0x61bb88
lea ecx, [eax + 2]
mov dword [esp + ebx*4 + 0x178], ecx
add ebx, 1
jmp 0x61bb9a
cmp ecx, 3
jne 0x61bb9a
lea ecx, [eax + 2]
mov dword [esp + edi*4 + 0x178], ecx
add edi, 1
add eax, 5
lea ecx, [eax - 2]
add edx, 0x14
cmp ecx, 0xff
jl 0x61ba50
mov dl, byte [esi + 0x18]
mov eax, dword [esi + 0x50]
and dl, 1
neg dl
mov dword [esp + 0x34], 0
sbb edx, edx
and edx, 0xffffffce
add edx, 0x78
mov dword [esp + 0x50], edx
cdq
idiv dword [esi + 0x5c]
mov ebx, eax
add ebx, 1
lea ebp, [ebx - 1]
test ebp, ebp
mov dword [esp + 0x54], ebx
jl 0x61bd86
mov eax, ebp
imul eax, ebx
mov ecx, ebx
neg ecx
add eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], eax
jmp 0x61bc00
xor edi, edi
test ebx, ebx
jle 0x61bd75
lea ebx, [ebx]
lea eax, [esp + 0x10]
push eax
mov ecx, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
call fcn.00607cd0
test eax, eax
je 0x61bd5e
lea eax, [ebx - 1]
cmp ebp, eax
je 0x61bd5e
cmp edi, eax
je 0x61bd5e
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
imul edx, ebp
mov ecx, dword [esi + 0x68]
add edx, edi
mov dword [esp + 0x1c], ecx
fld dword [eax + edx*4]
fimul dword [esp + 0x1c]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or ah, 0xc
mov dword [esp + 0x28], eax
fldcw word [esp + 0x28]
fistp dword [esp + 0x28]
mov ebx, dword [esp + 0x28]
test ebx, ebx
fldcw word [esp + 0x1c]
jge 0x61bc80
xor ebx, ebx
cmp ebx, ecx
jle 0x61bc86
mov ebx, ecx
cmp ebx, dword [esp + 0x34]
jle 0x61bc90
mov dword [esp + 0x34], ebx
test byte [esi + 0x18], 1
jne 0x61bd5e
mov ecx, dword [esp + 0x30]
cmp byte [edi + ecx], 2
jne 0x61bce2
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
imul edx, ebp
add edx, edi
mov cl, byte [eax + edx*4]
push ecx
push 2
call fcn.006192d0
mov edx, dword [esp + 0x18]
add esp, 8
push eax
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x34], esp
call dword [edx + 0xe4]
jmp 0x61bd39
cmp ebx, dword [esp + 0x50]
jle 0x61bcfd
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
imul eax, ebp
add eax, edi
mov dl, byte [ecx + eax*4]
push edx
push 1
jmp 0x61bd10
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
imul ecx, ebp
add ecx, edi
mov al, byte [edx + ecx*4]
push eax
push 0
call fcn.006192d0
mov ecx, dword [esp + 0x18]
add esp, 8
push eax
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [esp + 0x20]
mov dword [eax + 4], edx
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x34], esp
call dword [eax + 0xe4]
mov ecx, dword [esp + 0x10]
push 1
push 0
push ebx
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x3c], esp
call dword [eax + 0xd4]
mov ebx, dword [esp + 0x54]
add edi, 1
cmp edi, ebx
jl 0x61bc10
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
sub ebp, 1
add eax, ecx
test ebp, ebp
mov dword [esp + 0x30], eax
jge 0x61bc00
mov ecx, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x30c]
push str.Max_height:__d_n
push edx
call fcn.0071f52c
lea eax, [esp + 0x314]
push eax
call fcn.0041be20
mov ebp, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
add esp, 0x10
lea ecx, [esp + 0x10]
push ecx
call ebp
fnstcw word [esp + 0x1c]
mov eax, dword [0x895598]
mov edx, dword [esp + 0x10]
sub edx, dword [eax*8 + 0x895538]
mov ecx, dword [esp + 0x14]
sbb ecx, dword [eax*8 + 0x89553c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
sub eax, 1
mov dword [0x895598], eax
fdiv qword [0x895590]
movzx eax, word [esp + 0x1c]
or ah, 0xc
mov dword [esp + 0x20], eax
lea eax, [esp + 0x308]
fldcw word [esp + 0x20]
fistp qword [esp + 0x10]
mov edx, dword [esp + 0x10]
push edx
push str.Tex__height_setting:__d_n
push eax
fldcw word [esp + 0x28]
call fcn.0071f52c
lea ecx, [esp + 0x314]
push ecx
call fcn.0041be20
add esp, 0x10
test byte [esi + 0x18], 1
jne 0x61be53
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x38]
push edx
push eax
lea ecx, [esp + 0xd0]
push ecx
push esi
call fcn.0061a420
add esp, 0x10
mov edx, dword [0x895598]
lea eax, [ebx - 1]
mov dword [esp + 0x6c], eax
lea eax, [edx*8 + 0x895540]
xor edi, edi
push eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], edi
call ebp
add dword [0x895598], 1
mov edx, dword [esi]
push edi
lea eax, [esp + 0x64]
push eax
mov ecx, esi
call dword [edx + 0xa8]
lea ecx, [esp + 0x10]
push ecx
call ebp
fnstcw word [esp + 0x1c]
mov eax, dword [0x895598]
mov edx, dword [esp + 0x10]
sub edx, dword [eax*8 + 0x895538]
mov ecx, dword [esp + 0x14]
sbb ecx, dword [eax*8 + 0x89553c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
sub eax, 1
mov dword [0x895598], eax
fdiv qword [0x895590]
movzx eax, word [esp + 0x1c]
or ah, 0xc
lea edx, [esp + 0x308]
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
push str.Height_adjusting:__d_n
push edx
fldcw word [esp + 0x28]
call fcn.0071f52c
lea eax, [esp + 0x314]
push eax
call fcn.0041be20
mov ecx, dword [0x895598]
mov eax, ebx
cdq
sub eax, edx
add esp, 0x10
lea edx, [ecx*8 + 0x895540]
mov edi, eax
push edx
sar edi, 1
call ebp
add dword [0x895598], 1
test byte [esi + 0x18], 1
mov ecx, esi
lea eax, [edi + 1]
push 0
je 0x61bf58
push eax
push 0x5a
push 0x55
sub esp, 8
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], edi
mov edx, dword [esi]
mov dword [esp + 0x38], esp
call dword [edx + 0x98]
jmp 0x61bf75
push 0
push eax
push 0x5a
push 0x55
sub esp, 8
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], edi
mov edx, dword [esi]
mov dword [esp + 0x3c], esp
call dword [edx + 0x8c]
lea eax, [esp + 0x10]
push eax
call ebp
fnstcw word [esp + 0x1c]
mov eax, dword [0x895598]
mov ecx, dword [esp + 0x10]
sub ecx, dword [eax*8 + 0x895538]
mov edx, dword [esp + 0x14]
sbb edx, dword [eax*8 + 0x89553c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
fild qword [esp + 0x20]
sub eax, 1
mov dword [0x895598], eax
fdiv qword [0x895590]
movzx eax, word [esp + 0x1c]
or ah, 0xc
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov eax, dword [esp + 0x20]
push eax
lea eax, [esp + 0x30c]
push str.Shores_fixing:__d_n
fldcw word [esp + 0x24]
push eax
call fcn.0071f52c
lea ecx, [esp + 0x314]
push ecx
call fcn.0041be20
mov ecx, dword [0x86fb70]
mov eax, dword [esp + 0x3c]
mov edx, dword [ecx]
add esp, 0x10
push eax
call dword [edx + 0xc]
lea ecx, [esp + 0x120]
mov byte [esp + 0x514], 3
call fcn.0043d720
lea ecx, [esp + 0x40]
mov byte [esp + 0x514], 2
call fcn.0043d6a0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x514], 1
call fcn.0043d720
lea ecx, [esp + 0x70]
mov dword [esp + 0x514], 0xffffffff
call fcn.0043d720
mov ecx, dword [esp + 0x50c]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret