Function at 0x4161e0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44df16
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 1
call fcn.004159d0
test al, al
je 0x416213
xor al, al
jmp 0x41649c
mov al, byte [esi + 0xe4]
test al, al
je 0x416224
xor al, al
jmp 0x41649c
lea ebp, [esi + 0x78]
mov ecx, ebp
call fcn.00417d30
cmp eax, 0xffffffff
jne 0x41623a
xor al, al
jmp 0x41649c
mov ecx, esi
call fcn.00415ae0
cmp eax, 0xffff
jne 0x41624f
xor al, al
jmp 0x41649c
mov edi, dword [esp + 0x158]
test edi, edi
je 0x416292
lea eax, [esp + 0x28]
push eax
push edi
call fcn.0043c128
test eax, eax
je 0x41628b
mov ebx, dword [esp + 0x150]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.0041a7a0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
mov dword [ebx + 0x24], eax
jne 0x416299
xor al, al
jmp 0x41649c
mov ebx, dword [esp + 0x150]
lea ecx, [esi + 0x20]
call fcn.00418970
lea edi, [esi + 0xe8]
push ebx
mov ecx, edi
call fcn.00419320
lea edx, [esp + 0x14]
mov ecx, esi
push edx
call fcn.00415dc0
mov ecx, eax
call fcn.0041ab50
mov eax, dword [esp + 0x14]
mov dword [esp + 0x148], 0
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x416305
mov ecx, esi
call fcn.00415ae0
push eax
lea ecx, [esp + 0x18]
push str.file_i
push ecx
call fcn.0043996a
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, esi
push edx
call fcn.00415dc0
mov ecx, eax
call fcn.0041ab30
mov al, byte [esi + 0x15c]
mov cl, byte [edi + 0x74]
cmp al, cl
jne 0x416327
mov edi, dword [edi + 0x28]
push 1
mov ecx, edi
call fcn.0041ac10
push 0
mov ecx, edi
call fcn.0041abd0
mov ecx, esi
call fcn.00415dc0
mov eax, dword [eax + 0x24]
mov ecx, esi
push eax
call fcn.00417400
mov edi, dword [esi + 0x10]
mov byte [esp + 0x13], al
test edi, edi
setne bl
mov byte [esp + 0x18], bl
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.00417d30
mov edi, dword [esp + 0x158]
cmp eax, 1
sete dl
push edx
push edi
mov ecx, esi
call fcn.00415dc0
mov ecx, eax
call fcn.0041a9e0
test al, al
jne 0x41637f
push 0xffffffffffffff95
mov ecx, esi
call fcn.00415a10
push ebp
mov ecx, esi
call fcn.00415dc0
mov ecx, eax
call fcn.0041a880
mov al, byte [esi + 0x15c]
test al, al
je 0x4163ab
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00415dc0
mov ecx, eax
call fcn.0041ab30
test bl, bl
je 0x416403
xor ebx, ebx
lea ecx, [esp + 0x1c]
push ebx
push 0xc
call fcn.004189c0
mov eax, dword [esp + 0x150]
xor edx, edx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x148], 1
mov dx, word [eax + 0x10]
push ecx
shl edx, 0x10
push edx
mov ecx, esi
call fcn.004175e0
mov ecx, dword [esp + 0x20]
push ebx
push 0xc
push ecx
mov ecx, ebp
call fcn.00418750
lea ecx, [esp + 0x1c]
mov byte [esp + 0x148], bl
call fcn.004189f0
jmp 0x416405
xor ebx, ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x2c], ebx
mov eax, dword [esi + 0x74]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x34], eax
mov al, byte [esp + 0x13]
test al, al
mov dword [esi + 0x30], ebx
mov dword [esi + 0x3c], ebx
je 0x41643d
mov ecx, esi
call fcn.00415dc0
cmp word [eax + 0xe], bx
je 0x41643d
mov ecx, esi
call fcn.00415dc0
mov word [eax + 0xe], bx
mov ecx, esi
call fcn.00415dc0
cmp word [eax + 0xe], 8
jne 0x41647f
mov al, byte [esi + 4]
test al, al
je 0x41645a
lea eax, [esi + 0xc8]
jmp 0x41645c
xor eax, eax
push 0x38
push str.1.1.3
push ebx
push 8
push 0xfffffffffffffff1
push 8
lea edx, [esi + 0x28]
push edi
push edx
mov dword [esi + 0x50], eax
call fcn.0042f840
push eax
mov ecx, esi
call fcn.00415da0
lea ecx, [esp + 0x14]
mov byte [esi + 0xe4], 1
mov dword [esp + 0x148], 0xffffffff
call fcn.0043fdfc
mov al, 1
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret 0xc