Function at 0x459c20
Capabilities:
Check if file exists
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ce040
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
mov eax, dword [0x505034]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xa4], ecx
mov edi, dword [ebp + 8]
xorps xmm0, xmm0
mov eax, dword [ebp + 0xc]
push 0
push 0x80
push 3
push 0
push 7
mov dword [ebp - 4], 0
mov dword [ebp - 0xd8], edi
push 0x10005
mov dword [ebp - 0x88], 0
push eax
mov dword [ebp - 0x8c], eax
movq qword [edi], xmm0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0x10
mov esi, eax
call fcn.00479ea3
mov dword [ebp - 0x1c], eax
xorps xmm0, xmm0
add esp, 4
movq qword [eax], xmm0
lea ecx, [eax + 0xc]
mov dword [eax + 8], 0
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_obj2_class_asw::wrappers::basic_handle_void___struct_asw::wrappers::detail::traits_file_handle__.0
mov dword [ecx], esi
movq qword [edi], xmm0
mov dword [edi], ecx
mov dword [edi + 4], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x88], 3
test ecx, ecx
je 0x459cf3
cmp dword [ecx], 0xffffffff
je 0x459cf3
mov al, 1
jmp 0x459cf5
xor al, al
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test al, al
jne 0x45a0ec
call esi
cmp eax, 2
jne 0x45a207
mov edx, dword [ebp - 0x8c]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 7
mov word [ebp - 0xbc], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459d36
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xbc]
call fcn.00415170
push 5
push str..tmp.
lea ecx, [ebp - 0xbc]
mov dword [ebp - 4], 1
call fcn.00414dc0
mov dword [ebp - 0x28], 0
xor ecx, ecx
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x88], 7
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x38], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x28], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xa8]
cmp edx, 8
jb 0x459deb
mov ecx, dword [ebp - 0xbc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x459de1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a222
push edx
push ecx
call fcn.00479e95
add esp, 8
xor eax, eax
mov dword [ebp - 0xac], 0
mov word [ebp - 0xbc], ax
lea eax, [ebp - 0x9c]
push eax
mov dword [ebp - 0xa8], 7
call fcn.0046aa60
movups xmm1, xmmword [eax]
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movd ecx, xmm0
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
push eax
movd eax, xmm1
push eax
lea eax, [ebp - 0xd4]
push str._08lx__04hx__04hx__02hhx_02hhx__02hhx_02hhx_02hhx_02hhx_02hhx_02hhx
push eax
call fcn.0041fa00
add esp, 0x38
mov dword [ebp - 0x88], 0xf
mov byte [ebp - 4], 4
lea eax, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 8
lea ecx, [ebp - 0x38]
push dword [ebp - 0xc4]
cmovae eax, dword [ebp - 0xd4]
push eax
call fcn.00414dc0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xc0]
cmp edx, 8
jb 0x459f0b
mov ecx, dword [ebp - 0xd4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x459f01
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a227
push edx
push ecx
call fcn.00479e95
add esp, 8
cmp dword [ebp - 0x24], 8
lea eax, [ebp - 0x38]
push 0
cmovae eax, dword [ebp - 0x38]
push 0x80
push 1
push 0
push 7
push 0x10005
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0x10
mov esi, eax
call fcn.00479ea3
mov ecx, eax
xorps xmm0, xmm0
mov dword [ebp - 0x90], ecx
lea eax, [ecx + 0xc]
add esp, 4
mov dword [ebp - 0x88], 0x1f
movq qword [ecx], xmm0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 1
mov dword [ecx + 8], 1
mov dword [ecx], vtable.std::_Ref_count_obj2_class_asw::wrappers::basic_handle_void___struct_asw::wrappers::detail::traits_file_handle__.0
mov dword [eax], esi
mov edx, dword [edi + 4]
mov dword [edi], eax
mov dword [ebp - 0x90], edx
mov dword [edi + 4], ecx
test edx, edx
je 0x459fac
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 4], eax
jne 0x459fac
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x90]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x459fac
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
test eax, eax
je 0x459fbb
cmp dword [eax], 0xffffffff
je 0x459fbb
mov cl, 1
jmp 0x459fbd
xor cl, cl
test cl, cl
jne 0x459fcd
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x45a209
test eax, eax
je 0x459fd5
mov eax, dword [eax]
jmp 0x459fd8
or eax, 0xffffffff
lea ecx, [ebp - 0x84]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x459ff6
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x45a209
cmp dword [ebp - 0x5c], 1
je 0x45a006
push 0x649
jmp 0x45a20a
mov eax, dword [edi]
mov word [ebp - 0x14], 0xbbef
mov byte [ebp - 0x12], 0xbf
mov dword [ebp - 0x1c], 0
test eax, eax
je 0x45a021
mov eax, dword [eax]
jmp 0x45a024
or eax, 0xffffffff
push 0
lea ecx, [ebp - 0x1c]
push ecx
push 3
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x45a047
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x45a209
mov eax, dword [ebp - 0x8c]
mov ecx, eax
mov dword [ebp - 0x94], eax
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a060
sub ecx, edx
sar ecx, 1
mov dword [ebp - 0x90], ecx
mov ecx, dword [edi]
test ecx, ecx
je 0x45a07f
mov ecx, dword [ecx]
jmp 0x45a082
or ecx, 0xffffffff
push 0
lea edx, [ebp - 0x94]
call fcn.00458f70
add esp, 4
test al, al
jne 0x45a0a8
cmp dword [ebp - 0x24], 8
lea eax, [ebp - 0x38]
cmovae eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x45a0e6
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45a0dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a22c
push edx
push ecx
call fcn.00479e95
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
xorps xmm0, xmm0
mov word [ebp - 0x18], ax
mov byte [ebp - 0x16], al
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], eax
mov eax, dword [edi]
movups xmmword [ebp - 0x50], xmm0
test eax, eax
je 0x45a10c
mov eax, dword [eax]
jmp 0x45a10f
or eax, 0xffffffff
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
push 3
lea ecx, [ebp - 0x18]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x45a133
call esi
cmp eax, 0x26
jne 0x45a207
lea ecx, [ebp - 0x18]
mov word [ebp - 0x14], 0xbbef
movzx eax, word [ecx]
lea edx, [ebp - 0x14]
mov byte [ebp - 0x12], 0xbf
cmp ax, word [edx]
jne 0x45a158
movzx eax, byte [ecx + 2]
cmp al, byte [edx + 2]
je 0x45a1e8
mov eax, dword [edi]
test eax, eax
je 0x45a162
mov ecx, dword [eax]
jmp 0x45a165
or ecx, 0xffffffff
call fcn.004590c0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0xa4]
push edx
push eax
call fcn.00459c20
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov esi, dword [edi + 4]
mov dword [edi], ecx
mov dword [edi + 4], edx
test esi, esi
je 0x45a1bf
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x45a1bf
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x45a1bf
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x45a1e8
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x45a1e8
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x45a1e8
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00479e61
mov esp, ebp
pop ebp
ret 8
call esi
push eax
lea ecx, [ebp - 0xa0]
call fcn.0046c5f0
push 0x50271c
mov eax, ecx
push eax
call fcn.00491d27
call fcn.0049b19a
call fcn.0049b19a
call fcn.0049b19a
int3