Function at 0x402590
Capabilities:
Create directory

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x415638
push eax
mov eax, dword [0x41f190]
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
xor esi, esi
push edi
test eax, eax
jne 0x4027ad
lea eax, [esp + 0xc]
push eax
call fcn.00401d30
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
test edx, edx
je 0x402763
mov edi, dword [str.Misc_]
or ecx, 0xffffffff
xor eax, eax
mov esi, edi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
mov ecx, dword [0x4161ec]
sub ecx, edx
cmp ecx, edi
ja 0x402600
call fcn.00415310
mov edx, dword [esp + 0x14]
test edi, edi
jbe 0x40263c
lea ebx, [edx + edi]
push 0
push ebx
lea ecx, [esp + 0x14]
call fcn.004048a0
test al, al
je 0x40263c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, edi
push ebx
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.00404880
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x402649
mov eax, 0x4161e8
push 0
push eax
call fcn.0040c7cf
add esp, 8
cmp eax, 0xffffffff
jne 0x4026bd
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x402666
mov eax, 0x4161e8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4026bd
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4026a9
mov al, byte [ecx - 1]
test al, al
je 0x40269f
cmp al, 0xff
je 0x40269f
dec al
pop edi
mov byte [ecx - 1], al
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
dec ecx
push ecx
call fcn.0040c226
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
mov edi, dword [str.ClnExtor.log]
or ecx, 0xffffffff
xor eax, eax
mov esi, edi
repne scasb al, byte es:[edi]
mov eax, dword [0x4161ec]
mov edx, dword [esp + 0x14]
not ecx
dec ecx
sub eax, edx
mov edi, ecx
cmp eax, edi
ja 0x4026e5
call fcn.00415310
test edi, edi
jbe 0x402727
mov ecx, dword [esp + 0x14]
push 0
lea ebx, [ecx + edi]
lea ecx, [esp + 0x10]
push ebx
call fcn.004048a0
test al, al
je 0x402727
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, edi
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov byte [eax + ebx], 0
mov edx, dword [esp + 0x10]
mov edi, 0x4161e8
test edx, edx
je 0x402736
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x41f088
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 1
mov dword [0x41f190], esi
jmp 0x402767
mov edx, dword [esp + 0x10]
test edx, edx
je 0x4027b2
mov al, byte [edx - 1]
test al, al
je 0x40278f
cmp al, 0xff
je 0x40278f
dec al
pop edi
mov byte [edx - 1], al
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
dec edx
push edx
call fcn.0040c226
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
mov esi, 1
mov ecx, dword [esp + 0x1c]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret