Function at 0x44ed90
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d5a55
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x515080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [ebp + 0x1c], 0
jne 0x44f60e
mov edx, dword [ebp + 0xc]
cmp edx, 0x110
jne 0x44edfe
sub esp, 8
mov dword [edi + 0x8c], 1
call fcn.00450400
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
cmp dword [edi + 0x8c], 0
jne 0x44f5f2
mov esi, dword [edi + 0x70]
mov ebx, dword [ebp + 0x14]
jmp 0x44f3ff
mov ebx, dword [ebp + 0x14]
cmp edx, 2
jne 0x44ee33
mov dword [edi + 0x8c], 1
call fcn.00450eb0
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0
cmp dword [edi + 0x8c], 0
jne 0x44f5f2
mov esi, dword [edi + 0x70]
jmp 0x44f484
cmp edx, 0x4e
jne 0x44f1a5
mov eax, dword [ebx + 8]
cmp eax, 0xffffff9b
jne 0x44efcb
call fcn.004521e0
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edi + 0x1ac]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
jne 0x44ee9a
push 0x4ed694
push dword [edi + 0x1d4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [ebp + 0x18]
mov eax, 1
mov dword [ecx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dword [ebp - 0x70], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x74]
movlpd qword [ebp - 0x6c], xmm0
push eax
push 0
push 0x104b
push dword [edi + 0x1ac]
movlpd qword [ebp - 0x64], xmm0
movlpd qword [ebp - 0x5c], xmm0
movlpd qword [ebp - 0x54], xmm0
movlpd qword [ebp - 0x4c], xmm0
movlpd qword [ebp - 0x44], xmm0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x74], 4
call dword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
test eax, eax
cmovne ebx, dword [ebp - 0x54]
test ebx, ebx
je 0x44f3ce
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4e2514]
mov ecx, ebx
call esi
test eax, eax
jne 0x44f3ce
lea esi, [edi + 0x210]
mov ecx, ebx
push esi
lea eax, [edi + 0x24c]
push eax
lea eax, [edi + 0x248]
push eax
lea eax, [edi + 0x244]
push eax
lea eax, [edi + 0x23c]
push eax
lea eax, [edi + 0x238]
push eax
lea eax, [edi + 0x234]
push eax
call fcn.00467180
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [eax - 0xc]
push eax
push 0
push 0x435
push dword [edi + 0x1d4]
mov dword [ebp - 0x28], eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
push eax
push 2
push 0x449
push dword [edi + 0x1d4]
mov dword [ebp - 0x30], 0x41b410
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [edi + 0x1d4]
mov ecx, esi
call fcn.0045c820
mov ecx, dword [ebp + 0x18]
mov eax, 1
mov dword [ecx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0xffffff9c
jne 0x44eff6
push ecx
push ebx
push ecx
call fcn.00451b60
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0xfffffffd
jne 0x44f068
mov eax, dword [ebx + 0xc]
test eax, eax
js 0x44f3ce
push 0xf000
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0
push eax
push 0x102c
push dword [edi + 0x1ac]
movlpd qword [ebp - 0x74], xmm0
movlpd qword [ebp - 0x60], xmm0
movlpd qword [ebp - 0x58], xmm0
movlpd qword [ebp - 0x50], xmm0
movlpd qword [ebp - 0x48], xmm0
movlpd qword [ebp - 0x40], xmm0
call dword [sym.imp.USER32.dll_SendMessageW]
and eax, 0xfffff000
mov ecx, 0x1000
cmp eax, ecx
mov edx, 0x2000
lea eax, [ebp - 0x74]
cmove ecx, edx
push eax
push dword [ebx + 0xc]
mov dword [ebp - 0x68], ecx
jmp 0x44f3b6
cmp eax, 0x70b
jne 0x44f0ad
cmp dword [ebx + 0xc], 0x202
jne 0x44f3ce
lea eax, [ebx + 0x18]
push eax
lea ecx, [edi + 0x210]
call fcn.0045c9b0
mov ecx, dword [ebp + 0x18]
mov eax, 1
mov dword [ecx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0xffffff4f
jne 0x44f3f0
cmp byte [edi + 0x25c], 0
jne 0x44f0d2
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0
mov esi, dword [edi + 0x70]
jmp 0x44f4d4
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x44f0c1
mov eax, dword [eax]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4e2514]
mov ecx, dword [ebp - 0x14]
call esi
test eax, eax
jne 0x44f0c1
mov edx, dword [ebp - 0x14]
add edx, 0xc
mov dword [ebp - 0x14], edx
mov eax, dword [edx]
cmp dword [eax - 0xc], 0
jne 0x44f10f
mov edx, dword [edi + 0xa4]
add edx, 0x34
mov dword [ebp - 0x14], edx
xor esi, esi
cmp dword [edi + 0x268], esi
jle 0x44f0c1
nop dword [eax]
mov eax, dword [edi + 0x260]
lea ecx, [eax + esi*4]
call fcn.00410270
test al, al
jne 0x44f14f
mov edx, dword [ebp - 0x14]
inc esi
cmp esi, dword [edi + 0x268]
jl 0x44f120
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0
mov esi, dword [edi + 0x70]
jmp 0x44f4d4
cmp esi, 0xffffffff
je 0x44f0c1
or dword [ebx + 0xc], 0x100
xor eax, eax
mov edx, dword [edi + 0x268]
test edx, edx
jle 0x44f17d
mov ecx, dword [edi + 0x264]
cmp dword [ecx], esi
je 0x44f180
inc eax
add ecx, 4
cmp eax, edx
jl 0x44f171
or eax, 0xffffffff
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x34], eax
mov eax, 1
mov dword [ecx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp edx, 0x7b
jne 0x44f315
mov eax, dword [ebp + 0x14]
movsx ecx, ax
shr eax, 0x10
cwde
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
push dword [edi + 0x1ac]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x24]
lea ecx, [edi + 0x1ac]
push dword [ebp - 0x28]
call fcn.00452a10
test eax, eax
js 0x44f3ce
push 0xf000
push eax
push 0x102c
push dword [edi + 0x1ac]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
shr ebx, 0xc
test ebx, ebx
je 0x44f3ce
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
push 0x6f
push dword [0x516d48]
call dword [sym.imp.USER32.dll_LoadMenuW]
mov esi, eax
lea eax, [ebp - 0x10]
push ecx
push eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], esi
call fcn.00452a80
mov byte [ebp - 4], 1
push dword [edi + 0x224]
push 0x9c44
push 0x400
push 0
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_ModifyMenuW]
push dword [edi + 0x228]
push 0x9c45
push 0
push 0x9c45
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_ModifyMenuW]
cmp ebx, 2
jne 0x44f296
push 1
push 0x9c44
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 0
jmp 0x44f2a8
push 0
push 0x9c44
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 1
push 0x9c45
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 0
push dword [edi + 4]
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push 0x42
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x44f3ce
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
test eax, eax
je 0x44f3ce
mov ecx, dword [ebp + 0x18]
mov eax, 1
mov dword [ebp - 0x14], 0
mov dword [ecx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp edx, 0x111
jne 0x44f3f0
mov eax, dword [ebp + 0x10]
mov esi, 0x9c44
movzx eax, ax
mov ecx, eax
cmp si, ax
jne 0x44f35a
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edi + 0x1ac]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x44f3ce
mov dword [ebp - 0x68], 0x2000
jmp 0x44f389
mov eax, 0x9c45
cmp ax, cx
jne 0x44f3f0
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edi + 0x1ac]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x44f3ce
mov dword [ebp - 0x68], 0x1000
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0
lea ecx, [ebp - 0x74]
movlpd qword [ebp - 0x40], xmm0
push ecx
push eax
movlpd qword [ebp - 0x48], xmm0
movlpd qword [ebp - 0x50], xmm0
movlpd qword [ebp - 0x58], xmm0
movlpd qword [ebp - 0x60], xmm0
movlpd qword [ebp - 0x74], xmm0
push 0x102b
push dword [edi + 0x1ac]
mov dword [ebp - 0x64], 0xf000
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp + 0x18]
mov eax, 1
mov dword [ecx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov esi, dword [edi + 0x70]
cmp edx, 0x110
jne 0x44f47f
cmp byte [edi + 0x75], 0
mov dword [edi + 0x70], 1
je 0x44f41c
push 1
push str.IsExterior
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetPropW]
cmp byte [edi + 0x74], 0
je 0x44f43e
push 0xffffffffffffffec
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x2000000
push eax
push 0xffffffffffffffec
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
sub esp, 0xc
lea ecx, [edi + 0x50]
call fcn.00454280
mov edx, dword [ebp + 0x18]
mov dword [edi + 0x70], 0
mov dword [edx], 0
cmp dword [edi + 0x70], 0
je 0x44f539
mov dword [edi + 0x70], esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp edx, 2
jne 0x44f4cf
push str.IsExterior
push dword [edi + 4]
mov dword [edi + 0x70], 1
call dword [sym.imp.USER32.dll_RemovePropW]
mov edx, dword [ebp + 0x18]
mov dword [edi + 0x70], 0
mov dword [edx], 0
cmp dword [edi + 0x70], 0
je 0x44f539
mov dword [edi + 0x70], esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp edx, 0x4e
jne 0x44f536
cmp dword [ebx + 8], 0xffffff38
jne 0x44f4f9
mov eax, dword [edi + 4]
mov dword [ebx + 0xc], eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetParent]
push ebx
push dword [ebp + 0x10]
push 0x4e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 1
push eax
push ebx
sub esp, 8
mov ecx, edi
call fcn.004535e0
cmp dword [ebp - 0x14], 0
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
je 0x44f539
mov dword [edi + 0x70], esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
lea ecx, [edi + 0x50]
cmp eax, 5
jne 0x44f5cc
xor edx, edx
mov eax, edi
test ecx, ecx
cmove eax, edx
mov dword [ebp - 0x1c], eax
cmp byte [ecx + 0x1c], dl
je 0x44f589
push 0xe801
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebp + 0x10]
cmp ecx, 2
jne 0x44f57a
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x44f591
test ecx, ecx
jne 0x44f58c
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x44f591
mov ecx, dword [ebp + 0x10]
cmp ecx, 1
je 0x44f5a7
mov ecx, dword [ebp - 0x1c]
mov eax, ebx
shr eax, 0x10
add ecx, 0x50
cwde
push eax
movsx eax, bx
push eax
call fcn.004545f0
mov edx, dword [ebp + 0x18]
mov eax, 1
mov dword [edx], 0
mov dword [edi + 0x70], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0x24
jne 0x44f60b
cmp dword [ecx + 0x14], 0xffffffff
je 0x44f5e9
cmp dword [ecx + 0x18], 0xffffffff
je 0x44f5e9
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
mov dword [edx], 0
mov dword [edi + 0x70], esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dword [edi + 0x70], esi
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18