Function at 0x453892
Capabilities:
Create thread

Disassembly:
push 0x100
mov eax, 0x519fd3
call fcn.004d8abf
mov edi, ecx
lea ecx, [ebp - 0x8c]
xor ebx, ebx
call fcn.0042ce1d
lea ecx, [edi + 0x28]
mov dword [ebp - 4], ebx
push eax
call fcn.0042cf03
lea ecx, [ebp - 0x8c]
call fcn.0042cff5
lea eax, [edi + 0x90]
mov dword [edi + 0x78], ebx
mov dword [edi + 0x7c], ebx
mov dword [edi + 0x80], ebx
mov dword [edi + 0x84], ebx
mov dword [edi + 0x88], ebx
mov dword [edi + 0x8c], ebx
mov ecx, dword [eax]
mov dword [ebp - 0x20], eax
cmp ecx, dword [eax + 4]
je 0x4538f8
mov dword [eax + 4], ecx
lea ebx, [edi + 0x9c]
mov esi, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x2c], ebx
cmp esi, eax
je 0x453925
mov ebx, eax
mov ecx, esi
call fcn.004c3fff
add esi, 0x40
cmp esi, ebx
jne 0x45390c
lea ebx, [edi + 0x9c]
mov eax, dword [ebx]
mov dword [ebx + 4], eax
lea ecx, [edi + 0xa8]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x453935
mov dword [ecx + 4], eax
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x10]
and dword [ebp - 0x14], 0
call fcn.0040687a
lea eax, [edi + 0xb4]
xor esi, esi
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x1c], eax
push ecx
inc esi
mov ecx, eax
mov dword [ebp - 4], esi
call fcn.004032ed
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00407189
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
jae 0x4539b2
push 0x1fb
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x18]
call fcn.00406620
mov dword [ebp - 4], 2
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x18]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00407189
jmp 0x453e14
cmp ebx, 0x40
jbe 0x4539da
push 0x1fc
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x18]
call fcn.00406620
mov dword [ebp - 4], 3
jmp 0x453996
mov esi, dword [ebp + 0xc]
lea ecx, [edi + 0x28]
push esi
mov dword [edi + 0x84], ebx
call fcn.0042cf03
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], ecx
cmp ebx, 1
je 0x453d00
cmp byte [esi + 4], 0
jne 0x453d00
mov eax, dword [esi + 0x20]
or eax, dword [esi + 0x24]
jne 0x453d00
mov eax, dword [esi + 0x28]
and eax, dword [esi + 0x2c]
cmp eax, 0xffffffff
jne 0x453d00
push 1
push 0
push dword [ebp + 0x1c]
lea eax, [edi + 0x78]
push eax
push ecx
sub esp, 0x50
mov ecx, esp
push esi
call fcn.0042ce88
mov edx, dword [ebp + 0x14]
lea ecx, [ebp - 0x18]
call fcn.00431bd8
add esp, 0x64
mov dword [ebp - 4], 9
cmp dword [ebp - 0x18], 0
jge 0x453aad
cmp dword [ebp - 0x14], 0
mov eax, 0x216
cmovne eax, dword [ebp - 0x14]
push eax
push dword [ebp - 0x18]
push ecx
mov esi, esp
mov dword [ebp + 0x14], esi
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x28]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xa
call fcn.0040121b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00407189
jmp 0x4539a2
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov esi, dword [edi + 0x78]
lea ecx, [edi + 0x90]
mov eax, dword [edi + 0x7c]
shrd esi, eax, 0x12
inc esi
mov dword [edi + 0x80], esi
mov edx, dword [ecx + 4]
mov eax, edx
sub eax, dword [ecx]
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x14], eax
cmp esi, eax
jae 0x453aed
mov eax, dword [ecx]
add eax, esi
mov dword [ecx + 4], eax
jmp 0x453b20
jbe 0x453b20
mov eax, dword [ecx + 8]
sub eax, dword [ecx]
cmp esi, eax
jbe 0x453b01
push ecx
push esi
call fcn.004bd993
jmp 0x453b20
sub esi, dword [ebp + 0x14]
je 0x453b1d
push esi
push 0x3f
push edx
call fcn.004d9f30
mov edx, dword [ebp + 0x1c]
lea ecx, [edi + 0x90]
add esp, 0xc
add edx, esi
mov dword [ecx + 4], edx
push ebx
lea ecx, [edi + 0x9c]
call fcn.004ab5fa
push ebx
lea ecx, [edi + 0xa8]
call fcn.004ab560
and dword [ebp + 0x14], 0
push ebx
lea ecx, [ebp + 0x14]
mov dword [ebp - 4], 0xb
call fcn.004ab44d
mov esi, dword [ebp + 0x14]
xor ecx, ecx
xor edx, edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x10], edx
mov eax, dword [edi + 0x9c]
add eax, edx
xor edx, edx
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 0x80]
imul eax, ecx
div ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + 8], eax
cmp eax, dword [edi + 0x80]
jb 0x453b89
mov eax, dword [edi + 0x80]
dec eax
mov dword [edx + 8], eax
xor eax, eax
mov byte [edx + 4], cl
push eax
push eax
push edx
push 0x453883
push eax
push eax
mov dword [edx + 0x18], edi
call fcn.004f5f5d
mov ecx, dword [ebp + 0x1c]
add esp, 0x18
mov dword [esi + ecx*4], eax
test eax, eax
je 0x453cc3
mov edx, dword [ebp + 0x10]
inc ecx
add edx, 0x40
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x10], edx
cmp ecx, ebx
jb 0x453b59
push 0xffffffffffffffff
push 1
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 0xffffffff
jne 0x453c15
push 0x231
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x18]
call fcn.00406620
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x18]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00407189
lea ecx, [ebp + 0x14]
call fcn.004ab4f5
jmp 0x453e14
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
jge 0x453c28
mov ecx, dword [ebp + 8]
push eax
call fcn.0040121b
jmp 0x453c08
xor edi, edi
xor esi, esi
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x18]
mov eax, dword [eax]
add eax, 0xc
add eax, esi
push eax
call fcn.0040121b
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x18], 0
jl 0x453bf1
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
inc edi
add esi, 0x40
cmp edi, ebx
jb 0x453c2c
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov edx, dword [eax]
mov eax, dword [eax + 4]
sub eax, edx
je 0x453c79
cmp byte [edx + ecx], 0
jge 0x453c9a
inc ecx
cmp ecx, eax
jb 0x453c6e
mov esi, dword [ebp + 8]
and dword [esi], 0
lea ecx, [esi + 8]
and dword [esi + 4], 0
call fcn.0040687a
lea ecx, [ebp + 0x14]
call fcn.004ab4f5
mov eax, esi
jmp 0x453e17
push 0x244
push 0x80004005
push ecx
mov eax, esp
push ecx
push str.Downloader_error___d_not_completed_
push eax
call fcn.004011e0
mov ecx, dword [ebp + 8]
add esp, 0xc
call fcn.00406620
jmp 0x453c08
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x22e
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x18]
call fcn.00406620
mov byte [ebp - 4], 0xc
jmp 0x453bf1
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x24], 0x552e10
mov dword [ebp - 0x20], edi
call fcn.0042d201
lea ecx, [ebp - 0x10c]
mov dword [ebp - 4], 4
call fcn.0042d634
push esi
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x10c]
call fcn.0042d7ac
mov byte [ebp - 4], 6
cmp dword [ebp - 0x18], 0
jge 0x453d91
cmp dword [ebp - 0x14], 0
mov eax, 0x20c
cmovne eax, dword [ebp - 0x14]
push eax
push dword [ebp - 0x18]
push ecx
mov esi, esp
mov dword [ebp + 0x14], esi
mov edi, dword [ebp - 0x10]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x38]
mov dword [esi], eax
call fcn.00406620
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 7
call fcn.0040121b
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
jmp 0x453dfc
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xf0], eax
mov eax, dword [edi + 0x8c]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x10c]
push 0xbb8
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0042dadf
mov ecx, dword [ebp + 0x1c]
mov byte [ebp - 4], 8
test ecx, ecx
je 0x453dea
lea eax, [ebp - 0x7c]
push eax
call fcn.0042df32
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x38]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00407189
lea ecx, [ebp - 0x10c]
call fcn.0042dec1
lea ecx, [ebp - 0x7c]
call fcn.0042df17
mov eax, dword [ebp + 8]
call fcn.004d8a8d
ret 0x18