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

Disassembly:
push 0xffffffffffffffff
push 0x518870
mov eax, dword fs:[0]
push eax
sub esp, 0x3e4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x549950]
xor eax, esp
push eax
lea eax, [esp + 0x3f8]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x40c]
xor edi, edi
mov dword [esp + 0x400], edi
and dword [esp + 0x34], 0xfffffe00
mov dword [esp + 0x38], edi
lea eax, [esp + 0x37c]
push eax
mov byte [esp + 0x404], 3
call fcn.0041fd70
mov byte [esp + 0x400], 4
xor ebx, ebx
movsx eax, byte [ebp + 8]
mov dword [esp + 0x9c], ebx
cmp eax, 7
ja case.0x492a2c.996
jmp dword [eax*4 + 0x494b94]
mov eax, dword [ebp]
cmp dword [eax + 0x1c], edi
je case.0x492a2c.996
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
lea esi, [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
call fcn.0049baa8
mov eax, dword [esp + 0xa0]
cmp eax, edi
jne 0x492a87
call fcn.004df604
xor eax, eax
mov esi, dword [esp + 0xa4]
cmp esi, dword [eax + 0x18]
jne 0x492a81
call fcn.004df604
mov eax, dword [esi + 0x14]
inc eax
jmp 0x492a91
mov eax, dword [eax]
jmp 0x492a70
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x1c]
cmp ebx, eax
jae case.0x492a2c.996
push ebx
push ebp
call fcn.0049b0be
push eax
lea ecx, [esp + 0xf8]
call fcn.0049acf2
mov byte [esp + 0x400], 5
mov edx, dword [esp + 0x214]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x214], edx
mov dword [esp + 0x218], edi
jne 0x492afd
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x20c]
push eax
push str.IsOpen
lea ecx, [esp + 0x344]
push ecx
lea ecx, [esp + 0x100]
mov byte [esp + 0x40c], 6
call fcn.0049b3a3
call fcn.0049b056
lea ecx, [esp + 0x33c]
movzx esi, al
call fcn.0049ae2d
lea ecx, [esp + 0x20c]
mov byte [esp + 0x400], 5
call fcn.0049ae2d
cmp esi, edi
je 0x49493c
xor ebx, ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], ebx
jmp 0x492b80
push str.urlmap
lea edx, [esp + 0xf8]
push edx
call fcn.0049b1dd
movsx ecx, byte [eax + 8]
cmp ecx, 7
ja case.0x492b9f.0
jmp dword [ecx*4 + 0x494bb4]
mov eax, dword [eax]
cmp dword [eax + 0x1c], edi
je case.0x492b9f.0
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
lea esi, [esp + 0xa8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
call fcn.0049baa8
mov eax, dword [esp + 0xa8]
cmp eax, edi
jne 0x492bf9
call fcn.004df604
xor eax, eax
mov esi, dword [esp + 0xac]
cmp esi, dword [eax + 0x18]
jne 0x492bf3
call fcn.004df604
mov eax, dword [esi + 0x14]
inc eax
jmp 0x492c02
mov eax, dword [eax]
jmp 0x492be2
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
cmp ebx, eax
jae case.0x492b9f.0
push str.urlmap
lea ecx, [esp + 0xf8]
push ecx
call fcn.0049b1dd
push ebx
push eax
call fcn.0049b0be
push eax
lea esi, [esp + 0x30]
call fcn.0049aeb2
call fcn.004c01dc
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
je 0x49495d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x400], 7
mov ecx, dword [esp + 0x184]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x184], ecx
mov dword [esp + 0x188], edi
jne 0x492ca1
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x17c], eax
lea ecx, [esp + 0x17c]
push ecx
push 0x522810
lea edx, [esp + 0x2c4]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 8
call fcn.0049b3a3
mov byte [esp + 0x400], 9
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.004025a0
lea ecx, [esp + 0x2bc]
mov byte [esp + 0x400], 8
call fcn.0049ae2d
lea ecx, [esp + 0x17c]
mov byte [esp + 0x400], 7
call fcn.0049ae2d
mov dword [esp + 0x74], vtable.CArray_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____.0
mov dword [esp + 0x78], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], edi
mov byte [esp + 0x400], 0xa
mov ebx, dword [esp + 0x18]
cmp dword [ebx - 0xc], 0
jl 0x492f60
push 0x522768
push ebx
call fcn.004dfd90
add esp, 8
test eax, eax
je 0x492f5a
sub eax, ebx
sar eax, 1
cmp eax, 0xffffffff
je 0x492f5a
cmp dword [ebx - 0xc], 0
jge 0x492d80
or esi, 0xffffffff
jmp 0x492d9d
push 0x522768
push ebx
call fcn.004dfd90
add esp, 8
test eax, eax
jne 0x492d97
or esi, 0xffffffff
jmp 0x492d9d
sub eax, ebx
sar eax, 1
mov esi, eax
push esi
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0x20]
call fcn.00402800
inc esi
push esi
lea ecx, [esp + 0xec]
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x408], 0xb
call fcn.00402750
mov byte [esp + 0x400], 0xc
mov eax, dword [eax]
lea esi, [eax - 0x10]
lea ebp, [ebx - 0x10]
cmp esi, ebp
je 0x492e84
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x492e72
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x492e72
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x492e17
cmp eax, dword [esi]
jne 0x492e17
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x492e52
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x494967
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004df614
add esp, 0x10
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x492e69
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
add edi, 0x10
mov dword [esp + 0x18], edi
jmp 0x492e80
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00403570
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x400], 0xb
mov eax, dword [esp + 0xe8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x492eaf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x7c]
test edi, edi
jl 0x49496c
lea eax, [edi + 1]
lea esi, [esp + 0x74]
call fcn.00403bc0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0xe4]
mov esi, dword [ecx + edi*4]
lea ebp, [ecx + edi*4]
lea edi, [eax - 0x10]
sub esi, 0x10
cmp edi, esi
je 0x492f30
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x492f20
mov edx, dword [edi]
cmp edx, dword [esi]
jne 0x492f20
push edi
call fcn.00403680
mov dword [esp + 0x40], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x492f14
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x3c]
add ecx, 0x10
mov dword [ebp], ecx
jmp 0x492f2c
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebp
call fcn.00403570
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x400], 0xa
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x492d48
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
jmp 0x492d48
cmp dword [ebx - 0xc], 0
je 0x492f8c
mov edi, dword [esp + 0x7c]
test edi, edi
jl 0x49496c
lea eax, [edi + 1]
lea esi, [esp + 0x74]
call fcn.00403bc0
mov ebp, dword [esp + 0x78]
lea edx, [esp + 0x18]
lea ecx, [ebp + edi*4]
push edx
call fcn.00403060
jmp 0x492f90
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor esi, esi
test edi, edi
jle 0x492fe9
mov ecx, dword [esp + 0x410]
test esi, esi
jl 0x49496c
cmp esi, edi
jge 0x49496c
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x492fdd
cmp dword [ecx - 0xc], 0
jl 0x492fdd
push eax
push ecx
call fcn.004dfd90
mov ecx, dword [esp + 0x418]
add esp, 8
test eax, eax
je 0x492fdd
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
jne 0x492fe4
inc esi
cmp esi, edi
jl 0x492fa1
jmp 0x492fe9
cmp esi, 0xffffffff
jne 0x493002
lea edi, [esp + 0x74]
call fcn.00403a10
mov byte [esp + 0x400], 5
lea eax, [ebx - 0x10]
jmp 0x494907
mov ecx, dword [esp + 0x1e4]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1e8], 0
jne 0x49304e
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x1dc], eax
lea ecx, [esp + 0x1dc]
push ecx
push str.install
lea edx, [esp + 0x2e4]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0xd
call fcn.0049b3a3
mov byte [esp + 0x400], 0xe
mov eax, dword [eax]
lea ecx, [esp + 0x240]
call fcn.0049f7c4
mov esi, 8
mov byte [esp + 0x400], 0xf
cmp dword [eax + 0x18], esi
jb 0x4930bc
mov eax, dword [eax + 4]
jmp 0x4930bf
add eax, 4
push eax
lea ecx, [esp + 0x2c]
call fcn.00402480
cmp dword [esp + 0x258], esi
jb 0x4930e2
mov eax, dword [esp + 0x244]
push eax
call fcn.004c0153
add esp, 4
xor ecx, ecx
mov dword [esp + 0x258], 7
mov dword [esp + 0x254], 0
mov word [esp + 0x244], cx
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x400], 0x12
call fcn.0049ae2d
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x400], 0x13
call fcn.0049ae2d
mov esi, dword [esp + 0x28]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x44], esp
mov ebp, esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x49315c
cmp eax, dword [esi]
jne 0x49315c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x493197
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x494967
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004df614
add esp, 0x10
add edi, 0x10
mov dword [ebp], edi
call fcn.00408e50
xor ebx, ebx
add esp, 4
cmp eax, ebx
jne 0x4948c7
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x49495d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x400], 0x14
mov ecx, dword [esp + 0x204]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x204], ecx
mov dword [esp + 0x208], ebx
jne 0x493223
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x1fc], eax
lea ecx, [esp + 0x1fc]
push ecx
push str.process
lea edx, [esp + 0x304]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x15
call fcn.0049b3a3
mov byte [esp + 0x400], 0x16
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x24]
call fcn.004025a0
lea ecx, [esp + 0x2fc]
mov byte [esp + 0x400], 0x15
call fcn.0049ae2d
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x400], 0x14
call fcn.0049ae2d
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x49495d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0x400], 0x17
mov ecx, dword [esp + 0x224]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x224], ecx
mov dword [esp + 0x228], ebx
jne 0x493314
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x21c], eax
lea ecx, [esp + 0x21c]
push ecx
push str.helpexe
lea edx, [esp + 0x324]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x18
call fcn.0049b3a3
mov byte [esp + 0x400], 0x19
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x40]
call fcn.004025a0
lea ecx, [esp + 0x31c]
mov byte [esp + 0x400], 0x18
call fcn.0049ae2d
lea ecx, [esp + 0x21c]
mov byte [esp + 0x400], 0x17
call fcn.0049ae2d
mov ebp, dword [esp + 0x3c]
push ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add ebp, 0xfffffff0
mov dword [esp + 0x44], esp
mov edi, esp
mov dword [esp + 0x48], ebp
call edx
cmp dword [ebp + 0xc], ebx
lea edx, [ebp + 0xc]
jl 0x4933c7
cmp eax, dword [ebp]
jne 0x4933c7
mov esi, ebp
mov eax, 1
lock xadd dword [edx], eax
jmp 0x493402
mov ecx, dword [ebp + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
cmp esi, ebx
je 0x494967
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax + 2]
push ecx
add ebp, 0x10
lea edx, [eax + eax + 2]
push ebp
push edx
lea eax, [esi + 0x10]
push eax
call fcn.004df614
add esp, 0x10
mov ecx, dword [esp + 0x40c]
add esi, 0x10
mov dword [edi], esi
call fcn.00409ef0
mov dword [esp + 0x60], vtable.CArray_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____.0
mov dword [esp + 0x64], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], ebx
mov byte [esp + 0x400], 0x1a
mov ebp, dword [esp + 0x20]
cmp dword [ebp - 0xc], 0
jl 0x493698
push 0x522768
push ebp
call fcn.004dfd90
add esp, 8
test eax, eax
je 0x493692
sub eax, ebp
sar eax, 1
cmp eax, 0xffffffff
je 0x493692
cmp dword [ebp - 0xc], 0
jge 0x49346f
or esi, 0xffffffff
jmp 0x49348c
push 0x522768
push ebp
call fcn.004dfd90
add esp, 8
test eax, eax
jne 0x493486
or esi, 0xffffffff
jmp 0x49348c
sub eax, ebp
sar eax, 1
mov esi, eax
push esi
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x28]
call fcn.00402800
inc esi
push esi
lea edx, [esp + 0xe4]
push edx
lea ecx, [esp + 0x28]
mov byte [esp + 0x408], 0x1b
call fcn.00402750
mov byte [esp + 0x400], 0x1c
mov eax, dword [eax]
lea esi, [eax - 0x10]
add ebp, 0xfffffff0
cmp esi, ebp
je 0x49356f
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x493561
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x493561
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x493506
cmp eax, dword [esi]
jne 0x493506
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x493541
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x494967
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004df614
add esp, 0x10
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x493558
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
add edi, 0x10
mov dword [esp + 0x20], edi
jmp 0x49356f
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00403570
mov byte [esp + 0x400], 0x1b
mov eax, dword [esp + 0xe0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49359a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x68]
test edi, edi
jl 0x49496c
mov eax, edi
inc eax
lea esi, [esp + 0x60]
call fcn.00403bc0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xf0]
lea ebx, [ecx + edi*4]
mov edi, dword [ebx]
lea esi, [eax - 0x10]
sub edi, 0x10
cmp esi, edi
je 0x493668
cmp dword [edi + 0xc], 0
jl 0x49365c
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x49365c
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x493601
cmp eax, dword [esi]
jne 0x493601
mov ebp, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x49363c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebp, eax
test ebp, ebp
je 0x494967
mov eax, dword [esi + 4]
mov dword [ebp + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [ebp + 0x10]
push ecx
call fcn.004df614
add esp, 0x10
lea eax, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x493655
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
add ebp, 0x10
mov dword [ebx], ebp
jmp 0x493668
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00403570
mov byte [esp + 0x400], 0x1a
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x493433
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
jmp 0x493433
cmp dword [ebp - 0xc], 0
je 0x4936c3
mov edi, dword [esp + 0x68]
test edi, edi
jl 0x49496c
mov eax, edi
inc eax
lea esi, [esp + 0x60]
call fcn.00403bc0
mov ebx, dword [esp + 0x64]
lea edx, [esp + 0x20]
lea ecx, [ebx + edi*4]
push edx
call fcn.00403060
jmp 0x4936c7
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
xor esi, esi
test edi, edi
jle 0x4936fa
test esi, esi
jl 0x49496c
cmp esi, edi
jge 0x49496c
mov eax, dword [ebx + esi*4]
push eax
call fcn.0049e12d
add esp, 4
test eax, eax
jne 0x4938e6
inc esi
cmp esi, edi
jl 0x4936d1
xor ebx, ebx
mov dword [esp + 0x88], vtable.CArray_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____.0
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], ebx
mov byte [esp + 0x400], 0x1d
call fcn.004c01dc
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x49495d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x400], 0x1e
mov ecx, dword [esp + 0x134]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], ebx
jne 0x49379f
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x12c], eax
lea ecx, [esp + 0x12c]
push ecx
push str.version
lea edx, [esp + 0x264]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x1f
call fcn.0049b3a3
mov byte [esp + 0x400], 0x20
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x20]
call fcn.004025a0
lea ecx, [esp + 0x25c]
mov byte [esp + 0x400], 0x1f
call fcn.0049ae2d
lea ecx, [esp + 0x12c]
mov byte [esp + 0x400], 0x1e
call fcn.0049ae2d
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], 0
jl 0x493af6
mov ecx, eax
push 0x522768
push ecx
call fcn.004dfd90
add esp, 8
test eax, eax
je 0x493af6
sub eax, dword [esp + 0x1c]
sar eax, 1
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
je 0x493af6
jmp 0x493860
mov esi, dword [esp + 0x24]
push esi
lea edx, [esp + 0xf0]
push edx
lea ecx, [esp + 0x24]
call fcn.00402800
inc esi
push esi
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x408], 0x21
call fcn.00402750
mov byte [esp + 0x400], 0x22
mov eax, dword [eax]
mov edi, dword [esp + 0x1c]
lea esi, [eax - 0x10]
lea ebp, [edi - 0x10]
cmp esi, ebp
je 0x493998
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x49397f
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x49397f
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x493924
cmp eax, dword [esi]
jne 0x493924
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x49395f
lea edi, [esp + 0x60]
call fcn.00403a10
mov eax, dword [esp + 0x44]
mov byte [esp + 0x400], 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x493914
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x400], 0x13
lea eax, [ebp - 0x10]
jmp 0x4948ae
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x494967
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004df614
add esp, 0x10
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x493976
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
add edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x493991
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.00403570
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov byte [esp + 0x400], 0x21
mov eax, dword [esp + 0x108]
add eax, 0xfffffff0
or esi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4939c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [edi - 0xc], 0
jge 0x4939d1
mov dword [esp + 0x24], esi
jmp 0x4939f1
push 0x522768
push edi
call fcn.004dfd90
add esp, 8
test eax, eax
jne 0x4939e9
mov dword [esp + 0x24], esi
jmp 0x4939f1
sub eax, edi
sar eax, 1
mov dword [esp + 0x24], eax
mov edi, ebx
test ebx, ebx
jl 0x49496c
lea eax, [ebx + 1]
lea esi, [esp + 0x88]
call fcn.00403bc0
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0xec]
lea ebx, [ecx + edi*4]
mov edi, dword [ebx]
lea esi, [eax - 0x10]
sub edi, 0x10
cmp esi, edi
je 0x493ac3
cmp dword [edi + 0xc], 0
jl 0x493ab7
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x493ab7
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x493a5c
cmp eax, dword [esi]
jne 0x493a5c
mov ebp, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x493a97
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebp, eax
test ebp, ebp
je 0x494967
mov eax, dword [esi + 4]
mov dword [ebp + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [ebp + 0x10]
push ecx
call fcn.004df614
add esp, 0x10
lea eax, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x493ab0
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
add ebp, 0x10
mov dword [ebx], ebp
jmp 0x493ac3
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00403570
mov byte [esp + 0x400], 0x1e
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x493ae4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
cmp dword [esp + 0x24], 0xffffffff
mov ebx, dword [esp + 0x90]
jne 0x493860
mov ecx, dword [esp + 0x1c]
cmp dword [ecx - 0xc], 0
je 0x493b37
mov edi, ebx
test ebx, ebx
jl 0x49496c
lea eax, [ebx + 1]
lea esi, [esp + 0x88]
call fcn.00403bc0
mov ebp, dword [esp + 0x8c]
lea edx, [esp + 0x1c]
lea ecx, [ebp + edi*4]
push edx
call fcn.00403060
mov ebx, dword [esp + 0x90]
jmp 0x493b3e
mov ebp, dword [esp + 0x8c]
xor esi, esi
test ebx, ebx
jle 0x493bb2
mov edi, dword [esp + 0x414]
jmp 0x493b50
test esi, esi
jl 0x49496c
cmp esi, ebx
jge 0x49496c
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x49495d
mov eax, dword [ebp + esi*4]
mov ecx, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x493b9b
test dx, dx
je 0x493b97
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x493b9b
add eax, 4
add ecx, 4
test dx, dx
jne 0x493b75
xor eax, eax
jmp 0x493ba0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x49483d
inc esi
cmp esi, ebx
jl 0x493b50
call fcn.004c01dc
xor ecx, ecx
xor ebp, ebp
cmp eax, ebp
setne cl
cmp ecx, ebp
je 0x49495d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x400], 0x23
mov ecx, dword [esp + 0x1a4]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], ebp
jne 0x493c28
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x19c], eax
lea ecx, [esp + 0x19c]
push ecx
push str.area
lea edx, [esp + 0x364]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x24
call fcn.0049b3a3
mov byte [esp + 0x400], 0x25
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x28]
call fcn.004025a0
lea ecx, [esp + 0x35c]
mov byte [esp + 0x400], 0x24
call fcn.0049ae2d
lea ecx, [esp + 0x19c]
mov byte [esp + 0x400], 0x23
call fcn.0049ae2d
mov ebx, dword [esp + 0x24]
push ecx
mov ecx, dword [ebx - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add ebx, 0xfffffff0
mov dword [esp + 0x44], esp
mov edi, esp
mov dword [esp + 0x44], ebx
call edx
cmp dword [ebx + 0xc], ebp
lea edx, [ebx + 0xc]
jl 0x493cda
cmp eax, dword [ebx]
jne 0x493cda
mov esi, ebx
mov eax, 1
lock xadd dword [edx], eax
jmp 0x493d15
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
cmp esi, ebp
je 0x494967
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [ebx + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.004df614
add esp, 0x10
lea edx, [esp + 0x380]
add esi, 0x10
push edx
mov dword [edi], esi
call fcn.00420580
cmp eax, ebp
je 0x493d4e
mov byte [esp + 0x400], 0x1e
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x49483d
mov ecx, dword [ebx]
push ebx
jmp 0x494836
lea esi, [esp + 0xb0]
call fcn.00494c40
mov byte [esp + 0x400], 0x26
mov ecx, dword [esp + 0x234]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x234], ecx
mov dword [esp + 0x238], ebp
mov edi, 1
mov esi, vtable.Json::DefaultValueAllocator.0
jne 0x493daf
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x22c], eax
lea ecx, [esp + 0x22c]
push ecx
push 0x52283c
lea edx, [esp + 0x374]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x27
call fcn.0049b3a3
mov byte [esp + 0x400], 0x28
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb4]
call fcn.004025a0
lea ecx, [esp + 0x36c]
mov byte [esp + 0x400], 0x27
call fcn.0049ae2d
lea ecx, [esp + 0x22c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov eax, dword [esp + 0x154]
and eax, 0xffffff04
or eax, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], ebp
jne 0x493e70
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x14c], eax
lea ecx, [esp + 0x14c]
push ecx
push 0x52cf18
lea edx, [esp + 0x294]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x29
call fcn.0049b3a3
mov byte [esp + 0x400], 0x2a
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xb8]
call fcn.004025a0
lea ecx, [esp + 0x28c]
mov byte [esp + 0x400], 0x29
call fcn.0049ae2d
lea ecx, [esp + 0x14c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov eax, dword [esp + 0x1d4]
and eax, 0xffffff04
or eax, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], ebp
jne 0x493f31
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x1cc], eax
lea ecx, [esp + 0x1cc]
push ecx
push str.start
lea edx, [esp + 0x314]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x2b
call fcn.0049b3a3
mov byte [esp + 0x400], 0x2c
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xbc]
call fcn.004025a0
lea ecx, [esp + 0x30c]
mov byte [esp + 0x400], 0x2b
call fcn.0049ae2d
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov eax, dword [esp + 0x174]
and eax, 0xffffff04
or eax, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ebp
jne 0x493ff2
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x16c], eax
lea ecx, [esp + 0x16c]
push ecx
push str.lnktype
lea edx, [esp + 0x2b4]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x2d
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x400], 0x2e
call fcn.0049af32
lea ecx, [esp + 0x2ac]
mov dword [esp + 0xc0], eax
mov byte [esp + 0x400], 0x2d
call fcn.0049ae2d
lea ecx, [esp + 0x16c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov eax, dword [esp + 0x114]
and eax, 0xffffff04
or eax, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ebp
jne 0x4940b2
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x10c], eax
lea ecx, [esp + 0x10c]
push ecx
push str.clnk
lea edx, [esp + 0x354]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x2f
call fcn.0049b3a3
movsx ecx, byte [eax + 8]
cmp ecx, 7
ja case.0x4940fc.0
jmp dword [ecx*4 + 0x494bd4]
cmp dword [eax], ebp
setne al
jmp 0x494138
fldz
fcomp qword [eax]
fnstsw ax
test ah, 0x44
jnp case.0x4940fc.0
mov al, 1
jmp 0x494138
mov al, byte [eax]
jmp 0x494138
mov eax, dword [eax]
cmp eax, ebp
je case.0x4940fc.0
cmp byte [eax], 0
je case.0x4940fc.0
mov al, 1
jmp 0x494138
mov eax, dword [eax]
cmp dword [eax + 0x1c], ebp
setne al
jmp 0x494138
xor al, al
movzx ecx, al
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0x34c]
call fcn.0049ae2d
lea ecx, [esp + 0x10c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov edx, dword [esp + 0x194]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x194], edx
mov dword [esp + 0x198], ebp
jne 0x4941a5
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x18c]
push eax
push str.Islnk
lea ecx, [esp + 0x2d4]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x30
call fcn.0049b3a3
movsx ecx, byte [eax + 8]
cmp ecx, 7
ja case.0x4941ef.396
jmp dword [ecx*4 + 0x494bf4]
cmp dword [eax], ebp
setne al
jmp 0x49422b
fldz
fcomp qword [eax]
fnstsw ax
test ah, 0x44
jnp case.0x4941ef.396
mov al, 1
jmp 0x49422b
mov al, byte [eax]
jmp 0x49422b
mov eax, dword [eax]
cmp eax, ebp
je case.0x4941ef.396
cmp byte [eax], 0
je case.0x4941ef.396
mov al, 1
jmp 0x49422b
mov edx, dword [eax]
cmp dword [edx + 0x1c], ebp
setne al
jmp 0x49422b
xor al, al
movzx eax, al
lea ecx, [esp + 0x2cc]
mov dword [esp + 0xd4], eax
call fcn.0049ae2d
lea ecx, [esp + 0x18c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov ecx, dword [esp + 0x1f4]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], ebp
jne 0x494298
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x1ec], eax
lea ecx, [esp + 0x1ec]
push ecx
push str.readonly
lea edx, [esp + 0x334]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x31
call fcn.0049b3a3
movsx ecx, byte [eax + 8]
cmp ecx, 7
ja case.0x4942e2.0
jmp dword [ecx*4 + 0x494c14]
cmp dword [eax], ebp
setne al
jmp 0x49431e
fldz
fcomp qword [eax]
fnstsw ax
test ah, 0x44
jnp case.0x4942e2.0
mov al, 1
jmp 0x49431e
mov al, byte [eax]
jmp 0x49431e
mov eax, dword [eax]
cmp eax, ebp
je case.0x4942e2.0
cmp byte [eax], 0
je case.0x4942e2.0
mov al, 1
jmp 0x49431e
mov eax, dword [eax]
cmp dword [eax + 0x1c], ebp
setne al
jmp 0x49431e
xor al, al
movzx ecx, al
mov dword [esp + 0xd8], ecx
lea ecx, [esp + 0x32c]
call fcn.0049ae2d
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov edx, dword [esp + 0x1b4]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x1b4], edx
mov dword [esp + 0x1b8], ebp
jne 0x49438b
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x1ac], eax
lea eax, [esp + 0x1ac]
push eax
push str.browsertype
lea ecx, [esp + 0x2f4]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x32
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x400], 0x33
call fcn.0049af32
lea ecx, [esp + 0x2ec]
mov dword [esp + 0xdc], eax
mov byte [esp + 0x400], 0x32
call fcn.0049ae2d
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov edx, dword [esp + 0x124]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], ebp
jne 0x49444d
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x11c]
push eax
push str.lnkname
lea ecx, [esp + 0x274]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x34
call fcn.0049b3a3
mov byte [esp + 0x400], 0x35
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc0]
call fcn.004025a0
lea ecx, [esp + 0x26c]
mov byte [esp + 0x400], 0x34
call fcn.0049ae2d
lea ecx, [esp + 0x11c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov edx, dword [esp + 0x144]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x144], edx
mov dword [esp + 0x148], ebp
jne 0x494510
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x13c], eax
lea eax, [esp + 0x13c]
push eax
push str.installinterval
lea ecx, [esp + 0x284]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x36
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x400], 0x37
call fcn.0049af32
lea ecx, [esp + 0x27c]
mov dword [esp + 0xc4], eax
mov byte [esp + 0x400], 0x36
call fcn.0049ae2d
lea ecx, [esp + 0x13c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov edx, dword [esp + 0x164]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x164], edx
mov dword [esp + 0x168], ebp
jne 0x4945d2
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x15c]
push eax
push str.startparam
lea ecx, [esp + 0x2a4]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x38
call fcn.0049b3a3
mov byte [esp + 0x400], 0x39
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xd4]
call fcn.004025a0
lea ecx, [esp + 0x29c]
mov byte [esp + 0x400], 0x38
call fcn.0049ae2d
lea ecx, [esp + 0x15c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
mov edx, dword [esp + 0x54]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebp
jne 0x49468c
or dword [0x550cec], edi
push 0x51a30c
mov dword [0x550cdc], esi
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
push str.bstart
lea ecx, [esp + 0x1c4]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x40c], 0x3a
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x400], 0x3b
call fcn.0049af32
mov ebx, eax
lea ecx, [esp + 0x1bc]
mov dword [esp + 0xcc], ebx
mov byte [esp + 0x400], 0x3a
call fcn.0049ae2d
lea ecx, [esp + 0x4c]
mov byte [esp + 0x400], 0x26
call fcn.0049ae2d
call fcn.00491110
mov esi, dword [eax + 0xc]
cmp esi, ebp
lea edi, [eax + 4]
jl 0x49496c
lea eax, [esi + 1]
call fcn.00494db0
mov ecx, dword [esp + 0xb0]
lea esi, [esi + esi*2]
shl esi, 4
add esi, dword [edi + 4]
lea eax, [ecx - 0x10]
mov edi, dword [esi]
sub edi, 0x10
cmp eax, edi
je 0x494785
cmp dword [edi + 0xc], 0
lea ebp, [edi + 0xc]
jl 0x494779
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x494779
push eax
call fcn.00403680
mov dword [esp + 0x4c], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x49476e
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x48]
add ecx, 0x10
mov dword [esi], ecx
jmp 0x494785
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00403570
lea edx, [esp + 0xb4]
lea ecx, [esi + 4]
push edx
call fcn.00403060
lea eax, [esp + 0xb8]
lea ecx, [esi + 8]
push eax
call fcn.00403060
lea edx, [esp + 0xbc]
lea ecx, [esi + 0xc]
push edx
call fcn.00403060
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc8]
mov dword [esi + 0x10], eax
lea eax, [esp + 0xd0]
mov dword [esi + 0x14], ecx
lea ecx, [esi + 0x20]
push eax
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ebx
call fcn.00403060
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], eax
lea esi, [esp + 0xb0]
mov dword [esp + 0x48], 1
call fcn.00491b70
mov eax, dword [esp + 0x40]
mov byte [esp + 0x400], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49483d
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x400], 0x1d
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x494865
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x88]
call fcn.00403a10
lea edi, [esp + 0x60]
call fcn.00403a10
mov eax, dword [esp + 0x44]
mov byte [esp + 0x400], 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49489f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x400], 0x13
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4948c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x400], 0xa
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4948ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x74]
call fcn.00403a10
mov byte [esp + 0x400], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x494920
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc dword [esp + 0x5c]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x40c]
xor edi, edi
jmp 0x492b80
cmp dword [esp + 0x48], edi
jne 0x494971
lea ecx, [esp + 0xf4]
mov byte [esp + 0x400], 4
call fcn.0049ae2d
mov ebx, dword [esp + 0x9c]
inc ebx
jmp 0x492a18
push 0x80004005
call fcn.00401ff0
call fcn.00403620
call fcn.004c0ab7
mov ecx, dword [esp + 0x54]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
jne 0x4949b0
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push 0x52280c
call eax
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x4c]
push ecx
push str.DelayDownTime
lea edx, [esp + 0x1c4]
mov bl, 0x3c
push edx
lea ecx, [esp + 0x100]
mov byte [esp + 0x40c], bl
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x400], 0x3d
call fcn.0049af32
mov ecx, dword [esp + 0x418]
mov dword [ecx], eax
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x400], bl
call fcn.0049ae2d
lea ecx, [esp + 0x4c]
mov byte [esp + 0x400], 5
call fcn.0049ae2d
mov edx, dword [esp + 0x54]
and edx, 0xffffff04
or edx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], edi
jne 0x494a6a
or dword [0x550cec], 1
push 0x51a30c
mov dword [0x550cdc], 0x5339e8
call fcn.004e088d
add esp, 4
mov ecx, dword [0x54cc58]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
push 0x52280c
call edx
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
push str.Slient
lea ecx, [esp + 0x1c4]
push ecx
mov bl, 0x3e
lea ecx, [esp + 0x100]
mov byte [esp + 0x40c], bl
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x400], 0x3f
call fcn.0049af32
mov edx, dword [esp + 0x41c]
lea ecx, [esp + 0x1bc]
mov dword [edx], eax
mov byte [esp + 0x400], bl
call fcn.0049ae2d
lea ecx, [esp + 0x4c]
mov byte [esp + 0x400], 5
call fcn.0049ae2d
lea ecx, [esp + 0xf4]
mov byte [esp + 0x400], 4
call fcn.0049ae2d
lea eax, [esp + 0x37c]
push eax
mov byte [esp + 0x404], 3
call fcn.0041fe30
lea ecx, [esp + 0x2c]
mov byte [esp + 0x400], 1
call fcn.0049ae2d
mov byte [esp + 0x400], 0
mov eax, dword [esp + 0x410]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x494b4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x400], 0xffffffff
mov eax, dword [esp + 0x414]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x494b78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3f0
ret 0x18