Function at 0x449570
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ca135
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push ebx
push esi
push edi
mov eax, dword [0x507074]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp dword [ebp + 0x1c], 0
mov edi, dword [ebp + 0x18]
jne 0x449da5
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x110
jne 0x4495e6
sub esp, 8
mov dword [ebx + 0x8c], 1
mov ecx, ebx
call fcn.0044aa00
mov dword [edi], eax
cmp dword [ebx + 0x8c], 0
jne 0x449d8a
mov eax, dword [ebx + 0x70]
lea esi, [ebx + 0x70]
mov edi, dword [ebp + 0x14]
mov dword [ebp + 0x1c], eax
jmp 0x449bca
mov edi, dword [ebp + 0x14]
cmp ecx, 2
jne 0x449623
mov ecx, ebx
mov dword [ebx + 0x8c], 1
call fcn.0044b3d0
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0
cmp dword [ebx + 0x8c], 0
jne 0x449d8a
mov eax, dword [ebx + 0x70]
lea esi, [ebx + 0x70]
mov dword [ebp + 0x1c], eax
jmp 0x449c79
cmp ecx, 0x4e
jne 0x449974
mov eax, dword [edi + 8]
cmp eax, 0xffffff9b
jne 0x4497af
mov ecx, ebx
call fcn.0044c5f0
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 2
push 0xffffffffffffffff
push 0x100c
push dword [ebx + 0x1ac]
call esi
cmp eax, 0xffffffff
jne 0x44968e
push 0x4df9a0
push dword [ebx + 0x1d4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
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 [ebp - 0x64], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x68]
movlpd qword [ebp - 0x60], xmm0
push eax
push 0
push 0x104b
push dword [ebx + 0x1ac]
movlpd qword [ebp - 0x58], xmm0
movlpd qword [ebp - 0x50], xmm0
movlpd qword [ebp - 0x48], xmm0
movlpd qword [ebp - 0x40], xmm0
movlpd qword [ebp - 0x38], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x68], 4
call esi
xor edi, edi
test eax, eax
cmovne edi, dword [ebp - 0x48]
test edi, edi
je 0x449b93
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test eax, eax
jne 0x449b93
lea esi, [ebx + 0x210]
mov ecx, edi
push esi
lea eax, [ebx + 0x24c]
push eax
lea eax, [ebx + 0x248]
push eax
lea eax, [ebx + 0x244]
push eax
lea eax, [ebx + 0x23c]
push eax
lea eax, [ebx + 0x238]
push eax
lea eax, [ebx + 0x234]
push eax
call fcn.0045f900
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [eax - 0xc]
push eax
push 0
push 0x435
push dword [ebx + 0x1d4]
mov dword [ebp - 0x1c], eax
call edi
lea eax, [ebp - 0x20]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
push 2
push 0x449
push dword [ebx + 0x1d4]
mov dword [ebp - 0x24], 0x41a300
call edi
push dword [ebx + 0x1d4]
mov ecx, esi
call fcn.00456310
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
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, 0xffffff9c
jne 0x4497dc
push ecx
push edi
push ecx
mov ecx, ebx
call fcn.0044bfb0
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 0x449850
mov eax, dword [edi + 0xc]
test eax, eax
js 0x449b93
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
xorps xmm0, xmm0
push 0xf000
push eax
push 0x102c
push dword [ebx + 0x1ac]
movlpd qword [ebp - 0x68], xmm0
mov dword [ebp - 0x60], 0
movlpd qword [ebp - 0x54], xmm0
movlpd qword [ebp - 0x4c], xmm0
movlpd qword [ebp - 0x44], xmm0
movlpd qword [ebp - 0x3c], xmm0
movlpd qword [ebp - 0x34], xmm0
call esi
and eax, 0xfffff000
mov ecx, 0x1000
cmp eax, ecx
mov edx, 0x2000
lea eax, [ebp - 0x68]
cmove ecx, edx
push eax
push dword [edi + 0xc]
mov dword [ebp - 0x5c], ecx
jmp 0x449b7f
cmp eax, 0x70b
jne 0x449895
cmp dword [edi + 0xc], 0x202
jne 0x449b93
lea eax, [edi + 0x18]
push eax
lea ecx, [ebx + 0x210]
call fcn.004564b0
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
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, 0xffffff4f
jne 0x449bb5
cmp byte [ebx + 0x25c], 0
jne 0x4498bf
mov eax, dword [ebp + 0x18]
lea esi, [ebx + 0x70]
mov dword [eax], 0
mov eax, dword [esi]
mov dword [ebp + 0x1c], eax
jmp 0x449cc8
mov esi, dword [edi + 0x2c]
test esi, esi
je 0x4498a9
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
test eax, eax
jne 0x4498a9
mov eax, dword [esi + 0xc]
lea edx, [esi + 0xc]
mov dword [ebp + 0x14], edx
cmp dword [eax - 0xc], 0
jne 0x4498ec
mov edx, dword [ebx + 0xa4]
add edx, 0x34
mov dword [ebp + 0x14], edx
xor esi, esi
cmp dword [ebx + 0x268], esi
jle 0x4498a9
nop word [eax + eax]
mov eax, dword [ebx + 0x260]
lea ecx, [eax + esi*4]
call fcn.0040f850
test al, al
jne 0x449920
mov edx, dword [ebp + 0x14]
inc esi
cmp esi, dword [ebx + 0x268]
jl 0x449900
jmp 0x4498a9
cmp esi, 0xffffffff
je 0x4498a9
or dword [edi + 0xc], 0x100
xor eax, eax
mov edx, dword [ebx + 0x268]
test edx, edx
jle 0x44994c
mov ecx, dword [ebx + 0x264]
nop
cmp dword [ecx], esi
je 0x44994f
inc eax
add ecx, 4
cmp eax, edx
jl 0x449940
or eax, 0xffffffff
mov dword [edi + 0x34], eax
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
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 ecx, 0x7b
jne 0x449ade
mov eax, dword [ebp + 0x14]
movsx ecx, ax
shr eax, 0x10
cwde
mov dword [ebp + 0x1c], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebx + 0x1ac]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp + 0xc]
push eax
push dword [ebp - 0x18]
lea ecx, [ebx + 0x1ac]
push dword [ebp - 0x1c]
call fcn.0044ce10
test eax, eax
js 0x449b93
push 0xf000
push eax
push 0x102c
push dword [ebx + 0x1ac]
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
mov dword [ebp + 0x14], eax
test eax, eax
je 0x449b93
mov dword [ebp + 0x10], 0
mov dword [ebp - 4], 0
push 0x6f
push dword [0x508e30]
call dword [sym.imp.USER32.dll_LoadMenuW]
mov esi, eax
lea eax, [ebp + 0xc]
push ecx
push eax
lea ecx, [ebp + 0x10]
mov dword [ebp + 0x10], esi
call fcn.0044ce80
mov byte [ebp - 4], 1
push dword [ebx + 0x224]
mov edi, dword [sym.imp.USER32.dll_ModifyMenuW]
push 0x9c44
push 0x400
push 0
push dword [ebp + 0xc]
call edi
push dword [ebx + 0x228]
push 0x9c45
push 0
push 0x9c45
push dword [ebp + 0xc]
call edi
cmp dword [ebp + 0x14], 2
mov edi, dword [sym.imp.USER32.dll_EnableMenuItem]
jne 0x449a67
push 1
push 0x9c44
push dword [ebp + 0xc]
call edi
push 0
jmp 0x449a75
push 0
push 0x9c44
push dword [ebp + 0xc]
call edi
push 1
push 0x9c45
push dword [ebp + 0xc]
call edi
push 0
push dword [ebx + 4]
push 0
push dword [ebp + 0x1c]
push dword [ebp - 0x10]
push 0x42
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x449b93
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
test eax, eax
je 0x449b93
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x10], 0
mov dword [eax], 0
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 ecx, 0x111
jne 0x449bb5
mov eax, dword [ebp + 0x10]
mov esi, 0x9c44
movzx eax, ax
mov edx, eax
cmp si, ax
jne 0x449b21
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 2
push 0xffffffffffffffff
push 0x100c
push dword [ebx + 0x1ac]
call esi
cmp eax, 0xffffffff
je 0x449b93
mov dword [ebp - 0x5c], 0x2000
jmp 0x449b52
mov eax, 0x9c45
cmp ax, dx
jne 0x449bb5
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 2
push 0xffffffffffffffff
push 0x100c
push dword [ebx + 0x1ac]
call esi
cmp eax, 0xffffffff
je 0x449b93
mov dword [ebp - 0x5c], 0x1000
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
lea ecx, [ebp - 0x68]
movlpd qword [ebp - 0x34], xmm0
push ecx
push eax
movlpd qword [ebp - 0x3c], xmm0
movlpd qword [ebp - 0x44], xmm0
movlpd qword [ebp - 0x4c], xmm0
movlpd qword [ebp - 0x54], xmm0
movlpd qword [ebp - 0x68], xmm0
push 0x102b
push dword [ebx + 0x1ac]
mov dword [ebp - 0x58], 0xf000
call esi
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
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 [ebx + 0x70]
lea esi, [ebx + 0x70]
mov dword [ebp + 0x1c], edx
cmp ecx, 0x110
jne 0x449c74
cmp byte [ebx + 0x75], 0
mov dword [esi], 1
je 0x449be6
push 1
push str.IsExterior
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetPropW]
cmp byte [ebx + 0x74], 0
je 0x449c08
push 0xffffffffffffffec
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x2000000
push eax
push 0xffffffffffffffec
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
sub esp, 0xc
lea ecx, [ebx + 0x50]
call fcn.0044e760
mov eax, dword [ebp + 0x18]
mov dword [esi], 0
mov dword [eax], 0
cmp dword [esi], 0
jne 0x449ca1
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0xc]
lea eax, [ebx + 0x50]
mov dword [ebp + 0xc], eax
cmp ecx, 5
jne 0x449d5f
xor ecx, ecx
test eax, eax
cmove ebx, ecx
cmp byte [eax + 0x1c], cl
je 0x449d3f
push 0xe801
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [ebp + 0x10]
cmp ecx, 2
jne 0x449d30
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x449d47
cmp ecx, 2
jne 0x449cbf
push str.IsExterior
push dword [ebx + 4]
mov dword [esi], 1
call dword [sym.imp.USER32.dll_RemovePropW]
mov eax, dword [ebp + 0x18]
mov dword [esi], 0
mov dword [eax], 0
cmp dword [esi], 0
je 0x449c27
mov eax, dword [ebp + 0x1c]
mov dword [esi], 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 ecx, 0x4e
jne 0x449c2d
cmp dword [edi + 8], 0xffffff38
jne 0x449ced
mov eax, dword [ebx + 4]
mov dword [edi + 0xc], eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetParent]
push edi
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 edi
sub esp, 8
mov ecx, ebx
call fcn.0044db10
cmp dword [ebp + 0x14], 0
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
je 0x449c27
mov eax, dword [ebp + 0x1c]
mov dword [esi], 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
test ecx, ecx
jne 0x449d42
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x449d47
mov ecx, dword [ebp + 0x10]
cmp ecx, 1
je 0x449d5a
mov eax, edi
lea ecx, [ebx + 0x50]
shr eax, 0x10
cwde
push eax
movsx eax, di
push eax
call fcn.0044ead0
mov edx, dword [ebp + 0x1c]
jmp 0x449d7f
cmp ecx, 0x24
jne 0x449da3
cmp dword [eax + 0x14], 0xffffffff
je 0x449d7f
cmp dword [eax + 0x18], 0xffffffff
je 0x449d7f
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
mov dword [esi], edx
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 [esi], edx
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