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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x218
mov ebx, dword [ecx]
mov esi, ecx
call 0x4764f4
pop eax
mov edi, dword [ebx]
lea ecx, [edi - 0x200]
cmp ecx, 0x15
jbe 0x4767c8
lea ecx, [edi - 0x100]
cmp ecx, 0x12
jbe 0x476821
lea ecx, [edi - 2]
cmp ecx, 0xe
jbe 0x47690d
lea eax, [edi - 0x245]
cmp eax, 3
jb 0x476a09
cmp edi, 0x1a
je 0x47756e
cmp edi, 0x20
je 0x4775d1
cmp edi, 0x24
je 0x477615
cmp edi, 0x46
je 0x47764d
cmp edi, 0x47
je 0x4776df
cmp edi, 0x82
je 0x477739
cmp edi, 0x83
je 0x477754
cmp edi, 0x86
je 0x477826
cmp edi, 0xa1
je 0x477892
cmp edi, 0x120
je 0x4778c6
cmp edi, 0x231
je 0x4778d0
cmp edi, 0x232
je 0x4778e7
cmp edi, 0x233
je 0x478aaf
cmp edi, 0x240
je 0x47792c
cmp edi, 0x281
je 0x47795b
cmp edi, 0x2a3
je 0x477978
cmp edi, 0x2e0
jne 0x476c96
mov eax, dword [esi + 8]
mov edi, dword [esi + 4]
movzx eax, word [eax]
mov ecx, dword [edi + 8]
cvtsi2sd xmm0, eax
divsd xmm0, qword [0x646498]
movsd qword [esp], xmm0
call fcn.004501d0
movsd xmm0, qword [esp]
movsd xmm1, qword [eax + 0x88]
ucomisd xmm0, xmm1
movsd qword [eax + 0x88], xmm0
jne 0x476630
jnp 0x477a02
mov ecx, dword [eax + 0xbc]
movzx edx, dl
movsd qword [esp + 0x100], xmm1
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], ecx
and ecx, 0x800
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x50], ecx
mov ecx, eax
call fcn.00608264
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax]
mov edi, dword [eax + 8]
mov eax, dword [esi + 0xc]
lea esi, [esp + 0x130]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov dword [esi], ebx
mov dword [esi + 4], ecx
mov dword [esi + 8], edi
mov dword [esp + 0x28], edx
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x78]
push esi
push eax
call fcn.0062642d
pop eax
pop ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esi], ebx
mov dword [esp + 0x4c], edi
lea edx, [esp + 0x78]
mov dword [esi + 4], eax
mov dword [esi + 8], edi
lea edi, [esp + 0x3c]
mov dword [esi + 0xc], ecx
mov ecx, edi
push esi
call fcn.00478f23
pop eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ebx
sub ebx, dword [edi]
sub eax, dword [edi + 4]
xor edx, edx
lea edi, [esp + 0x78]
mov dword [esp + 0x28], ebx
inc edx
mov ecx, edi
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0062839a
pop eax
lea esi, [esp + 0x120]
mov edx, edi
mov ecx, esi
push 0x80b428
push 0x27
push str.failed_to_query__old__inner_window_area
call fcn.00478f5d
add esp, 0xc
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov eax, dword [esp + 0x50]
sub ebx, dword [esi + 4]
sub edi, dword [esi]
or eax, dword [esp + 0x60]
mov eax, edi
mov edx, ebx
jne 0x476752
movsd xmm0, qword [esp + 0x100]
mov ecx, edi
mov edx, ebx
call fcn.00473348
movsd xmm2, qword [esp]
call fcn.004658bd
lea ecx, [esp + 0x58]
movsd xmm0, qword [esp]
mov esi, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
lea edx, [esp + 0x78]
mov eax, dword [eax]
mov dword [edx + 0x48], eax
and dword [edx + 0xc], 0
mov dword [edx + 8], 0x1b
movsd qword [edx + 0x10], xmm0
mov dword [edx + 0x18], ecx
mov dword [edx], 0xa
mov ecx, dword [esi + 0xc]
call fcn.00478e7c
mov ecx, dword [esi + 8]
call fcn.004501d0
lea esi, [esp + 0x58]
mov ecx, dword [eax + 0xbc]
cmp dword [esi], edi
mov dword [esp], ecx
jne 0x478761
cmp dword [esp + 0x5c], ebx
jne 0x478761
movzx edx, dl
mov ecx, eax
call fcn.00608264
jmp 0x478798
add eax, dword [ecx*4 + 0x478e24]
jmp eax
add eax, dword [ecx*4 + 0x478dd8]
jmp eax
add eax, dword [ecx*4 + 0x478d9c]
jmp eax
mov eax, dword [0xa70b34]
cmp eax, 2
je 0x476a48
mov eax, 0xa70b2c
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x78]
lea edi, [esp + 0x130]
mov dword [edx], ecx
mov dword [ecx], eax
lea ecx, [esp + 0x24]
mov dword [edx + 4], edi
mov dword [edi], eax
mov dword [edx + 8], ecx
lea ecx, [0xa70b34]
push 0x80bff4
call fcn.0056dc90
pop eax
mov ebx, dword [0xa70b30]
mov eax, dword [0xa70b44]
cmp eax, 2
je 0x476a8d
mov eax, 0xa70b3c
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x78]
lea edi, [esp + 0x130]
mov dword [edx], ecx
mov dword [ecx], eax
lea ecx, [esp + 0x24]
mov dword [edx + 4], edi
mov dword [edi], eax
mov dword [edx + 8], ecx
lea ecx, [0xa70b44]
push 0x80c008
call fcn.0056dc90
pop eax
mov eax, dword [0xa70b40]
mov dword [esp + 0x100], eax
mov eax, dword [0xa70b54]
cmp eax, 2
je 0x476ad8
mov eax, 0xa70b4c
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x78]
lea edi, [esp + 0x130]
mov dword [edx], ecx
mov dword [ecx], eax
lea ecx, [esp + 0x24]
mov dword [edx + 4], edi
mov dword [edi], eax
mov dword [edx + 8], ecx
lea ecx, [0xa70b54]
push 0x80bfe0
call fcn.0056dc90
pop eax
xor edi, edi
test ebx, ebx
je 0x478ab1
cmp dword [esp + 0x100], 0
je 0x478ab1
mov eax, dword [0xa70b50]
test eax, eax
mov dword [esp + 0x2c], eax
je 0x478ab1
mov eax, dword [esi + 8]
lea ecx, [esp + 0x118]
lea edx, [esp + 0x11c]
movzx eax, word [eax]
and dword [ecx], 0
and dword [edx], 0
push 0
push edx
push ecx
mov dword [esp + 0x120], eax
push eax
call ebx
test eax, eax
je 0x478ab1
mov edx, dword [esp + 0x118]
imul edx, dword [esp + 0x11c]
test edx, edx
mov dword [esp + 0x6c], edx
je 0x478175
xor ecx, ecx
cmp edx, 0x1745d18
setb al
jae 0x478d92
imul edx, edx, 0x58
test edx, edx
js 0x478d92
mov cl, al
mov dword [esp], edx
shl ecx, 3
mov dword [esp + 0x10], ecx
call fcn.0043bd7b
test eax, eax
jne 0x478178
mov ecx, dword [esp + 0x10]
mov edx, dword [esp]
jmp 0x477954
mov ecx, 0xa70bd4
call fcn.00625819
cmp edi, eax
jne 0x4779c2
mov eax, dword [esi + 0xc]
push dword [eax]
call dword [sym.imp.user32.dll_DestroyWindow]
jmp 0x478aaf
mov edi, dword [esi + 4]
mov dword [esp], ebx
mov ecx, dword [edi + 8]
call fcn.004501d0
mov bl, byte [eax + 0xc6]
movzx edx, dl
mov ecx, eax
call fcn.00608264
cmp bl, 2
mov ebx, dword [esi + 0xc]
jne 0x4786ac
mov ecx, dword [ebx]
mov dword [esp + 0x10], ebx
push 2
pop edx
call fcn.0062856c
mov ecx, dword [edi + 8]
mov ebx, eax
call fcn.004501d0
cmp byte [eax + 0xc0], bl
mov ecx, edx
jne 0x478667
movzx edx, cl
mov ecx, eax
call fcn.00608264
mov ebx, dword [esp + 0x10]
jmp 0x4786ac
mov eax, dword [esi + 4]
mov dword [esp], ebx
mov ecx, dword [eax + 8]
call fcn.004501d0
mov edi, dword [esi + 0x10]
mov bl, 0x23
cmp word [edi], 1
jne 0x4775ed
mov bl, byte [eax + 0x24]
movzx edx, dl
mov ecx, eax
call fcn.00608264
cmp bl, 0x23
jne 0x477c8a
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push dword [edi]
push dword [eax]
mov eax, dword [esp + 8]
push dword [eax]
jmp 0x4789d4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov ecx, dword [ecx]
mov dword [esp], ecx
mov ecx, dword [eax + 8]
call fcn.004501d0
mov ebx, dword [eax + 0xbc]
cmp dword [eax + 0x58], 2
mov edi, eax
mov dword [esp + 0x18], ebx
jne 0x477ca7
cmp dword [edi + 0x70], 2
jne 0x477d72
jmp 0x478aa5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
call fcn.004501d0
cmp dword [eax + 0x90], 0
mov edi, eax
je 0x478aa5
mov eax, dword [esi + 0x10]
mov byte [esp], dl
mov ebx, dword [eax]
test byte [ebx + 0x18], 3
je 0x4786d2
mov eax, dword [esi + 0xc]
lea esi, [esp + 0x78]
xor edx, edx
mov ecx, esi
push dword [eax]
call fcn.0062839a
pop eax
lea ecx, [esp + 0x130]
mov edx, esi
push 0x80b4b8
push 0x65
push str.Unexpected_GetWindowRect_failure__please_report_this_error_to_https:__github.com_rust_windowing_winit
call fcn.00478f5d
add esp, 0xc
mov eax, dword [ebx + 0x18]
and eax, 3
cmp eax, 1
je 0x4789e1
cmp eax, 2
je 0x478a0d
cmp eax, 3
je 0x478aa2
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_std_src_threadlocal.rs
push 0x80b4c8
call fcn.0063cd70
pop eax
ud2
mov dword [esp], ebx
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx]
test byte [eax + 0x18], 2
jne 0x477e46
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edi, dword [esi + 0xc]
lea edx, [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [edi]
mov dword [edx + 0x48], eax
mov eax, dword [esp + 0x10]
and dword [edx + 0xc], 0
mov dword [edx + 8], 5
mov dword [edx + 0x10], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 0x14], eax
mov dword [edx], 0xa
mov ecx, dword [ecx + 0xc]
call fcn.00478e7c
mov eax, dword [esp]
mov ecx, dword [eax]
mov eax, dword [ebx]
jmp 0x477e4c
mov eax, dword [esi + 0xc]
push 0
push 0xffffffffffffffeb
push dword [eax]
call dword [sym.imp.user32.dll_SetWindowLongW]
mov eax, dword [esi + 4]
mov byte [eax + 0x14], 1
jmp 0x478aaf
mov eax, dword [esi + 4]
mov edi, ebx
mov ecx, dword [eax + 8]
call fcn.004501d0
mov ebx, dword [eax + 0xbc]
movzx edx, dl
mov ecx, eax
call fcn.00608264
mov eax, dword [esi + 8]
bt ebx, 0x13
mov eax, dword [eax]
jb 0x477e54
test eax, eax
je 0x477e54
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
lea esi, [esp + 0x78]
mov edi, dword [ecx]
mov eax, dword [eax]
and dword [esi + 8], 0
and dword [esi + 4], 0
and dword [esi + 0x10], 0
and dword [esi + 0xc], 0
and dword [esi + 0x18], 0
and dword [esi + 0x14], 0
and dword [esi + 0x20], 0
and dword [esi + 0x1c], 0
and dword [esi + 0x28], 0
and dword [esi + 0x24], 0
mov dword [esi], 0x2c
push esi
push eax
call dword [sym.imp.user32.dll_GetWindowPlacement]
cmp dword [esi + 8], 3
jne 0x4786b9
push 0
push edi
call dword [sym.imp.user32.dll_MonitorFromRect]
lea esi, [esp + 0x78]
mov edx, eax
mov ecx, esi
call fcn.00629154
cmp dword [esi], 0
jne 0x477818
lea esi, [esp + 0x7c]
push 0x1a
pop ecx
lea eax, [esp + 0x130]
mov edx, edi
mov edi, eax
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [eax + 0x14]
movsd xmm1, qword [eax + 0x1c]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
lea ecx, [esp + 0x78]
call fcn.0047920a
jmp 0x478aaf
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
mov dword [esp], ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [ecx + 8]
mov edi, dword [eax]
mov dword [esp + 0x10], eax
call fcn.004501d0
cmp byte [eax + 0xc2], 0
movzx edx, dl
setne bl
cmp byte [eax + 0xc3], 0
setne cl
and bl, cl
test edi, edi
setne bh
setne byte [eax + 0xc2]
and bh, cl
mov ecx, eax
call fcn.00608264
cmp bl, bh
mov ebx, dword [esi + 0xc]
je 0x4788dd
mov ecx, dword [ebx]
test edi, edi
je 0x4788d4
mov edx, dword [esp + 0x18]
call fcn.0047911b
jmp 0x4788dd
mov dword [esp], ebx
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov eax, dword [ebx]
cmp eax, 2
jne 0x477e64
mov esi, dword [esi + 0x10]
push dword [esi]
push 0
push 0x200
push dword [edi]
call dword [sym.imp.user32.dll_PostMessageW]
mov eax, dword [esp]
mov ecx, dword [eax]
mov eax, dword [ebx]
jmp 0x477e6c
mov edi, 0x10000
jmp 0x478ab1
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
call fcn.004501d0
or byte [eax + 0xbe], 1
jmp 0x477a02
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
call fcn.004501d0
cmp byte [eax + 0xc4], 0
mov edi, eax
mov ebx, edx
je 0x47791d
mov byte [edi + 0xc4], 0
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
push dword [ecx]
push 0
push 0x202
push dword [eax]
call dword [sym.imp.user32.dll_PostMessageW]
and byte [edi + 0xbe], 0xfe
movzx edx, bl
jmp 0x478aa8
mov eax, dword [esi + 8]
movzx ebx, word [eax]
test ebx, ebx
je 0x477fe6
imul edi, ebx, 0x28
push 4
pop ecx
mov edx, edi
call fcn.0043bd7b
test eax, eax
jne 0x477fe9
push 4
pop ecx
mov edx, edi
call fcn.0063c970
ud2
mov eax, dword [esi + 8]
mov edx, 0x7fffffff
mov ecx, dword [esi + 0xc]
and edx, dword [eax]
mov eax, dword [esi + 0x10]
push dword [eax]
push edx
push 0x281
jmp 0x4789d4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
mov dword [esp], eax
call fcn.004501d0
mov esi, dword [esi + 0xc]
mov edi, eax
mov bh, dl
mov bl, byte [edi + 0x25]
mov eax, dword [esi]
mov ecx, ebx
and cl, 0xfb
mov byte [edi + 0x25], cl
movzx edx, cl
lea ecx, [esp + 0x78]
push eax
call fcn.00629a96
pop eax
lea eax, [esp + 0x78]
cmp byte [eax], 4
jne 0x477e77
mov byte [esp + 0x130], 4
jmp 0x477e89
mov edi, dword [ebx]
mov ecx, 0xa70be0
call fcn.00625819
cmp edi, eax
jne 0x478601
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
call fcn.004501d0
mov esi, dword [esi + 8]
xor ecx, ecx
cmp dword [esi], 0
mov esi, 0xffff7fff
setne cl
and esi, dword [eax + 0xbc]
shl ecx, 0xf
or ecx, esi
mov dword [eax + 0xbc], ecx
movzx edx, dl
mov ecx, eax
jmp 0x478aaa
call fcn.00478e7c
jmp 0x478aaf
movzx ecx, bl
call fcn.0062847c
push eax
push 0
call dword [sym.imp.user32.dll_LoadCursorW]
push eax
call dword [sym.imp.user32.dll_SetCursor]
jmp 0x478aaf
lea eax, [edi + 0x58]
lea ecx, [esp + 0x78]
mov byte [esp + 0x10], dl
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [edi + 0x88]
call fcn.004657b2
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xc], eax
mov eax, edx
mov edx, dword [ecx]
mov ecx, ebx
push eax
push dword [esp + 0x10]
call fcn.00626352
pop ecx
pop ecx
movq xmm0, qword [0x6461f8]
movd xmm4, eax
movsd xmm2, qword [0x6463c0]
movsd xmm3, qword [0x6463c8]
xorpd xmm1, xmm1
por xmm4, xmm0
subsd xmm4, xmm0
maxsd xmm4, xmm1
minsd xmm4, xmm2
cvttsd2si ecx, xmm4
subsd xmm4, xmm3
cvttsd2si eax, xmm4
movd xmm4, edx
mov ebx, ecx
por xmm4, xmm0
sar ebx, 0x1f
subsd xmm4, xmm0
and eax, ebx
maxsd xmm4, xmm1
or eax, ecx
minsd xmm4, xmm2
cvttsd2si ecx, xmm4
subsd xmm4, xmm3
mov edx, ecx
cvttsd2si ebx, xmm4
sar edx, 0x1f
and ebx, edx
mov dl, byte [esp + 0x10]
or ebx, ecx
mov ecx, dword [esp]
mov dword [ecx + 0x18], eax
mov ecx, dword [esp]
mov dword [ecx + 0x1c], ebx
cmp dword [edi + 0x70], 2
je 0x478aa5
mov eax, edi
lea ecx, [esp + 0x78]
mov byte [esp + 0x10], dl
add eax, 0x70
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [edi + 0x88]
call fcn.004657b2
mov ecx, dword [esi + 0xc]
mov ebx, edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
push ebx
push eax
call fcn.00626352
pop ecx
pop ecx
movq xmm0, qword [0x6461f8]
movd xmm4, eax
movsd xmm2, qword [0x6463c0]
movsd xmm3, qword [0x6463c8]
xorpd xmm1, xmm1
mov ebx, dword [esp]
por xmm4, xmm0
subsd xmm4, xmm0
maxsd xmm4, xmm1
minsd xmm4, xmm2
cvttsd2si ecx, xmm4
subsd xmm4, xmm3
cvttsd2si eax, xmm4
movd xmm4, edx
mov esi, ecx
por xmm4, xmm0
sar esi, 0x1f
subsd xmm4, xmm0
and eax, esi
maxsd xmm4, xmm1
or eax, ecx
minsd xmm4, xmm2
mov dword [ebx + 0x20], eax
cvttsd2si ecx, xmm4
subsd xmm4, xmm3
mov edx, ecx
cvttsd2si esi, xmm4
sar edx, 0x1f
and esi, edx
mov dl, byte [esp + 0x10]
or esi, ecx
mov dword [ebx + 0x24], esi
jmp 0x478aa5
mov edi, dword [esi + 0xc]
push 0x47
pop ecx
mov edx, dword [esi + 8]
push eax
push dword [edx]
jmp 0x477e6f
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
push dword [edx]
push eax
push dword [edi]
jmp 0x4789d4
mov esi, dword [esi + 0x10]
mov ecx, 0xa1
push dword [esi]
push eax
push ecx
push dword [edi]
jmp 0x4789d6
movsd xmm0, qword [esp + 0x78]
mov byte [edi + 0x25], bl
movsd qword [esp + 0x130], xmm0
lea ecx, [esp + 0x130]
call fcn.00478ea7
movzx edx, bh
mov ecx, edi
call fcn.00608264
mov eax, dword [esi]
lea edx, [esp + 0x78]
mov dword [edx + 0x48], eax
and dword [edx + 0xc], 0
mov dword [edx + 8], 0x12
and dword [edx + 0x10], 0
mov eax, dword [esp]
mov dword [edx], 0xa
mov ecx, dword [eax + 0xc]
jmp 0x477bec
push 4
pop eax
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx]
push 0x28
mov dword [esp + 0x30], eax
push eax
mov dword [esp + 0x38], ebx
push ebx
mov dword [esp + 0x34], ecx
push ecx
call dword [sym.imp.user32.dll_GetTouchInputInfo]
test eax, eax
jle 0x478147
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x30], 0x28
push 0x64
pop ebx
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
test eax, eax
je 0x478147
mov dword [esp], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cdq
idiv ebx
mov edi, eax
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x130], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x134], eax
lea eax, [esp + 0x130]
push eax
push dword [edi]
call dword [sym.imp.user32.dll_ScreenToClient]
test eax, eax
je 0x478136
mov eax, dword [esi]
mov ecx, edi
mov edi, dword [esi + 4]
cvtsi2sd xmm0, dword [esp + 0x130]
cdq
idiv ebx
mov eax, edi
cvtsi2sd xmm1, dword [esp + 0x134]
mov dword [esp + 0x10], edx
cdq
idiv ebx
mov edi, dword [ecx]
mov ecx, dword [esi + 0x10]
test cl, 2
jne 0x4780ad
mov al, 2
test cl, 4
jne 0x4780af
mov al, 1
test cl, 1
jne 0x4780af
jmp 0x478136
xor eax, eax
cvtsi2sd xmm2, dword [esp + 0x10]
movsd xmm4, qword [0x6464a0]
cvtsi2sd xmm3, edx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xc0], edi
and dword [esp + 0x84], 0
mov dword [esp + 0x80], 3
lea edx, [esp + 0x78]
divsd xmm2, xmm4
divsd xmm3, xmm4
addsd xmm2, xmm0
addsd xmm3, xmm1
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm3
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xc]
and dword [esp + 0xb4], 0
and dword [esp + 0xb8], 0
mov byte [esp + 0xbc], al
mov dword [esp + 0x78], 0xa
mov ecx, dword [ecx + 0xc]
call fcn.00478e7c
mov eax, dword [esp]
add esi, 0x28
add eax, 0xffffffd8
push 0x64
pop ebx
jmp 0x478027
push dword [esp + 0x28]
call dword [sym.imp.user32.dll_CloseTouchInputHandle]
mov eax, dword [esp + 0x30]
xor edi, edi
test eax, eax
je 0x478ab1
imul eax, eax, 0x28
push 4
pop edx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00402161
pop eax
jmp 0x478ab1
push 8
pop eax
mov dword [esp + 0xc], eax
push eax
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x120]
push eax
push dword [esp + 0x120]
call ebx
test eax, eax
je 0x4785ef
imul eax, dword [esp + 0x6c], 0x58
mov ecx, dword [esp + 0xc]
mov edi, dword [esi + 4]
mov edx, dword [esi + 0xc]
lea ebx, [ecx + eax]
mov esi, ecx
mov dword [esp], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x28], edx
cmp dword [esp], 0
je 0x4785d1
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x124]
push eax
push dword [ebx - 0x48]
call dword [esp + 0x38]
test eax, eax
je 0x4785c5
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x12c]
mov dword [esp + 0x30], ebx
sub edx, dword [esp + 0x120]
sub ecx, eax
sub edi, dword [esp + 0x124]
cvtsi2sd xmm4, eax
cvtsi2sd xmm0, ecx
mov ecx, dword [esp + 0x40]
cvtsi2sd xmm1, edx
mov edx, dword [esp + 0x48]
cvtsi2sd xmm3, edi
mov edi, dword [esp]
divsd xmm0, xmm1
cvtsi2sd xmm5, ecx
sub edx, ecx
cvtsi2sd xmm1, dword [esi + edi - 0x38]
cvtsi2sd xmm2, edx
divsd xmm2, xmm3
mulsd xmm1, xmm0
cvtsi2sd xmm0, dword [esi + edi - 0x34]
addsd xmm1, xmm4
mulsd xmm0, xmm2
addsd xmm0, xmm5
movsd qword [esp + 0x18], xmm0
sub esp, 8
movsd qword [esp + 0x18], xmm1
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
pop eax
pop ecx
fstp qword [esp + 0x1b0]
movsd xmm1, qword [0x6463d0]
movsd xmm2, qword [0x6463d8]
mov ebx, 0
movsd xmm0, qword [esp + 0x1b0]
ucomisd xmm0, xmm0
maxsd xmm0, xmm1
minsd xmm0, xmm2
cvttsd2si esi, xmm0
cmovp esi, ebx
sub esp, 8
movsd xmm0, qword [esp + 0x20]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
pop eax
pop ecx
fstp qword [esp + 0x1a8]
movsd xmm0, qword [esp + 0x1a8]
mov dword [esp + 0x58], esi
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si eax, xmm0
cmovp eax, ebx
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
call dword [sym.imp.user32.dll_ScreenToClient]
test eax, eax
je 0x4784fe
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi - 0x58]
cmp eax, 2
je 0x4783aa
xor esi, esi
cmp eax, 3
jne 0x47845c
mov eax, dword [0xa70b74]
cmp eax, 2
je 0x47836d
lea ecx, [esp + 0x70]
mov eax, 0xa70b6c
lea edx, [esp + 0x74]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
lea edx, [esp + 0x78]
mov dword [esp + 0x80], ecx
lea ecx, [0xa70b74]
push 0x80c01c
call fcn.0056dc90
pop eax
mov ecx, dword [0xa70b70]
xor esi, esi
test ecx, ecx
je 0x47845c
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 4]
push dword [eax + edx - 0x54]
call ecx
test eax, eax
je 0x47845c
mov eax, dword [esp + 0xd8]
movss xmm0, dword [esp + 0xd8]
jmp 0x478424
mov eax, dword [0xa70b64]
cmp eax, 2
je 0x4783f1
lea ecx, [esp + 0x70]
mov eax, 0xa70b5c
lea edx, [esp + 0x74]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
lea edx, [esp + 0x78]
mov dword [esp + 0x80], ecx
lea ecx, [0xa70b64]
push 0x80c030
call fcn.0056dc90
pop eax
mov ecx, dword [0xa70b60]
xor esi, esi
test ecx, ecx
je 0x47845c
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 4]
push dword [eax + edx - 0x54]
call ecx
test eax, eax
je 0x47845c
mov eax, dword [esp + 0xfc]
movss xmm0, dword [esp + 0xfc]
xor ebx, ebx
dec eax
cmp eax, 0x400
setb al
orpd xmm0, xmmword [0x6463f0]
subsd xmm0, qword [0x6461f8]
mulsd xmm0, qword [0x646488]
jb 0x47844f
movsd xmm0, qword [esp + 0x50]
mov bl, al
movsd qword [esp + 0x50], xmm0
xor ebx, 3
jmp 0x47845f
push 3
pop ebx
cvtsi2sd xmm0, dword [esp + 0x58]
movsd qword [esp + 0x108], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x18]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_trunc
pop eax
pop ecx
fstp qword [esp + 0x198]
movsd xmm0, qword [esp + 0x10]
subsd xmm0, qword [esp + 0x198]
movsd qword [esp + 0x10], xmm0
cvtsi2sd xmm0, dword [esp + 0x5c]
movsd qword [esp + 0x60], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x20]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_trunc
movsd xmm1, qword [esp + 0x20]
add esp, 8
fstp qword [esp + 0x1a0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
mov eax, dword [esp + 0x28]
subsd xmm1, qword [esp + 0x1a0]
mov edx, dword [ecx + edx - 0x4c]
mov eax, dword [eax]
bt edx, 0x10
jb 0x478507
mov cl, 2
bt edx, 0x12
jb 0x478509
mov cl, 1
bt edx, 0x11
jb 0x478509
mov esi, dword [esp + 0xc]
jmp 0x4785c1
xor ecx, ecx
mov edi, ecx
mov ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp]
movsd xmm0, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x138]
movsd xmm3, qword [esp + 0x130]
addsd xmm1, qword [esp + 0x60]
mov edx, dword [ebx + edx - 0x54]
mov dword [esp + 0x84], esi
mov esi, ebx
lea ebx, [esp + 0x90]
mov dword [esp + 0x80], eax
movsd qword [esp + 0x88], xmm0
mov eax, edi
movsd qword [ebx + 8], xmm2
movsd xmm2, qword [esp + 0x10]
movsd qword [ebx], xmm3
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x4c]
addsd xmm2, qword [esp + 0x108]
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xa8], xmm1
mov dword [esp + 0xb0], edx
and dword [esp + 0xb4], 0
and dword [esp + 0xb8], 0
mov byte [esp + 0xbc], al
mov dword [esp + 0x78], 0xa
lea edx, [esp + 0x78]
mov ecx, dword [ecx + 0xc]
call fcn.00478e7c
mov ebx, dword [esp + 0x30]
add dword [esp], 0xffffffa8
add ebx, 0xffffffa8
jmp 0x4781bd
push dword [esp + 0x114]
call dword [esp + 0x104]
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.004791f8
jmp 0x478aaf
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x6c]
call fcn.004791f8
jmp 0x478ab1
mov edi, dword [ebx]
mov ecx, 0xa70c00
call fcn.00625819
cmp edi, eax
jne 0x4789c5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
call fcn.004501d0
mov dword [esp], ebx
mov ebx, dword [esi + 0xc]
mov byte [esp + 0x10], dl
movzx edx, byte [eax + 0xc5]
mov edi, eax
mov ecx, dword [ebx]
call fcn.00629931
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
push dword [ecx]
push dword [eax]
mov eax, dword [esp + 8]
push dword [eax]
push dword [ebx]
call dword [sym.imp.user32.dll_DefWindowProcW]
movzx edx, byte [esp + 0x10]
mov ecx, edi
mov esi, eax
call fcn.00608264
mov eax, esi
jmp 0x478ab3
xor edx, edx
test cl, cl
mov ecx, eax
mov byte [esp + 0x18], bl
mov byte [eax + 0xc0], bl
setne dl
call fcn.0045f4ab
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x78]
mov cl, byte [esp + 0x18]
mov eax, dword [ebx]
mov dword [edx + 0x48], eax
and dword [edx + 0xc], 0
mov dword [edx + 8], 0x1c
mov byte [edx + 0x10], cl
mov dword [edx], 0xa
mov ecx, dword [edi + 0xc]
call fcn.00478e7c
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
push dword [ecx]
jmp 0x4788e6
mov eax, edi
xor edi, edi
bt ebx, 0x14
jae 0x478ab1
inc dword [eax + 4]
inc dword [eax + 0xc]
jmp 0x478ab1
mov dword [esp + 0x10], edi
mov edi, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
mov edx, dword [ebx + 0x14]
add edx, esi
add ecx, edi
jmp 0x478a2f
mov esi, ecx
xor ebx, ebx
mov edi, ecx
mov ecx, eax
and esi, 0xfffff7ff
test dl, dl
mov edx, dword [esp + 0x10]
setne bl
mov edx, dword [edx]
mov dword [eax + 0xbc], esi
mov dword [esp + 0x2c], edx
mov edx, ebx
call fcn.0045f4ab
mov edx, dword [esp + 0x2c]
mov ecx, edi
push esi
call fcn.00629348
pop eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x108]
lea edi, [esp + 0x3c]
lea ebx, [esp + 0x78]
lea esi, [esp + 0x130]
add ecx, eax
mov eax, dword [esp + 0x58]
add edx, dword [esp + 0x18]
mov dword [edi], ecx
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov eax, dword [esp + 0x10]
add ecx, edx
mov edx, dword [esp + 0xc]
mov dword [edi + 0xc], ecx
mov ecx, ebx
movsd xmm0, qword [edi + 8]
movsd xmm1, qword [edi]
mov eax, dword [eax]
movsd qword [esp + 0x138], xmm0
movsd qword [esp + 0x130], xmm1
push esi
push eax
call fcn.0062642d
pop eax
pop ecx
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov ecx, edi
mov edx, ebx
movsd qword [esp + 0x138], xmm1
movsd qword [esp + 0x130], xmm0
push esi
call fcn.00478f23
pop eax
bt dword [esp], 0x10
mov edi, dword [esp + 0x10]
jae 0x4788a0
and dword [esp + 0x78], 0
and dword [esp + 0x7c], 0
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.user32.dll_GetCursorPos]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x30]
mov ecx, eax
sub ecx, edx
cvtsi2sd xmm0, ecx
mov ecx, dword [esp + 0x4c]
sub ecx, edx
xor edx, edx
cvtsi2sd xmm1, ecx
mov ecx, dword [esp + 0x44]
divsd xmm0, xmm1
sub ecx, dword [esp + 0x3c]
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm0
ucomisd xmm1, xmm1
maxsd xmm1, qword [0x6463d0]
minsd xmm1, qword [0x6463d8]
cvttsd2si esi, xmm1
cmovnp edx, esi
sub eax, edx
mov dword [esp + 0x3c], eax
add eax, ecx
mov dword [esp + 0x44], eax
push 0
mov ebx, edi
push dword [edi]
call dword [sym.imp.user32.dll_MonitorFromWindow]
mov esi, eax
push 0
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.user32.dll_MonitorFromRect]
cmp eax, esi
jne 0x4788f5
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
jmp 0x4789ac
mov edx, dword [esp + 0x18]
call fcn.0047901d
mov eax, dword [esi + 0x10]
push dword [eax]
mov eax, dword [esp + 0x14]
push dword [eax]
mov eax, dword [esp + 8]
push dword [eax]
push dword [ebx]
jmp 0x4789d6
lea edi, [esp + 0x130]
mov edx, eax
mov ecx, edi
call fcn.00478faa
lea ebx, [esp + 0x78]
mov edx, esi
mov dword [esp], esi
mov ecx, ebx
call fcn.00478faa
mov ecx, dword [ebx]
mov edx, ebx
xor ebx, ebx
mov eax, dword [edx + 8]
cmp dword [edi + 8], ecx
sete bl
xor esi, esi
dec esi
cmp dword [edi], eax
cmove ebx, esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov edi, ebx
xor ebx, ebx
mov dword [esp + 0xc], esi
lea esi, [esp + 0x130]
mov dword [esp + 0x18], edx
cmp dword [esi + 4], edx
mov esi, dword [esp + 0xc]
lea edx, [esp + 0x130]
sete bl
neg ebx
cmp dword [edx + 0xc], esi
mov edx, 1
cmove ebx, edx
add ecx, esi
xor esi, esi
sub eax, ecx
add eax, dword [esp + 0x18]
test eax, eax
cmovg esi, eax
inc esi
dec esi
je 0x478998
add dword [esp + 0x3c], edi
add dword [esp + 0x44], edi
add dword [esp + 0x40], ebx
add dword [esp + 0x48], ebx
push 0
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.user32.dll_MonitorFromRect]
cmp eax, dword [esp]
jne 0x478973
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
sub edx, eax
sub esi, ecx
push 0x14
push esi
push edx
push ecx
push eax
push 0
push dword [ebx]
call dword [sym.imp.user32.dll_SetWindowPos]
jmp 0x478aaf
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 8]
push dword [edx]
push dword [eax]
push dword [ebx]
push dword [ecx]
call dword [sym.imp.user32.dll_DefWindowProcW]
jmp 0x478ab3
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x13c]
mov eax, ecx
sub ecx, dword [esp + 0x130]
mov edi, esi
sub edi, dword [esp + 0x134]
add ecx, dword [esp + 0x138]
jmp 0x478a2b
mov esi, dword [esp + 0x130]
mov ecx, dword [ebx + 0x10]
mov edx, dword [esp + 0x134]
mov dword [esp + 0x10], edi
mov edi, dword [ebx + 0x14]
mov eax, esi
add ecx, esi
mov esi, edx
add edx, edi
mov edi, eax
lea eax, [esp + 0x130]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
push 0
push eax
call dword [sym.imp.user32.dll_MonitorFromRect]
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x94], 0
je 0x478abb
mov edx, dword [edi + 0xa4]
lea esi, [esp + 0x78]
mov ecx, esi
call fcn.00629154
cmp dword [esi], 0
jne 0x478a99
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
sub edx, eax
sub esi, ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], esi
lea ecx, [esp + 0x78]
call fcn.0047920a
mov dl, byte [esp]
movzx edx, dl
mov ecx, edi
call fcn.00608264
xor edi, edi
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, eax
test eax, eax
je 0x478aa2
cmp dword [edi + 0x98], 0
je 0x478ad2
cmp esi, dword [edi + 0x9c]
je 0x478aa2
lea ecx, [esp + 0x78]
mov edx, esi
call fcn.00629154
lea eax, [esp + 0x78]
cmp dword [eax], 0
jne 0x478b26
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
sub edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
sub ecx, dword [esp + 0xc]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], ecx
lea ecx, [esp + 0x78]
call fcn.0047920a
mov dword [edi + 0x98], 1
mov dword [edi + 0x9c], esi
jmp 0x478aa2
call fcn.0043aad0
ud2