Function at 0x46faa0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5f969e
mov eax, dword fs:[0]
push eax
sub esp, 0x3f0
push ebx
push esi
push edi
mov eax, dword [0x6b7e40]
xor eax, esp
push eax
lea eax, [esp + 0x400]
mov dword fs:[0], eax
mov eax, ecx
mov dword [esp + 0x50], eax
or ebx, 0xffffffff
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x18], 0
jne 0x46fbac
push str.Calling_CreateAutoDownloadRequest
lea ecx, [esp + 0x5c]
call fcn.004021e0
push 0x63bfdc
lea ecx, [esp + 0x20]
mov dword [esp + 0x40c], 0
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov edi, eax
push ecx
mov byte [esp + 0x40c], 1
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
mov esi, esp
push ecx
call fcn.004046f0
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [esi], eax
lea eax, [esp + 0x64]
push eax
push 0x1883
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldManager.cpp
push 0
push 3
mov ecx, edi
call fcn.004055a0
mov byte [esp + 0x408], 0
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fb80
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x408], 0xffffffff
mov edx, dword [esp + 0x58]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fba8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x50]
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4726f9
cmp byte [eax + 0x2d], 0
je 0x4726f9
lea eax, [ecx + 0x40]
push eax
lea ecx, [esp + 0x100]
call fcn.00453130
lea ecx, [esp + 0x2f4]
mov dword [esp + 0x408], 2
call fcn.004432b0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov byte [esp + 0x408], 4
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x46fc2d
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x54], eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x2fc]
push eax
push ecx
push esp
lea ecx, [esp + 0x110]
mov byte [esp + 0x41c], 5
call fcn.00446970
lea ecx, [esp + 0xe3]
call fcn.00446e10
test al, al
jne 0x46fcd5
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fc9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x90]
mov byte [esp + 0x408], 3
call fcn.004753c0
lea ecx, [esp + 0x2f4]
call fcn.00466400
mov dword [esp + 0x408], 0xffffffff
mov edx, dword [esp + 0x11c]
add edx, 0xfffffff0
jmp 0x4726e5
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
lea ecx, [esp + 0xd8]
call fcn.004466a0
mov byte [esp + 0x408], 6
mov edi, dword [esp + 0x11c]
sub esp, 8
add edi, 0xfffffff0
mov esi, esp
push edi
mov dword [esp + 0x64], edi
call fcn.004046f0
add esp, 4
add eax, 0x10
push dword [esp + 0x108]
mov dword [esi], eax
mov eax, dword [esp + 0x12c]
push dword [esp + 0x108]
lea ecx, [esp + 0x70]
mov dword [esi + 4], eax
call fcn.0042cc50
add esp, 0x10
mov byte [esp + 0x408], 7
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x46fd7f
mov eax, dword [ecx + eax*4 - 4]
test eax, eax
je 0x46fd7f
lea esi, [eax + 8]
lea eax, [esp + 0xfc]
push eax
mov ecx, esi
call fcn.00444de0
test al, al
je 0x46fd7f
push esi
lea ecx, [esp + 0xd8]
call fcn.0042ca90
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
lea ecx, [esp + 0x2d0]
call fcn.004466a0
sub esp, 0x28
mov ecx, esp
push eax
mov byte [esp + 0x434], 8
call fcn.00453130
lea ecx, [esp + 0x94]
call fcn.00436150
add esp, 0x28
mov byte [esp + 0x408], 0xa
mov edx, dword [esp + 0x2ec]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fde2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x6c]
cmp dword [eax - 0xc], 0
jne 0x46feaa
lea edx, [eax - 0x10]
mov byte [esp + 0x408], 7
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fe11
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x60]
call fcn.0042b730
mov byte [esp + 0x408], 5
mov edx, dword [esp + 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fe42
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x46fe67
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x90]
mov byte [esp + 0x408], 3
call fcn.004753c0
lea ecx, [esp + 0x2f4]
call fcn.00466400
mov dword [esp + 0x408], 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4726f9
mov ecx, dword [edi]
push edi
jmp 0x4726f4
mov eax, dword [ebp + 8]
add eax, 0x70
mov dword [esp + 0x74], eax
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
mov dword [esp + 0x124], eax
mov byte [esp + 0x408], 0xb
cmp dword [eax - 0xc], 0
jne 0x46ff26
push ecx
push 1
sub esp, 8
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x134]
call fcn.004460d0
push eax
lea ecx, [esp + 0x128]
mov byte [esp + 0x40c], 0xc
call fcn.00404570
lea ecx, [esp + 0x14]
mov byte [esp + 0x408], 0xb
call fcn.00401020
mov eax, dword [esp + 0x124]
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov esi, esp
push eax
mov byte [esp + 0x53], 1
mov dword [esp + 0x88], eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x414], 0xd
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
mov dl, byte [esp + 0x57]
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea ecx, [esp + 0x58]
mov byte [esp + 0x414], 0xb
call fcn.0041a740
add esp, 0xc
xor edi, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x408], 0xf
mov ecx, dword [esp + 0x94]
sub ecx, dword [esp + 0x90]
mov eax, 0x38e38e39
imul ecx
mov ecx, dword [0x6c20b4]
sub ecx, dword [0x6c20b0]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x48], eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
test eax, eax
jle 0x4725a8
movsd xmm3, qword [0x6546a8]
mov dword [esp + 0x28], edi
movsd qword [esp + 0x9c], xmm3
lea ecx, [ecx]
mov esi, dword [0x6c20b0]
add esi, edi
xor ebx, ebx
mov dword [esp + 0x14], esi
cmp dword [esp + 0x48], ebx
jle 0x4700b5
mov edi, dword [esp + 0x90]
add edi, 0x18
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x46fc23
push ecx
push dword [edi - 0x10]
call fcn.005be8d5
add esp, 8
test eax, eax
jne 0x47009a
mov ecx, dword [edi]
test ecx, ecx
setne al
test eax, eax
je 0x46fc23
push ecx
push dword [esi + 0x10]
call fcn.005be8d5
add esp, 8
test eax, eax
jne 0x47009a
movq xmm0, qword [esp + 0xfc]
movq qword [esi + 0x18], xmm0
movq xmm0, qword [esp + 0x104]
movq qword [esi + 0x20], xmm0
movq xmm0, qword [esp + 0x10c]
movq qword [esi + 0x28], xmm0
movq xmm0, qword [esp + 0x114]
movq qword [esi + 0x30], xmm0
inc ebx
add edi, 0x48
cmp ebx, dword [esp + 0x48]
jl 0x470022
movsd xmm3, qword [esp + 0x9c]
mov edi, dword [esp + 0x28]
mov eax, dword [esi + 0x1c]
lea ecx, [esi + 0x18]
test eax, eax
jle 0x4700d9
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movd xmm0, dword [ecx]
divsd xmm2, xmm3
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm0
jmp 0x4700e1
movd xmm2, dword [ecx]
cvtdq2pd xmm2, xmm2
mov eax, dword [esp + 0x100]
test eax, eax
jle 0x47010b
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movd xmm0, dword [esp + 0xfc]
divsd xmm1, xmm3
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
jmp 0x470118
movd xmm1, dword [esp + 0xfc]
cvtdq2pd xmm1, xmm1
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jp 0x470141
lea eax, [esp + 0xfc]
push eax
call fcn.00444de0
test al, al
je 0x470141
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
call fcn.00430230
mov ecx, dword [esp + 0x1c]
inc ecx
add edi, 0x38
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
cmp ecx, dword [esp + 0x20]
jge 0x470165
movsd xmm3, qword [esp + 0x9c]
jmp 0x470000
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x24], esi
cmp edi, esi
je 0x4725a5
lea ecx, [esp + 0x128]
call fcn.004b029e
lea ecx, [esp + 0x3c]
mov byte [esp + 0x408], 0x10
call fcn.00419000
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x40c], 0x11
push dword [esp + 0x134]
lea ecx, [esp + 0x130]
call fcn.004b04c7
push 0x63cc8c
push dword [esp + 0x40]
call fcn.005be8d5
add esp, 8
test eax, eax
je 0x4701e3
push 0x63cc8c
push dword [esp + 0x134]
lea ecx, [esp + 0x130]
call fcn.004b0518
mov ecx, esi
sub ecx, edi
sar ecx, 2
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
test ecx, ecx
jle 0x470390
lea esp, [esp]
mov edi, dword [edi + eax*4]
test edi, edi
je 0x470230
push 2
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00404680
or dword [esp + 0x18], 1
push 0x65043c
push eax
call fcn.00412730
add esp, 8
test al, al
je 0x470230
mov bl, 1
jmp 0x470232
xor bl, bl
mov eax, dword [esp + 0x18]
test al, 1
je 0x47025f
and eax, 0xfffffffe
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47025f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x470378
mov esi, 2
or ebx, 0xffffffff
nop
push dword [esi*4 + 0x6baca4]
lea ecx, [esp + 0x30]
call fcn.004021e0
mov byte [esp + 0x408], 0x12
mov eax, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x46fc23
push eax
push dword [edi]
call fcn.005be8d5
add esp, 8
test eax, eax
je 0x4702da
mov byte [esp + 0x408], 0x11
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4702cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
inc esi
cmp esi, 0xf
jl 0x470270
jmp 0x470378
push dword [esi*4 + 0x6bae80]
lea ecx, [esp + 0x24]
call fcn.004021e0
mov byte [esp + 0x408], 0x13
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x46fc23
push eax
push dword [esp + 0x24]
call fcn.005be8d5
add esp, 8
test eax, eax
je 0x47032e
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x134]
lea ecx, [esp + 0x130]
call fcn.004b04c7
mov byte [esp + 0x408], 0x12
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x470353
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x11
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x470378
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x28]
jge 0x470390
mov edi, dword [esp + 0x30]
jmp 0x470200
mov byte [esp + 0x408], 0x10
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4703b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x3f0]
mov esi, dword [esp + 0x3ec]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
xor edi, edi
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x47040c
cmp dword [esi], 4
jne 0x470404
lea eax, [esp + 0xd4]
push eax
lea ecx, [esi + 0x30]
call fcn.00444d30
test al, al
jne 0x47054b
mov eax, dword [esp + 0x1c]
inc edi
add esi, 0x60
cmp edi, eax
jl 0x4703e3
cmp dword [esp + 0xdc], 2
jg 0x472334
cmp dword [esp + 0x104], 2
jne 0x472334
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x470444
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x100]
mov byte [esp + 0x40c], 0x14
call fcn.00446970
mov byte [esp + 0x408], 0x15
push dword [eax]
lea eax, [esp + 0x24]
push str.NOTE:_Patches_are_not_supported_for_new_version__s__BUT_making_an_exception_for_Beta_to_Beta_update
push eax
call fcn.00404520
mov byte [esp + 0x414], 0x14
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4704ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x63bfdc
lea ecx, [esp + 0x2c]
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov edi, eax
push ecx
mov byte [esp + 0x40c], 0x16
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff0
mov esi, esp
push ecx
call fcn.004046f0
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [esi], eax
lea eax, [esp + 0x2c]
push eax
push 0x1923
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldManager.cpp
push 0
push 1
mov ecx, edi
call fcn.004055a0
mov byte [esp + 0x408], 0x14
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x470526
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x10
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47054b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esp + 0xd4], 0x7da
jg 0x4707d5
push 0x38
call fcn.004996c9
mov esi, eax
add esp, 4
mov dword [esp + 0x40], esi
mov byte [esp + 0x408], 0x1a
test esi, esi
je 0x4705ca
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push str.DUMMY_PRODUCT_CODE_CFU
call fcn.004021e0
push ecx
mov byte [esp + 0x410], 0x1b
mov ecx, esp
mov dword [esp + 0x78], esp
push str.DUMMY_UPGRADE_CODE_CFU
call fcn.004021e0
push ecx
mov ecx, esp
push str.CheckForUpdates
mov byte [esp + 0x418], 0x1c
call fcn.004021e0
mov ecx, esi
mov byte [esp + 0x414], 0x1a
call fcn.0042d140
mov edi, eax
jmp 0x4705cc
xor edi, edi
push 5
mov byte [esp + 0x40c], 0x10
lea ecx, [edi + 0x10]
push str.1.0.0
mov dword [esp + 0xd0], edi
mov byte [edi + 0xc], 0
call fcn.00402090
movq xmm0, qword [esp + 0xd4]
mov ebx, dword [esp + 0x24]
movq qword [edi + 0x18], xmm0
movq xmm0, qword [esp + 0xdc]
movq qword [edi + 0x20], xmm0
movq xmm0, qword [esp + 0xe4]
movq qword [edi + 0x28], xmm0
movq xmm0, qword [esp + 0xec]
lea eax, [esp + 0xc8]
movq qword [edi + 0x30], xmm0
cmp eax, ebx
jae 0x47066f
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, ecx
ja 0x47066f
mov esi, dword [esp + 0x38]
mov edi, ecx
sub edi, eax
sar edi, 2
cmp ebx, esi
jne 0x470664
push ecx
lea ecx, [esp + 0x34]
call fcn.00430590
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
test ebx, ebx
je 0x47068f
mov eax, dword [eax + edi*4]
mov dword [ebx], eax
jmp 0x47068f
mov esi, dword [esp + 0x38]
cmp ebx, esi
jne 0x470689
push ecx
lea ecx, [esp + 0x34]
call fcn.00430590
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x47068f
mov dword [ebx], edi
add ebx, 4
push 0x38
mov dword [esp + 0x38], ebx
call fcn.004996c9
mov edi, eax
add esp, 4
mov dword [esp + 0x40], edi
mov byte [esp + 0x408], 0x1d
test edi, edi
je 0x470704
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push str.DUMMY_PRODUCT_CODE_SWACTWIZ
call fcn.004021e0
push ecx
mov byte [esp + 0x410], 0x1e
mov ecx, esp
mov dword [esp + 0x78], esp
push str.DUMMY_UPGRADE_CODE_SWACTWIZ
call fcn.004021e0
push ecx
mov ecx, esp
push str.SWActWiz
mov byte [esp + 0x418], 0x1f
call fcn.004021e0
mov ecx, edi
mov byte [esp + 0x414], 0x1d
call fcn.0042d140
mov edi, eax
jmp 0x470706
xor edi, edi
push 5
mov byte [esp + 0x40c], 0x10
lea ecx, [edi + 0x10]
push str.1.0.0
mov dword [esp + 0xd4], edi
mov byte [edi + 0xc], 0
call fcn.00402090
movq xmm0, qword [esp + 0xd4]
movq qword [edi + 0x18], xmm0
movq xmm0, qword [esp + 0xdc]
movq qword [edi + 0x20], xmm0
movq xmm0, qword [esp + 0xe4]
movq qword [edi + 0x28], xmm0
movq xmm0, qword [esp + 0xec]
lea eax, [esp + 0xcc]
movq qword [edi + 0x30], xmm0
cmp eax, ebx
jae 0x4707ac
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, ecx
ja 0x4707ac
mov edi, ecx
sub edi, eax
sar edi, 2
cmp ebx, esi
jne 0x470796
push ecx
lea ecx, [esp + 0x34]
call fcn.00430590
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
test ebx, ebx
je 0x47079f
mov eax, dword [eax + edi*4]
mov dword [ebx], eax
add ebx, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ebx
jmp 0x4707dd
cmp ebx, esi
jne 0x4707c2
push ecx
lea ecx, [esp + 0x34]
call fcn.00430590
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x4707c8
mov dword [ebx], edi
add ebx, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ebx
jmp 0x4707dd
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0xd4], 0x7dc
jl 0x47084f
movq xmm0, qword [esp + 0xd4]
movq qword [esp + 0x21c], xmm0
movq xmm0, qword [esp + 0xdc]
movq qword [esp + 0x224], xmm0
movq xmm0, qword [esp + 0xe4]
movq qword [esp + 0x22c], xmm0
movq xmm0, qword [esp + 0xec]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x220]
movq qword [esp + 0x238], xmm0
call fcn.0042f0a0
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], ebx
xor eax, eax
xor edi, edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
mov byte [esp + 0x408], 0x20
mov dword [esp + 0x20], eax
cmp dword [esp + 0x48], eax
jle 0x470db8
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x48]
add ecx, 0x18
mov dword [esp + 0x2c], ecx
cmp byte [ecx + 0x2d], 0
je 0x470da4
mov edx, dword [esp + 0x30]
mov eax, ebx
sub eax, edx
sar eax, 2
xor ebx, ebx
mov dword [esp + 0x28], eax
test eax, eax
jle 0x4708ea
mov ecx, dword [ecx - 0x10]
mov edx, dword [edx + ebx*4]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x46fc23
push ecx
push dword [edx]
call fcn.005be8d5
mov ecx, dword [esp + 0x34]
add esp, 8
test eax, eax
je 0x470d98
mov edx, dword [esp + 0x30]
inc ebx
cmp ebx, dword [esp + 0x28]
jl 0x4708b3
push 0x38
call fcn.004996c9
add esp, 4
mov dword [esp + 0x70], eax
mov byte [esp + 0x408], 0x21
test eax, eax
je 0x470ab0
mov edx, dword [esp + 0x2c]
push ecx
mov ebx, dword [edx - 8]
sub ebx, 0x10
mov dword [esp + 0x44], esp
mov ecx, dword [ebx]
mov dword [esp + 0x1c], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
mov ecx, eax
jl 0x47093c
cmp ecx, dword [ebx]
jne 0x47093c
mov eax, 1
lock xadd dword [edx], eax
jmp 0x470980
mov eax, dword [ecx]
push 2
push dword [ebx + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x470e83
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.005bc17a
mov ebx, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov byte [esp + 0x40c], 0x22
mov eax, dword [esp + 0x30]
push ecx
mov ebx, dword [eax - 4]
sub ebx, 0x10
mov dword [esp + 0x64], esp
mov ecx, dword [ebx]
mov dword [esp + 0x20], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
mov ecx, eax
jl 0x4709c5
cmp ecx, dword [ebx]
jne 0x4709c5
mov eax, 1
lock xadd dword [edx], eax
jmp 0x470a09
mov eax, dword [ecx]
push 2
push dword [ebx + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
je 0x470e83
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.005bc17a
mov ebx, dword [esp + 0x2c]
add esp, 0x10
mov ecx, dword [esp + 0x20]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov byte [esp + 0x410], 0x23
mov eax, dword [esp + 0x34]
push ecx
mov ebx, dword [eax - 0x10]
sub ebx, 0x10
mov dword [esp + 0x24], esp
mov ecx, dword [ebx]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
mov ecx, eax
jl 0x470a4a
cmp ecx, dword [ebx]
jne 0x470a4a
mov eax, 1
lock xadd dword [edx], eax
jmp 0x470a8e
mov eax, dword [ecx]
push 2
push dword [ebx + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x470e83
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.005bc17a
mov ebx, dword [esp + 0x30]
add esp, 0x10
mov ecx, dword [esp + 0x24]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 0x7c]
mov byte [esp + 0x414], 0x21
call fcn.0042d140
mov ecx, eax
mov dword [esp + 0x18], eax
jmp 0x470ab6
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov byte [esp + 0x408], 0x20
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 0x10]
mov byte [ecx + 0xc], 0
mov edx, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
sub eax, 0x10
lea ebx, [edx - 0x10]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x40], eax
cmp ebx, eax
je 0x470ba3
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
mov dword [esp + 0x5c], ecx
jl 0x470b92
mov ecx, dword [ebx]
cmp ecx, dword [eax]
jne 0x470b92
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
mov ecx, eax
jl 0x470b24
cmp ecx, dword [ebx]
jne 0x470b24
mov eax, 1
lock xadd dword [edx], eax
jmp 0x470b6b
mov eax, dword [ecx]
push 2
push dword [ebx + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x70], edx
test edx, edx
je 0x470e83
mov ecx, dword [ebx + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edx + 0x10]
push eax
call fcn.005bc17a
mov ebx, dword [esp + 0x80]
add esp, 0x10
mov ecx, dword [esp + 0x5c]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x470b87
mov edx, dword [esp + 0x40]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x14]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
jmp 0x470b9f
push dword [edx - 0xc]
mov ecx, dword [esp + 0x18]
push edx
call fcn.00402090
mov ecx, dword [esp + 0x18]
movq xmm0, qword [esp + 0xd4]
mov ebx, dword [esp + 0x24]
movq qword [ecx + 0x18], xmm0
movq xmm0, qword [esp + 0xdc]
movq qword [ecx + 0x20], xmm0
movq xmm0, qword [esp + 0xe4]
movq qword [ecx + 0x28], xmm0
movq xmm0, qword [esp + 0xec]
lea eax, [esp + 0x8c]
movq qword [ecx + 0x30], xmm0
cmp eax, ebx
jae 0x470c7e
mov edx, eax
mov eax, dword [esp + 0x30]
cmp eax, edx
ja 0x470c7e
mov ecx, dword [esp + 0x24]
mov ebx, edx
sub ebx, eax
sar ebx, 2
cmp ecx, esi
jne 0x470c69
mov eax, esi
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x470c65
mov ecx, dword [esp + 0x28]
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, 1
jb 0x470e88
sub esi, dword [esp + 0x30]
lea edx, [ecx + 1]
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, esi
jae 0x470c48
xor esi, esi
jmp 0x470c4a
add esi, ecx
cmp esi, edx
cmovb esi, edx
push esi
lea ecx, [esp + 0x34]
call fcn.004309c0
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x30]
test ecx, ecx
je 0x470c78
mov eax, dword [eax + ebx*4]
mov ebx, dword [esp + 0x24]
mov dword [ebx], eax
jmp 0x470ce2
mov ebx, dword [esp + 0x24]
jmp 0x470ce2
cmp ebx, esi
jne 0x470cdc
mov eax, esi
sub eax, ebx
sar eax, 2
cmp eax, 1
jae 0x470cdc
mov ecx, dword [esp + 0x28]
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, 1
jb 0x470e88
sub esi, dword [esp + 0x30]
lea edx, [ecx + 1]
sar esi, 2
mov ecx, esi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
cmp eax, esi
jae 0x470cbf
xor esi, esi
jmp 0x470cc1
add esi, ecx
cmp esi, edx
cmovb esi, edx
push esi
lea ecx, [esp + 0x34]
call fcn.004309c0
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
test ebx, ebx
je 0x470ce2
mov dword [ebx], ecx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x80]
add ebx, 4
lea eax, [esp + 0x8c]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], ebx
cmp eax, edx
jae 0x470e06
cmp ecx, eax
ja 0x470e06
mov ebx, eax
sub ebx, ecx
sar ebx, 2
cmp edx, edi
jne 0x470d7d
mov eax, edi
sub eax, edx
sar eax, 2
cmp eax, 1
jae 0x470d7d
sub edx, ecx
sar edx, 2
mov eax, 0x3fffffff
sub eax, edx
cmp eax, 1
jb 0x470e88
sub edi, ecx
sar edi, 2
mov ecx, edi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
inc edx
cmp eax, edi
jae 0x470d54
xor edi, edi
jmp 0x470d56
add edi, ecx
cmp edi, edx
cmovb edi, edx
push edi
lea ecx, [esp + 0x84]
call fcn.004309c0
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
test edx, edx
je 0x470d86
mov eax, dword [ecx + ebx*4]
mov dword [edx], eax
mov ecx, dword [esp + 0x2c]
add edx, 4
mov dword [esp + 0x3c], edx
mov dword [esp + 0x84], edx
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
inc eax
add ecx, 0x48
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
cmp eax, edx
jl 0x470894
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
lea ecx, [esp + 0x140]
call fcn.0043c830
mov byte [esp + 0x408], 0x24
mov edi, dword [esp + 0x30]
sub ebx, edi
sar ebx, 2
mov dword [esp + 0x24], ebx
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x470e92
push 0x80004005
call fcn.00402040
cmp edx, edi
jne 0x470e62
mov eax, edi
sub eax, edx
sar eax, 2
cmp eax, 1
jae 0x470e62
sub edx, ecx
sar edx, 2
mov eax, 0x3fffffff
sub eax, edx
cmp eax, 1
jb 0x470e88
sub edi, ecx
sar edi, 2
mov ecx, edi
shr ecx, 1
mov eax, 0x3fffffff
sub eax, ecx
inc edx
cmp eax, edi
jae 0x470e40
xor edi, edi
jmp 0x470e42
add edi, ecx
cmp edi, edx
cmovb edi, edx
push edi
lea ecx, [esp + 0x84]
call fcn.004309c0
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
test edx, edx
je 0x470e6c
mov eax, dword [esp + 0x18]
mov dword [edx], eax
mov ecx, dword [esp + 0x2c]
add edx, 4
mov dword [esp + 0x3c], edx
mov dword [esp + 0x84], edx
jmp 0x470d9c
call fcn.00401f40
push str.vector_T__too_long
call fcn.005ddb9e
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [esp + 0x48], esi
xor eax, eax
mov byte [esp + 0x408], 0x25
mov dword [esp + 0x2c], eax
test ebx, ebx
jle 0x471321
mov edx, dword [edi + eax*4]
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
cmp dword [esp + 0x1c], eax
jle 0x471310
xor ebx, ebx
jmp 0x470ee0
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + ecx]
cmp eax, 1
jne 0x470f84
mov edi, dword [edx]
push ecx
mov ecx, dword [edi - 0x10]
sub edi, 0x10
mov eax, dword [ecx]
mov dword [esp + 0x60], esp
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
mov ecx, eax
jl 0x470f23
cmp ecx, dword [edi]
jne 0x470f23
mov eax, 1
lock xadd dword [edx], eax
jmp 0x470f67
mov eax, dword [ecx]
push 2
push dword [edi + 4]
call dword [eax]
mov edx, eax
mov dword [esp + 0x44], edx
test edx, edx
je 0x470e83
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.005bc17a
mov edi, dword [esp + 0x54]
add esp, 0x10
mov ecx, dword [esp + 0x60]
lea eax, [edi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
add ecx, 0x54
add ecx, ebx
call fcn.00443150
mov dword [esp + 0x20], eax
jmp 0x470fc7
cmp eax, 4
jne 0x470fcb
lea eax, [edx + 0x18]
add ecx, 0x30
push eax
add ecx, ebx
call fcn.00444d30
test al, al
je 0x470fc7
mov eax, dword [esp + 0x18]
push ecx
mov eax, dword [eax]
sub eax, 0x10
mov edi, esp
push eax
call fcn.004046f0
mov ecx, dword [esp + 0x1c]
add ecx, 0x54
add eax, 0x10
add esp, 4
add ecx, ebx
mov dword [edi], eax
call fcn.00443150
test eax, eax
jne 0x47102b
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
inc eax
add ebx, 0x60
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x1c]
jl 0x470ee0
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x471308
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov eax, ebx
cmovne eax, ecx
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004046f0
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x28], edi
mov byte [esp + 0x408], 0x26
cmp dword [esi - 0xc], 0
lea eax, [esp + 0x28]
push eax
jne 0x471033
lea ecx, [esp + 0x4c]
call fcn.00404570
jmp 0x471082
mov ebx, eax
mov dword [esp + 0x20], ebx
jmp 0x470fe5
lea eax, [esp + 0x74]
push 0x6408d8
push eax
call fcn.00404060
add esp, 0xc
mov byte [esp + 0x408], 0x27
mov eax, dword [eax]
lea ecx, [esp + 0x48]
push dword [eax - 0xc]
push eax
call fcn.00404910
mov byte [esp + 0x408], 0x26
mov edx, dword [esp + 0x70]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471082
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x24]
sub ecx, dword [ebx + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
test eax, eax
jle 0x4712e2
xor edi, edi
mov dword [esp + 0x14], edi
lea ecx, [ecx]
mov ebx, dword [ebx + 0x20]
add ebx, edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x4f]
push eax
lea eax, [esp + 0x134]
push eax
push ecx
mov byte [esp + 0x41c], 0x29
mov eax, esp
mov dword [esp + 0x70], esp
push eax
lea ecx, [esp + 0x114]
call fcn.00446970
mov byte [esp + 0x41c], 0x2a
mov eax, dword [esp + 0x60]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea eax, [esp + 0xbc]
push eax
lea ecx, [ebx + 0xc]
mov byte [esp + 0x424], 0x29
call fcn.0043be00
mov byte [esp + 0x408], 0x2b
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa4]
sub ebx, eax
sar ebx, 2
test ebx, ebx
jle 0x471231
xor esi, esi
test ebx, ebx
jle 0x471231
mov edi, dword [esp + 0x40]
lea ecx, [ecx]
mov eax, dword [eax + esi*4]
imul eax, eax, 0x88
add eax, dword [edi + 0x10]
lea ecx, [esp + 0x244]
push eax
call fcn.0043eb20
mov byte [esp + 0x408], 0x2c
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x1ec]
sub ecx, dword [esp + 0x1e8]
mov dword [esp + 0x250], eax
mov eax, 0x78787879
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x24c], eax
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x1ec]
call fcn.0043d360
lea ecx, [esp + 0x244]
mov byte [esp + 0x408], 0x2b
call fcn.0043f570
mov eax, dword [esp + 0xa4]
inc esi
cmp esi, ebx
jl 0x4711a0
mov edi, dword [esp + 0x14]
test eax, eax
je 0x47125f
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x471294
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x4712c9
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov ebx, dword [esp + 0x20]
add edi, 0x1c
dec dword [esp + 0x18]
mov dword [esp + 0x14], edi
jne 0x4710b0
mov edi, dword [esp + 0x28]
add edi, 0xfffffff0
mov byte [esp + 0x408], 0x25
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471304
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, ebx
jl 0x470eb6
mov ebx, dword [ebp + 8]
mov eax, 0x92492493
mov ecx, dword [ebx + 0x24]
sub ecx, dword [ebx + 0x20]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x471589
xor esi, esi
mov dword [esp + 0x14], esi
nop
mov ebx, dword [ebx + 0x20]
add ebx, esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x4f]
push eax
lea eax, [esp + 0x134]
push eax
push ecx
mov byte [esp + 0x41c], 0x2e
mov eax, esp
mov dword [esp + 0xb0], esp
push eax
lea ecx, [esp + 0x114]
call fcn.00446970
mov byte [esp + 0x41c], 0x2f
mov eax, dword [esp + 0x60]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [edi], eax
add esp, 4
lea eax, [esp + 0xc8]
push eax
lea ecx, [ebx + 0xc]
mov byte [esp + 0x424], 0x2e
call fcn.0043be00
mov byte [esp + 0x408], 0x30
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
sub ebx, eax
sar ebx, 2
test ebx, ebx
jle 0x4714d1
xor edi, edi
test ebx, ebx
jle 0x4714d1
mov esi, dword [esp + 0x40]
mov eax, dword [eax + edi*4]
imul eax, eax, 0x88
add eax, dword [esi + 0x10]
lea ecx, [esp + 0x244]
push eax
call fcn.0043eb20
mov byte [esp + 0x408], 0x31
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x1ec]
sub ecx, dword [esp + 0x1e8]
mov dword [esp + 0x250], eax
mov eax, 0x78787879
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x24c], eax
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x1ec]
call fcn.0043d360
lea ecx, [esp + 0x244]
mov byte [esp + 0x408], 0x30
call fcn.0043f570
mov eax, dword [esp + 0xb0]
inc edi
cmp edi, ebx
jl 0x471440
mov esi, dword [esp + 0x14]
test eax, eax
je 0x4714ff
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x471534
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov byte [esp + 0x408], 0x25
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x471571
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov ebx, dword [ebp + 8]
add esi, 0x1c
dec dword [esp + 0x1c]
mov dword [esp + 0x14], esi
jne 0x471350
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
sub eax, ecx
sar eax, 2
xor edi, edi
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x4715d7
jmp 0x4715b0
mov ebx, dword [ecx + edi*4]
test ebx, ebx
je 0x4715d2
mov ecx, ebx
call fcn.0042edb0
push ebx
call fcn.004996ff
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
add esp, 4
inc edi
cmp edi, eax
jl 0x4715b0
cmp byte [ebp + 0xc], 0
mov dword [esp + 0x84], ecx
je 0x4717b7
add esi, 0xfffffff0
or ebx, 0xffffffff
mov byte [esp + 0x408], 0x24
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47160c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x13c]
call fcn.00443380
mov eax, dword [esp + 0x80]
test eax, eax
je 0x47162c
push eax
call fcn.004996ff
add esp, 4
lea ecx, [esp + 0x128]
mov byte [esp + 0x408], 0xf
call fcn.004b02b5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x471651
push eax
call fcn.004996ff
add esp, 4
mov byte [esp + 0x408], 0xb
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471676
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x408], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471698
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 7
mov edx, dword [esp + 0x6c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4716bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4716e6
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov byte [esp + 0x408], 5
mov edx, dword [esp + 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47170e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471733
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 3
mov edi, dword [esp + 0x90]
test edi, edi
je 0x47176e
mov esi, edi
cmp edi, dword [esp + 0x94]
je 0x471765
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax]
add esi, 0x48
cmp esi, dword [esp + 0x94]
jne 0x471751
push edi
call fcn.004996ff
add esp, 4
lea ecx, [esp + 0x2f4]
call fcn.00466400
mov dword [esp + 0x408], 0xffffffff
mov edx, dword [esp + 0x58]
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x47179d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, 1
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4717d3
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x408], 0x32
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x471805
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x410], 0x33
mov eax, dword [esp + 0x54]
push 0
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00425f20
mov edi, dword [esp + 0x50]
lea ecx, [edi + 0xb0]
test al, al
jne 0x471960
lea eax, [esp + 0x3c]
push eax
call fcn.00404570
movq xmm0, qword [edi + 0x38]
movq qword [edi + 0x88], xmm0
movq xmm0, qword [edi + 0x40]
movq qword [edi + 0x90], xmm0
movq xmm0, qword [edi + 0x48]
movq qword [edi + 0x98], xmm0
movq xmm0, qword [edi + 0x50]
lea ebx, [edi + 0x58]
push ebx
lea ecx, [edi + 0xa8]
movq qword [edi + 0xa0], xmm0
call fcn.00404570
mov eax, dword [ebx + 4]
mov dword [edi + 0xac], eax
or ebx, 0xffffffff
mov byte [esp + 0x408], 0x32
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4718d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x25
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4718f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov ecx, ebx
lea eax, [esi + 0xc]
mov byte [esp + 0x408], 0x24
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47191a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x13c]
call fcn.00443380
mov eax, dword [esp + 0x80]
test eax, eax
je 0x47193a
push eax
call fcn.004996ff
add esp, 4
lea ecx, [esp + 0x128]
mov byte [esp + 0x408], 0xf
call fcn.004b02b5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4725d4
push eax
jmp 0x4725cc
push 0
push 0x63bfdc
call fcn.00402090
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
lea ecx, [esp + 0x220]
call fcn.004466a0
mov byte [esp + 0x408], 0x34
movq xmm0, qword [eax]
movq qword [edi + 0x88], xmm0
movq xmm0, qword [eax + 8]
movq qword [edi + 0x90], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x98], xmm0
movq xmm0, qword [eax + 0x18]
lea ebx, [eax + 0x20]
push ebx
lea ecx, [edi + 0xa8]
movq qword [edi + 0xa0], xmm0
call fcn.00404570
mov eax, dword [ebx + 4]
mov byte [esp + 0x408], 0x33
mov edx, dword [esp + 0x23c]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov dword [edi + 0xac], eax
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471a03
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x63bfdc
lea ecx, [esp + 0x30]
call fcn.004021e0
push 0x63bfdc
lea ecx, [esp + 0x24]
mov byte [esp + 0x40c], 0x35
call fcn.004021e0
lea edx, [esp + 0x20]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x408], 0x36
call fcn.0042ef40
test al, al
je 0x471a62
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1d4]
call fcn.00404570
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x1d0]
call fcn.00404570
movq xmm0, qword [esp + 0xd4]
movq qword [esp + 0x144], xmm0
movq xmm0, qword [esp + 0xdc]
movq qword [esp + 0x14c], xmm0
movq xmm0, qword [esp + 0xe4]
movq qword [esp + 0x154], xmm0
movq xmm0, qword [esp + 0xec]
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x168]
movq qword [esp + 0x160], xmm0
call fcn.00404570
mov eax, dword [esp + 0xf8]
push dword [esp + 0x74]
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x16c], eax
call fcn.00404570
push 8
push str.IMBGDWLD
lea ecx, [esp + 0x1c8]
call fcn.00402090
lea ecx, [esp + 0x74]
call fcn.00416ef0
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x40c], 0x37
call fcn.00404570
mov byte [esp + 0x408], 0x36
mov edx, dword [esp + 0x74]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471b32
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x1cc]
call fcn.00404570
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1d8]
call fcn.00404570
movq xmm0, qword [esp + 0xfc]
movq qword [esp + 0x16c], xmm0
movq xmm0, qword [esp + 0x104]
movq qword [esp + 0x174], xmm0
movq xmm0, qword [esp + 0x10c]
movq qword [esp + 0x17c], xmm0
movq xmm0, qword [esp + 0x114]
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0x190]
movq qword [esp + 0x188], xmm0
call fcn.00404570
mov edi, dword [esp + 0x120]
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x194], edi
call fcn.00404570
movq xmm0, qword [0x6c2000]
movq qword [esp + 0x194], xmm0
movq xmm0, qword [0x6c2008]
movq qword [esp + 0x19c], xmm0
movq xmm0, qword [0x6c2010]
movq qword [esp + 0x1a4], xmm0
movq xmm0, qword [0x6c2018]
lea ecx, [esp + 0x13c]
mov dword [esp + 0x1b8], edi
movq qword [esp + 0x1ac], xmm0
call fcn.0043ca70
lea eax, [esp + 0x14]
push eax
mov ecx, 0x6c1f28
call fcn.00402500
push 0x64
push ecx
mov byte [esp + 0x410], 0x38
mov ecx, esp
mov dword [esp + 0xa4], esp
push str..xml
call fcn.004021e0
push ecx
mov byte [esp + 0x414], 0x39
mov ecx, esp
mov dword [esp + 0x80], esp
push str.DownloadRequest
call fcn.004021e0
mov byte [esp + 0x414], 0x3a
mov eax, dword [esp + 0x58]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov edx, 5
lea ecx, [esp + 0x28]
mov byte [esp + 0x418], 0x38
call fcn.0041b510
add esp, 0x10
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x140]
mov byte [esp + 0x40c], 0x3b
call fcn.00404570
push 0x63bfdc
lea ecx, [esp + 0x2c]
call fcn.004021e0
mov dword [esp + 0x74], vtable.CDownloadXML.0
mov word [esp + 0x78], 0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x414], 0x3d
call fcn.0044a1b0
test al, al
jne 0x471dca
mov byte [esp + 0x408], 0x3b
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471d2d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x38
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471d52
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x36
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471d77
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x35
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471d9c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x33
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4718af
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4718af
push 0
call fcn.005be4ee
mov edi, dword [esp + 0x54]
add esp, 4
mov ecx, dword [edi + 8]
call fcn.00422920
mov ecx, dword [edi + 8]
lea eax, [esp + 0x18]
add ecx, 4
push eax
call fcn.00404570
mov eax, dword [edi + 8]
cmp dword [eax], 2
je 0x471ea2
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x471e18
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x408], 0x3e
mov eax, dword [edi + 8]
push dword [eax]
lea eax, [esp + 0x20]
push str.Changing_request_status_from__d_to_Pending_to_create_auto_download_request
push eax
call fcn.00404520
add esp, 8
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
lea eax, [esp + 0x24]
push eax
push 0x1a34
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldManager.cpp
push 0
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov eax, dword [edi + 8]
mov byte [esp + 0x408], 0x3d
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
mov dword [eax], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471ea2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi + 8]
lea eax, [esp + 0x1c0]
add ecx, 0xc
push eax
call fcn.00404570
mov ecx, dword [edi + 8]
lea eax, [esp + 0x1c4]
add ecx, 0x10
push eax
call fcn.00404570
mov edx, dword [edi + 8]
mov eax, dword [edx + 8]
cmp dword [eax - 0xc], 0
je 0x471fdd
mov ecx, dword [esp + 0x1c8]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x471ef4
push 0x80004005
call fcn.00402040
push ecx
push dword [edx + 8]
call fcn.005be8d5
add esp, 8
test eax, eax
je 0x471fdd
mov eax, dword [edi + 8]
push 0
mov eax, dword [eax + 8]
push 0
push 1
push ecx
sub eax, 0x10
mov edi, esp
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00425f20
test al, al
jne 0x471fd9
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x471f51
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x50]
mov byte [esp + 0x408], 0x3f
mov eax, dword [edi + 8]
push dword [eax + 8]
lea eax, [esp + 0x20]
push str.ERROR:_Unable_to_delete_lock_file_for_old_download_folder:__s
push eax
call fcn.00404520
add esp, 8
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
lea eax, [esp + 0x24]
push eax
push 0x1a43
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldManager.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [esp + 0x408], 0x3d
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x471fdd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x471fdd
mov edi, dword [esp + 0x50]
mov ecx, dword [edi + 8]
lea eax, [esp + 0x1c8]
add ecx, 8
push eax
call fcn.00404570
mov ecx, dword [edi + 8]
push 0
add ecx, 0x14
push 0x63bfdc
call fcn.00402090
mov edi, dword [edi + 8]
movq xmm0, qword [esp + 0x144]
movq qword [edi + 0x18], xmm0
movq xmm0, qword [esp + 0x14c]
movq qword [edi + 0x20], xmm0
movq xmm0, qword [esp + 0x154]
movq qword [edi + 0x28], xmm0
movq xmm0, qword [esp + 0x15c]
lea eax, [esp + 0x164]
push eax
lea ecx, [edi + 0x38]
movq qword [edi + 0x30], xmm0
call fcn.00404570
mov eax, dword [esp + 0x168]
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x50]
movq xmm0, qword [esp + 0x16c]
mov edi, dword [eax + 8]
lea eax, [esp + 0x18c]
movq qword [edi + 0x40], xmm0
movq xmm0, qword [esp + 0x174]
movq qword [edi + 0x48], xmm0
movq xmm0, qword [esp + 0x17c]
movq qword [edi + 0x50], xmm0
movq xmm0, qword [esp + 0x184]
push eax
lea ecx, [edi + 0x60]
movq qword [edi + 0x58], xmm0
call fcn.00404570
mov eax, dword [esp + 0x190]
mov dword [edi + 0x64], eax
mov edi, dword [esp + 0x50]
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.0046c920
mov ecx, dword [edi + 8]
push 0xffffff
call fcn.004246a0
mov byte [esp + 0x408], 0x3b
mov edx, dword [esp + 0x28]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4720f5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x38
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47211a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x36
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47213f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x35
mov edx, dword [esp + 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472164
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x33
mov edx, dword [esp + 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472189
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x32
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4721ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x25
mov edx, dword [esp + 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4721d3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0x408], 0x24
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4721f4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x13c]
call fcn.00443380
mov eax, dword [esp + 0x80]
test eax, eax
je 0x472214
push eax
call fcn.004996ff
add esp, 4
lea ecx, [esp + 0x128]
mov byte [esp + 0x408], 0xf
call fcn.004b02b5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x472239
push eax
call fcn.004996ff
add esp, 4
mov byte [esp + 0x408], 0xb
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47225e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x408], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472280
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 7
mov edx, dword [esp + 0x6c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4722a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4722ce
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov byte [esp + 0x408], 5
mov edx, dword [esp + 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4722f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47231b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x90]
mov byte [esp + 0x408], 3
call fcn.004753c0
jmp 0x47176e
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x472350
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x100]
mov byte [esp + 0x40c], 0x17
call fcn.00446970
mov byte [esp + 0x408], 0x18
push dword [eax]
lea eax, [esp + 0x20]
push str.INTERNAL_WARNING:_Patches_are_not_supported__as_expected__for_new_version__s__abandoning_this_version
push eax
call fcn.00404520
mov byte [esp + 0x414], 0x17
mov edx, dword [esp + 0x80]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4723bb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x63bfdc
lea ecx, [esp + 0x18]
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov edi, eax
push ecx
mov byte [esp + 0x40c], 0x19
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov esi, esp
push ecx
call fcn.004046f0
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [esi], eax
lea eax, [esp + 0x28]
push eax
push 0x1929
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldManager.cpp
push 1
push 1
mov ecx, edi
call fcn.004055a0
mov byte [esp + 0x408], 0x17
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472435
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 0x10
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47245a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x128]
mov byte [esp + 0x408], 0xf
call fcn.004b02b5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x47247f
push eax
call fcn.004996ff
add esp, 4
mov byte [esp + 0x408], 0xb
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4724a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x408], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4724c6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 7
mov edx, dword [esp + 0x6c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4724eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x472514
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov byte [esp + 0x408], 5
mov edx, dword [esp + 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47253c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472561
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 3
mov edi, dword [esp + 0x90]
test edi, edi
je 0x4726ca
mov esi, edi
cmp edi, dword [esp + 0x94]
je 0x472597
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax]
add esi, 0x48
cmp esi, dword [esp + 0x94]
jne 0x472583
push edi
call fcn.004996ff
add esp, 4
jmp 0x4726ca
or ebx, 0xffffffff
cmp byte [ebp + 0xc], 0
jne 0x4725c7
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + 0x38]
call fcn.00446860
test edi, edi
je 0x4725d4
push edi
call fcn.004996ff
add esp, 4
mov byte [esp + 0x408], 0xb
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4725f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x408], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47261b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 7
mov edx, dword [esp + 0x6c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472640
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x472669
push eax
call fcn.004996ff
add esp, 4
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov byte [esp + 0x408], 5
mov edx, dword [esp + 0xf4]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x472691
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x408], 4
mov edx, dword [esp + 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4726b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x90]
mov byte [esp + 0x408], 3
call fcn.004753c0
lea ecx, [esp + 0x2f4]
call fcn.00466400
mov dword [esp + 0x408], 0xffffffff
mov edx, dword [esp + 0x58]
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4726f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor al, al
mov ecx, dword [esp + 0x400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8