Function at 0x10009850
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x102bff3c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x40], 0
jne 0x1000a0c3
push dword [esi + 0x1fc]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
xor eax, eax
cmp dword [esi + 0x200], eax
push dword [esi + 4]
sete al
mov dword [esi + 0x200], eax
call edi
xor ecx, ecx
cmp dword [esi + 0x200], ecx
setne cl
lea ecx, [ecx*4 + 0x244]
push dword [ecx + esi]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp dword [esi + 0x2e4], 0
mov ebx, dword [sym.imp.USER32.dll_IsWindow]
je 0x100098e7
push dword [esi + 0x1f8]
push dword [esi + 4]
call edi
mov ebx, eax
test ebx, ebx
je 0x100098e1
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x100098e1
push 0
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
mov ebx, dword [sym.imp.USER32.dll_IsWindow]
mov eax, dword [esi + 0x44]
test byte [eax + 0xc], 0x40
jne 0x10009a9c
cmp dword [esi + 0x2e4], 0
je 0x10009a9c
push dword [esi + 0x1fc]
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009925
push eax
call ebx
test eax, eax
je 0x10009925
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esi + 0x1c0]
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009949
push eax
call ebx
test eax, eax
je 0x10009949
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esi + 0x118]
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x1000996d
push eax
call ebx
test eax, eax
je 0x1000996d
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esi + 0x11c]
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009991
push eax
call ebx
test eax, eax
je 0x10009991
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x100099b1
push eax
call ebx
test eax, eax
je 0x100099b1
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push 6
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x100099d1
push eax
call ebx
test eax, eax
je 0x100099d1
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push 7
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x100099f1
push eax
call ebx
test eax, eax
je 0x100099f1
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009a11
push eax
call ebx
test eax, eax
je 0x10009a11
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push 4
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009a31
push eax
call ebx
test eax, eax
je 0x10009a31
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
push 8
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009a51
push eax
call ebx
test eax, eax
je 0x10009a51
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x44]
test byte [eax + 0xc], 0x10
jne 0x10009a9c
xor edi, edi
cmp dword [eax + 0x24], edi
jbe 0x10009a96
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 0x28]
push dword [eax + edi*8]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
test ebx, ebx
je 0x10009a8d
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10009a8d
push 0
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x44]
inc edi
cmp edi, dword [eax + 0x24]
jb 0x10009a61
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
test byte [eax + 0xc], 0x40
lea eax, [ebp - 0x34]
push eax
push dword [esi + 0x208]
mov dword [ebp - 0x28], 0
jne 0x10009f08
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebx, dword [ebp - 0x28]
sub ebx, dword [ebp - 0x30]
add ebx, 0xa
cmp dword [esi + 0x200], 0
mov dword [esi + 0x268], ebx
jne 0x10009aef
neg ebx
mov eax, dword [esi + 0x44]
test byte [eax + 0xc], 0x10
je 0x10009b28
xor edi, edi
cmp dword [eax + 0x24], edi
jbe 0x10009b28
nop
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 0x28]
push dword [eax + edi*8]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x10009b1f
push eax
push ebx
mov ecx, esi
call fcn.100097a0
mov eax, dword [esi + 0x44]
inc edi
cmp edi, dword [eax + 0x24]
jb 0x10009b00
mov eax, dword [esi + 0x44]
xor ecx, ecx
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0x30], ecx
jbe 0x10009be3
nop
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 0x34]
push dword [eax + ecx*8]
push dword [esi + 4]
call edi
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x10009bd0
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10009bd0
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push dword [ebp - 0x3c]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x10009ba7
lea eax, [ebp - 0xc]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
add eax, ebx
mov ecx, dword [ebp - 0x14]
add edx, ebx
push 1
mov dword [ebp - 8], eax
sub eax, edx
push eax
mov eax, dword [ebp - 0xc]
sub eax, ecx
mov dword [ebp - 0x10], edx
push eax
push edx
push ecx
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [ebp - 0x38]
mov eax, dword [esi + 0x44]
inc ecx
mov dword [ebp - 0x38], ecx
cmp ecx, dword [eax + 0x30]
jb 0x10009b40
push dword [esi + 0x110]
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009c70
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10009c70
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push dword [ebp - 0x38]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x10009c47
lea eax, [ebp - 0xc]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
add eax, ebx
mov ecx, dword [ebp - 0x14]
add edx, ebx
push 1
mov dword [ebp - 8], eax
sub eax, edx
push eax
mov eax, dword [ebp - 0xc]
sub eax, ecx
mov dword [ebp - 0x10], edx
push eax
push edx
push ecx
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_MoveWindow]
cmp dword [esi + 0x2e4], 0
je 0x10009cc1
mov eax, dword [esi + 0x5c]
add eax, ebx
mov dword [esi + 0x26c], 0
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x64]
cmp eax, 0xffffffff
je 0x10009ca0
add eax, ebx
mov dword [esi + 0x68], eax
jmp 0x10009ca7
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x5c], 0xffffffff
mov dword [esi + 0x64], 0xffffffff
mov dword [esi + 0x6c], 0xffffffff
jmp 0x1000a064
push dword [esi + 0x1fc]
push dword [esi + 4]
call edi
test eax, eax
je 0x10009cd9
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push dword [esi + 0x1c0]
push dword [esi + 4]
call edi
test eax, eax
je 0x10009cf1
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push dword [esi + 0x118]
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d09
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push dword [esi + 0x11c]
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d21
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push 1
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d35
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push 6
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d49
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push 7
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d5d
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push 2
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d71
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push 4
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d85
push eax
push ebx
mov ecx, esi
call fcn.100097a0
push 8
push dword [esi + 4]
call edi
test eax, eax
je 0x10009d99
push eax
push ebx
mov ecx, esi
call fcn.100097a0
mov eax, dword [esi + 0x44]
test byte [eax + 0xc], 0x10
jne 0x10009e57
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
cmp dword [eax + 0x24], ecx
jbe 0x10009e57
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 0x28]
push dword [eax + ecx*8]
push dword [esi + 4]
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009e44
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10009e44
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push dword [ebp - 0x38]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x10009e1b
lea eax, [ebp - 0xc]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
add eax, ebx
mov ecx, dword [ebp - 0x14]
add edx, ebx
push 1
mov dword [ebp - 8], eax
sub eax, edx
push eax
mov eax, dword [ebp - 0xc]
sub eax, ecx
mov dword [ebp - 0x10], edx
push eax
push edx
push ecx
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [esi + 0x44]
inc ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, dword [eax + 0x24]
jb 0x10009db4
cmp dword [esi + 0x200], 0
push dword [esi + 0x1f8]
push dword [esi + 4]
je 0x10009e81
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009ea0
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10009ea0
push 5
jmp 0x10009e97
call edi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10009ea0
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10009ea0
push 0
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
add dword [esi + 0x5c], ebx
mov eax, dword [esi + 0x64]
cmp eax, 0xffffffff
je 0x10009eb0
add eax, ebx
mov dword [esi + 0x64], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push eax
push dword [esi + 4]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp dword [esi + 0x200], 0
mov ecx, dword [esi + 0x268]
jne 0x10009eea
neg ecx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
sub eax, edx
push 0x114
push eax
mov eax, dword [ebp - 0x1c]
jmp 0x1000a054
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
call ebx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push dword [esi + 4]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call ebx
mov ebx, dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [ebp - 0x14]
push eax
push dword [esi + 4]
call ebx
test eax, eax
je 0x10009f51
lea eax, [ebp - 0xc]
push eax
push dword [esi + 4]
call ebx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push eax
push dword [esi + 4]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
add eax, 0x14
add eax, ecx
cmp dword [esi + 0x2e4], 0
mov dword [esi + 0x268], eax
je 0x10009fdb
cmp dword [esi + 0x200], 0
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x64]
mov dword [esi + 0x26c], 0
mov dword [esi + 0x68], eax
je 0x10009fc8
mov dword [esi + 0x70], ecx
mov dword [esi + 0x6c], 0xffffffff
jmp 0x1000a064
mov dword [esi + 0x70], 0xffffffff
mov dword [esi + 0x6c], 0xffffffff
jmp 0x1000a064
cmp dword [esi + 0x200], 0
push dword [esi + 0x1f8]
push dword [esi + 4]
je 0x1000a004
call edi
mov ebx, eax
test ebx, ebx
je 0x1000a020
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1000a020
push 5
jmp 0x1000a019
call edi
mov ebx, eax
test ebx, ebx
je 0x1000a020
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1000a020
push 0
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x14]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
cmp dword [esi + 0x200], 0
mov ecx, dword [esi + 0x268]
jne 0x1000a03e
neg ecx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 8], eax
sub eax, edx
push 0x14
push eax
mov eax, dword [ebp - 0xc]
sub eax, ecx
push eax
push edx
push ecx
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
cmp dword [esi + 0x2e4], 0
je 0x1000a0a7
push dword [esi + 0x1f8]
push dword [esi + 4]
call edi
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 1
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
push 0x19
push 2
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x1000a0c3
push dword [eax + 0x58]
push 0
push dword [esi + 0x200]
push 0xa
push dword [esi + 4]
call ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101b70aa
mov esp, ebp
pop ebp
ret