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

Disassembly:
push 0xffffffffffffffff
push 0x5d575f
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 0x412397
mov ecx, esi
call fcn.0047eea0
jmp 0x412399
xor eax, eax
push eax
push str.CLibDataTransfer::ParseLib_Data_size__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
mov dword [esp + 0x18], 2
test esi, esi
je case.0x413a55.26668
mov ecx, esi
call fcn.0047f5c0
mov ecx, esi
mov ebx, eax
call fcn.0047eea0
mov ebp, dword [esp + 0x414]
mov ecx, dword [esp + 0x10]
push ebp
mov edi, eax
xor esi, esi
call fcn.004143a0
test eax, eax
je 0x412401
cmp edi, 0x10
jb case.0x413a55.26668
add edi, 0xfffffff0
test edi, edi
jbe 0x412403
lea esi, [ebx + 0x10]
jmp 0x412403
mov esi, ebx
cmp ebp, 0x6686
ja 0x4137d7
je case.0x413a55.26667
cmp ebp, 0x63a8
ja 0x41327d
je 0x413255
cmp ebp, 0x6350
ja 0x412cee
je 0x412736
cmp ebp, 0x6305
ja 0x4124b1
je 0x41248c
cmp ebp, 0x6005
je 0x412478
cmp ebp, 0x6301
jne case.0x413a55.26668
push edi
lea eax, [esp + 0x27]
push esi
push eax
push 8
lea ecx, [esp + 0x34]
push 0x3343494f
push ecx
push ebp
call fcn.00415ce0
add esp, 0x1c
jmp 0x413abe
mov ecx, dword [esp + 0x10]
push edi
push esi
call fcn.004145d0
mov dword [esp + 0x18], eax
jmp case.0x413a55.26668
push edi
lea edx, [esp + 0x27]
push esi
push edx
push 8
lea eax, [esp + 0x34]
push 0x3343504f
push eax
push 0x6305
call fcn.00416080
add esp, 0x1c
jmp 0x413abe
sub ebp, 0x630e
je 0x41270e
sub ebp, 0x22
jne case.0x413a55.26668
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 0x667744
call fcn.00447b00
mov ecx, dword [0x641250]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], ecx
lea edx, [esp + 0xb0]
mov dword [esp + 0x40c], ebx
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 0x6330
push eax
lea ecx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push ecx
call fcn.005b86eb
mov edx, dword [esp + 0x28]
add esp, 0x14
push edx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
push esi
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
test esi, esi
je 0x4125d0
push ebx
push 8
push 0x3343414f
push 8
lea ecx, [esp + 0x48]
shr edi, 3
call fcn.0043e950
mov eax, dword [esp + 0x14]
push ebx
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 1
call fcn.0043eac0
test eax, eax
je 0x4125bf
push edi
push esi
lea ecx, [esp + 0x40]
call fcn.00440230
lea ecx, [esp + 0x38]
call fcn.0043f540
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0
call fcn.0043ea40
mov ecx, dword [0x641250]
mov dword [esp + 0x10], ecx
push 0x6330
mov byte [esp + 0x410], 2
call fcn.00411560
add esp, 4
test eax, eax
jne 0x41261c
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], al
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
jmp case.0x413a55.26668
mov edx, dword [0x65f058]
push eax
push edx
lea eax, [esp + 0x18]
push 0x634a00
push eax
call fcn.005b86eb
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 0x667744
call fcn.00447b00
add esp, 0x18
test ebx, ebx
jne 0x41267f
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x412670
mov esi, 1
jmp 0x4126c8
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x4126c8
mov eax, dword [0x65f06c]
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 0x667744
call fcn.00447b00
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
test esi, esi
jmp 0x413ac0
push edi
lea edx, [esp + 0x27]
push esi
push edx
push 8
lea eax, [esp + 0x330]
push 0x3343544f
push eax
push 0x630e
call fcn.00416420
add esp, 0x1c
jmp 0x413abe
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 0x667744
call fcn.00447b00
mov ecx, dword [0x641250]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], ecx
lea edx, [esp + 0xb0]
mov dword [esp + 0x40c], 3
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 0x6350
push eax
lea ecx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push ecx
call fcn.005b86eb
mov edx, dword [esp + 0x28]
add esp, 0x14
push edx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x23]
mov dword [esp + 0x1c], ebx
push eax
push edi
push esi
call fcn.00413c50
mov ebp, eax
push ebp
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
test ebp, ebp
je 0x412887
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x412819
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.0043e950
mov ecx, dword [esp + 0x14]
push 0
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 4
call fcn.0043eac0
test eax, eax
je 0x412869
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push edx
push ebp
call fcn.00440230
lea ecx, [esp + 0x38]
call fcn.0043f540
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 3
call fcn.0043ea40
cmp ebp, esi
je 0x412887
push ebp
call fcn.005bc175
add esp, 4
mov eax, dword [0x641250]
mov dword [esp + 0x10], eax
push 0x6350
mov byte [esp + 0x410], 5
call fcn.00411560
add esp, 4
test eax, eax
jne 0x4128ce
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 3
call fcn.005bba83
mov dword [esp + 0x40c], 0xffffffff
lea ecx, [esp + 0x14]
jmp 0x412a05
mov ecx, dword [0x65f058]
push eax
push ecx
lea edx, [esp + 0x18]
push 0x634a00
push edx
call fcn.005b86eb
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 0x667744
call fcn.00447b00
add esp, 0x18
test ebx, ebx
jne 0x412931
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x412922
mov ebp, 1
jmp 0x41297a
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
jmp 0x41297a
mov eax, dword [0x65f06c]
mov ecx, dword [esp + 0x14]
neg eax
sbb eax, eax
and eax, 2
add eax, 3
mov ebx, eax
mov eax, dword [esp + 0x10]
push ebx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [esp + 0x10]
mov ebp, eax
mov eax, dword [esp + 0x14]
push ebx
push edx
push eax
push ebp
push str.SaveLib_ret__lu__strTempFile__s__strFileTarget__s__dwFlags__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x20
push ebp
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 3
call fcn.005bba83
or ebx, 0xffffffff
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], ebx
call fcn.005bba83
test ebp, ebp
je 0x412a0a
mov ecx, dword [0x641250]
mov dword [esp + 0x1c], ecx
mov edx, dword [0x65f058]
push str.msoapphash4.dat
push edx
lea eax, [esp + 0x24]
push 0x634a00
push eax
mov dword [esp + 0x41c], 6
call fcn.005b86eb
mov ecx, dword [esp + 0x2c]
add esp, 0x10
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [esp + 0x40c], ebx
lea ecx, [esp + 0x1c]
call fcn.005bba83
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 0x667744
call fcn.00447b00
mov edx, dword [0x641250]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], edx
lea eax, [esp + 0xb0]
mov dword [esp + 0x40c], 7
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 0x6351
push ecx
lea edx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push edx
call fcn.005b86eb
mov eax, dword [esp + 0x28]
add esp, 0x14
push eax
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
push ecx
push edi
push esi
lea ecx, [esp + 0x2d]
call fcn.00413ea0
mov ebp, eax
push ebp
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
test ebp, ebp
je 0x412b58
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x412aed
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.0043e950
mov edx, dword [esp + 0x14]
push 0
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 8
call fcn.0043eac0
test eax, eax
je 0x412b3a
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push eax
push ebp
call fcn.00440230
lea ecx, [esp + 0x38]
call fcn.0043f540
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 7
call fcn.0043ea40
cmp ebp, esi
je 0x412b58
push ebp
call fcn.005bc175
add esp, 4
mov ecx, dword [0x641250]
mov dword [esp + 0x10], ecx
push 0x6351
mov byte [esp + 0x410], 9
call fcn.00411560
add esp, 4
test eax, eax
jne 0x412ba5
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 7
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
jmp case.0x413a55.26668
mov edx, dword [0x65f058]
push eax
push edx
lea eax, [esp + 0x18]
push 0x634a00
push eax
call fcn.005b86eb
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 0x667744
call fcn.00447b00
add esp, 0x18
test ebx, ebx
jne 0x412c08
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x412bf9
mov esi, 1
jmp 0x412c51
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x412c51
mov eax, dword [0x65f06c]
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 0x667744
call fcn.00447b00
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 7
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
test esi, esi
je case.0x413a55.26668
mov edx, dword [0x641250]
mov dword [esp + 0x1c], edx
mov eax, dword [0x65f058]
push str.msoapphash5.dat
push eax
lea ecx, [esp + 0x24]
push 0x634a00
push ecx
mov dword [esp + 0x41c], 0xa
call fcn.005b86eb
mov edx, dword [esp + 0x2c]
add esp, 0x10
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
jmp 0x413ae2
lea eax, [ebp - 0x6380]
cmp eax, 0x26
ja case.0x413a55.26668
xor ecx, ecx
mov cl, byte [eax + 0x413b40]
jmp dword [ecx*4 + 0x413b28]
push edi
push esi
push 8
push 0x3343554f
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 0x667744
call fcn.00447b00
mov edx, dword [0x641250]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], edx
lea eax, [esp + 0xb0]
mov dword [esp + 0x40c], 0xb
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.005b86eb
mov eax, dword [esp + 0x28]
add esp, 0x14
push eax
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
push esi
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
test esi, esi
je 0x412e12
push ebx
push 8
push 0x3343554f
push 8
lea ecx, [esp + 0x48]
shr edi, 3
call fcn.0043e950
mov ecx, dword [esp + 0x14]
push ebx
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 0xc
call fcn.0043eac0
test eax, eax
je 0x412e01
push edi
push esi
lea ecx, [esp + 0x40]
call fcn.00440230
lea ecx, [esp + 0x38]
call fcn.0043f540
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0xb
call fcn.0043ea40
mov edx, dword [0x641250]
mov dword [esp + 0x10], edx
push ebp
mov byte [esp + 0x410], 0xd
call fcn.00411560
add esp, 4
test eax, eax
jne 0x412e5b
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0xb
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
jmp case.0x413a55.26668
push eax
mov eax, dword [0x65f058]
push eax
lea ecx, [esp + 0x18]
push 0x634a00
push ecx
call fcn.005b86eb
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 0x667744
call fcn.00447b00
add esp, 0x18
test ebx, ebx
jne 0x412ebd
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x412eae
mov esi, 1
jmp 0x412f06
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x412f06
mov eax, dword [0x65f06c]
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 0x667744
call fcn.00447b00
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0xb
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
test esi, esi
jmp 0x413ac0
push edi
push esi
push 8
push 0x3349554f
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 0x667744
call fcn.00447b00
mov eax, dword [0x641250]
xor ebx, ebx
add esp, 0x24
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x40c], 0xe
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 ebp
push edx
lea eax, [esp + 0x20]
push str._sopl__lu__lu.tmp
push eax
call fcn.005b86eb
mov ecx, dword [esp + 0x28]
add esp, 0x14
push ecx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x21]
mov dword [esp + 0x1c], ebx
push edx
push edi
push esi
call fcn.00413f80
mov ebx, eax
push ebx
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
test ebx, ebx
je 0x4130b1
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x41302a
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.0043e950
mov eax, dword [esp + 0x14]
push 0
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 0xf
call fcn.0043eac0
test eax, eax
je 0x41308d
mov ecx, dword [esp + 0x1c]
push ecx
push ebx
lea ecx, [esp + 0x40]
call fcn.00440230
lea ecx, [esp + 0x38]
call fcn.0043f540
lea ecx, [esp + 0x38]
mov edi, 1
mov byte [esp + 0x40c], 0xe
call fcn.0043ea40
jmp 0x4130a2
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0xe
call fcn.0043ea40
mov edi, dword [esp + 0x24]
cmp ebx, esi
je 0x4130b5
push ebx
call fcn.005bc175
add esp, 4
jmp 0x4130b5
mov edi, dword [esp + 0x24]
mov edx, dword [0x641250]
mov dword [esp + 0x10], edx
push ebp
mov byte [esp + 0x410], 0x10
call fcn.00411560
add esp, 4
test eax, eax
jne 0x4130fe
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0xe
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
jmp case.0x413a55.26668
push eax
mov eax, dword [0x65f058]
push eax
lea ecx, [esp + 0x18]
push 0x634a00
push ecx
call fcn.005b86eb
mov edx, dword [esp + 0x20]
add esp, 0x10
push edi
push edx
push str.SaveLib_dst__s___ret_:__d_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x18
test edi, edi
jne 0x413160
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413151
mov esi, 1
jmp 0x4131a9
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x4131a9
mov eax, dword [0x65f06c]
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 0x667744
call fcn.00447b00
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0xe
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
test esi, esi
jmp 0x413ac0
push edi
lea eax, [esp + 0x26]
push esi
push eax
push 8
lea ecx, [esp + 0x34]
push 0x4341534f
push ecx
push ebp
call fcn.00416b90
add esp, 0x1c
jmp 0x413abe
push edi
lea edx, [esp + 0x25]
push esi
push edx
push 8
lea eax, [esp + 0xc0]
push 0x4141534f
push eax
push ebp
call fcn.00416e30
add esp, 0x1c
jmp 0x413abe
push edi
lea ecx, [esp + 0x26]
push esi
push ecx
push 8
lea edx, [esp + 0x34]
push 0x4355534f
push edx
push ebp
call fcn.00417220
add esp, 0x1c
jmp 0x413abe
push edi
lea eax, [esp + 0x25]
push esi
push eax
push 8
lea ecx, [esp + 0xc0]
push 0x4155534f
push ecx
push 0x63a8
call fcn.004174c0
add esp, 0x1c
jmp 0x413abe
cmp ebp, 0x6611
ja 0x4136a1
je 0x413605
cmp ebp, 0x64e3
ja 0x413580
je 0x413558
sub ebp, 0x64a0
je 0x4132d7
sub ebp, 0x30
jne case.0x413a55.26668
push edi
lea edx, [esp + 0x26]
push esi
push edx
push 8
lea eax, [esp + 0x34]
push 0x4344554f
push eax
push 0x64d0
call fcn.00415790
add esp, 0x1c
jmp 0x413abe
push edi
push esi
push 8
push 0x434d494f
push 0x64a0
push str.SaveLib_dwType_0x_x___dwStoreFlag_0x_x___dwExDataSize_0x_x___lpBuff_0x_x___dwSize_0x_x_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
mov ecx, dword [0x641250]
add esp, 0x24
xor ebx, ebx
mov dword [esp + 0x14], ecx
lea edx, [esp + 0xb0]
mov dword [esp + 0x40c], 0x11
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 0x64a0
push eax
lea ecx, [esp + 0x20]
push str._sopl__lu__lu.tmp
push ecx
call fcn.005b86eb
mov edx, dword [esp + 0x28]
add esp, 0x14
push edx
push str.SaveLib_temp__s_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x21]
mov dword [esp + 0x1c], ebx
push eax
push edi
push esi
call fcn.00414050
mov ebp, eax
push ebp
push str.SaveLib_Trans
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
test ebp, ebp
je 0x41341a
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4133af
shr edi, 5
mov dword [esp + 0x1c], edi
push 0
push 8
push 0x434d494f
push 0x20
lea ecx, [esp + 0x48]
call fcn.0043e950
mov ecx, dword [esp + 0x14]
push 0
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x414], 0x12
call fcn.0043eac0
test eax, eax
je 0x4133fc
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push edx
push ebp
call fcn.00440230
lea ecx, [esp + 0x38]
call fcn.0043f540
mov ebx, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x11
call fcn.0043ea40
cmp ebp, esi
je 0x41341a
push ebp
call fcn.005bc175
add esp, 4
mov eax, dword [0x641250]
mov dword [esp + 0x10], eax
push 0x64a0
mov byte [esp + 0x410], 0x13
call fcn.00411560
add esp, 4
test eax, eax
jne 0x413466
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0x11
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
jmp case.0x413a55.26668
mov ecx, dword [0x65f058]
push eax
push ecx
lea edx, [esp + 0x18]
push 0x634a00
push edx
call fcn.005b86eb
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 0x667744
call fcn.00447b00
add esp, 0x18
test ebx, ebx
jne 0x4134c9
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4134ba
mov esi, 1
jmp 0x413512
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
jmp 0x413512
mov eax, dword [0x65f06c]
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 0x667744
call fcn.00447b00
add esp, 0x20
push esi
push str.SaveLib_ret__lu_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0x40c], 0x11
call fcn.005bba83
lea ecx, [esp + 0x14]
mov dword [esp + 0x40c], 0xffffffff
call fcn.005bba83
test esi, esi
jmp 0x413ac0
push edi
lea ecx, [esp + 0x25]
push esi
push ecx
push 8
lea edx, [esp + 0xc0]
push 0x4d44554f
push edx
push 0x64e3
call fcn.004167c0
add esp, 0x1c
jmp 0x413abe
cmp ebp, 0x64f0
je 0x4135dd
cmp ebp, 0x6601
jne case.0x413a55.26668
lea ecx, [esp + 0x24]
call fcn.00414220
push edi
lea eax, [esp + 0x28]
push esi
push eax
push ebp
mov dword [esp + 0x41c], 0x18
call fcn.004188a0
add esp, 0x10
test eax, eax
je 0x4135c4
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00414260
jmp case.0x413a55.26668
push edi
lea ecx, [esp + 0x26]
push esi
push ecx
push 8
lea edx, [esp + 0xc0]
push 0x4944554f
push edx
push 0x64f0
call fcn.00415a30
add esp, 0x1c
jmp 0x413abe
mov ebx, 0x14
mov dword [esp + 0x2c], 0x500000
push ebx
mov dword [esp + 0x34], 0x3153544f
mov dword [esp + 0x2c], ebx
call fcn.005bc14c
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x41363f
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.00417890
add esp, 0x10
test eax, eax
jne 0x413672
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
jmp 0x41372f
mov ecx, dword [esp + 0x10]
push 0x6611
push str.tsdsoftwareLib.dat
call fcn.004156c0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], 1
mov dword [esp + 0x40c], 0xffffffff
jmp 0x41372f
lea eax, [ebp - 0x6621]
cmp eax, 0x59
ja case.0x413a55.26668
xor ecx, ecx
mov cl, byte [eax + 0x413b7c]
jmp dword [ecx*4 + 0x413b68]
mov ebx, 0x14
mov dword [esp + 0x2c], 0x500000
push ebx
mov dword [esp + 0x34], 0x3143554f
mov dword [esp + 0x2c], ebx
call fcn.005bc14c
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4136f9
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.00417bb0
add esp, 0x10
test eax, eax
je 0x413720
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
test eax, eax
je case.0x413a55.26668
push eax
call fcn.005bc175
add esp, 4
jmp case.0x413a55.26668
lea ecx, [esp + 0x24]
call fcn.00414160
push edi
lea ecx, [esp + 0x28]
push esi
push ecx
push ebp
mov dword [esp + 0x41c], 0x16
call fcn.00417f80
add esp, 0x10
test eax, eax
je 0x413775
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.004141a0
jmp case.0x413a55.26668
lea ecx, [esp + 0x24]
call fcn.004141c0
push edi
lea edx, [esp + 0x28]
push esi
push edx
push ebp
mov dword [esp + 0x41c], 0x17
call fcn.00418420
add esp, 0x10
test eax, eax
je 0x4137be
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00414200
jmp case.0x413a55.26668
cmp ebp, 0x6828
ja 0x413a34
je 0x413a23
cmp ebp, 0x66e6
ja 0x41393d
je 0x4138dd
lea eax, [ebp - 0x66b1]
cmp eax, 0x33
ja case.0x413a55.26668
xor ecx, ecx
mov cl, byte [eax + 0x413bec]
jmp dword [ecx*4 + 0x413bd8]
lea ecx, [esp + 0x24]
call fcn.00414280
push edi
lea edx, [esp + 0x28]
push esi
push edx
push ebp
mov dword [esp + 0x41c], 0x19
call fcn.00418cb0
add esp, 0x10
test eax, eax
je 0x413858
mov ecx, dword [esp + 0x10]
push ebp
push str.tsdUkeyClassLib.dat
call fcn.004156c0
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.004142c0
jmp case.0x413a55.26668
lea ecx, [esp + 0x24]
call fcn.00414340
push edi
lea eax, [esp + 0x28]
push esi
push eax
push ebp
mov dword [esp + 0x41c], 0x1b
call fcn.004192f0
add esp, 0x10
test eax, eax
je 0x4138b0
mov ecx, dword [esp + 0x10]
push ebp
push str.tsdUserGrounpLib.dat
call fcn.004156c0
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00414380
jmp case.0x413a55.26668
mov ecx, dword [esp + 0x10]
push edi
push esi
call fcn.00414e50
mov dword [esp + 0x18], eax
jmp case.0x413a55.26668
lea ecx, [esp + 0x24]
call fcn.004142e0
push edi
lea ecx, [esp + 0x28]
push esi
push ecx
push 0x66e6
mov dword [esp + 0x41c], 0x1a
call fcn.00418fd0
add esp, 0x10
test eax, eax
je 0x413924
mov ecx, dword [esp + 0x10]
push 0x66e6
push str.tsdUkeylib.dat
call fcn.004156c0
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x40c], 0xffffffff
call fcn.00414320
jmp case.0x413a55.26668
cmp ebp, 0x6821
ja 0x4139d9
je 0x4139b4
cmp ebp, 0x66f1
je 0x4139a0
cmp ebp, 0x6801
jne case.0x413a55.26668
push edi
push esi
lea ecx, [esp + 0x2c]
call fcn.0047ed40
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x410], 0x1c
call fcn.00415490
lea ecx, [esp + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40c], 0xffffffff
call fcn.0047ee00
jmp case.0x413a55.26668
mov ecx, dword [esp + 0x10]
push edi
push esi
call fcn.004143e0
mov dword [esp + 0x18], eax
jmp case.0x413a55.26668
push edi
lea eax, [esp + 0x26]
push esi
push eax
push 8
lea ecx, [esp + 0x34]
push 0x4155574f
push ecx
push 0x6821
call fcn.00419610
add esp, 0x1c
jmp 0x413abe
sub ebp, 0x6823
je 0x4139fb
sub ebp, 3
jne case.0x413a55.26668
push edi
push esi
push 0x4355584f
push 0x6826
jmp 0x413ab6
push edi
lea edx, [esp + 0x3b]
push esi
push edx
push 8
lea eax, [esp + 0x364]
push 0x4355574f
push eax
push 0x6823
call fcn.004198b0
add esp, 0x1c
jmp 0x413abe
push edi
push esi
push 0x4155584f
push 0x6828
jmp 0x413ab6
cmp ebp, 0x685b
ja 0x413a77
je 0x413a69
lea eax, [ebp - 0x682b]
cmp eax, 0x1a
ja case.0x413a55.26668
xor ecx, ecx
mov cl, byte [eax + 0x413c28]
jmp dword [ecx*4 + 0x413c20]
mov dword [esp + 0x18], 3
jmp case.0x413a55.26668
push edi
push esi
push 0x4455584f
push 0x685b
jmp 0x413ab6
cmp ebp, 0x68a1
ja 0x413ac4
je case.0x413a55.26667
sub ebp, 0x6879
je 0x413aaa
sub ebp, 2
jne case.0x413a55.26668
push 1
push edi
push esi
push 0x4c52554f
push 0x687b
call fcn.00411a60
add esp, 0x14
test eax, eax
je case.0x413a55.26668
jmp 0x413ae2
push edi
push esi
push 0x4355584f
push 0x6879
call fcn.00411d80
add esp, 0x10
test eax, eax
je case.0x413a55.26668
jmp 0x413ae2
cmp ebp, 0x6991
jne case.0x413a55.26668
push 0
push edi
push esi
push 0x5452554f
push ebp
call fcn.00411a60
add esp, 0x14
test eax, eax
je case.0x413a55.26668
mov dword [esp + 0x18], 1
mov esi, dword [esp + 0x18]
push esi
push str.ImportSDSoftWare_ret_0x_x_
push str.CheckModule
push 0xf
push 0x667744
call fcn.00447b00
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