Function at 0x10002294
Capabilities:
Check if file exists
Clear file content
Copy file
Delete file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x260
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp esi, ebx
push edi
je 0x100023cd
xor edi, edi
push str.V3Pro32e.dll
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x10002309
mov al, byte [0x1001d970]
lea edi, [ebp - 0x17]
mov byte [ebp - 0x18], al
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
push str.AhnGetVersion
push dword [ebp + 8]
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x100022fd
lea ecx, [ebp - 0x18]
push ecx
call eax
lea eax, [ebp - 0x18]
push eax
call fcn.100095e0
pop ecx
mov dword [ebp - 4], eax
pop ecx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [ebp - 4]
push edi
push str.hupipe.cpp:UpdateFromNT3:cur_engine_version_d
push 1
call fcn.100046ca
push 0x40
lea eax, [ebp - 0x58]
push ebx
push eax
call fcn.100091c0
add esp, 0x18
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x50], 0x40
push 0x12
push dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 2
and esi, 0xfffffffb
pop eax
mov dword [ebp - 0x3a], edi
cmp esi, eax
je 0x1000234f
push 1
pop eax
cmp esi, eax
jne 0x10002354
mov dword [ebp - 0x36], eax
jmp 0x10002364
sub esi, 8
neg esi
sbb esi, esi
and esi, 0xffff
mov dword [ebp - 0x36], esi
lea eax, [ebp - 0x58]
push eax
call fcn.10002776
mov esi, eax
pop ecx
cmp esi, ebx
je 0x1000238e
push esi
push 0xd
push str.hupipe.cpp:UpdateFromNT3:1:_d__d
push 1
call fcn.100046ca
push dword [ebp + 0x14]
push esi
push 0xd
jmp 0x10002421
cmp dword [ebp - 0x54], ebx
je 0x100023c8
cmp dword [ebp - 0x54], 5
je 0x100023c8
push dword [ebp - 0x54]
call fcn.10002725
pop ecx
push eax
push 0xd
push str.hupipe.cpp:UpdateFromNT3:2:_d__d
push 1
call fcn.100046ca
add esp, 0x10
push dword [ebp + 0x14]
push dword [ebp - 0x54]
call fcn.10002725
pop ecx
push eax
push 0xd
jmp 0x10002464
cmp edi, dword [ebp - 0x22]
jl 0x100023d4
xor eax, eax
jmp 0x10002720
push dword [ebp - 0x50]
call fcn.10009019
mov esi, eax
pop ecx
cmp esi, ebx
jne 0x100023ea
push ebx
push 0xe
push 2
jmp 0x10002464
lea eax, [ebp - 0x58]
push 0x40
push eax
push esi
call fcn.10009220
push esi
call fcn.10002776
mov edi, eax
add esp, 0x10
cmp edi, ebx
je 0x1000242e
push esi
call fcn.10008f30
pop ecx
push edi
push 9
push str.hupipe.cpp:UpdateFromNT3:3:_d__d
push 1
call fcn.100046ca
push dword [ebp + 0x14]
push edi
push 9
call fcn.10002bab
add esp, 0x1c
jmp 0x10002720
cmp dword [esi + 4], ebx
je 0x10002471
push esi
call fcn.10008f30
push dword [esi + 4]
call fcn.10002725
pop ecx
pop ecx
push eax
push 4
push str.hupipe.cpp:UpdateFromNT3:4:_d__d
push 1
call fcn.100046ca
add esp, 0x10
push dword [ebp + 0x14]
push dword [esi + 4]
call fcn.10002725
pop ecx
push eax
push 4
call fcn.10002bab
add esp, 0xc
jmp 0x10002720
push 0xffffffffffffffff
lea eax, [ebp - 8]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push 1
push 0x490
push dword [ebp + 0x14]
call fcn.100027b7
add esp, 0x28
cmp dword [ebp + 0x1c], ebx
je 0x100024b5
push dword [ebp + 0x20]
lea eax, [esi + 0x26]
push eax
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push dword [ebp + 0x1c]
push str.hupipe.cpp:EngineDate_s
push 1
call fcn.100046ca
add esp, 0xc
cmp dword [ebp + 0x24], ebx
mov dword [ebp + 0x1c], ebx
je 0x100024ef
mov edx, dword [ebp + 0x28]
cmp edx, ebx
je 0x100024ef
mov dword [edx + 4], ebx
mov dword [edx + 8], ebx
xor ecx, ecx
cmp dword [esi + 0x3a], ebx
jle 0x100024eb
lea eax, [esi + 0x140]
mov edi, dword [eax]
add eax, 0x104
shr edi, 0xa
inc edi
add dword [edx + 4], edi
inc ecx
cmp ecx, dword [esi + 0x3a]
jl 0x100024d7
push edx
call dword [ebp + 0x24]
cmp dword [esi + 0x3a], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 8], ebx
jle 0x100026d4
lea edi, [esi + 0x40]
push edi
push str.hupipe.cpp:UpdateFromNT3:download:_s
push 1
call fcn.100046ca
mov eax, dword [edi + 0x100]
add esp, 0xc
cmp eax, ebx
je 0x10002671
push eax
call fcn.10009019
cmp eax, ebx
pop ecx
mov dword [ebp + 0x1c], eax
je 0x1000267b
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [edi + 0x100]
push eax
lea eax, [esi + 0xc]
push edi
push eax
call fcn.100028dd
add esp, 0x18
cmp eax, ebx
mov dword [ebp + 0x14], eax
jne 0x100026c6
push edi
lea eax, [ebp - 0x260]
push dword [ebp + 0x18]
push 0x104
push eax
call fcn.10007fff
add esp, 0x10
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [ebp + eax - 0x15d], 0x5f
lea eax, [ebp - 0x15c]
push ebx
push eax
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x100025bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1000268d
push ebx
push 0x80
push 4
push ebx
push ebx
lea eax, [ebp - 0x260]
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp + 0x20], eax
je 0x10002634
lea ecx, [ebp - 8]
push ebx
push ecx
push dword [edi + 0x100]
push dword [ebp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x10002614
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x10002629
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xa
call fcn.10002bab
add esp, 0xc
mov dword [ebp + 0x14], eax
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10002649
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xb
call fcn.10002bab
add esp, 0xc
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x14], ebx
jne 0x100026a4
push dword [ebp + 0x1c]
call fcn.10008f30
inc dword [ebp + 8]
add edi, 0x104
mov eax, dword [ebp + 8]
pop ecx
cmp eax, dword [esi + 0x3a]
mov dword [ebp + 0x1c], ebx
jl 0x10002501
jmp 0x100026d4
push edi
push 0x570
push 5
jmp 0x10002697
push edi
push 0xe
push 2
call fcn.10002bab
add esp, 0xc
mov dword [ebp + 0x14], eax
jmp 0x100026d4
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
call fcn.10002bab
add esp, 0xc
mov dword [ebp + 0x14], eax
jmp 0x100026c6
lea eax, [ebp - 0x260]
push ebx
push eax
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp + 0x1c], ebx
je 0x100026d4
push dword [ebp + 0x1c]
call fcn.10008f30
pop ecx
cmp dword [ebp + 0x24], ebx
je 0x100026e8
mov eax, dword [ebp + 0x28]
cmp eax, ebx
je 0x100026e8
or dword [eax + 8], 0xffffffff
push eax
call dword [ebp + 0x24]
push 0xffffffffffffffff
lea eax, [ebp - 8]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esi + 0xc]
push 0x490
push eax
call fcn.100027b7
push esi
call fcn.10008f30
add esp, 0x2c
push dword [ebp + 0x14]
push str.hupipe.cpp:UpdateFromNT3_d
push 1
call fcn.100046ca
mov eax, dword [ebp + 0x14]
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret