Function at 0x422c8d
Capabilities:
Write file on windows

Disassembly:
push 0x4a4
mov eax, 0x449892
call fcn.00431dc6
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x430]
mov dword [ebp - 0x418], 0xf
call fcn.00402b95
push str.Task_object:
lea ecx, [ebp - 0x478]
mov dword [ebp - 4], ebx
call fcn.00402e51
lea ecx, [esi + 0xc]
push ecx
push eax
lea eax, [ebp - 0x450]
push eax
mov byte [ebp - 4], 1
call fcn.0041f5ed
add esp, 0xc
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 2
mov edx, dword [esi + 0xf4]
pop ecx
call fcn.0041ec8f
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x450]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], bl
call fcn.00402b4a
push str.Get_user_temporary_directory...:
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 3
mov edx, dword [esi + 0xf4]
pop ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
push str..downinfo
lea ecx, [ebp - 0x450]
call fcn.00402e51
push eax
lea eax, [esi + 0xc]
push eax
lea eax, [ebp - 0x478]
push eax
mov byte [ebp - 4], 4
call fcn.0041f5ed
add esp, 0xc
push 0xffffffffffffffff
push ebx
lea ecx, [esi + 0x94]
push eax
mov byte [ebp - 4], 5
call fcn.00402bb1
push ebx
push edi
lea ecx, [ebp - 0x478]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
push str..down
lea ecx, [ebp - 0x450]
call fcn.00402e51
push eax
lea eax, [esi + 0xc]
push eax
lea eax, [ebp - 0x478]
push eax
mov byte [ebp - 4], 6
call fcn.0041f5ed
add esp, 0xc
push 0xffffffffffffffff
push ebx
lea ecx, [esi + 0x78]
push eax
mov byte [ebp - 4], 7
call fcn.00402bb1
push ebx
push edi
lea ecx, [ebp - 0x478]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
push str.Temporary_file_is:
lea ecx, [ebp - 0x450]
call fcn.00402e51
lea ecx, [esi + 0x78]
push ecx
push eax
lea eax, [ebp - 0x478]
push eax
mov byte [ebp - 4], 8
call fcn.0041f5ed
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x430]
mov byte [ebp - 4], 9
call fcn.00402bb1
push ebx
push edi
lea ecx, [ebp - 0x478]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
mov edx, dword [esi + 0xf4]
push 0xfffffffffffffffe
push 2
pop ecx
lea eax, [ebp - 0x430]
call fcn.0041ec8f
push str.Index_file_is:
lea ecx, [ebp - 0x450]
call fcn.00402e51
lea ecx, [esi + 0x94]
push ecx
push eax
lea eax, [ebp - 0x478]
push eax
mov byte [ebp - 4], 0xa
call fcn.0041f5ed
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x430]
mov byte [ebp - 4], 0xb
call fcn.00402bb1
push ebx
push edi
lea ecx, [ebp - 0x478]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
mov edx, dword [esi + 0xf4]
push 0xfffffffffffffffe
push 2
pop ecx
lea eax, [ebp - 0x430]
call fcn.0041ec8f
mov eax, dword [esi + 0x48]
and eax, dword [esi + 0x4c]
mov byte [ebp - 0x431], bl
cmp eax, 0xffffffff
je 0x422ef1
mov byte [ebp - 0x431], 1
push str.Check_temporary_file...
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 0xc
mov edx, dword [esi + 0xf4]
pop ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
cmp byte [ebp - 0x431], bl
je 0x422f78
cmp dword [esi + 0x90], 0x10
jb 0x422f41
mov eax, dword [esi + 0x7c]
jmp 0x422f44
lea eax, [esi + 0x7c]
push 0x453ed4
push eax
call fcn.004410b9
cmp eax, ebx
pop ecx
pop ecx
je 0x422f78
push eax
call fcn.0042d82b
lea ecx, [ebp - 0x450]
mov dword [esp], str.Temporary_file_exists.
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 0xd
pop ecx
jmp 0x422f96
push str.Temporary_file_not_exists.
lea ecx, [ebp - 0x450]
mov byte [ebp - 0x431], bl
call fcn.00402e51
mov byte [ebp - 4], 0xe
push 0xfffffffffffffffe
mov ecx, edi
mov edx, dword [esi + 0xf4]
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
cmp byte [ebp - 0x431], bl
je 0x42316c
push str.Check_index_file...
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 0xf
mov edx, dword [esi + 0xf4]
pop ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
lea eax, [esi + 0x94]
cmp dword [eax + 0x18], 0x10
jb 0x42300e
mov eax, dword [eax + 4]
jmp 0x423011
add eax, 4
push 0x453ed4
push eax
call fcn.004410b9
cmp eax, ebx
pop ecx
pop ecx
je 0x423045
push eax
call fcn.0042d82b
lea ecx, [ebp - 0x450]
mov dword [esp], str.Index_file_exists.
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 0x10
pop ecx
jmp 0x423063
push str.Index_file_not_exists.
lea ecx, [ebp - 0x450]
mov byte [ebp - 0x431], bl
call fcn.00402e51
mov byte [ebp - 4], 0x11
push 0xfffffffffffffffe
mov ecx, edi
mov edx, dword [esi + 0xf4]
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
cmp byte [ebp - 0x431], bl
je 0x42316c
push str.Checking_temporary_file_length...
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 0x12
mov edx, dword [esi + 0xf4]
pop ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
sub esp, 0x1c
lea eax, [esi + 0x78]
mov ecx, esp
mov dword [ebp - 0x454], esp
push eax
call fcn.00402b24
call fcn.00423a12
mov ecx, dword [esi + 0x48]
cmp ecx, eax
jne 0x42310c
mov eax, dword [esi + 0x4c]
cmp eax, edx
jne 0x42310c
push str.File_length_OK.
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 3
mov byte [ebp - 4], 0x13
pop ecx
jmp 0x42312a
push str.File_length_check_fail.
lea ecx, [ebp - 0x450]
mov byte [ebp - 0x431], bl
call fcn.00402e51
mov byte [ebp - 4], 0x14
push 0xfffffffffffffffe
mov ecx, edi
mov edx, dword [esi + 0xf4]
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
cmp byte [ebp - 0x431], bl
je 0x42316c
mov ecx, esi
call fcn.0042346a
mov eax, esi
call fcn.00424aae
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], edx
jmp 0x42330f
push str.Creating_new_temp_and_index_file...
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 2
mov byte [ebp - 4], 0x15
mov edx, dword [esi + 0xf4]
pop ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], bl
call fcn.00402b4a
cmp dword [esi + 0x90], 0x10
jb 0x4231b4
mov eax, dword [esi + 0x7c]
jmp 0x4231b7
lea eax, [esi + 0x7c]
push 0x453fbc
push eax
call fcn.004410b9
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x454], eax
je 0x423323
mov ecx, esi
call fcn.0042388d
test eax, eax
jge 0x423218
push str.Create_index_file_fail.
lea ecx, [ebp - 0x450]
call fcn.00402e51
mov byte [ebp - 4], 0x16
mov edx, dword [esi + 0xf4]
push 0xfffffffffffffffe
xor ecx, ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
call fcn.00402b4a
jmp 0x4233de
mov eax, dword [esi + 0x48]
and eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x4232cc
push 0x400
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.0042d8b0
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x48]
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x45c], ecx
mov dword [ebp - 0x458], eax
jl 0x42329e
jg 0x42325c
cmp ecx, 0x400
jb 0x42329e
push dword [ebp - 0x454]
lea eax, [ebp - 0x414]
push 0x400
push edi
push eax
call fcn.0042d6f2
add esp, 0x10
add dword [ebp - 0x45c], 0xfffffc00
adc dword [ebp - 0x458], 0xffffffff
cmp dword [ebp - 0x458], ebx
jg 0x42325c
jl 0x42329e
cmp dword [ebp - 0x45c], 0x400
jae 0x42325c
cmp dword [ebp - 0x458], ebx
jl 0x4232cc
jg 0x4232b0
cmp dword [ebp - 0x45c], ebx
jbe 0x4232cc
push dword [ebp - 0x454]
lea eax, [ebp - 0x414]
push dword [ebp - 0x45c]
push edi
push eax
call fcn.0042d6f2
add esp, 0x10
push str.Creating_new_temp_and_index_file...
lea ecx, [ebp - 0x450]
call fcn.00402e51
push 0xfffffffffffffffe
push 3
mov byte [ebp - 4], 0x17
mov edx, dword [esi + 0xf4]
pop ecx
lea eax, [ebp - 0x450]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x450]
call fcn.00402b4a
push dword [ebp - 0x454]
call fcn.0042d82b
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x430]
call fcn.00402b4a
mov al, 1
jmp 0x4233ed
push str._Fail__quit.
lea ecx, [ebp - 0x4b0]
call fcn.00402e51
mov dword [ebp - 0x454], eax
push str.Create
lea ecx, [ebp - 0x494]
mov byte [ebp - 4], 0x18
call fcn.00402e51
lea ecx, [esi + 0x78]
push ecx
push eax
lea eax, [ebp - 0x450]
push eax
mov byte [ebp - 4], 0x19
call fcn.0041f5ed
add esp, 0xc
push dword [ebp - 0x454]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x478]
push eax
call fcn.0041f5ed
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x430]
mov byte [ebp - 4], 0x1b
call fcn.00402bb1
push ebx
push edi
lea ecx, [ebp - 0x478]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x450]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x494]
call fcn.00402b4a
push ebx
push edi
lea ecx, [ebp - 0x4b0]
mov byte [ebp - 4], bl
call fcn.00402b4a
mov edx, dword [esi + 0xf4]
push 0xfffffffffffffffe
xor ecx, ecx
lea eax, [ebp - 0x430]
call fcn.0041ec8f
push ebx
push edi
lea ecx, [ebp - 0x430]
call fcn.00402b4a
xor al, al
call fcn.00431e49
ret