Function at 0x409e0c
Capabilities:
Get common file path

Disassembly:
mov eax, dword [ebp + 8]
cmp eax, edi
mov dword [ebp + 0x14], edi
je 0x4093d1
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 8], ecx
lea ecx, [ebp + 0x14]
push ecx
lea ecx, [ebp + 8]
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x4093fe
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
cmp eax, dword [ecx + 8]
jmp 0x409413
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
jmp 0x4093c9
xor eax, eax
jmp 0x409429
jne 0x409426
mov dword [ebp - 0x10], 1
jmp 0x409426
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x14
push esi
mov esi, ecx
mov eax, dword [esi + 4]
cmp eax, 0x68
push edi
jne 0x409cea
call fcn.00409bc4
test eax, eax
je 0x409cfa
cmp dword [esi + 4], 0x6c
jne 0x409c7c
mov ecx, esi
call fcn.00409bc4
test eax, eax
je 0x409c6c
cmp dword [esi + 4], 0
jne 0x409cfa
mov eax, dword [esi + 0xc]
mov dword [eax + 0x20], 1
xor eax, eax
pop edi
pop esi
ret
push 0x20
call sub.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos
test eax, eax
pop ecx
je 0x409c91
mov ecx, eax
call fcn.00409b94
jmp 0x409c93
xor eax, eax
test eax, eax
mov dword [esi + 0x10], eax
jne 0x409c9f
push 3
pop eax
jmp 0x409c78
mov ecx, esi
call fcn.00406318
mov edi, eax
test edi, edi
je 0x409cbe
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x409cba
push 1
call fcn.00409bfc
mov eax, edi
jmp 0x409cde
push dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
call fcn.00404c10
test eax, eax
jne 0x409ce4
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x409cdb
push 1
call fcn.00409bfc
push 3
pop eax
and dword [esi + 0x10], 0
jmp 0x409c78
and dword [esi + 0x10], 0
jmp 0x409c76
cmp eax, 0x69
jne 0x409c76
mov ecx, esi
call fcn.00409bc4
test eax, eax
jne 0x409d02
xor eax, eax
inc eax
jmp 0x409c78
pop edi
mov ecx, esi
pop esi
jmp 0x4093a2
push esi
mov esi, ecx
cmp dword [esi + 4], 0x64
jne 0x409d4b
mov eax, dword [esi + 8]
push dword [eax]
call fcn.00409aec
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 8]
push dword [eax]
mov eax, dword [esi + 0xc]
push dword [eax + 0x10]
call fcn.00409b24
test al, al
je 0x409d40
push 3
pop eax
pop esi
ret
mov ecx, esi
call fcn.00409bc4
test eax, eax
jne 0x409d50
xor eax, eax
inc eax
pop esi
ret
mov ecx, esi
pop esi
jmp 0x409c34
push esi
mov esi, ecx
mov eax, dword [esi + 4]
test eax, eax
jne 0x409d64
pop esi
ret
cmp eax, 0x6f
jne 0x409d74
mov ecx, esi
call fcn.00409bc4
test eax, eax
jne 0x409d7c
xor eax, eax
inc eax
pop esi
ret
mov ecx, esi
pop esi
jmp 0x409d0b
push esi
mov esi, ecx
mov eax, dword [esi + 4]
cmp eax, 0x6f
jne 0x409d93
call fcn.00409be0
jmp 0x409dc4
cmp eax, 0x6e
jne fcn.00405944
call fcn.00409be0
mov ecx, esi
call fcn.00409bc4
test eax, eax
je 0x409dd3
mov ecx, esi
call fcn.004048f8
test eax, eax
jne 0x409dc2
mov eax, dword [esi + 4]
test eax, eax
jne fcn.00406318
pop esi
ret
mov ecx, esi
call fcn.00409bc4
test eax, eax
jne 0x4034db
xor eax, eax
inc eax
pop esi
ret
push esi
mov esi, ecx
mov eax, dword [esi + 4]
cmp eax, 0x6e
jne 0x409de8
xor eax, eax
inc eax
pop esi
ret
cmp eax, 0x64
jne 0x409e00
mov ecx, esi
call fcn.004048f8
test eax, eax
jne 0x409e09
mov ecx, esi
pop esi
jmp 0x409d58
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
pop esi
ret
push esi
mov esi, ecx
call fcn.00409bc4
test eax, eax
je 0x409e83
mov eax, dword [esi + 4]
cmp eax, 0x6e
jne 0x409e30
mov ecx, esi
call fcn.00409bc4
test eax, eax
je 0x409e83
mov ecx, esi
pop esi
jmp 0x409dd8
cmp eax, 0x64
jne 0x409e6b
mov eax, dword [esi + 8]
push dword [eax]
call fcn.00409aec
mov ecx, dword [esi + 8]
mov dword [esi], eax
push dword [ecx]
push eax
call fcn.00409b24
test al, al
je 0x409e58
push 3
pop eax
pop esi
ret
mov ecx, esi
call fcn.00409bc4
test eax, eax
je 0x409e83
mov ecx, esi
pop esi
jmp 0x409d81
cmp eax, 0x6f
jne 0x409e83
mov ecx, esi
call fcn.00409bc4
test eax, eax
je 0x409e83
mov ecx, esi
pop esi
jmp 0x409d0b
xor eax, eax
inc eax
pop esi
ret