Function at 0x4387e0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
push esi
mov esi, dword [sym.imp.USER32.dll_MapDialogRect]
push edi
lea eax, [esp + 0x48]
xor edi, edi
push eax
push ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], 4
call esi
mov eax, dword [ebx + 4]
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0x22
call esi
push str.CaptureMode
mov eax, str.Settings
mov dword [esp + 0x14], edi
call fcn.004a5500
test al, al
je 0x43885e
push edi
push str.CaptureMode
mov eax, str.Settings
call fcn.004811b0
jmp 0x43886f
push str.PSei
call fcn.004bf140
neg al
sbb eax, eax
and eax, 2
cmp eax, edi
jne 0x438897
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4e
call esi
push 0x4f
mov dword [esp + 0x14], eax
call esi
mov ecx, eax
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x10]
cdq
idiv ecx
mov dword [esp + 0x10], eax
push str.CaptureMode
mov eax, str.Settings
call fcn.004a5500
test al, al
je 0x4388bc
push edi
push str.CaptureMode
mov eax, str.Settings
call fcn.004811b0
jmp 0x4388cd
push str.PSei
call fcn.004bf140
neg al
sbb eax, eax
and eax, 2
cmp eax, edi
jne 0x4388e0
push ebx
call fcn.0051c3a0
test eax, eax
mov byte [esp + 0xf], 1
je 0x4388e5
mov byte [esp + 0xf], 0
push str.Dend
call fcn.004bf140
test al, al
je 0x438a78
fld dword [0x723a74]
mov edx, dword [ebx + 4]
push ecx
fstp dword [esp]
push edx
call fcn.00517660
mov ecx, dword [ebx + 4]
mov esi, eax
lea eax, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], 4
mov dword [esp + 0x3c], edi
call dword [sym.imp.USER32.dll_MapDialogRect]
lea ecx, [esi*8]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x30]
lea eax, [eax + eax*2]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
lea eax, [esi + esi*2]
cdq
sub eax, edx
mov edx, dword [ebp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x14]
add eax, ecx
sar edi, 1
add edi, eax
push edx
lea eax, [ebx + 0x7e8c]
push eax
lea esi, [esp + 0x40]
call fcn.0044e2b0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
lea edx, [edi + ecx]
cmp edx, esi
jle 0x4389c9
mov ecx, dword [ebx + 4]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x38], 4
call dword [sym.imp.USER32.dll_MapDialogRect]
mov eax, dword [esp + 0x30]
lea edx, [eax + eax]
sub edi, eax
sub esi, edx
sub esi, edi
mov dword [esp + 0x10], esi
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x28]
xor esi, esi
push eax
push ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], 0xa
call dword [sym.imp.USER32.dll_MapDialogRect]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x38]
push eax
push ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 4
call dword [sym.imp.USER32.dll_MapDialogRect]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 0x10]
push edx
push eax
mov eax, dword [esp + 0x4c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi]
add eax, dword [esp + 0x1c]
push eax
push edi
push 0x138c
push ebx
call fcn.00517b90
cmp byte [esp + 0xf], 0
je 0x438a65
cmp byte [ebx + 0x3641], 0
jne 0x438a65
mov al, 1
mov edx, ebx
push eax
mov eax, 0x138c
call fcn.00403e90
xor edi, edi
jmp 0x438a7b
xor al, al
mov edx, ebx
push eax
mov eax, 0x138c
call fcn.00403e90
xor edi, edi
jmp 0x438a7b
mov esi, dword [ebp + 0x10]
fld dword [0x6bf9f0]
push ecx
mov ecx, dword [ebx + 4]
fstp dword [esp]
push ecx
call fcn.00517660
cmp byte [esp + 0xf], 0
mov dword [esp + 0x14], eax
je 0x438b02
cmp byte [ebx + 0x3641], 0
jne 0x438b02
mov edx, dword [ebx + 0x7e90]
push 1
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
lea edi, [ebx + 0x7e8c]
call fcn.0044e9d0
mov edx, dword [esi]
push 0x104
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax]
mov eax, dword [ebp + 0x14]
sub eax, ecx
mov ecx, dword [ebx + 0x7e90]
push eax
mov eax, dword [ebp + 0xc]
push edx
push eax
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.0044e9d0
mov ecx, eax
mov eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
add dword [esi], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebx + 0x7e90]
push edi
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10