Function at 0x429a40
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 0x429a57
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 0x429ab7
push 0x200
push esi
call fcn.00429040
add esp, 8
test eax, eax
je 0x429ab7
push 4
push esi
call fcn.00429040
add esp, 8
test eax, eax
je 0x429ab7
cmp edi, dword [esi + 0xac]
ja 0x429a9b
cmp byte [esi + 0x110], 1
je 0x429ab7
push esi
push 0xc0000042
push 0xc0000042
push 1
call fcn.00423e40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsx eax, byte [esi + 0x110]
dec eax
cmp eax, 6
ja case.default.0x429ac8
jmp dword [eax*4 + 0x429d3c]
mov ecx, dword [esi + 0xb0]
cmp edi, ecx
jae case.0x429ac8.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.0x429ac8.5
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x429b4c
mov eax, dword [esi + 0x2c]
mov dl, byte [esi + 0x120]
sub eax, ecx
sub eax, 4
test dl, 2
mov dword [ebp + 8], eax
je 0x429b36
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 0x429b99
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 0x429b93
mov cl, byte [esi + 0x120]
lea eax, [edi - 4]
test cl, 2
mov dword [ebp + 8], eax
je 0x429b7c
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 0x429b99
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 + 0x120]
mov edi, dword [esi + 0x2c]
test bl, 2
je 0x429bc3
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.0x429ac8.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.0x429ac8.5
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x429c1b
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.0x429ac8.5
mov eax, dword [esi + 0x30]
inc edi
mov byte [edi + eax - 1], 0
jmp case.0x429ac8.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.0x429ac8.5
mov eax, dword [esi + 0x28]
inc edi
mov byte [edi + eax - 1], 0
jmp case.0x429ac8.5
mov eax, dword [esi + 0x30]
test eax, eax
je 0x429c5a
mov byte [edi + eax], 0xd
mov ecx, dword [esi + 0x30]
inc edi
mov byte [edi + ecx], 0xa
inc edi
jmp case.0x429ac8.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.0x429ac8.5
mov eax, dword [esi + 0x30]
test eax, eax
je 0x429c7b
mov byte [edi + eax], 0xd
inc edi
jmp case.0x429ac8.5
mov ecx, dword [esi + 0x28]
inc edi
mov byte [ecx + edi - 1], 0xd
jmp case.0x429ac8.5
push 0x1ce
push 0x473728
push 2
push 0xc0000008
call fcn.00423e10
add esp, 0x10
mov eax, dword [esi + 0x30]
push edi
test eax, eax
je 0x429caa
push eax
jmp 0x429cae
mov edx, dword [esi + 0x28]
push edx
push esi
call fcn.0042b000
mov edi, dword [esi + 0x11c]
add esp, 0xc
and edi, 0xfbffffff
cmp eax, 0xffffffff
mov dword [esi + 0x11c], edi
mov ecx, edi
jne 0x429ce8
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 0x429d33
mov eax, dword [esi + 0xa4]
xor edi, edi
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x429d14
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xa8], eax
mov edi, 0xc0000026
mov ecx, dword [esi + 0x11c]
and ecx, 0x7fffffff
test edi, edi
mov dword [esi + 0x11c], ecx
je 0x429d33
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