Function at 0x45a308
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x61
push 0
push 0
dec ecx
jne 0x45a310
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
call fcn.00405b2c
lea eax, [ebp - 0x290]
mov edx, dword [0x411630]
call fcn.00405b4c
xor eax, eax
push ebp
push 0x45aafd
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x291], 0
lea ecx, [ebp - 0x290]
mov edx, 0x3f
mov eax, dword [ebp - 4]
call fcn.004116dc
test eax, eax
jne 0x45aaa4
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x298], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x2ac], eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x254]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x250]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2bc], edx
lea eax, [ebp - 0x290]
call fcn.004116c0
push 0x20
mov eax, dword [ebp - 4]
call fcn.0040592c
push eax
call sub.kernel32.dll_SetFileAttributesW
push 0x12
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x410e6c]
call fcn.004112ec
mov dword [ebp - 0x2b4], eax
xor edx, edx
push ebp
push 0x45a9fb
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0xc]
call fcn.00404fcc
cmp dword [ebp - 0x2bc], 0
jne 0x45a443
cmp dword [ebp - 0x2c0], 0x24
jbe 0x45a47d
jmp 0x45a445
jle 0x45a47d
lea eax, [ebp - 0xc]
mov edx, 0x24
call fcn.004056ec
lea eax, [ebp - 0xc]
call fcn.004054bc
mov edx, eax
mov ecx, 0x24
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push 0
push 0
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0xc]
mov edx, 0x45ab1c
call fcn.004053f4
jne 0x45a969
xor edx, edx
push ebp
push 0x45a95f
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x2c0]
mov edx, dword [ebp - 0x2bc]
sub eax, 4
sbb edx, 0
push edx
push eax
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x2f4]
mov ecx, 4
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x2c0]
mov edx, dword [ebp - 0x2bc]
push edx
push eax
mov eax, dword [ebp - 0x2f4]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x2c4]
mov ecx, 4
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x2c4]
call fcn.004056ec
lea eax, [ebp - 0x14]
call fcn.004054bc
mov edx, eax
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0x2f8]
mov eax, dword [ebp - 0x14]
call fcn.00411fe8
mov edx, dword [ebp - 0x2f8]
lea eax, [ebp - 0x14]
call fcn.00405064
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x45a569
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x2c4], eax
mov dl, 1
mov eax, dword [0x410f5c]
call fcn.00404188
mov dword [ebp - 0x2e4], eax
lea eax, [ebp - 0x14]
call fcn.004054bc
mov edx, eax
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2e4]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [ebp - 0x2c4]
test eax, eax
jns 0x45a5a9
add eax, 7
sar eax, 3
cdq
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], edx
lea edx, [ebp - 0x2c4]
mov ecx, 4
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x2c4]
call fcn.004056ec
lea eax, [ebp - 0x20]
call fcn.004054bc
mov edx, eax
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x20]
call fcn.00411fe8
mov edx, dword [ebp - 0x2fc]
lea eax, [ebp - 0x20]
call fcn.00405064
lea edx, [ebp - 0x2c4]
mov ecx, 4
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x2c4]
call fcn.004056ec
lea eax, [ebp - 0xc]
call fcn.004054bc
mov edx, eax
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0x300]
mov eax, dword [ebp - 0xc]
call fcn.00411fe8
mov edx, dword [ebp - 0x300]
lea eax, [ebp - 0xc]
call fcn.00405064
lea eax, [ebp - 0xc]
push eax
mov eax, dword [0x465d28]
mov ecx, dword [eax + 0x14]
mov eax, dword [0x465d28]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x20]
call fcn.004143fc
lea eax, [ebp - 0x1c]
mov edx, 0x20
call fcn.004056ec
lea eax, [ebp - 0x18]
mov edx, 0x10
call fcn.004056ec
lea eax, [ebp - 0xc]
call fcn.004054bc
push eax
lea eax, [ebp - 0x1c]
call fcn.004054bc
mov ecx, 0x20
pop edx
call fcn.00407d08
lea eax, [ebp - 0xc]
call fcn.004054bc
add eax, 0x20
push eax
lea eax, [ebp - 0x18]
call fcn.004054bc
mov ecx, 0x10
pop edx
call fcn.00407d08
lea edx, [ebp - 0x2d4]
mov ecx, 4
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0x2f0]
mov ecx, 8
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push 0
push 0
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
push 0
push 0
xor edx, edx
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea eax, [ebp - 0x10]
call fcn.00404fcc
mov ebx, dword [ebp - 0x2d0]
test ebx, ebx
jle 0x45a7be
mov dword [ebp - 0x2c4], 1
lea edx, [ebp - 0x2e0]
mov ecx, 8
mov eax, dword [ebp - 0x2e4]
mov esi, dword [eax]
call dword [esi + 0xc]
push dword [ebp - 0x2dc]
push dword [ebp - 0x2e0]
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea eax, [ebp - 0xc]
call fcn.00404fcc
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x2d4]
call fcn.004056ec
lea eax, [ebp - 0xc]
call fcn.004054bc
mov edx, eax
mov ecx, dword [ebp - 0x2d4]
mov eax, dword [ebp - 0x2b4]
mov esi, dword [eax]
call dword [esi + 0xc]
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405298
inc dword [ebp - 0x2c4]
dec ebx
jne 0x45a74a
mov eax, dword [ebp - 0x2c0]
sub eax, dword [ebp - 0x2f0]
sub eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x2c4], eax
push dword [ebp - 0x2ec]
push dword [ebp - 0x2f0]
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea eax, [ebp - 0xc]
call fcn.00404fcc
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x2c4]
call fcn.004056ec
lea eax, [ebp - 0xc]
call fcn.004054bc
mov edx, eax
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405298
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.00405064
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x45a842
sub eax, 4
mov eax, dword [eax]
mov edx, eax
sub edx, 0x24
lea eax, [ebp - 0x10]
call fcn.004056ec
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x45a85b
sub ebx, 4
mov ebx, dword [ebx]
lea eax, [ebp - 0xc]
call fcn.004054bc
add eax, 0x24
push eax
lea eax, [ebp - 0x10]
call fcn.004054bc
mov ecx, ebx
pop edx
call fcn.00407d08
lea eax, [ebp - 0x304]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.00414018
mov edx, dword [ebp - 0x304]
lea eax, [ebp - 0x10]
call fcn.00405064
cmp dword [ebp - 0x10], 0
je 0x45a955
push 0
push 0
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
push 0
push 0
xor edx, edx
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebx, dword [ebp - 0x2d0]
test ebx, ebx
jle 0x45a93e
mov dword [ebp - 0x2c4], 1
lea edx, [ebp - 0x2e0]
mov ecx, 8
mov eax, dword [ebp - 0x2e4]
mov esi, dword [eax]
call dword [esi + 0xc]
push dword [ebp - 0x2dc]
push dword [ebp - 0x2e0]
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea eax, [ebp - 0x10]
call fcn.004054bc
mov edx, dword [ebp - 0x2c4]
dec edx
imul edx, dword [ebp - 0x2d4]
inc edx
lea edx, [eax + edx - 1]
mov ecx, dword [ebp - 0x2d4]
mov eax, dword [ebp - 0x2b4]
mov esi, dword [eax]
call dword [esi + 0x10]
inc dword [ebp - 0x2c4]
dec ebx
jne 0x45a8da
push dword [ebp - 0x2ec]
push dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2b4]
call fcn.004110d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a969
lea eax, [ebp - 0xc]
call fcn.00404fcc
mov eax, dword [ebp - 0x2b4]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x45a987
cmp eax, 0x24
jbe 0x45a9c1
jmp 0x45a989
jle 0x45a9c1
push 0
push 0
xor edx, edx
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea eax, [ebp - 0xc]
mov edx, 0x24
call fcn.004056ec
lea eax, [ebp - 0xc]
call fcn.004054bc
mov edx, eax
mov ecx, 0x24
mov eax, dword [ebp - 0x2b4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xc]
mov edx, 0x45ab1c
call fcn.004053f4
je 0x45a9d7
mov byte [ebp - 0x291], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45aa02
lea eax, [ebp - 0x2e4]
call fcn.0040dfd0
lea eax, [ebp - 0x2b4]
call fcn.0040dfd0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45ab04
lea eax, [ebp - 0x30c]
mov edx, 2
call fcn.004057c0
lea eax, [ebp - 0x304]
mov edx, 4
call fcn.00404ff0
lea eax, [ebp - 0x290]
mov edx, dword [0x411630]
call fcn.00405c10
lea eax, [ebp - 0x20]
mov edx, 6
call fcn.00404ff0
lea eax, [ebp - 8]
mov edx, 2
call fcn.004057c0
ret