Function at 0x4022e0
Capabilities:
Delete directory
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x40c7ab
mov eax, dword fs:[0]
push eax
sub esp, 0x454
mov eax, dword [0x4100c4]
xor eax, esp
mov dword [esp + 0x450], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4100c4]
xor eax, esp
push eax
lea eax, [esp + 0x468]
mov dword fs:[0], eax
mov edi, dword [esp + 0x478]
mov eax, dword [esp + 0x480]
push 2
xor ebx, ebx
push ebx
push 0xfffffffffffffffc
push edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x48], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x40234b
or eax, eax
jmp 0x402663
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
lea ecx, [esp + 0x24]
push ecx
push 4
lea edx, [esp + 0x30]
push edx
push edi
mov dword [esp + 0x38], ebx
call ebp
test eax, eax
je 0x40265e
cmp dword [esp + 0x20], 4
jne 0x40265e
mov ecx, dword [esp + 0x47c]
sub ecx, dword [esp + 0x24]
sub ecx, 4
cmp ecx, ebx
jle 0x402657
mov eax, 0xaaaaaaab
mul ecx
mov esi, edx
shr esi, 4
lea eax, [esi + esi*2]
add eax, eax
add eax, eax
add eax, eax
mov edx, ecx
sub edx, eax
jne 0x402657
push 1
push ebx
mov eax, 0xfffffffc
sub eax, ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x40262f
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
xor edi, edi
cmp esi, ebx
mov dword [esp + 0x470], ebx
jle 0x402429
mov eax, dword [esp + 0x1c]
push ebx
lea ecx, [esp + 0x24]
push ecx
push 0x18
lea edx, [esp + 0x48]
push edx
push eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov byte [esp + 0x67], bl
call ebp
test eax, eax
je 0x40260e
cmp dword [esp + 0x20], 0x18
jne 0x40260e
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00402240
add edi, 1
cmp edi, esi
jl 0x4023e1
push 0x103
lea edx, [esp + 0x261]
push ebx
push edx
mov byte [esp + 0x268], bl
call fcn.00402e90
lea eax, [esp + 0x268]
push ebx
push eax
call fcn.00402770
lea ecx, [esp + 0x270]
push ecx
call fcn.00401d90
add esp, 0x18
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
jmp 0x402470
mov esi, dword [esp + 0x2c]
cmp esi, ebx
je 0x402653
mov ecx, dword [esp + 0x30]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x402646
mov edx, dword [esp + 0x14]
mov eax, dword [edx + esi]
mov ecx, dword [esp + 0x1c]
push ebx
lea ebp, [edx + esi]
push ebx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x40261e
lea edx, [esp + 0x360]
push edx
call fcn.004028a0
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x15c]
push eax
push ecx
call fcn.00402820
lea edx, [esp + 0x164]
push 0x2e
push edx
call fcn.00402e35
add esp, 0x14
cmp eax, ebx
je 0x4024f3
mov byte [eax], bl
lea edi, [esp + 0x158]
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
cmp al, bl
jne 0x402500
mov ax, word [0x40d214]
mov word [edi], ax
lea eax, [ebp + 8]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
cmp dl, bl
jne 0x402518
lea edi, [esp + 0x158]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
nop
mov cl, byte [edi + 1]
add edi, 1
cmp cl, bl
jne 0x402530
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x360]
mov byte [esp + eax + 0x54], cl
add eax, 1
cmp cl, bl
jne 0x402550
lea edi, [esp + 0x54]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
cmp al, bl
jne 0x402570
mov cx, word [0x40d210]
lea eax, [esp + 0x158]
mov word [edi], cx
mov esi, eax
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x402590
lea edi, [esp + 0x54]
sub eax, esi
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
cmp cl, bl
jne 0x4025a2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x360]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call fcn.00402970
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x58]
push eax
push ecx
push edx
call fcn.00401040
mov esi, eax
lea eax, [esp + 0x64]
push eax
call fcn.004027a0
add esp, 0x14
lea ecx, [esp + 0x360]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
cmp esi, ebx
jne 0x402636
add dword [esp + 0x18], 1
add dword [esp + 0x14], 0x18
mov edi, dword [esp + 0x18]
jmp 0x402470
lea ecx, [esp + 0x28]
call fcn.00401c40
mov eax, 0xfffffffa
jmp 0x402663
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x40262f
push eax
call fcn.00402c18
add esp, 4
mov eax, 0xfffffffc
jmp 0x402663
lea ecx, [esp + 0x28]
call fcn.00401c40
mov eax, 0xfffffff9
jmp 0x402663
cmp esi, ebx
je 0x402653
push esi
call fcn.00402c18
add esp, 4
xor eax, eax
jmp 0x402663
mov eax, 0xfffffffd
jmp 0x402663
mov eax, 0xfffffffe
mov ecx, dword [esp + 0x468]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x450]
xor ecx, esp
call fcn.00402e48
add esp, 0x460
ret