Function at 0x407a42
Capabilities:
Hide graphical window

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0xac
mov ecx, dword [ebp + 0x78]
push esi
push edi
mov edi, dword [ebp + 0x74]
lea eax, [ebp + 0x5c]
push eax
lea esi, [ebp + 0x60]
call fcn.00401ec6
test al, al
jne 0x407a6c
xor eax, eax
jmp 0x407f9b
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x60]
push ebx
push ecx
mov eax, edx
call fcn.00401ce0
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x74]
mov edi, dword [eax + edx*4 + 0x44c]
mov esi, dword [edi + ecx*4 + 0x40]
mov eax, dword [esi]
mov bl, byte [esi + 0x78]
mov dword [ebp + 0x64], eax
xor eax, eax
cmp dword [ebp + 0x7c], eax
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x68], eax
jge 0x407aa4
mov dword [ebp + 0x7c], eax
mov eax, dword [ebp + 0x7c]
and eax, 0x100
mov dword [ebp + 0x58], eax
je 0x407ac6
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x74]
call fcn.00403969
mov dword [ebp + 0x68], 1
test byte [ebp + 0x7d], 8
je 0x407ae5
push 0x13
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov dword [ebp + 0x68], 1
movzx eax, bl
cmp eax, 0x14
jg 0x407dd1
je 0x407d13
cmp eax, 9
je 0x407cbd
cmp eax, 0xb
je 0x407c86
cmp eax, 0xc
je 0x407bfa
cmp eax, 0xd
jle 0x407eda
cmp eax, 0xf
jle 0x407bd0
cmp eax, 0x11
jne 0x407eda
push 0xfffffffffffffff0
push dword [esi + 0x24]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov cl, byte [ebp + 0x7c]
mov eax, dword [esi + 8]
and cl, 1
neg cl
mov dword [ebp - 0x24], eax
mov eax, 0x1000
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x1c], 0xf010
sbb ecx, ecx
and ecx, eax
add ecx, eax
test byte [ebp + 0x7d], 2
mov dword [ebp - 0x20], ecx
je 0x407b6c
or dword [ebp - 0x20], 0x10
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x28]
push eax
push 0
push 0x110d
push dword [esi + 0x24]
call edi
test byte [ebp + 0x7d], 4
je 0x407b97
push dword [esi + 8]
push 2
push 0x1102
push dword [esi + 0x24]
call edi
cmp dword [ebp + 0x58], 0
je 0x407cdd
push dword [esi + 0x24]
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x74]
call fcn.00401ca5
mov ecx, dword [ebp + 0x74]
mov edx, eax
mov eax, dword [ebp + 0x60]
call fcn.00403969
push dword [esi + 8]
push 9
push 0x110b
push dword [esi + 0x24]
call edi
jmp 0x407cdd
mov ebx, dword [sym.imp.USER32.dll_GetMenuItemInfoA]
and dword [ebp + 0x74], 0
lea eax, [ebp]
push eax
push 0
push dword [ebp + 0x78]
mov dword [ebp], 0x2c
push dword [esi + 4]
mov dword [ebp + 4], 1
call ebx
test eax, eax
jne 0x407c01
xor eax, eax
jmp 0x407f9a
test byte [ebp + 0x7c], 0x80
je 0x407c0e
mov dword [ebp + 0x74], 3
test byte [ebp + 0x7c], 1
je 0x407c18
or dword [ebp + 0x74], 8
cmp dword [ebp + 0x58], 0
je 0x407c22
or byte [ebp + 0x74], 0x80
test byte [ebp + 0xc], 8
je 0x407c32
test byte [ebp + 0x7c], 4
jne 0x407c32
or dword [ebp + 0x74], 8
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0xc], eax
lea eax, [ebp]
push eax
push 0
push dword [ebp + 0x78]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetMenuItemInfoA]
test byte [ebp + 0x7d], 2
je 0x407c57
push 0
push dword [ebp + 0x78]
jmp 0x407c73
lea eax, [ebp]
push eax
push 0
push dword [ebp + 0x78]
push dword [esi + 4]
call ebx
test eax, eax
je 0x407c7c
test byte [ebp + 0xd], 0x10
je 0x407c7c
push 0
push 0xffffffffffffffff
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
push dword [edi]
call dword [sym.imp.USER32.dll_DrawMenuBar]
jmp 0x407cdd
test byte [ebp + 0x7c], 0x10
je 0x407eda
cmp byte [edi + 0x4148], 0
movzx eax, byte [esi + 0x7a]
je 0x407ca9
mov ecx, dword [edi + 0x4144]
mov dword [edi + 0x4140], ecx
push eax
mov eax, edi
call fcn.004090a6
movzx eax, byte [esi + 0x7a]
mov dword [edi + 0x4144], eax
jmp 0x407cdd
mov eax, dword [ebp + 0x7c]
and eax, 7
sub eax, 0
je 0x407cf7
dec eax
je 0x407ce9
push 0
push 0
push 0x464
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp + 0x68], 1
jmp 0x407eda
push 0xffff0000
push 0xffffffffffffffff
push 0x465
jmp 0x407d00
push 0
push 0
push 0x466
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x407eda
jmp 0x407cdd
mov eax, dword [ebp + 0x78]
mov esi, dword [esi + 0x24]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
and dword [ebp + 0x74], 0
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x40]
push eax
push 0xffffffffffffffff
push 0x100d
push esi
mov dword [ebp - 0x40], 1
call edi
cmp eax, 0xffffffff
mov dword [ebp + 0x78], eax
je 0x407bfa
and dword [ebp + 0x34], 0
push 0xffffffffffffffec
push esi
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], 8
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
mov ebx, 0x2000
je 0x407d97
test byte [ebp + 0x7c], 5
je 0x407d97
mov eax, dword [ebp + 0x7c]
dec eax
neg eax
sbb eax, eax
and eax, 0xfffff000
add eax, ebx
mov dword [ebp + 0x38], eax
lea eax, [ebp + 0x2c]
push eax
push 0
push 0x1006
push esi
mov dword [ebp + 0x3c], 0xf000
call edi
mov dword [ebp + 0x74], eax
test byte [ebp + 0x7d], 0x21
je 0x407dc9
cmp dword [ebp + 0x58], 0
je 0x407da7
or dword [ebp + 0x38], 0xffffffff
test dword [ebp + 0x7c], ebx
je 0x407db0
and dword [ebp + 0x38], 0
lea eax, [ebp + 0x2c]
push eax
push dword [ebp + 0x78]
mov dword [ebp + 0x3c], 3
push 0x102b
push esi
call edi
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x74]
jmp 0x407f9a
sub eax, 0x16
je 0x407e5e
dec eax
dec eax
je 0x407e21
dec eax
je 0x407e05
dec eax
jne 0x407eda
mov eax, dword [ebp + 0x7c]
and eax, 7
je 0x407eda
and eax, 3
push eax
mov eax, dword [ebp + 0x5c]
call fcn.00406609
jmp 0x407cdd
mov eax, dword [ebp + 0x7c]
and eax, 7
je 0x407eda
push 0
and eax, 3
push eax
push 0xf1
jmp 0x407cd4
test byte [ebp + 0x7d], 2
je 0x407eda
push 0
push dword [ebp + 0x78]
push 0x401
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [esi]
jne 0x407cdd
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x74]
call fcn.00403969
jmp 0x407cdd
test byte [ebp + 0x7c], 0x10
je 0x407e6a
test byte [esi + 0x79], 0x20
jne 0x407e76
test byte [ebp + 0x7c], 0x40
je 0x407e8b
test byte [esi + 0x79], 0x80
je 0x407e8b
push 0
push dword [esi + 0x24]
push 0x469
push dword [ebp + 0x64]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x407eda
push 3
pop eax
cmp dword [edi + 0x14], eax
mov dword [ebp + 0x78], eax
jl 0x407eda
lea ebx, [edi + 0x4c]
mov eax, dword [ebx]
test eax, eax
je 0x407ecc
cmp byte [eax + 0x78], 3
jne 0x407ecc
mov eax, dword [eax]
cmp eax, dword [esi + 0x24]
jne 0x407ecc
mov eax, dword [ebx]
movsx ecx, word [eax + 0x76]
push 0
push ecx
movsx ecx, word [eax + 0x74]
push ecx
movsx ecx, word [eax + 0x72]
push ecx
movsx ecx, word [eax + 0x70]
push ecx
push dword [eax]
call dword [sym.imp.USER32.dll_MoveWindow]
inc dword [ebp + 0x78]
mov eax, dword [ebp + 0x78]
add ebx, 4
cmp eax, dword [edi + 0x14]
jle 0x407e99
mov eax, dword [ebp + 0x7c]
and eax, 0x10f8
mov dword [ebp + 0x7c], eax
jle 0x407f97
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
xor ebx, ebx
test al, al
mov dword [ebp + 0x68], 1
jns 0x407f0a
push 0
push dword [ebp + 0x64]
mov ebx, 0xc0
call edi
test byte [ebp + 0x7c], 0x40
je 0x407f1c
push 1
push dword [ebp + 0x64]
mov ebx, 0xc0
call edi
mov ecx, dword [ebp + 0x7c]
mov edi, ecx
and edi, 0x20
je 0x407f29
add ebx, 0x30
mov dword [ebp + 0x7c], ecx
and dword [ebp + 0x7c], 0x10
je 0x407f35
add ebx, 0x30
test cl, 8
mov eax, 0x1008
je 0x407f41
add ebx, eax
test ch, 0x10
je 0x407f48
add ebx, eax
mov al, byte [esi + 0x7a]
not bl
and bl, byte [esi + 0x79]
or bl, cl
cmp al, 0xff
mov byte [esi + 0x79], bl
je 0x407f6e
mov ecx, dword [ebp + 0x54]
mov ecx, dword [ecx + 0x4140]
movzx eax, al
cmp eax, ecx
je 0x407f6e
cmp ecx, 0xffffffff
jne 0x407f97
test edi, edi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
je 0x407f7f
push 0
push dword [ebp + 0x64]
call ebx
cmp dword [ebp + 0x7c], 0
je 0x407f8c
push 4
push dword [ebp + 0x64]
call ebx
push 1
push esi
mov esi, dword [ebp + 0x54]
call fcn.00401f31
mov eax, dword [ebp + 0x68]
pop ebx
pop edi
pop esi
add ebp, 0x6c
leave
ret 0xc