Function at 0x409f20
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46ab3f
mov eax, dword fs:[0]
push eax
sub esp, 0x43c
mov eax, dword [0x4846a0]
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
xor ebx, ebx
mov dword [ebp - 0x35c], ebx
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov esi, ecx
mov ecx, 0x484034
mov dword [ebp - 0x308], esi
call edx
add eax, 0x10
mov dword [ebp - 0x31c], eax
mov dword [ebp - 4], ebx
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
add eax, 0x10
mov dword [ebp - 0x32c], eax
mov byte [ebp - 4], 1
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
add eax, 0x10
mov dword [ebp - 0x328], eax
mov byte [ebp - 4], 2
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
add eax, 0x10
mov dword [ebp - 0x350], eax
mov byte [ebp - 4], 3
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
add eax, 0x10
mov dword [ebp - 0x30c], eax
mov byte [ebp - 4], 4
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
add eax, 0x10
mov dword [ebp - 0x334], eax
mov byte [ebp - 4], 5
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
add eax, 0x10
mov dword [ebp - 0x33c], eax
lea edi, [esi + 0x44]
mov byte [ebp - 4], 6
mov dword [ebp - 0x338], edi
cmp dword [edi + 0x34], ebx
je 0x40a319
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
push str.application
push eax
push edi
call fcn.004443b0
cmp eax, ebx
je 0x40a319
mov edx, dword [edi + 0x30]
mov ecx, eax
mov esi, eax
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
and esi, 0xffff
shl esi, 5
mov edx, dword [ecx + esi + 0x10]
mov dword [edi + 0xc], eax
mov eax, 1
mov dword [edi + 8], edx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x1c], eax
mov ecx, dword [edi + 0xc]
cmp ecx, ebx
je 0x40a0a4
cmp eax, eax
jne 0x40a0a4
mov eax, ebx
mov dword [edi + 8], ecx
xor ecx, ecx
cmp eax, ebx
setne cl
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x1c], ecx
mov eax, 0x472b1c
mov esi, edi
call fcn.004433d0
test al, al
je 0x40a156
mov eax, edi
call fcn.00443430
movzx eax, al
mov dword [0x4876fc], eax
cmp eax, ebx
je 0x40a156
mov eax, edi
call fcn.004436e0
mov eax, str.KeyInfo
call fcn.004433d0
test al, al
je 0x40a14f
mov eax, edi
call fcn.004436e0
mov eax, str.X509Data
call fcn.004433d0
test al, al
je 0x40a148
mov eax, edi
call fcn.004436e0
mov eax, str.X509Certificate
call fcn.004433d0
test al, al
je 0x40a141
lea esi, [ebp - 0x314]
mov eax, edi
call fcn.00403e70
mov edi, dword [ebp - 0x308]
add edi, 0x168
mov byte [ebp - 4], 8
call fcn.00421630
mov eax, esi
mov byte [ebp - 4], 6
call fcn.004245a0
mov edi, dword [ebp - 0x338]
mov eax, edi
call fcn.00443720
mov eax, edi
call fcn.00443720
mov eax, edi
call fcn.00443720
mov esi, dword [ebp - 0x308]
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x1c], ebx
cmp dword [0x4876fc], ebx
je 0x40a45c
mov eax, dword [esi + 0x90]
sub eax, 0x10
call fcn.00426710
add eax, 0x10
mov dword [ebp - 0x324], eax
push 1
push 0x472154
lea ebx, [ebp - 0x324]
mov byte [ebp - 4], 9
call fcn.004249d0
push 0x10
push 0x4721d0
call fcn.004249d0
mov ebx, dword [ebp - 0x324]
push 0
push ecx
add ebx, 0xfffffff0
mov eax, ebx
mov dword [ebp - 0x360], esp
mov dword [ebp - 0x314], esp
call fcn.00426710
mov edx, esp
add eax, 0x10
push esi
mov dword [edx], eax
call fcn.0041e460
mov byte [ebp - 4], 6
test al, al
jne 0x40a443
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a201
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a227
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a24d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a273
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a299
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a2bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a2e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
lea eax, [esi + 0x118]
push str.XML_error:_Cant_find_the_application_tag.
push eax
mov ebx, 0x2c
call fcn.00401330
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a355
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a37b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a3a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a3c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a3ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a413
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a45c
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
lea ebx, [ebp - 0x36c]
call fcn.004306e0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x36c]
add eax, 0xfffffff0
mov dword [ebp - 0x358], eax
call fcn.00426640
add eax, 0x10
mov dword [ebp - 0x34c], eax
lea eax, [ebp - 0x34c]
push eax
mov byte [ebp - 4], 0xb
call fcn.00421250
mov ecx, dword [ebp - 0x34c]
xor ebx, ebx
cmp dword [ecx - 0xc], ebx
jne 0x40a625
cmp dword [0x4876fc], ebx
je 0x40a850
lea edi, [esi + 0x118]
mov edx, 0x472b78
call fcn.004011b0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a4eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a50e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a534
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a55a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a580
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a5a6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a5cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a5f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
mov eax, dword [esi + 0x168]
push ecx
sub eax, 0x10
mov dword [ebp - 0x360], esp
mov dword [ebp - 0x314], esp
call fcn.00426710
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
lea ecx, [ebp - 0x324]
call fcn.0040d810
xor eax, eax
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x36c], ebx
setne al
cmp eax, ebx
jne 0x40a66f
push 0x80004005
call fcn.00401680
mov edx, dword [ebp - 0x36c]
mov eax, dword [ebp - 0x324]
push edx
push eax
call fcn.00450353
add esp, 8
cmp eax, ebx
je 0x40a824
lea edi, [esi + 0x118]
mov edx, str.Security_error:_The_security_key_doesnt_match_the_signature_of_version_info.xml.
call fcn.004011b0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a6c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a6e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a70c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a732
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a758
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a77e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a7a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a7ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a7f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x324]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a850
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ebx, [ebx]
cmp dword [edi + 0x34], ebx
je 0x40cdbe
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 8]
push str.product
push ecx
push edi
call fcn.004443b0
cmp eax, ebx
je 0x40cdbe
mov ecx, dword [edi + 0x30]
mov edx, eax
mov esi, eax
sar edx, 0x10
mov edx, dword [ecx + edx*4]
and esi, 0xffff
shl esi, 5
mov ecx, dword [edx + esi + 0x10]
mov esi, dword [ebp - 0x338]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x1c], 1
mov edi, str.language
lea ecx, [ebp - 0x390]
mov eax, esi
call fcn.00403e90
mov byte [ebp - 4], 0xd
mov ecx, dword [eax]
mov edi, dword [ebp - 0x328]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x40a923
cmp dword [edi + 0xc], ebx
jl 0x40a911
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40a911
call fcn.00426710
mov dword [ebp - 0x314], eax
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a900
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x328], ecx
jmp 0x40a923
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x328]
push edx
call fcn.00401330
xor ebx, ebx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x390]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a949
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [0x487910]
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x40a665
mov ecx, dword [ebp - 0x328]
push eax
push ecx
call fcn.0044fbff
add esp, 8
cmp eax, ebx
jne 0x40c79c
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
je 0x40a9a6
cmp dword [esi + 0x1c], 1
jne 0x40a9a6
mov eax, dword [esi + 0x10]
xor edx, edx
cmp eax, ebx
setne dl
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x1c], edx
jmp 0x40a9a6
mov esi, dword [ebp - 0x338]
xor edi, edi
cmp dword [esi + 0x34], edi
je 0x40c91c
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
push str.version
push eax
push esi
call fcn.004443b0
cmp eax, edi
je 0x40c91c
mov edx, dword [esi + 0x30]
mov ecx, eax
mov ebx, eax
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
and ebx, 0xffff
shl ebx, 5
mov edx, dword [ecx + ebx + 0x10]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov edi, str.name
lea ecx, [ebp - 0x37c]
mov eax, esi
mov dword [esi + 8], edx
mov dword [esi + 0x1c], 1
call fcn.00403e90
mov byte [ebp - 4], 0xe
mov ecx, dword [eax]
mov edi, dword [ebp - 0x31c]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x40aa74
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40aa64
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40aa64
call fcn.00426710
mov dword [ebp - 0x314], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40aa53
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x31c], ecx
jmp 0x40aa74
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x31c]
push edx
call fcn.00401330
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x37c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aa9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.component
lea ecx, [ebp - 0x384]
mov eax, esi
call fcn.00403e90
mov byte [ebp - 4], 0xf
mov ecx, dword [eax]
mov edi, dword [ebp - 0x334]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x40ab13
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40ab03
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40ab03
call fcn.00426710
mov dword [ebp - 0x314], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40aaf2
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x334], ecx
jmp 0x40ab13
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x334]
push edx
call fcn.00401330
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x384]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ab39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.scope
lea ecx, [ebp - 0x3dc]
mov eax, esi
call fcn.00403e90
mov byte [ebp - 4], 0x10
mov ecx, dword [eax]
mov edi, dword [ebp - 0x33c]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x40abb2
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40aba2
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40aba2
call fcn.00426710
mov dword [ebp - 0x314], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40ab91
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x33c], ecx
jmp 0x40abb2
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x33c]
push edx
call fcn.00401330
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x3dc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40abd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [0x48792c]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40a665
mov ecx, dword [ebp - 0x31c]
push eax
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
mov eax, esi
jne 0x40c590
mov edi, str.updateType
lea ecx, [ebp - 0x404]
call fcn.00403e90
mov byte [ebp - 4], 0x11
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x30c]
lea eax, [ecx - 0x10]
lea edi, [ebx - 0x10]
cmp eax, edi
je 0x40ac83
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40ac6d
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40ac6d
call fcn.00426710
mov dword [ebp - 0x314], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40ac5c
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x30c], ecx
jmp 0x40ac7d
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x30c]
push edx
call fcn.00401330
mov ebx, dword [ebp - 0x30c]
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x404]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aca9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx - 0xc], 0
je 0x40ace6
cmp dword [0x4876f8], 0
jne 0x40ace6
push str.bootstrapper
push ebx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40acdc
mov dword [0x4876f8], 1
cmp dword [0x4876f0], eax
je 0x40ace6
mov dword [0x4876f8], 0
mov edi, str.showRunningApplicationsWarning
lea ecx, [ebp - 0x40c]
mov eax, esi
call fcn.00403e90
mov byte [ebp - 4], 0x12
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea edi, [ebx - 0x10]
cmp eax, edi
je 0x40ad5f
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x40ad49
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40ad49
call fcn.00426710
mov dword [ebp - 0x314], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x40ad38
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x30c], ecx
jmp 0x40ad59
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x30c]
push edx
call fcn.00401330
mov ebx, dword [ebp - 0x30c]
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x40c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx - 0xc], 0
je 0x40adab
push 0x472d4c
push ebx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40adab
mov ebx, dword [ebp - 0x308]
mov byte [ebx + 0x128], al
jmp 0x40adb1
mov ebx, dword [ebp - 0x308]
mov ecx, dword [esi + 0xc]
xor edi, edi
cmp ecx, edi
je 0x40addc
cmp dword [esi + 0x1c], 1
jne 0x40addc
mov eax, dword [esi + 0x10]
mov dword [esi + 8], ecx
xor ecx, ecx
cmp eax, edi
setne cl
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x1c], ecx
cmp dword [esi + 0x34], edi
je 0x40c930
mov edx, dword [esi + 0xc]
push str.files
push edx
mov edx, dword [esi + 8]
push esi
call fcn.004443b0
cmp eax, edi
je 0x40c930
mov edx, dword [esi + 0x30]
mov ecx, eax
mov edi, eax
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
and edi, 0xffff
shl edi, 5
mov edx, dword [ecx + edi + 0x10]
mov dword [esi + 0xc], eax
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov edi, 0x472db8
lea ecx, [ebp - 0x3e8]
mov eax, esi
mov dword [esi + 8], edx
mov dword [esi + 0x1c], 1
call fcn.00403e90
lea edi, [ebx + 0x134]
mov byte [ebp - 4], 0x13
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x3e8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
mov eax, 4
lea ecx, [ebp - 0x3d0]
call fcn.00421e70
mov eax, dword [eax]
push str..msi
push eax
call fcn.0044fd5e
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x3d0]
setne byte [ebp - 0x31d]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aec4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0x31d], 0
je 0x40aee1
push 4
push str..msi
mov ebx, edi
call fcn.004249d0
mov ebx, dword [ebp - 0x308]
mov edi, str.customActionAssembly
lea ecx, [ebp - 0x380]
mov eax, esi
call fcn.00403e90
lea edi, [ebx + 0x138]
mov byte [ebp - 4], 0x14
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x380]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40af28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.customActionClass
lea ecx, [ebp - 0x3e4]
mov eax, esi
call fcn.00403e90
lea edi, [ebx + 0x13c]
mov byte [ebp - 4], 0x15
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x3e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40af6f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.hash
lea ecx, [ebp - 0x388]
mov eax, esi
call fcn.00403e90
lea edi, [ebx + 0x140]
mov byte [ebp - 4], 0x16
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x388]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40afb6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi]
cmp dword [ecx - 0xc], 0
jle 0x40b037
mov eax, dword [0x4878c4]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x330], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
lea ecx, [ebp - 0x370]
mov dword [esi], eax
call fcn.0040d4b0
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x370]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x40a665
mov edi, dword [edi]
push ecx
push edi
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40caac
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x370]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b037
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x484034]
mov eax, dword [edx + 0xc]
mov ecx, 0x484034
call eax
add eax, 0x10
mov dword [ebp - 0x310], eax
mov byte [ebp - 4], 0x18
mov eax, dword [0x4878d4]
add eax, 0xfffffff0
call fcn.00426710
lea edi, [eax + 0x10]
mov dword [ebp - 0x354], edi
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x31c]
push ecx
add eax, 0xfffffff0
cmp dword [ebx + 0x88], 2
mov dword [ebp - 0x330], esp
mov esi, esp
jne 0x40b10d
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x328]
mov dword [ebp - 0x340], esp
mov esi, esp
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x340], esp
mov ebx, esp
call fcn.00426710
add eax, 0x10
mov dword [ebx], eax
push ecx
mov byte [ebp - 4], 0x1b
lea eax, [edi - 0x10]
mov dword [ebp - 0x314], esp
mov ebx, esp
call fcn.00426710
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 0x1a
call fcn.0041caf0
lea esi, [ebp - 0x3d8]
mov byte [ebp - 4], 0x19
call fcn.0041caf0
lea edi, [ebp - 0x354]
mov byte [ebp - 4], 0x1c
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3d8]
jmp 0x40b18b
push ecx
mov dword [ebp - 0x340], esp
mov ebx, esp
call fcn.00426710
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x328]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x314], esp
mov ebx, esp
call fcn.00426710
add eax, 0x10
mov dword [ebx], eax
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
push ecx
mov byte [ebp - 4], 0x1e
lea eax, [edi - 0x10]
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x374]
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
lea edi, [ebp - 0x354]
mov byte [ebp - 4], 0x1f
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x374]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b1a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x338]
mov ecx, dword [ebx + 0xc]
xor esi, esi
cmp ecx, esi
je 0x40b1d8
cmp dword [ebx + 0x1c], 1
jne 0x40b1d8
mov eax, dword [ebx + 0x10]
mov dword [ebx + 8], ecx
xor ecx, ecx
cmp eax, esi
setne cl
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x1c], ecx
mov byte [ebp - 0x31d], 0
xor edi, edi
cmp dword [ebx + 0x34], edi
je 0x40bb74
mov edx, dword [ebx + 0xc]
push str.file
push edx
mov edx, dword [ebx + 8]
push ebx
call fcn.004443b0
cmp eax, edi
je 0x40bb74
mov edx, dword [ebx + 0x30]
mov ecx, eax
mov esi, eax
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
and esi, 0xffff
shl esi, 5
mov edx, dword [ecx + esi + 0x10]
mov dword [ebx + 0xc], eax
lea esi, [ebp - 0x3ec]
mov eax, ebx
mov dword [ebx + 8], edx
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], edi
mov dword [ebx + 0x1c], 1
mov byte [ebp - 0x341], 0
mov byte [ebp - 0x315], 0
mov byte [ebp - 0x342], 0
call fcn.00403e70
mov byte [ebp - 4], 0x20
mov ecx, dword [eax]
mov esi, dword [ebp - 0x310]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40b2b8
cmp dword [esi + 0xc], edi
jl 0x40b2a2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40b2a2
call fcn.00426710
mov edi, eax
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b297
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0x310], edi
jmp 0x40b2b8
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x310]
push ecx
call fcn.00401330
mov ebx, dword [ebp - 0x338]
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3ec]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b2de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.prerequisite
lea ecx, [ebp - 0x398]
mov eax, ebx
call fcn.00403e90
mov byte [ebp - 4], 0x21
mov ecx, dword [eax]
mov esi, dword [ebp - 0x30c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40b35d
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40b347
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40b347
call fcn.00426710
mov dword [ebp - 0x314], eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40b336
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x314]
add ecx, 0x10
mov dword [ebp - 0x30c], ecx
jmp 0x40b35d
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x30c]
push edx
call fcn.00401330
mov ebx, dword [ebp - 0x338]
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x398]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b383
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30c]
cmp dword [eax - 0xc], 0
je 0x40b3a6
push 0x472e80
push eax
call fcn.0044fbff
add esp, 8
test eax, eax
sete byte [ebp - 0x341]
mov edi, str.updater
lea ecx, [ebp - 0x3e0]
mov eax, ebx
call fcn.00403e90
lea edi, [ebp - 0x30c]
mov byte [ebp - 4], 0x22
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3e0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b3ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30c]
cmp dword [eax - 0xc], 0
je 0x40b410
push 0x472e80
push eax
call fcn.0044fbff
add esp, 8
test eax, eax
sete byte [ebp - 0x315]
mov edi, str.action
lea ecx, [ebp - 0x3a0]
mov eax, ebx
call fcn.00403e90
lea edi, [ebp - 0x30c]
mov byte [ebp - 4], 0x23
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b457
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30c]
cmp dword [eax - 0xc], 0
je 0x40b47a
push 0x472e80
push eax
call fcn.0044fbff
add esp, 8
test eax, eax
sete byte [ebp - 0x342]
mov edi, str.size
lea ecx, [ebp - 0x3f4]
mov eax, ebx
call fcn.00403e90
lea edi, [ebp - 0x30c]
mov byte [ebp - 4], 0x24
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3f4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b4c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30c]
cmp dword [eax - 0xc], 0
je 0x40b55f
xor ecx, ecx
mov word [ebp - 0x304], cx
mov ecx, eax
mov dword [ebp - 0x2f0], 7
mov dword [ebp - 0x2f4], 0
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x40b4f3
sub ecx, esi
sar ecx, 1
push ecx
lea ecx, [ebp - 0x304]
call fcn.00430290
lea edx, [ebp - 0x304]
push edx
mov byte [ebp - 4], 0x25
call fcn.0043c380
add esp, 4
mov byte [ebp - 4], 0x19
cmp dword [ebp - 0x2f0], 8
mov esi, eax
mov edi, edx
jb 0x40b541
mov eax, dword [ebp - 0x304]
push eax
call fcn.0044ebcc
add esp, 4
test edi, edi
jl 0x40b55f
jg 0x40b54b
test esi, esi
je 0x40b55f
mov eax, dword [ebp - 0x308]
add dword [eax + 0x100], esi
adc dword [eax + 0x104], edi
jmp 0x40b565
mov eax, dword [ebp - 0x308]
cmp byte [ebp - 0x341], 0
je 0x40b840
cmp dword [0x4876f0], 0
jne 0x40b1df
xor esi, esi
mov edi, str.language
lea ecx, [ebp - 0x3a8]
mov eax, ebx
mov dword [ebp - 0x348], esi
call fcn.00403e90
lea edi, [ebp - 0x30c]
mov byte [ebp - 4], 0x26
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3a8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b5ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30c]
cmp dword [eax - 0xc], esi
je 0x40b650
xor ecx, ecx
mov word [ebp - 0x304], cx
mov ecx, eax
mov byte [ebp - 0x31d], 1
mov dword [ebp - 0x2f0], 7
mov dword [ebp - 0x2f4], esi
lea edi, [ecx + 2]
mov edi, edi
mov dx, word [ecx]
add ecx, 2
cmp dx, si
jne 0x40b600
sub ecx, edi
sar ecx, 1
push ecx
lea ecx, [ebp - 0x304]
call fcn.00430290
lea edx, [ebp - 0x304]
push edx
mov byte [ebp - 4], 0x27
call fcn.0043c280
add esp, 4
mov byte [ebp - 4], 0x19
cmp dword [ebp - 0x2f0], 8
mov dword [ebp - 0x348], eax
jb 0x40b650
mov eax, dword [ebp - 0x304]
push eax
call fcn.0044ebcc
add esp, 4
mov ecx, dword [ebp - 0x308]
mov eax, dword [ebp - 0x310]
push ecx
add eax, 0xfffffff0
cmp dword [ecx + 0x88], 2
mov dword [ebp - 0x330], esp
mov esi, esp
jne 0x40b6dd
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x354]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x3fc]
mov byte [ebp - 4], 0x19
call fcn.0041caf0
mov edi, dword [ebp - 0x308]
add edi, 0x258
mov ecx, eax
mov byte [ebp - 4], 0x29
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3fc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40b747
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x354]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x3b0]
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
mov edi, dword [ebp - 0x308]
add edi, 0x258
mov ecx, eax
mov byte [ebp - 4], 0x2b
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3b0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b753
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x310]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x330], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov edi, dword [ebp - 0x308]
mov byte [ebp - 4], 0x2c
mov eax, dword [edi + 0x90]
push ecx
sub eax, 0x10
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x408]
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
add edi, 0x288
mov ecx, eax
mov byte [ebp - 4], 0x2d
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x408]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b7db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.hash
lea ecx, [ebp - 0x3b8]
mov eax, ebx
call fcn.00403e90
mov esi, dword [ebp - 0x308]
lea edi, [esi + 0x268]
mov ecx, eax
mov byte [ebp - 4], 0x2e
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3b8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b82a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esi + 0x278]
lea eax, [ebp - 0x348]
call fcn.00424180
jmp 0x40b1df
inc dword [eax + 0x108]
cmp dword [eax + 0x88], 2
mov eax, dword [ebp - 0x310]
push ecx
mov dword [ebp - 0x330], esp
mov esi, esp
jne 0x40b8bd
add eax, 0xfffffff0
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x2f
mov eax, dword [ebp - 0x354]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x3f0]
mov byte [ebp - 4], 0x19
call fcn.0041caf0
mov edi, dword [ebp - 0x308]
add edi, 0x218
mov ecx, eax
mov byte [ebp - 4], 0x30
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3f0]
jmp 0x40b91a
add eax, 0xfffffff0
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x31
mov eax, dword [ebp - 0x354]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x3c0]
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
mov edi, dword [ebp - 0x308]
add edi, 0x218
mov ecx, eax
mov byte [ebp - 4], 0x32
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3c0]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b936
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0x315], 0
je 0x40ba74
mov ecx, dword [ebp - 0x310]
cmp dword [ecx - 0xc], 8
jle 0x40b987
mov eax, 8
lea ecx, [ebp - 0x400]
lea edx, [ebp - 0x310]
call fcn.00421ef0
mov eax, dword [eax]
or dword [ebp - 0x35c], 1
push str.updater_
push eax
call fcn.0044fbff
add esp, 8
mov byte [ebp - 0x315], 1
test eax, eax
je 0x40b98e
mov byte [ebp - 0x315], 0
mov dword [ebp - 4], 0x19
test byte [ebp - 0x35c], 1
je 0x40b9c7
mov eax, dword [ebp - 0x400]
and dword [ebp - 0x35c], 0xfffffffe
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b9c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0x315], 0
je 0x40b9e3
lea ecx, [ebp - 0x310]
push ecx
mov eax, 8
xor ecx, ecx
call fcn.004217a0
mov eax, dword [ebp - 0x310]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x330], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov edi, dword [ebp - 0x308]
mov byte [ebp - 4], 0x34
mov eax, dword [edi + 0xa0]
push ecx
sub eax, 0x10
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x3c8]
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
add edi, 0x238
mov ecx, eax
mov byte [ebp - 4], 0x35
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3c8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40bb1c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40bb1c
mov eax, dword [ebp - 0x310]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x330], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
mov edi, dword [ebp - 0x308]
mov byte [ebp - 4], 0x36
mov eax, dword [edi + 0x90]
push ecx
sub eax, 0x10
mov dword [ebp - 0x340], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x3f8]
mov byte [ebp - 4], 0x19
call fcn.0041ccc0
add edi, 0x238
mov ecx, eax
mov byte [ebp - 4], 0x37
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3f8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bafc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0x342], 0
je 0x40bb1c
mov edi, dword [ebp - 0x308]
add edi, 0x248
lea ecx, [ebp - 0x310]
call fcn.00424090
mov edi, str.hash
lea ecx, [ebp - 0x378]
mov eax, ebx
call fcn.00403e90
mov edi, dword [ebp - 0x308]
add edi, 0x228
mov ecx, eax
mov byte [ebp - 4], 0x38
call fcn.00424090
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x378]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b1df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40b1df
mov edi, dword [ebp - 0x308]
mov ecx, dword [edi + 0x25c]
sub ecx, dword [edi + 0x258]
lea eax, [edi + 0x258]
sar ecx, 2
mov dword [ebp - 0x348], eax
test ecx, ecx
je 0x40bfe5
cmp byte [ebp - 0x31d], 0
je 0x40be33
lea edx, [ebp - 0x438]
push edx
mov ecx, eax
mov dword [ebp - 0x364], 0
call fcn.00423fd0
lea eax, [ebp - 0x428]
lea ebx, [edi + 0x268]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x39
call fcn.00423fd0
lea ecx, [ebp - 0x448]
lea esi, [edi + 0x288]
push ecx
mov ecx, esi
mov byte [ebp - 4], 0x3a
call fcn.00423fd0
mov byte [ebp - 4], 0x3b
mov eax, dword [ebp - 0x348]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
lea edx, [ebp - 0x410]
push edx
push eax
call fcn.00425a20
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push eax
push ecx
lea eax, [ebp - 0x414]
push eax
push ebx
call fcn.00425a20
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [ebp - 0x418]
push ecx
push esi
call fcn.00425a20
mov edx, dword [edi + 0x27c]
sub edx, dword [edi + 0x278]
xor eax, eax
sar edx, 2
test edx, edx
je 0x40bc86
mov ecx, dword [edi + 0x278]
mov edx, dword [0x4876e8]
cmp dword [ecx], edx
je 0x40bc76
mov edx, dword [edi + 0x27c]
sub edx, dword [edi + 0x278]
inc eax
sar edx, 2
add ecx, 4
cmp eax, edx
jb 0x40bc53
jmp 0x40bc86
mov eax, edx
mov dword [ebp - 0x364], eax
test eax, eax
jne 0x40bd3c
xor eax, eax
push 0xc6
push eax
lea ecx, [ebp - 0xd6]
push ecx
mov word [ebp - 0xd8], ax
call fcn.00453220
mov edx, dword [edi + 0x27c]
sub edx, dword [edi + 0x278]
add esp, 0xc
sar edx, 2
mov dword [ebp - 0x324], 0
test edx, edx
je 0x40bd3c
mov eax, dword [edi + 0x278]
mov ecx, dword [ebp - 0x324]
push 0x64
lea edx, [ebp - 0xd8]
push edx
lea eax, [eax + ecx*4]
mov eax, dword [eax]
push 0x1001
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jle 0x40bd05
mov edx, dword [0x4878cc]
lea ecx, [ebp - 0xd8]
push ecx
push edx
call fcn.0044fbff
add esp, 8
test eax, eax
je 0x40bd27
mov ecx, dword [edi + 0x27c]
sub ecx, dword [edi + 0x278]
mov eax, dword [ebp - 0x324]
inc eax
sar ecx, 2
mov dword [ebp - 0x324], eax
cmp eax, ecx
jb 0x40bcc1
jmp 0x40bd3c
mov edx, dword [edi + 0x278]
mov eax, dword [ebp - 0x324]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x364], ecx
mov edx, dword [edi + 0x27c]
sub edx, dword [edi + 0x278]
xor eax, eax
sar edx, 2
mov dword [ebp - 0x314], eax
test edx, edx
je 0x40be08
mov ecx, dword [ebp - 0x428]
mov edx, dword [ebp - 0x438]
sub edx, ecx
mov dword [ebp - 0x340], edx
mov edx, dword [ebp - 0x448]
sub edx, ecx
mov dword [ebp - 0x324], ecx
mov dword [ebp - 0x330], edx
jmp 0x40bd90
mov ecx, dword [edi + 0x278]
mov edx, dword [ecx + eax*4]
cmp edx, dword [ebp - 0x364]
jne 0x40bde7
mov ecx, dword [ebp - 0x324]
add ecx, dword [ebp - 0x340]
mov edi, dword [ebp - 0x348]
call fcn.00424090
mov ecx, dword [ebp - 0x324]
mov edi, ebx
call fcn.00424090
mov eax, dword [ebp - 0x324]
mov ecx, dword [ebp - 0x330]
lea ecx, [ecx + eax]
mov edi, esi
call fcn.00424090
mov edi, dword [ebp - 0x308]
mov eax, dword [ebp - 0x314]
mov ecx, dword [edi + 0x27c]
sub ecx, dword [edi + 0x278]
add dword [ebp - 0x324], 4
inc eax
sar ecx, 2
mov dword [ebp - 0x314], eax
cmp eax, ecx
jb 0x40bd90
lea ebx, [ebp - 0x448]
call fcn.00425af0
lea ebx, [ebp - 0x428]
call fcn.00425af0
lea ebx, [ebp - 0x438]
mov byte [ebp - 4], 0x19
call fcn.00425af0
mov ebx, dword [ebp - 0x338]
mov edx, dword [0x484034]
mov eax, dword [edx + 0xc]
mov ecx, 0x484034
call eax
add eax, 0x10
mov dword [ebp - 0x348], eax
xor esi, esi
push 0x208
lea edx, [ebp - 0x2e6]
mov byte [ebp - 4], 0x3c
xor ecx, ecx
push esi
push edx
mov dword [ebp - 0x368], esi
mov word [ebp - 0x2e8], cx
call fcn.00453220
mov eax, dword [edi + 0x28c]
sub eax, dword [edi + 0x288]
add esp, 0xc
sar eax, 2
test eax, eax
je 0x40bfa9
lea ecx, [ecx]
mov ecx, dword [edi + 0x288]
mov eax, dword [ecx + esi*4]
lea edx, [ebp - 0x368]
push edx
lea ecx, [ebp - 0x2e8]
push ecx
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov edx, dword [ebp - 0x368]
test edx, edx
je 0x40bf10
mov eax, edx
lea ebx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40bec2
sub eax, ebx
push edx
sar eax, 1
lea edx, [ebp - 0x348]
push edx
mov ebx, eax
call fcn.00401330
mov ebx, dword [ebp - 0x348]
push str.setup.exe
push ebx
call fcn.0044fbff
add esp, 8
test eax, eax
je 0x40bf2d
push str.setup.exe.deploy
push ebx
call fcn.0044fbff
add esp, 8
test eax, eax
je 0x40bf2d
mov ebx, dword [ebp - 0x338]
mov eax, dword [edi + 0x28c]
sub eax, dword [edi + 0x288]
inc esi
sar eax, 2
cmp esi, eax
jb 0x40be90
jmp 0x40bfa9
mov edx, dword [ebp - 0x368]
xor ecx, ecx
lea eax, [ebp - 0x2e8]
mov word [edx], cx
lea esi, [edi + 0xcc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40bf47
sub eax, edx
lea ecx, [ebp - 0x2e8]
sar eax, 1
push ecx
push esi
mov ebx, eax
call fcn.00401330
mov eax, dword [edi + 0x90]
push 0x4776c8
push eax
push esi
call fcn.004218e0
mov edx, dword [esi]
mov ecx, dword [edx - 0xc]
lea eax, [ecx - 1]
test eax, eax
js 0x40cc43
cmp eax, dword [edx - 0xc]
jg 0x40cc43
cmp word [edx + eax*2], 0x5c
jne 0x40bfa3
dec ecx
push esi
mov eax, 1
call fcn.004217a0
mov ebx, dword [ebp - 0x338]
mov eax, dword [edi + 0x28c]
sub eax, dword [edi + 0x288]
or edx, 0xffffffff
sar eax, 2
inc eax
add dword [edi + 0x108], eax
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x348]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bfe5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx + 8]
test eax, eax
je 0x40c030
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x330], ecx
mov ecx, dword [ebx + 0x30]
mov edx, eax
sar edx, 0x10
mov edx, dword [ecx + edx*4]
mov esi, eax
and esi, 0xffff
shl esi, 5
mov ecx, dword [edx + esi + 0x10]
mov edx, dword [ebp - 0x330]
xor esi, esi
mov dword [ebx + 8], ecx
xor ecx, ecx
cmp eax, esi
setne cl
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x1c], ecx
mov eax, str.preferences
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c43f
mov ecx, dword [ebx + 0xc]
xor esi, esi
cmp ecx, esi
je 0x40c06f
cmp dword [ebx + 0x1c], 1
jne 0x40c06f
mov eax, dword [ebx + 0x10]
xor edx, edx
cmp eax, esi
setne dl
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x1c], edx
mov eax, str.showInstallUI
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c0ef
lea esi, [ebp - 0x38c]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x3d
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x38c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c0c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472d4c
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c0e9
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x126], al
mov edi, edx
jmp 0x40c0ef
mov edi, dword [ebp - 0x308]
mov eax, str.showUninstallUI
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c170
lea esi, [ebp - 0x394]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x3e
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x394]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c141
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472e80
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c16a
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x127], 1
mov edi, edx
jmp 0x40c170
mov edi, dword [ebp - 0x308]
mov eax, str.showRunningApplicationsWarning
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c1f0
lea esi, [ebp - 0x39c]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x3f
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x39c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c1c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472d4c
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c1ea
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x128], al
mov edi, edx
jmp 0x40c1f0
mov edi, dword [ebp - 0x308]
mov eax, str.loadCAInDownloader
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c271
lea esi, [ebp - 0x3a4]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x40
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c242
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472e80
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c26b
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x12c], 1
mov edi, edx
jmp 0x40c271
mov edi, dword [ebp - 0x308]
mov eax, str.loadCAInUpdater
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c2f2
lea esi, [ebp - 0x3ac]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x41
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c2c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472e80
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c2ec
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x12d], 1
mov edi, edx
jmp 0x40c2f2
mov edi, dword [ebp - 0x308]
mov eax, str.loadCAInUpdaterService
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c373
lea esi, [ebp - 0x3b4]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x42
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3b4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c344
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472e80
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c36d
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x12e], 1
mov edi, edx
jmp 0x40c373
mov edi, dword [ebp - 0x308]
mov eax, str.enableAutomaticUpdates
mov esi, ebx
call fcn.004433d0
test al, al
je 0x40c3f4
lea esi, [ebp - 0x3bc]
mov eax, ebx
call fcn.00403e70
lea edi, [ebp - 0x310]
mov byte [ebp - 4], 0x43
call fcn.00421630
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3bc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c3c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x310]
push 0x472e80
push ecx
call fcn.0044fbff
add esp, 8
test eax, eax
jne 0x40c3ee
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x12f], 1
mov edi, edx
jmp 0x40c3f4
mov edi, dword [ebp - 0x308]
mov eax, dword [ebx + 8]
test eax, eax
je 0x40c43f
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x330], ecx
mov ecx, dword [ebx + 0x30]
mov edx, eax
sar edx, 0x10
mov edx, dword [ecx + edx*4]
mov esi, eax
and esi, 0xffff
shl esi, 5
mov ecx, dword [edx + esi + 0x10]
mov edx, dword [ebp - 0x330]
xor esi, esi
mov dword [ebx + 8], ecx
xor ecx, ecx
cmp eax, esi
setne cl
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x1c], ecx
mov eax, dword [ebx + 8]
test eax, eax
je 0x40c48a
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x330], edx
mov edx, dword [ebx + 0x30]
mov ecx, eax
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
mov esi, eax
and esi, 0xffff
shl esi, 5
mov edx, dword [ecx + esi + 0x10]
mov ecx, dword [ebp - 0x330]
xor esi, esi
mov dword [ebx + 8], edx
xor edx, edx
cmp eax, esi
setne dl
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x1c], edx
mov ebx, 0x48791c
call fcn.0041aa50
test al, al
jne 0x40c53b
lea esi, [ebp - 0x304]
call fcn.0040cf40
mov eax, ebx
mov edi, esi
mov byte [ebp - 4], 0x44
call fcn.00421630
lea eax, [ebp - 0x328]
lea edi, [ebp - 0x2fc]
call fcn.00421630
lea eax, [ebp - 0x31c]
lea edi, [ebp - 0x300]
call fcn.00421630
lea eax, [ebp - 0x334]
lea edi, [ebp - 0x2f8]
call fcn.00421630
mov esi, dword [ebp - 0x308]
mov cl, byte [esi + 0x126]
mov dl, byte [esi + 0x127]
xor eax, eax
mov word [ebp - 0x2ea], ax
lea eax, [ebp - 0x33c]
lea edi, [ebp - 0x2f0]
mov byte [ebp - 0x2ec], cl
mov byte [ebp - 0x2eb], dl
call fcn.00421630
lea ebx, [esi + 0x208]
lea ecx, [ebp - 0x304]
call fcn.00423f10
lea esi, [ebp - 0x304]
call fcn.0040cfc0
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x354]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c561
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x310]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a9a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40a9a0
mov edi, str.productCode
lea ecx, [ebp - 0x3c4]
call fcn.00403e90
lea edi, [ebp - 0x32c]
mov byte [ebp - 4], 0x45
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x3c4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c5d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x32c]
cmp dword [ecx - 0xc], 0
je 0x40a9a6
mov edi, dword [ebp - 0x308]
lea ebx, [ebp - 0x32c]
call fcn.0041aa50
test al, al
jne 0x40a9a6
lea edx, [ebp - 0x33c]
push edx
lea eax, [ebp - 0x334]
push eax
lea ecx, [ebp - 0x328]
push ecx
lea edx, [ebp - 0x31c]
push edx
mov eax, ebx
push eax
push edi
call fcn.0040d080
test al, al
jne 0x40a9a6
add edi, 0x118
mov edx, str.XML_error:_Cant_parse_the_version_subtree.
call fcn.004011b0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c661
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c684
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c6aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c6d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c6f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c71c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c742
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c768
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
mov eax, esi
call fcn.004436e0
mov eax, str.version
call fcn.004433d0
test al, al
je 0x40c916
mov esi, dword [ebp - 0x338]
mov edi, str.name
lea ecx, [ebp - 0x3cc]
mov eax, esi
call fcn.00403e90
lea edi, [ebp - 0x31c]
mov byte [ebp - 4], 0x46
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x3cc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c802
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.productCode
lea ecx, [ebp - 0x3d4]
mov eax, esi
call fcn.00403e90
lea edi, [ebp - 0x32c]
mov byte [ebp - 4], 0x47
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x3d4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c849
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, str.component
lea ecx, [ebp - 0x360]
mov eax, esi
call fcn.00403e90
lea edi, [ebp - 0x334]
mov byte [ebp - 4], 0x48
call fcn.00421630
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x360]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c890
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x31c]
cmp dword [ecx - 0xc], 0
je 0x40c8f0
mov edx, dword [ebp - 0x32c]
cmp dword [edx - 0xc], 0
je 0x40c8f0
mov edi, dword [ebp - 0x308]
lea ebx, [ebp - 0x32c]
call fcn.0041aa50
test al, al
jne 0x40c8ea
lea eax, [ebp - 0x33c]
push eax
lea ecx, [ebp - 0x334]
push ecx
lea edx, [ebp - 0x328]
push edx
lea eax, [ebp - 0x31c]
push eax
mov ecx, ebx
push ecx
push edi
call fcn.0040d080
test al, al
je 0x40cc4d
mov esi, dword [ebp - 0x338]
mov eax, str.version
call fcn.004433d0
test al, al
jne 0x40c7b5
mov eax, esi
call fcn.00443720
mov edi, dword [ebp - 0x338]
xor ebx, ebx
jmp 0x40a850
mov esi, dword [ebp - 0x338]
mov eax, esi
call fcn.00443720
mov edi, dword [ebp - 0x338]
xor ebx, ebx
jmp 0x40a850
mov eax, dword [ebp - 0x308]
add eax, 0x118
push str.XML_error:_Cant_find_the_files_tag.
push eax
mov ebx, 0x26
call fcn.00401330
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c971
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c994
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c9ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c9e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ca06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ca2c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ca52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ca78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
lea edi, [ebx + 0x118]
mov edx, str.Wrong_downloader_hash.
call fcn.004011b0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x370]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cae2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cb08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cb2b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cb51
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cb77
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cb9d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cbc3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cbe9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cc0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
push 0x80070057
call fcn.00401680
add edi, 0x118
mov edx, str.XML_error:_Cant_parse_the_version_subtree.
call fcn.004011b0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cc83
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cca6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cccc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ccf2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd3e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a43c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x40cf16
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x34c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cde4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x358]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ce07
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x33c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ce2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x334]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ce53
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ce79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x350]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ce9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x328]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cec5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x32c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ceeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cf14
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
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.0044ebd7
mov esp, ebp
pop ebp
ret