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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
call fcn.00408440
call fcn.00408450
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
call fcn.0052df00
mov ecx, esp
call fcn.00408460
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
call eax
sub esp, 4
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x4c], 0xffffffff
jne 0x4083c4
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x408139
jmp 0x408409
mov ecx, dword [esp + 0x50]
mov eax, esp
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0x80854c
call fcn.00410db0
sub esp, 8
mov dword [esp + 0x48], eax
cmp dword [esp + 0x48], 0xffffffff
setne dl
call fcn.00408470
mov ecx, dword [0x80a090]
mov esi, eax
sub esi, 1
imul eax, esi
and eax, 1
cmp eax, 0
sete dh
cmp ecx, 0xa
setl bl
or dh, bl
test dh, 1
mov byte [esp + 0x27], dl
jne 0x4081a3
jmp 0x408409
mov al, byte [esp + 0x27]
test al, 1
jne 0x4081b4
jmp 0x4082a1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov esi, esp
mov dword [esi + 8], edx
lea edx, [esp + 0x30]
mov dword [esi], edx
mov dword [esi + 4], 0
mov dword [esp + 0x20], eax
call fcn.00410c90
sub esp, 0xc
lea eax, [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
call fcn.004080b0
mov byte [esp + 0x1f], al
mov al, byte [esp + 0x1f]
xor al, 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x1e], al
call fcn.00506f10
mov al, byte [esp + 0x1e]
test al, 1
jne 0x40821a
jmp 0x408224
mov byte [esp + 0x5b], 0
jmp 0x4083f8
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x408260
jmp 0x40842d
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x40829c
jmp 0x40842d
jmp 0x4082a1
cmp dword [0x800034], 0
je 0x4082e5
mov eax, dword [0x80095c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x18], eax
call fcn.0052df00
mov ecx, edx
mov ecx, esp
call fcn.00408480
mov dword [ecx + 4], 0
mov eax, dword [esp + 0x18]
call eax
sub esp, 8
mov dword [esp + 0x14], eax
jmp 0x4082f3
mov eax, 0
mov dword [esp + 0x14], eax
jmp 0x4082f3
mov eax, dword [esp + 0x14]
mov ecx, dword [0x80a094]
call fcn.00408490
mov esi, ecx
sub esi, 1
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
mov dword [esp + 0x10], eax
jne 0x408339
jmp 0x408432
mov eax, dword [esp + 0x10]
cmp eax, 0
setne cl
call fcn.004084a0
call fcn.004084b0
mov edi, edx
add edi, 0xffffffff
imul edx, edi
and edx, 1
cmp edx, 0
sete ch
cmp esi, 0xa
setl bl
or ch, bl
test ch, 1
mov byte [esp + 0xf], cl
jne 0x408386
jmp 0x408432
mov al, byte [esp + 0xf]
test al, 1
jne 0x4083a1
jmp 0x408397
mov byte [esp + 0x5b], 0
jmp 0x4083f8
mov eax, dword [esp + 0x50]
mov ecx, eax
mov ecx, esp
mov dword [ecx], eax
mov ecx, 0x808598
call fcn.0048b210
sub esp, 4
mov eax, dword [esp + 0x54]
mov byte [eax], 0
jmp 0x4083f3
mov eax, dword [esp + 0x4c]
and eax, 0x410
push edx
mov edx, 0xfe7be247
xor edx, 0xfe7be247
cmp eax, edx
pop edx
jne 0x4083ec
mov byte [esp + 0x5b], 0
jmp 0x4083f8
mov eax, dword [esp + 0x54]
mov byte [eax], 1
mov byte [esp + 0x5b], 1
mov al, byte [esp + 0x5b]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x50]
mov eax, esp
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0x80854c
call fcn.00410db0
sub esp, 8
mov dword [esp + 0x48], eax
jmp 0x408139
jmp 0x408260
jmp 0x408339