Function at 0x443b10
Capabilities:
Hide graphical window
Set current directory

Disassembly:
sub esp, 0x16c
push ebx
push ebp
push esi
push edi
call sub.ATL.DLL_AtlAxWinInit
mov eax, dword [esp + 0x180]
xor ebx, ebx
push eax
push ebx
push 0x47fb80
mov dword [0x47fbf0], 0x4790e0
mov dword [0x47f830], 0x47fb80
mov dword [0x47fb80], 0x84
mov dword [0x47fbe4], 0x300
call fcn.00445a60
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [esp + 0x7c]
push 0x100
mov eax, 1
mov ebp, 0x1e0
push ecx
push ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x280
mov dword [esp + 0x58], ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x7c]
push 0x5c
push edx
call fcn.0045db20
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x443bb6
lea eax, [esp + 0x7c]
push 0x2f
push eax
call fcn.0045db20
add esp, 8
lea ecx, [esp + 0x7c]
mov byte [esi + 1], 0
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, str.C:Program_Files_
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0045da3f
push eax
call fcn.0045d31c
push 0x6c0
call fcn.0045cff5
add esp, 0xc
cmp eax, ebx
je 0x443c0f
mov ecx, eax
call fcn.004430b0
jmp 0x443c11
xor eax, eax
mov dword [0x47fb20], eax
call fcn.00452750
mov eax, dword [0x47fb20]
lea esi, [eax + 0x10]
mov eax, dword [str.AtlAxWin]
cmp eax, ebx
jne 0x443c36
mov dword [str.AtlAxWin], 0x47a598
lea ecx, [esi + 0x1c]
push ecx
push 0x47a5a8
push 0x47fb80
call fcn.00449310
push ebx
push eax
push ebx
push 0x100
push 0xca0000
lea edx, [esp + 0x54]
push str.POLAR_BOWLER
push edx
push ebx
mov ecx, esi
call fcn.00449930
cmp dword [0x47f9b4], ebx
je 0x443ed7
mov eax, dword [0x47fb20]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], 0x280
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebp
mov ecx, dword [eax + 0x14]
mov ebp, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push ecx
call ebp
push ebx
lea edx, [esp + 0x34]
push eax
push edx
call dword [sym.imp.USER32.dll_AdjustWindowRect]
push 1
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x38]
sub edx, ecx
push edx
push eax
mov eax, dword [0x47fb20]
push ecx
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.USER32.dll_MoveWindow]
mov edx, dword [0x47fb20]
push 0xfffffffffffffff0
mov eax, dword [edx + 0x14]
lea ebx, [edx + 0x14]
push eax
call ebp
mov edi, eax
and edi, 0x40000000
je 0x443cf7
mov ecx, dword [ebx]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x443d02
mov edx, dword [ebx]
push 4
push edx
call dword [sym.imp.USER32.dll_GetWindow]
mov ecx, dword [ebx]
mov esi, eax
lea eax, [esp + 0x50]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
test edi, edi
jne 0x443d74
test esi, esi
je 0x443d2f
push 0xfffffffffffffff0
push esi
call ebp
test eax, 0x10000000
je 0x443d2d
test eax, 0x20000000
je 0x443d2f
xor esi, esi
lea edx, [esp + 0x20]
push 0
push edx
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
test esi, esi
jne 0x443d66
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
jmp 0x443da4
lea ecx, [esp + 0x10]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x443da4
mov edx, dword [ebx]
push edx
call dword [sym.imp.USER32.dll_GetParent]
mov ebp, dword [sym.imp.USER32.dll_GetClientRect]
mov edi, eax
lea eax, [esp + 0x20]
push eax
push edi
call ebp
lea ecx, [esp + 0x10]
push ecx
push esi
call ebp
lea edx, [esp + 0x10]
push 2
push edx
push edi
push esi
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add eax, ecx
sub ebp, edx
cdq
sub eax, edx
sub edi, esi
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x1c]
sar ecx, 1
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x14]
add eax, edx
cdq
sub eax, edx
mov esi, eax
mov eax, ebp
cdq
sub eax, edx
sar esi, 1
sar eax, 1
sub esi, eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
jl 0x443e01
mov eax, dword [esp + 0x28]
lea edx, [ecx + edi]
cmp edx, eax
jle 0x443e03
sub eax, edi
mov ecx, eax
mov eax, dword [esp + 0x24]
cmp esi, eax
jl 0x443e18
mov eax, dword [esp + 0x2c]
lea edx, [esi + ebp]
cmp edx, eax
jle 0x443e1a
sub eax, ebp
mov esi, eax
mov eax, dword [ebx]
push 0x15
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push ecx
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [0x47fb20]
push 0xa
mov edx, dword [ecx + 0x14]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x65
mov eax, dword [esp + 0x184]
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, dword [0x47fb20]
push eax
push 1
push 0x80
mov edx, dword [ecx + 0x14]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebp, 0x12
push 1
push 0
push 0
lea eax, [esp + 0x6c]
push 0
push eax
call esi
test eax, eax
je 0x443ea9
lea ecx, [esp + 0x60]
push ecx
call edi
cmp dword [esp + 0x64], ebp
je 0x443ed7
lea edx, [esp + 0x60]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [0x47f9b4]
test eax, eax
je 0x443ed1
mov ecx, dword [0x47fb20]
call fcn.00443b00
cmp eax, 1
jne 0x443ed1
mov eax, dword [0x47fb20]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
push 1
call ebx
jmp 0x443e7e
push 0x47fb80
call fcn.00445e90
call dword [sym.imp.ole32.dll_CoUninitialize]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x16c
ret 0x10