Function at 0x1000e3e0
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc48
mov eax, dword [0x1004806c]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0xc18]
mov ecx, 0x1004d130
push eax
call fcn.1000b870
lea eax, [ebp - 0xc20]
mov ecx, 0x1004d130
push eax
call fcn.1000e960
push eax
lea ecx, [ebp - 0xc18]
call fcn.100077c0
test al, al
je 0x1000e888
push ebx
push esi
push edi
nop dword [eax]
lea ecx, [ebp - 0xc18]
call fcn.100078f0
mov esi, eax
cmp byte [esi + 0x200c], 0
jne 0x1000e855
lea ebx, [esi + 0x1800]
mov dword [esi + 0x2008], 0
push ebx
push esi
mov byte [esi + 0x200d], 0
mov dword [ebp - 0xc1c], ebx
call fcn.10008cf0
add esp, 8
mov dword [esi + 0x200e], eax
test eax, eax
js 0x1000e896
push ebx
mov byte [esi + 0x200c], 1
call fcn.1000f090
mov edi, eax
add esp, 4
cmp dword [esi + 0x2000], edi
jne 0x1000e8bd
push str.Downloaded_CRC_matches_manifest
call fcn.10002f50
push 0x104
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.10015640
add esp, 0x10
xor edx, edx
add esi, 0x800
mov ecx, esi
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000e4d0
sub ecx, edi
je 0x1000e50b
mov ebx, 0x5c
cmp byte [esi + edx], 0x2f
mov eax, esi
movzx ecx, byte [esi + edx]
cmove ecx, ebx
mov byte [ebp + edx - 0x20c], cl
inc edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000e4f8
sub eax, edi
cmp edx, eax
jb 0x1000e4e0
mov ebx, dword [ebp - 0xc1c]
push 0x100351e8
push esi
call fcn.10010ab0
add esp, 8
test eax, eax
je 0x1000e542
push str.Update_DLL_changing__writing_to__updt.dll
call fcn.10002f50
lea eax, [ebp - 0x20c]
push str._updt.dll
push eax
call fcn.10011080
add esp, 0xc
mov byte [0x1004f408], 1
cmp dword [0x1004f4b0], 2
je 0x1000e5f2
push str.THUGProLauncher.exe
push esi
call fcn.10010ab0
add esp, 8
test eax, eax
je 0x1000e59c
push str.Launcher_changed
call fcn.10002f50
add esp, 4
mov byte [0x1004f409], 1
cmp dword [0x1004f4b0], 1
jne 0x1000e59c
push str.Launcher_exe_changing__writing_to__THUGProLauncher.exe
call fcn.10002f50
lea eax, [ebp - 0x20c]
push str._THUGProLauncher.exe
push eax
call fcn.10011080
add esp, 0xc
cmp dword [0x1004f4b0], 2
je 0x1000e5f2
push str.THUGPro.exe
push esi
call fcn.10010ab0
add esp, 8
test eax, eax
je 0x1000e5f2
push str.THUGPro.exe_changed
call fcn.10002f50
add esp, 4
cmp dword [0x1004f4b0], 0
jne 0x1000e5eb
push str.THUGPro_exe_changing__writing_to__THUGPro.exe
call fcn.10002f50
lea eax, [ebp - 0x20c]
push str._THUGPro.exe
push eax
call fcn.10011080
add esp, 0xc
mov byte [0x1004f40a], 1
push 0x104
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.10015640
push ebx
lea eax, [ebp - 0x108]
push 0x10035304
push eax
call fcn.10011080
lea ecx, [ebp - 0x108]
add esp, 0x18
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000e623
sub ecx, edx
cmp ecx, 0x104
jae 0x1000e8b8
mov byte [ebp + ecx - 0x108], al
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000e648
sub ecx, edx
inc ecx
cmp ecx, 0x104
jae 0x1000e8b8
mov byte [ebp + ecx - 0x108], al
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000e670
sub ecx, edx
add ecx, 2
cmp ecx, 0x104
jae 0x1000e8b8
push 0x104
mov byte [ebp + ecx - 0x108], al
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.10015640
lea eax, [ebp - 0x20c]
push eax
push 0x1004c8d8
lea eax, [ebp - 0x310]
push 0x1003530c
push eax
call fcn.10011080
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x108]
push eax
push str.Copying_file_from_cache__s_____s___s_
call fcn.10002f50
push 0x104
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.10015640
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x414]
push 0x1003533c
push eax
call fcn.10011080
add esp, 0x44
lea eax, [ebp - 0x20c]
push 0x5c
push eax
call fcn.10010aa0
add esp, 8
test eax, eax
je 0x1000e759
lea eax, [ebp - 0x414]
push 0x5c
push eax
call fcn.10010aa0
mov word [eax], 0
lea eax, [ebp - 0x414]
push eax
push 0x1003533c
call fcn.10002f50
add esp, 0x10
lea eax, [ebp - 0x414]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExA]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
lea eax, [ebp - 0x108]
push eax
call edi
test eax, eax
jne 0x1000e780
lea eax, [ebp - 0x108]
push eax
push str.Cache_file_doesnt_exist__s
call fcn.10002f50
add esp, 8
mov eax, 0x614
mov dword [ebp - 0xc44], 2
mov word [ebp - 0xc38], ax
lea eax, [ebp - 0x108]
mov dword [ebp - 0xc40], eax
lea eax, [ebp - 0x310]
mov dword [ebp - 0xc3c], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0xc48], eax
lea eax, [ebp - 0xc48]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
push eax
push str.Copy:__d
call fcn.10002f50
add esp, 8
lea eax, [ebp - 0x310]
push eax
call edi
test eax, eax
jne 0x1000e7f6
lea eax, [ebp - 0x310]
push eax
push str.File_didnt_copy_to__s
call fcn.10002f50
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0xc28]
mov ecx, 0x1004d130
push eax
call fcn.1000b870
push eax
lea ecx, [ebp - 0xc18]
call fcn.100079f0
mov ecx, 0x1004d130
lea esi, [eax + 1]
call fcn.10010990
mov ecx, eax
mov eax, esi
shl eax, 4
sub eax, esi
shl eax, 2
cdq
idiv ecx
push 0
add eax, 0x14
push eax
push 0x402
push dword [0x1004bfc4]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0xc18]
call fcn.10007960
lea eax, [ebp - 0xc20]
mov ecx, 0x1004d130
push eax
call fcn.1000e960
push eax
lea ecx, [ebp - 0xc18]
call fcn.100077c0
test al, al
jne 0x1000e430
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001327e
mov esp, ebp
pop ebp
ret
push 0x30
push str.THUG_Pro_Update
push str.A_file_failed_to_download._n
push 0
mov byte [esi + 0x200c], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
call fcn.10018866
call fcn.100133e5
lea ecx, [ebp - 0xc18]
call fcn.100078f0
mov esi, eax
push ebx
push edi
push dword [esi + 0x2000]
push str.Downloaded_CRC_didnt_match__08x____08x__s
call fcn.10002f50
lea ecx, [esi + 0x800]
push ecx
lea eax, [esi + 0x1800]
push eax
push edi
push dword [esi + 0x2000]
lea eax, [ebp - 0xc14]
push str.A_file_downloaded_that_didnt_match_the_expected_CRC._nRe_run_the_setup_or_game__and_if_you_still_have_issues.._nUpdate_CRC_Error:__08x____08x_n_s_n_s_n
push eax
call fcn.10011080
add esp, 0x28
lea eax, [ebp - 0xc14]
push 0x30
push str.THUG_Pro_Update
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
call fcn.10018866
int3