Function at 0x4788bc
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd18
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x2e8], ebx
mov dword [ebp - 0x2e4], ebx
mov dword [ebp - 0x2dc], ebx
mov dword [ebp - 0x2e0], ebx
mov dword [ebp - 0x2d8], ebx
mov dword [ebp - 0x2d4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov byte [ebp - 5], cl
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00405ffc
xor eax, eax
push ebp
push 0x4794b6
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00475f78
call fcn.00474c04
mov esi, eax
lea eax, [ebp - 0x2d4]
call fcn.0047baf0
cmp dword [ebp - 0x2d4], 0
jne 0x47893c
mov edi, 1
jmp 0x47944e
xor eax, eax
push ebp
push 0x478960
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x48
call fcn.00402754
mov edi, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x478979
mov edx, edi
mov eax, ebx
mov ecx, 0x48
call fcn.00402950
mov ebx, edi
call fcn.00475f78
call fcn.00474f48
mov edi, eax
test edi, edi
je 0x478a28
lea eax, [ebp - 0xc]
call fcn.0047baf0
lea eax, [ebp - 0x180]
push eax
mov eax, dword [ebx + 4]
push eax
mov eax, dword [ebx]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [eax]
call dword [eax + 0x38]
call fcn.00475f78
call fcn.00475504
push eax
lea eax, [ebp - 0x180]
push eax
push ebx
call edi
test al, al
jne 0x4789f9
test esi, esi
jne 0x4789e3
mov eax, 0x80040902
call fcn.0047bcd0
mov edx, 0x48
mov eax, ebx
call fcn.00402774
mov edi, 0x80004004
jmp 0x47944e
call fcn.00475f78
lea edx, [ebp - 0x2d8]
call fcn.00474c34
cmp dword [ebp - 0x2d8], 0
jne 0x478a28
mov edx, 0x48
mov eax, ebx
call fcn.00402774
mov edi, 1
jmp 0x47944e
call fcn.00475f78
mov edx, ebx
call fcn.00475668
mov dl, 1
mov al, 1
call fcn.00479e74
call fcn.00475f78
mov dl, 1
call fcn.004758d0
test byte [ebx + 0xc], 4
setne byte [0x4f2218]
cmp dword [ebp - 4], 0
jne 0x478a65
test esi, esi
jne 0x478a65
mov eax, ebx
call fcn.004796f4
mov byte [ebp - 0x21], 0
cmp dword [ebx + 0x10], 0
jne 0x478a79
cmp dword [ebx + 0x14], 0
jne 0x478a79
mov byte [ebp - 0x21], 1
cmp dword [ebx + 0x30], 0
je 0x478b1d
test esi, esi
je 0x478abf
cmp dword [esi + 0x30], 0
jne 0x478abf
call fcn.00475f78
mov edx, dword [esi + 0x10]
call fcn.00475e40
call fcn.00475f78
mov edx, dword [esi + 0x14]
call fcn.00475e28
call fcn.00475f78
call fcn.00475578
push eax
push 0xfffffffffffffff0
call fcn.0047bb68
push eax
call sub.user32.dll_SetWindowLongA
call fcn.0047bb5c
mov edi, eax
call fcn.0047bb68
cmp edi, eax
je 0x478adc
push 0
call fcn.0047bb5c
push eax
call sub.user32.dll_ShowWindow
call fcn.0047bb5c
mov edi, eax
call fcn.0047bb68
cmp edi, eax
jne 0x478c6f
call fcn.00475f78
call fcn.00474f18
test eax, eax
je 0x478c6f
call fcn.00475f78
call fcn.00474f18
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_SetMenu
jmp 0x478c6f
test esi, esi
je 0x478b33
test esi, esi
je 0x478bc2
cmp dword [esi + 0x30], 0
je 0x478bc2
call fcn.00475f78
call fcn.00475564
mov edi, eax
mov edx, 0x2c
mov eax, edi
call fcn.00407498
mov dword [edi], 0x2c
push edi
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowPlacement
push 0xffffffffffffffec
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowLongA
test al, 8
setne byte [ebp - 0x4e]
call fcn.00475f78
mov dl, byte [ebp - 0x4e]
call fcn.00475f30
push 0xfffffffffffffff0
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowLongA
mov edi, eax
and edi, 0xfeffffff
and edi, 0xdfffffff
call fcn.00475f78
mov edx, edi
call fcn.00475f18
test esi, esi
je 0x478bc2
call fcn.00475f78
mov edx, dword [esi + 0x10]
call fcn.00475f00
call fcn.00475f78
mov edx, dword [esi + 0x14]
call fcn.00475ee8
push 0
call fcn.0047bb5c
push eax
call sub.user32.dll_ShowWindow
push 0x80080000
push 0xfffffffffffffff0
call fcn.0047bb5c
push eax
call sub.user32.dll_SetWindowLongA
call fcn.0047bb5c
mov edi, eax
call fcn.0047bb68
cmp edi, eax
jne 0x478c17
call fcn.0047bb5c
push eax
call sub.user32.dll_GetMenu
mov edi, eax
call fcn.00475f78
mov edx, edi
call fcn.00475984
push 0
call fcn.0047bb5c
push eax
call sub.user32.dll_SetMenu
lea eax, [ebp - 0x1f8]
mov edx, 0x2c
call fcn.00407498
mov dword [ebp - 0x1f8], 0x2c
lea eax, [ebp - 0x1f8]
push eax
call fcn.0047bb5c
push eax
call sub.user32.dll_GetWindowPlacement
test byte [ebp - 0x1f4], 2
je 0x478c6f
and dword [ebp - 0x1f4], 0xfffffffd
mov dword [ebp - 0x1f0], 9
lea eax, [ebp - 0x1f8]
push eax
call fcn.0047bb5c
push eax
call sub.user32.dll_SetWindowPlacement
cmp byte [ebp - 5], 0
jne 0x478d88
cmp dword [ebp - 4], 0
je 0x478c99
lea eax, [ebp - 0x2dc]
call fcn.0047bb04
mov eax, dword [ebp - 0x2dc]
cmp eax, dword [ebp - 4]
jne 0x478d88
lea eax, [ebp - 0x2e0]
call fcn.0047bb04
cmp dword [ebp - 0x2e0], 0
je 0x478d88
test esi, esi
je 0x478d88
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x478d88
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 4]
jne 0x478d88
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0xc]
jne 0x478d88
call fcn.00479bd0
mov edi, eax
mov eax, edi
call fcn.004074f4
test eax, eax
je 0x478ddc
cmp edi, 0x88760868
jne 0x478d0a
call fcn.00475f78
mov dl, 1
call fcn.00475748
jmp 0x478ddc
cmp edi, 0x80040908
je 0x478d1a
cmp edi, 0x80040903
jne 0x478d39
mov edx, 0x48
mov eax, esi
call fcn.00402774
mov eax, edi
call fcn.0047bcd0
xor eax, eax
call fcn.0047b760
jmp 0x47944e
call fcn.00475f78
mov edx, esi
call fcn.00475668
mov al, byte [ebp + 8]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004788bc
call fcn.004074f4
test eax, eax
je 0x478d6c
xor eax, eax
call fcn.0047b760
mov edi, 0x80040905
jmp 0x478d77
xor edx, edx
xor eax, eax
call fcn.00479e74
xor edi, edi
mov edx, 0x48
mov eax, ebx
call fcn.00402774
jmp 0x47944e
test esi, esi
je 0x478d93
xor eax, eax
call fcn.0047b7d8
mov eax, dword [ebp - 4]
call fcn.004797f0
mov edi, eax
mov eax, edi
call fcn.004074f4
test eax, eax
je 0x478ddc
mov edx, 0x48
mov eax, esi
call fcn.00402774
mov al, 1
call fcn.0047b7d8
mov eax, edi
call fcn.0047bcd0
xor edx, edx
xor eax, eax
call fcn.00479e74
call fcn.00475f78
xor edx, edx
call fcn.004758d0
jmp 0x47944e
cmp dword [ebx + 0x30], 0
je 0x478df3
call fcn.00475f78
call fcn.00475320
call fcn.00479554
jmp 0x478e02
call fcn.00475f78
call fcn.00475308
call fcn.00479554
lea eax, [ebp - 0xc]
call fcn.0047baf0
mov eax, dword [ebx]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [eax]
call dword [eax + 0x3c]
mov edi, eax
call fcn.00475f78
mov edx, edi
call fcn.00475608
call fcn.0047a7dc
test esi, esi
je 0x478e7f
cmp dword [esi + 0x30], 0
jne 0x478e7f
cmp dword [ebx + 0x30], 0
je 0x478e7f
call fcn.00475f78
call fcn.00475564
mov edi, eax
push edi
call fcn.0047bb68
push eax
call sub.user32.dll_SetWindowPlacement
call fcn.00475f78
call fcn.00475590
test al, al
je 0x478e64
or edi, 0xffffffff
jmp 0x478e69
mov edi, 0xfffffffe
push 0xb
push 0
push 0
push 0
push 0
push edi
call fcn.0047bb68
push eax
call sub.user32.dll_SetWindowPos
mov byte [ebp - 0x29], 0
cmp dword [ebx + 0x30], 0
je 0x4790ae
cmp byte [ebp - 0x21], 0
jne 0x4790ae
call fcn.0047bb68
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x478fac
lea eax, [ebp - 0x1cc]
mov edx, 0x2c
call fcn.00407498
mov dword [ebp - 0x1cc], 0x2c
lea eax, [ebp - 0x1cc]
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowPlacement
test byte [ebp - 0x1c8], 2
je 0x478f34
cmp dword [ebp - 0x1c4], 2
jne 0x478f34
push 9
call fcn.0047bb68
push eax
call sub.user32.dll_ShowWindow
lea eax, [ebp - 0x208]
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_GetClientRect
mov edi, dword [ebp - 0x200]
sub edi, dword [ebp - 0x208]
mov eax, dword [ebp - 0x1fc]
sub eax, dword [ebp - 0x204]
mov dword [ebp - 0x30], eax
push 6
call fcn.0047bb68
push eax
call sub.user32.dll_ShowWindow
jmp 0x478fd9
push 0
lea eax, [ebp - 0x218]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00419eb0
call fcn.00475f78
call fcn.00474f18
test eax, eax
setne al
neg al
sbb eax, eax
push eax
call fcn.00475f78
call fcn.00475578
push eax
lea eax, [ebp - 0x218]
push eax
call sub.user32.dll_AdjustWindowRect
mov eax, dword [ebp - 0x210]
sub eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x20c]
sub edx, dword [ebp - 0x214]
mov edi, dword [ebp - 0x1a8]
sub edi, dword [ebp - 0x1b0]
sub edi, eax
mov eax, dword [ebp - 0x1a4]
sub eax, dword [ebp - 0x1ac]
sub eax, edx
mov dword [ebp - 0x30], eax
jmp 0x478fd9
lea eax, [ebp - 0x208]
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_GetClientRect
mov edi, dword [ebp - 0x200]
sub edi, dword [ebp - 0x208]
mov eax, dword [ebp - 0x1fc]
sub eax, dword [ebp - 0x204]
mov dword [ebp - 0x30], eax
cmp edi, dword [ebx + 0x10]
jne 0x478fe6
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebp - 0x30]
je 0x478fea
mov byte [ebp - 0x29], 1
cmp byte [ebp + 8], 0
je 0x4790ae
call fcn.0047bb68
push eax
call sub.user32.dll_IsIconic
test eax, eax
jne 0x4790ae
mov dword [ebp - 0x240], 0x28
mov eax, dword [ebx]
push eax
lea eax, [ebp - 0x2e4]
call fcn.0047baf0
mov eax, dword [ebp - 0x2e4]
push eax
mov eax, dword [eax]
call dword [eax + 0x3c]
mov edi, eax
lea edx, [ebp - 0x240]
mov eax, edi
call fcn.004601a0
call fcn.0047bb30
mov edx, 1
call fcn.004602bc
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x278]
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowRect
mov eax, dword [ebp - 0x278]
cmp eax, dword [ebp - 0x22c]
jl 0x479096
mov eax, dword [ebp - 0x270]
cmp eax, dword [ebp - 0x224]
jg 0x479096
mov eax, dword [ebp - 0x274]
cmp eax, dword [ebp - 0x228]
jl 0x479096
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x220]
jle 0x4790ae
cmp edi, dword [ebp - 0x3c]
jne 0x4790aa
call fcn.0047bb68
push eax
call sub.user32.dll_IsZoomed
test eax, eax
jne 0x4790ae
mov byte [ebp - 0x29], 1
cmp byte [ebp - 0x29], 0
je 0x4793e4
call fcn.0047bb68
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x4790d4
push 9
call fcn.0047bb68
push eax
call sub.user32.dll_ShowWindow
call fcn.0047bb68
push eax
call sub.user32.dll_IsZoomed
test eax, eax
je 0x4790f0
push 9
call fcn.0047bb68
push eax
call sub.user32.dll_ShowWindow
cmp byte [ebp + 8], 0
je 0x4792be
mov dword [ebp - 0x240], 0x28
mov eax, dword [ebx]
push eax
lea eax, [ebp - 0x2e8]
call fcn.0047baf0
mov eax, dword [ebp - 0x2e8]
push eax
mov eax, dword [eax]
call dword [eax + 0x3c]
lea edx, [ebp - 0x240]
call fcn.004601a0
mov dword [ebp - 0x268], 0x28
call fcn.0047bb30
mov edx, 1
call fcn.004602bc
lea edx, [ebp - 0x268]
call fcn.004601a0
mov eax, dword [ebp - 0x224]
sub eax, dword [ebp - 0x22c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x220]
sub eax, dword [ebp - 0x228]
mov dword [ebp - 0x44], eax
mov edi, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x278]
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowRect
xor eax, eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x280], edi
xor eax, eax
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x27c], eax
call fcn.00475f78
call fcn.00474f18
test eax, eax
setne al
neg al
sbb eax, eax
push eax
push 0xfffffffffffffff0
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowLongA
push eax
lea eax, [ebp - 0x288]
push eax
call sub.user32.dll_AdjustWindowRect
mov edi, dword [ebp - 0x280]
sub edi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x27c]
sub eax, dword [ebp - 0x284]
mov dword [ebp - 0x48], eax
cmp edi, dword [ebp - 0x40]
jle 0x4791f9
mov edi, dword [ebp - 0x40]
sub edi, 0
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x44]
jle 0x479213
call fcn.00478884
test al, al
je 0x479213
mov eax, dword [ebp - 0x44]
sub eax, 0
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x288]
jg 0x47924b
mov eax, dword [ebp - 0x284]
cmp eax, dword [ebp - 0x228]
jl 0x47924b
mov eax, dword [ebp - 0x280]
cmp eax, dword [ebp - 0x224]
jg 0x47924b
mov eax, dword [ebp - 0x27c]
cmp eax, dword [ebp - 0x220]
jle 0x479297
mov eax, dword [ebp - 0x40]
sub eax, edi
sar eax, 1
jns 0x479257
adc eax, 0
mov edx, dword [ebp - 0x44]
sub edx, dword [ebp - 0x48]
sar edx, 1
jns 0x479264
adc edx, 0
mov ecx, dword [ebp - 0x22c]
add ecx, eax
mov dword [ebp - 0x288], ecx
xor ecx, ecx
mov dword [ebp - 0x284], ecx
add eax, dword [ebp - 0x22c]
add eax, edi
mov dword [ebp - 0x280], eax
add edx, dword [ebp - 0x228]
add edx, dword [ebp - 0x48]
mov dword [ebp - 0x27c], edx
push 4
mov eax, dword [ebp - 0x48]
push eax
push edi
mov eax, dword [ebp - 0x284]
push eax
mov eax, dword [ebp - 0x288]
push eax
push 0
call fcn.0047bb68
push eax
call sub.user32.dll_SetWindowPos
jmp 0x479345
push 0
lea eax, [ebp - 0x278]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00419eb0
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x270], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x26c], eax
call fcn.00475f78
call fcn.00474f18
test eax, eax
setne al
neg al
sbb eax, eax
push eax
push 0xfffffffffffffff0
call fcn.0047bb68
push eax
call sub.user32.dll_GetWindowLongA
push eax
lea eax, [ebp - 0x278]
push eax
call sub.user32.dll_AdjustWindowRect
mov edi, dword [ebp - 0x270]
sub edi, dword [ebp - 0x278]
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x274]
mov dword [ebp - 0x4c], eax
push 6
mov eax, dword [ebp - 0x4c]
push eax
push edi
push 0
push 0
push 0
call fcn.0047bb68
push eax
call sub.user32.dll_SetWindowPos
lea eax, [ebp - 0x208]
push eax
call fcn.0047bb68
push eax
call sub.user32.dll_GetClientRect
mov edi, dword [ebp - 0x200]
sub edi, dword [ebp - 0x208]
mov eax, dword [ebp - 0x1fc]
sub eax, dword [ebp - 0x204]
mov dword [ebp - 0x30], eax
cmp edi, dword [ebx + 0x10]
jne 0x47937f
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebp - 0x30]
je 0x4793e4
lea eax, [ebp - 0x2d0]
call fcn.0047bc8c
xor eax, eax
mov dword [ebp - 0x2c0], eax
xor eax, eax
mov dword [ebp - 0x2bc], eax
mov al, byte [ebp + 8]
push eax
lea eax, [ebp - 0x2d0]
xor ecx, ecx
xor edx, edx
call fcn.004788bc
mov edi, eax
mov eax, edi
call fcn.004074f4
test eax, eax
je 0x4793e4
mov edx, 0x48
mov eax, esi
call fcn.00402774
mov al, 1
call fcn.0047b7d8
xor edx, edx
xor eax, eax
call fcn.00479e74
call fcn.00475f78
xor edx, edx
call fcn.004758d0
jmp 0x47944e
call fcn.0047bb30
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x479400
push 5
call fcn.0047bb30
push eax
call sub.user32.dll_ShowWindow
call fcn.0047bc70
test al, al
jne 0x479415
push 0x80000002
call sub.kernel32.dll_SetThreadExecutionState
jmp 0x47941f
push 0x80000000
call sub.kernel32.dll_SetThreadExecutionState
mov edx, 0x48
mov eax, esi
call fcn.00402774
call fcn.00475f78
xor edx, edx
call fcn.004758d0
xor edx, edx
xor eax, eax
call fcn.00479e74
call fcn.00475f78
mov dl, 1
call fcn.00475700
xor edi, edi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4794bd
lea eax, [ebp - 0x2e8]
mov edx, dword [0x45d0d4]
mov ecx, 2
call fcn.00405000
lea eax, [ebp - 0x2e0]
mov edx, dword [0x45d108]
mov ecx, 2
call fcn.00405000
lea eax, [ebp - 0x2d8]
mov edx, dword [0x45d0d4]
mov ecx, 2
call fcn.00405000
lea eax, [ebp - 0x10]
call fcn.00405f88
lea eax, [ebp - 0xc]
call fcn.00405f88
lea eax, [ebp - 4]
call fcn.00405f88
ret