Function at 0x4165c4
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
test dl, dl
je 0x4165d9
add esp, 0xfffffff0
call fcn.00403c04
mov byte [ebp - 1], dl
mov ebx, eax
xor edx, edx
mov eax, ebx
call fcn.00403870
push 0x10
call fcn.00407864
mov esi, eax
sar esi, 1
jns 0x4165f7
adc esi, 0
push 0x10
call fcn.00407864
mov edi, eax
sub edi, esi
sar edi, 1
jns 0x416609
adc edi, 0
push 0x11
call fcn.00407864
sub eax, 0x17
sar eax, 1
jns 0x41661a
adc eax, 0
mov dword [ebp - 8], eax
push 0
mov eax, dword [0x4f8718]
push eax
push 0
push 0
push 0x17
push esi
mov eax, dword [ebp - 8]
push eax
push edi
push 0x80000000
push 0x416820
push 0x416824
push 8
call fcn.00407624
mov dword [ebx + 4], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebx + 4]
push eax
call fcn.00407744
push 0
call fcn.004072bc
mov edi, eax
mov dword [ebx + 0xc], edi
push 0
push 0x20
push 1
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.004072a4
push eax
push edi
call fcn.004074dc
mov dword [ebx + 0x14], eax
push 0x15
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407704
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [ebp - 0x18]
push eax
call fcn.004078bc
push 0x10
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407704
push 0xffff
push 1
push 0
call fcn.0040730c
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.004074dc
mov edi, eax
push 0
push 2
push 2
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407474
push 2
mov eax, dword [ebp - 0x10]
sub eax, 2
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407464
mov eax, dword [ebp - 0xc]
sub eax, 2
push eax
mov eax, dword [ebp - 0x10]
sub eax, 2
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407464
mov eax, dword [ebp - 0xc]
sub eax, 2
push eax
push 2
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407464
push 2
push 2
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407464
push 0x10
call fcn.0040784c
push eax
push 1
push 0
call fcn.0040730c
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.004074dc
push eax
call fcn.00407354
push 0
mov eax, dword [ebp - 0xc]
dec eax
push eax
push 3
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407474
mov eax, dword [ebp - 0xc]
dec eax
push eax
mov eax, dword [ebp - 0x10]
dec eax
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407464
push 2
mov eax, dword [ebp - 0x10]
dec eax
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.00407464
push edi
mov eax, dword [ebx + 0xc]
push eax
call fcn.004074dc
push eax
call fcn.00407354
push 1
mov eax, dword [ebx + 0xc]
push eax
call fcn.004074fc
push 0x41682c
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push 0xfffffffffffffff4
call fcn.004072e4
push eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.004074dc
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 4]
push eax
call fcn.00407884
mov dword [ebx + 0x10], eax
xor edx, edx
mov eax, ebx
call fcn.00416834
push 5
mov eax, dword [ebx + 4]
push eax
call fcn.00407b14
push 0xcc0020
push 0
push 0
mov eax, dword [ebx + 0xc]
push eax
push 0x17
push esi
push 0
push 0
mov eax, dword [ebx + 0x10]
push eax
call fcn.00407284
mov eax, ebx
cmp byte [ebp - 1], 0
je 0x416815
call fcn.00403c5c
pop dword fs:[0]
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret