Function at 0x428664
Capabilities:
Clear file content
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x67c
mov eax, dword [0x42d0b4]
xor eax, esp
mov dword [esp + 0x678], eax
push ebx
push esi
push edi
mov eax, 0x104
mov dword [esp + 0x30], edx
push eax
mov esi, ecx
mov dword [esp + 0x24c], eax
xor ecx, ecx
lea eax, [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x30], ecx
push ecx
inc ebx
mov dword [esp + 0x248], ecx
push eax
or edi, 0xffffffff
mov byte [esp + 0x250], bl
call sub.msvcrt.dll_memset
add esp, 0xc
mov byte [esp + 0x674], bl
mov eax, 0x104
xor ecx, ecx
mov dword [esp + 0x678], eax
mov dword [esp + 0x670], ecx
push eax
push ecx
lea eax, [esp + 0x470]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov byte [esp + 0x45c], bl
mov eax, 0x104
xor ecx, ecx
mov dword [esp + 0x460], eax
mov dword [esp + 0x458], ecx
push eax
push ecx
lea eax, [esp + 0x258]
push eax
call sub.msvcrt.dll_memset
xor eax, eax
lea ecx, [esp + 0x44]
add esp, 0xc
cmp byte [esp + 0x244], al
sete al
dec eax
and eax, 0x7ee3
add eax, 0x104
push eax
call fcn.00410c70
test eax, eax
js 0x428e1a
xor eax, eax
lea ecx, [esp + 0x468]
cmp byte [esp + 0x674], al
sete al
dec eax
and eax, 0x7ee3
add eax, 0x104
push eax
call fcn.00410c70
test eax, eax
js 0x428e1a
xor eax, eax
lea ecx, [esp + 0x250]
cmp byte [esp + 0x45c], al
sete al
dec eax
and eax, 0x7ee3
add eax, 0x104
push eax
call fcn.00410c70
test eax, eax
js 0x428e1a
xor eax, eax
mov ecx, 0xfe00
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040585f
mov dword [esp + 0x1c], eax
test eax, eax
je 0x428e1a
cmp dword [0x42d560], 0
je 0x4287f3
push ebx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x30]
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.0040585f
mov dword [esp + 0x2c], eax
test eax, eax
je 0x428e1a
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x14]
jb 0x4287fb
mov eax, dword [esp + 0x14]
jmp 0x4287f7
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov esi, dword [esi + 0x20]
mov dword [esp + 0x28], esi
mov ecx, dword [esi]
call fcn.0040ad44
test eax, eax
jne 0x42881f
mov esi, dword [esi + 0x20]
mov dword [esp + 0x28], esi
test esi, esi
jne 0x428802
mov ebx, eax
jmp 0x428e1a
mov edx, dword [esi]
lea eax, [esp + 0x18]
push eax
push dword [esi + 0x18]
xor eax, eax
mov ecx, fcn.00416a00
push eax
push 0x21
call fcn.004168ba
and dword [esi + 0x1c], 0xffff3fff
mov eax, dword [esi + 0x1c]
test al, 4
je 0x42884f
and eax, 0xfffffffb
or eax, 2
mov dword [esi + 0x1c], eax
cmp dword [0x42d544], 0
jne 0x428e11
mov edx, dword [esp + 0x670]
test edx, edx
jne 0x42886e
lea edx, [esp + 0x468]
push dword [esp + 0x678]
mov ecx, esi
call fcn.0040579c
cmp eax, ebx
je 0x428e11
push dword [esi + 4]
push 0x4021b8
call fcn.004125d9
mov eax, dword [esp + 0x248]
pop ecx
pop ecx
test eax, eax
jne 0x4288a2
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x30]
mov ecx, esi
push 0
push dword [esp + 0x24c]
push eax
call fcn.00405226
cmp eax, ebx
je 0x428e11
mov edx, dword [esp + 0x240]
mov eax, edx
test edx, edx
jne 0x4288d0
lea eax, [esp + 0x38]
xor ecx, ecx
cmp word [eax], cx
je 0x428d34
test edx, edx
jne 0x4288e3
lea edx, [esp + 0x38]
mov ecx, dword [esi + 4]
call fcn.00428f66
mov ecx, dword [esi + 4]
test eax, eax
je 0x42890e
push dword [esp + 0x24]
mov edx, esi
push dword [esp + 0x20]
call fcn.00428e52
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
jmp 0x428b4a
mov edx, dword [esi + 0x1c]
push ecx
and edx, 0x800
push ecx
shl edx, 0xa
call fcn.00405db5
mov esi, eax
cmp esi, 0xffffffff
je 0x428e06
mov ecx, esi
call fcn.00410178
test eax, eax
je 0x428942
mov ecx, 0x80
mov dword [esp + 0x24], ecx
jmp 0x428946
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x428955
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x1c]
push eax
push edi
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x28]
push edi
push eax
push ecx
mov ecx, esi
call fcn.00405712
cmp dword [0x443cf0], 0
mov dword [esp + 0x34], eax
jne 0x428e00
mov ecx, dword [esp + 0x240]
test ecx, ecx
jne 0x42898d
lea ecx, [esp + 0x38]
push ecx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
mov ecx, dword [esp + 0x240]
test al, 2
jne 0x4289d2
test ecx, ecx
jne 0x4289a7
lea ecx, [esp + 0x38]
call fcn.004043a0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
je 0x428df3
push eax
call dword [sym.imp.msvcrt.dll__get_osfhandle]
pop ecx
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetEndOfFile]
mov ecx, dword [esp + 0x10]
jmp 0x4289ed
test ecx, ecx
jne 0x4289da
lea ecx, [esp + 0x38]
push ecx
push ecx
mov edx, ebx
call fcn.00405db5
mov ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0xffffffff
je 0x428df3
cmp dword [0x42d5cc], 0
je 0x428a85
cmp dword [esp + 0x20], 0
jle 0x428a78
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x428a19
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x1c]
push esi
push eax
push dword [esp + 0x28]
call fcn.0042916c
cmp dword [0x42d560], 0
mov ecx, dword [esp + 0x10]
je 0x428a78
call fcn.00410178
test eax, eax
jne 0x428a74
mov edx, dword [esp + 0x240]
test edx, edx
jne 0x428a4d
lea edx, [esp + 0x38]
push dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.004284fe
cmp eax, ebx
je 0x428d89
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
jmp 0x428a78
mov ecx, dword [esp + 0x10]
cmp dword [0x42d5cc], 0
jne 0x428b38
mov eax, dword [esp + 0x34]
jmp 0x428a8f
mov ecx, dword [esp + 0x10]
cmp eax, ebx
jne 0x428b38
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x428aa6
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x1c]
push esi
push eax
push dword [esp + 0x28]
call fcn.0042916c
cmp dword [0x42d560], 0
mov ecx, dword [esp + 0x10]
je 0x428b05
call fcn.00410178
test eax, eax
jne 0x428b01
mov edx, dword [esp + 0x240]
test edx, edx
jne 0x428ada
lea edx, [esp + 0x38]
push dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.004284fe
cmp eax, ebx
je 0x428dab
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
jmp 0x428b05
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x428b14
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edi
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
push dword [esp + 0x34]
call fcn.00405712
cmp dword [0x42d5cc], 0
je 0x428a8b
xor eax, eax
mov ecx, esi
mov dword [0x42d5cc], eax
call fcn.0040db92
mov esi, dword [esp + 0x28]
mov edi, dword [esi + 0x20]
xor eax, eax
mov dword [0x42d564], eax
test edi, edi
je 0x428d23
mov eax, dword [edi + 0x1c]
test al, 4
je 0x428b6c
and eax, 0xfffffffb
or eax, 2
mov dword [edi + 0x1c], eax
mov ecx, dword [esp + 0x458]
test ecx, ecx
jne 0x428b7e
lea ecx, [esp + 0x250]
push dword [esi + 4]
mov edx, dword [esp + 0x464]
push dword [edi]
call fcn.00405400
test eax, eax
je 0x428b9e
xor ecx, ecx
push ecx
push eax
call fcn.0040c108
jmp 0x428bbb
mov eax, dword [esp + 0x458]
test eax, eax
jne 0x428bb0
lea eax, [esp + 0x250]
push eax
push 0x4021b8
call fcn.004125d9
pop ecx
pop ecx
mov ecx, dword [esp + 0x458]
test ecx, ecx
jne 0x428bcf
lea ecx, [esp + 0x250]
call fcn.0040ad44
test eax, eax
je 0x428d16
mov edx, dword [esp + 0x240]
test edx, edx
jne 0x428beb
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x458]
test ecx, ecx
jne 0x428bfd
lea ecx, [esp + 0x250]
call fcn.00428f66
test eax, eax
je 0x428c1a
xor eax, eax
push eax
push 0x2340
call fcn.0040c108
pop ecx
pop ecx
jmp 0x428d16
mov ecx, dword [esp + 0x458]
test ecx, ecx
jne 0x428c2c
lea ecx, [esp + 0x250]
push ecx
push ecx
xor edx, edx
call fcn.00405db5
mov esi, eax
cmp esi, 0xffffffff
je 0x428dd7
mov ecx, esi
call fcn.00410178
test eax, eax
je 0x428cf3
mov ecx, 0x80
mov dword [esp + 0x24], ecx
jmp 0x428cf7
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x428c6c
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x14]
lea eax, [esp + 0x28]
push edi
push eax
push ecx
mov ecx, esi
call fcn.00405712
test eax, eax
je 0x428d04
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x428c96
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
push esi
push eax
push dword [esp + 0x28]
call fcn.0042916c
cmp dword [0x42d560], 0
je 0x428cf3
mov ecx, dword [esp + 0x10]
call fcn.00410178
test eax, eax
jne 0x428cf3
mov edx, dword [esp + 0x240]
test edx, edx
jne 0x428cce
lea edx, [esp + 0x38]
push dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.004284fe
cmp eax, ebx
je 0x428dc1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x24]
cmp dword [0x42d5cc], 0
je 0x428c5d
xor eax, eax
mov ecx, esi
mov dword [0x42d5cc], eax
call fcn.0040db92
mov esi, dword [esp + 0x28]
mov edi, dword [edi + 0x20]
test edi, edi
jne 0x428b5c
xor eax, eax
mov edi, dword [esp + 0x10]
mov ecx, esi
mov edx, dword [esp + 0x30]
push eax
push edi
call fcn.004056ae
push dword [esp + 0x18]
mov edx, dword [esi + 0x18]
mov ecx, fcn.00416a00
push 0x21
call fcn.00416a1c
test al, al
jne 0x428838
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
push dword [esp + 0x458]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
push dword [esp + 0x670]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
push dword [esp + 0x240]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
xor eax, eax
jmp 0x428e3d
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
mov ecx, esi
call fcn.0040db92
mov ecx, dword [esp + 0x14]
call fcn.0040db92
mov edx, ebx
xor ecx, ecx
call fcn.004285e9
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
mov ecx, esi
call fcn.0040db92
mov ecx, dword [esp + 0x14]
jmp 0x428d9d
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
mov ecx, esi
call fcn.0040db92
mov ecx, dword [esp + 0x14]
jmp 0x428d9d
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
mov ecx, dword [esp + 0x10]
call fcn.0040db92
push 0x6e
pop ecx
call fcn.0042985a
jmp 0x428da2
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
mov ecx, esi
jmp 0x428de4
mov ecx, dword [esp + 0x18]
jmp 0x428df7
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
jmp 0x428de9
mov ecx, dword [esp + 0x18]
call fcn.0040cd27
lea ecx, [esp + 0x250]
call fcn.00410de8
lea ecx, [esp + 0x468]
call fcn.00410de8
lea ecx, [esp + 0x38]
call fcn.00410de8
mov eax, ebx
mov ecx, dword [esp + 0x684]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00416fd0
mov esp, ebp
pop ebp
ret