Function at 0x442d50
Capabilities:
Clear file content

Disassembly:
sub esp, 0xc
push ebx
push esi
mov esi, dword [esp + 0x18]
push edi
movsx eax, byte [esi + 0x10c]
mov edi, dword [esi + 0xf0]
mov ebx, dword [esi + 0xac]
dec eax
cmp eax, 6
ja case.default.0x442d77
jmp dword [eax*4 + 0x44305c]
mov edx, dword [esi + 0x118]
and edx, 0xfbffffff
mov eax, edx
mov dword [esi + 0x118], edx
test ah, 0x10
je 0x442dcc
test eax, 0x400000
je 0x442dcc
cmp byte [esi + 0x10d], 2
jne 0x442dcc
lea eax, [esp + 0xc]
push 0
push eax
lea ecx, [esp + 0x18]
push 1
push ecx
push esi
mov byte [esp + 0x24], 0x20
dec ebx
call fcn.004429a0
add esp, 0x14
test eax, eax
jne 0x443052
mov eax, dword [esi + 0x7c]
lea edx, [esp + 0xc]
push 0
push edx
push edi
push eax
push esi
call fcn.004429a0
add esp, 0x14
test eax, eax
jne 0x443052
cmp edi, ebx
jge 0x443001
sub ebx, edi
mov edi, dword [esi + 0x28]
mov ecx, ebx
push 0
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x10]
push eax
push ebx
push ecx
jmp 0x442fd4
mov ecx, dword [esi + 0x118]
lea edx, [esp + 0xc]
push 0
push edx
lea eax, [esp + 0x1c]
push 4
and ecx, 0xfbffffff
push eax
push esi
mov dword [esp + 0x28], edi
mov dword [esi + 0x118], ecx
call fcn.004429a0
add esp, 0x14
test eax, eax
jne 0x443052
mov edx, dword [esi + 0x7c]
lea ecx, [esp + 0xc]
push eax
push ecx
push edi
push edx
push esi
call fcn.004429a0
add esp, 0x14
test eax, eax
jne 0x443052
push eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push 4
push ecx
jmp 0x442fd4
mov cl, byte [esi + 0x11c]
mov edx, dword [esi + 0x28]
test cl, 2
lea eax, [edi + 2]
je 0x442e95
mov byte [edx], ah
mov ecx, dword [esi + 0x28]
mov byte [ecx + 1], al
jmp 0x442e9d
mov byte [edx], al
mov ecx, dword [esi + 0x28]
mov byte [ecx + 1], ah
mov ecx, dword [esi + 0x118]
mov eax, dword [esi + 0x28]
lea edx, [esp + 0xc]
push 0
push edx
push 4
and ecx, 0xfbffffff
push eax
push esi
mov dword [esi + 0x118], ecx
call fcn.004429a0
add esp, 0x14
test eax, eax
jne 0x443052
mov edx, dword [esi + 0x7c]
lea ecx, [esp + 0xc]
push eax
push ecx
push edi
push edx
push esi
call fcn.004429a0
add esp, 0x14
test eax, eax
jne 0x443052
mov eax, edi
cdq
xor eax, edx
sub eax, edx
and eax, 1
xor eax, edx
sub eax, edx
je 0x443001
lea eax, [esp + 0xc]
push 0
push eax
lea ecx, [esp + 0x24]
push 1
mov byte [esp + 0x28], 0
push ecx
jmp 0x442fd4
mov eax, dword [esi + 0x7c]
lea edx, [esp + 0xc]
push 0
push edx
push edi
push eax
push esi
call fcn.004429a0
mov edx, dword [esi + 0x118]
add esp, 0x14
and edx, 0xfbffffff
test eax, eax
mov dword [esi + 0x118], edx
je 0x443001
pop edi
pop esi
pop ebx
add esp, 0xc
ret
mov edx, dword [esi + 0x7c]
lea ecx, [esp + 0xc]
push 0
push ecx
push edi
push edx
push esi
call fcn.004429a0
mov edx, dword [esi + 0x118]
add esp, 0x14
and edx, 0xfbffffff
test eax, eax
mov dword [esi + 0x118], edx
jne 0x443052
push eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push 2
mov byte [esp + 0x1c], 0xd
mov byte [esp + 0x1d], 0xa
push ecx
jmp 0x442fd4
mov eax, dword [esi + 0x7c]
lea edx, [esp + 0xc]
push 0
push edx
push edi
push eax
push esi
call fcn.004429a0
mov edx, dword [esi + 0x118]
add esp, 0x14
and edx, 0xfbffffff
test eax, eax
mov dword [esi + 0x118], edx
jne 0x443052
lea ecx, [esp + 0xc]
push eax
push ecx
lea edx, [esp + 0x18]
push 1
mov byte [esp + 0x1c], 0xd
push edx
push esi
call fcn.004429a0
add esp, 0x14
test eax, eax
je 0x443001
pop edi
pop esi
pop ebx
add esp, 0xc
ret
push 0xeec
push 0x4923dc
push 2
push 0xc0000008
call fcn.0042ea90
add esp, 0x10
test dword [esi + 0x118], 0x80000000
je 0x443050
mov eax, dword [esi + 0xa0]
xor edi, edi
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x443031
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 0x443050
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0xc
ret
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0xc
ret