Function at 0x403c60
Capabilities:
Create directory
Delete file

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x40a4bb
push eax
mov eax, 0x4a34
mov dword fs:[0], esp
call fcn.0040a1c0
mov edx, dword [esp + 0x4a44]
push ebx
xor ebx, ebx
push ebp
push esi
cmp edx, ebx
push edi
je 0x403f87
mov ebp, dword [esp + 0x4a58]
cmp ebp, ebx
je 0x403f87
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, esi
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x14]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x13], 0x5c
je 0x403cfa
mov byte [esp + ecx + 0x14], 0x5c
mov byte [esp + ecx + 0x15], bl
mov edi, dword [str._kingsofttemp]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x14]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCRT.dll__mkdir]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x13], 0x5c
je 0x403d55
mov byte [esp + ecx + 0x14], 0x5c
mov byte [esp + ecx + 0x15], bl
mov edi, dword [str.update.ini]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x14]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCRT.dll_remove]
add esp, 4
lea ecx, [esp + 0x414]
push 0x416824
push 0x1f4a
call fcn.00401000
lea ecx, [esp + 0x414]
mov dword [esp + 0x4a4c], ebx
call fcn.004011a0
test eax, eax
je 0x403dcf
mov dword [esp + 0x4a4c], 0xffffffff
jmp 0x403f7b
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x215]
mov byte [esp + 0x214], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x214]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x214]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x40d91c
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x403e3f
cmp cl, bl
je 0x403e3b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x403e3f
add eax, 2
add esi, 2
cmp cl, bl
jne 0x403e1b
xor eax, eax
jmp 0x403e44
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x403ed5
mov esi, 0x40d500
lea eax, [esp + 0x214]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x403e7c
cmp cl, bl
je 0x403e78
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x403e7c
add eax, 2
add esi, 2
cmp cl, bl
jne 0x403e58
xor eax, eax
jmp 0x403e81
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x403ed5
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x214]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x214]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x213], 0x5c
je 0x403ed5
mov byte [esp + ecx + 0x214], 0x5c
mov byte [esp + ecx + 0x215], bl
mov edi, dword [str.update.ini]
or ebp, 0xffffffff
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x214]
mov esi, edi
mov edi, edx
mov edx, ecx
mov ecx, ebp
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x214]
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
push eax
lea ecx, [esp + 0x41c]
call fcn.00401250
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x418]
call fcn.00401290
lea ecx, [esp + 0x414]
call fcn.004012d0
cmp eax, 2
jne 0x403f57
lea ecx, [esp + 0x414]
call fcn.004012c0
push 0x41661c
call fcn.00409f30
jmp 0x403f71
cmp eax, ebx
lea ecx, [esp + 0x414]
je 0x403fa2
call fcn.004012c0
push 0x4165b4
call fcn.00409eb0
add esp, 4
mov dword [esp + 0x4a4c], ebp
lea ecx, [esp + 0x414]
call fcn.00401150
xor al, al
mov ecx, dword [esp + 0x4a44]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4a40
ret
call fcn.004012c0
lea ecx, [esp + 0x414]
mov dword [esp + 0x4a4c], ebp
call fcn.00401150
mov al, 1
jmp 0x403f89