Function at 0x4a64a0
Capabilities:
Create thread
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x511dda
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push esi
push edi
mov eax, dword [0x572bb0]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov dword [esp + 0x6c], ecx
call fcn.00460220
xor edx, edx
mov ecx, eax
test ecx, ecx
setne dl
test edx, edx
jne 0x4a64f2
push 0x80004005
call fcn.004712d0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x84], eax
push 0x550980
lea ecx, [esp + 0x68]
mov dword [esp + 0xb4], 0
call fcn.00471c70
push str.downloadFile
lea ecx, [esp + 0x28]
mov byte [esp + 0xb4], 1
call fcn.00471bb0
mov byte [esp + 0xb0], 2
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6554
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x34], esi
mov byte [esp + 0xb0], 3
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6586
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x30], edi
lea eax, [esp + 0x34]
mov byte [esp + 0xb0], 4
push eax
lea edx, [esp + 0x34]
lea ecx, [esp + 0x7c]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x64]
mov byte [esp + 0xb0], 5
push ecx
mov edx, eax
lea ecx, [esp + 0x54]
call fcn.00472fc0
add esp, 4
mov ebx, eax
mov byte [esp + 0xb0], 6
call fcn.004eb20c
push eax
mov edx, ebx
lea ecx, [esp + 0x24]
call fcn.00472f20
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 7
cmp dword [ecx + 0xc], 0
je 0x4a660d
push 0
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 6
or ebx, 0xffffffff
mov edx, dword [esp + 0x20]
mov eax, ebx
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4a6635
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 5
mov ecx, ebx
mov edx, dword [esp + 0x50]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a665a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 4
mov ecx, ebx
mov edx, dword [esp + 0x78]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a667f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [esp + 0xb0], 3
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a66a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 2
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a66c4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 1
mov ecx, edi
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a66e9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0
mov ecx, edi
mov edx, dword [esp + 0x64]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a670e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x88], 0
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6735
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x7c], eax
mov esi, dword [ebp + 8]
mov ecx, esi
push 0x54d294
mov byte [esp + 0xb4], 8
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a856c
push 0x54d294
mov ecx, esi
call fcn.0048ad90
cmp byte [eax + 8], 4
jne 0x4a856c
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6797
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x74], eax
push 0x54d294
mov ecx, esi
mov byte [esp + 0xb4], 0xd
call fcn.0048ad90
mov esi, eax
cmp byte [esi + 8], 4
je 0x4a67d8
push 0x2a9
push str...WebInstallerUtilsjson_value.cpp
push str.type___stringValue
call fcn.004edc00
add esp, 0xc
mov edx, dword [esi]
test edx, edx
jne 0x4a67e2
xor ecx, ecx
jmp 0x4a67f0
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a67e7
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.0047e3b0
lea edx, [esp + 0x74]
lea ecx, [esp + 0x84]
call fcn.0047da90
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a682a
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x80], eax
lea edx, [esp + 0x80]
mov byte [esp + 0xb0], 0xe
lea ecx, [esp + 0x74]
call fcn.0047d6a0
push 0x5509f0
lea ecx, [esp + 0x68]
call fcn.00471bb0
mov byte [esp + 0xb0], 0xf
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6885
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x68], eax
mov eax, str.strUrl
mov byte [esp + 0xb0], 0x10
test eax, 0xffff0000
jne 0x4a68c2
movzx esi, ax
mov ecx, esi
call fcn.00471400
test eax, eax
je 0x4a68d0
push esi
push eax
lea ecx, [esp + 0x70]
call fcn.004724d0
jmp 0x4a68d0
push str.strUrl
lea ecx, [esp + 0x6c]
call fcn.00471eb0
push str.downloadFile
lea ecx, [esp + 0x28]
mov byte [esp + 0xb4], 0x11
call fcn.00471bb0
mov byte [esp + 0xb0], 0x12
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a690a
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x34], esi
mov byte [esp + 0xb0], 0x13
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a693c
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x30], edi
lea eax, [esp + 0x34]
mov byte [esp + 0xb0], 0x14
push eax
lea edx, [esp + 0x34]
lea ecx, [esp + 0x2c]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0xb0], 0x15
push ecx
mov edx, eax
lea ecx, [esp + 0x3c]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x74]
mov byte [esp + 0xb0], 0x16
push ecx
mov edx, eax
lea ecx, [esp + 0x7c]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x64]
mov byte [esp + 0xb0], 0x17
push ecx
mov edx, eax
lea ecx, [esp + 0x54]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x80]
mov byte [esp + 0xb0], 0x18
push ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x19
cmp dword [ecx + 0xc], 0
je 0x4a69f9
push 0
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x18
or ebx, 0xffffffff
mov edx, dword [esp + 0x20]
mov ecx, ebx
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6a21
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x17
mov ecx, ebx
mov edx, dword [esp + 0x50]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6a46
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x16
mov ecx, ebx
mov edx, dword [esp + 0x78]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6a6b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x15
mov ecx, ebx
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6a90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x14
mov ecx, ebx
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6ab5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [esp + 0xb0], 0x13
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6ad9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x12
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6afa
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x11
mov ecx, edi
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6b1f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0xf
mov ecx, edi
mov edx, dword [esp + 0x68]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6b44
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0xe
mov ecx, edi
mov edx, dword [esp + 0x64]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a6b69
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push str.fileName
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a8444
push str.fileName
mov ecx, ebx
call fcn.0048ad90
cmp byte [eax + 8], 4
jne 0x4a8444
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6bb5
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x78], eax
push str.fileName
mov ecx, ebx
mov byte [esp + 0xb4], 0x1e
call fcn.0048ad90
mov esi, eax
cmp byte [esi + 8], 4
je 0x4a6bf6
push 0x2a9
push str...WebInstallerUtilsjson_value.cpp
push str.type___stringValue
call fcn.004edc00
add esp, 0xc
mov edx, dword [esi]
test edx, edx
jne 0x4a6c00
xor ecx, ecx
jmp 0x4a6c0e
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a6c05
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.0047e3b0
lea edx, [esp + 0x78]
lea ecx, [esp + 0x84]
call fcn.0047da90
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6c48
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x68], eax
push str.responseType
mov ecx, ebx
mov byte [esp + 0xb4], 0x1f
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a6cb9
push str.responseType
mov ecx, ebx
call fcn.0048ad90
cmp byte [eax + 8], 4
jne 0x4a6cb9
push str.responseType
mov ecx, ebx
call fcn.0048ad90
mov esi, eax
cmp byte [esi + 8], 4
je 0x4a6cae
push 0x2a9
push str...WebInstallerUtilsjson_value.cpp
push str.type___stringValue
call fcn.004edc00
add esp, 0xc
push dword [esi]
lea ecx, [esp + 0x6c]
call fcn.00471eb0
and dword [esp + 0x9c], 0xfffffe00
mov dword [esp + 0xa0], 0
push str.acceptedStatusCodes
mov ecx, ebx
mov byte [esp + 0xb4], 0x21
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a6d1f
push str.acceptedStatusCodes
mov ecx, ebx
call fcn.0048ad90
mov al, byte [eax + 8]
test al, al
je 0x4a6d01
cmp al, 6
jne 0x4a6d1f
push str.acceptedStatusCodes
mov ecx, ebx
call fcn.0048ad90
push eax
lea ecx, [esp + 0x98]
call fcn.0048a3a0
jmp 0x4a6f1c
mov eax, dword [esp + 0x44]
and eax, 0xffffff04
mov dword [esp + 0x48], 0
or eax, 0x104
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a6d61
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push 0x54d360
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xb0], 0x22
call fcn.0048a8e0
push eax
lea ecx, [esp + 0x98]
call fcn.0048a960
mov esi, eax
lea ecx, [esp + 0x54]
lea eax, [esp + 0x3c]
push eax
call fcn.0048a170
movsx ecx, byte [esi + 8]
mov ebx, dword [esp + 0x5c]
mov eax, ebx
xor eax, ecx
mov byte [esi + 8], bl
mov ecx, dword [esi]
and eax, 0xff
mov edx, dword [esi + 4]
xor ebx, eax
mov eax, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 4], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 8]
mov edx, ecx
shl edx, 0x17
mov eax, ecx
sar edx, 0x1f
xor eax, ebx
shl edx, 8
and eax, 0x100
xor edx, ebx
xor eax, ecx
and edx, 0x100
mov dword [esi + 8], eax
xor ebx, edx
lea ecx, [esp + 0x54]
mov dword [esp + 0x5c], ebx
call fcn.0048a2e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x21
call fcn.0048a2e0
mov eax, dword [esp + 0x44]
and eax, 0xffffff04
mov dword [esp + 0x48], 0
or eax, 0x104
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a6e5e
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push 0x54dd40
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xb0], 0x23
call fcn.0048a8e0
push eax
lea ecx, [esp + 0x98]
call fcn.0048a960
mov esi, eax
lea ecx, [esp + 0x54]
lea eax, [esp + 0x3c]
push eax
call fcn.0048a170
movsx ecx, byte [esi + 8]
mov ebx, dword [esp + 0x5c]
mov eax, ebx
xor eax, ecx
mov byte [esi + 8], bl
mov ecx, dword [esi]
and eax, 0xff
mov edx, dword [esi + 4]
xor ebx, eax
mov eax, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 4], eax
mov eax, ebx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 8]
mov edx, ecx
shl edx, 0x17
xor eax, ecx
sar edx, 0x1f
and eax, 0x100
shl edx, 8
xor eax, ecx
xor edx, ebx
mov dword [esi + 8], eax
and edx, 0x100
lea ecx, [esp + 0x54]
xor ebx, edx
mov dword [esp + 0x5c], ebx
call fcn.0048a2e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x21
call fcn.0048a2e0
mov ebx, dword [ebp + 8]
push str.onFinishId
mov ecx, ebx
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a6f6d
push str.onFinishId
mov ecx, ebx
call fcn.0048ad90
cmp byte [eax + 8], 1
jne 0x4a6f6d
push str.onFinishId
mov ecx, ebx
call fcn.0048ad90
mov ecx, eax
call fcn.0048a570
mov dword [esp + 0x34], eax
jmp 0x4a70ec
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a6f89
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
mov eax, str.onFinishId_not_exist
mov byte [esp + 0xb0], 0x24
test eax, 0xffff0000
jne 0x4a6fc6
movzx esi, ax
mov ecx, esi
call fcn.00471400
test eax, eax
je 0x4a6fd4
push esi
push eax
lea ecx, [esp + 0x30]
call fcn.004724d0
jmp 0x4a6fd4
push str.onFinishId_not_exist
lea ecx, [esp + 0x2c]
call fcn.00471eb0
push str.downloadFile
lea ecx, [esp + 0x28]
mov byte [esp + 0xb4], 0x25
call fcn.00471bb0
mov byte [esp + 0xb0], 0x26
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a700e
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
lea eax, [esp + 0x28]
mov byte [esp + 0xb0], 0x27
push eax
lea edx, [esp + 0x24]
lea ecx, [esp + 0x54]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x28
cmp dword [ecx + 0xc], 0
je 0x4a705c
push 2
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x27
mov ecx, edi
mov edx, dword [esp + 0x50]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7081
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x26
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a70a2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x25
mov ecx, edi
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a70c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x21
mov ecx, edi
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a70ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.onProgressId
mov ecx, ebx
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a712d
push str.onProgressId
mov ecx, ebx
call fcn.0048ad90
cmp byte [eax + 8], 1
jne 0x4a712d
push str.onProgressId
mov ecx, ebx
call fcn.0048ad90
mov ecx, eax
call fcn.0048a570
mov dword [esp + 0x30], eax
jmp 0x4a72ac
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a7149
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
mov eax, str.onProgressId_not_exist
mov byte [esp + 0xb0], 0x29
test eax, 0xffff0000
jne 0x4a7186
movzx esi, ax
mov ecx, esi
call fcn.00471400
test eax, eax
je 0x4a7194
push esi
push eax
lea ecx, [esp + 0x30]
call fcn.004724d0
jmp 0x4a7194
push str.onProgressId_not_exist
lea ecx, [esp + 0x2c]
call fcn.00471eb0
push str.downloadFile
lea ecx, [esp + 0x28]
mov byte [esp + 0xb4], 0x2a
call fcn.00471bb0
mov byte [esp + 0xb0], 0x2b
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a71ce
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
lea eax, [esp + 0x28]
mov byte [esp + 0xb0], 0x2c
push eax
lea edx, [esp + 0x24]
lea ecx, [esp + 0x54]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x2d
cmp dword [ecx + 0xc], 0
je 0x4a721c
push 2
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x2c
mov ecx, edi
mov edx, dword [esp + 0x50]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7241
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x2b
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7262
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2a
mov ecx, edi
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7287
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x21
mov ecx, edi
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a72ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.progressPercent
mov ecx, ebx
mov dword [esp + 0x28], 0
call fcn.0048ad90
cmp eax, 0x57a1b0
je 0x4a730c
push str.progressPercent
mov ecx, ebx
call fcn.0048ad90
mov al, byte [eax + 8]
cmp al, 1
je 0x4a72e2
cmp al, 2
je 0x4a72e2
cmp al, 5
jne 0x4a730c
push str.progressPercent
mov ecx, ebx
call fcn.0048ad90
mov ecx, eax
call fcn.0048a570
mov edi, eax
mov dword [esp + 0x24], edi
test edi, edi
js 0x4a7304
cmp edi, 0x64
jle 0x4a730c
mov dword [esp + 0x24], 0
mov esi, dword [0x57a264]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x4a7338
cmp ecx, dword [esi - 0x10]
jne 0x4a7338
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4a7372
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x4a734c
call fcn.004722b0
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [edi + 0x10]
push eax
call fcn.004ea853
add esp, 0x10
lea eax, [edi + 0x10]
mov dword [esp + 0x28], eax
lea esi, [eax - 0x10]
mov byte [esp + 0xb0], 0x2e
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x4a73ab
cmp ecx, dword [esi]
jne 0x4a73ab
mov ebx, esi
mov eax, 1
mov dword [esp + 0x64], ebx
lock xadd dword [edx], eax
jmp 0x4a73ec
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
mov dword [esp + 0x64], ebx
test ebx, ebx
jne 0x4a73c3
call fcn.004722b0
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.004ea853
add esp, 0x10
lea eax, [ebx + 0x10]
mov dword [esp + 0x90], eax
mov byte [esp + 0xb0], 0x2f
lea ecx, [esp + 0x28]
mov ebx, dword [esp + 0x78]
push dword [ebx - 0xc]
push ebx
call fcn.0047a5d0
mov esi, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.0047e800
add esp, 4
test al, al
je 0x4a7acb
lea edx, [ebx - 0x10]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], edx
push 0x2e
push ebx
call fcn.004ed9f1
mov edi, eax
add esp, 8
test edi, edi
je 0x4a7453
sub edi, ebx
sar edi, 1
mov dword [esp + 0x20], edi
cmp edi, 0xffffffff
jne 0x4a745a
mov eax, dword [ebx - 0xc]
mov dword [esp + 0x20], eax
mov ecx, dword [ebx - 0x10]
lea edi, [ebx - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
mov ecx, eax
jl 0x4a747f
cmp ecx, dword [edi]
jne 0x4a747f
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4a74c3
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x50], edx
test edx, edx
je 0x4a7347
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [edi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.004ea853
mov edi, dword [esp + 0x60]
add esp, 0x10
lea eax, [edi + 0x10]
mov dword [esp + 0x38], eax
mov byte [esp + 0xb0], 0x30
call fcn.00460220
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4a64e8
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x50], eax
push dword [esp + 0x2c]
lea eax, [esp + 0x54]
mov byte [esp + 0xb4], 0x31
push str.___d_
push eax
call fcn.00472d30
mov edi, dword [esp + 0x5c]
lea ecx, [esp + 0x44]
add esp, 0xc
push edi
push dword [esp + 0x24]
call fcn.004c79f0
lea eax, [esp + 0x38]
push eax
lea edx, [esp + 0x94]
lea ecx, [esp + 0x20]
call fcn.004738b0
add esp, 4
mov byte [esp + 0xb0], 0x32
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], ecx
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x4a761f
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [esp + 0x8c], eax
jl 0x4a760e
lea esi, [edx - 0x10]
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4a760a
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x4a759e
cmp ecx, dword [esi]
jne 0x4a759e
mov eax, 1
lock xadd dword [edx], eax
jmp 0x4a75e2
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x4a7347
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.004ea853
mov esi, dword [esp + 0x30]
add esp, 0x10
mov ecx, dword [esp + 0x8c]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4a7601
mov edx, dword [esp + 0x70]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0x10
mov dword [esp + 0x28], esi
jmp 0x4a761f
mov edx, dword [esp + 0x20]
push dword [edx - 0xc]
lea ecx, [esp + 0x2c]
push edx
call fcn.004725a0
mov esi, dword [esp + 0x28]
mov byte [esp + 0xb0], 0x31
or ecx, 0xffffffff
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7645
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esi
call fcn.0047e800
lea edx, [edi - 0x10]
mov byte [esp + 0xb4], 0x30
or edi, 0xffffffff
add esp, 4
test al, al
mov ecx, edi
lea eax, [edx + 0xc]
je 0x4a76b1
inc dword [esp + 0x2c]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a767c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2f
mov ecx, edi
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a76a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esp + 0x2c], 0x3e8
jle 0x4a7435
jmp 0x4a76f5
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a76c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2f
mov ecx, edi
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a76e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esp + 0x2c], 0x3e8
jle 0x4a7907
push str.downloadFile_findfile_1000
lea ecx, [esp + 0x80]
call fcn.00471e60
push str.ERROR_could_not_find_valid_file_name_to_use
lea ecx, [esp + 0x54]
call fcn.00471c70
push str.downloadFile
lea ecx, [esp + 0x24]
mov byte [esp + 0xb4], 0x33
call fcn.00471bb0
mov byte [esp + 0xb0], 0x34
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a774e
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea eax, [esp + 0x50]
mov byte [esp + 0xb0], 0x35
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x74]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x36
cmp dword [ecx + 0xc], 0
je 0x4a779c
push 2
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x35
or ecx, 0xffffffff
mov edx, dword [esp + 0x70]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a77c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [esp + 0xb0], 0x34
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a77e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x33
mov ecx, edi
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a780b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2f
mov ecx, edi
mov edx, dword [esp + 0x50]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7830
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2e
mov ecx, edi
mov edx, dword [esp + 0x64]
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7852
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x21
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7873
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x94]
mov byte [esp + 0xb0], 0x1f
call fcn.0048a2e0
mov byte [esp + 0xb0], 0x1e
mov ecx, edi
mov edx, dword [esp + 0x68]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a78ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0xe
mov edx, dword [esp + 0x18]
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a78ce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0xd
mov ecx, edi
mov edx, dword [esp + 0x80]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a78f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 8
mov edx, dword [esp + 0x74]
jmp 0x4a868c
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a7923
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x38], eax
mov eax, str.strOutputPath
mov byte [esp + 0xb0], 0x37
test eax, 0xffff0000
jne 0x4a7960
movzx edi, ax
mov ecx, edi
call fcn.00471400
test eax, eax
je 0x4a796e
push edi
push eax
lea ecx, [esp + 0x40]
call fcn.004724d0
jmp 0x4a796e
push str.strOutputPath
lea ecx, [esp + 0x3c]
call fcn.00471eb0
push str.downloadFile
lea ecx, [esp + 0x24]
mov byte [esp + 0xb4], 0x38
call fcn.00471bb0
mov byte [esp + 0xb0], 0x39
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a79a8
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x18], edi
lea eax, [esp + 0x38]
mov byte [esp + 0xb0], 0x3a
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x74]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x28]
mov byte [esp + 0xb0], 0x3b
push ecx
mov edx, eax
lea ecx, [esp + 0x20]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x3c
cmp dword [ecx + 0xc], 0
je 0x4a7a11
push 0
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x3b
or ecx, 0xffffffff
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7a37
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x3a
or ecx, 0xffffffff
mov edx, dword [esp + 0x70]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7a5d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [esp + 0xb0], 0x39
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7a81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x38
mov ecx, edi
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7aa6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2f
mov ecx, edi
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7acb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x10
call fcn.004e991c
add esp, 4
mov dword [esp + 0x2c], eax
mov edi, eax
test edi, edi
je 0x4a7af3
mov byte [edi + 8], 0
and dword [edi + 8], 0xfffffeff
mov dword [edi + 0xc], 0
jmp 0x4a7af9
xor edi, edi
mov dword [esp + 0x2c], edi
mov byte [esp + 0xb0], 0x2f
mov eax, dword [esp + 0x44]
and eax, 0xffffff04
mov dword [esp + 0x48], 0
or eax, 0x104
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a7b43
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push 0x54d354
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
push ecx
push str.method
mov ecx, edi
mov byte [esp + 0xb8], 0x3f
call fcn.0048ac10
mov edi, eax
lea ecx, [esp + 0x54]
lea eax, [esp + 0x3c]
mov dword [esp + 0x1c], edi
push eax
call fcn.0048a170
movsx ecx, byte [edi + 8]
mov eax, dword [esp + 0x5c]
xor ecx, eax
mov byte [edi + 8], al
and ecx, 0xff
mov edx, dword [edi + 4]
xor eax, ecx
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 4], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 8]
mov edx, ecx
mov edi, dword [esp + 0x18]
mov eax, ecx
shl edx, 0x17
xor eax, edi
sar edx, 0x1f
and eax, 0x100
xor eax, ecx
shl edx, 8
mov ecx, dword [esp + 0x1c]
xor edx, edi
and edx, 0x100
xor edi, edx
mov dword [esp + 0x5c], edi
mov dword [ecx + 8], eax
lea ecx, [esp + 0x54]
call fcn.0048a2e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x2f
call fcn.0048a2e0
lea edx, [esp + 0x74]
lea ecx, [esp + 0x70]
call fcn.0047d4b0
mov edi, eax
mov byte [esp + 0xb0], 0x40
mov eax, dword [edi]
cmp dword [eax - 4], 1
jle 0x4a7c2a
push dword [eax - 0xc]
mov ecx, edi
call fcn.0047e0e0
mov eax, dword [esp + 0x44]
mov edi, dword [edi]
and eax, 0xffffff04
or eax, 0x104
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a7c6e
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
push ecx
mov ecx, dword [esp + 0x30]
push 0x54d294
mov byte [esp + 0xb8], 0x41
call fcn.0048ac10
mov edi, eax
lea ecx, [esp + 0x54]
lea eax, [esp + 0x3c]
mov dword [esp + 0x1c], edi
push eax
call fcn.0048a170
movsx ecx, byte [edi + 8]
mov eax, dword [esp + 0x5c]
xor ecx, eax
mov byte [edi + 8], al
and ecx, 0xff
mov edx, dword [edi + 4]
xor eax, ecx
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 4], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 8]
mov edx, ecx
mov edi, dword [esp + 0x18]
mov eax, ecx
shl edx, 0x17
xor eax, edi
sar edx, 0x1f
and eax, 0x100
xor eax, ecx
shl edx, 8
mov ecx, dword [esp + 0x1c]
xor edx, edi
and edx, 0x100
xor edi, edx
mov dword [esp + 0x5c], edi
mov dword [ecx + 8], eax
lea ecx, [esp + 0x54]
call fcn.0048a2e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x40
call fcn.0048a2e0
mov byte [esp + 0xb0], 0x2f
or ecx, 0xffffffff
mov edx, dword [esp + 0x70]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a7d50
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, dword [esp + 0x30]
push str.acceptedStatusCodes
call fcn.0048ac10
mov edi, eax
lea ecx, [esp + 0x54]
lea eax, [esp + 0x94]
mov dword [esp + 0x1c], edi
push eax
call fcn.0048a170
movsx ecx, byte [edi + 8]
mov eax, dword [esp + 0x5c]
xor ecx, eax
mov byte [edi + 8], al
and ecx, 0xff
mov edx, dword [edi + 4]
xor eax, ecx
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 4], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 8]
mov edx, ecx
mov edi, dword [esp + 0x18]
mov eax, ecx
shl edx, 0x17
xor eax, edi
sar edx, 0x1f
and eax, 0x100
xor eax, ecx
shl edx, 8
mov ecx, dword [esp + 0x1c]
xor edx, edi
and edx, 0x100
xor edi, edx
mov dword [esp + 0x5c], edi
mov dword [ecx + 8], eax
lea ecx, [esp + 0x54]
call fcn.0048a2e0
mov eax, dword [esp + 0x44]
and eax, 0xffffff04
mov dword [esp + 0x48], 0
or eax, 0x104
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a7e26
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push 0x54d378
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
push ecx
mov ecx, dword [esp + 0x30]
push str.acceptTypes
mov byte [esp + 0xb8], 0x42
call fcn.0048ac10
mov edi, eax
lea ecx, [esp + 0x54]
lea eax, [esp + 0x3c]
mov dword [esp + 0x1c], edi
push eax
call fcn.0048a170
movsx ecx, byte [edi + 8]
mov eax, dword [esp + 0x5c]
xor ecx, eax
mov byte [edi + 8], al
and ecx, 0xff
mov edx, dword [edi + 4]
xor eax, ecx
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x58]
mov dword [edi + 4], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 8]
mov edx, ecx
mov edi, dword [esp + 0x18]
mov eax, edi
shl edx, 0x17
xor eax, ecx
sar edx, 0x1f
and eax, 0x100
xor eax, ecx
shl edx, 8
mov ecx, dword [esp + 0x1c]
xor edx, edi
and edx, 0x100
xor edi, edx
mov dword [esp + 0x5c], edi
mov dword [ecx + 8], eax
lea ecx, [esp + 0x54]
call fcn.0048a2e0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x2f
call fcn.0048a2e0
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a7f02
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x38], eax
lea edx, [esp + 0x38]
mov byte [esp + 0xb0], 0x43
lea ecx, [esp + 0x28]
call fcn.0047db90
mov edi, dword [esp + 0x38]
cmp dword [edi - 4], 1
jle 0x4a7f3f
push dword [edi - 0xc]
lea ecx, [esp + 0x3c]
call fcn.0047e0e0
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
and eax, 0xffffff04
mov dword [esp + 0x48], 0
or eax, 0x104
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a7f81
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push edi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
mov byte [esp + 0xb0], 0x44
push eax
push ecx
mov ecx, dword [esp + 0x34]
push str.outputFile
call fcn.0048ac10
mov ecx, eax
call fcn.0048a3a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x43
call fcn.0048a2e0
lea edx, [esp + 0x68]
lea ecx, [esp + 0x1c]
call fcn.0047d4b0
mov dword [esp + 0x18], eax
mov byte [esp + 0xb0], 0x45
mov ecx, dword [eax]
cmp dword [ecx - 4], 1
jle 0x4a7ff6
push dword [ecx - 0xc]
mov ecx, eax
call fcn.0047e0e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
and eax, 0xffffff04
mov dword [esp + 0x48], 0
or eax, 0x104
mov dword [esp + 0x44], eax
mov eax, dword [0x57c5d0]
test al, 1
jne 0x4a803e
or eax, 1
mov dword [0x57c510], 0x54e26c
push 0x518e70
mov dword [0x57c5d0], eax
call fcn.004ea214
add esp, 4
mov ecx, dword [0x573ffc]
push 0xffffffffffffffff
push dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
mov byte [esp + 0xb0], 0x46
push eax
push ecx
mov ecx, dword [esp + 0x34]
push str.responseType
call fcn.0048ac10
mov ecx, eax
call fcn.0048a3a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x45
call fcn.0048a2e0
mov byte [esp + 0xb0], 0x43
or ecx, 0xffffffff
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a80ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x44]
and eax, 0xffffff01
mov dword [esp + 0x48], 0
or eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
mov byte [esp + 0xb0], 0x47
push eax
push ecx
mov ecx, dword [esp + 0x34]
push str.progressCallbackId
call fcn.0048ac10
mov ecx, eax
call fcn.0048a3a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x43
call fcn.0048a2e0
mov eax, dword [esp + 0x44]
and eax, 0xffffff01
mov dword [esp + 0x48], 0
or eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
mov byte [esp + 0xb0], 0x48
push eax
push ecx
mov ecx, dword [esp + 0x34]
push str.finishCallbackId
call fcn.0048ac10
mov ecx, eax
call fcn.0048a3a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x43
call fcn.0048a2e0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4a81ad
mov eax, dword [esp + 0x44]
and eax, 0xffffff01
mov dword [esp + 0x48], 0
or eax, 1
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], eax
lea eax, [esp + 0x3c]
mov byte [esp + 0xb0], 0x49
push eax
push ecx
mov ecx, dword [esp + 0x34]
push str.progressPercent
call fcn.0048ac10
mov ecx, eax
call fcn.0048a3a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x43
call fcn.0048a2e0
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov ecx, dword [esp + 0x44]
and ecx, 0xffffff01
mov dword [esp + 0x18], eax
or ecx, 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
mov byte [esp + 0xb0], 0x4a
push eax
push ecx
mov ecx, dword [esp + 0x34]
push str.hadleLife
call fcn.0048ac10
mov ecx, eax
call fcn.0048a3a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb0], 0x43
call fcn.0048a2e0
lea eax, [esp + 0x88]
push eax
push 0
push dword [esp + 0x34]
push 0x4a1ba0
push 0
push 0
call fcn.004ea558
mov ecx, eax
add esp, 0x18
mov eax, dword [esp + 0x18]
mov dword [esp + 0x88], eax
test ecx, ecx
jne 0x4a8438
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a8254
push ecx
mov ecx, eax
call fcn.004a89d0
push str.downloadFile_beginthreadex_error
lea ecx, [esp + 0x80]
call fcn.00471e60
push str._beginthreadex_error
lea ecx, [esp + 0x34]
call fcn.00471c70
push str.downloadFile
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 0x4b
call fcn.00471bb0
lea ecx, [esp + 0x1c]
call fcn.00472bb0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb0], 0x4d
push ecx
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x4e
cmp dword [ecx + 0xc], 0
je 0x4a82d0
push 2
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x4d
or ecx, 0xffffffff
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a82f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x4c
or ecx, 0xffffffff
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a831c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x4b
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8342
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x43
or ecx, 0xffffffff
mov edx, dword [esp + 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8368
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x88], 0
lea edx, [edi - 0x10]
mov byte [esp + 0xb0], 0x2f
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8397
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x2e
mov ecx, edi
mov edx, dword [esp + 0x64]
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a83b9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x21
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a83da
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x94]
mov byte [esp + 0xb0], 0x1f
call fcn.0048a2e0
mov byte [esp + 0xb0], 0x1e
mov ecx, edi
mov edx, dword [esp + 0x68]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8413
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 0xfffffff0
mov byte [esp + 0xb0], 0xe
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a78ce
mov ecx, dword [ebx]
push ebx
jmp 0x4a78c9
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4a8373
push 0x1d
push str.downloadFile_fileName_missing
lea ecx, [esp + 0x84]
call fcn.004725a0
push str.fileName_error
lea ecx, [esp + 0x34]
call fcn.00471c70
push str.downloadFile
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 0x1a
call fcn.00471bb0
mov byte [esp + 0xb0], 0x1b
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a849f
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
lea eax, [esp + 0x30]
mov byte [esp + 0xb0], 0x1c
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x1d
cmp dword [ecx + 0xc], 0
je 0x4a84ed
push 2
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x1c
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8512
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x1b
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8533
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x1a
mov ecx, edi
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8558
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0xe
mov edx, dword [esp + 0x30]
add edx, 0xfffffff0
jmp 0x4a78b8
push 0x18
push str.downloadFile_url_missing
lea ecx, [esp + 0x84]
call fcn.004725a0
push str.url_error
lea ecx, [esp + 0x34]
call fcn.00471c70
push str.downloadFile
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 9
call fcn.00471bb0
mov byte [esp + 0xb0], 0xa
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a85c7
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
lea eax, [esp + 0x30]
mov byte [esp + 0xb0], 0xb
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x20]
call fcn.00472fc0
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0xc
cmp dword [ecx + 0xc], 0
je 0x4a8615
push 2
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0xb
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a863a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0xa
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a865b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 9
mov ecx, edi
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8680
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 8
mov edx, dword [esp + 0x30]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a86a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x4a875a
mov eax, 8
mov word [ebx], ax
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a86d4
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0xb0], 0x4f
mov edx, str.true
mov eax, dword [esp + 0x88]
mov ecx, str.false
push dword [esp + 0x7c]
test eax, eax
cmovne ecx, edx
push ecx
push eax
lea eax, [esp + 0x30]
push str.__threadId__:__d____result__:__s____error__:___s__
push eax
call fcn.00472d30
add esp, 0x14
lea ecx, [esp + 0x24]
push 0x54df00
push 0x54d150
call fcn.00473670
mov esi, dword [esp + 0x24]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
add esi, 0xfffffff0
mov dword [ebx + 8], eax
mov byte [esp + 0xb0], 8
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a875a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push 0x550be0
lea ecx, [esp + 0x34]
call fcn.00471c70
push str.downloadFile
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 0x50
call fcn.00471bb0
mov byte [esp + 0xb0], 0x51
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a87a2
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
mov byte [esp + 0xb0], 0x52
call fcn.00460220
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a87d4
push 0x80004005
call fcn.004712d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
lea eax, [esp + 0x18]
mov byte [esp + 0xb0], 0x53
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x94]
call fcn.00472fc0
add esp, 4
lea ecx, [esp + 0x30]
mov byte [esp + 0xb0], 0x54
push ecx
mov edx, eax
lea ecx, [esp + 0x90]
call fcn.00472fc0
add esp, 4
mov ebx, eax
mov byte [esp + 0xb0], 0x55
call fcn.004eb20c
push eax
mov edx, ebx
lea ecx, [esp + 0x74]
call fcn.00472f20
add esp, 4
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0xb0], 0x56
cmp dword [ecx + 0xc], 0
je 0x4a8861
push 0
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00473100
mov byte [esp + 0xb0], 0x55
or ebx, 0xffffffff
mov edx, dword [esp + 0x70]
mov ecx, ebx
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8889
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x54
mov ecx, ebx
mov edx, dword [esp + 0x8c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a88b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x53
mov ecx, ebx
mov edx, dword [esp + 0x90]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a88d9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [esp + 0xb0], 0x52
mov ecx, ebx
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a88fa
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0xb0], 0x51
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a891b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0x50
mov ecx, ebx
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8940
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 8
mov ecx, ebx
mov edx, dword [esp + 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a8965
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0xb0], 0
mov ecx, ebx
mov edx, dword [esp + 0x7c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a898a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0xb0], 0xffffffff
mov edx, dword [esp + 0x84]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4a89b3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8