Function at 0x409040
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x475c4b
mov eax, dword fs:[0]
push eax
mov eax, 0x1a94
call fcn.00444200
mov eax, dword [0x4a6c44]
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 edi, ecx
lea eax, [edi + 0x2a1c]
push eax
push str.In_Download:_m_sClientDirectory___s
push 0xdd
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x1c
cmp byte [edi + 0x482d], 0
je 0x4090da
push str.Download_is_not_needed
push 0xe1
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x18
mov ecx, edi
call fcn.0040c700
mov al, 1
jmp 0x4098cc
push 0x200
call fcn.0041d95f
mov esi, eax
push str.Connecting_...
push esi
call fcn.00407cd0
mov ecx, dword [edi + 0x2e24]
add esp, 0xc
mov edx, dword [ecx]
push 0
push esi
push 0x1797
call dword [edx + 4]
xor ebx, ebx
lea ecx, [ebp - 0x1aa0]
mov dword [ebp - 0x1a2c], ebx
call fcn.004715a0
mov eax, dword [edi + 0x218]
lea ecx, [ebp - 0x1a28]
push 2
push 0x47d658
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1a30], eax
mov dword [ebp - 0x1a18], ebx
mov dword [ebp - 0x1a14], 0xf
mov byte [ebp - 0x1a28], bl
call fcn.00401d51
cmp dword [ebp - 0x1a14], 0x10
lea eax, [ebp - 0x1a28]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0x1a28]
push eax
push ebx
push str._as_wapi_get_client_size
lea eax, [ebp - 0x1a10]
push str._s_client_type_dxml_formatYclient_s
push eax
call fcn.00407cd0
lea eax, [ebp - 0x1a10]
push eax
push str.sTempURL___s
push 0x103
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push ebx
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x30
lea ecx, [ebp - 0x1a30]
lea eax, [edi + 0x18]
push ecx
lea ecx, [ebp - 0xa10]
push ecx
push 0x47b918
push 0x800
lea ecx, [ebp - 0x1a10]
push ecx
push dword [edi + 0x218]
lea ecx, [ebp - 0x1aa0]
push eax
call fcn.00472df0
test al, al
je 0x409246
push 0x200
lea eax, [ebp - 0x210]
push ebx
push eax
call fcn.00447100
lea eax, [ebp - 0x210]
push eax
push str.____ClientSize___
lea eax, [ebp - 0xa10]
push str.___ClientSize___
push eax
call fcn.00413010
add esp, 0x1c
test al, al
je 0x40922f
lea eax, [ebp - 0x210]
push eax
call fcn.0044f73e
mov ebx, eax
mov dword [ebp - 0x1a2c], ebx
jmp 0x409243
lea eax, [ebp - 0xa10]
push eax
call fcn.0044f73e
mov ebx, eax
mov dword [ebp - 0x1a2c], eax
add esp, 4
mov esi, dword [edi + 0x218]
test ebx, ebx
jg 0x409400
cmp esi, 0x1bb
jne 0x40926d
mov dword [edi + 0x218], 0x50
mov eax, 0x50
jmp 0x40927c
mov dword [edi + 0x218], 0x1bb
mov eax, 0x1bb
lea ecx, [ebp - 0x1a30]
push ecx
lea ecx, [ebp - 0xa10]
push ecx
push 0x47b918
push 0x800
lea ecx, [ebp - 0x1a10]
push ecx
push eax
lea eax, [edi + 0x18]
push eax
lea ecx, [ebp - 0x1aa0]
call fcn.00472df0
test al, al
je 0x409303
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00447100
lea eax, [ebp - 0x210]
push eax
push str.____ClientSize___
lea eax, [ebp - 0xa10]
push str.___ClientSize___
push eax
call fcn.00413010
add esp, 0x1c
test al, al
lea eax, [ebp - 0x210]
jne 0x4092f2
lea eax, [ebp - 0xa10]
push eax
call fcn.0044f73e
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1a2c], ebx
test ebx, ebx
jg 0x409400
cmp esi, 0x22b9
lea esi, [edi + 0x18]
je 0x4093ac
lea eax, [ebp - 0x1a30]
mov dword [edi + 0x218], 0x22b9
push eax
lea eax, [ebp - 0xa10]
push eax
push 0x47b918
push 0x800
lea eax, [ebp - 0x1a10]
push eax
push 0x22b9
push esi
lea ecx, [ebp - 0x1aa0]
call fcn.00472df0
test al, al
je 0x4093ac
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00447100
lea eax, [ebp - 0x210]
push eax
push str.____ClientSize___
lea eax, [ebp - 0xa10]
push str.___ClientSize___
push eax
call fcn.00413010
add esp, 0x1c
test al, al
lea eax, [ebp - 0x210]
jne 0x40939b
lea eax, [ebp - 0xa10]
push eax
call fcn.0044f73e
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1a2c], ebx
test ebx, ebx
jg 0x409400
lea eax, [ebp - 0xa10]
push eax
push ebx
push dword [edi + 0x218]
push esi
push str.Failed_to_download_client_from:__s:_d__iDownloadSize___d__sDownloadSize___s
push 0x14e
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x28
lea ecx, [ebp - 0x1a28]
call fcn.004014f2
lea ecx, [ebp - 0x1aa0]
call fcn.00471600
xor al, al
jmp 0x4098cc
push ebx
push str.iDownloadSize___d
push 0x152
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
push 0x200
call fcn.0041d95f
mov esi, eax
lea eax, [edi + 0x21c]
push eax
push str.Downloading__s_...
push esi
call fcn.00407cd0
mov ecx, dword [edi + 0x2e24]
add esp, 0x2c
mov edx, dword [ecx]
push 0
push esi
push 0x1798
call dword [edx + 4]
mov ecx, dword [edi + 0x2e20]
mov dword [ebp - 0x1a5c], 0
mov eax, ecx
nop dword [eax + eax]
cmp byte [edi + 0x3828], 0
je 0x40949d
cmp dword [ebp - 0x1a14], 0x10
lea ecx, [ebp - 0x1a28]
jb 0x40948e
mov ecx, dword [ebp - 0x1a28]
push ecx
push 0
push str._as_wapi_auto_download
add eax, 0x228
jmp 0x4094bf
cmp dword [ebp - 0x1a14], 0x10
lea eax, [ebp - 0x1a28]
cmovae eax, dword [ebp - 0x1a28]
push eax
push 0
push str._as_wapi_get_client
lea eax, [ecx + 0x228]
push str._s_client_type_dclient_s
push eax
call fcn.00407cd0
mov eax, dword [edi + 0x2e20]
lea edx, [edi + 0x18]
add esp, 0x14
mov dword [eax + 0x21c], ebx
mov ecx, dword [edi + 0x2e20]
add ecx, 0x18
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x4094e5
mov ecx, dword [edi + 0x2e20]
mov eax, dword [ebp - 0x1a30]
mov dword [ecx + 0x218], eax
mov eax, dword [edi + 0x2e20]
mov byte [eax + 0xc], 0
mov ecx, dword [edi + 0x2e20]
call fcn.0040e510
mov esi, 1
mov dword [ebp - 0x1a44], 0
mov dword [ebp - 0x1a58], 0
mov dword [ebp - 0x1a54], 0
mov dword [ebp - 0x1a34], esi
call fcn.00412f50
push 0x3c
mov dword [ebp - 0x1a60], eax
mov dword [ebp - 0x1a4c], eax
mov dword [ebp - 0x1a50], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
call fcn.00454c2c
mov ecx, dword [edi + 0x2e20]
add esp, 4
mov dword [ebp - 0x1a3c], eax
mov dword [ebp - 0x1a40], edx
cmp byte [ecx + 0x220], 0
jne 0x409744
nop
call fcn.0040e340
movd xmm1, dword [ebp - 0x1a2c]
mov ebx, eax
cvtdq2ps xmm1, xmm1
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x47e658]
divss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ebp - 0x1a38], eax
cmp esi, 0x10
jl 0x40966d
call fcn.00412f50
mov ecx, eax
mov eax, ebx
sub eax, dword [ebp - 0x1a44]
mov esi, ecx
sub esi, dword [ebp - 0x1a4c]
mov dword [ebp - 0x1a48], ecx
mov ecx, 0
sbb ecx, dword [ebp - 0x1a50]
push ecx
cdq
push esi
push edx
push eax
call fcn.00444230
mov esi, dword [ebp - 0x1a48]
mov ecx, 0
sub esi, dword [ebp - 0x1a60]
mov dword [ebp - 0x1a58], eax
mov eax, ebx
sbb ecx, ecx
cdq
push ecx
push esi
push edx
push eax
call fcn.00444230
mov esi, eax
test esi, esi
jle 0x409647
mov ecx, dword [ebp - 0x1a2c]
mov eax, 0x10624dd3
sub ecx, ebx
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv esi
mov dword [ebp - 0x1a54], eax
mov eax, dword [ebp - 0x1a48]
mov dword [ebp - 0x1a34], 0
mov dword [ebp - 0x1a44], ebx
mov dword [ebp - 0x1a4c], eax
mov dword [ebp - 0x1a50], 0
push 0x200
call fcn.0041d95f
push dword [ebp - 0x1a54]
mov esi, eax
mov eax, dword [ebp - 0x1a58]
lea ecx, [eax*8]
push ecx
push dword [ebp - 0x1a38]
push str._d__d__d
push esi
call fcn.00407cd0
mov ecx, dword [edi + 0x2e24]
add esp, 0x18
mov eax, dword [ecx]
push 0
push esi
push 0x1799
call dword [eax + 4]
push 0x3c
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [ebp - 0x1a34]
inc esi
push 0
mov dword [ebp - 0x1a34], esi
call fcn.00454c2c
cdq
add esp, 4
sub eax, dword [ebp - 0x1a3c]
sbb edx, dword [ebp - 0x1a40]
test edx, edx
jg 0x409702
jl 0x4096ed
cmp eax, 0x258
ja 0x409702
mov ecx, dword [edi + 0x2e20]
cmp byte [ecx + 0x220], 0
je 0x409590
jmp 0x40973e
mov eax, dword [ebp - 0x1a5c]
inc eax
mov dword [ebp - 0x1a5c], eax
cmp eax, 0x3e8
jl 0x4098e8
push str.Download_experiences_timeout
push 0x1b1
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x18
mov ebx, dword [ebp - 0x1a2c]
call fcn.00412f50
mov ecx, eax
xor esi, esi
sub ecx, dword [ebp - 0x1a60]
lea eax, [ebx*8]
cdq
sbb esi, esi
mov dword [ebp - 0x1a3c], ecx
push esi
push ecx
push edx
push eax
mov dword [ebp - 0x1a40], esi
call fcn.00444230
push 0x200
mov dword [ebp - 0x1a38], eax
call fcn.0041d95f
mov ecx, dword [edi + 0x2e20]
add esp, 4
mov esi, eax
call fcn.0040e340
mov ecx, dword [edi + 0x2e20]
cmp ebx, eax
je 0x409838
call fcn.0040e340
push eax
push ebx
push str.Filed_to_complete_download:_iExpectedDownloadSize___d__actual_received___d
push 0x1c8
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
push str.Download_is_incomplete._Please_try_it_again
push esi
call fcn.00407cd0
mov ecx, dword [edi + 0x2e24]
add esp, 0x28
mov eax, dword [ecx]
push 0
push esi
push 0x179a
call dword [eax + 4]
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x428
call fcn.0041d922
add esp, 4
mov dword [ebp - 0x1a64], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x409827
mov ecx, eax
call fcn.0040e2c0
mov ecx, eax
mov byte [ebp - 4], 1
mov dword [edi + 0x2e20], ecx
jmp 0x409466
xor ecx, ecx
mov byte [ebp - 4], 1
mov dword [edi + 0x2e20], ecx
jmp 0x409466
call fcn.0040e340
push eax
push ebx
push str.Download_is_completed:_iExpectedDownloadSize___d__actual_received___d
push 0x1bf
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x20
push 0
push 0x3e8
push dword [ebp - 0x1a40]
push dword [ebp - 0x1a3c]
call fcn.00444230
push edx
push eax
push dword [ebp - 0x1a38]
lea eax, [edi + 0x21c]
push eax
push str.Setup__s_..._n_nSummary___average_speed:__d_kbps__total_time:__d_seconds
push esi
call fcn.00407cd0
mov ecx, dword [edi + 0x2e24]
add esp, 0x18
mov eax, dword [ecx]
push 0
push esi
push 0x179a
call dword [eax + 4]
mov ecx, edi
call fcn.0040c700
lea ecx, [ebp - 0x1a28]
mov bl, al
call fcn.004014f2
lea ecx, [ebp - 0x1aa0]
call fcn.00471600
mov al, bl
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.004440d2
mov esp, ebp
pop ebp
ret
push eax
push str.Download_has_exchaused_manay_failed_tries:_iNumberOfTry___d._Now_exits
push 0x1ac
push str.c:_rhub2code_setuphandler_setuphandler.cpp
push 0
push str.SetupHandler::Download
push dword [0x4a9068]
call fcn.0040ee70
add esp, 0x1c
push 0
call fcn.0044fec3
int3