Function at 0x410ec0
Capabilities:
Check if file exists
Delete file
Get common file path
Get file attributes
Move file

Disassembly:
push 0xffffffffffffffff
push 0x5b766f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3f4
push ebx
push ebp
push esi
mov esi, dword [esp + 0x414]
test esi, esi
push edi
mov dword [esp + 0x10], ecx
je 0x410ef7
mov ecx, esi
call fcn.0047ad40
jmp 0x410ef9
xor eax, eax
push eax
push str.CLibDataTransfer::ParseLib_Data_size__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
mov dword [esp + 0x18], 0
test esi, esi
je case.0x4124d4.26658
mov ecx, esi
call fcn.0047b460
mov ecx, esi
mov ebx, eax
call fcn.0047ad40
mov ebp, dword [esp + 0x414]
mov ecx, dword [esp + 0x10]
push ebp
mov edi, eax
xor esi, esi
call fcn.00412f70
test eax, eax
je 0x410f61
cmp edi, 0x10
jb case.0x4124d4.26658
add edi, 0xfffffff0
test edi, edi
jbe 0x410f63
lea esi, [ebx + 0x10]
jmp 0x410f63
mov esi, ebx
cmp ebp, 0x6611
ja 0x412208
je 0x41216f
cmp ebp, 0x63a2
ja 0x411d5a
je 0x411d35
cmp ebp, 0x6330
ja 0x411287
je 0x411041
cmp ebp, 0x6305
ja 0x411011
je 0x410fec
cmp ebp, 0x6005
je 0x410fd8
cmp ebp, 0x6301
jne case.0x4124d4.26658
push edi
lea eax, [esp + 0x25]
push esi
push eax
push 8
lea ecx, [esp + 0x34]
push 0x3343494f
push ecx
push ebp
call fcn.004148a0
add esp, 0x1c
jmp 0x412592
mov ecx, dword [esp + 0x10]
push edi
push esi
call fcn.00413190
mov dword [esp + 0x18], eax
jmp case.0x4124d4.26658
push edi
lea edx, [esp + 0x25]
push esi
push edx
push 8
lea eax, [esp + 0x34]
push 0x3343504f
push eax
push 0x6305
call fcn.00414c40
add esp, 0x1c
jmp 0x412592
cmp ebp, 0x630e
jne case.0x4124d4.26658
push edi
lea ecx, [esp + 0x25]
push esi
push ecx
push 8
lea edx, [esp + 0x330]
push 0x3343544f
push edx
push ebp
call fcn.00414fe0
add esp, 0x1c
jmp 0x412592
push edi
push esi
push 8
push 0x3343414f
push 0x6330
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov eax, dword [0x61cab0]
add esp, 0x24
xor ebp, ebp
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x40c], ebp
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea edx, [esp + 0xb4]
push 0x6330
push edx
lea eax, [esp + 0x20]
push str._sopl__lu__lu.tmp
push eax
call fcn.0059a7f7
mov ecx, dword [esp + 0x28]
add esp, 0x14
push ecx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
push esi
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
test esi, esi
je 0x41114a
push ebp
push 8
push 0x3343414f
push 8
lea ecx, [esp + 0x48]
shr edi, 3
call fcn.0043a7c0
mov edx, dword [esp + 0x14]
push ebp
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 1
call fcn.0043a930
test eax, eax
je 0x411139
push edi
push esi
lea ecx, [esp + 0x40]
call fcn.0043c0a0
lea ecx, [esp + 0x38]
call fcn.0043b3b0
mov ebp, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0
call fcn.0043a8b0
mov eax, dword [0x61cab0]
mov dword [esp + 0x10], eax
push 0x6330
mov byte [esp + 0x410], 2
call fcn.004100c0
add esp, 4
test eax, eax
jne 0x411195
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], al
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
jmp case.0x4124d4.26658
mov ecx, dword [0x639d18]
push eax
push ecx
lea edx, [esp + 0x18]
push 0x610c70
push edx
call fcn.0059a7f7
mov eax, dword [esp + 0x20]
add esp, 0x10
push ebp
push eax
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x18
test ebp, ebp
jne 0x4111f8
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4111e9
mov esi, 1
jmp 0x411241
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x411241
mov eax, dword [0x639d2c]
mov ecx, dword [esp + 0x14]
neg eax
sbb eax, eax
and eax, 2
add eax, 3
mov edi, eax
mov eax, dword [esp + 0x10]
push edi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x14]
push edi
push edx
push eax
push esi
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
test esi, esi
jmp 0x412594
sub ebp, 0x6350
je 0x41177f
sub ebp, 0x30
je 0x411534
sub ebp, 0x20
jne case.0x4124d4.26658
push edi
push esi
push 8
push 0x3349554f
push 0x63a0
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov ecx, dword [0x61cab0]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], ecx
lea edx, [esp + 0xb0]
mov dword [esp + 0x40c], 0xe
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [esp + 0xb4]
push 0x63a0
push eax
lea ecx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push ecx
call fcn.0059a7f7
mov edx, dword [esp + 0x28]
add esp, 0x14
push edx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x21]
mov dword [esp + 0x1c], ebx
push eax
push edi
push esi
call fcn.00412b50
mov ebp, eax
push ebp
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
test ebp, ebp
je 0x4113f6
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x411388
mov eax, 0xba2e8ba3
mul edi
shr edx, 7
mov dword [esp + 0x1c], edx
push 0
push 8
push 0x3349554f
push 0xb0
lea ecx, [esp + 0x48]
call fcn.0043a7c0
mov ecx, dword [esp + 0x14]
push 0
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 0xf
call fcn.0043a930
test eax, eax
je 0x4113d8
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push edx
push ebp
call fcn.0043c0a0
lea ecx, [esp + 0x38]
call fcn.0043b3b0
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0xe
call fcn.0043a8b0
cmp ebp, esi
je 0x4113f6
push ebp
call fcn.0059e281
add esp, 4
mov eax, dword [0x61cab0]
mov dword [esp + 0x10], eax
push 0x63a0
mov byte [esp + 0x410], 0x10
call fcn.004100c0
add esp, 4
test eax, eax
jne 0x411442
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0xe
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
jmp case.0x4124d4.26658
mov ecx, dword [0x639d18]
push eax
push ecx
lea edx, [esp + 0x18]
push 0x610c70
push edx
call fcn.0059a7f7
mov eax, dword [esp + 0x20]
add esp, 0x10
push ebx
push eax
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x18
test ebx, ebx
jne 0x4114a5
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x411496
mov esi, 1
jmp 0x4114ee
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x4114ee
mov eax, dword [0x639d2c]
mov ecx, dword [esp + 0x14]
neg eax
sbb eax, eax
and eax, 2
add eax, 3
mov edi, eax
mov eax, dword [esp + 0x10]
push edi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x14]
push edi
push edx
push eax
push esi
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0xe
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
test esi, esi
jmp 0x412594
push edi
push esi
push 8
push 0x3343554f
push 0x6380
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov ecx, dword [0x61cab0]
add esp, 0x24
xor ebp, ebp
mov dword [esp + 0x14], ecx
lea edx, [esp + 0xb0]
mov ebx, 0xb
push edx
push 0x104
mov dword [esp + 0x414], ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [esp + 0xb4]
push 0x6380
push eax
lea ecx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push ecx
call fcn.0059a7f7
mov edx, dword [esp + 0x28]
add esp, 0x14
push edx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
push esi
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
test esi, esi
je 0x411642
push ebp
push 8
push 0x3343554f
push 8
lea ecx, [esp + 0x48]
shr edi, 3
call fcn.0043a7c0
mov eax, dword [esp + 0x14]
push ebp
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 0xc
call fcn.0043a930
test eax, eax
je 0x411632
push edi
push esi
lea ecx, [esp + 0x40]
call fcn.0043c0a0
lea ecx, [esp + 0x38]
call fcn.0043b3b0
mov ebp, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], bl
call fcn.0043a8b0
mov ecx, dword [0x61cab0]
mov dword [esp + 0x10], ecx
push 0x6380
mov byte [esp + 0x410], 0xd
call fcn.004100c0
add esp, 4
test eax, eax
jne 0x41168e
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], bl
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
jmp case.0x4124d4.26658
mov edx, dword [0x639d18]
push eax
push edx
lea eax, [esp + 0x18]
push 0x610c70
push eax
call fcn.0059a7f7
mov ecx, dword [esp + 0x20]
add esp, 0x10
push ebp
push ecx
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x18
test ebp, ebp
jne 0x4116f1
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4116e2
mov esi, 1
jmp 0x41173a
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x41173a
mov eax, dword [0x639d2c]
mov ecx, dword [esp + 0x10]
neg eax
sbb eax, eax
mov edx, dword [esp + 0x14]
and eax, 2
add eax, 3
mov edi, eax
push edi
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [esp + 0x10]
push edi
push eax
push ecx
push esi
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], bl
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
test esi, esi
jmp 0x412594
push edi
push esi
push 8
push 0x3349414f
push 0x6350
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov edx, dword [0x61cab0]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], edx
lea eax, [esp + 0xb0]
mov dword [esp + 0x40c], 3
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea ecx, [esp + 0xb4]
push 0x6350
push ecx
lea edx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push edx
call fcn.0059a7f7
mov eax, dword [esp + 0x28]
add esp, 0x14
push eax
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
push ecx
push edi
push esi
lea ecx, [esp + 0x2d]
call fcn.00412820
mov ebp, eax
push ebp
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
test ebp, ebp
je 0x4118d0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x411862
mov eax, 0xcccccccd
mul edi
shr edx, 8
mov dword [esp + 0x1c], edx
push 0
push 8
push 0x3349414f
push 0x140
lea ecx, [esp + 0x48]
call fcn.0043a7c0
mov edx, dword [esp + 0x14]
push 0
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 4
call fcn.0043a930
test eax, eax
je 0x4118b2
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push eax
push ebp
call fcn.0043c0a0
lea ecx, [esp + 0x38]
call fcn.0043b3b0
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 3
call fcn.0043a8b0
cmp ebp, esi
je 0x4118d0
push ebp
call fcn.0059e281
add esp, 4
mov ecx, dword [0x61cab0]
mov dword [esp + 0x10], ecx
push 0x6350
mov byte [esp + 0x410], 5
call fcn.004100c0
add esp, 4
test eax, eax
jne 0x411918
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 3
call fcn.0059db8f
mov dword [esp + 0x40c], 0xffffffff
lea ecx, [esp + 0x14]
jmp 0x411a4e
mov edx, dword [0x639d18]
push eax
push edx
lea eax, [esp + 0x18]
push 0x610c70
push eax
call fcn.0059a7f7
mov ecx, dword [esp + 0x20]
add esp, 0x10
push ebx
push ecx
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x18
test ebx, ebx
jne 0x41197b
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x41196c
mov ebp, 1
jmp 0x4119c4
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
jmp 0x4119c4
mov eax, dword [0x639d2c]
mov ecx, dword [esp + 0x10]
neg eax
sbb eax, eax
mov edx, dword [esp + 0x14]
and eax, 2
add eax, 3
mov ebx, eax
push ebx
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [esp + 0x14]
mov ebp, eax
mov eax, dword [esp + 0x10]
push ebx
push eax
push ecx
push ebp
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x20
push ebp
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 3
call fcn.0059db8f
or ebx, 0xffffffff
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], ebx
call fcn.0059db8f
test ebp, ebp
je 0x411a53
mov edx, dword [0x61cab0]
mov dword [esp + 0x1c], edx
mov eax, dword [0x639d18]
push str.msoapphash4.dat
push eax
lea ecx, [esp + 0x24]
push 0x610c70
push ecx
mov dword [esp + 0x41c], 6
call fcn.0059a7f7
mov edx, dword [esp + 0x2c]
add esp, 0x10
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [esp + 0x40c], ebx
lea ecx, [esp + 0x1c]
call fcn.0059db8f
push edi
push esi
push 8
push 0x3349416f
push 0x6351
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov eax, dword [0x61cab0]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x40c], 7
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea edx, [esp + 0xb4]
push 0x6351
push edx
lea eax, [esp + 0x20]
push str._sopl__lu__lu.tmp
push eax
call fcn.0059a7f7
mov ecx, dword [esp + 0x28]
add esp, 0x14
push ecx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x22]
mov dword [esp + 0x1c], ebx
push edx
push edi
push esi
call fcn.00412a70
mov ebp, eax
push ebp
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
test ebp, ebp
je 0x411ba0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x411b35
mov eax, 0x88888889
mul edi
shr edx, 6
mov dword [esp + 0x1c], edx
push 0
push 8
push 0x3349416f
push 0x78
lea ecx, [esp + 0x48]
call fcn.0043a7c0
mov eax, dword [esp + 0x14]
push 0
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 8
call fcn.0043a930
test eax, eax
je 0x411b82
mov ecx, dword [esp + 0x1c]
push ecx
push ebp
lea ecx, [esp + 0x40]
call fcn.0043c0a0
lea ecx, [esp + 0x38]
call fcn.0043b3b0
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 7
call fcn.0043a8b0
cmp ebp, esi
je 0x411ba0
push ebp
call fcn.0059e281
add esp, 4
mov edx, dword [0x61cab0]
mov dword [esp + 0x10], edx
push 0x6351
mov byte [esp + 0x410], 9
call fcn.004100c0
add esp, 4
test eax, eax
jne 0x411bed
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 7
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
jmp case.0x4124d4.26658
push eax
mov eax, dword [0x639d18]
push eax
lea ecx, [esp + 0x18]
push 0x610c70
push ecx
call fcn.0059a7f7
mov edx, dword [esp + 0x20]
add esp, 0x10
push ebx
push edx
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x18
test ebx, ebx
jne 0x411c4f
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x411c40
mov esi, 1
jmp 0x411c98
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x411c98
mov eax, dword [0x639d2c]
mov edx, dword [esp + 0x10]
neg eax
sbb eax, eax
and eax, 2
add eax, 3
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push edi
mov esi, eax
push ecx
push edx
push esi
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 7
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
test esi, esi
je case.0x4124d4.26658
mov eax, dword [0x61cab0]
mov dword [esp + 0x1c], eax
mov ecx, dword [0x639d18]
push str.msoapphash5.dat
push ecx
lea edx, [esp + 0x24]
push 0x610c70
push edx
mov dword [esp + 0x41c], 0xa
call fcn.0059a7f7
mov eax, dword [esp + 0x2c]
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
jmp 0x4125b0
push edi
lea ecx, [esp + 0x27]
push esi
push ecx
push 8
lea edx, [esp + 0x34]
push 0x4341534f
push edx
push 0x63a2
call fcn.00415750
add esp, 0x1c
jmp 0x412592
cmp ebp, 0x64d0
ja 0x4120b5
je 0x412090
lea eax, [ebp - 0x63a4]
cmp eax, 0xfc
ja case.0x4124d4.26658
xor ecx, ecx
mov cl, byte [eax + 0x412608]
jmp dword [ecx*4 + 0x4125f4]
push edi
push esi
push 8
push 0x434d494f
push ebp
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov edx, dword [0x61cab0]
xor ebx, ebx
add esp, 0x24
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], edx
lea eax, [esp + 0xb0]
mov dword [esp + 0x40c], 0x11
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea ecx, [esp + 0xb4]
push ebp
push ecx
lea edx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push edx
call fcn.0059a7f7
mov eax, dword [esp + 0x28]
add esp, 0x14
push eax
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
push ecx
push edi
push esi
lea ecx, [esp + 0x2e]
call fcn.00412c20
mov ebx, eax
push ebx
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
test ebx, ebx
je 0x411ee8
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x411e64
shr edi, 5
mov dword [esp + 0x1c], edi
push 0
push 8
push 0x434d494f
push 0x20
lea ecx, [esp + 0x48]
call fcn.0043a7c0
mov edx, dword [esp + 0x14]
push 0
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 0x12
call fcn.0043a930
test eax, eax
je 0x411ec4
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push eax
push ebx
call fcn.0043c0a0
lea ecx, [esp + 0x38]
call fcn.0043b3b0
lea ecx, [esp + 0x38]
mov edi, 1
mov byte [esp + 0x40c], 0x11
call fcn.0043a8b0
jmp 0x411ed9
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x11
call fcn.0043a8b0
mov edi, dword [esp + 0x24]
cmp ebx, esi
je 0x411eec
push ebx
call fcn.0059e281
add esp, 4
jmp 0x411eec
mov edi, dword [esp + 0x24]
mov ecx, dword [0x61cab0]
mov dword [esp + 0x10], ecx
push ebp
mov byte [esp + 0x410], 0x13
call fcn.004100c0
add esp, 4
test eax, eax
jne 0x411f35
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0x11
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
jmp case.0x4124d4.26658
mov edx, dword [0x639d18]
push eax
push edx
lea eax, [esp + 0x18]
push 0x610c70
push eax
call fcn.0059a7f7
mov ecx, dword [esp + 0x20]
add esp, 0x10
push edi
push ecx
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x18
test edi, edi
jne 0x411f98
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x411f89
mov esi, 1
jmp 0x411fe1
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x411fe1
mov eax, dword [0x639d2c]
mov ecx, dword [esp + 0x10]
neg eax
sbb eax, eax
mov edx, dword [esp + 0x14]
and eax, 2
add eax, 3
mov edi, eax
push edi
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [esp + 0x10]
push edi
push eax
push ecx
push esi
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0x11
call fcn.0059db8f
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.0059db8f
test esi, esi
jmp 0x412594
push edi
lea edx, [esp + 0x26]
push esi
push edx
push 8
lea eax, [esp + 0xc0]
push 0x4141534f
push eax
push ebp
call fcn.004159f0
add esp, 0x1c
jmp 0x412592
push edi
lea ecx, [esp + 0x27]
push esi
push ecx
push 8
lea edx, [esp + 0x34]
push 0x4355534f
push edx
push ebp
call fcn.00415de0
add esp, 0x1c
jmp 0x412592
push edi
lea eax, [esp + 0x26]
push esi
push eax
push 8
lea ecx, [esp + 0xc0]
push 0x4155534f
push ecx
push ebp
call fcn.00416080
add esp, 0x1c
jmp 0x412592
push edi
lea edx, [esp + 0x27]
push esi
push edx
push 8
lea eax, [esp + 0x34]
push 0x4344554f
push eax
push 0x64d0
call fcn.00414350
add esp, 0x1c
jmp 0x412592
sub ebp, 0x64e3
je 0x412147
sub ebp, 0xd
je 0x41211f
sub ebp, 0x111
jne case.0x4124d4.26658
lea ecx, [esp + 0x24]
call fcn.00412df0
push edi
lea ecx, [esp + 0x28]
push esi
push ecx
push 0x6601
mov dword [esp + 0x41c], 0x18
call fcn.00417460
add esp, 0x10
test eax, eax
je 0x412106
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412e30
jmp case.0x4124d4.26658
push edi
lea edx, [esp + 0x27]
push esi
push edx
push 8
lea eax, [esp + 0xc0]
push 0x4944554f
push eax
push 0x64f0
call fcn.004145f0
add esp, 0x1c
jmp 0x412592
push edi
lea ecx, [esp + 0x26]
push esi
push ecx
push 8
lea edx, [esp + 0xc0]
push 0x4d44554f
push edx
push 0x64e3
call fcn.00415380
add esp, 0x1c
jmp 0x412592
mov ebx, 0x14
mov dword [esp + 0x2c], 0x500000
push ebx
mov dword [esp + 0x34], 0x3153544f
mov dword [esp + 0x2c], ebx
call fcn.0059e258
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4121a9
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
push edi
lea edx, [esp + 0x28]
push esi
push edx
push 0x6611
mov dword [esp + 0x41c], ebx
call fcn.00416450
add esp, 0x10
test eax, eax
je 0x4121e3
mov ecx, dword [esp + 0x10]
push 0x6611
push str.tsdsoftwareLib.dat
call fcn.00414280
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
test eax, eax
je case.0x4124d4.26658
push eax
call fcn.0059e281
add esp, 4
jmp case.0x4124d4.26658
cmp ebp, 0x6801
ja 0x4124b7
je 0x412476
lea eax, [ebp - 0x6621]
cmp eax, 0xd0
ja case.0x4124d4.26658
xor ecx, ecx
mov cl, byte [eax + 0x41272c]
jmp dword [ecx*4 + 0x412708]
mov ecx, dword [esp + 0x10]
push edi
push esi
call fcn.00412fb0
mov dword [esp + 0x18], eax
jmp case.0x4124d4.26658
mov ebx, 0x14
mov dword [esp + 0x2c], 0x500000
push ebx
mov dword [esp + 0x34], 0x3143554f
mov dword [esp + 0x2c], ebx
call fcn.0059e258
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x412288
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
push edi
lea eax, [esp + 0x28]
push esi
push eax
push ebp
mov dword [esp + 0x41c], 0x15
call fcn.00416770
add esp, 0x10
test eax, eax
je 0x4122af
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412d10
jmp case.0x4124d4.26658
lea ecx, [esp + 0x24]
call fcn.00412d30
push edi
lea ecx, [esp + 0x28]
push esi
push ecx
push ebp
mov dword [esp + 0x41c], 0x16
call fcn.00416b40
add esp, 0x10
test eax, eax
je 0x4122f8
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412d70
jmp case.0x4124d4.26658
lea ecx, [esp + 0x24]
call fcn.00412d90
push edi
lea edx, [esp + 0x28]
push esi
push edx
push ebp
mov dword [esp + 0x41c], 0x17
call fcn.00416fe0
add esp, 0x10
test eax, eax
je 0x412341
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412dd0
jmp case.0x4124d4.26658
lea ecx, [esp + 0x24]
call fcn.00412e50
push edi
lea eax, [esp + 0x28]
push esi
push eax
push ebp
mov dword [esp + 0x41c], 0x19
call fcn.00417870
add esp, 0x10
test eax, eax
je 0x412399
mov ecx, dword [esp + 0x10]
push ebp
push str.tsdUkeyClassLib.dat
call fcn.00414280
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412e90
jmp case.0x4124d4.26658
lea ecx, [esp + 0x24]
call fcn.00412eb0
push edi
lea ecx, [esp + 0x28]
push esi
push ecx
push ebp
mov dword [esp + 0x41c], 0x1a
call fcn.00417b90
add esp, 0x10
test eax, eax
je 0x4123f1
mov ecx, dword [esp + 0x10]
push ebp
push str.tsdUkeylib.dat
call fcn.00414280
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412ef0
jmp case.0x4124d4.26658
lea ecx, [esp + 0x24]
call fcn.00412f10
push edi
lea edx, [esp + 0x28]
push esi
push edx
push ebp
mov dword [esp + 0x41c], 0x1b
call fcn.00417eb0
add esp, 0x10
test eax, eax
je 0x412449
mov ecx, dword [esp + 0x10]
push ebp
push str.tsdUserGrounpLib.dat
call fcn.00414280
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00412f50
jmp case.0x4124d4.26658
mov ecx, dword [esp + 0x10]
push edi
push esi
call fcn.00413a10
mov dword [esp + 0x18], eax
jmp case.0x4124d4.26658
push edi
push esi
lea ecx, [esp + 0x2c]
call fcn.0047abe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x410], 0x1c
call fcn.00414050
lea ecx, [esp + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40c], 0xffffffff
call fcn.0047aca0
jmp case.0x4124d4.26658
cmp ebp, 0x685b
ja 0x412557
je 0x412541
lea eax, [ebp - 0x6821]
cmp eax, 7
ja case.0x4124d4.26658
jmp dword [eax*4 + 0x412800]
push edi
lea ecx, [esp + 0x27]
push esi
push ecx
push 8
lea edx, [esp + 0x34]
push 0x4155574f
push edx
push ebp
call fcn.004181d0
add esp, 0x1c
jmp 0x412592
push edi
lea eax, [esp + 0x3b]
push esi
push eax
push 8
lea ecx, [esp + 0x364]
push 0x4355574f
push ecx
push ebp
call fcn.00418470
add esp, 0x1c
jmp 0x412592
push edi
push esi
push 0x4355584f
push ebp
call fcn.004108e0
add esp, 0x10
jmp 0x412592
push edi
push esi
push 0x4155584f
push ebp
call fcn.004108e0
add esp, 0x10
jmp 0x412592
push edi
push esi
push 0x4455584f
push 0x685b
call fcn.004108e0
add esp, 0x10
jmp 0x412592
sub ebp, 0x6879
je 0x412598
sub ebp, 2
je 0x41257c
sub ebp, 0x116
jne case.0x4124d4.26658
push 0
push edi
push esi
push 0x5452554f
push 0x6991
jmp 0x41258a
push 1
push edi
push esi
push 0x4c52554f
push 0x687b
call fcn.004105c0
add esp, 0x14
test eax, eax
je case.0x4124d4.26658
jmp 0x4125b0
push edi
push esi
push 0x4355584f
push 0x6879
call fcn.004108e0
add esp, 0x10
test eax, eax
je case.0x4124d4.26658
mov dword [esp + 0x18], 1
mov esi, dword [esp + 0x18]
push esi
push str.ImportSDSoftWare_ret_0x_x_
push str.CheckModule
push 0xf
push 0x642404
call fcn.004439a0
mov ecx, dword [esp + 0x418]
add esp, 0x14
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x400
ret 8