Function at 0x47cc40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50a920
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x565680]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [0x5651b8]
mov edi, dword [ebp + 8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1d4], eax
mov esi, dword [0x566ac0]
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x13
idiv ecx
mov dword [ebp - 4], 0
cmp edx, 0xe
jne 0x47cd33
xor edx, edx
mov edi, edi
mov ecx, edx
and ecx, 1
dec ecx
not ecx
and ecx, esi
mov eax, edx
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, esi
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, esi
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, esi
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
inc edx
add esi, eax
cmp edx, 0x100
jl 0x47ccb0
mov dword [0x566ac0], esi
lea eax, [ebp - 0x1d4]
push eax
push edi
call fcn.0048d700
mov ecx, dword [0x566ac0]
mov eax, ecx
imul eax, ecx
cdq
mov esi, 0x15
idiv esi
add esp, 8
cmp edx, 0xd
jne 0x47cd68
call fcn.004e5d44
mov ecx, eax
mov dword [0x566ac0], ecx
cmp dword [ebx + 0xd8], 0
jbe 0x47cfa6
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov esi, 0x13
idiv esi
cmp edx, 0xa
jne 0x47cded
test ecx, ecx
je 0x47cded
lea esp, [esp]
mov eax, ecx
and eax, 0x80000001
jns 0x47cd9e
dec eax
or eax, 0xfffffffe
inc eax
jne 0x47cdab
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x47cdb2
lea ecx, [ecx*2 + 1]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
lea eax, [eax + eax*2]
sub edx, eax
mov dword [0x566ac0], ecx
sub edx, 0
je 0x47cddc
sub edx, 2
je 0x47cddf
dec edx
je 0x47cde0
jmp 0x47cde9
add ecx, 2
inc ecx
add ecx, 2
mov dword [0x566ac0], ecx
test ecx, ecx
jne 0x47cd90
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c0], eax
mov esi, 0x519638
shr esi, 0x10
mov byte [ebp - 4], 1
mov edi, 0x519638
test esi, esi
jne 0x47ce7e
movzx edi, di
push esi
push edi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47ce36
push edi
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004072e0
mov edi, 0x519638
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 2
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c4], eax
mov byte [ebp - 4], 3
test esi, esi
jne 0x47ce90
movzx esi, di
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47cea0
push esi
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004072e0
jmp 0x47cea0
push 0x519638
lea ecx, [ebp - 0x1c0]
call fcn.00402720
jmp 0x47ce3b
push 0x519638
lea ecx, [ebp - 0x1c4]
call fcn.00402720
push 0x523c84
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 4
call fcn.00401ba0
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x1bc]
push eax
mov byte [ebp - 4], 5
call fcn.00476870
lea ecx, [ebp - 0x1c0]
push ecx
push eax
lea eax, [ebp - 0x1c8]
push eax
mov byte [ebp - 4], 6
call fcn.00476870
add esp, 0x18
push dword [eax]
lea eax, [ebp - 0x1b8]
push eax
lea ecx, [ebx + 0xd4]
mov byte [ebp - 4], 7
call fcn.00476620
mov ecx, eax
call fcn.004027b0
mov edx, dword [ebp - 0x1c8]
add edx, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 6
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x47cf32
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47cf55
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47cf78
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c4]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47cf9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
jmp 0x47e643
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 8
call fcn.00488c00
test al, al
jne 0x47cfeb
mov eax, 0xdf
mov esi, 0x94
test esi, esi
je 0x47cfe4
cdq
idiv esi
mov ecx, esi
mov eax, ecx
mov esi, edx
test ecx, ecx
jne 0x47cfd3
add eax, esi
mov dword [0x566ac0], eax
lea eax, [ebp - 0x1e0]
push eax
lea eax, [ebx + 0xa8]
push eax
call fcn.0048d700
mov ecx, dword [0x566ac0]
mov edi, 0xf
lea esi, [ecx + 1]
mov eax, esi
imul eax, ecx
cdq
idiv edi
add esp, 8
cmp edx, 0xd
jne 0x47d042
sub ecx, 0
je 0x47d038
dec ecx
je 0x47d02c
mov dword [0x566ac0], esi
jmp 0x47d042
mov dword [0x566ac0], 0
jmp 0x47d042
mov dword [0x566ac0], 2
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebx + 0xac]
push eax
mov byte [ebp - 4], 9
call fcn.0048d700
mov eax, dword [0x5651b8]
add esp, 8
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebx + 0xb0]
push eax
mov byte [ebp - 4], 0xa
call fcn.0048d700
mov eax, dword [0x5651b8]
add esp, 8
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov edi, 0x519638
shr edi, 0x10
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x1c4], edi
mov esi, 0x519638
test edi, edi
jne 0x47d138
movzx esi, si
push edi
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47d0f1
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004072e0
mov esi, 0x519638
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0xc
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 4], 0xd
test edi, edi
jne 0x47d14a
movzx esi, si
push edi
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47d15a
push esi
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004072e0
jmp 0x47d15a
push 0x519638
lea ecx, [ebp - 0x1bc]
call fcn.00402720
jmp 0x47d0f6
push 0x519638
lea ecx, [ebp - 0x1c0]
call fcn.00402720
push 0x523c9c
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0xe
call fcn.00401ba0
lea eax, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x1cc]
push eax
mov byte [ebp - 4], 0xf
call fcn.00476870
lea ecx, [ebp - 0x1bc]
push ecx
push eax
lea eax, [ebp - 0x1d0]
push eax
mov byte [ebp - 4], 0x10
call fcn.00476870
add esp, 0x18
push dword [eax]
add ebx, 0xd4
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x1c8], ebx
call fcn.00476620
mov ecx, eax
call fcn.004027b0
mov edx, dword [ebp - 0x1d0]
add edx, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 0x10
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x47d1f4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1cc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xf
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d217
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d23a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d25d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d280
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x523ca4
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x12
call fcn.00476620
push 0xd
push 0x523cb8
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d2d3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x13
jne 0x47d31c
mov eax, 0x519638
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47d32c
push esi
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004072e0
jmp 0x47d32c
push 0x519638
lea ecx, [ebp - 0x1c0]
call fcn.00402720
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0x14
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x15
jne 0x47d379
mov eax, 0x519638
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47d389
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004072e0
jmp 0x47d389
push 0x519638
lea ecx, [ebp - 0x1bc]
call fcn.00402720
push str.version
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x16
call fcn.00401ba0
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x1d0]
push eax
mov byte [ebp - 4], 0x17
call fcn.00476870
lea ecx, [ebp - 0x1c0]
push ecx
push eax
lea eax, [ebp - 0x1cc]
push eax
mov byte [ebp - 4], 0x18
call fcn.00476870
add esp, 0x18
push dword [eax]
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x19
call fcn.00476620
mov ecx, eax
call fcn.004027b0
mov edx, dword [ebp - 0x1cc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x18
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d414
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x17
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d437
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d45a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d47d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d4a0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.type
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x1a
call fcn.00476620
push 0xb
push 0x523cf0
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d4f3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.internalName
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x1b
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d546
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x1c
jne 0x47d58f
mov eax, 0x519638
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47d59f
push esi
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004072e0
jmp 0x47d59f
push 0x519638
lea ecx, [ebp - 0x1c0]
call fcn.00402720
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0x1d
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x1e
jne 0x47d5ec
mov eax, 0x519638
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47d5fc
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004072e0
jmp 0x47d5fc
push 0x519638
lea ecx, [ebp - 0x1bc]
call fcn.00402720
push 0x523d30
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x1f
call fcn.00401ba0
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x1d0]
push eax
mov byte [ebp - 4], 0x20
call fcn.00476870
lea ecx, [ebp - 0x1c0]
push ecx
push eax
lea eax, [ebp - 0x1cc]
push eax
mov byte [ebp - 4], 0x21
call fcn.00476870
add esp, 0x18
push dword [eax]
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x22
call fcn.00476620
mov ecx, eax
call fcn.004027b0
mov edx, dword [ebp - 0x1cc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x21
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d687
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x20
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d6aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1f
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d6cd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1d
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d6f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d713
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.updateKey
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x23
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d766
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x523d58
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x24
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d7b9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.optionsType
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x25
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d80c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.aboutURL
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x26
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d85f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x523d9c
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x27
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d8b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.icon64URL
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x28
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d905
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x523dc0
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
push 0x520ad4
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x29
call fcn.00476620
mov ecx, eax
call fcn.004027b0
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d956
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x523ddc
lea ecx, [ebp - 0x1b8]
call fcn.00401ba0
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2a
call fcn.00476620
push 3
push 0x523dec
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d9a9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x566ac0]
imul eax, eax
cdq
mov ecx, 0x18
idiv ecx
cmp edx, 0x16
jne 0x47da42
mov ebx, dword [0x566ac0]
mov eax, ebx
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
mov esi, 0xb5
mov dword [ebp - 0x1c0], ecx
mov dword [ebp - 0x1bc], eax
test eax, eax
jle 0x47da31
mov eax, ebx
cdq
and edx, 3
lea ebx, [edx + eax]
mov eax, dword [ebp - 0x1bc]
sar ebx, 2
xor edx, edx
mov dword [ebp - 0x1b8], eax
test ebx, ebx
jle 0x47da1a
mov eax, edx
mov ecx, ebx
add esi, eax
dec eax
dec ecx
jne 0x47da08
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1c0]
add edx, ecx
dec eax
mov dword [ebp - 0x1b8], eax
jne 0x47da00
mov eax, dword [ebp - 0x1bc]
mov ebx, dword [0x566ac0]
inc ecx
mov dword [ebp - 0x1c0], ecx
cmp ecx, esi
jl 0x47d9e2
mov ebx, dword [ebp - 0x1c8]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov eax, 0x523df4
mov byte [ebp - 4], 0x2b
test eax, 0xffff0000
jne 0x47da89
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47da9b
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004073a0
jmp 0x47da9b
push 6
push 0x523df4
lea ecx, [ebp - 0x1bc]
call fcn.00409940
lea eax, [ebp - 0x1bc]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2c
call fcn.00476620
push 3
push 0x523dec
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dade
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov eax, 0x523e04
mov byte [ebp - 4], 0x2d
test eax, 0xffff0000
jne 0x47db25
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47db37
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004073a0
jmp 0x47db37
push 0xc
push 0x523e04
lea ecx, [ebp - 0x1bc]
call fcn.00409940
lea eax, [ebp - 0x1bc]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2e
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47db7a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov eax, 0x523e28
mov byte [ebp - 4], 0x2f
test eax, 0xffff0000
jne 0x47dbc1
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47dbd3
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004073a0
jmp 0x47dbd3
push 0xb
push 0x523e28
lea ecx, [ebp - 0x1bc]
call fcn.00409940
lea eax, [ebp - 0x1bc]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x30
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dc16
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov eax, str.pendingUninstall
mov byte [ebp - 4], 0x31
test eax, 0xffff0000
jne 0x47dc5d
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47dc6f
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004073a0
jmp 0x47dc6f
push 0x10
push str.pendingUninstall
lea ecx, [ebp - 0x1bc]
call fcn.00409940
lea eax, [ebp - 0x1bc]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x32
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dcb2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x33
jne 0x47dcfb
mov eax, 0x519638
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47dd0b
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004072e0
jmp 0x47dd0b
push 0x519638
lea ecx, [ebp - 0x1b8]
call fcn.00402720
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0x34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x35
jne 0x47dd58
mov eax, 0x519638
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47dd68
push esi
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004072e0
jmp 0x47dd68
push 0x519638
lea ecx, [ebp - 0x1c0]
call fcn.00402720
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0x36
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
mov eax, 0x523c84
mov byte [ebp - 4], 0x37
test eax, 0xffff0000
jne 0x47ddb3
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47ddc5
push esi
push eax
lea ecx, [ebp - 0x1bc]
call fcn.004073a0
jmp 0x47ddc5
push 0xa
push 0x523c84
lea ecx, [ebp - 0x1bc]
call fcn.00409940
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x1d0]
push eax
mov byte [ebp - 4], 0x38
call fcn.00476870
lea ecx, [ebp - 0x1b8]
push ecx
push eax
lea eax, [ebp - 0x1cc]
push eax
mov byte [ebp - 4], 0x39
call fcn.00476870
add esp, 0x18
push dword [eax]
lea eax, [ebp - 0x1bc]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x3a
call fcn.00476620
mov ecx, eax
call fcn.004027b0
mov edx, dword [ebp - 0x1cc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x39
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47de3c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x38
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47de5f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1bc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x36
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47de82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x34
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dea5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dec8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, 0x523e64
mov byte [ebp - 4], 0x3b
test eax, 0xffff0000
jne 0x47df0f
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47df21
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47df21
push 0xb
push 0x523e64
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x3c
call fcn.00476620
push 0xf
push str.1332069306566
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47df64
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, 0x523e9c
mov byte [ebp - 4], 0x3d
test eax, 0xffff0000
jne 0x47dfab
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47dfbd
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47dfbd
push 0xa
push 0x523e9c
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x3e
call fcn.00476620
push 0xf
push str.1332084689256
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e000
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, 0x523ed4
mov byte [ebp - 4], 0x3f
test eax, 0xffff0000
jne 0x47e047
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e059
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e059
push 0x16
push 0x523ed4
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x40
call fcn.00476620
push 3
push 0x523dec
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e09c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, str.bootstrap
mov byte [ebp - 4], 0x41
test eax, 0xffff0000
jne 0x47e0e3
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e0f5
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e0f5
push 9
push str.bootstrap
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x42
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e138
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, str.skinnable
mov byte [ebp - 4], 0x43
test eax, 0xffff0000
jne 0x47e17f
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e191
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e191
push 9
push str.skinnable
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x44
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e1d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, str.size
mov byte [ebp - 4], 0x45
test eax, 0xffff0000
jne 0x47e21b
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e22d
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e22d
push 4
push str.size
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x46
call fcn.00476620
push 8
push str.313108
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e270
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, str.sourceURI
mov byte [ebp - 4], 0x47
test eax, 0xffff0000
jne 0x47e2b7
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e2c9
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e2c9
push 9
push str.sourceURI
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x48
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e30c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00488cf0
test al, al
jne 0x47e3c6
mov ecx, dword [0x566ac0]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x1cc], eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1d0], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebp - 0x1bc], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1c0], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1b8], 0
lea esi, [ebp - 0x1b3]
xor eax, eax
lea ecx, [ecx]
mov edx, dword [0x566ac0]
mov cl, dl
sub cl, al
mov ebx, 1
mov edi, 0xe
add esi, 6
inc ebx
dec edi
jne 0x47e3a4
mov eax, dword [ebp - 0x1b8]
inc eax
mov dword [ebp - 0x1b8], eax
cmp eax, 5
jl 0x47e390
mov ebx, dword [ebp - 0x1c8]
or edi, 0xffffffff
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, str.releaseNotesURI
mov byte [ebp - 4], 0x49
test eax, 0xffff0000
jne 0x47e40d
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e41f
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e41f
push 0xf
push str.releaseNotesURI
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4a
call fcn.00476620
push 4
push str.null
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e462
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1b8], eax
mov eax, 0x523f80
mov byte [ebp - 4], 0x4b
test eax, 0xffff0000
jne 0x47e4a9
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x47e4bb
push esi
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004073a0
jmp 0x47e4bb
push 0xc
push 0x523f80
lea ecx, [ebp - 0x1b8]
call fcn.00409940
lea eax, [ebp - 0x1b8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4c
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1b8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e4fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.isForeignInstall
lea ecx, [ebp - 0x1c8]
call fcn.00401ba0
lea eax, [ebp - 0x1c8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4d
call fcn.00476620
push 3
push 0x523dec
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1c8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e551
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.hasBinaryComponents
lea ecx, [ebp - 0x1c8]
call fcn.00401ba0
lea eax, [ebp - 0x1c8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4e
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1c8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e5a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.strictCompatibility
lea ecx, [ebp - 0x1c8]
call fcn.00401ba0
lea eax, [ebp - 0x1c8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4f
call fcn.00476620
push 3
push 0x523e20
mov ecx, eax
call fcn.00409940
mov edx, dword [ebp - 0x1c8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e5f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d8]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e61a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1dc]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e63d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1e0]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e660
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1d4]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x47e684
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e52a4
mov esp, ebp
pop ebp
ret 4