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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1e0
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
mov edx, dword [ecx + 8]
call 0x5e78e4
pop ebx
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0xc]
mov esi, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
cmp esi, 0x111
mov dword [esp + 0x18], eax
jle 0x5e798c
cmp esi, 0x230
jg 0x5e7b65
lea eax, [esi - 0x200]
cmp eax, 0x15
ja 0x5e7f2f
add ebx, dword [eax*4 + 0x5ea668]
jmp ebx
cmp esi, 0x46
jg 0x5e7b0e
cmp esi, 0x19
jg 0x5e7c8b
lea eax, [esi - 2]
cmp eax, 0xe
ja 0x5e8af1
add ebx, dword [eax*4 + 0x5ea614]
jmp ebx
cmp esi, 0xa0
jg 0x5e7d06
lea eax, [esi - 0x81]
cmp eax, 5
ja 0x5e7ffb
add ebx, dword [eax*4 + 0x5ea650]
jmp ebx
cmp esi, 0x244
jle 0x5e7d2f
lea eax, [esi - 0x245]
cmp eax, 3
jae 0x5e7db0
mov dword [esp + 0x38], 0x803708
mov eax, dword [0x803710]
cmp eax, 3
jne 0x5e9e05
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 4]
mov dword [esp + 0x38], 0x803714
mov eax, dword [0x80371c]
cmp eax, 3
jne 0x5e9e3c
mov eax, dword [esp + 0x38]
mov edi, dword [eax + 4]
mov dword [esp + 0x38], 0x803720
mov eax, dword [0x803728]
cmp eax, 3
jne 0x5e9e77
test esi, esi
je 0x5e9d93
test edi, edi
je 0x5e9d93
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x30], eax
je 0x5e9d93
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xb8]
movzx ebx, word [eax]
xor eax, eax
mov dword [ecx], eax
mov dword [edx], eax
push eax
push edx
push ecx
push ebx
call esi
test eax, eax
je 0x5e9508
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], ebx
imul esi, dword [esp + 0xb8]
test esi, esi
je 0x5e951e
cmp esi, 0x1745d17
ja 0x5ea5dc
imul edi, esi, 0x58
test edi, edi
js 0x5ea5dc
je 0x5e9922
mov al, byte [0x803894]
mov ecx, edi
mov edx, 8
call fcn.004889b0
mov ebx, eax
test eax, eax
jne 0x5e9927
mov ecx, 8
jmp 0x5e7da7
cmp esi, 0x23
jg 0x5e7e53
cmp esi, 0x1a
je 0x5e88de
cmp esi, 0x20
jne 0x5e8af1
mov eax, dword [esp + 0xc]
mov edi, ecx
mov cl, 1
mov esi, dword [eax]
lea eax, [esi + 8]
mov dword [esp + 0x10], eax
xor eax, eax
lock cmpxchg byte [esi + 8], cl
jne 0x5ea2f9
cmp word [edi], 1
mov ah, 0x23
jne 0x5e7ccf
mov ah, byte [esi + 0x2c]
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi], cl
jne 0x5ea30f
movzx ecx, ah
mov eax, 0x7f00
dec ecx
cmp ecx, 0x22
ja 0x5ea41b
add ebx, dword [ecx*4 + 0x5ea6c0]
jmp ebx
cmp esi, 0x103
jg 0x5e7f12
cmp esi, 0xa1
je 0x5e895d
cmp esi, 0x100
je 0x5ea4dc
jmp 0x5e8af1
cmp esi, 0x231
je 0x5e899e
cmp esi, 0x232
je 0x5e89bf
cmp esi, 0x240
jne 0x5e8af1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
movzx edx, word [eax]
test edx, edx
mov dword [esp + 0x90], edx
je 0x5e9289
lea eax, [edx*8]
mov esi, ecx
mov edx, 4
lea edi, [eax + eax*4]
mov al, byte [0x803894]
mov ecx, edi
call fcn.004889b0
mov edx, dword [esp + 0x90]
mov ecx, esi
test eax, eax
mov dword [esp + 0xa0], eax
jne 0x5e9296
mov ecx, 4
mov edx, edi
call fcn.00651860
ud2
cmp esi, 0x2a3
mov dword [esp + 0x14], edx
je 0x5e89fd
cmp esi, 0x2e0
jne 0x5e8af1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov cl, 1
movzx eax, word [eax]
cvtsi2sd xmm2, eax
mov eax, dword [esp + 0xc]
divsd xmm2, qword [0x661df0]
mov esi, dword [eax]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea ebx, [esi + 8]
jne 0x5ea327
movsd xmm3, qword [esi + 0x190]
movapd xmm0, xmm2
movsd xmm1, qword [0x661e00]
movsd qword [esi + 0x190], xmm2
subsd xmm0, xmm3
andpd xmm0, xmmword [0x661600]
ucomisd xmm1, xmm0
jbe 0x5e8cae
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [eax], 2
mov dword [eax + 4], 0
mov al, 1
lock cmpxchg byte [ebx], cl
je 0x5ea4dc
mov ecx, ebx
jmp 0x5ea4e6
cmp esi, 0x24
je 0x5e8a51
cmp esi, 0x46
jne 0x5e8af1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
mov cl, 1
mov ebx, dword [eax]
xor eax, eax
lock cmpxchg byte [ebx + 8], cl
lea edi, [ebx + 8]
jne 0x5ea33f
cmp dword [ebx + 0x90], 2
mov eax, dword [esp + 0x20]
je 0x5ea4b3
mov esi, dword [eax]
mov dword [esp + 0x14], edx
test byte [esi + 0x18], 3
je 0x5e9de8
mov eax, dword [esp + 0x10]
xorpd xmm0, xmm0
lea ecx, [esp + 0xc0]
mov eax, dword [eax]
movapd xmmword [ecx], xmm0
push ecx
push eax
call dword [sym.imp.user32.dll_GetWindowRect]
test eax, eax
je 0x5ea5fc
mov edx, dword [esi + 0x18]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
and edx, 3
cmp edx, 1
je 0x5e9ec6
cmp edx, 2
je 0x5e9eea
cmp edx, 3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
je 0x5ea4b3
mov ecx, str.internal_error:_entered_unreachable_code_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmcmod.rs
mov edx, 0x28
push 0x7c4658
jmp 0x5ea5f2
cmp esi, 0x104
je 0x5e8a9c
cmp esi, 0x106
je 0x5e7ff0
jmp 0x5e8af1
cmp esi, 0x112
jne 0x5e8af1
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp eax, 0xf120
jne 0x5e7f7c
mov eax, dword [esp + 0xc]
mov cl, 1
mov esi, dword [eax]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea edi, [esi + 8]
jne 0x5ea53c
and byte [esi + 0x1a9], 0xdf
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi + 8], cl
jne 0x5ea54c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp eax, 0xf020
jne 0x5e7fb1
mov eax, dword [esp + 0xc]
mov cl, 1
mov esi, dword [eax]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea edi, [esi + 8]
jne 0x5ea55c
or byte [esi + 0x1a9], 0x20
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi + 8], cl
jne 0x5ea56c
mov eax, dword [esp + 0x18]
cmp dword [eax], 0xf140
jne 0x5e7ff0
mov eax, dword [esp + 0xc]
mov cl, 1
mov edi, dword [eax]
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea esi, [edi + 8]
jne 0x5ea57c
cmp dword [edi + 0x90], 2
jne 0x5e9900
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi], cl
jne 0x5ea5c0
mov dword [edx], 1
jmp 0x5ea4dc
cmp esi, 0x47
jne 0x5e8af1
mov eax, dword [ecx]
test byte [eax + 0x18], 2
jne 0x5e8aa5
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov edi, edx
mov eax, dword [eax + 0xc]
lea edx, [esp + 0xc0]
mov bl, 1
mov esi, dword [esi]
mov dword [edx + 4], esi
mov byte [edx + 8], bl
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx + 0x10], eax
mov byte [edx], bl
mov ecx, dword [ecx + 4]
add ecx, 8
call fcn.005ea74c
mov edx, edi
jmp 0x5e8aa5
mov eax, dword [esp + 0xc]
mov cl, 1
mov esi, dword [eax]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea edi, [esi + 8]
jne 0x5ea34f
xor ecx, ecx
mov al, 1
mov bl, byte [esi + 0x1b0]
lock cmpxchg byte [esi + 8], cl
jne 0x5ea35b
cmp bl, 2
jne 0x5ea4dc
mov eax, dword [esp + 0x10]
mov edx, 2
mov ecx, dword [eax]
call fcn.005c8024
mov ebx, eax
mov eax, dword [esp + 0xc]
mov cl, 1
mov esi, dword [eax]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea edi, [esi + 8]
jne 0x5ea518
cmp byte [esi + 0x1ad], bl
jne 0x5e9566
xor ecx, ecx
mov al, 1
lock cmpxchg byte [edi], cl
je 0x5ea4dc
jmp 0x5ea4e4
cmp dword [eax], 2
mov esi, dword [esp + 0x10]
jne 0x5e8977
push dword [ecx]
push 0
push 0x200
push dword [esi]
call dword [sym.imp.user32.dll_PostMessageW]
mov eax, dword [esi]
lea edx, [esp + 0xc0]
mov dword [edx + 4], eax
mov byte [edx + 8], 0x15
mov eax, dword [esp + 0xc]
mov byte [edx], 1
mov ecx, dword [eax + 4]
add ecx, 8
call fcn.005ea74c
jmp 0x5ea4dc
mov eax, dword [esp + 0xc]
mov cl, 1
mov edi, dword [eax]
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea esi, [edi + 8]
jne 0x5ea367
or byte [edi + 0x1aa], 4
jmp 0x5e89de
mov eax, dword [esp + 0xc]
mov cl, 1
mov edi, dword [eax]
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea esi, [edi + 8]
jne 0x5ea377
and byte [edi + 0x1aa], 0xfb
xor ecx, ecx
mov al, 1
lock cmpxchg byte [edi + 8], cl
je 0x5e9d93
mov ecx, esi
mov esi, edx
call fcn.006545f5
mov edx, esi
jmp 0x5e9d93
mov eax, dword [esp + 0xc]
mov cl, 1
mov esi, dword [eax]
xor eax, eax
lock cmpxchg byte [esi + 8], cl
lea edi, [esi + 8]
jne 0x5ea387
mov eax, dword [esp + 0x10]
mov bl, byte [esi + 0x2d]
mov dword [esp + 0x18], edi
lea edi, [esp + 0xc0]
mov eax, dword [eax]
mov ecx, ebx
and cl, 0xfb
mov byte [esi + 0x2d], cl
movzx edx, cl
mov ecx, edi
push eax
call fcn.005cd9f0
add esp, 4
cmp byte [edi], 4
jne 0x5e8fd8
mov esi, dword [esp + 0x18]
jmp 0x5e9006
mov eax, dword [ecx]
mov cl, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
lea eax, [esi + 8]
mov dword [esp + 0xc], eax
xor eax, eax
lock cmpxchg byte [esi + 8], cl
jne 0x5ea393
cmp dword [esi + 0x60], 2
jne 0x5e904f
cmp dword [esi + 0x78], 2
je 0x5e91f6
mov bl, byte [esi + 0x1aa]
mov dword [esp + 0x14], edx
and bl, 0x10
shr bl, 4
jmp 0x5e912c
cmp dword [eax], 0x73
jne 0x5ea4dc
mov dword [edx], 0
jmp 0x5ea4dc
mov ebx, edx
call fcn.005cdfd0
cmp esi, dword [eax]
jne 0x5e921e
mov eax, dword [esp + 0x10]
push dword [eax]
call dword [sym.imp.user32.dll_DestroyWindow]
mov dword [ebx], 2
mov dword [ebx + 4], 0
jmp 0x5ea4dc
mov edi, dword [esi + 0x1a8]
mov eax, dword [esi + 0x90]
movsd qword [esp + 0xa0], xmm3
movsd qword [esp + 0x30], xmm2
mov ecx, edi
xor eax, 2
and ecx, 0x80
or ecx, eax
mov al, 1
sete byte [esp + 0x2c]
xor ecx, ecx
lock cmpxchg byte [esi + 8], cl
jne 0x5ea524
mov ebx, dword [sym.imp.user32.dll_GetWindowLongW]
push 0xfffffffffffffff0
mov esi, dword [esp + 0x14]
push dword [esi]
call ebx
mov ecx, ebx
mov ebx, eax
and ebx, 0xff3bffff
bt edi, 0x14
cmovb ebx, eax
push 0xffffffffffffffec
push dword [esi]
mov edi, esi
call ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov edi, dword [edi]
mov eax, dword [eax]
mov dword [esp + 0x58], edi
lea edi, [esp + 0x60]
mov edx, dword [eax + 4]
mov esi, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edi], esi
mov dword [edi + 4], edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x58]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], eax
mov eax, edi
lea edi, [esp + 0xc0]
mov dword [esp + 0x9c], ecx
mov ecx, edi
push eax
push dword [esp + 0x1c]
mov dword [esp + 0x98], ebx
push ebx
call fcn.005c327e
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov ebx, esi
mov eax, dword [edi]
xorpd xmm0, xmm0
mov dword [esp + 0x58], esi
sub ebx, dword [edi + 4]
sub ecx, dword [edi + 8]
test eax, eax
movapd xmmword [edi], xmm0
cmove ebx, eax
cmove ecx, eax
mov dword [esp + 0x170], ecx
push edi
mov esi, dword [esp + 0x14]
push dword [esi]
call dword [sym.imp.user32.dll_GetClientRect]
xor eax, eax
lea ecx, [esp + 0x60]
mov dword [ecx], eax
mov dword [ecx + 4], eax
push ecx
push dword [esi]
call dword [sym.imp.user32.dll_ClientToScreen]
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub ecx, dword [edi]
sub eax, dword [edi + 4]
cmp byte [esp + 0x2c], 0
mov edi, ecx
mov esi, ecx
mov dword [esp + 0x2c], eax
je 0x5e8f32
movsd xmm3, qword [esp + 0xa0]
movsd qword [esp + 0x190], xmm3
ucomisd xmm3, xmm3
movsd xmm2, qword [esp + 0x30]
jp 0x5ea0e6
mov eax, dword [esp + 0x194]
test eax, eax
js 0x5ea0e6
mov ecx, eax
and ecx, 0xfffff
or ecx, dword [esp + 0x190]
je 0x5ea0ce
test eax, 0x7ff00000
je 0x5ea0e6
movsd qword [esp + 0x188], xmm2
mov eax, dword [esp + 0x18c]
test eax, eax
js 0x5ea112
mov ecx, eax
and ecx, 0xfffff
or ecx, dword [esp + 0x188]
je 0x5ea0fa
test eax, 0x7ff00000
je 0x5ea112
movq xmm1, qword [0x661ad0]
movd xmm4, dword [esp + 0x2c]
movd xmm0, edi
por xmm4, xmm1
por xmm0, xmm1
subsd xmm4, xmm1
subsd xmm0, xmm1
divsd xmm4, xmm3
divsd xmm0, xmm3
mulsd xmm4, xmm2
mulsd xmm0, xmm2
movapd xmmword [esp + 0xa0], xmm4
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
add esp, 8
fstp qword [esp + 0x1b8]
xorpd xmm1, xmm1
movsd xmm0, qword [esp + 0x1b8]
maxsd xmm0, xmm1
minsd xmm0, qword [0x661dc0]
cvttsd2si eax, xmm0
subsd xmm0, qword [0x661dc8]
mov ecx, eax
sar ecx, 0x1f
cvttsd2si esi, xmm0
and esi, ecx
or esi, eax
sub esp, 8
movaps xmm0, xmmword [esp + 0xa8]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
add esp, 8
fstp qword [esp + 0x1c0]
xorpd xmm1, xmm1
movsd xmm0, qword [esp + 0x1c0]
maxsd xmm0, xmm1
minsd xmm0, qword [0x661dc0]
cvttsd2si ecx, xmm0
subsd xmm0, qword [0x661dc8]
mov edx, ecx
sar edx, 0x1f
cvttsd2si eax, xmm0
and eax, edx
or eax, ecx
lea ecx, [esp + 0x150]
movsd xmm0, qword [esp + 0x30]
lea edx, [esp + 0xc0]
mov dword [esp + 0xa0], ebx
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [edx + 4], eax
mov byte [edx + 8], 0x13
mov dword [edx + 0xc], ecx
mov cl, 1
movsd qword [edx + 0x10], xmm0
mov byte [edx], cl
mov ecx, dword [esi + 4]
add ecx, 8
call fcn.005ea74c
mov ebx, dword [esi]
xor eax, eax
mov cl, 1
lock cmpxchg byte [ebx + 8], cl
lea esi, [ebx + 8]
jne 0x5ea530
mov eax, dword [ebx + 0x1a8]
cmp dword [esp + 0x150], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0xc], eax
jne 0x5e9597
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x154], eax
jne 0x5e9597
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi], cl
mov ebx, dword [esp + 0x10]
je 0x5e95a4
mov ecx, esi
call fcn.006545f5
jmp 0x5e95a4
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov byte [esi + 0x2d], bl
mov esi, dword [esp + 0x18]
cmp al, 4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
je 0x5e9006
lea eax, [esp + 0x60]
push eax
call fcn.0042fae4
add esp, 4
xor ebx, ebx
mov al, 1
lock cmpxchg byte [esi], bl
jne 0x5ea3a5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0xc0]
mov eax, dword [eax]
mov dword [edx + 4], eax
mov byte [edx + 8], 0xd
mov dword [edx + 0xc], ebx
mov byte [edx], 1
mov ecx, dword [ecx + 4]
add ecx, 8
call fcn.005ea74c
mov eax, dword [esp + 0x14]
mov dword [eax], 2
mov dword [eax + 4], ebx
jmp 0x5ea4dc
lea eax, [esi + 0x60]
lea ecx, [esp + 0xc0]
mov ebx, dword [esi + 0x1a8]
mov dword [esp + 0x14], edx
movsd xmm0, qword [eax + 0x10]
shr ebx, 0x14
movsd qword [ecx + 0x10], xmm0
and ebx, 1
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [esi + 0x190]
call fcn.005e2d3f
mov ecx, dword [esp + 0x10]
mov edi, edx
mov edx, eax
mov ecx, dword [ecx]
push ebx
push edi
call fcn.005c7f14
add esp, 8
movq xmm0, qword [0x661ad0]
movd xmm4, eax
movsd xmm2, qword [0x661dc0]
movsd xmm3, qword [0x661dc8]
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 edi, ecx
por xmm4, xmm0
sar edi, 0x1f
subsd xmm4, xmm0
and eax, edi
maxsd xmm4, xmm1
or eax, ecx
minsd xmm4, xmm2
cvttsd2si ecx, xmm4
subsd xmm4, xmm3
mov edx, ecx
cvttsd2si edi, xmm4
sar edx, 0x1f
and edi, edx
mov edx, dword [esp + 0x14]
or edi, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edi
cmp dword [esi + 0x78], 2
je 0x5e91f6
movsd xmm0, qword [esi + 0x88]
lea ecx, [esp + 0xc0]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esi + 0x78]
movsd xmm1, qword [esi + 0x80]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [esi + 0x190]
call fcn.005e2d3f
mov ecx, dword [esp + 0x10]
mov edi, edx
movzx esi, bl
mov edx, eax
mov ecx, dword [ecx]
push esi
push edi
call fcn.005c7f14
add esp, 8
movq xmm0, qword [0x661ad0]
movd xmm4, eax
movsd xmm2, qword [0x661dc0]
movsd xmm3, qword [0x661dc8]
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 esi, ecx
por xmm4, xmm0
sar esi, 0x1f
subsd xmm4, xmm0
and eax, esi
maxsd xmm4, xmm1
or eax, ecx
minsd xmm4, xmm2
cvttsd2si ecx, xmm4
subsd xmm4, xmm3
mov edx, ecx
cvttsd2si esi, xmm4
sar edx, 0x1f
and esi, edx
mov edx, dword [esp + 0x18]
or esi, ecx
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], esi
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov dword [edx], 2
mov dword [edx + 4], 0
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi], cl
je 0x5ea4dc
mov ecx, dword [esp + 0xc]
jmp 0x5ea4e6
mov esi, dword [edi]
call fcn.005c9391
cmp esi, dword [eax]
jne 0x5e98a4
mov eax, dword [esp + 0xc]
mov cl, 1
mov edi, dword [eax]
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea esi, [edi + 8]
jne 0x5ea5b4
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp dword [ecx], 0
mov ecx, 0xfffdffff
setne al
and ecx, dword [edi + 0x1a8]
shl eax, 0x11
or eax, ecx
mov dword [edi + 0x1a8], eax
mov dword [ebx], 2
mov dword [ebx + 4], 0
jmp 0x5e98dd
xor eax, eax
mov dword [esp + 0xa0], 4
mov ecx, dword [ecx]
push 0x28
push eax
push edx
mov dword [esp + 0x17c], ecx
push ecx
call dword [sym.imp.user32.dll_GetTouchInputInfo]
mov edi, dword [esp + 0x10]
test eax, eax
je 0x5e9458
mov eax, dword [esp + 0x90]
test eax, eax
je 0x5e98ee
mov esi, dword [esp + 0xa0]
lea eax, [eax*8]
lea ebx, [eax + eax*4]
mov eax, 0x51eb851f
imul dword [esi]
mov ecx, edx
mov eax, edx
shr eax, 0x1f
sar ecx, 5
add ecx, eax
mov eax, 0x51eb851f
imul dword [esi + 4]
mov dword [esp + 0x60], ecx
mov eax, edx
sar edx, 5
shr eax, 0x1f
add edx, eax
lea eax, [esp + 0x60]
mov dword [esp + 0x64], edx
push eax
push dword [edi]
call dword [sym.imp.user32.dll_ScreenToClient]
test eax, eax
je 0x5e944c
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, 0x51eb851f
mov dword [esp + 0x20], ebx
mov ebx, edi
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x60]
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [esp + 0x64]
mov ebx, dword [ebx]
mov dword [esp + 0x2c], eax
imul edx
mov eax, ecx
mov edi, edx
mov edx, 0x51eb851f
mov dword [esp + 0x30], ebx
imul edx
mov eax, dword [esi + 0x10]
test al, 2
jne 0x5e937d
mov dword [esp + 0x58], ecx
mov cl, 2
test al, 4
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x58]
jne 0x5e9385
mov cl, 1
test al, 1
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x58]
jne 0x5e9385
jmp 0x5e9444
mov dword [esp + 0x18], 0
mov eax, edi
mov ebx, dword [esp + 0x2c]
sar edi, 5
movsd xmm4, qword [0x661e10]
shr eax, 0x1f
add edi, eax
imul eax, edi, 0x64
sub ebx, eax
mov eax, edx
sar edx, 5
shr eax, 0x1f
cvtsi2sd xmm2, ebx
add edx, eax
divsd xmm2, xmm4
imul eax, edx, 0x64
lea edx, [esp + 0xc0]
sub ecx, eax
mov eax, dword [esi + 0xc]
cvtsi2sd xmm3, ecx
mov ecx, dword [esp + 0x30]
divsd xmm3, xmm4
mov dword [esp + 0xc4], ecx
mov ecx, 0
mov byte [esp + 0xc8], 0x12
mov dword [esp + 0xd0], 3
mov dword [esp + 0xd4], ecx
addsd xmm2, xmm0
movsd qword [esp + 0xf0], xmm2
addsd xmm3, xmm1
movsd qword [esp + 0xf8], xmm3
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0xc]
mov byte [esp + 0x10c], al
mov byte [esp + 0xc0], 1
mov ecx, dword [ecx + 4]
add ecx, 8
call fcn.005ea74c
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
add esi, 0x28
add ebx, 0xffffffd8
jne 0x5e92d6
push dword [esp + 0x170]
call dword [sym.imp.user32.dll_CloseTouchInputHandle]
cmp dword [esp + 0x90], 0
mov eax, dword [esp + 0x14]
mov dword [eax], 2
mov dword [eax + 4], 0
je 0x5ea4dc
push dword [esp + 0xa0]
jmp 0x5e9dbf
mov eax, dword [esp + 0x14]
mov dword [eax], 2
mov dword [eax + 4], 0
jmp 0x5ea4dc
push 8
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xbc]
push eax
push ebx
call dword [esp + 0x28]
test eax, eax
jne 0x5e9d62
jmp 0x5e9508
mov byte [esi + 0x1ad], bl
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi + 8], cl
jne 0x5ea5a8
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc0]
mov eax, dword [eax]
mov dword [edx + 4], eax
mov byte [edx + 8], 0x14
mov byte [edx + 9], bl
jmp 0x5e8987
mov ebx, dword [esp + 0x10]
mov ecx, esi
mov edx, dword [ebx]
call fcn.005f8965
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x150]
lea esi, [esp + 0x38]
add ecx, edi
add edx, dword [esp + 0x20]
mov dword [esi], ecx
add eax, ecx
mov ecx, dword [esp + 0x154]
mov dword [esi + 4], edx
mov dword [esi + 8], eax
lea eax, [esp + 0x60]
add ecx, edx
mov dword [esi + 0xc], ecx
movsd xmm0, qword [esi + 8]
movsd xmm1, qword [esi]
mov edx, dword [ebx]
mov ebx, edi
lea edi, [esp + 0xc0]
mov ecx, edi
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm1
push eax
push dword [esp + 0x1c]
push dword [esp + 0x98]
call fcn.005c327e
add esp, 0xc
cmp dword [edi], 0
lea eax, [esp + 0xc4]
cmove eax, esi
bt dword [esp + 0xc], 0x12
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
jae 0x5e96b8
xor esi, esi
lea eax, [esp + 0xc0]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], esi
push eax
call dword [sym.imp.user32.dll_GetCursorPos]
mov eax, dword [esp + 0xc0]
mov ecx, eax
sub ecx, ebx
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mov ecx, dword [esp + 0x9c]
sub ecx, ebx
xorps xmm1, xmm1
cvtsi2sd xmm1, ecx
mov ecx, dword [esp + 0x40]
divsd xmm0, xmm1
sub ecx, dword [esp + 0x38]
xorps xmm1, xmm1
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm0
ucomisd xmm1, xmm1
maxsd xmm1, qword [0x661dd0]
minsd xmm1, qword [0x661dd8]
cvttsd2si edx, xmm1
cmovp edx, esi
sub eax, edx
mov dword [esp + 0x38], eax
add eax, ecx
mov dword [esp + 0x40], eax
xor esi, esi
push esi
mov eax, dword [esp + 0x14]
push dword [eax]
call dword [sym.imp.user32.dll_MonitorFromWindow]
mov edi, eax
push esi
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.user32.dll_MonitorFromRect]
cmp eax, edi
mov dword [esp + 0xc], edi
je 0x5e9869
xorpd xmm0, xmm0
xor ecx, ecx
mov edx, 0x28
mov esi, dword [sym.imp.user32.dll_GetMonitorInfoW]
lea ebx, [esp + 0xc0]
movapd xmmword [esp + 0x60], xmm0
movapd xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], ecx
mov dword [esp + 0xc0], edx
movsd xmm1, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x64]
movsd xmm2, qword [esp + 0x74]
movsd qword [esp + 0xcc], xmm1
movsd xmm1, qword [esp + 0x7c]
movsd qword [esp + 0xc4], xmm0
movsd qword [esp + 0xd4], xmm2
movsd qword [esp + 0xdc], xmm1
mov dword [esp + 0xe4], ecx
push ebx
push eax
call esi
mov eax, dword [esp + 0xc8]
xorps xmm0, xmm0
mov ecx, esi
mov edi, dword [esp + 0xc4]
mov esi, dword [esp + 0xcc]
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], eax
mov eax, 0x28
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0x80], eax
movsd xmm1, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x64]
movsd xmm2, qword [esp + 0x74]
movsd qword [esp + 0xcc], xmm1
movsd xmm1, qword [esp + 0x7c]
movsd qword [esp + 0xc4], xmm0
movsd qword [esp + 0xd4], xmm2
movsd qword [esp + 0xdc], xmm1
mov dword [esp + 0xe4], eax
push ebx
push dword [esp + 0x10]
call ecx
mov eax, dword [esp + 0xc4]
xor ebx, ebx
cmp esi, eax
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc8]
sete bl
xor ecx, ecx
dec ecx
cmp edi, esi
cmove ebx, ecx
mov ecx, dword [esp + 0xd0]
xor edx, edx
cmp dword [esp + 0x20], ecx
sete dl
neg edx
xor edi, edi
inc edi
cmp dword [esp + 0x18], eax
cmovne edi, edx
add eax, dword [esp + 0x30]
sub esi, eax
mov eax, 0
add esi, ecx
test esi, esi
cmovle esi, eax
inc esi
dec esi
je 0x5e9869
add dword [esp + 0x38], ebx
add dword [esp + 0x40], ebx
add dword [esp + 0x3c], edi
add dword [esp + 0x44], edi
push 0
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.user32.dll_MonitorFromRect]
cmp eax, dword [esp + 0xc]
jne 0x5e9843
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
sub edx, eax
sub esi, ecx
push 0x14
push esi
push edx
push ecx
push eax
xor esi, esi
push esi
mov eax, dword [esp + 0x28]
push dword [eax]
call dword [sym.imp.user32.dll_SetWindowPos]
mov eax, dword [esp + 0x14]
mov dword [eax], 2
mov dword [eax + 4], esi
jmp 0x5ea4dc
mov esi, dword [edi]
call fcn.005ce05d
cmp esi, dword [eax]
jne 0x5ea4dc
mov eax, dword [esp + 0xc]
mov cl, 1
mov edi, dword [eax]
xor eax, eax
lock cmpxchg byte [edi + 8], cl
lea esi, [edi + 8]
jne 0x5ea5d0
mov eax, dword [esp + 0x10]
movzx edx, byte [edi + 0x1ac]
mov ecx, dword [eax]
call fcn.005cd836
xor ecx, ecx
mov al, 1
lock cmpxchg byte [edi + 8], cl
je 0x5ea4dc
jmp 0x5e991b
push dword [esp + 0x170]
call dword [sym.imp.user32.dll_CloseTouchInputHandle]
jmp 0x5e9508
mov dword [edx], 2
mov dword [edx + 4], 0
xor ecx, ecx
mov al, 1
lock cmpxchg byte [esi], cl
je 0x5ea4dc
mov ecx, esi
jmp 0x5ea4e6
mov ebx, 8
push ebx
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0xac]
call dword [esp + 0x28]
test eax, eax
je 0x5e9da5
test esi, esi
je 0x5e9d62
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x3c]
push eax
push dword [ebx + edi - 0x48]
call dword [esp + 0x3c]
test eax, eax
je 0x5e9cd4
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x68]
sub edx, dword [esp + 0x38]
sub ecx, eax
cvtsi2sd xmm4, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mov ecx, dword [esp + 0x64]
xorps xmm1, xmm1
cvtsi2sd xmm1, edx
mov edx, dword [esp + 0x6c]
divsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [ebx + edi - 0x38]
cvtsi2sd xmm5, ecx
sub edx, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, edx
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x3c]
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + edi - 0x34]
addsd xmm1, xmm4
cvtsi2sd xmm3, edx
divsd xmm2, xmm3
mulsd xmm0, xmm2
addsd xmm0, xmm5
movsd qword [esp + 0x20], xmm0
sub esp, 8
movsd qword [esp + 0x20], xmm1
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
fstp qword [esp + 0x1b0]
movsd xmm1, qword [0x661dd0]
movsd xmm2, qword [0x661dd8]
mov eax, 0
movsd xmm0, qword [esp + 0x1b0]
ucomisd xmm0, xmm0
maxsd xmm0, xmm1
minsd xmm0, xmm2
cvttsd2si esi, xmm0
cmovp esi, eax
sub esp, 8
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
add esp, 8
fstp qword [esp + 0x1a8]
mov ecx, 0
movsd xmm0, qword [esp + 0x1a8]
mov dword [esp + 0x150], esi
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x661dd0]
minsd xmm0, qword [0x661dd8]
cvttsd2si eax, xmm0
cmovp eax, ecx
mov dword [esp + 0x154], eax
lea eax, [esp + 0x150]
push eax
mov eax, dword [esp + 0x14]
push dword [eax]
call dword [sym.imp.user32.dll_ScreenToClient]
test eax, eax
je 0x5e9cd4
mov eax, dword [ebx + edi - 0x58]
cmp eax, 2
je 0x5e9b03
cmp eax, 3
jne 0x5e9b81
mov dword [esp + 0x54], 0x803738
mov eax, dword [0x803740]
cmp eax, 3
jne 0x5e9ce2
mov eax, dword [esp + 0x54]
mov esi, 3
mov dword [esp + 0x2c], 0
mov eax, dword [eax + 4]
test eax, eax
je 0x5e9b8e
lea ecx, [esp + 0xc0]
push ecx
push dword [ebx + edi - 0x54]
call eax
test eax, eax
je 0x5e9b8e
mov eax, dword [esp + 0x120]
jmp 0x5e9b4a
mov dword [esp + 0x54], 0x80372c
mov eax, dword [0x803734]
cmp eax, 3
jne 0x5e9d22
mov eax, dword [esp + 0x54]
mov esi, 3
mov dword [esp + 0x2c], 0
mov eax, dword [eax + 4]
test eax, eax
je 0x5e9b8e
lea ecx, [esp + 0xc0]
push ecx
push dword [ebx + edi - 0x54]
call eax
test eax, eax
je 0x5e9b8e
mov eax, dword [esp + 0x144]
lea ecx, [eax - 1]
cmp ecx, 0x3ff
ja 0x5e9b8e
movd xmm0, eax
mov esi, 2
por xmm0, xmmword [0x661de0]
subsd xmm0, qword [0x661ad0]
mulsd xmm0, qword [0x661e08]
movapd xmmword [esp + 0x170], xmm0
jmp 0x5e9b8e
mov dword [esp + 0x2c], 0
mov esi, 3
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x150]
movsd qword [esp + 0x58], 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
add esp, 8
fstp qword [esp + 0x198]
movsd xmm0, qword [esp + 0x18]
subsd xmm0, qword [esp + 0x198]
movsd qword [esp + 0x18], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x154]
movsd qword [esp + 0x90], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_trunc
movsd xmm2, qword [esp + 0x28]
add esp, 8
fstp qword [esp + 0x1a0]
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + edi - 0x4c]
subsd xmm2, qword [esp + 0x1a0]
mov ecx, dword [eax]
bt edx, 0x10
jb 0x5e9c38
mov al, 2
bt edx, 0x12
jb 0x5e9c3a
mov al, 1
bt edx, 0x11
jb 0x5e9c3a
jmp 0x5e9cd4
xor eax, eax
movsd xmm1, qword [esp + 0x18]
mov edx, dword [ebx + edi - 0x54]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x2c]
addsd xmm2, qword [esp + 0x90]
movapd xmm0, xmmword [esp + 0x170]
mov byte [esp + 0xc8], 0x12
mov dword [esp + 0xd0], esi
addsd xmm1, qword [esp + 0x58]
mov dword [esp + 0xd4], ecx
xor ecx, ecx
movsd qword [esp + 0xd8], xmm0
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xf8], xmm2
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0xc]
mov byte [esp + 0x10c], al
mov byte [esp + 0xc0], 1
lea edx, [esp + 0xc0]
mov ecx, dword [ecx + 4]
add ecx, 8
call fcn.005ea74c
add edi, 0xffffffa8
jne 0x5e9953
jmp 0x5e9d72
lea eax, [esp + 0x54]
lea ecx, [0x803740]
xor edx, edx
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc0], eax
push 0x7c1f30
push 0x7c20b4
lea eax, [esp + 0xc8]
push eax
call fcn.00659910
add esp, 0xc
jmp 0x5e9ac8
lea eax, [esp + 0x54]
lea ecx, [0x803734]
xor edx, edx
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc0], eax
push 0x7c1f30
push 0x7c21a4
lea eax, [esp + 0xc8]
push eax
call fcn.00659910
add esp, 0xc
jmp 0x5e9b19
push dword [esp + 0xa0]
call dword [esp + 0xa0]
jmp 0x5e9d8f
push dword [esp + 0xa0]
call dword [esp + 0xa0]
push ebx
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x14]
mov dword [edx], 2
mov dword [edx + 4], 0
jmp 0x5ea4dc
mov eax, dword [esp + 0x14]
test esi, esi
mov dword [eax], 2
mov dword [eax + 4], 0
je 0x5ea4dc
push ebx
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x5ea4dc
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
mov dword [esp + 0xc], esi
mov esi, dword [esi + 0x10]
mov dword [esp + 0x10], edi
add edx, eax
add esi, ecx
jmp 0x5e9efe
lea eax, [esp + 0x38]
lea ecx, [esp + 0x60]
mov esi, edx
xor edx, edx
mov dword [ecx], eax
lea eax, [esp + 0xc0]
mov dword [eax], ecx
lea ecx, [0x803710]
push 0x7c1f30
push 0x7c2104
push eax
call fcn.00659910
mov edx, esi
add esp, 0xc
jmp 0x5e7b96
lea eax, [esp + 0x38]
lea ecx, [esp + 0x60]
mov edi, esi
mov esi, edx
xor edx, edx
mov dword [ecx], eax
lea eax, [esp + 0xc0]
mov dword [eax], ecx
lea ecx, [0x80371c]
push 0x7c1f30
push 0x7c20a0
push eax
call fcn.00659910
mov edx, esi
mov esi, edi
add esp, 0xc
jmp 0x5e7bb3
lea eax, [esp + 0x38]
lea ecx, [esp + 0x60]
mov ebx, esi
mov esi, edx
xor edx, edx
mov dword [ecx], eax
lea eax, [esp + 0xc0]
mov dword [eax], ecx
lea ecx, [0x803728]
push 0x7c1f30
push 0x7c21e0
push eax
call fcn.00659910
mov edx, esi
mov esi, ebx
add esp, 0xc
jmp 0x5e7bd0
mov dword [esp + 0x10], edi
mov edi, esi
mov esi, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0xc], edi
sub esi, ecx
mov ecx, dword [edi + 8]
sub edx, eax
mov eax, dword [edi + 0xc]
jmp 0x5e9efa
mov edx, esi
mov esi, dword [esi + 0x10]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov edx, dword [edx + 0x14]
add esi, ecx
add edx, eax
lea edi, [esp + 0x60]
mov dword [edi], ecx
mov dword [edi + 4], eax
mov dword [edi + 8], esi
mov dword [edi + 0xc], edx
push 0
push edi
call dword [sym.imp.user32.dll_MonitorFromRect]
cmp dword [ebx + 0x90], 0
je 0x5e9f7f
mov esi, eax
inc eax
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp eax, 2
mov eax, dword [esp + 0x20]
jb 0x5ea4b3
cmp dword [ebx + 0x94], 0
je 0x5e9f4c
cmp esi, dword [ebx + 0x98]
je 0x5ea4b3
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.005c8ec3
lea eax, [esp + 0xc0]
cmp dword [eax], 0
je 0x5ea44f
lea eax, [esp + 0xc4]
push eax
call fcn.0042fae4
add esp, 4
jmp 0x5ea49b
mov edx, dword [ebx + 0x9c]
lea esi, [esp + 0xc0]
mov ecx, esi
call fcn.005c8ec3
cmp dword [esi], 0
mov edi, dword [esp + 0x10]
je 0x5ea3b1
lea eax, [esp + 0xc4]
push eax
call fcn.0042fae4
add esp, 4
jmp 0x5ea4ab
add eax, 0x7ff00000
and eax, 0x7fe00000
shr eax, 0x15
cmp eax, 0x3ff
jb 0x5e8e25
mov ecx, 0x7c75a4
mov edx, 0x35
push 0x7c4a64
jmp 0x5ea5f2
add eax, 0x7ff00000
and eax, 0x7fe00000
shr eax, 0x15
cmp eax, 0x3ff
jb 0x5e8e5d
mov ecx, 0x7c75a4
mov edx, 0x35
push 0x7c4a54
jmp 0x5ea5f2
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
call fcn.0065481c
mov edx, dword [esp + 0x14]
jmp 0x5e7cc4
mov ecx, esi
mov esi, edx
mov byte [esp + 0x10], ah
call fcn.006545f5
mov ah, byte [esp + 0x10]
mov edx, esi
jmp 0x5e7ce1
mov ecx, ebx
movsd qword [esp + 0x30], xmm2
call fcn.0065481c
movsd xmm2, qword [esp + 0x30]
jmp 0x5e7dfb
mov ecx, edi
mov esi, edx
call fcn.0065481c
mov edx, esi
jmp 0x5e7e81
mov ecx, edi
call fcn.0065481c
jmp 0x5e88f6
mov ecx, edi
call fcn.006545f5
jmp 0x5e890b
mov ecx, esi
mov ebx, edx
call fcn.0065481c
mov edx, ebx
jmp 0x5e89b6
mov ecx, esi
mov ebx, edx
call fcn.0065481c
mov edx, ebx
jmp 0x5e89d7
mov ecx, edi
call fcn.0065481c
jmp 0x5e8a15
mov ecx, dword [esp + 0xc]
mov edi, edx
call fcn.0065481c
mov edx, edi
jmp 0x5e8a73
mov ecx, esi
call fcn.006545f5
jmp 0x5e9014
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xcc]
mov esi, dword [esp + 0x18]
sub edx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [esp + 0x30]
mov dword [eax + 8], esi
mov esi, dword [esp + 0x30]
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp 0x5ea4ab
mov esi, edx
push eax
push 0
call dword [sym.imp.user32.dll_LoadCursorW]
lea ecx, [eax + 1]
cmp ecx, 2
jae 0x5ea436
call dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x5ea43d
push eax
call dword [sym.imp.user32.dll_SetCursor]
mov dword [esi], 2
mov dword [esi + 4], 0
jmp 0x5ea4dc
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xcc]
mov esi, dword [esp + 0x18]
sub edx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [esp + 0x30]
mov dword [eax + 8], esi
mov esi, dword [esp + 0x30]
mov dword [eax + 0xc], esi
mov esi, dword [esp + 0x2c]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov dword [ebx + 0x94], 1
mov dword [ebx + 0x98], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
test byte [ebx + 0x1a9], 2
je 0x5ea4c5
mov eax, dword [eax]
mov dword [eax + 4], 1
mov dword [edx], 2
mov dword [edx + 4], 0
xor edx, edx
mov al, 1
lock cmpxchg byte [edi], dl
jne 0x5ea4e4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
call fcn.006545f5
jmp 0x5ea4dc
mov ecx, edi
call fcn.0065481c
jmp 0x5e893e
mov ecx, ebx
call fcn.006545f5
jmp 0x5e8cea
mov ecx, esi
call fcn.0065481c
jmp 0x5e8f8e
mov ecx, edi
mov ebx, edx
call fcn.0065481c
mov edx, ebx
jmp 0x5e7f60
mov ecx, edi
mov esi, edx
call fcn.006545f5
mov edx, esi
jmp 0x5e7f76
mov ecx, edi
mov ebx, edx
call fcn.0065481c
mov edx, ebx
jmp 0x5e7f9b
mov ecx, edi
mov esi, edx
call fcn.006545f5
mov edx, esi
jmp 0x5e7fb1
mov ecx, esi
mov ebx, edx
call fcn.0065481c
mov edx, ebx
jmp 0x5e7fd5
mov ecx, edi
call fcn.006545f5
jmp 0x5e957b
mov ecx, esi
call fcn.0065481c
jmp 0x5e9245
mov ecx, esi
mov esi, edx
call fcn.006545f5
mov edx, esi
jmp 0x5e7ff0
mov ecx, esi
call fcn.0065481c
jmp 0x5e98cb
call fcn.00498870
ud2
call fcn.006522d0
add esp, 4
ud2
mov ecx, str.Unexpected_GetWindowRect_failure__please_report_this_error_to_https:__github.com_rust_windowing_tao
mov edx, 0x63
push 0x7c4648
call fcn.00652640
jmp 0x5ea5f7