Function at 0x46e984
Capabilities:
Print debug messages
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x56
push 0
push 0
dec ecx
jne 0x46e98d
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 0x27a], cl
mov byte [ebp - 0x279], dl
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
call fcn.00405ddc
lea eax, [ebp - 0x278]
mov edx, dword [0x46b128]
call fcn.00405dfc
xor eax, eax
push ebp
push 0x46eca4
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
lea edx, [ebp - 0x284]
mov eax, dword [ebp - 4]
call fcn.0046b14c
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 4]
call fcn.004059cc
mov eax, dword [ebp - 4]
call fcn.0046e8ec
test al, al
je 0x46ea24
lea eax, [ebp - 0x288]
mov ecx, dword [ebp - 4]
mov edx, 0x46ecb8
call fcn.00405bc0
mov eax, dword [ebp - 0x288]
call fcn.00405b44
push eax
call sub.kernel32.dll_OutputDebugStringW
jmp 0x46ec62
mov dl, 1
mov eax, dword [0x46ccbc]
call fcn.0046d2e4
mov esi, eax
mov edx, dword [ebp - 4]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x46eb5a
lea ecx, [ebp - 0x28c]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x28c]
lea eax, [ebp - 4]
mov ecx, 0x46ecdc
call fcn.00405bc0
lea eax, [ebp - 0x290]
mov ecx, 0x46ece4
mov edx, dword [ebp - 4]
call fcn.00405bc0
mov eax, dword [ebp - 0x290]
lea ecx, [ebp - 0x278]
mov edx, 0x3f
call fcn.0046b4a8
test eax, eax
jne 0x46eb4e
mov eax, dword [ebp - 0x268]
and eax, 0x10
cmp eax, 0x10
je 0x46eaed
push 0x80
lea eax, [ebp - 0x294]
mov ecx, dword [ebp - 0x264]
mov edx, dword [ebp - 4]
call fcn.00405bc0
mov eax, dword [ebp - 0x294]
call fcn.00405b44
push eax
call sub.kernel32.dll_SetFileAttributesW
lea eax, [ebp - 0x298]
mov ecx, dword [ebp - 0x264]
mov edx, dword [ebp - 4]
call fcn.00405bc0
mov eax, dword [ebp - 0x298]
call fcn.0046b40c
jmp 0x46eb3b
cmp byte [ebp - 0x279], 0
je 0x46eb3b
mov eax, dword [ebp - 0x264]
mov edx, 0x46ecf0
call fcn.00405c78
je 0x46eb3b
mov eax, dword [ebp - 0x264]
mov edx, 0x46ecf8
call fcn.00405c78
je 0x46eb3b
lea eax, [ebp - 0x29c]
mov ecx, dword [ebp - 0x264]
mov edx, dword [ebp - 4]
call fcn.00405bc0
mov edx, dword [ebp - 0x29c]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x278]
call fcn.0046b4f4
test eax, eax
je 0x46ea94
inc ebx
lea eax, [ebp - 0x278]
call fcn.0046b518
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x14]
cmp ebx, eax
jl 0x46ea41
cmp byte [ebp - 0x27a], 0
je 0x46eb76
xor ebx, ebx
jmp 0x46eb7b
mov ebx, 1
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
sub ebx, eax
jg 0x46ec5b
dec ebx
mov dword [ebp - 0x280], ebx
mov ebx, eax
push 0x80
lea ecx, [ebp - 0x2a0]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x2a0]
call fcn.00405b44
push eax
call sub.kernel32.dll_SetFileAttributesW
lea ecx, [ebp - 0x2a4]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x2a4]
call fcn.0046b534
test al, al
jne 0x46ec4e
lea ecx, [ebp - 0x2b0]
mov edx, ebx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x2b0]
lea edx, [ebp - 0x2ac]
call fcn.0046b314
push dword [ebp - 0x2ac]
push 0x46ed04
call sub.kernel32.dll_GetLastError_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x2b8]
call fcn.0040a1d0
mov edx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x2b4]
call fcn.00405b34
push dword [ebp - 0x2b4]
lea eax, [ebp - 0x2a8]
mov edx, 3
call fcn.00405c30
mov eax, dword [ebp - 0x2a8]
call fcn.00405b44
push eax
call sub.kernel32.dll_OutputDebugStringW
dec ebx
inc dword [ebp - 0x280]
jne 0x46eb94
mov eax, esi
call fcn.00404250
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46ecab
lea eax, [ebp - 0x2b8]
call fcn.00405150
lea eax, [ebp - 0x2b4]
mov edx, 0xd
call fcn.00405980
lea eax, [ebp - 0x278]
mov edx, dword [0x46b128]
call fcn.00405ecc
lea eax, [ebp - 4]
call fcn.00405968
ret