Function at 0x40a450
Capabilities:
Create directory
Get file attributes
Set file attributes

Disassembly:
jmp 0x40a450
sub esp, 0xa84
mov eax, dword [0x44e1b4]
xor eax, esp
mov dword [esp + 0xa80], eax
push esi
mov esi, dword [esp + 0xa8c]
test esi, esi
jne 0x40a488
xor eax, eax
pop esi
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.0041bdf4
add esp, 0xa84
ret
push ebx
mov ebx, dword [esp + 0xa94]
test ebx, ebx
je 0x40a49e
cmp dword [esp + 0xa98], 0
jne 0x40a4b7
pop ebx
xor eax, eax
pop esi
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.0041bdf4
add esp, 0xa84
ret
push edi
push 0x208
lea eax, [esp + 0x278]
push 0
push eax
mov dword [esp + 0x18], 0
call fcn.0041be10
xor eax, eax
push 0x208
push eax
lea ecx, [esp + 0x698]
push ecx
mov dword [esp + 0x278], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], eax
call fcn.0041be10
push 0x208
lea edx, [esp + 0x498]
push 0
push edx
call fcn.0041be10
push 0x200
lea eax, [esp + 0x8b4]
push 0
push eax
call fcn.0041be10
push 0x250
lea ecx, [esp + 0x44]
push 0
push ecx
call fcn.0041be10
push 0x208
lea edx, [esp + 0x6c4]
push edx
push esi
call fcn.004011fe
mov edi, eax
add esp, 0x48
test edi, edi
je 0x40a6f7
lea eax, [esp + 0x684]
push 0x3c
push eax
call fcn.0041bd74
mov esi, eax
add esp, 8
test esi, esi
je 0x40a642
movzx eax, word [esi + 2]
add esi, 2
cmp ax, 0x3e
je 0x40a5a7
lea ecx, [esp + 0x88c]
add esi, 2
mov word [ecx], ax
movzx eax, word [esi]
add ecx, 2
cmp ax, 0x3e
jne 0x40a595
push 0
lea ecx, [esp + 0x890]
push ecx
lea edx, [esp + 0x484]
push edx
call fcn.00401352
add esi, 2
add esp, 0xc
cmp word [esi], 0x5c
je 0x40a5de
push 0x435bfc
push 0x104
lea eax, [esp + 0x484]
push eax
jmp 0x40a605
lea ecx, [esp + 0x47c]
push esi
push ecx
call fcn.00401113
add esp, 8
test eax, eax
jne 0x40a60d
push 0x435bfc
push 0x104
lea edx, [esp + 0x484]
push edx
call fcn.0041c1b5
add esp, 0xc
push esi
lea eax, [esp + 0x480]
push 0x104
push eax
call fcn.0041c1b5
lea ecx, [esp + 0x488]
push ecx
lea edx, [esp + 0x284]
push 0x104
push edx
call fcn.0041c22f
add esp, 0x18
jmp 0x40a6c2
lea eax, [esp + 0x684]
push 0x3a
push eax
call fcn.0041bd74
add esp, 8
test eax, eax
jne 0x40a6a5
push 0x44f400
lea ecx, [esp + 0x278]
push 0x104
push ecx
call fcn.0041c22f
push 0x435bfc
lea edx, [esp + 0x284]
push 0x104
push edx
call fcn.0041c1b5
lea eax, [esp + 0x69c]
push eax
lea ecx, [esp + 0x290]
push 0x104
push ecx
call fcn.0041c1b5
add esp, 0x24
jmp 0x40a6c2
lea edx, [esp + 0x684]
push edx
lea eax, [esp + 0x278]
push 0x104
push eax
call fcn.0041c22f
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x278]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40a721
push 0
lea eax, [esp + 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40a711
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.0041bdf4
add esp, 0xa84
ret
lea ecx, [esp + 0x274]
push ecx
call fcn.004012c1
add esp, 4
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea edx, [esp + 0x278]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebp, eax
mov eax, edi
sub eax, ebx
mov ebx, dword [esp + 0xaa0]
mov ecx, eax
sar ecx, 1
cmp ecx, ebx
jae 0x40a80f
mov esi, eax
cmp word [edi], 0x49
jne 0x40a7f6
push 8
push edi
lea edx, [esp + 0x26c]
push 0xa
push edx
call fcn.0041c29b
add esp, 0x10
push str.INST_HID
lea eax, [esp + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x40a813
push str.INST_OLY
lea ecx, [esp + 0x268]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x40a847
mov ecx, str.INST_NML
lea eax, [esp + 0x264]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a7d9
test dx, dx
je 0x40a7d5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a7d9
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a7b3
xor eax, eax
jmp 0x40a7de
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a7f6
or ebp, 0x80
add edi, 0x10
add esi, 0x10
mov dword [esp + 0x10], 1
add esi, 2
mov edx, esi
sar edx, 1
add edi, 2
cmp edx, ebx
jb 0x40a752
cmp dword [esp + 0x10], 0
jne 0x40a819
xor eax, eax
jmp 0x40a82e
add edi, 0x10
or ebp, 2
push ebp
lea eax, [esp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
neg eax
sbb eax, eax
and eax, edi
mov ecx, dword [esp + 0xa90]
pop ebp
pop edi
pop ebx
pop esi
xor ecx, esp
call fcn.0041bdf4
add esp, 0xa84
ret
or ebp, 1
add edi, 0x10
jmp 0x40a819