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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dc889
mov eax, dword fs:[0]
push eax
sub esp, 0x824
mov eax, dword [0x51c91c]
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 - 0x830], 0
call fcn.00422730
mov ebx, eax
push ebx
mov ecx, dword [ebx]
call dword [ecx]
mov edi, eax
test edi, edi
je 0x414f96
mov dword [ebp - 4], 0
call fcn.00414c00
mov ecx, eax
test ecx, ecx
je 0x415289
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x830], 1
mov dword [ebp - 0x82c], eax
lea eax, [edi - 1]
cmp eax, 3
ja case.default.0x414ea4
jmp dword [eax*4 + 0x4152b8]
push 0x10
push 0x4eba40
jmp 0x414ecd
push 0x10
push 0x4eba64
jmp 0x414ecd
push 0x11
push 0x4eba88
jmp 0x414ecd
push 0x1a
push 0x4ebaac
lea ecx, [ebp - 0x82c]
call fcn.00404ae0
mov esi, dword [ebp - 0x82c]
push 0
push esi
push 0
call fcn.0041e0f0
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 0x414f09
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.00419570
add esp, 8
call fcn.00414c00
mov ecx, eax
test ecx, ecx
je 0x415293
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.0040a1d0
mov esi, dword [ebp - 0x82c]
add esp, 0x10
push 0
push 0
push 1
push esi
push str.install_init_fail
call fcn.00414b70
mov ecx, eax
call fcn.00450780
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x414f8f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x41526d
push str.PreInitCheck_success.
call fcn.00419570
mov eax, dword [ebx]
add esp, 4
push str.DLL_7Z
push 0xcb
push dword [0x51f888]
push ebx
call dword [eax + 4]
test eax, eax
jne 0x415051
push eax
push str.7z.dll_
push eax
call fcn.0041e0f0
push str.Init_7z_failed__exit
call fcn.00419570
add esp, 4
call fcn.00414c00
mov ecx, eax
test ecx, ecx
je 0x41529d
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
mov dword [ebp - 4], 2
push str._sInit7Z:_d
lea eax, [ebp - 0x82c]
push eax
call fcn.0040a1d0
mov esi, dword [ebp - 0x82c]
add esp, 0x10
push 0
push 0
push 1
push esi
push str.install_init_fail
call fcn.00414b70
mov ecx, eax
call fcn.00450780
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jmp 0x414f85
push str.Init_7z_success.
call fcn.00419570
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.00469210
mov eax, dword [ebx]
lea ecx, [ebp - 0x810]
add esp, 0x10
push ecx
push str.DLL_NETLIB
push 0xcc
push dword [0x51f888]
push ebx
call dword [eax + 8]
test eax, eax
jne 0x4150d9
push str.Init_NetLib_failed__exit
call fcn.00419570
add esp, 4
call fcn.00415930
call fcn.00414c00
mov ecx, eax
test ecx, ecx
je 0x4152a7
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
mov dword [ebp - 4], 3
push str._sInitNetLib:_d
jmp 0x41500a
push str.Init_NetLib_success.
call fcn.00419570
add esp, 4
call fcn.00414ae0
mov edi, eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415163
cmp dword [edi], 0
jne 0x415163
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [edi], eax
test eax, eax
je 0x415163
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.HttpInit
push eax
call esi
push str.HttpUninit
push dword [edi]
mov dword [edi + 4], eax
call esi
push str.zlib_uncompress
push dword [edi]
mov dword [edi + 8], eax
call esi
push str.zlib_compress
push dword [edi]
mov dword [edi + 0x10], eax
call esi
push str.zlib_compressBound
push dword [edi]
mov dword [edi + 0x14], eax
call esi
mov dword [edi + 0x18], eax
mov eax, dword [edi + 4]
test eax, eax
je 0x415163
call eax
mov dword [edi + 0xc], eax
push str.InitNetByPath_NetLib_success.
call fcn.00419570
add esp, 4
call fcn.004149c0
mov ecx, eax
call fcn.0040e5c0
mov ecx, dword [ebx]
mov esi, eax
push esi
push ebx
call dword [ecx + 0x50]
test esi, esi
je 0x415268
call fcn.004149c0
mov ecx, eax
call fcn.0040d5c0
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00403830
add esp, 4
lea edi, [eax + 0x10]
mov dword [ebp - 0x82c], edi
push 0x4ebe3c
lea ecx, [ebp - 0x828]
mov dword [ebp - 4], 4
call fcn.00413260
push ecx
lea eax, [edi - 0x10]
mov byte [ebp - 4], 5
mov esi, esp
push eax
mov dword [ebp - 0x830], esi
call fcn.00403830
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x828]
push eax
call fcn.0041fe00
mov edx, dword [ebp - 0x814]
add esp, 8
mov byte [ebp - 4], 4
mov esi, eax
cmp edx, 0x10
jb 0x415234
mov ecx, dword [ebp - 0x828]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41522a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4152b1
push edx
push ecx
call fcn.004530c9
add esp, 8
test esi, esi
jne 0x41525d
push esi
push esi
push 1
push esi
push 0x4ebe40
call fcn.00414b70
mov ecx, eax
call fcn.00450780
lea ecx, [ebp - 0x82c]
call fcn.004034c0
xor eax, eax
jmp 0x41526d
lea ecx, [ebp - 0x82c]
call fcn.004034c0
mov eax, 1
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.004530b8
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.004036d0
push 0x80004005
call fcn.004036d0
push 0x80004005
call fcn.004036d0
push 0x80004005
call fcn.004036d0
call fcn.004845f4
nop
stosd dword es:[edi], eax
dec esi
inc ecx
add byte [esi + ecx*2 + 0x4ebd0041], dh
inc ecx
add dh, al
dec esi
inc ecx
add ah, cl
int3