Function at 0x43ed60
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45e7bd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x16c
push ebx
mov ebx, ecx
push esi
push edi
mov esi, dword [ebx + 0x40]
xor edi, edi
lea ecx, [esp + 0x14]
mov dword [esp + 0xf8], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x10], esi
call fcn.0045bc96
push 0x46fbe8
lea ecx, [esp + 0x10]
mov dword [esp + 0x184], edi
call fcn.0045bcba
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x60]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x11c]
mov byte [esp + 0x180], 5
test eax, eax
jne 0x441351
push 0x12
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
je 0x43edf0
mov dword [esp + 0x4c], 1
mov eax, dword [ebx + 0x48]
mov ecx, dword [esi + 0x4dc]
cmp eax, ecx
mov dword [esp + 0xb4], eax
jne 0x43ee16
mov eax, dword [ebx + 0x50]
mov ecx, esi
push eax
call fcn.0042ec40
mov dword [esp + 0xb4], eax
mov edx, dword [ebx + 0x20]
lea ecx, [esp + 0xd0]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebx + 0x50]
fld dword [eax]
fmul dword [ebx + 0xe8]
fld dword [eax + 8]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, eax
mov eax, dword [esp + 0xd8]
cdq
sub eax, edx
sar eax, 1
sub eax, ecx
mov ecx, dword [ebx + 0xc8]
sub eax, ecx
mov dword [ebx + 0xd0], eax
mov eax, dword [ebx + 0x50]
fld dword [eax + 8]
fmul dword [ebx + 0xe8]
fld dword [eax]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, eax
mov eax, dword [esp + 0xdc]
mov edi, dword [ebp + 0xc]
push 0
cdq
sub eax, edx
mov edx, dword [ebx + 0xcc]
sar eax, 1
add ecx, eax
lea eax, [edi + 0xa]
mov dword [esp + 0xdc], eax
mov eax, dword [ebp + 0x10]
sub ecx, edx
lea edx, [edi - 0xa]
mov dword [ebx + 0xd4], ecx
mov dword [esp + 0xd4], edx
mov edx, dword [ebx + 0x178]
lea ecx, [eax - 0xa]
mov dword [esp + 0xd8], ecx
add eax, 0xa
push edx
mov ecx, ebx
mov dword [esp + 0xe4], eax
call fcn.0043e550
mov eax, dword [ebx + 0x178]
add eax, 0xffff7fdf
cmp eax, 0x31
ja case.0x43ef11.32806
xor ecx, ecx
mov cl, byte [eax + 0x4413a8]
jmp dword [ecx*4 + 0x441390]
push 0x46fbe8
lea ecx, [esp + 0x10]
call fcn.0045bc90
mov al, byte [ebx + 0xbc]
mov dword [esp + 0x60], 0xffffffff
cmp al, 1
mov dword [esp + 0x18], 0x40000000
jne 0x441351
cmp word [esi + 0x556], 0
mov dword [esp + 0x1c], 0
jle 0x441351
mov dword [esp + 0x48], 0
cmp dword [esp + 0x4c], 1
jne 0x43f021
mov eax, dword [esi + 0x4a0]
test eax, eax
je 0x43f021
mov eax, dword [esi + 0x4a4]
test eax, eax
je 0x43f021
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x130]
push edx
push eax
mov ecx, ebx
call fcn.00451d20
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov edx, dword [eax + 4]
fild dword [esp + 0x38]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fld dword [ebx + 0xf0]
fmul dword [0x461e20]
fld st(2)
fmul dword [ebx + 0xe8]
fld st(2)
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv st(1)
call fcn.0045c3a6
fxch st(1)
fmul dword [ebx + 0xe8]
fxch st(2)
fmul dword [ebx + 0xec]
mov edi, eax
mov eax, dword [ebx + 0xd0]
add edi, eax
faddp st(2)
fxch st(1)
fmul dword [ebx + 0xe0]
fild dword [esp + 0x3c]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv st(1)
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
fstp st(0)
sub ecx, eax
jmp 0x43f09c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
fld dword [ebx + 0xf0]
mov edx, dword [ecx + 0x558]
fmul dword [0x461e20]
fild dword [edx + eax]
lea esi, [edx + eax]
fmul dword [ebx + 0xe8]
fild dword [esi + 8]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv st(1)
call fcn.0045c3a6
fild dword [esi + 8]
mov edi, eax
mov eax, dword [ebx + 0xd0]
add edi, eax
fmul dword [ebx + 0xe8]
fild dword [esi]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fild dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv st(1)
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
mov esi, dword [esp + 0x10]
fstp st(0)
sub ecx, eax
mov edx, dword [ebp + 0xc]
cmp edi, edx
jle 0x43f0a9
sub edi, edx
mov edx, edi
jmp 0x43f0ab
sub edx, edi
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jle 0x43f0b8
sub ecx, eax
mov eax, ecx
jmp 0x43f0ba
sub eax, ecx
mov ecx, dword [esp + 0x18]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x30], eax
jge 0x43f158
xor edi, edi
mov dword [esp + 0x60], edi
mov ecx, dword [esi + 0x4dc]
cmp ecx, edi
jle 0x43f152
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
mov ecx, dword [esi + 0x4e0]
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [eax + 0x50c]
cmp edx, ecx
jl 0x43f10a
mov eax, dword [eax + 0x510]
add eax, ecx
cmp edx, eax
jg 0x43f10a
mov dword [esp + 0x60], edi
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x4dc]
inc edi
add ecx, 0x57c
cmp edi, eax
mov dword [esp + 0x24], ecx
jl 0x43f0e4
mov eax, dword [esp + 0x30]
xor edi, edi
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x84], edi
neg ecx
sbb ecx, ecx
mov dword [esp + 0x9c], edx
and ecx, 2
mov dword [esp + 0x18], eax
add ecx, 4
mov dword [esp + 0x94], ecx
jmp 0x43f15c
mov edx, dword [esp + 0x1c]
jmp 0x43f129
mov edx, dword [esp + 0x1c]
movsx eax, word [esi + 0x556]
mov edi, dword [esp + 0x48]
inc edx
add edi, 0x24
cmp edx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], edi
jl 0x43ef62
mov eax, dword [esp + 0x60]
test eax, eax
jl 0x441351
sub esp, 0x44
mov ecx, 0x11
lea esi, [esp + 0xa4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00452080
test al, al
je 0x441351
test byte [ebp + 8], 0xc
je 0x43f21d
mov eax, dword [ebx + 0x80]
test eax, eax
jl 0x43f21d
push 0x78
call fcn.0045bcfc
add esp, 4
test eax, eax
je 0x43f1cf
mov dword [eax], 0x4657dc
jmp 0x43f1d1
xor eax, eax
mov ecx, dword [ebx + 0x84]
mov dword [eax + 0x40], ecx
mov edx, dword [ebx + 0x48]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 0x7c]
mov dword [eax + 0x38], ecx
mov edx, dword [ebx + 0x70]
mov dword [eax + 0x2c], edx
mov ecx, dword [ebx + 0x80]
mov dword [eax + 0x3c], ecx
mov ecx, dword [ebx + 0x50]
lea edx, [ebx + 0x58]
cmp ecx, edx
jne 0x43f212
mov edx, dword [edx]
lea ecx, [eax + 0x14]
mov dword [ecx], edx
mov edx, dword [ebx + 0x60]
mov dword [eax + 0x1c], edx
mov edx, dword [ebx + 0x5c]
mov dword [eax + 0x18], edx
mov dword [eax + 0xc], ecx
mov dword [ebx + 0x84], eax
jmp 0x43f237
mov ecx, dword [ebx + 0x84]
test ecx, ecx
je 0x43f237
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x84], 0
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x84]
mov dword [ebx + 0x48], ecx
mov ecx, dword [esp + 0x9c]
cmp eax, 4
mov dword [ebx + 0x7c], eax
mov dword [ebx + 0x70], edx
mov dword [ebx + 0x80], ecx
jne 0x43f2c9
mov edi, dword [esp + 0x10]
lea eax, [ecx + ecx*8]
shl eax, 2
mov edx, dword [edi + 0x558]
lea esi, [ebx + 0x58]
fild dword [edx + eax]
fmul dword [0x461020]
fstp dword [esi]
mov edx, dword [edi + 0x558]
fild dword [edx + eax + 8]
fmul dword [0x461020]
fstp dword [ebx + 0x60]
mov edx, dword [edi + 0x558]
fild dword [edx + eax + 4]
mov eax, dword [esp + 0x60]
push eax
push ecx
fmul dword [0x461020]
lea ecx, [esp + 0x14]
push str.Virtual_Road_object__d_from_block__d_selected
push ecx
fstp dword [ebx + 0x5c]
call fcn.0045bcb4
mov eax, dword [esp + 0xa4]
add esp, 0x10
jmp 0x43f2d1
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
cmp eax, 6
jne 0x43f37c
mov edx, dword [ebx + 0x80]
lea eax, [esp + 0x154]
push edx
push eax
mov ecx, ebx
lea esi, [ebx + 0x58]
call fcn.00451d20
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 8]
fmul dword [0x461020]
mov dword [esp + 0x40], eax
mov al, byte [ebx + 0xc6]
test al, al
mov eax, dword [ebx + 0x80]
fstp dword [esi]
fild dword [esp + 0x40]
fmul dword [0x461020]
fstp dword [ebx + 0x60]
fild dword [esp + 0x3c]
fmul dword [0x461020]
fstp dword [ebx + 0x5c]
je 0x43f357
mov ecx, dword [edi + 0x76c]
xor edx, edx
mov dl, byte [ecx + eax*8]
mov ecx, edx
push ecx
mov ecx, dword [ebx + 0x48]
push ecx
push eax
push str.Forward_AI_Point_object__d_from_block__d_selected._Speed_is__d_
jmp 0x43f36f
mov ecx, dword [edi + 0x770]
xor edx, edx
mov dl, byte [ecx + eax*8]
mov ecx, edx
push ecx
mov ecx, dword [ebx + 0x48]
push ecx
push eax
push str.Backward_AI_Point_object__d_from_block__d_selected.Speed_is__d_
lea edx, [esp + 0x1c]
push edx
call fcn.0045bcb4
add esp, 0x14
fld dword [ebx + 0xe8]
fmul dword [esi]
fld dword [ebx + 0xec]
fmul dword [esi + 8]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [ebx + 0xe8]
fmul dword [esi + 8]
fld dword [ebx + 0xec]
fmul dword [esi]
add eax, dword [ebx + 0xd0]
faddp st(1)
mov dword [esp + 0x34], eax
fmul dword [ebx + 0xe0]
fld dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
mov dword [ebx + 0x50], esi
sub ecx, eax
mov edi, 0x46fbe8
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xc]
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x44027f
test al, al
je 0x43f415
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x44027f
add esi, 2
add edi, 2
test al, al
jne 0x43f3ed
xor eax, eax
jmp 0x440284
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x60], ecx
mov edx, dword [esi + 0x4dc]
cmp edx, eax
mov dword [esp + 0x18], 0x40000000
mov dword [esp + 0x20], eax
jle 0x43f56f
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x4e0]
fld dword [edx + ecx]
fmul dword [ebx + 0xe8]
fld dword [edx + ecx + 8]
lea edi, [edx + ecx]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [edi + 8]
fmul dword [ebx + 0xe8]
fld dword [edi]
fmul dword [ebx + 0xec]
mov edx, dword [ebx + 0xd0]
mov esi, eax
add esi, edx
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [edi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov edi, dword [ebx + 0xd4]
sub edi, eax
mov eax, dword [ebp + 0xc]
cmp esi, eax
jle 0x43f4c2
mov edx, esi
sub edx, eax
jmp 0x43f4cd
mov eax, dword [ebp + 0xc]
sub eax, esi
mov dword [esp + 0x30], eax
mov edx, eax
mov ecx, dword [ebp + 0x10]
cmp edi, ecx
jle 0x43f4da
mov eax, edi
sub eax, ecx
jmp 0x43f4de
mov eax, ecx
sub eax, edi
add edx, eax
mov eax, dword [esp + 0x18]
cmp edx, eax
mov dword [esp + 0x30], edx
jge 0x43f542
mov al, byte [ebx + 0xbe]
test al, al
je 0x43f517
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xb4]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0042a650
test al, al
je 0x43f517
mov eax, 1
jmp 0x43f519
xor eax, eax
mov cl, byte [ebx + 0xbe]
xor edx, edx
test cl, cl
sete dl
or edx, eax
je 0x43f542
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x60], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add edx, 0x57c
inc eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
cmp eax, dword [edx + 0x4dc]
jl 0x43f443
mov ecx, dword [esp + 0x60]
mov esi, edx
lea eax, [esp + 0xd0]
mov edx, dword [esi + 0x4e0]
push eax
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
lea ecx, [eax + eax*8]
lea eax, [edx + ecx*4]
mov ecx, ebx
push eax
call fcn.00434550
test eax, eax
je 0x441351
mov ecx, dword [esp + 0x60]
mov eax, dword [ebx + 0x48]
cmp eax, ecx
je 0x441351
lea eax, [ecx + ecx*4]
mov dword [ebx + 0x48], ecx
mov edx, dword [esi + 0x4e0]
sub esp, 8
shl eax, 3
sub eax, ecx
sub esp, 8
sub esp, 8
lea ecx, [eax + eax*8]
sub esp, 8
lea eax, [edx + ecx*4]
mov dword [ebx + 0x50], eax
fld dword [esi + 0x54]
fstp qword [esp + 0x18]
fld dword [eax + 4]
fstp qword [esp + 0x10]
fld dword [eax + 8]
fstp qword [esp + 8]
fld dword [eax]
lea eax, [esp + 0x34]
fstp qword [esp]
push str.X:_f_Y:_f_Z:_f_InMemZ:_f
push eax
call fcn.0045bcb4
mov ecx, dword [esp + 0x3c]
add esp, 0x28
push 1
push ecx
mov ecx, dword [ebx + 0xf8]
push 3
call fcn.0045c344
mov al, byte [ebx + 0xbe]
test al, al
je 0x43f63c
mov edx, dword [ebx + 0x48]
lea eax, [esp + 0xc]
push edx
push str.Block__d_selected._Right_mouse_click_to_set_visibility._Control__Right_mouse_click_to_toggle_visibility.
push eax
call fcn.0045bcb4
mov eax, dword [esp + 0x18]
add esp, 0xc
push 1
push eax
jmp 0x441195
mov ecx, dword [ebx + 0x48]
lea edx, [esp + 0xc]
push ecx
push str.Block__d_selected.
push edx
call fcn.0045bcb4
mov eax, dword [esp + 0x18]
add esp, 0xc
push 1
push eax
jmp 0x441195
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x60]
push ecx
push edx
push edi
mov ecx, ebx
call fcn.00452f90
mov eax, dword [esp + 0x68]
test eax, eax
je 0x441351
sub esp, 0x44
mov ecx, 0x11
lea esi, [esp + 0xa4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00452080
test al, al
jne 0x43f6a3
test byte [ebp + 8], 0xc
jne 0x441351
mov al, byte [ebp + 8]
test al, 4
je 0x43fa4c
mov eax, dword [ebx + 0x50]
sub esp, 0xc
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], edx
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], esi
mov edi, dword [eax]
mov dword [esp + 0x60], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], eax
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x110], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x114], edi
mov edi, esp
sub esp, 0xc
mov dword [esp + 0x50], ecx
mov dword [edi], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 8], eax
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.0042df10
fst dword [esp + 0x18]
fcomp dword [0x464000]
fnstsw ax
test ah, 1
jne 0x441351
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x16c]
push ecx
push edx
lea ecx, [esp + 0x108]
call fcn.00417e60
fld dword [0x464078]
fdiv dword [esp + 0x18]
mov ecx, dword [eax]
mov dword [esp + 0xec], ecx
mov edx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0xf4], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xf8], eax
fstp dword [esp]
push ecx
lea ecx, [esp + 0xf4]
call fcn.004413e0
fld dword [0x464078]
fcomp dword [esp + 0x18]
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], ecx
fnstsw ax
mov dword [esp + 0x28], 0x3f000000
test ah, 1
je 0x43fa1b
lea edx, [esp + 0xec]
lea eax, [esp + 0x160]
push edx
push eax
lea ecx, [esp + 0xac]
call fcn.00431740
fld dword [esp + 0xa4]
fmul dword [ebx + 0xe8]
fld dword [esp + 0xac]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [esp + 0xac]
fmul dword [ebx + 0xe8]
fld dword [esp + 0xa4]
fmul dword [ebx + 0xec]
mov edi, dword [ebx + 0xd0]
mov esi, eax
add esi, edi
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [esp + 0xa8]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
lea edx, [esp + 0x60]
sub ecx, eax
push edx
push ecx
push esi
mov ecx, ebx
call fcn.00452f90
mov eax, dword [esp + 0x68]
test eax, eax
je 0x43f9fa
sub esp, 0x44
mov ecx, 0x11
lea esi, [esp + 0xa4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00452080
test al, al
je 0x43f9fa
mov ecx, ebx
call fcn.004346a0
mov eax, dword [ebx + 0x50]
mov ecx, dword [eax]
mov dword [esp + 0xe0], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe4], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x43f960
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x50], eax
sub esp, 8
fld dword [ecx + 0x54]
lea edx, [esp + 0x1c]
fstp qword [esp]
fld dword [eax + 4]
sub esp, 8
fstp qword [esp]
fld dword [eax + 8]
sub esp, 8
fstp qword [esp]
fld dword [eax]
sub esp, 8
fstp qword [esp]
push str.X:_f_Y:_f_Z:_f_InMemZ:_f
push edx
call fcn.0045bcb4
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xb8]
push eax
push ecx
lea edx, [esp + 0x3c]
push str.Point__d_selected.__Block__d_
push edx
call fcn.0045bcb4
add esp, 0x38
jmp 0x43f9fa
cmp eax, 1
jne 0x43f9fa
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x98]
lea eax, [ebx + 0x58]
sub esp, 8
mov dword [ebx + 0x50], eax
sub esp, 8
fld dword [ecx]
fadd dword [edx]
sub esp, 8
sub esp, 8
fstp dword [eax]
fld dword [edx + 4]
fadd dword [ecx + 4]
fstp dword [ebx + 0x5c]
fld dword [edx + 8]
fadd dword [ecx + 8]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x34]
fst dword [ebx + 0x60]
fld dword [ecx + 0x54]
fstp qword [esp + 0x18]
fld dword [ebx + 0x5c]
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fld dword [eax]
fstp qword [esp]
push str.X:_f_Y:_f_Z:_f_InMemZ:_f
push edx
call fcn.0045bcb4
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xbc]
push ecx
push edx
push eax
lea ecx, [esp + 0x44]
push str.Point__d_from_extra_object__d_selected.__Block__d__Chunk__d_
push ecx
call fcn.0045bcb4
add esp, 0x40
fld dword [esp + 0x28]
fadd qword [0x461e28]
fst dword [esp + 0x28]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x43f7fd
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 0x84]
test eax, eax
je 0x43fc89
lea ecx, [esp + 0x24]
call fcn.0045bc96
xor edi, edi
mov byte [esp + 0x180], 6
test ebx, ebx
je 0x43fbcd
lea eax, [ebx + 0x44]
jmp 0x43fbcf
test al, 8
je 0x43fa85
cmp dword [ebx + 0x17c], 0x803e
je 0x43fa85
mov esi, dword [ebx + 0x178]
xor edx, edx
cmp esi, 0x8023
sete dl
xor eax, eax
cmp esi, 0x8022
sete al
or edx, eax
je 0x43fa85
mov ecx, ebx
call fcn.004346a0
jmp 0x43fa9f
mov ecx, dword [ebx + 0x84]
test ecx, ecx
je 0x43fa9f
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [ebx + 0x84], 0
mov eax, dword [ebx + 0x50]
mov ecx, dword [eax]
mov dword [esp + 0xe0], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe4], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x43fb2e
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x50], eax
sub esp, 8
fld dword [esi + 0x54]
lea ecx, [esp + 0x1c]
fstp qword [esp]
fld dword [eax + 4]
sub esp, 8
fstp qword [esp]
fld dword [eax + 8]
sub esp, 8
fstp qword [esp]
fld dword [eax]
sub esp, 8
fstp qword [esp]
push str.X:_f_Y:_f_Z:_f_InMemZ:_f
push ecx
call fcn.0045bcb4
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0xb8]
push edx
push eax
lea ecx, [esp + 0x3c]
push str.Point__d_selected.__Block__d_
push ecx
call fcn.0045bcb4
add esp, 0x38
jmp 0x43fa1b
cmp eax, 1
jne 0x43fa17
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x98]
lea eax, [ebx + 0x58]
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x50], eax
sub esp, 8
fld dword [ecx]
fadd dword [edx]
sub esp, 8
sub esp, 8
sub esp, 8
fstp dword [eax]
fld dword [edx + 4]
fadd dword [ecx + 4]
fstp dword [ebx + 0x5c]
fld dword [edx + 8]
fadd dword [ecx + 8]
lea edx, [esp + 0x34]
fst dword [ebx + 0x60]
fld dword [esi + 0x54]
fstp qword [esp + 0x18]
fld dword [ebx + 0x5c]
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fld dword [eax]
fstp qword [esp]
push str.X:_f_Y:_f_Z:_f_InMemZ:_f
push edx
call fcn.0045bcb4
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xbc]
push ecx
push edx
push eax
lea ecx, [esp + 0x44]
push str.Point__d_from_extra_object__d_selected.__Block__d__Chunk__d_
push ecx
call fcn.0045bcb4
add esp, 0x40
jmp 0x43fa1b
xor eax, eax
mov eax, dword [eax + 0xc]
test ebx, ebx
mov edx, dword [eax]
mov dword [esp + 0x54], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x58], edx
je 0x43fc16
lea eax, [ebx + 0x44]
test eax, eax
je 0x43fc16
mov ecx, dword [eax + 0xc]
inc edi
mov edx, dword [ecx]
mov dword [esp + 0x38], edx
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 8]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x43fbf1
lea eax, [esp + 0x38]
lea ecx, [esp + 0x54]
push eax
push ecx
mov ecx, esi
call fcn.0042dec0
fld dword [esp + 0x54]
fsub dword [esp + 0x38]
sub esp, 8
lea edx, [esp + 0x2c]
fstp dword [esi + 0x2fa74]
fld dword [esp + 0x64]
fsub dword [esp + 0x48]
fstp dword [esi + 0x2fa7c]
fld dword [esp + 0x60]
fsub dword [esp + 0x44]
fstp dword [esi + 0x2fa78]
fstp qword [esp]
push edi
push str.___d_points_selected._Distance_between_first_an_last_point_is__f
push edx
call fcn.0045bcb4
add esp, 0x14
lea eax, [esp + 0x24]
lea ecx, [esp + 0xc]
push eax
call fcn.0045be94
lea ecx, [esp + 0x24]
mov byte [esp + 0x180], 5
call fcn.0045bc84
cmp dword [ebx + 0x17c], 0x803e
jne 0x43fd0f
test byte [ebp + 8], 8
je 0x43fd0f
mov ecx, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebx + 0x48]
push ecx
push edx
lea ecx, [esp + 0xe8]
push eax
push ecx
mov ecx, esi
call fcn.004169e0
mov eax, dword [ebx + 0x50]
lea edx, [esp + 0xe0]
push edx
push eax
mov ecx, esi
call fcn.0041fd30
mov ecx, dword [esp + 0xe0]
lea eax, [ebx + 0x58]
mov dword [ebx + 0x50], eax
push 1
mov dword [eax], ecx
mov edx, dword [esp + 0xe8]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0xec]
mov dword [eax + 8], ecx
mov edx, dword [ebx + 0x20]
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [ebx + 0x190], 1
jmp 0x441351
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x190], 1
mov edi, 0x46fbe8
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x43fd4f
test al, al
je 0x43fd4b
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x43fd4f
add esi, 2
add edi, 2
test al, al
jne 0x43fd2b
xor eax, eax
jmp 0x43fd54
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43fd68
push 1
push ecx
mov ecx, dword [ebx + 0xf8]
push 0
call fcn.0045c344
mov eax, dword [esp + 0x14]
push 1
push eax
push 3
jmp 0x441197
push 0x46fbe8
lea ecx, [esp + 0x10]
call fcn.0045bc90
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x60]
push ecx
push edx
push edi
mov ecx, ebx
call fcn.004521c0
lea eax, [esp + 0x6c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x441351
sub esp, 0x44
mov ecx, 0x11
lea esi, [esp + 0xa4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00452080
test al, al
mov al, byte [ebp + 8]
jne 0x43fdd2
test al, 0xc
jne 0x441351
test al, 4
je 0x4400eb
mov eax, dword [ebx + 0x50]
sub esp, 0xc
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], edx
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], esi
mov edi, dword [eax]
mov dword [esp + 0x60], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], eax
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x110], edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x114], edi
mov edi, esp
sub esp, 0xc
mov dword [esp + 0x50], ecx
mov dword [edi], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 8], eax
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov dword [eax + 8], esi
call fcn.0042df10
fst dword [esp + 0x18]
fcomp dword [0x464000]
fnstsw ax
test ah, 1
jne 0x441351
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x148]
push ecx
push edx
lea ecx, [esp + 0x108]
call fcn.00417e60
fld dword [0x464078]
fdiv dword [esp + 0x18]
mov ecx, dword [eax]
mov dword [esp + 0xec], ecx
mov edx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x128]
mov dword [esp + 0xf4], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xf8], eax
fstp dword [esp]
push ecx
lea ecx, [esp + 0xf4]
call fcn.004413e0
fld dword [0x464078]
fcomp dword [esp + 0x18]
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], ecx
fnstsw ax
mov dword [esp + 0x28], 0x3f000000
test ah, 1
je 0x4401e0
lea edx, [esp + 0xec]
lea eax, [esp + 0x13c]
push edx
push eax
lea ecx, [esp + 0xac]
call fcn.00431740
fld dword [esp + 0xa4]
fmul dword [ebx + 0xe8]
fld dword [esp + 0xac]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [esp + 0xac]
fmul dword [ebx + 0xe8]
fld dword [esp + 0xa4]
fmul dword [ebx + 0xec]
mov edi, dword [ebx + 0xd0]
mov esi, eax
add esi, edi
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [esp + 0xa8]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
lea edx, [esp + 0x60]
sub ecx, eax
push edx
push ecx
push esi
mov ecx, ebx
call fcn.004521c0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4400c9
sub esp, 0x44
mov ecx, 0x11
lea esi, [esp + 0xa4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00452080
test al, al
je 0x4400c9
mov ecx, ebx
call fcn.004346a0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x9c]
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0x8c]
mov dword [ebx + 0x70], ecx
mov dword [ebx + 0x78], eax
mov eax, dword [esp + 0x94]
test eax, eax
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x7c], eax
je 0x440038
mov ecx, dword [esp + 0x98]
mov dword [ebx + 0x54], ecx
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x68]
mov dword [ebx + 0x64], edx
fld dword [ebx + 0xe8]
mov dword [ebx + 0x68], eax
fmul dword [esi]
fld dword [ebx + 0xec]
fmul dword [esi + 8]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [ebx + 0xe8]
fmul dword [esi + 8]
fld dword [esi]
fmul dword [ebx + 0xec]
add eax, dword [ebx + 0xd0]
faddp st(1)
mov dword [esp + 0x34], eax
fmul dword [ebx + 0xe0]
fld dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
mov edx, dword [esp + 0x6c]
sub ecx, eax
lea eax, [ebx + 0x58]
mov dword [esp + 0x2c], ecx
mov ecx, eax
mov dword [ebx + 0x50], eax
mov dword [ecx], edx
mov edx, dword [esp + 0x70]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x74]
mov dword [ecx + 8], edx
fld dword [esp + 0x28]
fadd qword [0x461e28]
fst dword [esp + 0x28]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x43ff27
jmp 0x4401e0
test al, 8
je 0x4400f8
mov ecx, ebx
call fcn.004346a0
jmp 0x440112
mov ecx, dword [ebx + 0x84]
test ecx, ecx
je 0x440112
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x84], 0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x84]
mov dword [ebx + 0x74], eax
mov eax, dword [esp + 0x94]
mov dword [ebx + 0x48], ecx
mov ecx, dword [esp + 0x8c]
mov dword [ebx + 0x70], edx
test eax, eax
mov dword [ebx + 0x78], ecx
mov dword [ebx + 0x7c], eax
je 0x44014f
mov edx, dword [esp + 0x98]
mov dword [ebx + 0x54], edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x68]
mov dword [ebx + 0x64], eax
fld dword [ebx + 0xe8]
mov dword [ebx + 0x68], ecx
fmul dword [esi]
fld dword [ebx + 0xec]
fmul dword [esi + 8]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [ebx + 0xe8]
fmul dword [esi + 8]
fld dword [esi]
fmul dword [ebx + 0xec]
add eax, dword [ebx + 0xd0]
faddp st(1)
mov dword [esp + 0x34], eax
fmul dword [ebx + 0xe0]
fld dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
sub ecx, eax
lea eax, [ebx + 0x58]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov dword [ebx + 0x50], eax
mov dword [edx], ecx
mov ecx, dword [esp + 0x70]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 8], ecx
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x44020b
mov edx, dword [ebx + 0x70]
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x78]
push edx
push eax
push ecx
lea edx, [esp + 0x18]
push str.Trackpolygon__d_from_block__d__chunk__d_selected.
push edx
call fcn.0045bcb4
add esp, 0x14
jmp 0x440250
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x44022e
mov eax, dword [ebx + 0x70]
mov ecx, dword [ebx + 0x48]
mov edx, dword [ebx + 0x74]
push eax
mov eax, dword [ebx + 0x78]
push ecx
push edx
push eax
lea ecx, [esp + 0x1c]
push str.Polygon__d_from_extra_object__d__Block__d___chunk__d__selected.
push ecx
jmp 0x440248
mov edx, dword [ebx + 0x70]
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x74]
push edx
mov edx, dword [ebx + 0x78]
push eax
push ecx
push edx
lea eax, [esp + 0x1c]
push str.Polygon__d_from_object__d__Block__d___chunk__d__selected.
push eax
call fcn.0045bcb4
add esp, 0x18
mov ecx, dword [esp + 0xc]
mov edi, 0x46fbe8
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x44027f
test al, al
je 0x44027b
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x44027f
add esi, 2
add edi, 2
test al, al
jne 0x44025b
xor eax, eax
jmp 0x440284
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x43ef11.32806
jmp 0x441192
mov eax, dword [ebx + 0xfc]
test eax, eax
je 0x441351
push 0x46fbe8
lea ecx, [esp + 0x10]
call fcn.0045bc90
mov dword [esp + 0x60], 0xffffffff
mov ecx, dword [esi + 0x4dc]
xor eax, eax
mov dword [esp + 0x18], 0x40000000
cmp ecx, eax
mov dword [esp + 0x20], eax
jle 0x4408aa
mov dword [esp + 0x28], eax
mov dword [esp + 0xc4], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
lea eax, [esp + 0xd0]
mov ecx, dword [esi + 0x4e0]
push eax
add ecx, edi
push ecx
mov ecx, ebx
call fcn.00434550
test eax, eax
jne 0x44030a
cmp dword [ebp + 8], 5
jne 0x44086d
mov al, byte [ebx + 0xbe]
test al, al
je 0x440330
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xb4]
push edx
push eax
mov ecx, esi
call fcn.0042a650
test al, al
je 0x44086d
mov ecx, dword [esi + 0x4e0]
mov dword [esp + 0x2c], 0
mov ecx, dword [ecx + edi + 0x54]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0xb0], edi
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x4e4]
lea edi, [edi + eax + 0x54]
mov dword [esp + 0x44], edi
cmp dword [edi], 0
je 0x44061b
mov eax, dword [edi + 8]
xor edx, edx
test eax, eax
mov dword [esp + 0x1c], edx
jle 0x44061b
mov esi, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
mov esi, dword [esi + edx*4]
mov eax, dword [eax + edx*4]
test esi, esi
mov dword [esp + 0x34], eax
jle 0x44060b
mov edx, dword [ebx + 0xd0]
mov dword [esp + 0xfc], esi
shl edx, 2
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 0xd4]
shl edx, 2
mov dword [esp + 0xc8], edx
jmp 0x4403c5
mov ecx, dword [esp + 0x30]
movsx edx, word [eax]
movsx edi, word [eax + 4]
lea edx, [edx + edx*2]
lea edi, [edi + edi*2]
lea esi, [ecx + edx*4]
movsx edx, word [eax + 2]
movsx eax, word [eax + 6]
lea edx, [edx + edx*2]
lea edi, [ecx + edi*4]
lea eax, [eax + eax*2]
mov dword [esp + 0x4c], esi
fld dword [ecx + edx*4]
fmul dword [ebx + 0xe8]
fld dword [ecx + edx*4 + 8]
lea edx, [ecx + edx*4]
lea ecx, [ecx + eax*4]
fmul dword [ebx + 0xec]
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], edi
mov dword [esp + 0x24], ecx
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [ebx + 0xe8]
fmul dword [edi]
fld dword [edi + 8]
fmul dword [ebx + 0xec]
mov edx, eax
mov edi, edx
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [ebx + 0xe8]
fmul dword [esi]
fld dword [esi + 8]
fmul dword [ebx + 0xec]
add edi, eax
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov esi, eax
mov eax, dword [esp + 0xcc]
add esi, eax
mov eax, dword [esp + 0x24]
fld dword [eax]
fmul dword [ebx + 0xe8]
fld dword [eax + 8]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
add esi, edi
add eax, esi
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x4c]
sar edi, 2
fld dword [eax + 8]
fmul dword [ebx + 0xe8]
fld dword [ebx + 0xec]
fmul dword [eax]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
fchs
call fcn.0045c3a6
mov esi, eax
mov eax, dword [esp + 0x48]
fld dword [eax + 8]
fmul dword [ebx + 0xe8]
fld dword [ebx + 0xec]
fmul dword [eax]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
sub esi, eax
mov eax, dword [esp + 0x24]
fld dword [eax + 8]
fmul dword [ebx + 0xe8]
fld dword [eax]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
sub esi, eax
mov eax, dword [esp + 0x50]
fld dword [eax + 8]
fmul dword [ebx + 0xe8]
fld dword [ebx + 0xec]
fmul dword [eax]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov edx, dword [esp + 0xc8]
sub esi, eax
add esi, edx
mov ecx, dword [ebp + 0xc]
mov eax, esi
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp edi, ecx
jle 0x440591
sub edi, ecx
mov edx, edi
jmp 0x440596
mov edx, dword [ebp + 0xc]
sub edx, edi
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jle 0x4405a3
sub eax, ecx
mov ecx, eax
jmp 0x4405a5
sub ecx, eax
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jge 0x4405df
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x94], 0
jmp 0x4405e3
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xfc]
add eax, 0xe
dec ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0xfc], ecx
jne 0x4403c1
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
mov eax, dword [edi + 8]
inc edx
cmp edx, eax
mov dword [esp + 0x1c], edx
jl 0x440380
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xb0]
inc eax
add edi, 0x18
cmp eax, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0xb0], edi
jl 0x440354
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], 0
mov eax, dword [edx + 0x4e0]
mov edx, dword [eax + ecx + 0x528]
add eax, ecx
test edx, edx
mov esi, dword [eax + 0x540]
jle 0x440754
fld dword [ebx + 0xf0]
fmul dword [0x461e20]
mov dword [esp + 0x44], ecx
fild dword [esi]
fild dword [esi + 8]
fld st(1)
fmul dword [ebx + 0xe8]
fld st(1)
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv st(3)
call fcn.0045c3a6
fmul dword [ebx + 0xe8]
fxch st(1)
fmul dword [ebx + 0xec]
mov edi, eax
mov eax, dword [ebx + 0xd0]
add edi, eax
faddp st(1)
fmul dword [ebx + 0xe0]
fild dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv st(1)
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
sub ecx, eax
mov eax, dword [ebp + 0xc]
cmp edi, eax
jle 0x4406e0
sub edi, eax
mov edx, edi
jmp 0x4406e5
mov edx, dword [ebp + 0xc]
sub edx, edi
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jle 0x4406f2
sub ecx, eax
mov eax, ecx
jmp 0x4406f4
sub eax, ecx
mov ecx, dword [esp + 0x18]
add eax, edx
cmp eax, ecx
jge 0x44072b
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x9c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x94], 2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc eax
add esi, 0x10
mov edx, dword [ecx + 0x4e0]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
cmp eax, dword [edx + ecx + 0x528]
jl 0x44067b
fstp st(0)
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], 0
mov eax, dword [edx + 0x4e0]
add eax, ecx
mov ecx, dword [eax + 0x524]
mov esi, dword [eax + 0x53c]
test ecx, ecx
jle 0x44086d
fld dword [ebx + 0xf0]
mov edx, dword [esp + 0x28]
fmul dword [0x461e20]
mov dword [esp + 0x44], edx
fild dword [esi]
fild dword [esi + 8]
fld st(1)
fmul dword [ebx + 0xe8]
fld st(1)
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv st(3)
call fcn.0045c3a6
fmul dword [ebx + 0xe8]
fxch st(1)
fmul dword [ebx + 0xec]
mov edi, eax
mov eax, dword [ebx + 0xd0]
add edi, eax
faddp st(1)
fmul dword [ebx + 0xe0]
fild dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv st(1)
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
sub ecx, eax
mov eax, dword [ebp + 0xc]
cmp edi, eax
jle 0x4407f9
sub edi, eax
mov edx, edi
jmp 0x4407fe
mov edx, dword [ebp + 0xc]
sub edx, edi
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jle 0x44080b
sub ecx, eax
mov eax, ecx
jmp 0x44080d
sub eax, ecx
mov ecx, dword [esp + 0x18]
add eax, edx
cmp eax, ecx
jge 0x440844
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x9c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x94], 3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc eax
add esi, 0x10
mov edx, dword [ecx + 0x4e0]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
cmp eax, dword [edx + ecx + 0x524]
jl 0x440794
fstp st(0)
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0xc4]
add edx, 0x57c
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x10]
inc eax
add esi, 0xb4
mov ecx, dword [edx + 0x4dc]
mov dword [esp + 0x20], eax
cmp eax, ecx
mov dword [esp + 0xc4], esi
jl 0x4402dc
mov edi, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x20], esi
mov eax, dword [edi + 0x4dc]
shl eax, 2
lea ecx, [eax + 2]
test ecx, ecx
jle 0x440c99
cmp esi, eax
je 0x44090c
inc eax
cmp esi, eax
je 0x44090c
lea edx, [esp + 0xd0]
mov eax, esi
push edx
cdq
and edx, 3
add eax, edx
sar eax, 2
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
lea eax, [ecx + ecx*8]
mov ecx, dword [edi + 0x4e0]
lea edx, [ecx + eax*4]
mov ecx, ebx
push edx
call fcn.00434550
test eax, eax
jne 0x44090c
or esi, 3
jmp 0x440c78
mov al, byte [ebx + 0xbe]
test al, al
je 0x440943
mov eax, esi
mov ecx, dword [edi + 0x4dc]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp eax, ecx
je 0x440943
push eax
mov eax, dword [esp + 0xb8]
push eax
mov ecx, edi
call fcn.0042a650
test al, al
je 0x440c78
mov ecx, dword [edi + 0x4e8]
mov edi, dword [ecx + esi*8 + 4]
mov dword [esp + 0x2c], 0
lea eax, [ecx + esi*8]
mov ecx, dword [ecx + esi*8]
test ecx, ecx
jle 0x440c78
add edi, 0x10
mov dword [esp + 0xb0], edi
mov edx, dword [edi + 0x34]
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x30], ecx
test edx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], 0
jle 0x440c4f
mov edx, dword [ebx + 0xd0]
shl edx, 2
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 0xd4]
shl edx, 2
mov dword [esp + 0xc8], edx
jmp 0x4409b4
mov ecx, dword [esp + 0x30]
movsx edx, word [eax]
lea edx, [edx + edx*2]
lea edx, [ecx + edx*4]
mov dword [esp + 0x4c], edx
movsx edx, word [eax + 2]
lea edx, [edx + edx*2]
lea edx, [ecx + edx*4]
mov dword [esp + 0x48], edx
movsx edx, word [eax + 4]
movsx eax, word [eax + 6]
lea edx, [edx + edx*2]
lea eax, [eax + eax*2]
fld dword [ecx + edx*4]
fadd dword [edi - 4]
lea edx, [ecx + edx*4]
lea esi, [ecx + eax*4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x24], esi
fmul dword [ebx + 0xe8]
fld dword [edx + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [esi]
fadd dword [edi - 4]
mov edx, eax
mov dword [esp + 0x44], edx
fmul dword [ebx + 0xe8]
fld dword [esi + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov esi, dword [esp + 0x44]
add esi, eax
mov eax, dword [esp + 0x4c]
fld dword [eax]
fadd dword [edi - 4]
fmul dword [ebx + 0xe8]
fld dword [eax + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov dword [esp + 0x44], esi
mov esi, eax
mov eax, dword [esp + 0xcc]
add esi, eax
mov eax, dword [esp + 0x48]
fld dword [eax]
fadd dword [edi - 4]
fmul dword [ebx + 0xe8]
fld dword [eax + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [esp + 0x44]
add esi, ecx
add eax, esi
cdq
and edx, 3
add eax, edx
sar eax, 2
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
fld dword [eax + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xe8]
fld dword [eax]
fadd dword [edi - 4]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fadd dword [edi]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov esi, dword [esp + 0xc8]
sub esi, eax
mov eax, dword [esp + 0x50]
fld dword [eax + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xe8]
fld dword [eax]
fadd dword [edi - 4]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fadd dword [edi]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
sub esi, eax
mov eax, dword [esp + 0x4c]
fld dword [eax + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xe8]
fld dword [eax]
fadd dword [edi - 4]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fadd dword [edi]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
sub esi, eax
mov eax, dword [esp + 0x24]
fld dword [eax + 8]
fadd dword [edi + 4]
fmul dword [ebx + 0xe8]
fld dword [eax]
fadd dword [edi - 4]
fmul dword [ebx + 0xec]
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [eax + 4]
fadd dword [edi]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
sub esi, eax
mov ecx, dword [esp + 0x44]
mov eax, esi
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 0xc]
sar eax, 2
cmp ecx, edx
jle 0x440bd2
sub ecx, edx
mov edx, ecx
jmp 0x440bd4
sub edx, ecx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jle 0x440be1
sub eax, ecx
mov ecx, eax
jmp 0x440be3
sub ecx, eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
add ecx, edx
cmp ecx, eax
jge 0x440c30
mov eax, esi
cdq
and edx, 3
add eax, edx
mov edx, esi
sar eax, 2
and edx, 0x80000003
mov dword [esp + 0x60], eax
jns 0x440c0f
dec edx
or edx, 0xfffffffc
inc edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x84], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x94], 1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov edx, dword [edi + 0x34]
inc ecx
add eax, 0xe
cmp ecx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], eax
jl 0x4409b0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
inc eax
add edi, 0x94
mov edx, dword [ecx + 0x4e8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xb0], edi
cmp eax, dword [edx + esi*8]
jl 0x44096d
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
inc esi
mov eax, dword [eax + 0x4dc]
mov dword [esp + 0x20], esi
shl eax, 2
lea ecx, [eax + 2]
cmp esi, ecx
jl 0x4408c8
mov al, byte [ebx + 0xbf]
test al, al
je 0x440dab
mov ecx, dword [edi + 0x774]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x20], eax
jle 0x440dab
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov eax, dword [edx + 0x778]
fld dword [eax + ecx + 4]
fmul dword [ebx + 0xe8]
fld dword [eax + ecx + 0xc]
lea esi, [eax + ecx + 4]
fmul dword [ebx + 0xec]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [esi + 8]
fmul dword [ebx + 0xe8]
fld dword [esi]
fmul dword [ebx + 0xec]
mov edi, eax
mov eax, dword [ebx + 0xd0]
add edi, eax
faddp st(1)
fmul dword [ebx + 0xe0]
fld dword [esi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
sub ecx, eax
mov eax, dword [ebp + 0xc]
cmp edi, eax
jle 0x440d40
sub edi, eax
mov edx, edi
jmp 0x440d45
mov edx, dword [ebp + 0xc]
sub edx, edi
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jle 0x440d52
sub ecx, eax
mov eax, ecx
jmp 0x440d54
sub eax, ecx
mov ecx, dword [esp + 0x18]
add eax, edx
cmp eax, ecx
jge 0x440d85
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x94], 5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x50]
inc eax
mov edx, dword [ecx + 0x774]
add esi, 0x44
cmp eax, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], esi
jl 0x440cbf
mov eax, dword [esp + 0x60]
test eax, eax
jl 0x441351
sub esp, 0x44
mov ecx, 0x11
lea esi, [esp + 0xa4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00452080
test al, al
je 0x441351
test byte [ebp + 8], 0xc
je 0x440e4d
mov eax, dword [ebx + 0x80]
test eax, eax
jl 0x440e4d
push 0x78
call fcn.0045bcfc
add esp, 4
test eax, eax
je 0x440dff
mov dword [eax], 0x4657dc
jmp 0x440e01
xor eax, eax
mov edx, dword [ebx + 0x84]
mov dword [eax + 0x40], edx
mov ecx, dword [ebx + 0x48]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0x7c]
mov dword [eax + 0x38], edx
mov ecx, dword [ebx + 0x70]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebx + 0x80]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebx + 0x50]
lea edx, [ebx + 0x58]
cmp ecx, edx
jne 0x440e42
mov edx, dword [edx]
lea ecx, [eax + 0x14]
mov dword [ecx], edx
mov edx, dword [ebx + 0x60]
mov dword [eax + 0x1c], edx
mov edx, dword [ebx + 0x5c]
mov dword [eax + 0x18], edx
mov dword [eax + 0xc], ecx
mov dword [ebx + 0x84], eax
jmp 0x440e67
mov ecx, dword [ebx + 0x84]
test ecx, ecx
je 0x440e67
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x84], 0
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x70], ecx
mov ecx, dword [esp + 0x9c]
cmp edx, 5
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x7c], edx
mov dword [ebx + 0x80], ecx
jne 0x440ee2
mov esi, dword [esp + 0x10]
mov edx, ecx
shl edx, 4
mov eax, dword [esi + 0x778]
add edx, ecx
mov ecx, esi
lea edi, [eax + edx*4 + 4]
push edi
call fcn.0042ec40
mov ecx, dword [ebx + 0x80]
lea edx, [esp + 0xc]
inc ecx
mov dword [ebx + 0x48], eax
push ecx
push str.Replay_Camera__d_selected
push edx
call fcn.0045bcb4
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x6c]
add esp, 0xc
jmp 0x440eea
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
cmp edx, 3
jne 0x440f75
lea edx, [eax + eax*4]
lea edi, [ebx + 0x58]
shl edx, 3
sub edx, eax
lea eax, [edx + edx*8]
mov edx, dword [esi + 0x4e0]
shl eax, 2
shl ecx, 4
mov edx, dword [edx + eax + 0x53c]
fild dword [edx + ecx]
fmul dword [0x461020]
fstp dword [edi]
mov edx, dword [esi + 0x4e0]
mov edx, dword [edx + eax + 0x53c]
fild dword [edx + ecx + 8]
fmul dword [0x461020]
fstp dword [ebx + 0x60]
mov edx, dword [esi + 0x4e0]
mov eax, dword [edx + eax + 0x53c]
mov edx, dword [ebx + 0x80]
fild dword [eax + ecx + 4]
mov ecx, dword [ebx + 0x48]
push ecx
push edx
fmul dword [0x461020]
push str.Sound_object__d_from_block__d_selected
fstp dword [ebx + 0x5c]
lea eax, [esp + 0x18]
push eax
call fcn.0045bcb4
add esp, 0x10
jmp 0x4410d5
cmp edx, 2
jne 0x440fef
lea edx, [eax + eax*4]
lea edi, [ebx + 0x58]
shl edx, 3
sub edx, eax
lea eax, [edx + edx*8]
mov edx, dword [esi + 0x4e0]
shl eax, 2
shl ecx, 4
mov edx, dword [edx + eax + 0x540]
fild dword [edx + ecx]
fmul dword [0x461020]
fstp dword [edi]
mov edx, dword [esi + 0x4e0]
mov edx, dword [edx + eax + 0x540]
fild dword [edx + ecx + 8]
fmul dword [0x461020]
fstp dword [ebx + 0x60]
mov edx, dword [esi + 0x4e0]
mov eax, dword [edx + eax + 0x540]
mov edx, dword [ebx + 0x80]
fild dword [eax + ecx + 4]
mov ecx, dword [ebx + 0x48]
push ecx
push edx
fmul dword [0x461020]
push str.Light_object__d_from_block__d_selected
fstp dword [ebx + 0x5c]
jmp 0x440f63
cmp edx, 1
jne 0x441072
mov edx, dword [ebx + 0x48]
mov edi, dword [esi + 0x4dc]
cmp edx, edi
jne 0x44103c
mov ecx, dword [ebx + 0x80]
mov eax, dword [ebx + 0x70]
push ecx
mov ecx, dword [ebx + 0x7c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004249d0
mov edx, dword [ebx + 0x80]
lea eax, [esp + 0xc]
push edx
push str.Global_object__d_selected
push eax
lea edi, [esi + 0x484]
call fcn.0045bcb4
add esp, 0xc
jmp 0x4410d5
mov edi, dword [esp + 0x84]
mov esi, dword [esi + 0x4e8]
lea eax, [edi + eax*4]
lea edi, [ecx + ecx*8]
mov eax, dword [esi + eax*8 + 4]
lea ecx, [ecx + edi*4]
lea edi, [eax + ecx*4 + 0xc]
mov ecx, dword [ebx + 0x70]
push ecx
push edx
mov edx, dword [ebx + 0x80]
lea eax, [esp + 0x14]
push edx
push str.Extra_object__d_from_block__d_and_chunk__d_selected
push eax
jmp 0x4410cd
test edx, edx
jne 0x4410d5
mov edx, dword [esp + 0x84]
mov edi, dword [esi + 0x4e4]
lea edx, [edx + edx*2]
lea edi, [edi + edx*8]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
mov edx, dword [edi + edx*4 + 0x68]
mov ecx, dword [edx + ecx*4]
movsx ecx, word [ecx]
lea edx, [ecx + ecx*2]
lea ecx, [eax + eax*4]
shl ecx, 3
sub ecx, eax
lea eax, [ecx + ecx*8]
mov ecx, dword [esi + 0x4e0]
mov eax, dword [ecx + eax*4 + 0x54]
mov ecx, dword [ebx + 0x70]
push ecx
lea ecx, [esp + 0x10]
lea edi, [eax + edx*4]
mov edx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x80]
push edx
push eax
push str.Polygon_object__d_from_block__d_and_chunk__d_selected
push ecx
call fcn.0045bcb4
add esp, 0x14
fld dword [ebx + 0xe8]
fmul dword [edi]
fld dword [ebx + 0xec]
fmul dword [edi + 8]
fsubp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
fld dword [ebx + 0xe8]
fmul dword [edi + 8]
fld dword [ebx + 0xec]
fmul dword [edi]
add eax, dword [ebx + 0xd0]
faddp st(1)
mov dword [esp + 0x34], eax
fmul dword [ebx + 0xe0]
fld dword [edi + 4]
fmul dword [ebx + 0xe4]
faddp st(1)
fdiv dword [ebx + 0xf0]
call fcn.0045c3a6
mov ecx, dword [ebx + 0xd4]
mov dword [ebx + 0x50], edi
sub ecx, eax
mov eax, dword [ebx + 0x17c]
cmp eax, 0x803e
mov dword [esp + 0x2c], ecx
jne 0x44115a
test byte [ebp + 8], 8
je 0x44115a
mov ecx, ebx
call fcn.0044ea20
jmp 0x441351
mov ecx, dword [esp + 0xc]
mov edi, 0x46fbe8
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x441189
test al, al
je 0x441185
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x441189
add esi, 2
add edi, 2
test al, al
jne 0x441165
xor eax, eax
jmp 0x44118e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x43ef11.32806
push 1
push ecx
push 0
mov ecx, dword [ebx + 0xf8]
call fcn.0045c344
mov ecx, dword [ebx + 0x20]
lea eax, [esp + 0xd0]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebx + 0x114]
test eax, eax
je 0x44124f
mov eax, dword [esp + 0xd8]
mov dword [ebx + 0xc8], 0
cdq
sub eax, edx
mov dword [ebx + 0xcc], 0
sar eax, 1
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xdc]
cdq
sub eax, edx
lea edx, [esp + 0x10c]
sar eax, 1
mov dword [esp + 0x110], eax
mov eax, dword [ebx + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [ebx + 0x17c]
cmp eax, 0x8028
je 0x441226
cmp eax, 0x8029
jne 0x441320
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetCursorPos]
mov edx, dword [ebx + 0x20]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x441340
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0x2c]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x34]
sar ecx, 1
mov esi, ecx
sub esi, eax
mov eax, dword [esp + 0xdc]
cdq
sub eax, edx
mov dword [ebx + 0xc8], esi
sar eax, 1
mov edx, eax
sub edx, edi
mov edi, 0x28
sub edi, ecx
mov dword [ebx + 0xcc], edx
cmp esi, edi
jge 0x4412a3
add esi, ecx
mov dword [esp + 0xf8], 1
mov dword [ebx + 0xc8], esi
mov esi, dword [ebx + 0xc8]
lea edi, [ecx - 0x28]
cmp esi, edi
jle 0x4412bf
sub esi, ecx
mov dword [ebx + 0xc8], esi
mov esi, 1
jmp 0x4412c6
mov esi, dword [esp + 0xf8]
mov ecx, 0x28
sub ecx, eax
cmp edx, ecx
jge 0x4412de
add edx, eax
mov esi, 1
mov dword [ebx + 0xcc], edx
mov ecx, dword [ebx + 0xcc]
lea edx, [eax - 0x28]
cmp ecx, edx
jle 0x4412f8
sub ecx, eax
mov esi, 1
mov dword [ebx + 0xcc], ecx
mov eax, dword [ebx + 0xc8]
push 1
push eax
push 0
mov ecx, ebx
call fcn.0045c338
mov ecx, dword [ebx + 0xcc]
push 1
push ecx
push 1
mov ecx, ebx
call fcn.0045c338
test esi, esi
je 0x441330
mov edx, dword [ebx + 0x20]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x441340
mov eax, dword [ebx + 0x178]
push 1
push eax
mov ecx, ebx
call fcn.0043e550
mov ecx, ebx
call fcn.0043d660
mov dword [ebx + 0x184], 1
lea ecx, [esp + 0xc]
mov byte [esp + 0x180], 0
call fcn.0045bc84
lea ecx, [esp + 0x14]
mov dword [esp + 0x180], 0xffffffff
call fcn.0045bc84
mov ecx, dword [esp + 0x178]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc