Function at 0x100fb250
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, dword [ebp + 0x10]
lea eax, [esp + 0x10]
push edi
push esi
push str.AutoUpdateReplaceMe__Im_RunDll32:__hs_
push eax
call fcn.10044f30
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, str.DllMain
call fcn.10043b30
mov edx, dword [esp + 0x14]
or edi, 0xffffffff
add edx, 0xfffffff0
mov eax, edi
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x100fb2a0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push esi
lea ecx, [esp + 0x1c]
call fcn.100264e0
push 0x1012fb2c
push 0x1012fb2c
lea ecx, [esp + 0x20]
call fcn.10024380
mov ecx, eax
call fcn.100243f0
push eax
lea ecx, [esp + 0x1c]
call fcn.100244b0
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0x1012fb34
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
call fcn.10026640
cmp dword [esp + 0x14], 0xffffffff
lea eax, [esp + 0x14]
jne 0x100fb31e
push str.Could_not_extract_AppID_from_command_line
push eax
call fcn.10044f30
mov edx, dword [esp + 0x1c]
add esp, 8
mov ecx, str.DllMain
call fcn.10043b30
mov edx, dword [esp + 0x14]
jmp 0x100fb7d3
push eax
push 0x1012fb34
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x24]
call fcn.10026640
cmp dword [esp + 0x14], 0xffffffff
lea eax, [esp + 0x14]
jne 0x100fb362
push str.Could_not_extract_ServerVersion_from_command_line
push eax
call fcn.10044f30
mov edx, dword [esp + 0x1c]
add esp, 8
mov ecx, str.DllMain
call fcn.10043b30
mov edx, dword [esp + 0x14]
jmp 0x100fb7b6
push eax
push 0x1012fb34
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
call fcn.10026640
cmp dword [esp + 0x14], 0xffffffff
jne 0x100fb39b
push ecx
mov eax, esp
push str.Could_not_extract_PreRemove_from_command_line
push eax
call fcn.10044f30
add esp, 8
call fcn.100f5890
add esp, 4
jmp 0x100fb7b2
lea eax, [esp + 0x14]
push eax
push 0x1012fb34
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
call fcn.10026640
cmp dword [esp + 0x14], 0xffffffff
jne 0x100fb3d8
push ecx
mov eax, esp
push str.Could_not_extract_UpdateBin_from_command_line
push eax
call fcn.10044f30
add esp, 8
call fcn.100f5890
add esp, 4
jmp 0x100fb795
lea eax, [esp + 0x14]
push eax
push 0x1012fb34
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
call fcn.10026640
cmp dword [esp + 0x14], 0xffffffff
push ecx
mov eax, esp
jne 0x100fb415
push str.Could_not_extract_CarrierExeName_from_command_line
push eax
call fcn.10044f30
add esp, 8
call fcn.100f5890
add esp, 4
jmp 0x100fb778
push dword [esp + 0x10]
push dword [esp + 0x18]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x34]
push str.AutoUpdateReplaceMe__Im_RunDll32_:_AppID__s___ServerVer__s___PreRemove__s___UpdateBin__s___CarrierExeName__s_
push eax
call fcn.10044f30
add esp, 0x1c
call fcn.100f5890
mov ecx, dword [esp + 0x14]
mov esi, esp
add ecx, 0xfffffff0
call fcn.10024750
add eax, 0x10
mov dword [esi], eax
call fcn.10046b30
add esp, 4
test eax, eax
jne 0x100fb47d
push ecx
mov eax, esp
push dword [esp + 0x14]
push str.AutoUpdateReplaceMe:_file_not_found:__s
push eax
call fcn.10044f30
add esp, 0xc
call fcn.100f5890
add esp, 4
jmp 0x100fb778
push 0
call fcn.1010756c
push eax
call fcn.10104528
call fcn.10104507
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push str._s._d
push eax
call fcn.10044f30
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
add esp, 0x18
push 0
call ebx
push dword [esp + 0x1c]
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileW]
push dword [esp + 0x14]
call esi
test eax, eax
jne 0x100fb4dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov ecx, esp
push eax
push dword [esp + 0x24]
push dword [esp + 0x1c]
push str.AutoUpdateReplaceMe:_failed_MoveFile_test_on__s___s__LE_d
jmp 0x100fb506
push 0
call ebx
push dword [esp + 0x10]
push dword [esp + 0x20]
call esi
test eax, eax
jne 0x100fb51c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov ecx, esp
push eax
push dword [esp + 0x18]
push dword [esp + 0x28]
push str.AutoUpdateReplaceMe:_failed_MoveFile_restore_on__s___s__LE_d
push ecx
call fcn.10044f30
add esp, 0x14
call fcn.100f5890
add esp, 4
jmp 0x100fb76f
lea ecx, [esp + 0x38]
call fcn.1004be80
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100fb530
push ecx
mov eax, esp
push dword [esp + 0x24]
push str.AutoUpdateReplaceMe:_waiting_for_execution_to_end:__s
push eax
call fcn.10044f30
add esp, 0xc
call fcn.100f5890
add esp, 4
push 0
push 0
push ecx
mov ecx, dword [esp + 0x2c]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10024750
add eax, 0x10
lea ecx, [esp + 0x44]
mov dword [esi], eax
call fcn.1004bdb0
test eax, eax
jne 0x100fb57b
push 0x3e8
call ebx
jmp 0x100fb530
push ecx
mov eax, esp
push dword [esp + 0x24]
push str.AutoUpdateReplaceMe:_execution_ended:__s
push eax
call fcn.10044f30
add esp, 0xc
call fcn.100f5890
add esp, 4
lea ecx, [esp + 0x24]
push 0x1015d240
call fcn.10023fc0
push ecx
lea eax, [esp + 0x28]
mov esi, esp
push eax
push 0x1013b8c4
lea edx, [esp + 0x18]
lea ecx, [esp + 0x20]
call fcn.10026820
add esp, 4
mov edx, eax
mov ecx, esi
call fcn.10039af0
add esp, 4
call fcn.100475f0
add esp, 4
lea ecx, [esp + 0x14]
test eax, eax
sete bl
call fcn.10024080
test bl, bl
je 0x100fb60e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov ecx, esp
push eax
push dword [esp + 0x2c]
push dword [esp + 0x18]
push str.AutoUpdateReplaceMe:_cannot_delete__s._s__LE_d
push ecx
call fcn.10044f30
add esp, 0x14
jmp 0x100fb755
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push ecx
mov ecx, dword [esp + 0x10]
mov esi, esp
add ecx, 0xfffffff0
call fcn.10024750
add eax, 0x10
mov dword [esi], eax
call fcn.10046b30
add esp, 4
test eax, eax
je 0x100fb6b2
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [esp + 0x24]
push eax
push 0x1013b8c4
lea edx, [esp + 0x14]
lea ecx, [esp + 0x38]
call fcn.10026820
add esp, 4
lea ecx, [esp + 0x18]
mov edx, eax
call fcn.10039af0
add esp, 4
push dword [eax]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
lea ecx, [esp + 0x14]
call fcn.10024080
lea ecx, [esp + 0x30]
call fcn.10024080
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov ecx, esp
push eax
push dword [esp + 0x14]
push str.AutoUpdateReplaceMe:_waiting_for_file_to_become_available:__s__MoveFile_LE_d_
push ecx
call fcn.10044f30
add esp, 0x10
call fcn.100f5890
add esp, 4
push 0x3e8
call ebx
jmp 0x100fb614
push ecx
mov eax, esp
push dword [esp + 0x10]
push str.AutoUpdateReplaceMe:_file_is_available_for_writing:__s
push eax
call fcn.10044f30
add esp, 0xc
call fcn.100f5890
add esp, 4
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [esp + 0xc]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push 0x1013de80
lea ecx, [esp + 0x2c]
mov ebx, eax
call fcn.10024110
test eax, eax
jne 0x100fb734
push eax
push ecx
mov ecx, esp
push str.open
call fcn.10023fc0
push ecx
mov ecx, esp
push str._Quiet__Remove
call fcn.10023fc0
push ecx
mov ecx, dword [esp + 0x1c]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.10024750
add eax, 0x10
xor edx, edx
xor ecx, ecx
mov dword [esi], eax
call fcn.10044430
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov ecx, esp
push eax
push ebx
push dword [esp + 0x18]
push dword [esp + 0x20]
push str.AutoUpdateReplaceMe:_MoveFile__s___s__d__LE_d
push ecx
call fcn.10044f30
add esp, 0x18
call fcn.100f5890
add esp, 4
lea ecx, [esp + 0x24]
call fcn.10024080
lea ecx, [esp + 0x38]
call fcn.1004beb0
lea ecx, [esp + 0x1c]
call fcn.10024080
mov edx, dword [esp + 0xc]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x100fb795
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x10]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x100fb7b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x100fb7cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x100fb7ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x20]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x100fb809
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x100fb824
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10