Function at 0x4486c0
Capabilities:
Check if file exists
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x571b3c
mov eax, dword fs:[0]
push eax
sub esp, 0x82c
mov eax, dword [0x5dccb4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x82c], 0
call fcn.00472ff0
mov ebx, eax
push ebx
mov ecx, dword [ebx]
call dword [ecx]
mov edi, eax
test edi, edi
je 0x44885e
mov dword [ebp - 4], 0
call fcn.0042e350
mov ecx, eax
test ecx, ecx
je 0x449362
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x82c], 1
mov dword [ebp - 0x834], eax
lea eax, [edi - 1]
cmp eax, 3
ja case.default.0x448744
jmp dword [eax*4 + 0x449394]
push 0x10
push 0x58fc84
jmp 0x44876d
push 0x10
push 0x58fca8
jmp 0x44876d
push 0x11
push 0x58fccc
jmp 0x44876d
push 0x1a
push str._rN_f
lea ecx, [ebp - 0x834]
call fcn.0040da40
mov esi, dword [ebp - 0x834]
push 1
push 0
push 0
push 0
push esi
push 0
call fcn.00470450
or ebx, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4487af
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push edi
push str.PreInitCheck_failed__ret___d__exit
call fcn.0044ceb0
add esp, 8
call fcn.0042e350
mov ecx, eax
test ecx, ecx
je 0x44936c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x82c], eax
push edi
push str.055EE061_E6A1_4a97_BCA3_B47A227F452A
lea eax, [ebp - 0x82c]
mov dword [ebp - 4], 1
push str._sPreInitCheck:_d
push eax
call fcn.0040b270
add esp, 0x10
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], 0
mov esi, dword [ebp - 0x82c]
push 0
push esi
push str.install_init_fail
mov byte [ebp - 4], 2
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00430190
mov dword [0x5e3b54], 3
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x448857
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x449346
push str.PreInitCheck_success.
call fcn.0044ceb0
mov eax, dword [ebx]
add esp, 4
push str.CHECK_SIGN
push 0x104
push dword [0x5e3d94]
push ebx
call dword [eax + 4]
test eax, eax
jne 0x448892
push str.check_sign_fail.
call fcn.0044ceb0
add esp, 4
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x82c], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_init_7z
mov dword [ebp - 4], 3
call fcn.00434730
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.00430190
mov eax, dword [ebx]
push str.DLL_7Z
push 0xcb
push dword [0x5e3d94]
push ebx
call dword [eax + 8]
or edi, 0xffffffff
test eax, eax
jne 0x448c1d
mov ecx, dword [0x5e3a90]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ecx, ecx
jne 0x448959
push 0x5dc384
call esi
cmp dword [0x5e3a90], 0
jne 0x448948
push 0x9c
call fcn.004b1019
add esp, 4
mov dword [ebp - 0x830], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x448933
mov ecx, eax
call fcn.0043cd80
mov ecx, eax
jmp 0x448935
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
xchg dword [ebp - 0x82c], eax
mov dword [0x5e3a90], ecx
push 0x5dc384
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x5e3a90]
call fcn.0043f280
cmp dword [eax], 0
je 0x448a13
mov eax, dword [0x5e3a90]
test eax, eax
jne 0x4489ce
push 0x5dc384
call esi
cmp dword [0x5e3a90], 0
jne 0x4489be
push 0x9c
call fcn.004b1019
add esp, 4
mov dword [ebp - 0x830], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x4489a9
mov ecx, eax
call fcn.0043cd80
mov ecx, eax
jmp 0x4489ab
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
xchg dword [ebp - 0x82c], eax
mov dword [0x5e3a90], ecx
push 0x5dc384
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x5e3a90]
cmp dword [eax + 0x88], 0
jne 0x448a13
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x82c], esp
mov dword [eax + 0x24], 0
push 0
push 0
mov dword [ebp - 4], 6
push str.inst_signex_limit
call fcn.00434730
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.00430190
jmp 0x448b66
mov eax, dword [ebx]
push str.EXE_SIGNEX
push 0xcc
push dword [0x5e3d94]
push ebx
call dword [eax + 0xc]
test eax, eax
jne 0x448a52
push eax
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x82c], esp
mov dword [eax + 0x24], 0
push 0
push 0
mov dword [ebp - 4], 7
push str.inst_signex_fail
jmp 0x4489fb
mov eax, dword [ebx]
push str.DLL_7Z
push 0xcb
push dword [0x5e3d94]
push ebx
call dword [eax + 8]
mov dword [ebp - 0x834], eax
call fcn.0042e350
mov ecx, eax
test ecx, ecx
je 0x449376
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x82c], eax
push dword [ebp - 0x834]
lea eax, [ebp - 0x82c]
mov dword [ebp - 4], 8
push str.ex_ary_result__d
push eax
call fcn.0040b270
add esp, 0xc
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], 0
mov ecx, dword [0x5e342c]
mov byte [ebp - 4], 9
test ecx, ecx
jne 0x448b24
push 0x5db188
call esi
cmp dword [0x5e342c], 0
jne 0x448b13
push 0x50
call fcn.004b1019
add esp, 4
mov dword [ebp - 0x838], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x448b01
mov ecx, eax
call fcn.0042d6a0
mov ecx, eax
jmp 0x448b03
xor ecx, ecx
mov byte [ebp - 4], 9
xchg dword [ebp - 0x830], eax
mov dword [0x5e342c], ecx
push 0x5db188
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x5e342c]
mov esi, dword [ebp - 0x82c]
push 0
push esi
push str.inst_signex_recheck
mov byte [ebp - 4], 8
call fcn.00430190
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x448b59
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x834], 0
jne 0x448c1d
push 1
push 0
push 0
push 0
push str.7z.dll_
push 0
call fcn.00470450
push str.Init_7z_failed__exit
call fcn.0044ceb0
add esp, 4
call fcn.0042e350
mov ecx, eax
test ecx, ecx
je 0x449380
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x82c], eax
push 0
push str.055EE061_E6A1_4a97_BCA3_B47A227F452A
lea eax, [ebp - 0x82c]
mov dword [ebp - 4], 0xb
push str._sInit7Z:_d
push eax
call fcn.0040b270
add esp, 0x10
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x838], esp
mov dword [eax + 0x24], 0
mov esi, dword [ebp - 0x82c]
push 0
push esi
push str.install_init_fail
mov byte [ebp - 4], 0xc
call fcn.00434730
mov byte [ebp - 4], 0xb
mov ecx, eax
call fcn.00430190
mov dword [0x5e3b54], 3
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jmp 0x44884d
push str.Init_7z_success.
call fcn.0044ceb0
add esp, 4
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x838], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_init_netbridge
mov dword [ebp - 4], 0xd
call fcn.00434730
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.00430190
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.00516300
mov eax, dword [ebx]
lea ecx, [ebp - 0x810]
add esp, 0xc
push ecx
push str.DLL_NETBRIDGE
push 0xf1
push dword [0x5e3d94]
push ebx
call dword [eax + 0x10]
test eax, eax
jne 0x448d30
push str.Init_NetBridge_failed__exit
call fcn.0044ceb0
add esp, 4
push 1
push 0
push 0
push 0
push str.netul.dll_
push 0
call fcn.00470450
call fcn.0042e350
mov ecx, eax
test ecx, ecx
je 0x44938a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x82c], eax
push 0
push str.055EE061_E6A1_4a97_BCA3_B47A227F452A
lea eax, [ebp - 0x82c]
mov dword [ebp - 4], 0xe
push str._sInitNetBridge:_d
push eax
call fcn.0040b270
add esp, 0x10
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x838], esp
mov dword [eax + 0x24], 0
mov esi, dword [ebp - 0x82c]
push 0
push esi
push str.install_init_fail
mov byte [ebp - 4], 0xf
call fcn.00434730
mov byte [ebp - 4], 0xe
jmp 0x448bf5
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x82c]
call fcn.0040e210
mov dword [ebp - 4], 0x10
call fcn.0042e2c0
push dword [ebp - 0x82c]
mov esi, eax
mov dword [ebp - 0x834], esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x448e02
push dword [ebp - 0x82c]
call fcn.004aa800
add esp, 4
test eax, eax
je 0x448e02
cmp dword [esi], 0
jne 0x448e02
push dword [ebp - 0x82c]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esi], eax
test eax, eax
je 0x448e02
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.HttpInit
push eax
call esi
mov ecx, dword [ebp - 0x834]
push str.HttpUninit
push dword [ecx]
mov dword [ecx + 4], eax
call esi
mov ecx, dword [ebp - 0x834]
push str.zlib_uncompress
push dword [ecx]
mov dword [ecx + 8], eax
call esi
mov ecx, dword [ebp - 0x834]
push str.zlib_compress
push dword [ecx]
mov dword [ecx + 0x10], eax
call esi
mov ecx, dword [ebp - 0x834]
push str.zlib_compressBound
push dword [ecx]
mov dword [ecx + 0x14], eax
call esi
mov esi, dword [ebp - 0x834]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 4]
test eax, eax
je 0x448e02
call eax
mov dword [esi + 0xc], eax
mov edx, dword [ebp - 0x82c]
mov eax, edi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x448e26
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Init_NetBridge_success.
call fcn.0044ceb0
mov eax, dword [ebx]
add esp, 4
push 0
push str.DLL_NET_TITAN
push 0x102
push dword [0x5e3d94]
push ebx
call dword [eax + 0x14]
test eax, eax
jne 0x448e5c
push str.init_net_titan_fail
call fcn.0044ceb0
add esp, 4
mov eax, dword [ebx]
push 0
push str.DLL_NET_XINGYU
push 0x103
push dword [0x5e3d94]
push ebx
call dword [eax + 0x18]
test eax, eax
jne 0x448e85
push str.init_net_xingyu_fail
call fcn.0044ceb0
add esp, 4
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x838], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_check_inst_limit
mov dword [ebp - 4], 0x11
call fcn.00434730
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.00430190
call fcn.004443b0
mov ecx, eax
call fcn.0043d7e0
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.0040c790
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x838], esi
cmp dword [esi - 0xc], 0
mov dword [ebp - 4], 0x12
jne 0x449002
call fcn.004443b0
cmp dword [eax + 0x14], 0
jne 0x449002
call fcn.004443b0
mov ecx, eax
call fcn.0043f280
cmp dword [eax], 0
je 0x449002
call fcn.00472ff0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
test eax, eax
jne 0x449002
push 0x5903e4
lea ecx, [ebp - 0x828]
call fcn.0041f850
lea eax, [ebp - 0x828]
mov byte [ebp - 4], 0x13
push eax
call fcn.00434730
mov ecx, eax
call fcn.0042f420
lea ecx, [ebp - 0x828]
mov byte [ebp - 4], 0x12
mov edi, eax
call fcn.0041b080
test edi, edi
jne 0x448f90
push 0x5903e8
call fcn.0044ceb0
add esp, 4
push edi
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], edi
push 1
push edi
mov byte [ebp - 4], 0x14
push str.aim_eva
jmp 0x449071
push 0x5903e4
lea ecx, [ebp - 0x828]
call fcn.0041f850
lea eax, [ebp - 0x828]
mov byte [ebp - 4], 0x15
push eax
call fcn.00434730
mov ecx, eax
call fcn.0042eb30
lea ecx, [ebp - 0x828]
mov edi, eax
call fcn.0041b080
test edi, edi
jne 0x449002
push edi
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], edi
push 1
push edi
push str.inst_frequency_limit
mov byte [ebp - 4], 0x16
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00430190
mov dword [0x5e3b54], 4
jmp 0x449325
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_check_setup_sign
mov byte [ebp - 4], 0x17
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00430190
mov eax, dword [ebx]
push ebx
call dword [eax + 0x28]
test eax, eax
je 0x449088
push eax
push str.PreInstallCheck_failed__ret___d__exit
call fcn.0044ceb0
add esp, 8
call fcn.00449b80
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], 0
push 0
push 0
mov byte [ebp - 4], 0x18
push str.install_file_fail
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00430190
xor edi, edi
jmp 0x449325
push str.PreInstallCheck_success.
call fcn.0044ceb0
add esp, 4
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_check_setup_ok
mov byte [ebp - 4], 0x19
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00430190
mov edi, dword [ebx]
call fcn.004443b0
mov ecx, eax
call fcn.0043f280
push dword [eax]
push ebx
call dword [edi + 0x70]
mov edi, dword [ebx]
call fcn.004443b0
mov ecx, eax
call fcn.0043f240
push dword [eax]
push ebx
call dword [edi + 0x84]
call fcn.004443b0
mov ecx, dword [ebx]
push dword [eax + 0x60]
push ebx
call dword [ecx + 0x80]
call fcn.004443b0
mov ecx, dword [ebx]
push dword [eax + 0x64]
push ebx
call dword [ecx + 0x88]
mov edi, dword [ebx]
call fcn.004443b0
mov ecx, eax
call fcn.0043d790
push eax
call fcn.004443b0
mov ecx, eax
call fcn.0043f160
push eax
call fcn.004443b0
mov ecx, eax
call fcn.0043d5b0
push eax
push ebx
call dword [edi + 0x8c]
mov edi, dword [ebx]
call fcn.004443b0
mov ecx, eax
call fcn.0043f170
neg eax
sbb eax, eax
inc eax
push eax
push ebx
call dword [edi + 0x90]
mov edi, dword [ebx]
call fcn.004443b0
mov ecx, eax
call fcn.0043d5a0
push eax
push ebx
call dword [edi + 0x94]
call fcn.004443b0
mov ecx, eax
call fcn.0043f160
test eax, eax
je 0x449191
call fcn.00472ff0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x74]
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x830], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_check_buy
mov byte [ebp - 4], 0x1a
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00430190
lea eax, [ebp - 0x830]
push eax
call fcn.004443b0
mov ecx, eax
call fcn.0043d6f0
mov ecx, 0x59057c
mov eax, dword [eax]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x449206
test dx, dx
je 0x449202
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x449206
add eax, 4
add ecx, 4
test dx, dx
jne 0x4491e0
xor edi, edi
jmp 0x44920b
sbb edi, edi
or edi, 1
mov edx, dword [ebp - 0x830]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x449229
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
jne 0x4492be
call fcn.004443b0
cmp dword [eax + 0x60], edi
jne 0x449289
call fcn.004443b0
mov ecx, eax
call fcn.0043f280
cmp dword [eax], edi
je 0x449289
call fcn.004443b0
mov ecx, eax
call fcn.0043f160
test eax, eax
je 0x449289
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x82c]
call fcn.0040e210
mov eax, dword [ebx]
lea ecx, [ebp - 0x82c]
push ecx
push ebx
mov byte [ebp - 4], 0x1b
call dword [eax + 0x98]
lea ecx, [ebp - 0x82c]
jmp 0x4492ea
call fcn.004443b0
mov ebx, dword [eax + 0x60]
call fcn.004443b0
mov ecx, eax
call fcn.0043f280
mov edi, eax
call fcn.004443b0
mov ecx, eax
call fcn.0043f160
push eax
push dword [edi]
push ebx
push str.InstallBundle_D:_d__S:_d__B:_d
call fcn.0044ceb0
add esp, 0x10
jmp 0x4492ef
lea eax, [ebp - 0x830]
push eax
call fcn.004443b0
mov ecx, eax
call fcn.0043d6f0
push dword [eax]
mov byte [ebp - 4], 0x1c
push str.InstallBundle_ResPid:_s
call fcn.0044ceb0
add esp, 8
lea ecx, [ebp - 0x830]
call fcn.0040adf0
push 0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x82c], esp
mov dword [eax + 0x24], 0
push 0
push 0
push str.prepare_check_init_success
mov byte [ebp - 4], 0x1d
call fcn.00434730
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00430190
mov edi, 1
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x449344
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b0a78
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040af40
push 0x80004005
call fcn.0040af40
push 0x80004005
call fcn.0040af40
push 0x80004005
call fcn.0040af40
push 0x80004005
call fcn.0040af40
dec ebx
xchg dword [eax + eax + 84], eax
xchg dword [eax + eax + 0x5d], eax
xchg dword [eax + eax + 0x66], eax
xchg dword [eax + eax - 0x34], eax
int3