Function at 0x4040a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 8]
sub esp, 0x5c
mov dword [0x4db7c4], eax
push ebx
push esi
push edi
push 0x4db7ac
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x4db558
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x4041c6
mov word [0x4db558], ax
mov edi, 0x4c602c
xor bl, bl
mov dword [0x4db7a8], edi
xor bh, bh
mov byte [esp + 0x18], bl
mov esi, 1
mov dword [esp + 0x20], 0
mov byte [esp + 0x12], bh
mov dword [esp + 0x14], esi
call fcn.00495f35
mov edi, esi
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
call fcn.00495f35
cmp dword [eax], esi
jle 0x40443a
call fcn.00495f3b
mov eax, dword [eax]
mov esi, dword [eax + edi*4]
test bh, bh
je 0x404237
push dword [esp + 0x14]
lea eax, [esp + 0x2c]
push 0x4b4158
push eax
call fcn.00404b00
add esp, 0xc
mov ebx, eax
cmp word [esp + 0x28], 0
je 0x404303
lea eax, [esp + 0x13]
mov ecx, 0x4de0d0
push eax
push 3
lea eax, [esp + 0x2c]
push eax
push ebx
lea eax, [esp + 0x38]
push eax
call fcn.00428e90
test eax, eax
jne 0x4041a2
cmp byte [esp + 0x13], al
mov ecx, 0x4de0d0
setne al
inc eax
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x30]
push ebx
push eax
call fcn.00429130
test eax, eax
je 0x404303
push 1
push 0
push 0xffffffffffffffff
push esi
mov ecx, eax
call fcn.0047b2f0
mov esi, dword [esp + 0x14]
mov bl, byte [esp + 0x18]
inc esi
mov bh, byte [esp + 0x12]
mov dword [esp + 0x14], esi
jmp 0x40442c
cmp word [0x4db558], 0
je 0x4040e5
mov esi, 0x4db558
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4041e0
sub esi, ecx
sar esi, 1
lea ebx, [esi + esi]
lea ecx, [ebx + 2]
call fcn.004753f0
mov edi, eax
test edi, edi
jne 0x404219
push 0x4db558
push str.Out_of_memory.
mov ecx, 0x4de0d0
call fcn.004354a0
jmp 0x4040ea
test esi, esi
je 0x40422c
push ebx
push 0x4db558
push edi
call fcn.004ab450
add esp, 0xc
xor eax, eax
mov word [ebx + edi], ax
jmp 0x4040ea
push 0x4b4160
push esi
call fcn.0049466a
add esp, 8
test eax, eax
je 0x404422
push str._restart
push esi
call fcn.0049466a
add esp, 8
test eax, eax
je 0x404422
push 0x4b417c
push esi
call fcn.0049466a
add esp, 8
test eax, eax
je 0x404419
push str._force
push esi
call fcn.0049466a
add esp, 8
test eax, eax
je 0x404419
push str._ErrorStdOut
push esi
call fcn.0049466a
add esp, 8
test eax, eax
jne 0x4042ad
mov byte [0x4debaf], 1
jmp 0x404428
push str._iLib
push esi
call fcn.0049466a
add esp, 8
test eax, eax
jne 0x404311
inc edi
call fcn.00495f35
cmp edi, dword [eax]
jge 0x404303
push 0x38
call fcn.00490a4f
add esp, 4
mov ecx, eax
call fcn.00403f80
mov dword [0x4debb0], eax
call fcn.00495f3b
mov ecx, dword [0x4debb0]
push 0xfde9
push 0x15
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.00476110
test al, al
jne 0x404428
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 3
push 0x4b41bc
push esi
call fcn.00495d63
add esp, 0xc
test eax, eax
jne 0x404337
lea ecx, [esi + 6]
call fcn.00403e60
mov dword [0x4db7a4], eax
jmp 0x404428
cmp dword [0x4de028], 0xffffffff
jne 0x404406
push 6
push str._Debug
push esi
call fcn.00495d63
add esp, 0xc
test eax, eax
jne 0x404406
movzx eax, word [esi + 0xc]
test ax, ax
je 0x40436e
cmp eax, 0x3d
jne 0x404406
cmp eax, 0x3d
jne 0x4043e4
add esi, 0xe
push 0x3a
push esi
call fcn.00492647
add esp, 8
mov ebx, eax
sub esp, 8
mov ecx, esi
test ebx, ebx
je 0x4043bc
mov edx, ebx
sub edx, esi
sar edx, 1
push edx
mov edx, 0x4da14c
call fcn.00475a20
add esp, 4
lea ecx, [ebx + 2]
mov edx, 0x4da158
push 0xffffffffffffffff
call fcn.00475a20
mov bl, byte [esp + 0x24]
add esp, 0xc
mov bh, byte [esp + 0x12]
jmp 0x404428
push 0xffffffffffffffff
mov edx, 0x4da14c
call fcn.00475a20
add esp, 8
mov ecx, 0x4da158
push str.9000
call fcn.004048e0
mov bl, byte [esp + 0x18]
mov bh, byte [esp + 0x12]
jmp 0x404428
push ecx
push str.localhost
mov ecx, 0x4da14c
call fcn.004048e0
push ecx
push str.9000
mov ecx, 0x4da158
call fcn.004048e0
jmp 0x404428
mov bh, 1
mov dword [esp + 0x20], esi
lea eax, [edi + 1]
mov byte [esp + 0x12], bh
mov dword [esp + 0x1c], eax
jmp 0x404428
mov byte [0x4db792], 1
jmp 0x404428
mov bl, 1
mov byte [esp + 0x18], bl
mov esi, dword [esp + 0x14]
inc edi
call fcn.00495f35
cmp edi, dword [eax]
jl 0x404127
lea eax, [esp + 0x13]
mov ecx, 0x4de0d0
push eax
push 3
lea eax, [esp + 0x2c]
push eax
push 0
push 0x4b41e8
call fcn.00428e90
mov ecx, eax
test ecx, ecx
jne 0x404484
cmp byte [esp + 0x13], al
setne al
inc eax
push eax
push dword [esp + 0x28]
push ecx
push 0x4b41e8
mov ecx, 0x4de0d0
call fcn.00429130
mov ecx, eax
test ecx, ecx
je 0x404303
push 0x18
lea eax, [esi - 1]
cdq
push edx
push eax
call fcn.00401330
lea eax, [esp + 0x13]
mov ecx, 0x4de0d0
push eax
push 0xc1
lea eax, [esp + 0x2c]
push eax
push 6
push 0x4b41ec
call fcn.00428e90
mov edi, eax
test edi, edi
jne 0x4044e4
cmp byte [esp + 0x13], al
mov ecx, 0x4de0d0
setne al
inc eax
or eax, 0xc0
push eax
push dword [esp + 0x28]
push 6
push 0x4b41ec
call fcn.00429130
mov edi, eax
test edi, edi
je 0x404303
call fcn.00495f35
mov esi, eax
call fcn.00495f3b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
sub edx, ecx
mov eax, dword [eax]
lea ecx, [eax + ecx*4]
call fcn.004712d0
test eax, eax
je 0x404303
push eax
mov ecx, edi
call fcn.0047b5f0
call fcn.00403ce0
push dword [esp + 0x18]
push dword [esp + 0x24]
push ecx
mov ecx, 0x4de0d0
call fcn.0041b8c0
cmp eax, 1
jne 0x404303
mov esi, dword [0x4d89c0]
mov ecx, 0x42
mov edi, 0x4db448
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x4de0d0
call fcn.0041c9d0
cmp eax, 0xffffffff
jne 0x404575
mov ecx, dword [0x4debb0]
test ecx, ecx
je 0x404303
call fcn.00403ee0
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test eax, eax
je 0x40489c
mov eax, dword [0x4db7a0]
test eax, eax
jne 0x4045bd
cmp word [0x4dd210], ax
jne 0x4045af
cmp dword [0x4dc260], eax
jne 0x4045af
cmp dword [0x4db79c], eax
jne 0x4045af
cmp dword [0x4db798], eax
jne 0x4045af
cmp byte [0x4db791], al
je 0x4045b9
mov eax, 1
mov dword [0x4db7a0], eax
test eax, eax
je 0x40462d
cmp eax, 4
je 0x40462d
test bl, bl
jne 0x404631
cmp byte [0x4db792], bl
jne 0x4046ab
push dword [0x4deba8]
push str.0615
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
test edi, edi
je 0x4046ab
mov eax, dword [0x4db7a0]
cmp eax, 3
je 0x40489c
cmp eax, 2
je 0x404626
push 0
push dword [0x4deb9c]
xorps xmm3, xmm3
mov edx, 4
mov ecx, str.An_older_instance_of_this_script_is_already_running.__Replace_it_with_this_instance__nNote:_To_avoid_this_message__see_SingleInstance_in_the_help_file.
call fcn.0047ce40
add esp, 8
cmp eax, 7
je 0x40489c
mov eax, 0x407
jmp 0x40464d
test bl, bl
je 0x4046ab
push dword [0x4deba8]
push str.0615
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
test edi, edi
je 0x4046ab
mov eax, 0x406
push 0
push eax
push 0x44
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
push 0x14
call ebx
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4046a7
cmp esi, 0x64
jne 0x404697
push 0
push 0
xorps xmm3, xmm3
lea edx, [esi - 0x60]
mov ecx, str.Could_not_close_the_previous_instance_of_this_script.__Keep_waiting_
call fcn.0047ce40
add esp, 8
cmp eax, 7
je 0x404303
xor esi, esi
push 0x14
inc esi
call ebx
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x404670
push 0x64
call ebx
mov esi, dword [sym.imp.USER32.dll_SystemParametersInfoW]
push 0
push 0x4db8e0
push 0
push 0x2000
call esi
test eax, eax
je 0x4046db
cmp dword [0x4db8e0], 0
je 0x4046db
push 2
push 0
push 0
push 0x2001
call esi
mov ecx, 0x4de0d0
call fcn.0041bc30
cmp eax, 1
jne 0x404303
push 0
push 4
push 0
push eax
call fcn.00498e1f
add esp, 4
push eax
call fcn.00498ce1
mov eax, dword [0x4d89c4]
add esp, 0x10
test eax, eax
je 0x40473d
imul eax, eax, 0xd4
push eax
call fcn.00495d48
add esp, 4
mov dword [0x4db794], eax
test eax, eax
je 0x40473d
imul ecx, dword [0x4d89c4], 0xd4
push ecx
push 0
push eax
call fcn.00493930
add esp, 0xc
mov ecx, dword [0x4da150]
test ecx, ecx
je 0x40484f
cmp dword [ecx + 8], 0
je 0x40484f
mov eax, dword [0x4da15c]
mov esi, 0x4b45d4
test eax, eax
je 0x40476e
mov eax, dword [eax]
mov edx, esi
test eax, eax
cmovne edx, eax
jmp 0x404773
mov edx, 0x4b45d4
mov eax, dword [ecx]
mov ecx, esi
test eax, eax
push edx
cmovne ecx, eax
push ecx
call fcn.00408728
test eax, eax
jne 0x40484f
mov eax, dword [0x4de050]
test eax, eax
je 0x40480a
cmp eax, 2
je 0x40480a
dec eax
cmp eax, 4
ja case.0x40479f.2
jmp dword [eax*4 + 0x4048a8]
mov ecx, str.step_into
jmp 0x4047c7
mov ecx, str.step_over
jmp 0x4047c7
mov ecx, str.step_out
jmp 0x4047c7
mov ecx, 0x4b4624
jmp 0x4047c7
mov ecx, 0x4b45d4
mov eax, dword [0x4de064]
test eax, eax
je 0x4047d9
mov eax, dword [eax]
test eax, eax
cmovne esi, eax
jmp 0x4047de
mov esi, 0x4b45d4
push esi
push 0x4b4764
push str.break
push ecx
push str._response_command__s__status__s__reason__s__transaction_id__e___
push 0x4de040
call fcn.00408da9
add esp, 0x18
mov ecx, 0x4de018
call fcn.00408689
test eax, eax
jne 0x40484f
xor al, al
mov ecx, 1
cmp dword [0x4db79c], 0
movzx eax, al
cmovne eax, ecx
cmp dword [0x4db798], 0
je 0x404829
or al, 2
mov byte [0x4de078], al
test al, al
je 0x40483b
mov dl, cl
xor cl, cl
call fcn.0040da50
mov ecx, 0x4de018
mov dword [0x4de050], 2
call fcn.004060b7
call fcn.0040ebf0
push 3
push 0
push str.Clipboard
mov ecx, 0x4de0d0
mov byte [0x4debac], 1
mov byte [0x4db790], 0
call fcn.00428e30
test eax, eax
je 0x404880
mov ecx, eax
call fcn.00403eb0
mov ecx, 0x4de0d0
call fcn.0041c1b0
test eax, eax
je 0x404303
xor edx, edx
lea ecx, [edx + 0xa]
call fcn.004016e0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10