Function at 0x416e00
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5184dc
mov eax, dword fs:[0]
push eax
sub esp, 0x3c4
mov eax, dword [0x549950]
xor eax, esp
mov dword [esp + 0x3c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x549950]
xor eax, esp
push eax
lea eax, [esp + 0x3d8]
mov dword fs:[0], eax
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3ec]
xor ebx, ebx
mov dword [esp + 0x78], ebx
lea edi, [eax + 0x54]
xor esi, esi
lea edx, [esp + 0x50]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x50], vtable.CBuffer_unsigned_char_.0
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
cmp edi, edx
je 0x416ebd
mov ebp, dword [edi + 4]
mov dword [esp + 0x54], esi
cmp ebp, ebx
jbe 0x416ebd
push ebp
call fcn.004c015e
mov ecx, dword [edi + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x5c]
add esp, 4
push eax
push ecx
mov esi, ebp
push edx
mov dword [esp + 0x60], esi
call fcn.004e0fd0
mov edi, dword [edi + 0xc]
add esp, 0xc
mov dword [esp + 0x5c], esi
cmp edi, esi
ja 0x416ebd
mov dword [esp + 0x5c], edi
mov dword [esp + 0x3e0], ebx
cmp esi, ebx
je 0x41851c
xor eax, eax
cmp esi, ebx
jbe 0x416edf
mov ecx, dword [esp + 0x58]
add byte [ecx + eax], 0x64
inc eax
cmp eax, esi
jb 0x416ed6
xor ebp, ebp
lea edi, [esi + 1]
mov dword [esp + 0xd4], vtable.CBuffer_unsigned_char_.0
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xe0], ebx
cmp edi, ebx
je 0x416f27
xor eax, eax
cmp edi, ebx
jbe 0x416f17
push edi
call fcn.004c015e
add esp, 4
mov ebp, eax
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xd8], edi
push edi
push ebx
push ebp
mov byte [esp + 0x3ec], 1
call fcn.004e57c0
mov eax, dword [esp + 0x64]
add esp, 0xc
push esi
push eax
push ebp
call fcn.004e9720
mov eax, ebp
add esp, 0xc
mov dword [esp + 0x340], 0xf
mov dword [esp + 0x33c], ebx
mov byte [esp + 0x32c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416f68
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x330]
call fcn.004014f0
mov byte [esp + 0x3e0], 2
cmp dword [esp + 0x33c], ebx
jne 0x416fab
cmp dword [esp + 0x340], 0x10
jb 0x4184f5
mov ecx, dword [esp + 0x32c]
push ecx
jmp 0x4184ed
push 4
call fcn.004c0124
add esp, 4
cmp eax, ebx
je 0x416fc4
lea edx, [esp + 0x344]
mov dword [eax], edx
jmp 0x416fc6
xor eax, eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x354], ebx
mov dword [esp + 0x358], ebx
mov dword [esp + 0x35c], ebx
mov dword [esp + 0x360], ebx
push 4
mov byte [esp + 0x3e4], 3
call fcn.004c0124
add esp, 4
cmp eax, ebx
je 0x41700a
lea ecx, [esp + 0x364]
mov dword [eax], ecx
jmp 0x41700c
xor eax, eax
mov esi, 0xf
mov dword [esp + 0x364], eax
mov dword [esp + 0x374], ebx
mov dword [esp + 0x378], ebx
mov dword [esp + 0x37c], ebx
mov dword [esp + 0x380], ebx
mov dword [esp + 0x39c], esi
mov dword [esp + 0x398], ebx
mov byte [esp + 0x388], 0
mov dword [esp + 0x3cc], esi
mov dword [esp + 0x3c8], ebx
mov byte [esp + 0x3b8], 0
mov byte [esp + 0x3d0], 1
mov byte [esp + 0x3d1], 0
mov eax, 0xfffffe00
and dword [esp + 0x84], eax
mov dword [esp + 0x88], ebx
and dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebx
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x330]
push edx
lea ecx, [esp + 0x390]
mov byte [esp + 0x3ec], 0xa
call fcn.00401310
cmp dword [esp + 0x39c], 0x10
mov eax, dword [esp + 0x388]
jae 0x4170c2
lea eax, [esp + 0x388]
mov ecx, dword [esp + 0x398]
lea edx, [esp + 0x7c]
push edx
add ecx, eax
push ecx
push eax
lea edi, [esp + 0x350]
call fcn.0049c235
test al, al
jne 0x41712f
lea ecx, [esp + 0x24]
mov byte [esp + 0x3e0], 7
call fcn.0049ae2d
lea ecx, [esp + 0x7c]
mov byte [esp + 0x3e0], 4
call fcn.0049ae2d
call fcn.004023c0
cmp dword [esp + 0x340], 0x10
jb 0x417123
mov eax, dword [esp + 0x32c]
push eax
call fcn.004c0153
add esp, 4
mov dword [esp + 0x340], esi
jmp 0x418500
mov al, byte [esp + 0x84]
test al, al
je 0x417192
cmp al, 7
je 0x417192
lea ecx, [esp + 0x24]
mov byte [esp + 0x3e0], 7
call fcn.0049ae2d
lea ecx, [esp + 0x7c]
mov byte [esp + 0x3e0], 4
call fcn.0049ae2d
lea edi, [esp + 0x344]
call fcn.004023c0
cmp dword [esp + 0x340], 0x10
jb 0x417123
mov ecx, dword [esp + 0x32c]
push ecx
call fcn.004c0153
add esp, 4
mov dword [esp + 0x340], esi
jmp 0x418500
lea edx, [esp + 0x2ac]
push edx
call fcn.0041fd70
xor edi, edi
mov byte [esp + 0x3e0], 0xb
mov dword [esp + 0x60], edi
lea ecx, [ecx]
push str.updatetipdatasv2
lea eax, [esp + 0x80]
push eax
call fcn.0049b1dd
movsx ecx, byte [eax + 8]
cmp ecx, 7
ja case.0x4171cb.128
jmp dword [ecx*4 + 0x4185a8]
mov eax, dword [eax]
cmp dword [eax + 0x1c], ebx
je case.0x4171cb.128
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
lea esi, [esp + 0x90]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
call fcn.0049baa8
mov eax, dword [esp + 0x90]
cmp eax, ebx
jne 0x417221
call fcn.004df604
xor eax, eax
mov esi, dword [esp + 0x94]
cmp esi, dword [eax + 0x18]
jne 0x41721b
call fcn.004df604
mov eax, dword [esi + 0x14]
inc eax
jmp 0x41722e
mov eax, dword [eax]
jmp 0x41720a
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1c]
jmp 0x41722e
xor eax, eax
cmp edi, eax
jge 0x418498
push str.updatetipdatasv2
lea edx, [esp + 0x80]
push edx
call fcn.0049b1dd
push edi
push eax
call fcn.0049b0be
push eax
lea esi, [esp + 0x28]
call fcn.0049aeb2
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x418484
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 + 0x3e0], 0xc
mov ecx, dword [esp + 0x1bc]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], ebx
jne 0x4172cd
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 + 0x1b4], eax
lea ecx, [esp + 0x1b4]
push ecx
push str.process
lea edx, [esp + 0x264]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0xd
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0xe
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x20]
call fcn.004025a0
lea ecx, [esp + 0x25c]
mov byte [esp + 0x3e0], 0xd
call fcn.0049ae2d
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x3e0], 0xc
call fcn.0049ae2d
mov dword [esp + 0x3c], 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 + 0x40], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebx
mov byte [esp + 0x3e0], 0xf
mov ebx, dword [esp + 0x1c]
mov edi, edi
cmp dword [ebx - 0xc], 0
mov ebp, dword [esp + 0x44]
jl 0x41758c
push 0x522768
push ebx
call fcn.004dfd90
add esp, 8
test eax, eax
je 0x417586
sub eax, ebx
sar eax, 1
cmp eax, 0xffffffff
je 0x417586
cmp dword [ebx - 0xc], 0
jge 0x4173ac
or esi, 0xffffffff
jmp 0x4173c9
push 0x522768
push ebx
call fcn.004dfd90
add esp, 8
test eax, eax
jne 0x4173c3
or esi, 0xffffffff
jmp 0x4173c9
sub eax, ebx
sar eax, 1
mov esi, eax
push esi
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x24]
call fcn.00402800
inc esi
push esi
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x3e8], 0x10
call fcn.00402750
mov byte [esp + 0x3e0], 0x11
mov eax, dword [eax]
lea esi, [eax - 0x10]
lea ebp, [ebx - 0x10]
cmp esi, ebp
je 0x4174b0
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x41749e
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x41749e
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x417443
cmp eax, dword [esi]
jne 0x417443
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41747e
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 0x41848e
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 0x417495
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
lea ebx, [edi + 0x10]
mov dword [esp + 0x1c], ebx
jmp 0x4174b0
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.00403570
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x3e0], 0x10
mov eax, dword [esp + 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x44]
test edi, edi
jl 0x418493
mov eax, edi
inc eax
lea esi, [esp + 0x3c]
call fcn.00403bc0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x9c]
mov esi, dword [ecx + edi*4]
lea ebp, [ecx + edi*4]
lea edi, [eax - 0x10]
sub esi, 0x10
cmp edi, esi
je 0x41755c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41754c
mov edx, dword [edi]
cmp edx, dword [esi]
jne 0x41754c
push edi
call fcn.00403680
mov dword [esp + 0x24], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x417540
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [ebp], ecx
jmp 0x417558
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebp
call fcn.00403570
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x3e0], 0xf
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x417370
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
jmp 0x417370
cmp dword [ebx - 0xc], 0
je 0x4175b7
test ebp, ebp
jl 0x418493
lea eax, [ebp + 1]
lea esi, [esp + 0x3c]
call fcn.00403bc0
mov edi, dword [esp + 0x40]
lea edx, [esp + 0x1c]
lea ecx, [edi + ebp*4]
push edx
call fcn.00403060
mov ebp, dword [esp + 0x44]
jmp 0x4175bb
mov edi, dword [esp + 0x40]
xor esi, esi
test ebp, ebp
jle 0x4175ea
test esi, esi
jl 0x418493
cmp esi, ebp
jge 0x418493
mov eax, dword [edi + esi*4]
push eax
call fcn.0049e12d
add esp, 4
test eax, eax
jne 0x4177bc
inc esi
cmp esi, ebp
jl 0x4175c1
xor esi, esi
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x64], 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 + 0x68], ebp
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], edi
mov byte [esp + 0x3e0], 0x12
call fcn.004c01dc
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
je 0x418484
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 + 0x3e0], 0x13
mov ecx, dword [esp + 0x16c]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], esi
jne 0x417684
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 + 0x164], eax
lea ecx, [esp + 0x164]
push ecx
push str.version
lea edx, [esp + 0x234]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x14
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x15
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
call fcn.004025a0
lea ecx, [esp + 0x22c]
mov byte [esp + 0x3e0], 0x14
call fcn.0049ae2d
lea ecx, [esp + 0x164]
mov byte [esp + 0x3e0], 0x13
call fcn.0049ae2d
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], esi
jl 0x41799a
mov ecx, eax
push 0x522768
push ecx
call fcn.004dfd90
add esp, 8
test eax, eax
je 0x41799a
sub eax, dword [esp + 0x18]
sar eax, 1
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x41799a
mov esi, dword [esp + 0x20]
push esi
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0x20]
call fcn.00402800
inc esi
push esi
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x3e8], 0x16
call fcn.00402750
mov byte [esp + 0x3e0], 0x17
mov eax, dword [eax]
mov edi, dword [esp + 0x18]
lea esi, [eax - 0x10]
lea ebp, [edi - 0x10]
cmp esi, ebp
je 0x417842
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x417830
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x417830
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4177d5
cmp eax, dword [esi]
jne 0x4177d5
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x417810
lea edi, [esp + 0x3c]
call fcn.00403a10
mov byte [esp + 0x3e0], 0xb
lea eax, [ebx - 0x10]
jmp 0x418455
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 0x41848e
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 0x417827
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 0x417842
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00403570
mov edi, dword [esp + 0x18]
mov byte [esp + 0x3e0], 0x16
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
or esi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41786f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [edi - 0xc], 0
jge 0x41787b
mov dword [esp + 0x20], esi
jmp 0x41789b
push 0x522768
push edi
call fcn.004dfd90
add esp, 8
test eax, eax
jne 0x417893
mov dword [esp + 0x20], esi
jmp 0x41789b
sub eax, edi
sar eax, 1
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x6c]
test edi, edi
jl 0x418493
lea eax, [edi + 1]
lea esi, [esp + 0x64]
call fcn.00403bc0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
lea ebx, [ecx + edi*4]
mov edi, dword [ebx]
lea esi, [eax - 0x10]
sub edi, 0x10
cmp esi, edi
je 0x417966
cmp dword [edi + 0xc], 0
jl 0x41795a
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x41795a
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4178ff
cmp eax, dword [esi]
jne 0x4178ff
mov ebp, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41793a
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 0x41848e
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 0x417953
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 0x417966
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00403570
mov byte [esp + 0x3e0], 0x13
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417987
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
cmp dword [esp + 0x20], 0xffffffff
jne 0x417739
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
xor ebx, ebx
cmp dword [ecx - 0xc], ebx
je 0x4179cf
cmp edi, ebx
jl 0x418493
lea eax, [edi + 1]
lea esi, [esp + 0x64]
call fcn.00403bc0
mov ebp, dword [esp + 0x68]
lea edx, [esp + 0x18]
lea ecx, [ebp + edi*4]
push edx
call fcn.00403060
mov edi, dword [esp + 0x6c]
xor esi, esi
cmp edi, ebx
jle 0x417a3f
cmp esi, ebx
jl 0x418493
cmp esi, edi
jge 0x418493
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x268]
xor eax, eax
cmp ecx, ebx
setne al
cmp eax, ebx
je 0x418484
mov eax, dword [ebp + esi*4]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x417a28
cmp dx, bx
je 0x417a24
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x417a28
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x417a02
xor eax, eax
jmp 0x417a2d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
test al, al
jne 0x41840c
inc esi
cmp esi, edi
jl 0x4179d5
call fcn.004c01dc
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x418484
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 + 0x3e0], 0x18
mov ecx, dword [esp + 0x15c]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], ebx
jne 0x417ab3
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 + 0x154], eax
lea ecx, [esp + 0x154]
push ecx
push str.area
lea edx, [esp + 0x254]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x19
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x1a
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x24]
call fcn.004025a0
lea ecx, [esp + 0x24c]
mov byte [esp + 0x3e0], 0x19
call fcn.0049ae2d
lea ecx, [esp + 0x154]
mov byte [esp + 0x3e0], 0x18
call fcn.0049ae2d
mov ebp, dword [esp + 0x20]
push ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add ebp, 0xfffffff0
mov dword [esp + 0x1cc], esp
mov edi, esp
call edx
cmp dword [ebp + 0xc], ebx
lea edx, [ebp + 0xc]
jl 0x417b65
cmp eax, dword [ebp]
jne 0x417b65
mov esi, ebp
mov eax, 1
lock xadd dword [edx], eax
jmp 0x417ba0
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 0x41848e
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [ebp + 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 + 0x2b0]
add esi, 0x10
push edx
mov dword [edi], esi
call fcn.00420580
cmp eax, ebx
jne 0x4183ea
lea esi, [esp + 0xa8]
call fcn.004185d0
mov ecx, dword [esp + 0x19c]
and ecx, 0xffffff01
mov edi, 1
or ecx, edi
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x194], ebx
lea edx, [esp + 0x194]
push edx
push str.type
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x1c
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x3e0], 0x1d
call fcn.0049af32
lea ecx, [esp + 0x28c]
mov dword [esp + 0xa8], eax
mov byte [esp + 0x3e0], 0x1c
call fcn.0049ae2d
lea ecx, [esp + 0x194]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov ecx, dword [esp + 0x11c]
and ecx, 0xffffff01
or ecx, edi
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x114], ebx
lea edx, [esp + 0x114]
push edx
push str.createlnk
lea eax, [esp + 0x1d4]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x1e
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x3e0], 0x1f
call fcn.0049af32
lea ecx, [esp + 0x1cc]
mov dword [esp + 0xac], eax
mov byte [esp + 0x3e0], 0x1e
call fcn.0049ae2d
lea ecx, [esp + 0x114]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov ecx, dword [esp + 0x1ac]
and ecx, 0xffffff01
or ecx, edi
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1a4], ebx
lea edx, [esp + 0x1a4]
push edx
push str.open
lea eax, [esp + 0x204]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x20
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x3e0], 0x21
call fcn.0049af32
lea ecx, [esp + 0x1fc]
mov dword [esp + 0xb0], eax
mov byte [esp + 0x3e0], 0x20
call fcn.0049ae2d
mov byte [esp + 0x3e0], 0x1b
lea ecx, [esp + 0x1a4]
call fcn.0049ae2d
mov ecx, dword [esp + 0x13c]
and ecx, 0xffffff01
or ecx, edi
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x134], ebx
lea edx, [esp + 0x134]
push edx
push 0x52cf18
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x22
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x3e0], 0x23
call fcn.0049af32
lea ecx, [esp + 0x26c]
mov dword [esp + 0xb4], eax
mov byte [esp + 0x3e0], 0x22
call fcn.0049ae2d
lea ecx, [esp + 0x134]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov ecx, dword [esp + 0x18c]
and ecx, 0xffffff01
or ecx, edi
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x184], ebx
lea edx, [esp + 0x184]
push edx
push 0x52cf1c
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x24
call fcn.0049b3a3
mov ecx, eax
mov byte [esp + 0x3e0], 0x25
call fcn.0049af32
mov esi, eax
lea ecx, [esp + 0x21c]
mov dword [esp + 0xb8], esi
mov byte [esp + 0x3e0], 0x24
call fcn.0049ae2d
lea ecx, [esp + 0x184]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0x454]
jg 0x417ea7
lea esi, [esp + 0xa8]
call fcn.00416b30
mov byte [esp + 0x3e0], 0x13
lea edx, [ebp + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jmp 0x4183ff
mov ecx, dword [esp + 0xec]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], ebx
mov esi, vtable.Json::DefaultValueAllocator.0
jne 0x417eef
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 + 0xe4], eax
lea ecx, [esp + 0xe4]
push ecx
push str.show
lea edx, [esp + 0x2a4]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x26
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x27
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc0]
call fcn.004025a0
lea ecx, [esp + 0x29c]
mov byte [esp + 0x3e0], 0x26
call fcn.0049ae2d
lea ecx, [esp + 0xe4]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov eax, dword [esp + 0xbc]
cmp dword [eax - 0xc], ebx
jne 0x417fb2
lea esi, [esp + 0xa8]
call fcn.00416b30
mov byte [esp + 0x3e0], 0x13
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41840c
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
jmp 0x41840c
mov ecx, dword [esp + 0xfc]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], ebx
jne 0x417ff5
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 + 0xf4], eax
lea ecx, [esp + 0xf4]
push ecx
push str.lnkname
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x28
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x29
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc4]
call fcn.004025a0
lea ecx, [esp + 0x23c]
mov byte [esp + 0x3e0], 0x28
call fcn.0049ae2d
lea ecx, [esp + 0xf4]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov eax, dword [esp + 0x10c]
and eax, 0xffffff04
or eax, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], ebx
jne 0x4180b6
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 + 0x104], eax
lea ecx, [esp + 0x104]
push ecx
push 0x52283c
lea edx, [esp + 0x284]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x2a
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x2b
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc8]
call fcn.004025a0
lea ecx, [esp + 0x27c]
mov byte [esp + 0x3e0], 0x2a
call fcn.0049ae2d
lea ecx, [esp + 0x104]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov eax, dword [esp + 0xc4]
cmp dword [eax - 0xc], ebx
je 0x417f7b
mov ecx, dword [esp + 0x12c]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], ebx
jne 0x418189
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 + 0x124], eax
lea ecx, [esp + 0x124]
push ecx
push str.sico
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x2c
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x2d
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xcc]
call fcn.004025a0
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x3e0], 0x2c
call fcn.0049ae2d
lea ecx, [esp + 0x124]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov eax, dword [esp + 0x14c]
and eax, 0xffffff04
or eax, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], ebx
jne 0x41824a
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 + 0x144], eax
lea ecx, [esp + 0x144]
push ecx
push 0x52cf38
lea edx, [esp + 0x1f4]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x2e
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x2f
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xd0]
call fcn.004025a0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x3e0], 0x2e
call fcn.0049ae2d
lea ecx, [esp + 0x144]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov eax, dword [esp + 0xcc]
cmp dword [eax - 0xc], ebx
jne 0x4182e9
push 3
push 0x52cf3c
lea ecx, [esp + 0xd4]
call fcn.00403570
mov ecx, dword [esp + 0x17c]
and ecx, 0xffffff04
or ecx, 0x104
test byte [0x550cec], 1
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], ebx
jne 0x41832c
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 + 0x174], eax
lea ecx, [esp + 0x174]
push ecx
push 0x522848
lea edx, [esp + 0x214]
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x3ec], 0x30
call fcn.0049b3a3
mov byte [esp + 0x3e0], 0x31
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xd4]
call fcn.004025a0
lea ecx, [esp + 0x20c]
mov byte [esp + 0x3e0], 0x30
call fcn.0049ae2d
lea ecx, [esp + 0x174]
mov byte [esp + 0x3e0], 0x1b
call fcn.0049ae2d
mov edi, dword [esp + 0x38]
mov esi, dword [edi + 0x448]
add edi, 0x440
cmp esi, ebx
jl 0x418493
lea eax, [esi + 1]
call fcn.0041b230
imul esi, esi, 0x2c
add esi, dword [edi + 4]
lea eax, [esp + 0xa8]
call fcn.0041b510
lea esi, [esp + 0xa8]
call fcn.00416b30
or ecx, 0xffffffff
lea eax, [ebp + 0xc]
mov byte [esp + 0x3e0], 0x13
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41840c
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov byte [esp + 0x3e0], 0x12
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 0x418434
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x64]
call fcn.00403a10
lea edi, [esp + 0x3c]
call fcn.00403a10
mov byte [esp + 0x3e0], 0xb
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 0x41846e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc dword [esp + 0x60]
mov ebp, dword [esp + 0xdc]
mov edi, dword [esp + 0x60]
xor ebx, ebx
jmp 0x4171b0
push 0x80004005
call fcn.00401ff0
call fcn.00403620
call fcn.004c0ab7
lea ecx, [esp + 0x2ac]
push ecx
mov byte [esp + 0x3e4], 0xa
call fcn.0041fe30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3e0], 7
call fcn.0049ae2d
lea ecx, [esp + 0x7c]
mov byte [esp + 0x3e0], 4
call fcn.0049ae2d
lea edi, [esp + 0x344]
call fcn.004023c0
cmp dword [esp + 0x340], 0x10
jb 0x4184f5
mov edx, dword [esp + 0x32c]
push edx
call fcn.004c0153
add esp, 4
mov dword [esp + 0x340], 0xf
mov byte [esp + 0x32c], 0
mov dword [esp + 0x33c], ebx
cmp ebp, ebx
je 0x41851c
push ebp
call fcn.004c0153
add esp, 4
mov dword [esp + 0x3e0], 0xffffffff
mov eax, dword [esp + 0x58]
cmp eax, ebx
je 0x418538
push eax
call fcn.004c0153
add esp, 4
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x448], ebx
jle 0x418555
mov eax, dword [eax + 0x20]
push ebx
push ebx
push 0x7fa
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov esi, dword [esp + 0xa4]
xor ecx, ecx
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
push ebx
mov word [esi + 4], cx
push 0x522764
mov ecx, esi
call fcn.00401740
mov eax, esi
mov ecx, dword [esp + 0x3d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c0]
xor ecx, esp
call fcn.004df2ac
add esp, 0x3d0
ret 8