Function at 0x453bfc
Capabilities:
Clear file content

Disassembly:
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
push ebx
push dword [esi + 0x80]
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x453aa0
xor eax, eax
and byte [esi + 0x15c], 0xbf
test eax, eax
jne 0x4537cf
movsx eax, byte [esi + 0x144]
cmp eax, 8
je 0x453a92
xor edx, edx
mov byte [ebp + edx - 0x14], 0xa
lea eax, [ebp - 0x14]
add edx, 1
push edx
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x453a74
jmp 0x4539e9
movzx eax, byte [esi + 0x15d]
test al, 8
je 0x453a31
push dword [esi + 0xd4]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x453a08
xor eax, eax
jmp 0x453a19
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
and byte [esi + 0x15d], 0xf7
test eax, eax
je 0x453a31
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor eax, eax
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 8]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
mov byte [ebp - 0x14], 0xd
mov edx, 1
jmp 0x453835
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
jmp 0x453818
push ebp
mov ebp, esp
sub esp, 0x50
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], ebx
mov esi, eax
mov edx, dword [esi + 0x40]
mov ebx, dword [esi + 0x3c]
mov dword [ebp - 0x10], 0
test edx, edx
je 0x453c22
sub ebx, edx
jmp 0x453c27
mov eax, dword [esi + 0x38]
sub ebx, eax
movsx eax, byte [esi + 0x144]
mov edi, ebx
add edi, dword [esi + 0x108]
cmp eax, 1
je 0x453cb4
cmp eax, 3
je 0x453cb4
test ebx, ebx
je 0x453cad
test edx, edx
jne 0x453c4b
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x128]
cmp ecx, 0xb
jne 0x453c88
cmp eax, 5
je 0x453c60
cmp eax, 4
jne 0x453c88
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x3c], ecx
cmp eax, 5
je 0x454095
mov dword [esp + 0xc], 1
mov eax, esi
mov ecx, ebx
call fcn.00453484
mov edi, dword [esi + 0x108]
jmp 0x453c9e
push ebx
push edx
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4540c2
xor eax, eax
test eax, eax
jne 0x45401b
movsx eax, byte [esi + 0x144]
and byte [esi + 0x15c], 0xbf
lea edx, [eax - 1]
cmp edx, 7
ja case.default.0x453cc7
mov edx, dword [eax*4 + 0x4bb8d8]
jmp edx
mov byte [ebp - 0x24], 0xd
lea eax, [ebp - 0x24]
push 1
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4540d8
jmp case.0x453cc7.6
cmp eax, 8
je 0x454114
xor edx, edx
mov byte [ebp + edx - 0x24], 0xa
lea eax, [ebp - 0x24]
add edx, 1
push edx
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4540f6
jmp case.0x453cc7.6
mov ecx, dword [esi + 0x40]
mov eax, ebx
shl eax, 0x10
add eax, 0xfffe0000
shr eax, 0x10
mov edx, eax
mov word [ebp - 0x40], ax
test ecx, ecx
je 0x454156
mov byte [ecx], dl
mov edx, dword [esi + 0x40]
shr eax, 8
mov byte [edx + 1], al
mov eax, dword [esi + 0x40]
test eax, eax
jne 0x453d4c
mov eax, dword [esi + 0x38]
push ebx
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x454140
xor eax, eax
and byte [esi + 0x15c], 0xbf
test eax, eax
jne 0x45401b
and ebx, 1
je case.0x453cc7.6
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x28]
push 1
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x454122
jmp case.0x453cc7.6
mov eax, dword [esi + 0x13c]
add edi, 0xfffffffc
test eax, eax
je 0x453db1
mov eax, edi
neg eax
mov dword [ebp - 0x40], eax
jmp 0x453db4
mov dword [ebp - 0x40], edi
movzx eax, byte [esi + 0x15d]
test al, 0x20
je 0x453df8
lea ebx, [ebp - 0x3d]
movzx eax, byte [ebx]
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x10], al
lea eax, [ebp - 0xf]
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x3e]
movzx ecx, byte [edx]
mov dword [ebp - 0x1c], edx
lea edx, [ebp - 0xe]
mov byte [eax], cl
lea eax, [ebp - 0x3f]
mov dword [ebp - 0x18], eax
movzx eax, byte [eax]
mov dword [ebp - 0x3c], edx
lea ebx, [ebp - 0xd]
mov byte [edx], al
movzx eax, byte [ebp - 0x40]
mov byte [ebx], al
jmp 0x453e2f
movzx ebx, byte [ebp - 0x40]
mov byte [ebp - 0x10], bl
lea ecx, [ebp - 0xf]
mov dword [ebp - 0x20], ecx
lea eax, [ebp - 0x3f]
movzx edx, byte [eax]
mov dword [ebp - 0x18], eax
mov byte [ecx], dl
lea edx, [ebp - 0xe]
mov dword [ebp - 0x3c], edx
lea eax, [ebp - 0x3e]
mov dword [ebp - 0x1c], eax
lea ebx, [ebp - 0xd]
movzx eax, byte [eax]
mov byte [edx], al
lea eax, [ebp - 0x3d]
mov dword [ebp - 0x14], eax
movzx eax, byte [eax]
mov byte [ebx], al
lea eax, [ebp - 0x10]
push 4
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4541c4
movzx eax, byte [esi + 0x15f]
test al, 2
jne case.0x453cc7.6
lea edx, [ebp - 0x34]
push 1
push edx
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
push 0
push dword [esi + 0xd4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x38], eax
cmp eax, 0xffffffff
jne 0x453e8f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x453e8f
mov eax, 0xffffffff
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov ecx, dword [esi + 0x104]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
mov edx, dword [esi + 0x100]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
lea eax, [ebp - 0x2c]
push 0
push eax
push edx
push dword [esi + 0xd4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x30], eax
cmp eax, 0xffffffff
jne 0x453edd
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x453edd
mov eax, 0xffffffff
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
add edx, 1
add eax, 1
or edx, eax
je 0x4541a6
movzx eax, byte [esi + 0x162]
test al, 0x20
je 0x453f0c
and eax, 0xffffffdf
mov byte [esi + 0x162], al
neg edi
mov dword [ebp - 0x40], edi
jmp 0x453f0f
mov dword [ebp - 0x40], edi
movzx eax, byte [esi + 0x15d]
test al, 0x20
je 0x453f41
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edi]
movzx ecx, byte [edx]
mov edx, dword [ebp - 0x3c]
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x20]
mov byte [eax], cl
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
mov byte [edx], al
movzx eax, byte [ebp - 0x40]
mov byte [ebx], al
jmp 0x453f66
movzx eax, byte [ebp - 0x40]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
movzx edx, byte [edi]
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax]
mov byte [ecx], dl
mov edx, dword [ebp - 0x3c]
mov byte [edx], al
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
mov byte [ebx], al
lea eax, [ebp - 0x10]
push 4
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x454188
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x3c]
push 0
push edx
push ecx
push dword [esi + 0xd4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x40], eax
cmp eax, 0xffffffff
jne 0x453fba
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x453fba
mov eax, 0xffffffff
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
add edx, 1
add eax, 1
or edx, eax
jne case.0x453cc7.6
jmp 0x45416a
mov eax, dword [esi + 0xe4]
cmp ebx, eax
jae 0x453fef
sub eax, ebx
push eax
push 0
push dword [esi + 0x3c]
call fcn.004a3ab8
add esp, 0xc
mov ebx, dword [esi + 0xe4]
mov eax, dword [esi + 0x40]
test eax, eax
je 0x4541f8
push ebx
push eax
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4541e2
xor eax, eax
and byte [esi + 0x15c], 0xbf
test eax, eax
je case.0x453cc7.6
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
push 0xf41
push str.for_wseq.c
push 2
push 8
call fcn.00434a44
add esp, 0x10
movzx eax, byte [esi + 0x15d]
test al, 8
je 0x454086
push dword [esi + 0xd4]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x45405d
xor eax, eax
jmp 0x45406e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
and byte [esi + 0x15d], 0xf7
test eax, eax
je 0x454086
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
xor eax, eax
mov esp, ebp
pop ebp
ret
push ebx
push edx
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
je 0x4540ac
xor eax, eax
jmp 0x453c80
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
jmp 0x453c80
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
jmp 0x453c9e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
mov byte [ebp - 0x24], 0xd
mov edx, 1
jmp 0x453cf5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
jmp 0x453d62
movzx eax, byte [ebp - 0x3f]
mov edi, dword [esi + 0x38]
mov byte [edi], dl
mov edx, dword [esi + 0x38]
mov byte [edx + 1], al
jmp 0x453d42
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 4]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
jmp 0x454010
push ebx
push dword [esi + 0x38]
push esi
call fcn.00439648
add esp, 0xc
cmp eax, 0xffffffff
jne 0x45400e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
jmp 0x454010