Function at 0x41f000
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get keyboard layout
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x224
mov ax, word [0x4d9ba8]
lea edx, [esp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
mov word [esp + 0x18], ax
xor eax, eax
push esi
mov dword [esp + 0xc], ecx
mov ecx, ebx
push edi
mov dword [esp + 0x1c], 0x90020
mov word [esp + 0x22], ax
call fcn.004053e1
mov edi, eax
test edi, edi
jne 0x41f05c
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f046
sub ecx, edx
sar ecx, 1
xor esi, esi
lea edi, [ebx + ecx*2]
jmp 0x41f0a0
mov esi, edi
nop
movzx eax, word [esi]
cmp eax, 0x20
je 0x41f06d
cmp eax, 9
jne 0x41f072
add esi, 2
jmp 0x41f060
movzx eax, word [esi]
test ax, ax
jne 0x41f07e
xor esi, esi
jmp 0x41f0a0
cmp ax, word [0x4d9ba8]
jne 0x41f0a0
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x20
je 0x41f087
cmp eax, 9
je 0x41f087
xor eax, eax
cmp word [esi], ax
cmove esi, eax
sub edi, ebx
mov byte [esp + 0x24], 0
sar edi, 1
mov edx, str.Include
push 0xffffffffffffffff
push edi
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
je 0x41fde2
push 0xffffffffffffffff
push edi
mov edx, str.IncludeAgain
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
sete al
mov byte [esp + 0x24], al
test al, al
jne 0x41fde2
push 0xffffffffffffffff
push edi
mov edx, str.NoEnv
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f114
mov dword [0x4dc0e8], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.NoTrayIcon
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f13f
mov byte [0x4dc0ec], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.Persistent
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f16a
mov byte [0x4db791], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.SingleInstance
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f218
mov dword [0x4db7a0], 1
test esi, esi
je 0x41f20a
push str.Force
push esi
call fcn.0049466a
add esp, 8
test eax, eax
jne 0x41f1bc
mov dword [0x4db7a0], 2
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.Ignore
push esi
call fcn.0049466a
add esp, 8
test eax, eax
jne 0x41f1e6
mov dword [0x4db7a0], 3
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x4c84c4
push esi
call fcn.0049466a
mov ecx, dword [0x4db7a0]
add esp, 8
test eax, eax
mov edx, 4
cmove ecx, edx
mov dword [0x4db7a0], ecx
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.InstallKeybdHook
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f243
or byte [0x4dd213], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.InstallMouseHook
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f26e
or byte [0x4dd213], 2
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.UseHook
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f2b2
test esi, esi
je 0x41f29d
xor edx, edx
mov ecx, esi
call fcn.0041a830
mov byte [0x4db7d5], 0
cmp eax, 2
je 0x41f2a4
mov byte [0x4db7d5], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x4c7370
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f386
test esi, esi
jne 0x41f2e8
mov dword [0x4dc0e0], 0
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.0040eb90
mov dword [0x4dc0e0], eax
test eax, eax
jne 0x41f106
mov eax, dword [0x4d89c0]
mov ebx, dword [esp + 0x10]
mov ecx, ebx
push 0
push 0
mov edi, dword [eax + 0xb4]
push 0
push 0x4c602c
push 0
push 0xe1
mov dword [eax + 0xb4], 0
push esi
mov byte [ebx + 0x45], 1
call fcn.004204e0
test eax, eax
je 0x41ff0a
mov eax, dword [0x4d89c0]
mov byte [ebx + 0x45], 0
mov dword [eax + 0xb4], edi
mov esi, dword [ebx + 4]
call fcn.0040eb10
mov ecx, eax
mov dword [0x4dc0e0], ecx
test ecx, ecx
je 0x41ff0a
mov byte [ecx], 5
mov dword [ecx + 0xc], esi
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, 3
mov dword [ecx + 8], 0x4c602c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.IfTimeout
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f3ba
test esi, esi
je 0x41f3ac
mov ecx, esi
call fcn.00403e60
mov dword [0x4d9bac], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 6
push str.IfWin
push ebx
call fcn.00495d63
add esp, 0xc
test eax, eax
jne 0x41f55f
push 3
lea eax, [ebx + 0xc]
push 0x4c865c
push eax
call fcn.00495d63
add esp, 0xc
mov edx, 0x12
test eax, eax
mov edi, 0xc
sete cl
test cl, cl
mov byte [esp + 0xf], cl
push 6
cmovne edi, edx
add edi, ebx
push str.Active
push edi
call fcn.00495d63
add esp, 0xc
test eax, eax
jne 0x41f419
inc byte [esp + 0xf]
jmp 0x41f43e
push 5
push str.Exist
push edi
call fcn.00495d63
add esp, 0xc
test eax, eax
jne 0x41f551
cmp byte [esp + 0xf], al
setne al
add al, 3
mov byte [esp + 0xf], al
test esi, esi
je 0x41f2d0
mov dx, word [0x4d9ba8]
mov ecx, esi
mov di, word [0x4d9ba4]
mov dword [esp + 0x14], 0
nop
movzx eax, word [ecx]
test ax, ax
je 0x41f48f
nop dword [eax + eax]
cmp ax, word [0x4d9ba0]
je 0x41f4bf
cmp ax, dx
je 0x41f4bf
cmp ax, di
je 0x41f4bf
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41f470
mov edx, dword [esp + 0x14]
test edx, edx
je 0x41f50d
lea ecx, [edx + 2]
call fcn.0040e490
mov edi, eax
mov ecx, esi
xor eax, eax
mov word [edx], ax
sub edx, esi
sar edx, 1
call fcn.00417d60
push 1
mov ecx, edi
call fcn.0047a660
add esp, 4
jmp 0x41f512
movzx eax, word [ecx]
test ax, ax
je 0x41f48f
cmp ax, di
je 0x41f4f5
cmp ax, dx
jne 0x41f4e4
cmp dword [esp + 0x14], 0
jne 0x41f4f5
mov dword [esp + 0x14], ecx
add ecx, 2
jmp 0x41f460
add ecx, 2
cmp word [ecx], 0
je 0x41f48f
add ecx, 2
jmp 0x41f460
mov ecx, dword [esp + 0x10]
push ebx
push str.Literal_commas_and_percent_signs_must_be_escaped__e.g.____
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, 0x4c602c
push 1
mov ecx, esi
call fcn.0047a660
mov cl, byte [esp + 0x13]
add esp, 4
mov edx, esi
push edi
call fcn.0040e8a0
add esp, 4
test eax, eax
jne 0x41f106
mov ecx, dword [esp + 0x10]
push 0x4c602c
push str.Out_of_memory.
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x4cb8a0
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f657
test esi, esi
je 0x41f649
mov edx, str.EndChars
mov ecx, esi
call fcn.004786c0
test eax, eax
je 0x41f5dc
mov edx, 0x4cb8b8
mov ecx, eax
call fcn.004053e1
test eax, eax
je 0x41f106
push 0x64
add eax, 2
push eax
push str._____:____.___n__t
call fcn.0049ef24
add esp, 0xc
xor eax, eax
mov ecx, str._____:____.___n__t
mov word [0x4d9b98], ax
push eax
call fcn.0047a660
mov eax, 3
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 7
push str.NoMouse
push esi
call fcn.00495d63
add esp, 0xc
test eax, eax
jne 0x41f603
mov byte [0x4d9acc], al
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x4db790
push 0x4db7d7
push 0x4db8ec
push 0x4d9acd
push 0x4db8ef
push 0x4db8ed
push 0x4d9ace
push 0x4d9acf
push 0x4db8ee
push 0x4d9b9c
push 0x4db8f0
mov edx, 0x4db8f4
mov ecx, esi
call fcn.00411b20
add esp, 0x2c
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.HotkeyModifierTimeout
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f68b
test esi, esi
je 0x41f67d
mov ecx, esi
call fcn.004124b0
mov dword [0x4d9bbc], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.HotkeyInterval
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f6c9
test esi, esi
je 0x41f6bb
mov ecx, esi
call fcn.004124b0
mov ecx, 0xa
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4d9bb0], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxHotkeysPerInterval
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f707
test esi, esi
je 0x41f6f9
mov ecx, esi
call fcn.004124b0
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4d9bb4], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxThreadsPerHotkey
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f764
test esi, esi
je 0x41f756
mov ecx, esi
call fcn.004124b0
cmp eax, 0xff
jle 0x41f747
mov eax, 0xff
mov byte [0x4d9b9a], al
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov byte [0x4d9b9a], al
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxThreadsBuffer
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f7a8
test esi, esi
je 0x41f793
xor edx, edx
mov ecx, esi
call fcn.0041a830
mov byte [0x4dc0e4], 0
cmp eax, 2
je 0x41f79a
mov byte [0x4dc0e4], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxThreads
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f805
test esi, esi
je 0x41f7f7
mov ecx, esi
call fcn.004124b0
cmp eax, 0xff
jle 0x41f7e8
mov eax, 0xff
mov dword [0x4d89bc], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4d89bc], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.ClipboardTimeout
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f839
test esi, esi
je 0x41f82b
mov ecx, esi
call fcn.004124b0
mov dword [0x4d89c8], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.LTrim
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f87d
test esi, esi
je 0x41f868
xor edx, edx
mov ecx, esi
call fcn.0041a830
mov byte [0x4db7d6], 0
cmp eax, 2
je 0x41f86f
mov byte [0x4db7d6], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.WinActivateForce
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f8a8
mov byte [0x4dc0ee], 1
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.ErrorStdOut
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f8d7
mov esi, dword [esp + 0x10]
mov eax, 3
mov byte [esi + 0xadf], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxMem
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f93d
test esi, esi
je 0x41f92f
mov ecx, esi
call fcn.00417e30
movaps xmm1, xmm0
movsd xmm0, qword [0x4d3118]
comisd xmm1, xmm0
ja 0x41f915
movsd xmm0, qword [0x4d30d8]
maxsd xmm0, xmm1
mulsd xmm0, qword [0x4d3110]
mulsd xmm0, qword [0x4d3110]
call fcn.004abf21
mov dword [0x4d9bb8], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.KeyHistory
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f997
test esi, esi
je 0x41f989
mov ecx, esi
call fcn.004124b0
test eax, eax
jns 0x41f97a
mov dword [0x4d89c4], 0
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, 0x1f4
cmp eax, ecx
cmovg eax, ecx
mov dword [0x4d89c4], eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.CommentFlag
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41fa83
test esi, esi
je 0x41fa75
cmp word [esi + 2], ax
jne 0x41fa3a
movzx eax, word [esi]
cmp eax, 0x23
je 0x41fc6c
cmp ax, word [0x4d9ba4]
je 0x41fc6c
cmp ax, word [0x4d9ba0]
je 0x41fc6c
cmp ax, word [0x4d9ba8]
je 0x41fc6c
cmp eax, 0x21
je 0x41fc6c
cmp eax, 0x5e
je 0x41fc6c
cmp eax, 0x2b
je 0x41fc6c
cmp eax, 0x24
je 0x41fc6c
cmp eax, 0x7e
je 0x41fc6c
cmp eax, 0x2a
je 0x41fc6c
cmp eax, 0x3c
je 0x41fc6c
cmp eax, 0x3e
je 0x41fc6c
push 0xf
push esi
push 0x4da0d8
call fcn.0049ef24
mov ecx, 0x4da0d8
add esp, 0xc
xor eax, eax
mov word [0x4da0f6], ax
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41fa60
sub ecx, edx
sar ecx, 1
mov dword [0x4d9bcc], ecx
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.EscapeChar
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41fafa
test esi, esi
je 0x41f106
movzx eax, word [esi]
cmp eax, 0x23
je 0x41fc6c
cmp ax, word [0x4d9ba4]
je 0x41fc6c
cmp ax, word [0x4d9ba8]
je 0x41fc6c
cmp eax, 0x2e
je 0x41fc6c
cmp dword [0x4d9bcc], 1
jne 0x41fae6
cmp ax, word [0x4da0d8]
je 0x41fc6c
mov word [0x4d9ba0], ax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.DerefChar
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41fb68
test esi, esi
je 0x41f106
movzx eax, word [esi]
cmp ax, word [0x4d9ba0]
je 0x41fc6c
cmp ax, word [0x4d9ba8]
je 0x41fc6c
cmp eax, 0x2e
je 0x41fc6c
cmp dword [0x4d9bcc], 1
jne 0x41fb54
cmp ax, word [0x4da0d8]
je 0x41fc6c
mov word [0x4d9ba4], ax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x4cba84
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41fbdf
test esi, esi
je 0x41f106
movzx eax, word [esi]
cmp eax, 0x23
je 0x41fc6c
cmp ax, word [0x4d9ba0]
je 0x41fc6c
cmp ax, word [0x4d9ba4]
je 0x41fc6c
cmp eax, 0x2e
je 0x41fc6c
cmp dword [0x4d9bcc], 1
jne 0x41fbcb
cmp ax, word [0x4da0d8]
je 0x41fc6c
mov word [0x4d9ba8], ax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MenuMaskKey
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41fc42
test esi, esi
je 0x41fc1f
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0x4d9bc0
mov edx, 0x4d9b9b
mov ecx, esi
call fcn.00416f10
add esp, 0xc
test al, al
jne 0x41f106
test esi, esi
mov ecx, str.Parameter_1_required
mov eax, str.Parameter_1_invalid.
cmove eax, ecx
mov ecx, dword [esp + 0x10]
push ebx
push eax
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.InputLevel
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41fc99
test esi, esi
je 0x41fc84
mov ecx, esi
call fcn.004124b0
test eax, eax
js 0x41fc6c
cmp eax, 0x64
jle 0x41fc86
mov ecx, dword [esp + 0x10]
push ebx
push str.Parameter_1_invalid.
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
mov byte [0x4db9bf], al
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.Warn
mov ecx, ebx
call fcn.00478380
add esp, 8
test eax, eax
jne 0x41f551
movzx eax, word [0x4d9ba8]
test esi, esi
mov edi, 0x4c602c
cmovne edi, esi
push eax
push edi
call fcn.00492ca4
mov edx, eax
add esp, 8
mov eax, 0x4c602c
mov dword [esp + 0x14], eax
test edx, edx
je 0x41fcf9
lea ecx, [edx + 2]
call fcn.0040e490
add edx, 0xfffffffe
mov dword [esp + 0x14], eax
mov ecx, edi
call fcn.0040e4b0
xor ecx, ecx
mov word [eax + 2], cx
cmp word [edi], 0
mov esi, 5
je 0x41fd42
xor esi, esi
nop word [eax + eax]
push dword [esi*4 + 0x4cf33c]
push edi
call fcn.0049466a
add esp, 8
test eax, eax
je 0x41fd42
inc esi
cmp esi, 6
jne 0x41fd10
mov ecx, dword [esp + 0x10]
push ebx
push str.Parameter_1_invalid.
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [esp + 0x14]
mov edi, 2
cmp word [ebx], 0
je 0x41fd85
xor edi, edi
push dword [edi*4 + 0x4cf32c]
push ebx
call fcn.0049466a
add esp, 8
test eax, eax
je 0x41fd85
inc edi
cmp edi, 4
jne 0x41fd53
mov ecx, dword [esp + 0x10]
push ebx
push str.Parameter_2_invalid.
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test esi, esi
je 0x41fd8e
cmp esi, 5
jne 0x41fd94
mov dword [0x4dc100], edi
cmp esi, 1
je 0x41fd9e
cmp esi, 5
jne 0x41fda4
mov dword [0x4dc0fc], edi
cmp esi, 3
je 0x41fdae
cmp esi, 5
jne 0x41fdb4
mov dword [0x4dc0f8], edi
cmp esi, 2
je 0x41fdbe
cmp esi, 5
jne 0x41fdc4
mov dword [0x4dc0f4], edi
cmp esi, 4
je 0x41fdce
cmp esi, 5
jne 0x41fdd4
mov dword [0x4dc0f0], edi
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test esi, esi
jne 0x41fdfe
mov ecx, dword [esp + 0x10]
push ebx
push str.Parameter_1_required
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp word [esi], 0x2a
jne 0x41fe43
movzx edi, word [esi + 2]
test edi, 0xffffff80
jne 0x41fe22
push 2
push edi
call fcn.00498ea3
add esp, 8
test eax, eax
je 0x41fe22
and edi, 0xffffffdf
cmp di, 0x49
jne 0x41fe43
movzx eax, word [esi + 4]
add esi, 4
mov byte [esp + 0x14], 1
cmp eax, 0x20
je 0x41fe3e
cmp eax, 9
jne 0x41fe48
add esi, 2
jmp 0x41fe48
mov byte [esp + 0x14], 0
cmp word [esi], 0x3c
jne 0x41fefb
push 0x3e
push esi
call fcn.00492ca4
mov edi, eax
add esp, 8
test edi, edi
je 0x41fefb
cmp word [edi + 2], 0
jne 0x41fefb
xor eax, eax
add esi, 2
mov word [edi], ax
lea eax, [esp + 0x28]
push eax
push 0x103
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x41fe93
mov word [esp + 0x28], ax
push 0
lea eax, [esp + 0x1f]
push eax
lea eax, [esp + 0x17]
push eax
mov eax, edi
sub eax, esi
sar eax, 1
push eax
push esi
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.00427140
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov al, byte [esp + 0xf]
test al, al
jne 0x41fed9
cmp byte [esp + 0x1b], al
jne 0x41f106
cmp byte [esp + 0x14], al
jne 0x41f106
mov ecx, 0x3e
mov word [edi], cx
test al, al
jne 0x41ff0a
push ebx
push str.Function_library_not_found.
mov ecx, esi
call fcn.004354a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
lea eax, [esp + 0x20]
push eax
call fcn.004343f0
test eax, eax
jne 0x41ff15
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0x1c]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41ff47
test al, 0x10
je 0x41ff47
mov ecx, edi
call fcn.004461e0
push edi
call fcn.00495d53
mov eax, 3
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x28]
push edi
call fcn.0041cde0
neg eax
push edi
sbb esi, esi
and esi, 3
call fcn.00495d53
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4