Function at 0x5abc00
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
test eax, eax
jne 0x5abc17
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0xac]
sub edi, eax
lea eax, [edi + 4]
cmp eax, ecx
mov dword [ebp - 4], eax
jbe 0x5abc77
push 0x200
push esi
call fcn.005aa940
add esp, 8
test eax, eax
je 0x5abc77
push 4
push esi
call fcn.005aa940
add esp, 8
test eax, eax
je 0x5abc77
cmp edi, dword [esi + 0xac]
ja 0x5abc5b
cmp byte [esi + 0x10c], 1
je 0x5abc77
push esi
push 0xc0000042
push 0xc0000042
push 1
call fcn.005a4200
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsx eax, byte [esi + 0x10c]
dec eax
cmp eax, 6
ja case.default.0x5abc88
jmp dword [eax*4 + 0x5abefc]
mov ecx, dword [esi + 0xb0]
cmp edi, ecx
jae case.0x5abc88.5
sub ecx, edi
mov edi, dword [esi + 0x2c]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esi + 0xb0]
jmp case.0x5abc88.5
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x5abd0c
mov eax, dword [esi + 0x2c]
mov dl, byte [esi + 0x11c]
sub eax, ecx
sub eax, 4
test dl, 2
mov dword [ebp + 8], eax
je 0x5abcf6
mov dl, byte [ebp + 0xb]
mov byte [ecx], dl
mov edi, dword [esi + 0x30]
mov cl, byte [ebp + 0xa]
mov byte [edi + 1], cl
mov edi, dword [esi + 0x30]
mov byte [edi + 2], ah
mov edi, dword [esi + 0x30]
mov byte [edi + 3], al
jmp 0x5abd59
mov byte [ecx], al
mov ecx, dword [esi + 0x30]
mov byte [ecx + 1], ah
mov edx, dword [esi + 0x30]
mov cl, byte [ebp + 0xa]
mov byte [edx + 2], cl
mov edi, dword [esi + 0x30]
jmp 0x5abd53
mov cl, byte [esi + 0x11c]
lea eax, [edi - 4]
test cl, 2
mov dword [ebp + 8], eax
je 0x5abd3c
mov ecx, dword [esi + 0x28]
mov dl, byte [ebp + 0xb]
mov byte [ecx], dl
mov edi, dword [esi + 0x28]
mov cl, byte [ebp + 0xa]
mov byte [edi + 1], cl
mov edi, dword [esi + 0x28]
mov byte [edi + 2], ah
mov edi, dword [esi + 0x28]
mov byte [edi + 3], al
jmp 0x5abd59
mov edx, dword [esi + 0x28]
mov byte [edx], al
mov ecx, dword [esi + 0x28]
mov byte [ecx + 1], ah
mov edx, dword [esi + 0x28]
mov cl, byte [ebp + 0xa]
mov byte [edx + 2], cl
mov edi, dword [esi + 0x28]
mov dl, byte [ebp + 0xb]
mov byte [edi + 3], dl
mov bl, byte [esi + 0x11c]
mov edi, dword [esi + 0x2c]
test bl, 2
je 0x5abd83
mov byte [edi], dl
mov edx, dword [esi + 0x2c]
mov edi, dword [ebp - 4]
mov byte [edx + 1], cl
mov ecx, dword [esi + 0x2c]
mov byte [ecx + 2], ah
mov edx, dword [esi + 0x2c]
mov byte [edx + 3], al
jmp case.0x5abc88.5
mov byte [edi], al
mov edi, dword [esi + 0x2c]
mov byte [edi + 1], ah
mov eax, dword [esi + 0x2c]
mov edi, dword [ebp - 4]
mov byte [eax + 2], cl
mov ecx, dword [esi + 0x2c]
mov byte [ecx + 3], dl
jmp case.0x5abc88.5
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x5abddb
mov ax, word [esi + 0x2c]
sub ax, word [esi + 0x30]
sub eax, 2
mov byte [ecx], al
mov edx, dword [esi + 0x30]
mov byte [edx + 1], ah
mov eax, edi
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
je case.0x5abc88.5
mov eax, dword [esi + 0x30]
inc edi
mov byte [edi + eax - 1], 0
jmp case.0x5abc88.5
mov ecx, dword [esi + 0x28]
lea eax, [edi - 2]
mov byte [ecx], al
mov edx, dword [esi + 0x28]
mov byte [edx + 1], ah
mov eax, edi
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
je case.0x5abc88.5
mov eax, dword [esi + 0x28]
inc edi
mov byte [edi + eax - 1], 0
jmp case.0x5abc88.5
mov eax, dword [esi + 0x30]
test eax, eax
je 0x5abe1a
mov byte [edi + eax], 0xd
mov ecx, dword [esi + 0x30]
inc edi
mov byte [edi + ecx], 0xa
inc edi
jmp case.0x5abc88.5
mov edx, dword [esi + 0x28]
inc edi
mov byte [edi + edx - 1], 0xd
mov eax, dword [esi + 0x28]
mov byte [edi + eax], 0xa
inc edi
jmp case.0x5abc88.5
mov eax, dword [esi + 0x30]
test eax, eax
je 0x5abe3b
mov byte [edi + eax], 0xd
inc edi
jmp case.0x5abc88.5
mov ecx, dword [esi + 0x28]
inc edi
mov byte [ecx + edi - 1], 0xd
jmp case.0x5abc88.5
push 0x1d6
push 0x636b2c
push 2
push 0xc0000008
call fcn.005a41d0
add esp, 0x10
mov eax, dword [esi + 0x30]
push edi
test eax, eax
je 0x5abe6a
push eax
jmp 0x5abe6e
mov edx, dword [esi + 0x28]
push edx
push esi
call fcn.005acfe0
mov edi, dword [esi + 0x118]
add esp, 0xc
and edi, 0xfbffffff
cmp eax, 0xffffffff
mov dword [esi + 0x118], edi
mov ecx, edi
jne 0x5abea8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xa8], eax
mov eax, 0xc0000026
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, 0x80000000
je 0x5abef3
mov eax, dword [esi + 0xa4]
xor edi, edi
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x5abed4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xa8], eax
mov edi, 0xc0000026
mov ecx, dword [esi + 0x118]
and ecx, 0x7fffffff
test edi, edi
mov dword [esi + 0x118], ecx
je 0x5abef3
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret