Function at 0x409770
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x2c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [0x431080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov ecx, dword [0x432574]
mov eax, dword [0x432570]
mov edx, ecx
sub edx, 0xcb0ffd46
sub edx, 1
add edx, 0xcb0ffd46
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x26], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x25], al
mov dword [ebp - 0x2c], 0xa6439eda
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
sub eax, 0xa6439eda
je 0x4098c7
jmp 0x4097de
mov eax, dword [ebp - 0x34]
sub eax, 0xa70bb1c9
je 0x409a7f
jmp 0x4097f1
mov eax, dword [ebp - 0x34]
sub eax, 0xaa9da2f2
je 0x409b20
jmp 0x409804
mov eax, dword [ebp - 0x34]
sub eax, 0xd282a56b
je 0x409b45
jmp 0x409817
mov eax, dword [ebp - 0x34]
sub eax, 0xfdec4530
je 0x409988
jmp 0x40982a
mov eax, dword [ebp - 0x34]
sub eax, 0x190684f5
je 0x409b08
jmp 0x40983d
mov eax, dword [ebp - 0x34]
sub eax, 0x21431644
je 0x40997c
jmp 0x409850
mov eax, dword [ebp - 0x34]
sub eax, 0x25a19199
je 0x409a14
jmp 0x409863
mov eax, dword [ebp - 0x34]
sub eax, 0x45031254
je 0x409b31
jmp 0x409876
mov eax, dword [ebp - 0x34]
sub eax, 0x477a87b1
je 0x4099ee
jmp 0x409889
mov eax, dword [ebp - 0x34]
sub eax, 0x52a3d894
je 0x4099b2
jmp 0x40989c
mov eax, dword [ebp - 0x34]
sub eax, 0x5bd4c29e
je 0x409b14
jmp 0x4098af
mov eax, dword [ebp - 0x34]
sub eax, 0x7fb64c41
je 0x409912
jmp 0x4098c2
jmp 0x409b62
mov bl, byte [ebp - 0x26]
mov dh, byte [ebp - 0x25]
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x45031254
mov ecx, 0x7fb64c41
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x409b62
mov ecx, dword [ebp - 0x30]
push eax
mov eax, esp
mov dword [ebp - 0x24], eax
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
mov dword [eax], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x432574]
mov ecx, dword [0x432570]
mov edx, eax
add edx, 0x9b37b01b
sub edx, 1
sub edx, 0x9b37b01b
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x45031254
mov ecx, 0x21431644
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x409b62
mov dword [ebp - 0x2c], 0xfdec4530
jmp 0x409b62
mov eax, dword [ebp - 0x1c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, eax
mov eax, dword [ebp - 0x20]
mov dword [eax], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], 0x52a3d894
jmp 0x409b62
mov edx, dword [ebp - 0x18]
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 2
mov eax, 0xffffffff
xor eax, 0xe7bd9232
or edx, ecx
or eax, 0xe7bd9232
xor edx, 0xffffffff
and edx, eax
mov eax, 0xaa9da2f2
mov ecx, 0x477a87b1
cmp edx, 0
cmove eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x409b62
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, ecx
and eax, 2
xor ecx, 2
or eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], 0x25a19199
jmp 0x409b62
mov ecx, dword [0x432574]
mov eax, dword [0x432570]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xd282a56b
mov ecx, 0xa70bb1c9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x409b62
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [0x432574]
mov eax, dword [0x432570]
mov edx, ecx
add edx, 0x85f918e9
sub edx, 1
sub edx, 0x85f918e9
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xd282a56b
mov ecx, 0x190684f5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x409b62
mov dword [ebp - 0x2c], 0x5bd4c29e
jmp 0x409b62
mov dword [ebp - 0x2c], 0xaa9da2f2
jmp 0x409b62
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0041ad80
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x30]
push eax
mov eax, esp
mov dword [eax], ecx
mov dword [ebp - 0x2c], 0x7fb64c41
jmp 0x409b62
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov dword [ebp - 0x2c], 0xa70bb1c9
jmp 0x4097c8