Function at 0x405760
Capabilities:
Contain obfuscated stackstrings
Get file version info
Inspect section memory permissions
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4da7e3
mov eax, dword fs:[0]
push eax
sub esp, 0x478
mov eax, dword [0x54d158]
xor eax, esp
mov dword [esp + 0x470], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x54d158]
xor eax, esp
push eax
lea eax, [esp + 0x48c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x49c]
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x280], ecx
mov ecx, 0xf
or ebp, 0xffffffff
mov dword [esp + 0x3f0], edi
mov dword [esp + 0x3f4], edi
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x404], edi
mov dword [esp + 0x408], edi
mov dword [esp + 0x40c], edi
mov dword [esp + 0x410], edi
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x428], edi
mov byte [esp + 0x418], bl
mov dword [esp + 0x45c], ecx
mov dword [esp + 0x458], edi
mov byte [esp + 0x448], bl
mov byte [esp + 0x460], 1
mov byte [esp + 0x461], bl
mov dword [esp + 0x494], edi
and dword [esp + 0x44], 0xfffffe00
mov dword [esp + 0x48], edi
push ebp
push edi
push eax
lea ecx, [esp + 0x420]
mov byte [esp + 0x4a0], 2
call fcn.0040f4d0
cmp dword [esp + 0x42c], 0x10
mov eax, dword [esp + 0x418]
jae 0x405878
lea eax, [esp + 0x418]
mov edx, dword [esp + 0x428]
lea ecx, [eax + edx]
lea edx, [esp + 0x3c]
push edx
push ecx
push eax
lea eax, [esp + 0x3f8]
push eax
call fcn.00468af0
test al, al
je 0x40c7c9
push str.platform
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov dl, byte [eax + 8]
test dl, dl
je 0x4058bd
cmp dl, 6
je 0x4058bd
cmp dl, 7
jne 0x4058d4
mov ecx, eax
call fcn.0046cce0
test eax, eax
sete al
test al, al
je 0x4058d4
mov eax, 0x51ba20
jmp 0x4058e4
push str.platform
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x84]
call fcn.0040fd30
push str.action
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 3
call fcn.0046d0a0
mov dl, byte [eax + 8]
test dl, dl
je 0x405918
cmp dl, 6
je 0x405918
cmp dl, 7
jne 0x40592f
mov ecx, eax
call fcn.0046cce0
test eax, eax
sete al
test al, al
je 0x40592f
mov eax, 0x51ba20
jmp 0x40593f
push str.action
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xac]
call fcn.0040fd30
push 0x51c5b0
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 4
call fcn.0046d0a0
mov dl, byte [eax + 8]
test dl, dl
je 0x405973
cmp dl, 6
je 0x405973
cmp dl, 7
jne 0x40598a
mov ecx, eax
call fcn.0046cce0
test eax, eax
sete al
test al, al
je 0x40598a
mov eax, 0x51ba20
jmp 0x40599a
push 0x51c5b0
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xd8]
call fcn.0040fd30
mov byte [esp + 0x494], 5
mov eax, dword [esp + 0xa8]
mov ecx, str.setproperty
jmp 0x4059c0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4059e6
cmp dx, di
je 0x4059e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4059e6
add eax, 4
add ecx, 4
cmp dx, di
jne 0x4059c0
xor eax, eax
jmp 0x4059eb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x4064f0
mov eax, dword [esp + 0x80]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
call fcn.0040ff10
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x49c], 6
mov eax, dword [esp + 0xdc]
add eax, 0xfffffff0
mov dword [esp + 0x58], esp
mov esi, esp
push eax
call fcn.0040ff10
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov byte [esp + 0x49c], 5
call fcn.0040c880
mov esi, eax
add esp, 8
cmp esi, edi
je 0x4064d3
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov ecx, eax
call fcn.0046cd60
test al, al
jne 0x4064d3
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov edx, eax
lea eax, [esp + 0x68]
call fcn.0046d530
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov edx, eax
lea eax, [esp + 0xc8]
call fcn.0046d570
push 0x51c5d4
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x405e3a
mov ebp, dword [esi + 0x10]
lea edi, [esp + 0xc8]
lea esi, [esp + 0x68]
call fcn.004013e0
test al, al
je 0x405df5
mov bl, 9
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0046c180
mov byte [esp + 0x494], 7
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040fd30
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], bl
call fcn.0046c6d0
push 0x51c5e8
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405b2f
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x44]
jmp 0x405da8
push str.xadl
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405b55
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x48]
jmp 0x405da8
push str.componentpath
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405b7b
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x54]
jmp 0x405da8
push str.cachedir
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405ba1
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x4c]
jmp 0x405da8
push str.splashimage
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405bca
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x88]
jmp 0x405da8
push str.loadingimage
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405bf3
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x8c]
jmp 0x405da8
push str.commthreadwaittime
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405c20
lea esi, [esp + 0x68]
call fcn.00401440
mov ecx, eax
call fcn.0046c7f0
mov dword [ebp + 0x5c], eax
jmp 0x405db0
push str.version
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405c49
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0xa8]
jmp 0x405da8
push str.commthreadcount
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405c76
lea esi, [esp + 0x68]
call fcn.00401440
mov ecx, eax
call fcn.0046c7f0
mov dword [ebp + 0x58], eax
jmp 0x405db0
push str.errorfile
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405c9c
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x50]
jmp 0x405da8
push str.globalvalue
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405cc5
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0x80]
jmp 0x405da8
push str.onlyone
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405cf9
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebp + 0x9c], eax
jmp 0x405db0
push str.showiniterror
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405d2d
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebp + 0xa0], eax
jmp 0x405db0
push str.usewininet
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405d5e
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebp + 0xb4], eax
jmp 0x405db0
push str.enginesetupkey
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405d84
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0xb8]
jmp 0x405da8
push str.splashmessage
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405db0
lea esi, [esp + 0x68]
call fcn.00401440
lea ecx, [ebp + 0xbc]
mov eax, dword [eax]
push eax
call fcn.0040ff80
mov byte [esp + 0x494], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x405dd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x68]
call fcn.0046e6d0
lea edi, [esp + 0xc8]
call fcn.004013e0
test al, al
jne 0x405ad7
push str.success
lea esi, [esp + 0x58]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0xa
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x54]
jmp 0x40c660
push str.miplatform
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x40c665
mov ebx, dword [esi + 0x10]
lea edi, [esp + 0xc8]
lea esi, [esp + 0x68]
call fcn.004013e0
test al, al
je 0x4064b3
mov edi, edi
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0046c180
mov byte [esp + 0x494], 0xb
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040fd30
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0xd
call fcn.0046c6d0
push str.DeviceType
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405ee0
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov esi, ebx
call fcn.0041b270
jmp 0x40647a
push 0x51c6e8
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405f1d
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov esi, ebx
call fcn.0041b090
jmp 0x40647a
push 0x51c6f0
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405f5a
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041aa00
jmp 0x40647a
push str.SiteKey
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405f97
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041b780
jmp 0x40647a
push 0x51c6fc
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x405fd4
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov esi, ebx
call fcn.0041aab0
jmp 0x40647a
push 0x51c708
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406011
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041ab70
jmp 0x40647a
push 0x51c714
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40604e
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov esi, ebx
call fcn.0041b130
jmp 0x40647a
push str.Left
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406090
lea esi, [esp + 0x68]
call fcn.00401440
mov ecx, eax
call fcn.0046c7f0
cmp eax, 0x80000000
mov dword [ebx + 0x22c], eax
je 0x40647a
mov esi, ebx
call fcn.0041a4c0
jmp 0x40647a
push 0x51c72c
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4060d2
lea esi, [esp + 0x68]
call fcn.00401440
mov ecx, eax
call fcn.0046c7f0
cmp eax, 0x80000000
mov dword [ebx + 0x230], eax
je 0x40647a
mov esi, ebx
call fcn.0041a3e0
jmp 0x40647a
push 0x51c730
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40610f
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov edi, ebx
call fcn.0041a5a0
jmp 0x40647a
push 0x51c738
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40614c
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov edi, ebx
call fcn.0041a670
jmp 0x40647a
push 0x51c740
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406182
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
mov esi, ebx
sbb eax, eax
neg eax
push eax
call fcn.0041a800
jmp 0x40647a
push 0x51c748
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4061bf
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041a930
jmp 0x40647a
push 0x51c754
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4061fc
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov esi, ebx
call fcn.0041afd0
jmp 0x40647a
push str.Launch
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406230
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebx + 0x260], eax
jmp 0x40647a
push str.ReInstall
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406264
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebx + 0x264], eax
jmp 0x40647a
push 0x51c774
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4062a1
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041b3d0
jmp 0x40647a
push 0x51c780
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4062e5
lea esi, [esp + 0x68]
call fcn.00401440
mov ecx, eax
call fcn.0046c7f0
cmp dword [ebx + 0x190], 0
mov dword [ebx + 0x274], eax
je 0x40647a
mov esi, ebx
call fcn.0041b4a0
jmp 0x40647a
push 0x51c788
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406329
lea esi, [esp + 0x68]
call fcn.00401440
mov ecx, eax
call fcn.0046c7f0
cmp dword [ebx + 0x190], 0
mov dword [ebx + 0x278], eax
je 0x40647a
mov esi, ebx
call fcn.0041b540
jmp 0x40647a
push str.PreVersionCompare
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40635d
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebx + 0x27c], eax
jmp 0x40647a
push 0x51c7a4
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40639a
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041b5e0
jmp 0x40647a
push 0x51c7b0
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4063d7
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov edi, ebx
call fcn.0041b6b0
jmp 0x40647a
push 0x51c7b8
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406411
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov ecx, ebx
call fcn.0041b830
jmp 0x40647a
push str.NotLaunchForErr
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406442
lea esi, [esp + 0x68]
call fcn.00401440
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov dword [ebx + 0x294], eax
jmp 0x40647a
push str.UpdateKillMiplatform
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40647a
lea esi, [esp + 0x68]
call fcn.00401440
mov eax, dword [eax]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
push 0xffffffffffffffff
push eax
call fcn.004748e0
mov edi, ebx
call fcn.0041b900
lea ecx, [esp + 0x18]
mov byte [esp + 0x494], 5
call fcn.00410230
lea edi, [esp + 0x1b8]
lea eax, [esp + 0x68]
call fcn.00401420
lea edi, [esp + 0xc8]
lea esi, [esp + 0x68]
call fcn.004013e0
test al, al
jne 0x405e70
push str.success
lea esi, [esp + 0x58]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0xe
jmp 0x405e10
push str.no_property_value
lea esi, [esp + 0x58]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0xf
jmp 0x405e10
push str.getproperty
lea ecx, [esp + 0xac]
call fcn.0040daf0
test eax, eax
jne 0x40945f
push ecx
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00410050
push ecx
mov byte [esp + 0x49c], 0x10
lea eax, [esp + 0xdc]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.00410050
mov byte [esp + 0x49c], 5
call fcn.0040c880
mov esi, eax
add esp, 8
cmp esi, edi
je 0x409445
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov ecx, eax
call fcn.0046cd60
test al, al
jne 0x409445
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov edx, eax
lea eax, [esp + 0xc8]
call fcn.0046d530
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov edx, eax
lea eax, [esp + 0x1b8]
call fcn.0046d570
push 0x51c5d4
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x4078c7
mov ebp, dword [esi + 0x10]
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
je 0x407879
nop
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0xcc]
xor edi, edi
call fcn.0046c180
mov byte [esp + 0x494], 0x11
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040fd30
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x13
call fcn.0046c6d0
push 0x51c5e8
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40675b
mov eax, dword [ebp + 0x44]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x7c]
call fcn.004748c0
mov byte [esp + 0x494], 0x14
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x406692
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x406692
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x15
mov eax, dword [eax]
or ebx, 1
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x16
or ebx, 2
jmp 0x4066b1
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x17
or ebx, 4
lea esi, [esp + 0x54]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x18
call fcn.0046d0a0
push 0x51c5e8
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov byte [esp + 0x494], 0x17
call fcn.0046c6d0
test bl, 4
je 0x406717
and ebx, 0xfffffffb
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test bl, 2
je 0x40672f
and ebx, 0xfffffffd
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test bl, 1
mov dword [esp + 0x494], 0x14
je 0x406752
and ebx, 0xfffffffe
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x74]
jmp 0x407830
push str.xadl
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4068aa
mov eax, dword [ebp + 0x48]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x84]
call fcn.004748c0
mov byte [esp + 0x494], 0x19
mov eax, dword [esp + 0x7c]
cmp eax, edi
je 0x4067d8
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x4067d8
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x1a
mov eax, dword [eax]
or ebx, 8
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x1b
or ebx, 0x10
jmp 0x4067f7
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x1c
or ebx, 0x20
lea esi, [esp + 0x154]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x1d
call fcn.0046d0a0
push str.xadl
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x154]
call fcn.0046c770
lea ecx, [esp + 0x154]
mov byte [esp + 0x494], 0x1c
call fcn.0046c6d0
test bl, 0x20
je 0x406866
and ebx, 0xffffffdf
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test bl, 0x10
je 0x40687e
and ebx, 0xffffffef
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test bl, 8
mov dword [esp + 0x494], 0x19
je 0x4068a1
and ebx, 0xfffffff7
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x7c]
jmp 0x407830
push str.componentpath
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406a0d
mov eax, dword [ebp + 0x54]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xa0]
call fcn.004748c0
mov byte [esp + 0x494], 0x1e
mov eax, dword [esp + 0x98]
cmp eax, edi
je 0x40692d
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x40692d
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x1f
mov eax, dword [eax]
or ebx, 0x40
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x20
or ebx, 0x80
jmp 0x40694f
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x21
or ebx, 0x100
lea esi, [esp + 0x164]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x22
call fcn.0046d0a0
push str.componentpath
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x164]
call fcn.0046c770
lea ecx, [esp + 0x164]
mov byte [esp + 0x494], 0x21
call fcn.0046c6d0
test ebx, 0x100
je 0x4069c4
and ebx, 0xfffffeff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test bl, bl
jns 0x4069de
and ebx, 0xffffff7f
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test bl, 0x40
mov dword [esp + 0x494], 0x1e
je 0x406a01
and ebx, 0xffffffbf
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x98]
jmp 0x407830
push str.cachedir
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406b7d
mov eax, dword [ebp + 0x4c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xa4]
call fcn.004748c0
mov byte [esp + 0x494], 0x23
mov eax, dword [esp + 0x9c]
cmp eax, edi
je 0x406a93
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x406a93
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x24
mov eax, dword [eax]
or ebx, 0x200
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x25
or ebx, 0x400
jmp 0x406ab5
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x26
or ebx, 0x800
lea esi, [esp + 0x194]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x27
call fcn.0046d0a0
push str.cachedir
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x194]
call fcn.0046c770
lea ecx, [esp + 0x194]
mov byte [esp + 0x494], 0x26
call fcn.0046c6d0
test ebx, 0x800
je 0x406b2a
and ebx, 0xfffff7ff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x400
je 0x406b48
and ebx, 0xfffffbff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x200
mov dword [esp + 0x494], 0x23
je 0x406b71
and ebx, 0xfffffdff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x9c]
jmp 0x407830
push str.splashimage
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406cea
mov eax, dword [ebp + 0x88]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x80]
call fcn.004748c0
mov byte [esp + 0x494], 0x28
mov eax, dword [esp + 0x78]
cmp eax, edi
je 0x406c03
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x406c03
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x29
mov eax, dword [eax]
or ebx, 0x1000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x2a
or ebx, 0x2000
jmp 0x406c25
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x2b
or ebx, 0x4000
lea esi, [esp + 0x184]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x2c
call fcn.0046d0a0
push str.splashimage
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x184]
call fcn.0046c770
lea ecx, [esp + 0x184]
mov byte [esp + 0x494], 0x2b
call fcn.0046c6d0
test ebx, 0x4000
je 0x406c9a
and ebx, 0xffffbfff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x2000
je 0x406cb8
and ebx, 0xffffdfff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x1000
mov dword [esp + 0x494], 0x28
je 0x406ce1
and ebx, 0xffffefff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x78]
jmp 0x407830
push str.loadingimage
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406e5d
mov eax, dword [ebp + 0x8c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xa8]
call fcn.004748c0
mov byte [esp + 0x494], 0x2d
mov eax, dword [esp + 0xa0]
cmp eax, edi
je 0x406d73
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x406d73
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x2e
mov eax, dword [eax]
or ebx, 0x8000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x2f
or ebx, 0x10000
jmp 0x406d95
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x30
or ebx, 0x20000
lea esi, [esp + 0x174]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x31
call fcn.0046d0a0
push str.loadingimage
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x174]
call fcn.0046c770
lea ecx, [esp + 0x174]
mov byte [esp + 0x494], 0x30
call fcn.0046c6d0
test ebx, 0x20000
je 0x406e0a
and ebx, 0xfffdffff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x10000
je 0x406e28
and ebx, 0xfffeffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x8000
mov dword [esp + 0x494], 0x2d
je 0x406e51
and ebx, 0xffff7fff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0xa0]
jmp 0x407830
push str.commthreadwaittime
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x406ee3
mov edx, dword [esp + 0x8c]
mov eax, dword [ebp + 0x5c]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edi
mov dword [esp + 0x84], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x32
call fcn.0046d0a0
push str.commthreadwaittime
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x84]
call fcn.0046c770
lea ecx, [esp + 0x84]
mov byte [esp + 0x494], 0x13
call fcn.0046c6d0
jmp 0x40783d
push str.version
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407056
mov eax, dword [ebp + 0xa8]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xac]
call fcn.004748c0
mov byte [esp + 0x494], 0x33
mov eax, dword [esp + 0xa4]
cmp eax, edi
je 0x406f6c
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x406f6c
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x34
mov eax, dword [eax]
or ebx, 0x40000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x35
or ebx, 0x80000
jmp 0x406f8e
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x36
or ebx, 0x100000
lea esi, [esp + 0x1a4]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x37
call fcn.0046d0a0
push str.version
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x1a4]
call fcn.0046c770
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x494], 0x36
call fcn.0046c6d0
test ebx, 0x100000
je 0x407003
and ebx, 0xffefffff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x80000
je 0x407021
and ebx, 0xfff7ffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x40000
mov dword [esp + 0x494], 0x33
je 0x40704a
and ebx, 0xfffbffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0xa4]
jmp 0x407830
push str.commthreadcount
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4070dc
mov edx, dword [esp + 0xfc]
mov eax, dword [ebp + 0x58]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], edi
mov dword [esp + 0xf4], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x38
call fcn.0046d0a0
push str.commthreadcount
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0xf4]
call fcn.0046c770
lea ecx, [esp + 0xf4]
mov byte [esp + 0x494], 0x13
call fcn.0046c6d0
jmp 0x40783d
push str.errorfile
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407243
mov eax, dword [ebp + 0x50]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x24]
call fcn.004748c0
mov byte [esp + 0x494], 0x39
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x40715c
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x40715c
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x3a
mov eax, dword [eax]
or ebx, 0x200000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x3b
or ebx, 0x400000
jmp 0x40717e
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x3c
or ebx, 0x800000
lea esi, [esp + 0x2d4]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x3d
call fcn.0046d0a0
push str.errorfile
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2d4]
call fcn.0046c770
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x494], 0x3c
call fcn.0046c6d0
test ebx, 0x800000
je 0x4071f3
and ebx, 0xff7fffff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x400000
je 0x407211
and ebx, 0xffbfffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x200000
mov dword [esp + 0x494], 0x39
je 0x40723a
and ebx, 0xffdfffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x1c]
jmp 0x407830
push str.globalvalue
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4073b6
mov eax, dword [ebp + 0x80]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x110]
call fcn.004748c0
mov byte [esp + 0x494], 0x3e
mov eax, dword [esp + 0x108]
cmp eax, edi
je 0x4072cc
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x4072cc
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x3f
mov eax, dword [eax]
or ebx, 0x1000000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x40
or ebx, 0x2000000
jmp 0x4072ee
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x41
or ebx, 0x4000000
lea esi, [esp + 0x2f4]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x42
call fcn.0046d0a0
push str.globalvalue
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2f4]
call fcn.0046c770
lea ecx, [esp + 0x2f4]
mov byte [esp + 0x494], 0x41
call fcn.0046c6d0
test ebx, 0x4000000
je 0x407363
and ebx, 0xfbffffff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x2000000
je 0x407381
and ebx, 0xfdffffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x1000000
mov dword [esp + 0x494], 0x3e
je 0x4073aa
and ebx, 0xfeffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x108]
jmp 0x407830
push str.onlyone
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407442
cmp dword [ebp + 0x9c], edi
mov ecx, dword [esp + 0x1cc]
setne al
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edi
mov byte [esp + 0x1c4], al
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x43
call fcn.0046d0a0
push str.onlyone
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x1c4]
call fcn.0046c770
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x494], 0x13
call fcn.0046c6d0
jmp 0x40783d
push str.showiniterror
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4074ce
cmp dword [ebp + 0xa0], edi
mov edx, dword [esp + 0x14c]
setne al
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x14c], edx
mov dword [esp + 0x150], edi
mov byte [esp + 0x144], al
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x44
call fcn.0046d0a0
push str.showiniterror
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x144]
call fcn.0046c770
lea ecx, [esp + 0x144]
mov byte [esp + 0x494], 0x13
call fcn.0046c6d0
jmp 0x40783d
push str.usewininet
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40755a
cmp dword [ebp + 0xb4], edi
mov ecx, dword [esp + 0x13c]
setne al
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], edi
mov byte [esp + 0x134], al
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x45
call fcn.0046d0a0
push str.usewininet
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x134]
call fcn.0046c770
lea ecx, [esp + 0x134]
mov byte [esp + 0x494], 0x13
call fcn.0046c6d0
jmp 0x40783d
push str.enginesetupkey
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4076cd
mov eax, dword [ebp + 0xb8]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x118]
call fcn.004748c0
mov byte [esp + 0x494], 0x46
mov eax, dword [esp + 0x110]
cmp eax, edi
je 0x4075e3
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x4075e3
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x47
mov eax, dword [eax]
or ebx, 0x8000000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x48
or ebx, 0x10000000
jmp 0x407605
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x49
or ebx, 0x20000000
lea esi, [esp + 0x2b4]
mov dword [esp + 0x24], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x4a
call fcn.0046d0a0
push str.enginesetupkey
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2b4]
call fcn.0046c770
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x494], 0x49
call fcn.0046c6d0
test ebx, 0x20000000
je 0x40767a
and ebx, 0xdfffffff
lea ecx, [esp + 0x464]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x10000000
je 0x407698
and ebx, 0xefffffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x8000000
mov dword [esp + 0x494], 0x46
je 0x4076c1
and ebx, 0xf7ffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x110]
jmp 0x407830
push str.splashmessage
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40783d
mov eax, dword [ebp + 0xbc]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x114]
call fcn.004748c0
mov byte [esp + 0x494], 0x4b
mov eax, dword [esp + 0x10c]
cmp eax, edi
je 0x40775a
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x40775a
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x4c
mov eax, dword [eax]
or ebx, 0x40000000
push eax
lea ecx, [esp + 0x118]
mov dword [esp + 0x28], ebx
call fcn.0040fbf0
or ebx, 0x80000000
mov dword [esp + 0x494], 0x4d
mov dword [esp + 0x24], ebx
jmp 0x40777b
push 0x51ba20
lea ecx, [esp + 0x468]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x4e
or dword [esp + 0x20], 1
lea esi, [esp + 0x25c]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x4f
call fcn.0046d0a0
push str.splashmessage
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x25c]
call fcn.0046c770
lea ecx, [esp + 0x25c]
mov byte [esp + 0x494], 0x4e
call fcn.0046c6d0
test byte [esp + 0x20], 1
je 0x4077e6
and dword [esp + 0x20], 0xfffffffe
lea ecx, [esp + 0x464]
call fcn.00410200
test ebx, ebx
jns 0x407800
and ebx, 0x7fffffff
lea ecx, [esp + 0x114]
mov dword [esp + 0x24], ebx
call fcn.00410200
test ebx, 0x40000000
mov dword [esp + 0x494], 0x4b
je 0x407829
and ebx, 0xbfffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x24], ebx
call fcn.0040e070
lea ecx, [esp + 0x10c]
mov byte [esp + 0x494], 0x13
call fcn.004732d0
lea ecx, [esp + 0x18]
mov byte [esp + 0x494], 5
call fcn.00410230
lea edi, [esp + 0x68]
lea eax, [esp + 0xc8]
call fcn.00401420
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
jne 0x4065e0
push str.success
lea esi, [esp + 0x260]
mov ebp, 1
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x50
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x25c]
call fcn.0046c770
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x25c]
jmp 0x40c660
push str.miplatform
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x40c665
mov ebp, dword [esi + 0x10]
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
je 0x409404
mov ebx, dword [esp + 0x20]
jmp 0x407910
lea edx, [esp + 0x464]
push edx
lea ecx, [esp + 0xcc]
xor edi, edi
call fcn.0046c180
mov byte [esp + 0x494], 0x51
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040fd30
lea ecx, [esp + 0x464]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
push str.DeviceType
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407a9f
lea esi, [esp + 0x10c]
mov eax, ebp
call fcn.0041b250
mov byte [esp + 0x494], 0x54
mov eax, dword [esp + 0x10c]
cmp eax, edi
je 0x4079ca
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x4079ca
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x55
mov eax, dword [eax]
or ebx, 2
push eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x56
or ebx, 4
jmp 0x4079e9
push 0x51ba20
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x57
or ebx, 8
lea esi, [esp + 0x25c]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x58
call fcn.0046d0a0
push str.DeviceType
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x25c]
call fcn.0046c770
lea ecx, [esp + 0x25c]
mov byte [esp + 0x494], 0x57
call fcn.0046c6d0
test bl, 8
je 0x407a58
and ebx, 0xfffffff7
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test bl, 4
je 0x407a70
and ebx, 0xfffffffb
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test bl, 2
mov dword [esp + 0x494], 0x54
je 0x407a93
and ebx, 0xfffffffd
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x10c]
jmp 0x4093b8
push 0x51c6e8
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407bf0
lea esi, [esp + 0x110]
mov eax, ebp
call fcn.0041b070
mov byte [esp + 0x494], 0x59
mov eax, dword [esp + 0x110]
cmp eax, edi
je 0x407b1b
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x407b1b
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x5a
mov eax, dword [eax]
or ebx, 0x10
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x5b
or ebx, 0x20
jmp 0x407b3a
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x5c
or ebx, 0x40
lea esi, [esp + 0x2b4]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x5d
call fcn.0046d0a0
push 0x51c6e8
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2b4]
call fcn.0046c770
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x494], 0x5c
call fcn.0046c6d0
test bl, 0x40
je 0x407ba9
and ebx, 0xffffffbf
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test bl, 0x20
je 0x407bc1
and ebx, 0xffffffdf
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test bl, 0x10
mov dword [esp + 0x494], 0x59
je 0x407be4
and ebx, 0xffffffef
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x110]
jmp 0x4093b8
push 0x51c6f0
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407d58
lea esi, [esp + 0x108]
mov eax, ebp
call fcn.0041a9e0
mov byte [esp + 0x494], 0x5e
mov eax, dword [esp + 0x108]
cmp eax, edi
je 0x407c72
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x407c72
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x5f
mov eax, dword [eax]
or ebx, 0x80
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x60
or ebx, 0x100
jmp 0x407c94
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x61
or ebx, 0x200
lea esi, [esp + 0x2f4]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x62
call fcn.0046d0a0
push 0x51c6f0
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2f4]
call fcn.0046c770
lea ecx, [esp + 0x2f4]
mov byte [esp + 0x494], 0x61
call fcn.0046c6d0
test ebx, 0x200
je 0x407d09
and ebx, 0xfffffdff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x100
je 0x407d27
and ebx, 0xfffffeff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test bl, bl
mov dword [esp + 0x494], 0x5e
jns 0x407d4c
and ebx, 0xffffff7f
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x108]
jmp 0x4093b8
push str.SiteKey
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x407ebb
lea esi, [esp + 0x74]
mov eax, ebp
call fcn.0041b760
mov byte [esp + 0x494], 0x63
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x407dd4
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x407dd4
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x64
mov eax, dword [eax]
or ebx, 0x400
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x65
or ebx, 0x800
jmp 0x407df6
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x66
or ebx, 0x1000
lea esi, [esp + 0x2d4]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x67
call fcn.0046d0a0
push str.SiteKey
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2d4]
call fcn.0046c770
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x494], 0x66
call fcn.0046c6d0
test ebx, 0x1000
je 0x407e6b
and ebx, 0xffffefff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x800
je 0x407e89
and ebx, 0xfffff7ff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x400
mov dword [esp + 0x494], 0x63
je 0x407eb2
and ebx, 0xfffffbff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x74]
jmp 0x4093b8
push 0x51c6fc
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40801e
lea esi, [esp + 0x7c]
mov eax, ebp
call fcn.0041aa90
mov byte [esp + 0x494], 0x68
mov eax, dword [esp + 0x7c]
cmp eax, edi
je 0x407f37
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x407f37
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x69
mov eax, dword [eax]
or ebx, 0x2000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x6a
or ebx, 0x4000
jmp 0x407f59
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x6b
or ebx, 0x8000
lea esi, [esp + 0x314]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x6c
call fcn.0046d0a0
push 0x51c6fc
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x314]
call fcn.0046c770
lea ecx, [esp + 0x314]
mov byte [esp + 0x494], 0x6b
call fcn.0046c6d0
test ebx, 0x8000
je 0x407fce
and ebx, 0xffff7fff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x4000
je 0x407fec
and ebx, 0xffffbfff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x2000
mov dword [esp + 0x494], 0x68
je 0x408015
and ebx, 0xffffdfff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x7c]
jmp 0x4093b8
push 0x51c708
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40818a
lea esi, [esp + 0x98]
mov eax, ebp
call fcn.0041ab50
mov byte [esp + 0x494], 0x6d
mov eax, dword [esp + 0x98]
cmp eax, edi
je 0x4080a0
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x4080a0
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x6e
mov eax, dword [eax]
or ebx, 0x10000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x6f
or ebx, 0x20000
jmp 0x4080c2
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x70
or ebx, 0x40000
lea esi, [esp + 0x324]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x71
call fcn.0046d0a0
push 0x51c708
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x324]
call fcn.0046c770
lea ecx, [esp + 0x324]
mov byte [esp + 0x494], 0x70
call fcn.0046c6d0
test ebx, 0x40000
je 0x408137
and ebx, 0xfffbffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x20000
je 0x408155
and ebx, 0xfffdffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x10000
mov dword [esp + 0x494], 0x6d
je 0x40817e
and ebx, 0xfffeffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x98]
jmp 0x4093b8
push 0x51c714
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4082f6
lea esi, [esp + 0x9c]
mov eax, ebp
call fcn.0041b110
mov byte [esp + 0x494], 0x72
mov eax, dword [esp + 0x9c]
cmp eax, edi
je 0x40820c
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x40820c
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x73
mov eax, dword [eax]
or ebx, 0x80000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x74
or ebx, 0x100000
jmp 0x40822e
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x75
or ebx, 0x200000
lea esi, [esp + 0x334]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x76
call fcn.0046d0a0
push 0x51c714
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x334]
call fcn.0046c770
lea ecx, [esp + 0x334]
mov byte [esp + 0x494], 0x75
call fcn.0046c6d0
test ebx, 0x200000
je 0x4082a3
and ebx, 0xffdfffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x100000
je 0x4082c1
and ebx, 0xffefffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x80000
mov dword [esp + 0x494], 0x72
je 0x4082ea
and ebx, 0xfff7ffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x9c]
jmp 0x4093b8
push str.Left
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408380
mov eax, ebp
call fcn.0041a4a0
mov edx, dword [esp + 0x13c]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], edi
mov dword [esp + 0x134], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x77
call fcn.0046d0a0
push str.Left
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x134]
call fcn.0046c770
lea ecx, [esp + 0x134]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push 0x51c72c
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40840a
mov eax, ebp
call fcn.0041a3c0
mov ecx, dword [esp + 0x14c]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], edi
mov dword [esp + 0x144], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x78
call fcn.0046d0a0
push 0x51c72c
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x144]
call fcn.0046c770
lea ecx, [esp + 0x144]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push 0x51c730
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408576
lea esi, [esp + 0x1d4]
mov eax, ebp
call fcn.0041a580
mov byte [esp + 0x494], 0x79
mov eax, dword [esp + 0x1d4]
cmp eax, edi
je 0x40848c
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x40848c
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x7a
mov eax, dword [eax]
or ebx, 0x400000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x7b
or ebx, 0x800000
jmp 0x4084ae
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x7c
or ebx, 0x1000000
lea esi, [esp + 0x304]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x7d
call fcn.0046d0a0
push 0x51c730
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x304]
call fcn.0046c770
lea ecx, [esp + 0x304]
mov byte [esp + 0x494], 0x7c
call fcn.0046c6d0
test ebx, 0x1000000
je 0x408523
and ebx, 0xfeffffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x800000
je 0x408541
and ebx, 0xff7fffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x400000
mov dword [esp + 0x494], 0x79
je 0x40856a
and ebx, 0xffbfffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x1d4]
jmp 0x4093b8
push 0x51c738
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4086e2
lea esi, [esp + 0x1c4]
mov eax, ebp
call fcn.0041a650
mov byte [esp + 0x494], 0x7e
mov eax, dword [esp + 0x1c4]
cmp eax, edi
je 0x4085f8
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x4085f8
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x7f
mov eax, dword [eax]
or ebx, 0x2000000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0x80
or ebx, 0x4000000
jmp 0x40861a
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x81
or ebx, 0x8000000
lea esi, [esp + 0x2e4]
mov dword [esp + 0x20], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x82
call fcn.0046d0a0
push 0x51c738
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2e4]
call fcn.0046c770
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x494], 0x81
call fcn.0046c6d0
test ebx, 0x8000000
je 0x40868f
and ebx, 0xf7ffffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x4000000
je 0x4086ad
and ebx, 0xfbffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], ebx
call fcn.00410200
test ebx, 0x2000000
mov dword [esp + 0x494], 0x7e
je 0x4086d6
and ebx, 0xfdffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], ebx
call fcn.0040e070
lea ecx, [esp + 0x1c4]
jmp 0x4093b8
push 0x51c740
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408771
mov esi, ebp
call fcn.0041a720
mov edx, dword [esp + 0x1ac]
test eax, eax
setne al
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1b0], edi
mov byte [esp + 0x1a4], al
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x83
call fcn.0046d0a0
push 0x51c740
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x1a4]
call fcn.0046c770
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push 0x51c748
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4088f8
lea ebx, [esp + 0xf4]
mov esi, ebp
call fcn.0041a8a0
mov ebx, 0x84
mov byte [esp + 0x494], bl
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x4087ff
mov ecx, dword [eax - 0xc]
shr ecx, 1
je 0x4087ff
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x85
mov edi, dword [esp + 0x20]
mov eax, dword [eax]
or edi, 0x10000000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x24], edi
call fcn.0040fbf0
or edi, 0x20000000
mov dword [esp + 0x494], 0x86
mov dword [esp + 0x20], edi
jmp 0x408827
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x87
or dword [esp + 0x20], 0x40000000
mov edi, dword [esp + 0x20]
lea esi, [esp + 0x2c4]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x88
call fcn.0046d0a0
push 0x51c748
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c4]
call fcn.0046c770
lea ecx, [esp + 0x2c4]
mov byte [esp + 0x494], 0x87
call fcn.0046c6d0
test edi, 0x40000000
je 0x408898
and edi, 0xbfffffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], edi
call fcn.00410200
test edi, 0x20000000
je 0x4088b6
and edi, 0xdfffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x20], edi
call fcn.00410200
test edi, 0x10000000
mov dword [esp + 0x494], ebx
je 0x4088db
and edi, 0xefffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x20], edi
call fcn.0040e070
lea ecx, [esp + 0xf4]
mov byte [esp + 0x494], 0x53
call fcn.004732d0
mov ebx, dword [esp + 0x20]
jmp 0x4093c5
push 0x51c754
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408a58
lea ebx, [esp + 0x50]
mov ecx, ebp
call fcn.0041af30
mov ebx, 0x89
mov byte [esp + 0x494], bl
mov eax, dword [esp + 0x50]
test eax, eax
je 0x408975
mov edx, dword [eax - 0xc]
shr edx, 1
je 0x408975
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x8a
mov eax, dword [eax]
or dword [esp + 0x20], 0x80000000
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x8b
or dword [esp + 0x1c], 1
jmp 0x408996
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x8c
or dword [esp + 0x1c], 2
lea esi, [esp + 0x294]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x8d
call fcn.0046d0a0
push 0x51c754
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x294]
call fcn.0046c770
lea ecx, [esp + 0x294]
mov byte [esp + 0x494], 0x8c
call fcn.0046c6d0
test byte [esp + 0x1c], 2
je 0x408a01
and dword [esp + 0x1c], 0xfffffffd
lea ecx, [esp + 0xac]
call fcn.00410200
test byte [esp + 0x1c], 1
je 0x408a19
and dword [esp + 0x1c], 0xfffffffe
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], ebx
test dword [esp + 0x20], 0x80000000
je 0x408a3e
and dword [esp + 0x20], 0x7fffffff
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x50]
mov byte [esp + 0x494], 0x53
call fcn.004732d0
mov ebx, dword [esp + 0x20]
jmp 0x4093c5
push str.Launch
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408ae6
mov ecx, dword [esp + 0x17c]
mov eax, dword [ebp + 0x260]
and ecx, 0xffffff05
or ecx, 5
cmp eax, edi
setne dl
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], edi
mov byte [esp + 0x174], dl
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x8e
call fcn.0046d0a0
push str.Launch
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x174]
call fcn.0046c770
lea ecx, [esp + 0x174]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push str.ReInstall
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408b74
mov ecx, dword [esp + 0x18c]
mov eax, dword [ebp + 0x264]
and ecx, 0xffffff05
or ecx, 5
cmp eax, edi
setne dl
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], edi
mov byte [esp + 0x184], dl
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x8f
call fcn.0046d0a0
push str.ReInstall
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x184]
call fcn.0046c770
lea ecx, [esp + 0x184]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push 0x51c774
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408cbd
lea eax, [esp + 0x24]
push eax
mov edi, ebp
call fcn.0041b330
lea ecx, [esp + 0x24]
mov byte [esp + 0x494], 0x90
call fcn.00401010
test eax, eax
je 0x408bed
mov ecx, dword [esp + 0x24]
push ecx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x91
mov eax, dword [eax]
or dword [esp + 0x1c], 4
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x92
or dword [esp + 0x1c], 8
jmp 0x408c0e
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x93
or dword [esp + 0x1c], 0x10
lea esi, [esp + 0x2a4]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x94
call fcn.0046d0a0
push 0x51c774
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2a4]
call fcn.0046c770
lea ecx, [esp + 0x2a4]
mov byte [esp + 0x494], 0x93
call fcn.0046c6d0
test byte [esp + 0x1c], 0x10
je 0x408c79
and dword [esp + 0x1c], 0xffffffef
lea ecx, [esp + 0xac]
call fcn.00410200
test byte [esp + 0x1c], 8
je 0x408c91
and dword [esp + 0x1c], 0xfffffff7
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0x90
test byte [esp + 0x1c], 4
je 0x408cb4
and dword [esp + 0x1c], 0xfffffffb
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x24]
jmp 0x4093b8
push 0x51c780
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408d47
mov eax, ebp
call fcn.0041b480
mov edx, dword [esp + 0x19c]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x19c], edx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x194], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x95
call fcn.0046d0a0
push 0x51c780
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x194]
call fcn.0046c770
lea ecx, [esp + 0x194]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push 0x51c788
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408dd1
mov eax, ebp
call fcn.0041b520
mov ecx, dword [esp + 0x16c]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], edi
mov dword [esp + 0x164], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x96
call fcn.0046d0a0
push 0x51c788
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x164]
call fcn.0046c770
lea ecx, [esp + 0x164]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push str.PreVersionCompare
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408e5f
mov edx, dword [esp + 0x15c]
mov eax, dword [ebp + 0x27c]
and edx, 0xffffff05
or edx, 5
cmp eax, edi
setne al
mov dword [esp + 0x15c], edx
mov dword [esp + 0x160], edi
mov byte [esp + 0x154], al
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x97
call fcn.0046d0a0
push str.PreVersionCompare
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x154]
call fcn.0046c770
lea ecx, [esp + 0x154]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push 0x51c7a4
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x408fb4
lea esi, [esp + 0xa4]
mov eax, ebp
call fcn.0041b5c0
mov ecx, esi
mov byte [esp + 0x494], 0x98
call fcn.00401010
test eax, eax
je 0x408edb
mov ecx, dword [esp + 0xa4]
push ecx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x99
mov eax, dword [eax]
or dword [esp + 0x1c], 0x20
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x9a
or dword [esp + 0x1c], 0x40
jmp 0x408eff
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x9b
or dword [esp + 0x1c], 0x80
lea esi, [esp + 0x284]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x9c
call fcn.0046d0a0
push 0x51c7a4
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x284]
call fcn.0046c770
lea ecx, [esp + 0x284]
mov byte [esp + 0x494], 0x9b
call fcn.0046c6d0
test byte [esp + 0x1c], 0x80
je 0x408f6d
and dword [esp + 0x1c], 0xffffff7f
lea ecx, [esp + 0xac]
call fcn.00410200
test byte [esp + 0x1c], 0x40
je 0x408f85
and dword [esp + 0x1c], 0xffffffbf
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0x98
test byte [esp + 0x1c], 0x20
je 0x408fa8
and dword [esp + 0x1c], 0xffffffdf
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0xa4]
jmp 0x4093b8
push 0x51c7b0
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40911e
lea esi, [esp + 0xa0]
mov eax, ebp
call fcn.0041b690
mov ecx, esi
mov byte [esp + 0x494], 0x9d
call fcn.00401010
test eax, eax
je 0x409036
mov edx, dword [esp + 0xa0]
push edx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x9e
mov eax, dword [eax]
or dword [esp + 0x1c], 0x100
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0x9f
or dword [esp + 0x1c], 0x200
jmp 0x40905a
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xa0
or dword [esp + 0x1c], 0x400
lea esi, [esp + 0x26c]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xa1
call fcn.0046d0a0
push 0x51c7b0
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x26c]
call fcn.0046c770
lea ecx, [esp + 0x26c]
mov byte [esp + 0x494], 0xa0
call fcn.0046c6d0
test dword [esp + 0x1c], 0x400
je 0x4090cb
and dword [esp + 0x1c], 0xfffffbff
lea ecx, [esp + 0xac]
call fcn.00410200
test dword [esp + 0x1c], 0x200
je 0x4090e9
and dword [esp + 0x1c], 0xfffffdff
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0x9d
test dword [esp + 0x1c], 0x100
je 0x409112
and dword [esp + 0x1c], 0xfffffeff
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0xa0]
jmp 0x4093b8
push 0x51c7b8
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40927f
lea esi, [esp + 0x78]
mov eax, ebp
call fcn.0041b810
mov ecx, esi
mov byte [esp + 0x494], 0xa2
call fcn.00401010
test eax, eax
je 0x40919a
mov eax, dword [esp + 0x78]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xa3
mov eax, dword [eax]
or dword [esp + 0x1c], 0x800
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xa4
or dword [esp + 0x1c], 0x1000
jmp 0x4091be
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xa5
or dword [esp + 0x1c], 0x2000
lea esi, [esp + 0x114]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xa6
call fcn.0046d0a0
push 0x51c7b8
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x114]
call fcn.0046c770
lea ecx, [esp + 0x114]
mov byte [esp + 0x494], 0xa5
call fcn.0046c6d0
test dword [esp + 0x1c], 0x2000
je 0x40922f
and dword [esp + 0x1c], 0xffffdfff
lea ecx, [esp + 0xac]
call fcn.00410200
test dword [esp + 0x1c], 0x1000
je 0x40924d
and dword [esp + 0x1c], 0xffffefff
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0xa2
test dword [esp + 0x1c], 0x800
je 0x409276
and dword [esp + 0x1c], 0xfffff7ff
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x78]
jmp 0x4093b8
push str.NotLaunchForErr
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4092fb
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0x294]
and ecx, 0xffffff05
or ecx, 5
cmp eax, edi
setne dl
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edi
mov byte [esp + 0x54], dl
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xa7
call fcn.0046d0a0
push str.NotLaunchForErr
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov byte [esp + 0x494], 0x53
call fcn.0046c6d0
jmp 0x4093c5
push str.UpdateKillMiplatform
lea esi, [esp + 0x1c]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4093c5
lea esi, [esp + 0x28]
mov eax, ebp
call fcn.0041b8e0
mov byte [esp + 0x494], 0xa8
mov eax, dword [eax]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xa9
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
lea esi, [esp + 0x2c]
mov byte [esp + 0x494], 0xaa
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xab
call fcn.0046d0a0
push str.UpdateKillMiplatform
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0xaa
call fcn.0046c6d0
lea ecx, [esp + 0xac]
call fcn.00410200
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x28]
mov byte [esp + 0x494], 0x53
call fcn.004732d0
lea ecx, [esp + 0x18]
mov byte [esp + 0x494], 5
call fcn.00410230
lea edi, [esp + 0x84]
lea eax, [esp + 0xc8]
call fcn.00401420
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
jne 0x407910
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0xac
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
mov byte [esp + 0x494], 5
jmp 0x40c65c
push str.no_property_value
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0xad
jmp 0x40941f
push 0x51c818
lea ecx, [esp + 0xac]
call fcn.0040daf0
test eax, eax
jne 0x40a907
push ecx
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.00410050
push ecx
mov byte [esp + 0x49c], 0xae
lea edx, [esp + 0xdc]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00410050
mov byte [esp + 0x49c], 5
call fcn.0040c880
mov esi, eax
add esp, 8
cmp esi, edi
je 0x40a8ea
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov ecx, eax
call fcn.0046cd60
test al, al
jne 0x40a8ea
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov edx, eax
lea eax, [esp + 0xc8]
call fcn.0046d530
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov edx, eax
lea eax, [esp + 0x1b8]
call fcn.0046d570
push 0x51c5d4
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x409857
mov eax, dword [esi + 0x10]
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
mov dword [esp + 0x28], eax
call fcn.004013e0
test al, al
je 0x40c665
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x464]
push ecx
lea ecx, [esp + 0xcc]
call fcn.0046c180
mov byte [esp + 0x494], 0xaf
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x54]
call fcn.0040fd30
lea ecx, [esp + 0x464]
mov byte [esp + 0x494], 0xb1
call fcn.0046c6d0
push str.error
lea esi, [esp + 0x54]
call fcn.0040dd50
add esp, 4
test al, al
je 0x4097c8
mov edi, dword [esp + 0x28]
test edi, edi
je 0x409813
mov edx, dword [esp + 0x5c]
mov eax, dword [edi + 0xc0]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], 0
mov dword [esp + 0x54], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xb2
call fcn.0046d0a0
push str.error
mov ecx, eax
call fcn.0046d0a0
push str.code
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov byte [esp + 0x494], 0xb1
call fcn.0046c6d0
mov eax, dword [edi + 0xc4]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x80]
call fcn.004748c0
lea ecx, [esp + 0x78]
mov byte [esp + 0x494], 0xb3
call fcn.00401010
test eax, eax
je 0x409693
mov eax, dword [esp + 0x78]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xb4
mov eax, dword [eax]
or ebx, 0x4000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], ebx
call fcn.0040fbf0
mov dword [esp + 0x494], 0xb5
or ebx, 0x8000
jmp 0x4096b5
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xb6
or ebx, 0x10000
lea esi, [esp + 0x2c]
mov dword [esp + 0x1c], ebx
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xb7
call fcn.0046d0a0
push str.error
mov ecx, eax
call fcn.0046d0a0
push str.message
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0xb6
call fcn.0046c6d0
test ebx, 0x10000
je 0x40972d
and ebx, 0xfffeffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebx
call fcn.00410200
test ebx, 0x8000
je 0x40974b
and ebx, 0xffff7fff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1c], ebx
call fcn.00410200
test ebx, 0x4000
mov dword [esp + 0x494], 0xb3
je 0x409774
and ebx, 0xffffbfff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x1c], ebx
call fcn.0040e070
lea ecx, [esp + 0x78]
mov byte [esp + 0x494], 0xb1
call fcn.004732d0
push str.success
lea esi, [esp + 0x118]
mov ebp, 1
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xb8
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x114]
call fcn.0046c770
lea ecx, [esp + 0x114]
jmp 0x409806
push str.invalid_event
lea esi, [esp + 0x270]
xor ebp, ebp
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xb9
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x26c]
call fcn.0046c770
lea ecx, [esp + 0x26c]
mov byte [esp + 0x494], 0xb1
call fcn.0046c6d0
lea ecx, [esp + 0x50]
mov byte [esp + 0x494], 5
call fcn.00410230
lea edi, [esp + 0x84]
lea eax, [esp + 0xc8]
call fcn.00401420
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
jne 0x409556
jmp 0x40c665
push str.miplatform
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x40c665
mov ebx, dword [esi + 0x10]
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
je 0x40a8ca
mov ebp, dword [esp + 0x1c]
jmp 0x4098a0
lea ecx, [esp + 0x464]
push ecx
lea ecx, [esp + 0xcc]
xor edi, edi
call fcn.0046c180
mov byte [esp + 0x494], 0xba
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x28]
call fcn.0040fd30
lea ecx, [esp + 0x464]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
push str.OnError
lea esi, [esp + 0x28]
call fcn.0040dd50
add esp, 4
test al, al
je 0x409c32
mov edx, dword [esp + 0x5c]
mov eax, dword [ebx + 0x2c4]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x54], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xbd
call fcn.0046d0a0
push str.OnError
mov ecx, eax
call fcn.0046d0a0
push str.ErrorCode
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
lea eax, [ebx + 0x2c0]
push eax
lea ecx, [esp + 0x7c]
call fcn.004755e0
lea ecx, [esp + 0x78]
mov byte [esp + 0x494], 0xbe
call fcn.00401010
test eax, eax
je 0x4099ca
mov ecx, dword [esp + 0x78]
push ecx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xbf
mov eax, dword [eax]
or ebp, 0x20000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], ebp
call fcn.0040fbf0
mov dword [esp + 0x494], 0xc0
or ebp, 0x40000
jmp 0x4099ec
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xc1
or ebp, 0x80000
lea esi, [esp + 0x2c]
mov dword [esp + 0x1c], ebp
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xc2
call fcn.0046d0a0
push str.OnError
mov ecx, eax
call fcn.0046d0a0
push str.DownFileName
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0xc1
call fcn.0046c6d0
test ebp, 0x80000
je 0x409a64
and ebp, 0xfff7ffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x40000
je 0x409a82
and ebp, 0xfffbffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x20000
mov dword [esp + 0x494], 0xbe
je 0x409aab
and ebp, 0xfffdffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x1c], ebp
call fcn.0040e070
lea ecx, [esp + 0x78]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
lea edx, [ebx + 0x2c8]
push edx
lea ecx, [esp + 0xa4]
call fcn.004755e0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x494], 0xc3
call fcn.00401010
test eax, eax
je 0x409b2f
mov eax, dword [esp + 0xa0]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xc4
mov eax, dword [eax]
or ebp, 0x100000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], ebp
call fcn.0040fbf0
mov dword [esp + 0x494], 0xc5
or ebp, 0x200000
jmp 0x409b51
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xc6
or ebp, 0x400000
lea esi, [esp + 0x114]
mov dword [esp + 0x1c], ebp
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xc7
call fcn.0046d0a0
push str.OnError
mov ecx, eax
call fcn.0046d0a0
push str.ErrorMsg
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x114]
call fcn.0046c770
lea ecx, [esp + 0x114]
mov byte [esp + 0x494], 0xc6
call fcn.0046c6d0
test ebp, 0x400000
je 0x409bd2
and ebp, 0xffbfffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x200000
je 0x409bf0
and ebp, 0xffdfffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x100000
mov dword [esp + 0x494], 0xc3
je 0x409c19
and ebp, 0xffefffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x1c], ebp
call fcn.0040e070
lea ecx, [esp + 0xa0]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
jmp 0x40a88b
push str.OnProgress
lea esi, [esp + 0x28]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40a01c
lea ecx, [ebx + 0x2d0]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004755e0
lea ecx, [esp + 0xa4]
mov byte [esp + 0x494], 0xc8
call fcn.00401010
test eax, eax
je 0x409cbe
mov edx, dword [esp + 0xa4]
push edx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xc9
mov eax, dword [eax]
or ebp, 0x800000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], ebp
call fcn.0040fbf0
mov dword [esp + 0x494], 0xca
or ebp, 0x1000000
jmp 0x409ce0
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xcb
or ebp, 0x2000000
lea esi, [esp + 0x26c]
mov dword [esp + 0x1c], ebp
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xcc
call fcn.0046d0a0
push str.OnProgress
mov ecx, eax
call fcn.0046d0a0
push str.DownFileName
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x26c]
call fcn.0046c770
lea ecx, [esp + 0x26c]
mov byte [esp + 0x494], 0xcb
call fcn.0046c6d0
test ebp, 0x2000000
je 0x409d61
and ebp, 0xfdffffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x1000000
je 0x409d7f
and ebp, 0xfeffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x800000
mov dword [esp + 0x494], 0xc8
je 0x409da8
and ebp, 0xff7fffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x1c], ebp
call fcn.0040e070
lea ecx, [esp + 0xa4]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
mov ecx, dword [esp + 0x15c]
mov eax, dword [ebx + 0x2e0]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], edi
mov dword [esp + 0x154], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xcd
call fcn.0046d0a0
push str.OnProgress
mov ecx, eax
call fcn.0046d0a0
push str.Progress
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x154]
call fcn.0046c770
lea ecx, [esp + 0x154]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
mov edx, dword [esp + 0x16c]
mov eax, dword [ebx + 0x2e4]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x16c], edx
mov dword [esp + 0x170], edi
mov dword [esp + 0x164], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xce
call fcn.0046d0a0
push str.OnProgress
mov ecx, eax
call fcn.0046d0a0
push str.progressMax
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x164]
call fcn.0046c770
lea ecx, [esp + 0x164]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
lea eax, [ebx + 0x2e8]
push eax
lea ecx, [esp + 0x24]
call fcn.004755e0
lea ecx, [esp + 0x20]
mov byte [esp + 0x494], 0xcf
call fcn.00401010
test eax, eax
je 0x409f1c
mov ecx, dword [esp + 0x20]
push ecx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xd0
mov eax, dword [eax]
or ebp, 0x4000000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], ebp
call fcn.0040fbf0
mov dword [esp + 0x494], 0xd1
or ebp, 0x8000000
jmp 0x409f3e
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xd2
or ebp, 0x10000000
lea esi, [esp + 0x284]
mov dword [esp + 0x1c], ebp
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xd3
call fcn.0046d0a0
push str.OnProgress
mov ecx, eax
call fcn.0046d0a0
push str.StatusText
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x284]
call fcn.0046c770
lea ecx, [esp + 0x284]
mov byte [esp + 0x494], 0xd2
call fcn.0046c6d0
test ebp, 0x10000000
je 0x409fbf
and ebp, 0xefffffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x8000000
je 0x409fdd
and ebp, 0xf7ffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x4000000
mov dword [esp + 0x494], 0xcf
je 0x40a006
and ebp, 0xfbffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x1c], ebp
call fcn.0040e070
lea ecx, [esp + 0x20]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
jmp 0x40a88b
push str.OnStartDownLoad
lea esi, [esp + 0x28]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40a45f
lea edx, [ebx + 0x2cc]
push edx
lea ecx, [esp + 0xa0]
call fcn.004755e0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x494], 0xd4
call fcn.00401010
test eax, eax
je 0x40a0a8
mov eax, dword [esp + 0x9c]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xd5
mov eax, dword [eax]
or ebp, 0x20000000
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0x20], ebp
call fcn.0040fbf0
mov dword [esp + 0x494], 0xd6
or ebp, 0x40000000
jmp 0x40a0ca
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xd7
or ebp, 0x80000000
lea esi, [esp + 0x2a4]
mov dword [esp + 0x1c], ebp
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xd8
call fcn.0046d0a0
push str.OnStartDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.ConfigFileName
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2a4]
call fcn.0046c770
lea ecx, [esp + 0x2a4]
mov byte [esp + 0x494], 0xd7
call fcn.0046c6d0
test ebp, ebp
jns 0x40a147
and ebp, 0x7fffffff
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x40000000
je 0x40a165
and ebp, 0xbfffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x1c], ebp
call fcn.00410200
test ebp, 0x20000000
mov dword [esp + 0x494], 0xd4
je 0x40a18e
and ebp, 0xdfffffff
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x1c], ebp
call fcn.0040e070
lea ecx, [esp + 0x9c]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
lea ecx, [ebx + 0x2d0]
push ecx
lea ecx, [esp + 0x9c]
call fcn.004755e0
lea ecx, [esp + 0x98]
mov byte [esp + 0x494], 0xd9
call fcn.00401010
test eax, eax
je 0x40a20f
mov edx, dword [esp + 0x98]
push edx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xda
mov eax, dword [eax]
or dword [esp + 0x18], 1
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xdb
or dword [esp + 0x18], 2
jmp 0x40a230
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xdc
or dword [esp + 0x18], 4
lea esi, [esp + 0x294]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xdd
call fcn.0046d0a0
push str.OnStartDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.DownFileName
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x294]
call fcn.0046c770
lea ecx, [esp + 0x294]
mov byte [esp + 0x494], 0xdc
call fcn.0046c6d0
test byte [esp + 0x18], 4
je 0x40a2a7
and dword [esp + 0x18], 0xfffffffb
lea ecx, [esp + 0xac]
call fcn.00410200
test byte [esp + 0x18], 2
je 0x40a2bf
and dword [esp + 0x18], 0xfffffffd
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0xd9
test byte [esp + 0x18], 1
je 0x40a2e2
and dword [esp + 0x18], 0xfffffffe
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x98]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
mov ecx, dword [esp + 0x19c]
mov eax, dword [ebx + 0x2d4]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x194], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xde
call fcn.0046d0a0
push str.OnStartDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.Type
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x194]
call fcn.0046c770
lea ecx, [esp + 0x194]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
mov edx, dword [esp + 0x18c]
mov eax, dword [ebx + 0x2d8]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x18c], edx
mov dword [esp + 0x190], edi
mov dword [esp + 0x184], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xdf
call fcn.0046d0a0
push str.OnStartDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.TotalCnt
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x184]
call fcn.0046c770
lea ecx, [esp + 0x184]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
mov ecx, dword [esp + 0x17c]
mov eax, dword [ebx + 0x2dc]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], edi
mov dword [esp + 0x174], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xe0
call fcn.0046d0a0
push str.OnStartDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.CurIndex
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x174]
call fcn.0046c770
lea ecx, [esp + 0x174]
jmp 0x40a87e
push str.OnEndDownLoad
lea esi, [esp + 0x28]
call fcn.0040dd50
add esp, 4
test al, al
je 0x40a88b
lea edx, [ebx + 0x2cc]
push edx
lea ecx, [esp + 0x80]
call fcn.004755e0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x494], 0xe1
call fcn.00401010
test eax, eax
je 0x40a4df
mov eax, dword [esp + 0x7c]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xe2
mov eax, dword [eax]
or dword [esp + 0x18], 8
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xe3
or dword [esp + 0x18], 0x10
jmp 0x40a500
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xe4
or dword [esp + 0x18], 0x20
lea esi, [esp + 0x2c4]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xe5
call fcn.0046d0a0
push str.OnEndDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.ConfigFileName
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c4]
call fcn.0046c770
lea ecx, [esp + 0x2c4]
mov byte [esp + 0x494], 0xe4
call fcn.0046c6d0
test byte [esp + 0x18], 0x20
je 0x40a577
and dword [esp + 0x18], 0xffffffdf
lea ecx, [esp + 0xac]
call fcn.00410200
test byte [esp + 0x18], 0x10
je 0x40a58f
and dword [esp + 0x18], 0xffffffef
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0xe1
test byte [esp + 0x18], 8
je 0x40a5b2
and dword [esp + 0x18], 0xfffffff7
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x7c]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
lea ecx, [ebx + 0x2d0]
push ecx
lea ecx, [esp + 0x78]
call fcn.004755e0
lea ecx, [esp + 0x74]
mov byte [esp + 0x494], 0xe6
call fcn.00401010
test eax, eax
je 0x40a62a
mov edx, dword [esp + 0x74]
push edx
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0xe7
mov eax, dword [eax]
or dword [esp + 0x18], 0x40
push eax
lea ecx, [esp + 0xdc]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xe8
or dword [esp + 0x18], 0x80
jmp 0x40a64e
push 0x51ba20
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
mov dword [esp + 0x494], 0xe9
or dword [esp + 0x18], 0x100
lea esi, [esp + 0x2e4]
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0xea
call fcn.0046d0a0
push str.OnEndDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.DownFileName
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2e4]
call fcn.0046c770
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x494], 0xe9
call fcn.0046c6d0
test dword [esp + 0x18], 0x100
je 0x40a6cb
and dword [esp + 0x18], 0xfffffeff
lea ecx, [esp + 0xac]
call fcn.00410200
test byte [esp + 0x18], 0x80
je 0x40a6e6
and dword [esp + 0x18], 0xffffff7f
lea ecx, [esp + 0xd8]
call fcn.00410200
mov dword [esp + 0x494], 0xe6
test byte [esp + 0x18], 0x40
je 0x40a709
and dword [esp + 0x18], 0xffffffbf
lea ecx, [esp + 0x1d8]
call fcn.0040e070
lea ecx, [esp + 0x74]
mov byte [esp + 0x494], 0xbc
call fcn.004732d0
mov ecx, dword [esp + 0x1ac]
mov eax, dword [ebx + 0x2d4]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1a4], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xeb
call fcn.0046d0a0
push str.OnEndDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.Type
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x1a4]
call fcn.0046c770
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
mov edx, dword [esp + 0x13c]
mov eax, dword [ebx + 0x2d8]
and edx, 0xffffff01
or edx, 1
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], edi
mov dword [esp + 0x134], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xec
call fcn.0046d0a0
push str.OnEndDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.TotalCnt
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x134]
call fcn.0046c770
lea ecx, [esp + 0x134]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
mov ecx, dword [esp + 0x14c]
mov eax, dword [ebx + 0x2dc]
and ecx, 0xffffff01
or ecx, 1
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], edi
mov dword [esp + 0x144], eax
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xed
call fcn.0046d0a0
push str.OnEndDownLoad
mov ecx, eax
call fcn.0046d0a0
push str.CurIndex
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x144]
call fcn.0046c770
lea ecx, [esp + 0x144]
mov byte [esp + 0x494], 0xbc
call fcn.0046c6d0
lea ecx, [esp + 0x24]
mov byte [esp + 0x494], 5
call fcn.00410230
lea edi, [esp + 0x84]
lea eax, [esp + 0xc8]
call fcn.00401420
lea edi, [esp + 0x1b8]
lea esi, [esp + 0xc8]
call fcn.004013e0
test al, al
jne 0x4098a0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0xee
jmp 0x40941f
push str.no_event_value
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0xef
jmp 0x40941f
push 0x51c90c
lea ecx, [esp + 0xac]
call fcn.0040daf0
test eax, eax
jne 0x40bfb7
push ecx
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
call fcn.00410050
push ecx
mov byte [esp + 0x49c], 0xf0
lea eax, [esp + 0xdc]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.00410050
mov byte [esp + 0x49c], 5
call fcn.0040c880
mov esi, eax
add esp, 8
cmp esi, edi
je 0x40bf97
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov ecx, eax
call fcn.0046cd60
test al, al
jne 0x40bf97
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push eax
lea ecx, [esp + 0x88]
call fcn.0046c580
mov ebx, 0xf1
push 0x51c5d4
lea ecx, [esp + 0x84]
mov byte [esp + 0x498], bl
call fcn.0040daf0
test eax, eax
jne 0x40b416
mov esi, dword [esi + 0x10]
mov eax, str.makeshortcut
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40ac14
push str.param
push ecx
push str.makeshortcut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 3
jae 0x40aa4d
push str.invalid_parameter
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0xf2
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
mov byte [esp + 0x494], bl
jmp 0x40bf7a
push edi
push ecx
push str.param
push ecx
push str.makeshortcut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c8]
call fcn.0040fd30
push 1
push ecx
push str.param
push ecx
push str.makeshortcut
lea ecx, [esp + 0x98]
mov byte [esp + 0x4a8], 0xf3
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xf8]
call fcn.0040fd30
push 2
push ecx
push str.param
push ecx
push str.makeshortcut
lea ecx, [esp + 0x98]
mov byte [esp + 0x4a8], 0xf4
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x54]
call fcn.0040fd30
push str.param
push ecx
mov bl, 0xf5
push str.makeshortcut
lea ecx, [esp + 0x90]
mov byte [esp + 0x4a0], bl
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 3
jbe 0x40ab81
push 3
push ecx
push str.param
push ecx
push str.makeshortcut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov edi, eax
push edi
lea ecx, [esp + 0x1c8]
push ecx
push esi
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x100]
call fcn.004350a0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xf6
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], bl
call fcn.0046c6d0
lea ecx, [esp + 0x50]
call fcn.00410230
lea ecx, [esp + 0xf4]
call fcn.00410230
lea ecx, [esp + 0x1c4]
call fcn.00410230
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
mov eax, str.launch
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40ac50
mov edi, esi
call fcn.00434b80
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0xf7
jmp 0x40aa28
mov eax, str.isexistshortcut
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40aeb2
push str.param
push ecx
push str.isexistshortcut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 2
jae 0x40acb3
push str.invalid_parameter
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0xf8
jmp 0x40aa28
push edi
push ecx
push str.param
push ecx
push str.isexistshortcut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xf8]
call fcn.0040fd30
push 1
push ecx
push str.param
push ecx
push str.isexistshortcut
lea ecx, [esp + 0x98]
mov byte [esp + 0x4a8], 0xf9
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x54]
call fcn.0040fd30
push str.param
push ecx
mov bl, 0xfa
push str.isexistshortcut
lea ecx, [esp + 0x90]
mov byte [esp + 0x4a0], bl
xor ebp, ebp
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 2
jbe 0x40ada4
push 2
push ecx
push str.param
push ecx
push str.isexistshortcut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov ebp, eax
push ebp
lea edx, [esp + 0xf8]
push edx
push esi
lea ecx, [esp + 0x28]
lea edx, [esp + 0x5c]
call fcn.00435a20
cmp word [esp + 0x1c], 0xffff
mov ebp, 1
mov dword [esp + 0x60], edi
jne 0x40adeb
mov eax, dword [esp + 0x5c]
and eax, 0xffffff05
or eax, 5
mov dword [esp + 0x5c], eax
mov byte [esp + 0x54], 1
mov byte [esp + 0x494], 0xfb
jmp 0x40ae09
mov ecx, dword [esp + 0x5c]
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x54], 0
mov byte [esp + 0x494], 0xfc
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.isexistshortcut
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov byte [esp + 0x494], bl
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xfd
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], bl
call fcn.0046c6d0
lea ecx, [esp + 0x50]
call fcn.00410230
lea ecx, [esp + 0xf4]
call fcn.00410230
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
mov eax, str.download
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40aeec
call fcn.00436000
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0xfe
jmp 0x40aa28
mov eax, str.addWebInfo
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40afad
push str.param
push ecx
push str.addWebInfo
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 1
jae 0x40af4f
push str.invalid_parameter
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0xff
jmp 0x40aa28
push edi
push ecx
push str.param
push ecx
push str.addWebInfo
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esi + 0xb0]
call fcn.0040ff80
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x100
jmp 0x40bf5a
mov eax, str.getengineversion
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b18d
push str.param
push ecx
push str.getengineversion
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 1
jae 0x40b013
push str.invalid_parameter
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x101
jmp 0x40bf5a
push edi
push ecx
push str.param
push ecx
push str.getengineversion
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xf8]
call fcn.0040fd30
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0xf8]
mov ecx, esi
mov dword [esp + 0x498], 0x102
call fcn.004361b0
mov byte [esp + 0x494], 3
mov eax, dword [esp + 0x50]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 4
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
lea esi, [esp + 0x2c]
mov byte [esp + 0x494], 5
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 6
call fcn.0046d0a0
push str.getengineversion
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 5
call fcn.0046c6d0
lea ecx, [esp + 0xac]
call fcn.00410200
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x494], 3
call fcn.0040e070
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 7
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 3
call fcn.0046c6d0
lea ecx, [esp + 0x50]
call fcn.00410230
mov dword [esp + 0x494], ebx
lea ecx, [esp + 0xf4]
call fcn.00410230
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
mov eax, str.deleteshortcut
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b3f6
push str.param
push ecx
push str.deleteshortcut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 2
jae 0x40b1f3
push str.invalid_parameter
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x108
jmp 0x40bf5a
push edi
push ecx
push str.param
push ecx
push str.deleteshortcut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xf8]
call fcn.0040fd30
push 1
push ecx
push str.param
push ecx
push str.deleteshortcut
lea ecx, [esp + 0x98]
mov dword [esp + 0x4a8], 0x109
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x54]
call fcn.0040fd30
push str.param
push ecx
push str.deleteshortcut
lea ecx, [esp + 0x90]
mov byte [esp + 0x4a0], 0xa
xor ebp, ebp
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 2
jbe 0x40b2e6
push 2
push ecx
push str.param
push ecx
push str.deleteshortcut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
call fcn.0046cc70
neg al
sbb eax, eax
neg eax
mov ebp, eax
lea ecx, [esp + 0xf4]
push ecx
push esi
mov eax, ebp
lea ecx, [esp + 0x58]
call fcn.00436a30
mov ebp, 1
cmp eax, ebp
mov dword [esp + 0x60], edi
jne 0x40b327
mov edx, dword [esp + 0x5c]
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x5c], edx
mov byte [esp + 0x54], 1
mov byte [esp + 0x494], 0xb
jmp 0x40b344
mov eax, dword [esp + 0x5c]
and eax, 0xffffff05
or eax, 5
mov dword [esp + 0x5c], eax
mov byte [esp + 0x54], 0
mov byte [esp + 0x494], 0xc
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.deleteshortcut
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov byte [esp + 0x494], 0xa
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0xd
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0xa
call fcn.0046c6d0
lea ecx, [esp + 0x50]
call fcn.00410230
lea ecx, [esp + 0xf4]
mov dword [esp + 0x494], ebx
call fcn.00410230
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
push str.invalid_method
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x10e
jmp 0x40bf5a
push str.miplatform
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x40bf83
mov ebp, dword [esi + 0x10]
mov eax, str.StartDownload
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b4c1
cmp dword [ebp + 0x2b4], edi
jne 0x40b457
cmp dword [ebp + 0x2b8], edi
je 0x40b477
push str.the_previous_downloading_is_not_finished.
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x10f
jmp 0x40bf5a
mov eax, ebp
call fcn.0041cd10
test eax, eax
lea esi, [esp + 0x2c]
je 0x40b4a5
push str.success
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x110
jmp 0x40bf5a
push str.failed_to_start_download.
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x111
jmp 0x40bf5a
mov eax, str.Stop
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b503
mov dword [ebp + 0x218], 1
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x112
jmp 0x40bf5a
mov eax, 0x51ca0c
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b542
mov eax, ebp
call fcn.00420e30
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x113
jmp 0x40bf5a
mov eax, str.ExistVersionUpCnt
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b616
mov edi, ebp
call fcn.00420e50
cmp eax, 1
mov dword [esp + 0x60], 0
jne 0x40b591
mov ecx, dword [esp + 0x5c]
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x54], al
mov dword [esp + 0x494], 0x114
jmp 0x40b5b2
mov edx, dword [esp + 0x5c]
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x5c], edx
mov byte [esp + 0x54], 0
mov dword [esp + 0x494], 0x115
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.ExistVersionUpCnt
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov dword [esp + 0x494], ebx
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x116
jmp 0x40bf5a
mov eax, str.MakeShortCut
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40b9ef
lea ecx, [esp + 0x78]
call fcn.00474bb0
lea ecx, [esp + 0x9c]
mov dword [esp + 0x494], 0x117
call fcn.00474bb0
lea ecx, [esp + 0x98]
mov byte [esp + 0x494], 0x18
call fcn.00474bb0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x494], 0x19
call fcn.00474bb0
lea ecx, [esp + 0x74]
mov byte [esp + 0x494], 0x1a
call fcn.00474bb0
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x90]
mov byte [esp + 0x4a0], 0x1b
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
test eax, eax
jbe 0x40b8a6
push edi
push ecx
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x7c]
mov esi, 1
call fcn.00401020
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, esi
jbe 0x40b768
push esi
push ecx
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xa0]
mov esi, 2
call fcn.00401020
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 2
jbe 0x40b7d4
push esi
push ecx
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x9c]
add esi, 1
call fcn.00401020
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 3
jbe 0x40b840
push esi
push ecx
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x80]
add esi, 1
call fcn.00401020
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 4
jbe 0x40b8a6
push esi
push ecx
push str.param
push ecx
push str.MakeShortCut
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x78]
call fcn.00401020
push ecx
lea eax, [esp + 0x78]
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.004755e0
push ecx
mov byte [esp + 0x49c], 0x1c
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.004755e0
push ecx
mov byte [esp + 0x4a0], 0x1d
lea eax, [esp + 0xa4]
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
call fcn.004755e0
push ecx
mov byte [esp + 0x4a4], 0x1e
lea edx, [esp + 0xac]
mov ecx, esp
mov dword [esp + 0x104], esp
push edx
call fcn.004755e0
push ecx
mov byte [esp + 0x4a8], 0x1f
lea eax, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x1d8], esp
push eax
call fcn.004755e0
mov ecx, ebp
mov byte [esp + 0x4a8], 0x1b
call fcn.00420ea0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x20
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x1b
call fcn.0046c6d0
lea ecx, [esp + 0x74]
mov byte [esp + 0x494], 0x1a
call fcn.004732d0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x494], 0x19
call fcn.004732d0
lea ecx, [esp + 0x98]
mov byte [esp + 0x494], 0x18
call fcn.004732d0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x494], 0x17
call fcn.004732d0
lea ecx, [esp + 0x78]
mov dword [esp + 0x494], ebx
call fcn.004732d0
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
mov eax, str.IsUACEnabled
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40baca
call fcn.0042f480
test eax, eax
je 0x40ba41
call fcn.004211e0
cmp eax, 1
jne 0x40ba41
mov ecx, dword [esp + 0x5c]
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edi
mov byte [esp + 0x54], al
mov dword [esp + 0x494], 0x121
jmp 0x40ba66
mov edx, dword [esp + 0x5c]
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edi
mov byte [esp + 0x54], 0
mov dword [esp + 0x494], 0x122
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.IsUACEnabled
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov dword [esp + 0x494], ebx
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x123
jmp 0x40bf5a
mov eax, str.IsElevatedProcess
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40bbae
call fcn.0042f480
test eax, eax
je 0x40bb25
call fcn.004211e0
cmp eax, edi
je 0x40bb25
call fcn.00410620
cmp eax, 1
jne 0x40bb25
mov eax, dword [esp + 0x5c]
and eax, 0xffffff05
or eax, 5
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edi
mov byte [esp + 0x54], 1
mov dword [esp + 0x494], 0x124
jmp 0x40bb4a
mov ecx, dword [esp + 0x5c]
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edi
mov byte [esp + 0x54], 0
mov dword [esp + 0x494], 0x125
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.IsElevatedProcess
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov dword [esp + 0x494], ebx
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x126
jmp 0x40bf5a
mov eax, str.IsMiPlatformRunning
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40bc7d
mov ecx, ebp
call fcn.004212e0
cmp eax, 1
mov dword [esp + 0x60], edi
jne 0x40bbf9
mov edx, dword [esp + 0x5c]
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x5c], edx
mov byte [esp + 0x54], al
mov dword [esp + 0x494], 0x127
jmp 0x40bc19
mov eax, dword [esp + 0x5c]
and eax, 0xffffff05
or eax, 5
mov dword [esp + 0x5c], eax
mov byte [esp + 0x54], 0
mov dword [esp + 0x494], 0x128
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.IsMiPlatformRunning
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov dword [esp + 0x494], ebx
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x129
jmp 0x40bf5a
mov eax, str.AliasToRealPath
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40be74
push str.param
push ecx
push str.AliasToRealPath
lea ecx, [esp + 0x90]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
mov ecx, eax
call fcn.0046cce0
cmp eax, 1
jae 0x40bce3
push str.invalid_parameter
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x12a
jmp 0x40bf5a
push edi
push ecx
push str.param
push ecx
push str.AliasToRealPath
lea ecx, [esp + 0x98]
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046d240
add esp, 4
mov ecx, eax
call fcn.0046cfd0
mov eax, dword [eax]
push edi
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x5c]
call fcn.004748e0
lea ecx, [esp + 0x74]
mov dword [esp + 0x494], 0x12b
call fcn.00474bb0
lea ecx, [esp + 0x74]
push ecx
push ecx
mov byte [esp + 0x49c], 0x2c
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x70], esp
push edx
call fcn.004755e0
push ebp
call fcn.00421360
mov eax, dword [esp + 0x74]
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x2d
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
lea esi, [esp + 0x2c]
mov byte [esp + 0x494], 0x2e
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x2f
call fcn.0046d0a0
push str.AliasToRealPath
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x2e
call fcn.0046c6d0
lea ecx, [esp + 0xac]
call fcn.00410200
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x494], 0x2c
call fcn.0040e070
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x30
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x2c
call fcn.0046c6d0
lea ecx, [esp + 0x74]
mov byte [esp + 0x494], 0x2b
call fcn.004732d0
lea ecx, [esp + 0x50]
mov dword [esp + 0x494], ebx
call fcn.004732d0
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
mov eax, str.IsAdministratorsGroup
lea ecx, [esp + 0x84]
call fcn.0046d310
test al, al
je 0x40bf3f
call fcn.004106f0
cmp eax, 1
mov dword [esp + 0x60], edi
jne 0x40bebd
mov ecx, dword [esp + 0x5c]
and ecx, 0xffffff05
or ecx, 5
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x54], al
mov dword [esp + 0x494], 0x131
jmp 0x40bede
mov edx, dword [esp + 0x5c]
and edx, 0xffffff05
or edx, 5
mov dword [esp + 0x5c], edx
mov byte [esp + 0x54], 0
mov dword [esp + 0x494], 0x132
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push str.IsAdministratorsGroup
mov ecx, eax
call fcn.0046d0a0
push str.result
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x54]
call fcn.0046c770
lea ecx, [esp + 0x54]
mov dword [esp + 0x494], ebx
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x133
jmp 0x40bf5a
push str.invalid_method
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x134
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
mov dword [esp + 0x494], ebx
lea ecx, [esp + 0x2c]
call fcn.0046c6d0
mov byte [esp + 0x494], 5
lea ecx, [esp + 0x84]
jmp 0x40c660
push str.no_method_value
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x135
jmp 0x40c638
push str.create
lea ecx, [esp + 0xac]
call fcn.0040daf0
test eax, eax
jne 0x40c125
push 0x51c5d4
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
je 0x40bffe
push str.miplatform
lea ecx, [esp + 0x84]
call fcn.0040daf0
test eax, eax
jne 0x40c105
push 0x18
call fcn.004a08b1
mov esi, eax
add esp, 4
mov dword [esp + 0x68], esi
cmp esi, edi
mov dword [esp + 0x494], 0x136
je 0x40c03c
push ecx
lea eax, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00410050
mov ecx, esi
call fcn.0040cac0
mov esi, eax
jmp 0x40c03e
xor esi, esi
cmp esi, edi
mov dword [esp + 0x494], 5
mov dword [esp + 0x28], esi
je 0x40c105
lea ecx, [esp + 0x28]
call fcn.0040dec0
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push 0xa
push 0x14
lea ecx, [esp + 0x46c]
push ecx
push edx
push eax
call fcn.004ad2b9
add esp, 0x14
lea ecx, [esp + 0x464]
push ecx
lea esi, [esp + 0x30]
call fcn.0046c4b0
push 0x51c5b0
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x137
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
mov edi, 5
lea ecx, [esp + 0x2c]
mov dword [esp + 0x494], edi
call fcn.0046c6d0
push str.success
lea esi, [esp + 0x30]
lea ebp, [edi - 4]
call fcn.0046c4b0
mov dword [esp + 0x494], 0x138
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
mov dword [esp + 0x494], edi
jmp 0x40c65c
push str.invalid_platform
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x139
jmp 0x40c638
push str.destroy
lea ecx, [esp + 0xac]
call fcn.0040daf0
test eax, eax
jne 0x40c241
mov edx, dword [0x5548d8]
mov eax, dword [edx]
mov dword [esp + 0x6c], eax
mov eax, 0x5548d4
mov dword [esp + 0x68], eax
mov dword [esp + 0xf4], eax
lea ebx, [ebx]
mov ecx, dword [0x5548d8]
lea esi, [esp + 0xf4]
lea edi, [esp + 0x68]
mov dword [esp + 0xf8], ecx
call fcn.0040dfe0
test al, al
je 0x40c665
mov esi, edi
call fcn.0040df90
mov esi, dword [eax]
test esi, esi
mov dword [esp + 0x50], esi
je 0x40c1fb
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
push 0xa
push 0x14
lea edx, [esp + 0x46c]
push edx
push eax
push ecx
call fcn.004ad2b9
add esp, 0x14
lea edx, [esp + 0x464]
push edx
lea ecx, [esp + 0x2c]
call fcn.0040fd30
mov dword [esp + 0x494], 0x13a
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xd8]
call fcn.0040daf0
test eax, eax
mov edi, 5
lea ecx, [esp + 0x28]
sete bl
mov dword [esp + 0x494], edi
call fcn.00410230
test bl, bl
jne 0x40c210
lea edi, [esp + 0x1c4]
lea esi, [esp + 0x68]
call fcn.0040dfb0
jmp 0x40c160
lea eax, [esp + 0x50]
call fcn.0040def0
call fcn.004018f0
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov dword [esp + 0x494], 0x13b
jmp 0x40c0e0
push str.check
lea ecx, [esp + 0xac]
call fcn.0040daf0
test eax, eax
jne 0x40c61d
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov ecx, eax
call fcn.0046cd60
test al, al
jne 0x40c600
push str.value
lea ecx, [esp + 0x40]
call fcn.0046d0a0
push eax
lea ecx, [esp + 0x118]
call fcn.0046c580
mov eax, str.getlauncherversion
lea ecx, [esp + 0x114]
mov dword [esp + 0x494], 0x13c
call fcn.0046d310
test al, al
je 0x40c5aa
push 0x51ba20
lea ecx, [esp + 0x80]
call fcn.0040fd30
push 0x51ba20
lea ecx, [esp + 0x1c]
mov byte [esp + 0x498], 0x3d
call fcn.0040fd30
lea ecx, [esp + 0x50]
mov byte [esp + 0x494], 0x3e
call fcn.00474bb0
lea eax, [esp + 0x68]
push eax
push 0x51caf8
mov byte [esp + 0x49c], 0x3f
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
cmp esi, edi
je 0x40c3b3
push esi
lea ecx, [esp + 0x54]
call fcn.00474c50
mov ebx, eax
push ebx
push esi
push edi
push 0x51caf8
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x40c3b3
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x78]
push edx
push 0x51cb10
push ebx
mov dword [esp + 0x84], edi
mov dword [esp + 0x38], 0x34
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40c3b3
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x40c3b3
movzx ecx, word [eax + 0xc]
movzx edx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
push edx
movzx edx, word [eax + 0xa]
push ecx
push edx
lea eax, [esp + 0x8c]
push 0x51cb14
push eax
call fcn.00410070
mov eax, dword [esp + 0x8c]
movzx ecx, word [eax + 0x14]
movzx edx, word [eax + 0x16]
push ecx
movzx ecx, word [eax + 0x10]
push edx
movzx edx, word [eax + 0x12]
push ecx
push edx
lea eax, [esp + 0x40]
push 0x51cb14
push eax
call fcn.00410070
add esp, 0x30
mov eax, dword [esp + 0x7c]
cmp dword [eax - 0xc], 0xa
jle 0x40c52e
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 6
jle 0x40c52e
push eax
lea esi, [esp + 0x1dc]
call fcn.0040e050
mov byte [esp + 0x494], 0x40
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
lea esi, [esp + 0x2c]
mov byte [esp + 0x494], 0x41
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x42
call fcn.0046d0a0
push str.getlauncherversion
mov ecx, eax
call fcn.0046d0a0
push str.fileversion
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x41
call fcn.0046c6d0
lea ecx, [esp + 0xac]
call fcn.00410200
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x494], 0x3f
call fcn.0040e070
mov edx, dword [esp + 0x18]
push edx
lea esi, [esp + 0x348]
call fcn.0040e050
mov byte [esp + 0x494], 0x43
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040fbf0
lea esi, [esp + 0x2c]
mov byte [esp + 0x494], 0x44
call fcn.0046c510
push str.value
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x45
call fcn.0046d0a0
push str.getlauncherversion
mov ecx, eax
call fcn.0046d0a0
push str.productversion
mov ecx, eax
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x44
call fcn.0046c6d0
lea ecx, [esp + 0xac]
call fcn.00410200
lea ecx, [esp + 0x344]
mov byte [esp + 0x494], 0x3f
call fcn.0040e070
push str.success
lea esi, [esp + 0x30]
mov ebp, 1
call fcn.0046c4b0
mov byte [esp + 0x494], 0x46
jmp 0x40c546
push str.invalid_version
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov byte [esp + 0x494], 0x47
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x3f
call fcn.0046c6d0
lea ecx, [esp + 0x50]
mov byte [esp + 0x494], 0x3e
call fcn.004732d0
lea ecx, [esp + 0x18]
call fcn.00410230
lea ecx, [esp + 0x7c]
call fcn.00410230
mov dword [esp + 0x494], 5
lea ecx, [esp + 0x114]
jmp 0x40c660
push str.invalid_method
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov byte [esp + 0x498], 0x48
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov byte [esp + 0x494], 0x3c
call fcn.0046c6d0
mov dword [esp + 0x494], 5
lea ecx, [esp + 0x114]
jmp 0x40c660
push str.no_check_value
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x149
jmp 0x40c638
push str.invalid_action
lea esi, [esp + 0x30]
xor ebp, ebp
call fcn.0046c4b0
mov dword [esp + 0x494], 0x14a
push str.result
lea ecx, [esp + 0x40]
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
mov dword [esp + 0x494], 5
lea ecx, [esp + 0x2c]
call fcn.0046c6d0
mov byte [esp + 0x494], 4
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c690
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x494], 3
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c6bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x494], 2
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c6e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor edi, edi
mov dword [esp + method.Json::FastWriter.virtual_0], vtable.Json::FastWriter.0
mov dword [esp + 0x3e4], 0xf
mov dword [esp + 0x3e0], edi
mov byte [esp + 0x3d0], 0
mov byte [esp + 0x3e8], 0
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x468]
push edx
lea ecx, [esp + 0x3d0]
mov dword [esp + 0x49c], 0x14c
call fcn.0046fc40
mov ecx, dword [esp + 0x280]
push 0xffffffffffffffff
push edi
push eax
mov byte [esp + 0x4a0], 0x4d
call fcn.0040f4d0
cmp dword [esp + 0x47c], 0x10
jb 0x40c76b
mov eax, dword [esp + 0x468]
push eax
call fcn.004a08dc
add esp, 4
lea ecx, [esp + 0x3c8]
mov dword [esp + 0x494], 2
call fcn.00401460
lea ecx, [esp + 0x3c]
mov byte [esp + 0x494], 0
call fcn.0046c6d0
lea edi, [esp + 0x3ec]
call fcn.0040c820
mov eax, ebp
mov ecx, dword [esp + 0x48c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x470]
xor ecx, esp
call fcn.004ac89d
add esp, 0x484
ret
push str.data_parsing_error
lea esi, [esp + 0x30]
call fcn.0046c4b0
push str.result
lea ecx, [esp + 0x40]
mov dword [esp + 0x498], 0x14b
call fcn.0046d0a0
mov esi, eax
lea eax, [esp + 0x2c]
call fcn.0046c770
lea ecx, [esp + 0x2c]
mov dword [esp + 0x494], 2
call fcn.0046c6d0
jmp 0x40c6e8