Function at 0x4598c0
Capabilities:
Access peb ldr_data
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5d44e7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x100
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x110]
push ebx
mov dword [esp + 0x30], eax
xor ebx, ebx
mov eax, dword [ecx + 0x24]
push ebp
push esi
cmp eax, ebx
push edi
jne 0x459902
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp 0x459916
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x45990e
add eax, 8
jmp 0x459910
xor eax, eax
mov dword [esp + 0x14], eax
mov ebp, eax
mov cl, byte [0x637ca8]
mov esi, 0x637ca8
cmp cl, bl
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], ebx
mov eax, 0x637ca9
je 0x45993d
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x459936
sub eax, 0x637ca8
lea ecx, [esp + 0x28]
dec eax
mov edi, eax
lea eax, [edi + 0x20]
push eax
call fcn.0041b410
mov cl, byte [0x637ca8]
mov eax, dword [esp + 0x28]
cmp cl, bl
je 0x45996b
mov byte [eax], cl
mov cl, byte [esi + 1]
inc eax
inc esi
cmp cl, bl
jne 0x459960
mov byte [eax], bl
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x118], ebx
lea esi, [edi + 0x3f8]
mov ecx, esi
mov dword [esp + 0x38], esi
call fcn.005b57da
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
mov ecx, esi
call fcn.005b5783
mov edx, dword [edi + 0x1c]
lea ecx, [esp + 0x124]
push ecx
push edx
call dword [sym.imp.USER32.dll_ClientToScreen]
cmp ebp, ebx
je 0x459d25
jmp 0x4599bb
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
je 0x459ce9
lea eax, [esp + 0x28]
push eax
call fcn.0041b8d0
cmp eax, ebx
je 0x459ce9
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
je 0x459d72
lea edx, [esp + 0x28]
push edx
call fcn.0041b960
mov esi, dword [eax]
xor eax, eax
mov al, byte [esi]
mov cl, byte [eax + 0x638374]
and ecx, 0x40
mov dword [esp + 0x34], ecx
je 0x459a05
inc esi
jmp 0x4599ef
movsx eax, byte [esi]
sub eax, 0x2b
je 0x459a1a
sub eax, 2
jne 0x459a1b
mov ebp, 1
inc esi
jmp 0x459a1d
inc esi
xor ebp, ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x459a3b.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x459a3b.68
xor edx, edx
mov dl, byte [ecx + 0x459da4]
jmp dword [edx*4 + 0x459d98]
mov edi, 0x10
jmp 0x459a4e
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x18], cl
mov edx, dword [esp + 0x18]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x34], ebx
je 0x459a8f
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x459a85
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x459a4f
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x459a4f
xor ebx, ebx
cmp ebp, ebx
je 0x459b00
jmp 0x459afe
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x18], dl
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x34], ebx
je 0x459ae8
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x459ad9
movsx edx, byte [esp + 0x18]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x459a99
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x459a99
mov dl, byte [esp + 0x18]
cmp dl, 0x68
je 0x459af6
cmp dl, 0x48
jne 0x459af8
mov eax, ecx
xor ebx, ebx
cmp ebp, ebx
je 0x459b00
neg eax
mov edi, eax
cmp edi, 0x7d4
jne 0x459b30
mov ecx, dword [esp + 0x3c]
call fcn.0043a8b0
cmp eax, ebx
jne 0x459b30
mov ecx, dword [esp + 0x120]
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [ecx + 0x24]
call fcn.0056eda0
jmp 0x459d11
call fcn.00596b38
lea esi, [eax + 0x1c]
mov ecx, eax
push esi
push edi
call fcn.00403e80
test eax, eax
je 0x459b50
push 1
mov ecx, esi
call fcn.005b4ba6
jmp 0x459b52
xor eax, eax
push eax
lea ecx, [esp + 0x14]
call fcn.005b47d5
push 0x637c20
lea ecx, [esp + 0x14]
mov byte [esp + 0x11c], 1
call fcn.005ace06
cmp eax, 0xffffffff
je 0x459ba9
lea edx, [esp + 0x40]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.005acd6c
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x11c], 2
call fcn.005b48a8
lea ecx, [esp + 0x40]
mov byte [esp + 0x118], 1
call fcn.005b4761
push 0x637c18
lea ecx, [esp + 0x14]
call fcn.005ace06
mov esi, eax
cmp esi, 0xffffffff
je 0x459c36
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
sub eax, esi
sub eax, 2
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.005accf0
lea edx, [esp + 0x24]
push esi
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x120], 3
call fcn.005acd6c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x18]
push str._s_t_s
push edx
mov byte [esp + 0x128], 4
call fcn.005ad17a
add esp, 0x10
lea ecx, [esp + 0x24]
mov byte [esp + 0x118], 3
call fcn.005b4761
lea ecx, [esp + 0x20]
mov byte [esp + 0x118], 1
call fcn.005b4761
mov eax, dword [esp + 0x10]
cmp edi, 0x13a0
lea ecx, [esp + 0x10]
mov eax, dword [eax - 8]
push eax
jne 0x459cbc
call fcn.005b4ba6
mov edi, dword [esp + 0x1c]
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
push eax
push 0x13a0
mov ecx, dword [edi + 0x3fc]
push 0x800
push ecx
call esi
cmp dword [0x880a6c], ebx
je 0x459c99
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov eax, dword [edx - 8]
push eax
call fcn.005b4ba6
push eax
mov eax, dword [edi + 0x3fc]
push 0x13a0
push 8
push eax
call esi
jmp 0x459cd5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x10]
push eax
call fcn.005b4ba6
mov edx, dword [edi + 0x3fc]
push eax
push 0x13a0
push ebx
push edx
call esi
jmp 0x459cd5
call fcn.005b4ba6
mov ecx, dword [esp + 0x1c]
push eax
push edi
push ebx
mov edx, dword [ecx + 0x3fc]
push edx
call dword [sym.imp.USER32.dll_AppendMenuW]
lea ecx, [esp + 0x10]
mov byte [esp + 0x118], bl
call fcn.005b4761
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x120]
cmp ebp, ebx
mov eax, dword [eax + 0x24]
jne 0x459d03
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x459d0f
add eax, 8
jmp 0x459d11
mov eax, dword [ebp - 4]
cmp eax, ebx
je 0x459d0f
add eax, 8
jmp 0x459d11
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x4599b7
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
push ebx
push edi
push edx
push eax
push ebx
mov ecx, esi
call fcn.005b1760
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x118], 0xffffffff
push ecx
call fcn.005b44c3
mov ecx, dword [esp + 0x114]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret 0xc
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0x48]
call fcn.0045bee0
lea ecx, [esp + 0x44]
push 0x5ff2d8
push ecx
mov dword [esp + 0x4c], 0x5e867c
call fcn.005300db
nop
dec ecx
lcall 69, 0x9a420045
xchg edi, eax
lcall 514, 0x2000045
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add dword [edx], eax
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add byte [edx], al
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add dword [eax - 0x6f6f6f70], edx
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d4521
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x294
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
add eax, 0xffffe4a7
push edi
mov ebx, dword [esi + 0x3c]
cmp eax, 4
ja case.default.0x459e1a
jmp dword [eax*4 + 0x45aa88]
call dword [sym.imp.USER32.dll_ReleaseCapture]
lea ecx, [esi + 0x3f8]
call fcn.005b57da
mov ecx, esi
call fcn.0045c8f0
mov ecx, dword [esp + 0x2a0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [esi + 0x3f8]
call fcn.005b57da
lea edi, [ebx + 0x58]
lea ecx, [ebx + 0x614]
push edi
call fcn.00470290
mov ecx, edi
call fcn.0054a870
push eax
mov ecx, edi
call fcn.0054ade0
xor edi, edi
lea ecx, [esp + 0xc4]
push edi
call fcn.004cab70
lea ecx, [esp + 0xc4]
mov dword [esp + 0x2a8], edi
call fcn.005b02e3
cmp eax, 1
jne 0x45a33a
fld qword [esp + 0x1f0]
fld qword [esp + 0x1e8]
sub esp, 0x1c
lea ecx, [esp + 0x34]
mov eax, esp
mov dword [esp + 0x2c], esp
fstp qword [eax]
push ecx
mov dword [eax + 0x10], edi
fstp qword [eax + 8]
mov ecx, esi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], 0x2710
call fcn.0044ce80
mov eax, dword [esi + 0x550]
cmp eax, edi
jne 0x45a0b0
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_SetCapture]
push eax
call fcn.005b0c08
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ecx
mov dword [esi + 0x88], eax
push eax
lea eax, [esp + 0x254]
mov dword [esi + 0x8c], ecx
push eax
mov ecx, esi
call fcn.0044ce00
mov ecx, dword [eax]
mov dword [esi + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0xa0], ecx
mov edx, dword [eax + 0xc]
fld qword [esp + 0x1e8]
mov dword [esi + 0xa4], edx
mov ecx, dword [eax + 0x10]
mov dword [esi + 0xa8], ecx
mov edx, dword [eax + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esi + 0xac], edx
mov eax, dword [eax + 0x18]
mov edx, dword [esp + 0x1c]
fstp qword [esp + 0x20]
fld qword [esp + 0x1f0]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0x54c]
mov dword [esi + 0x90], ecx
cmp eax, 8
fstp qword [esp + 0x28]
mov dword [esi + 0x94], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], 0x2710
jne 0x459fed
push 1
lea eax, [esp + 0x24]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0042cf80
lea ecx, [ebx + 0x58]
call fcn.0054a870
push eax
mov ecx, ebx
call fcn.004344d0
push edi
lea edx, [esp + 0x24]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.0042cf80
lea ecx, [ebx + 0x58]
call fcn.0054a870
push eax
mov ecx, ebx
call fcn.004344d0
jmp 0x45a334
mov ebx, dword [esi + 0xf4]
lea edi, [esi + 0xec]
push 0xffffffffffffffff
mov ecx, edi
lea eax, [ebx + 1]
push eax
call fcn.00464b90
mov edx, dword [edi + 4]
lea ecx, [ebx*8]
sub ecx, ebx
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x18], ecx
mov eax, dword [esi + 0x54c]
cmp eax, 5
jne 0x45a334
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x218]
push eax
push ecx
mov ecx, esi
call fcn.0044ce00
mov edx, dword [eax]
mov dword [esi + 0xd0], edx
mov ecx, dword [eax + 4]
mov dword [esi + 0xd4], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0xd8], edx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xdc], ecx
mov edx, dword [eax + 0x10]
mov dword [esi + 0xe0], edx
mov ecx, dword [eax + 0x14]
mov dword [esi + 0xe4], ecx
mov edx, dword [eax + 0x18]
mov dword [esi + 0xe8], edx
jmp 0x45a334
cmp dword [esi + 0x54c], 8
jne 0x45a18b
lea eax, [ebx + 0x58]
lea ecx, [ebx + 0x614]
push eax
call fcn.00470290
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.00570d30
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x230]
push eax
push ecx
push edx
mov ecx, esi
call fcn.0044ce00
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
push edi
mov ecx, dword [ecx]
sub esp, 0x1c
mov dword [esp + 0x30], esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x14], edx
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x18], eax
lea edx, [esp + 0x40]
fld qword [esp + 0x208]
fstp qword [esp + 0x40]
fld qword [esp + 0x210]
mov ecx, esp
push edx
fstp qword [esp + 0x4c]
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0x2710
call fcn.0042cf80
lea ecx, [ebx + 0x58]
call fcn.0054a870
push eax
mov ecx, ebx
call fcn.004344d0
cmp dword [esi + 0x550], 1
jne 0x45a334
mov eax, dword [esp + 0x14]
push edi
jmp 0x45a32c
fld qword [esp + 0x1e8]
fstp qword [esp + 0x20]
fld qword [esp + 0x1f0]
fstp qword [esp + 0x28]
cmp eax, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x2710
jne 0x45a21a
mov edx, dword [esi + 0x8c]
push eax
mov eax, dword [esi + 0x88]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
push eax
push ecx
mov ecx, esi
call fcn.0044ce00
lea ecx, [ebx + 0x58]
call fcn.0054a870
push eax
mov ecx, ebx
call fcn.00433ec0
push edi
lea edx, [esp + 0x24]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.0042cf80
lea ecx, [ebx + 0x58]
call fcn.0054a870
push eax
mov ecx, ebx
call fcn.00433ec0
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ecx
mov dword [esi + 0x88], eax
push eax
lea eax, [esp + 0x200]
mov dword [esi + 0x8c], ecx
push eax
mov ecx, esi
call fcn.0044ce00
mov ecx, dword [eax]
push 0xffffffffffffffff
mov dword [esi + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0xa0], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xa4], edx
mov ecx, dword [eax + 0x10]
mov dword [esi + 0xa8], ecx
mov edx, dword [eax + 0x14]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xac], edx
mov eax, dword [eax + 0x18]
mov edx, dword [esp + 0x20]
mov dword [esi + 0xb0], eax
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0xec]
mov dword [esi + 0x94], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x18], eax
inc eax
push eax
call fcn.00464b90
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 0xf0]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x18], ecx
mov eax, dword [esi + 0x550]
cmp eax, 1
jle 0x45a31e
push edi
lea edx, [esp + 0x24]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.0042cf80
lea ecx, [ebx + 0x58]
call fcn.0054a870
push eax
mov ecx, ebx
call fcn.00433ec0
jmp 0x45a322
mov eax, dword [esp + 0x10]
cmp dword [esi + 0x550], 1
jne 0x45a334
push edi
push eax
mov ecx, esi
call fcn.004541d0
inc dword [esi + 0x550]
lea ecx, [esp + 0x184]
mov dword [esp + 0x2a8], 2
call fcn.0042d050
lea ecx, [esp + 0x120]
mov byte [esp + 0x2a8], 1
call fcn.0042d050
lea ecx, [esp + 0xc4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.005afeed
mov ecx, dword [esp + 0x2a0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [esi + 0x3f8]
call fcn.005b57da
lea eax, [ebx + 0x58]
lea ecx, [ebx + 0x614]
push eax
mov dword [esp + 0x14], eax
call fcn.00470290
mov ebx, eax
xor edi, edi
cmp ebx, edi
jne 0x45a407
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0xec]
call fcn.00464b90
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], ecx
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov dword [esi + 0x550], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
lea edx, [esp + 0x74]
jmp 0x45aa65
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
call fcn.00453f50
mov eax, dword [esi + 0x54c]
cmp eax, 8
jne 0x45a4b8
cmp dword [esi + 0x550], 1
je 0x45a4ca
mov ecx, ebx
call fcn.00570d10
mov ecx, ebx
mov dword [esp + 0x10], eax
call fcn.00570d30
push 1
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.0054a170
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov edx, dword [ecx]
mov ecx, dword [eax]
fld qword [edx]
fsub qword [ecx]
mov edx, dword [esp + 0x10]
fstp qword [esp + 0x20]
mov ecx, dword [edx]
mov edx, dword [eax]
fld qword [ecx + 8]
fsub qword [edx + 8]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
fstp qword [esp + 0x2c]
mov edx, dword [eax]
push edx
call fcn.005719e0
jmp 0x45a633
cmp eax, 3
jne 0x45a579
cmp dword [esi + 0x550], 1
jne 0x45a4e2
mov ecx, dword [esp + 0x10]
call fcn.0054a8e0
push 1
push ebx
mov ecx, eax
call fcn.00547c20
jmp 0x45a633
mov ecx, ebx
call fcn.005655a0
push 0x1c
mov dword [esp + 0x18], eax
call fcn.005b449a
add esp, 4
cmp eax, edi
je 0x45a519
mov dword [eax], edi
mov dword [eax + 8], edi
mov dword [eax + 0x10], edi
mov dword [eax + 4], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], 0x2710
mov dword [esp + 0x10], eax
jmp 0x45a51f
mov dword [esp + 0x10], edi
mov eax, edi
mov ecx, dword [esp + 0x14]
push 1
mov edx, dword [ecx]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx]
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 0x14]
mov dword [eax + 0x14], edx
mov edx, dword [ecx]
mov ecx, dword [edx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, ebx
call fcn.0054a170
mov edx, dword [esp + 0x10]
mov ecx, ebx
push edx
call fcn.00565880
jmp 0x45a633
cmp eax, 9
jne 0x45a633
cmp dword [esi + 0x550], 1
je 0x45a4ca
mov ecx, ebx
call fcn.00570d10
push 0x1c
mov dword [esp + 0x14], eax
call fcn.005b449a
add esp, 4
cmp eax, edi
je case.default.0x459e1a
mov ecx, dword [esp + 0x10]
push eax
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov ecx, dword [ecx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, ebx
call fcn.0056c3c0
push 0x1c
call fcn.005b449a
add esp, 4
cmp eax, edi
je case.default.0x459e1a
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov ecx, dword [ecx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, ebx
call fcn.0056c3c0
push 1
mov ecx, ebx
call fcn.0054a170
push 1
mov ecx, ebx
call fcn.0054a000
lea edx, [esp + 0x268]
mov ecx, esi
push edx
call fcn.00453f50
fld qword [eax + 0x1c]
fadd qword [eax]
sub esp, 0x38
mov ebx, 0x2710
mov dword [esp + 0x48], esp
fmul qword [0x5e7c18]
fstp qword [esi + 0x138]
fld qword [eax + 0x24]
fadd qword [eax + 8]
fmul qword [0x5e7c18]
fstp qword [esi + 0x140]
fld qword [eax + 0x2c]
fadd qword [eax + 0x10]
mov eax, esp
fmul qword [0x5e7c18]
fstp qword [esi + 0x148]
mov dword [eax], edi
mov dword [eax + 8], edi
mov dword [eax + 0x10], edi
mov dword [eax + 4], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], edi
mov dword [eax + 0x24], edi
mov dword [eax + 0x2c], edi
mov dword [eax + 0x20], edi
mov dword [eax + 0x28], edi
mov dword [eax + 0x30], edi
mov dword [eax + 0x34], ebx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x18], ecx
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], ecx
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], ecx
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0xa8]
mov dword [eax + 0x34], edx
lea eax, [esp + 0xec]
push eax
mov ecx, esi
call fcn.0044cef0
mov edx, dword [eax]
lea ecx, [esi + 0x2c8]
mov dword [esi + 0x2c8], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0xec]
call fcn.00464b90
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x8c]
mov dword [esi + 0x90], ecx
mov dword [esi + 0x94], edx
mov dword [esi + 0x2c4], 1
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov ecx, esi
mov dword [esi + 0x550], edi
call fcn.00464830
sub esp, 0x38
mov eax, esp
mov dword [esp + 0x48], esp
mov dword [eax], edi
mov dword [eax + 8], edi
mov dword [eax + 0x10], edi
mov dword [eax + 4], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], edi
mov dword [eax + 0x24], edi
mov dword [eax + 0x2c], edi
mov dword [eax + 0x20], edi
mov dword [eax + 0x28], edi
mov dword [eax + 0x30], edi
mov dword [eax + 0x34], ebx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x18], ecx
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], ecx
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], ecx
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0xa8]
mov dword [eax + 0x34], edx
lea eax, [esp + 0xdc]
push eax
mov ecx, esi
call fcn.0044cef0
push eax
push 1
mov ecx, esi
call fcn.0045cd10
mov ecx, esi
call fcn.00454200
call fcn.005cb95c
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x1c]
cmp ebx, edi
je case.default.0x459e1a
mov ecx, dword [ebx + 0x4161]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x45a8bf
cmp dword [esi + 0x550], edi
jne 0x45a8bf
mov edx, dword [ebx + 0x4161]
push edi
push edi
push 0x474
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 0x1c]
push edi
push edi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x2a0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0x318]
call fcn.00566280
push 0x10
call fcn.005b449a
mov edi, eax
mov eax, 1
push 4
mov dword [edi], 0x19
mov dword [edi + 4], eax
mov dword [edi + 8], eax
call fcn.005b449a
mov dword [edi + 0xc], eax
mov ecx, dword [esi + 0x318]
add esp, 8
mov dword [eax], ecx
lea eax, [ebx + 0x58]
lea ecx, [ebx + 0x1a0c]
push edi
push eax
call fcn.00526d60
mov eax, dword [esi + 0x54c]
xor edi, edi
cmp eax, 2
jne 0x45a9b7
lea eax, [ebx + 0x58]
mov dword [esi + 0x1d0], edi
mov dword [esi + 0x1d8], edi
mov dword [esi + 0x1e0], edi
mov dword [esi + 0x1e8], edi
push eax
lea ecx, [ebx + 0x614]
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1e4], edi
mov dword [esi + 0x1ec], edi
call fcn.00470290
mov ebx, eax
cmp ebx, edi
je 0x45a9b7
mov ecx, ebx
call fcn.00549f80
cmp eax, 0xb
mov ecx, ebx
jne 0x45a993
call fcn.00567190
jmp 0x45a9b7
call fcn.00549f80
cmp eax, 5
mov ecx, ebx
jne 0x45a9a6
call fcn.00572c70
jmp 0x45a9b7
call fcn.00549f80
cmp eax, 0x10
jne 0x45a9b7
mov ecx, ebx
call fcn.0056ec30
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], edi
lea edx, [esp + 0x84]
jmp 0x45aa65
push 0x14
call fcn.005b449a
mov edi, eax
mov eax, 1
push 4
mov dword [edi], 0x1a
mov dword [edi + 4], eax
mov dword [edi + 8], eax
call fcn.005b449a
mov dword [edi + 0xc], eax
mov ecx, dword [esi + 0x318]
mov dword [eax], ecx
mov ecx, dword [esi + 0x318]
add esp, 8
call fcn.005655a0
mov edx, dword [eax]
lea eax, [ebx + 0x58]
push edi
push eax
lea ecx, [ebx + 0x1a0c]
mov dword [edi + 0x10], edx
call fcn.00526d60
mov ecx, dword [esi + 0x374]
push ecx
mov ecx, dword [esi + 0x318]
call fcn.00566370
xor edi, edi
lea edx, [esp + 0x94]
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
push edx
push edi
mov ecx, esi
call fcn.0045cd10
mov ecx, dword [esp + 0x2a0]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4