Function at 0x42c220
Capabilities:
Clear file content

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esi + 0x2c]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0xa8]
sub edi, ecx
lea ebp, [edi + 4]
cmp ebp, eax
jbe 0x42c28b
push 0x200
push esi
call fcn.00432220
add esp, 8
test eax, eax
je 0x42c28b
push 4
push esi
call fcn.00432220
add esp, 8
test eax, eax
je 0x42c28b
cmp edi, dword [esi + 0xa8]
ja 0x42c270
cmp byte [esi + 0x10c], 1
je 0x42c28b
push esi
push 0xc0000042
push 0xc0000042
push 1
call fcn.0042eac0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
movsx eax, byte [esi + 0x10c]
dec eax
cmp eax, 6
ja case.default.0x42c29c
jmp dword [eax*4 + 0x42c494]
mov ecx, dword [esi + 0xac]
cmp edi, ecx
jae case.0x42c29c.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 + 0xac]
jmp case.0x42c29c.5
mov cl, byte [esi + 0x11c]
lea eax, [edi - 4]
test cl, 2
mov dword [esp + 0x18], eax
je 0x42c304
mov ecx, dword [esi + 0x28]
mov dl, byte [esp + 0x1b]
mov byte [ecx], dl
mov edi, dword [esi + 0x28]
mov cl, byte [esp + 0x1a]
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 0x42c323
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 [esp + 0x1a]
mov byte [edx + 2], cl
mov edi, dword [esi + 0x28]
mov dl, byte [esp + 0x1b]
mov byte [edi + 3], dl
mov bl, byte [esi + 0x11c]
mov edi, dword [esi + 0x2c]
test bl, 2
je 0x42c34c
mov byte [edi], dl
mov edx, dword [esi + 0x2c]
mov edi, ebp
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.0x42c29c.5
mov byte [edi], al
mov edi, dword [esi + 0x2c]
mov byte [edi + 1], ah
mov eax, dword [esi + 0x2c]
mov edi, ebp
mov byte [eax + 2], cl
mov ecx, dword [esi + 0x2c]
mov byte [ecx + 3], dl
jmp case.0x42c29c.5
mov cl, byte [esi + 0x11c]
mov edx, dword [esi + 0x28]
test cl, 2
lea eax, [edi - 2]
je 0x42c37f
mov byte [edx], ah
mov ecx, dword [esi + 0x28]
mov byte [ecx + 1], al
jmp 0x42c387
mov byte [edx], al
mov ecx, dword [esi + 0x28]
mov byte [ecx + 1], ah
mov eax, edi
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
je case.0x42c29c.5
mov edx, dword [esi + 0x28]
inc edi
mov byte [edi + edx - 1], 0
jmp case.0x42c29c.5
mov eax, dword [esi + 0x28]
inc edi
mov byte [edi + eax - 1], 0xd
mov ecx, dword [esi + 0x28]
mov byte [edi + ecx], 0xa
inc edi
jmp case.0x42c29c.5
mov edx, dword [esi + 0x28]
inc edi
mov byte [edi + edx - 1], 0xd
jmp case.0x42c29c.5
push 0x1a5
push 0x48d2b8
push 2
push 0xc0000008
call fcn.0042ea90
add esp, 0x10
mov eax, dword [esi + 0x120]
mov ecx, dword [esi + 0xfc]
mov edx, eax
push ecx
shr edx, 7
mov ecx, dword [esi + 0x28]
and edx, 1
shr eax, 6
and eax, 1
push edx
mov edx, dword [esi + 0xa0]
push eax
lea eax, [esp + 0x1c]
push 0
push eax
push edi
push ecx
push edx
call fcn.0042d650
mov edi, dword [esi + 0x118]
add esp, 0x20
and edi, 0xfbffffff
cmp eax, 0xffffffff
mov dword [esi + 0x118], edi
mov ecx, edi
jne 0x42c441
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xa4], eax
mov eax, 0xc0000026
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
test ecx, 0x80000000
je 0x42c48b
mov eax, dword [esi + 0xa0]
xor edi, edi
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x42c46d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xa4], eax
mov edi, 0xc0000026
mov ecx, dword [esi + 0x118]
and ecx, 0x7fffffff
test edi, edi
mov dword [esi + 0x118], ecx
je 0x42c48b
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret