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

Disassembly:
push 0xffffffffffffffff
push 0x4a2301
mov eax, dword fs:[0]
push eax
sub esp, 0x3b4
mov eax, dword [0x4c8a00]
xor eax, esp
mov dword [esp + 0x3b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c8a00]
xor eax, esp
push eax
lea eax, [esp + 0x3c8]
mov dword fs:[0], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x3dc]
xor esi, esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x20], esi
call fcn.00423890
mov edi, eax
xor ebp, ebp
lea edx, [esp + 0x94]
mov dword [esp + 0x94], vtable.CBuffer_unsigned_char_.0
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], esi
cmp edi, edx
je 0x41225d
mov ebx, dword [edi + 4]
mov dword [esp + 0x98], esi
test ebx, ebx
jbe 0x41225d
push ebx
call fcn.0044d207
mov ecx, dword [edi + 8]
mov ebp, eax
mov eax, dword [edi + 4]
add esp, 4
push eax
push ecx
mov esi, ebx
push ebp
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], esi
call fcn.0046ca60
mov edi, dword [edi + 0xc]
add esp, 0xc
mov dword [esp + 0xa0], esi
cmp edi, esi
ja 0x41225d
mov dword [esp + 0xa0], edi
xor eax, eax
mov dword [esp + 0x3d0], eax
cmp esi, eax
jne 0x412271
cmp ebp, eax
jmp 0x413c25
jbe 0x41227c
add byte [eax + ebp], 0x64
inc eax
cmp eax, esi
jb 0x412273
xor eax, eax
xor ebx, ebx
lea edi, [esi + 1]
mov dword [esp + 0xcc], vtable.CBuffer_unsigned_char_.0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], eax
cmp edi, eax
je 0x4122c2
jbe 0x4122b2
push edi
call fcn.0044d207
add esp, 4
mov ebx, eax
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd0], edi
push edi
push 0
push ebx
mov byte [esp + 0x3dc], 1
call fcn.00470d40
add esp, 0xc
push esi
push ebp
push ebx
call fcn.00479280
mov eax, ebx
add esp, 0xc
mov dword [esp + 0x330], 0xf
mov dword [esp + 0x32c], 0
mov byte [esp + 0x31c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412304
sub eax, edx
push eax
push ebx
lea ecx, [esp + 0x320]
call fcn.00414d90
xor esi, esi
mov byte [esp + 0x3d0], 2
cmp dword [esp + 0x32c], esi
jne 0x412376
cmp dword [esp + 0x330], 0x10
jb 0x412348
mov edx, dword [esp + 0x31c]
push edx
call fcn.0044d212
add esp, 4
mov dword [esp + 0x330], 0xf
mov dword [esp + 0x32c], esi
mov byte [esp + 0x31c], 0
cmp ebx, esi
je 0x41236f
push ebx
call fcn.0044d212
add esp, 4
cmp ebp, esi
jmp 0x413c25
lea ecx, [esp + 0x334]
call fcn.0042a710
push esi
lea ecx, [esp + 0xa8]
mov byte [esp + 0x3d4], 3
call fcn.00425bb0
push esi
lea ecx, [esp + 0x50]
mov byte [esp + 0x3d4], 4
call fcn.00425bb0
push 1
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x320]
push ecx
lea ecx, [esp + 0x340]
mov byte [esp + 0x3dc], 5
call fcn.0042a790
test al, al
jne 0x4124bf
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3d0], 4
call fcn.00426160
lea ecx, [esp + 0xa4]
mov byte [esp + 0x3d0], 3
call fcn.00426160
cmp dword [esp + 0x3bc], 0x10
jb 0x412416
mov edx, dword [esp + 0x3a8]
push edx
call fcn.0044d212
add esp, 4
cmp dword [esp + 0x38c], 0x10
mov edi, 0xf
mov dword [esp + 0x3bc], edi
mov dword [esp + 0x3b8], esi
mov byte [esp + 0x3a8], 0
jb 0x41244b
mov eax, dword [esp + 0x378]
push eax
call fcn.0044d212
add esp, 4
mov dword [esp + 0x388], esi
lea esi, [esp + 0x354]
mov dword [esp + 0x38c], edi
mov byte [esp + 0x378], 0
call fcn.00414cf0
mov ecx, dword [esp + 0x354]
push ecx
call fcn.0044d212
add esp, 4
lea esi, [esp + 0x334]
call fcn.00414c90
mov edx, dword [esp + 0x334]
push edx
call fcn.0044d212
add esp, 4
cmp dword [esp + 0x330], 0x10
jb 0x4124b3
mov eax, dword [esp + 0x31c]
push eax
call fcn.0044d212
add esp, 4
mov dword [esp + 0x330], edi
jmp 0x413c03
lea ecx, [esp + 0xa4]
call fcn.00426b30
test al, al
jne 0x41251b
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3d0], 4
call fcn.00426160
lea ecx, [esp + 0xa4]
mov byte [esp + 0x3d0], 3
call fcn.00426160
lea edi, [esp + 0x334]
call fcn.004072a0
cmp dword [esp + 0x330], 0x10
jb 0x413bf8
mov ecx, dword [esp + 0x31c]
push ecx
jmp 0x413bf0
lea edx, [esp + 0x29c]
push edx
call fcn.0041a0a0
push str.updatetipdatasv2
lea ecx, [esp + 0xa8]
mov byte [esp + 0x3d4], 6
mov dword [esp + 0x68], esi
call fcn.004267d0
mov ecx, eax
call fcn.00426550
test eax, eax
jle 0x413b98
mov eax, dword [esp + 0x64]
push eax
push str.updatetipdatasv2
lea ecx, [esp + 0xac]
call fcn.004267d0
mov ecx, eax
call fcn.00426600
push eax
lea ecx, [esp + 0x50]
call fcn.00426270
call fcn.0044d2b5
xor ecx, ecx
xor esi, esi
cmp eax, esi
setne cl
cmp ecx, esi
je 0x413caf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x4abc9e
lea ecx, [esp + 0x180]
mov byte [esp + 0x3d4], 7
call fcn.00425d90
lea ecx, [esp + 0x17c]
push ecx
push str.process
lea edx, [esp + 0x254]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 8
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 9
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x1c]
call fcn.00402020
lea ecx, [esp + 0x24c]
mov byte [esp + 0x3d0], 8
call fcn.00426160
lea ecx, [esp + 0x17c]
mov byte [esp + 0x3d0], 7
call fcn.00426160
mov dword [esp + 0x24], 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 + 0x28], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x3d0], 0xa
mov ebp, dword [esp + 0x18]
cmp dword [ebp - 0xc], 0
jl 0x4128a6
push 0x4ac0c0
push ebp
call fcn.0046c778
add esp, 8
test eax, eax
je 0x4128a0
sub eax, ebp
sar eax, 1
cmp eax, 0xffffffff
je 0x4128a0
cmp dword [ebp - 0xc], 0
jge 0x41267d
or esi, 0xffffffff
jmp 0x41269a
push 0x4ac0c0
push ebp
call fcn.0046c778
add esp, 8
test eax, eax
jne 0x412694
or esi, 0xffffffff
jmp 0x41269a
sub eax, ebp
sar eax, 1
mov esi, eax
push esi
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x20]
call fcn.00401e10
inc esi
push esi
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x3d8], 0xb
call fcn.00414440
mov byte [esp + 0x3d0], 0xc
mov eax, dword [eax]
lea esi, [eax - 0x10]
add ebp, 0xfffffff0
cmp esi, ebp
je 0x41277d
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x41276f
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x41276f
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x412714
cmp eax, dword [esi]
jne 0x412714
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41274f
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 0x413cb9
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.0046c7d9
add esp, 0x10
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x412766
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 0x41277d
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00402540
mov byte [esp + 0x3d0], 0xb
mov eax, dword [esp + 0xc8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4127a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x2c]
test edi, edi
jl 0x413cbe
mov eax, edi
inc eax
lea esi, [esp + 0x24]
call fcn.00416170
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc0]
lea ebx, [ecx + edi*4]
mov edi, dword [ebx]
lea esi, [eax - 0x10]
sub edi, 0x10
cmp esi, edi
je 0x412876
cmp dword [edi + 0xc], 0
jl 0x41286a
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x41286a
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41280f
cmp eax, dword [esi]
jne 0x41280f
mov ebp, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41284a
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 0x413cb9
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.0046c7d9
add esp, 0x10
lea eax, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x412863
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 0x412876
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00402540
mov byte [esp + 0x3d0], 0xa
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412641
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
jmp 0x412641
cmp dword [ebp - 0xc], 0
je 0x41291b
mov edi, dword [esp + 0x2c]
test edi, edi
jl 0x413cbe
mov eax, edi
inc eax
lea esi, [esp + 0x24]
call fcn.00416170
mov ebx, dword [esp + 0x28]
mov esi, dword [ebx + edi*4]
lea edi, [ebx + edi*4]
lea eax, [ebp - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x41291f
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41290f
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x41290f
push eax
call fcn.00402640
add esp, 4
mov dword [esp + 0x1c], eax
or edx, 0xffffffff
lock xadd dword [ebx], edx
dec edx
test edx, edx
jg 0x412904
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [edi], eax
jmp 0x41291b
mov eax, dword [ebp - 0xc]
push eax
push ebp
mov ecx, edi
call fcn.00402540
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
xor esi, esi
test edi, edi
jle 0x412959
test esi, esi
jl 0x413cbe
cmp esi, edi
jge 0x413cbe
mov eax, dword [ebx + esi*4]
push 0
push 0x4ab640
push eax
call fcn.0042ec80
add esp, 0xc
test eax, eax
jne 0x412ae0
inc esi
cmp esi, edi
jl 0x412929
xor esi, esi
mov dword [esp + 0x38], 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 + 0x3c], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], esi
mov byte [esp + 0x3d0], 0xd
call fcn.0044d2b5
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
je 0x413caf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push 0x4abc9e
lea ecx, [esp + 0x190]
mov byte [esp + 0x3d4], 0xe
call fcn.00425d90
lea ecx, [esp + 0x18c]
push ecx
push str.version
lea edx, [esp + 0x224]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0xf
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x10
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x18]
call fcn.00402020
lea ecx, [esp + 0x21c]
mov byte [esp + 0x3d0], 0xf
call fcn.00426160
lea ecx, [esp + 0x18c]
mov byte [esp + 0x3d0], 0xe
call fcn.00426160
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], esi
jl 0x412cf1
mov ecx, eax
push 0x4ac0c0
push ecx
call fcn.0046c778
add esp, 8
test eax, eax
je 0x412cf1
sub eax, dword [esp + 0x14]
sar eax, 1
mov dword [esp + 0x1c], eax
cmp eax, 0xffffffff
je 0x412cf1
mov esi, dword [esp + 0x1c]
push esi
lea edx, [esp + 0xbc]
push edx
lea ecx, [esp + 0x1c]
call fcn.00401e10
inc esi
push esi
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3d8], 0x11
call fcn.00414440
mov byte [esp + 0x3d0], 0x12
mov eax, dword [eax]
mov edi, dword [esp + 0x14]
lea esi, [eax - 0x10]
lea ebp, [edi - 0x10]
cmp esi, ebp
je 0x412b9a
cmp dword [ebp + 0xc], 0
lea ebx, [ebp + 0xc]
jl 0x412b88
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x412b88
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x412b2d
cmp eax, dword [esi]
jne 0x412b2d
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x412b68
mov byte [esp + 0x3d0], 7
test ebx, ebx
je 0x412b1d
xor esi, esi
mov edi, edi
mov eax, dword [ebx + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412b0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, edi
jl 0x412af0
push ebx
call fcn.0044d212
add esp, 4
mov byte [esp + 0x3d0], 6
lea eax, [ebp - 0x10]
jmp 0x413b48
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 0x413cb9
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.0046c7d9
add esp, 0x10
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x412b7f
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
add edi, 0x10
mov dword [esp + 0x14], edi
jmp 0x412b9a
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402540
mov edi, dword [esp + 0x14]
mov byte [esp + 0x3d0], 0x11
mov eax, dword [esp + 0xc4]
add eax, 0xfffffff0
or esi, 0xffffffff
lea ecx, [eax + 0xc]
mov edx, esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412bc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [edi - 0xc], 0
jge 0x412bd3
mov dword [esp + 0x1c], esi
jmp 0x412bf3
push 0x4ac0c0
push edi
call fcn.0046c778
add esp, 8
test eax, eax
jne 0x412beb
mov dword [esp + 0x1c], esi
jmp 0x412bf3
sub eax, edi
sar eax, 1
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x40]
test edi, edi
jl 0x413cbe
mov eax, edi
inc eax
lea esi, [esp + 0x38]
call fcn.00416170
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xb8]
lea ebx, [ecx + edi*4]
mov edi, dword [ebx]
lea esi, [eax - 0x10]
sub edi, 0x10
cmp esi, edi
je 0x412cc5
cmp dword [edi + 0xc], 0
jl 0x412cb9
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x412cb9
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x412c5e
cmp eax, dword [esi]
jne 0x412c5e
mov ebp, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x412c99
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 0x413cb9
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.0046c7d9
add esp, 0x10
lea eax, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x412cb2
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 0x412cc5
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00402540
mov byte [esp + 0x3d0], 0xe
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412ce6
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
cmp dword [esp + 0x1c], 0xffffffff
jne 0x412a57
mov ebp, dword [esp + 0x14]
cmp dword [ebp - 0xc], 0
je 0x412d65
mov edi, dword [esp + 0x40]
test edi, edi
jl 0x413cbe
lea eax, [edi + 1]
lea esi, [esp + 0x38]
call fcn.00416170
mov ebx, dword [esp + 0x3c]
mov esi, dword [ebx + edi*4]
lea edi, [ebx + edi*4]
lea eax, [ebp - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x412d69
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x412dc6
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x412dc6
push eax
call fcn.00402640
add esp, 4
mov ebx, eax
or edx, 0xffffffff
lock xadd dword [ebp], edx
dec edx
test edx, edx
jg 0x412d60
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0x10
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor esi, esi
test ebp, ebp
jle 0x412def
mov edi, dword [esp + 0x60]
test esi, esi
jl 0x413cbe
cmp esi, ebp
jge 0x413cbe
mov ecx, dword [edi + 0x2f4]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x413caf
mov eax, dword [ebx + esi*4]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x412dd8
test dx, dx
je 0x412dc2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x412dd8
add eax, 4
add ecx, 4
test dx, dx
jne 0x412da0
xor eax, eax
jmp 0x412ddd
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00402540
jmp 0x412d69
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x412ed1
inc esi
cmp esi, ebp
jl 0x412d77
call fcn.0044d2b5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x413caf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
push 0x4abc9e
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x3d4], 0x13
call fcn.00425d90
lea ecx, [esp + 0x1ac]
push ecx
push str.area
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x14
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x15
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x20]
call fcn.00402020
lea ecx, [esp + 0x23c]
mov byte [esp + 0x3d0], 0x14
call fcn.00426160
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x3d0], 0x13
call fcn.00426160
mov ebp, dword [esp + 0x1c]
push ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add ebp, 0xfffffff0
mov dword [esp + 0x24], esp
mov edi, esp
call edx
cmp dword [ebp + 0xc], 0
lea edx, [ebp + 0xc]
jl 0x412f84
cmp eax, dword [ebp]
jne 0x412f84
mov esi, ebp
mov eax, 1
lock xadd dword [edx], eax
jmp 0x412fbf
mov byte [esp + 0x3d0], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412ef9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x3d0], 0xa
test ebx, ebx
je 0x412f34
xor esi, esi
mov eax, dword [ebx + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412f26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebp
jl 0x412f07
push ebx
call fcn.0044d212
add esp, 4
mov byte [esp + 0x3d0], 7
mov edi, dword [esp + 0x28]
test edi, edi
je 0x413b39
mov ebx, dword [esp + 0x2c]
xor esi, esi
test ebx, ebx
jle 0x412f76
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412f71
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x412f52
push edi
call fcn.0044d212
add esp, 4
jmp 0x413b39
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
test esi, esi
je 0x413cb9
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.0046c7d9
add esp, 0x10
lea edx, [esp + 0x2a0]
add esi, 0x10
push edx
mov dword [edi], esi
call fcn.0041c150
test eax, eax
je 0x4130c2
mov byte [esp + 0x3d0], 0xe
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412ffb
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov byte [esp + 0x3d0], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413023
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x3d0], 0xa
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x41306d
mov ebx, dword [esp + 0x40]
xor esi, esi
test ebx, ebx
jle 0x413064
lea ecx, [ecx]
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41305f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x413040
push edi
call fcn.0044d212
add esp, 4
mov byte [esp + 0x3d0], 7
mov edi, dword [esp + 0x28]
test edi, edi
je 0x413b39
mov ebx, dword [esp + 0x2c]
xor esi, esi
test ebx, ebx
jle 0x4130b4
jmp 0x413090
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4130af
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x413090
push edi
call fcn.0044d212
add esp, 4
jmp 0x413b39
lea esi, [esp + 0x68]
call fcn.00413cd0
push 0
lea ecx, [esp + 0x100]
call fcn.00425cd0
lea ecx, [esp + 0xfc]
push ecx
push str.type
lea edx, [esp + 0x284]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x17
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x18
call fcn.00426370
lea ecx, [esp + 0x27c]
mov dword [esp + 0x68], eax
mov byte [esp + 0x3d0], 0x17
call fcn.00426160
lea ecx, [esp + 0xfc]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
push 0
lea ecx, [esp + 0x170]
call fcn.00425cd0
lea eax, [esp + 0x16c]
push eax
push str.createlnk
lea ecx, [esp + 0x1c4]
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x19
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x1a
call fcn.00426370
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x6c], eax
mov byte [esp + 0x3d0], 0x19
call fcn.00426160
lea ecx, [esp + 0x16c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
push 0
lea ecx, [esp + 0x160]
call fcn.00425cd0
lea edx, [esp + 0x15c]
push edx
push str.open
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x1b
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x1c
call fcn.00426370
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x70], eax
mov byte [esp + 0x3d0], 0x1b
call fcn.00426160
lea ecx, [esp + 0x15c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
push 0
lea ecx, [esp + 0x120]
call fcn.00425cd0
lea ecx, [esp + 0x11c]
push ecx
mov byte [esp + 0x3d4], 0x1d
push 0x4ad040
lea edx, [esp + 0x264]
push edx
lea ecx, [esp + 0x58]
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x1e
call fcn.00426370
lea ecx, [esp + 0x25c]
mov dword [esp + 0x74], eax
mov byte [esp + 0x3d0], 0x1d
call fcn.00426160
lea ecx, [esp + 0x11c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
push 0
lea ecx, [esp + 0x1a0]
call fcn.00425cd0
lea eax, [esp + 0x19c]
push eax
push 0x4ad044
lea ecx, [esp + 0x214]
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x1f
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x20
call fcn.00426370
mov esi, eax
lea ecx, [esp + 0x20c]
mov dword [esp + 0x78], esi
mov byte [esp + 0x3d0], 0x1f
call fcn.00426160
lea ecx, [esp + 0x19c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
mov edi, dword [esp + 0x60]
cmp esi, dword [edi + 0x3ec]
jg 0x4133f2
lea esi, [esp + 0x68]
call fcn.00411ea0
mov byte [esp + 0x3d0], 0xe
lea edx, [ebp + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x413333
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov byte [esp + 0x3d0], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41335b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x3d0], 0xa
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x4133a2
mov ebx, dword [esp + 0x40]
xor esi, esi
test ebx, ebx
jle 0x413399
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413394
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x413375
push edi
call fcn.0044d212
add esp, 4
mov byte [esp + 0x3d0], 7
mov edi, dword [esp + 0x28]
test edi, edi
je 0x413b39
mov ebx, dword [esp + 0x2c]
xor esi, esi
test ebx, ebx
jle 0x4133e4
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4133df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x4133c0
push edi
call fcn.0044d212
add esp, 4
jmp 0x413b39
push 0x4abc9e
lea ecx, [esp + 0x140]
call fcn.00425d90
lea ecx, [esp + 0x13c]
push ecx
push str.show
lea edx, [esp + 0x294]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x21
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x22
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x80]
call fcn.00402020
lea ecx, [esp + 0x28c]
mov byte [esp + 0x3d0], 0x21
call fcn.00426160
lea ecx, [esp + 0x13c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
mov eax, dword [esp + 0x7c]
cmp dword [eax - 0xc], 0
jne 0x413572
lea esi, [esp + 0x68]
call fcn.00411ea0
mov byte [esp + 0x3d0], 0xe
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4134a6
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
mov byte [esp + 0x3d0], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4134ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x3d0], 0xa
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x41351d
mov ebx, dword [esp + 0x40]
xor esi, esi
test ebx, ebx
jle 0x413514
jmp 0x4134f0
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41350f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x4134f0
push edi
call fcn.0044d212
add esp, 4
mov byte [esp + 0x3d0], 7
mov edi, dword [esp + 0x28]
test edi, edi
je 0x413b39
mov ebx, dword [esp + 0x2c]
xor esi, esi
test ebx, ebx
jle 0x413564
jmp 0x413540
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41355f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x413540
push edi
call fcn.0044d212
add esp, 4
jmp 0x413b39
push 0x4abc9e
lea ecx, [esp + 0xe0]
call fcn.00425d90
lea ecx, [esp + 0xdc]
push ecx
push str.lnkname
lea edx, [esp + 0x234]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x23
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x24
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x84]
call fcn.00402020
lea ecx, [esp + 0x22c]
mov byte [esp + 0x3d0], 0x23
call fcn.00426160
lea ecx, [esp + 0xdc]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
push 0x4abc9e
lea ecx, [esp + 0xf0]
call fcn.00425d90
lea eax, [esp + 0xec]
push eax
push 0x4ac100
lea ecx, [esp + 0x274]
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x25
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x26
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x88]
call fcn.00402020
lea ecx, [esp + 0x26c]
mov byte [esp + 0x3d0], 0x25
call fcn.00426160
lea ecx, [esp + 0xec]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
mov edx, dword [esp + 0x84]
cmp dword [edx - 0xc], 0
jne 0x413763
lea esi, [esp + 0x68]
call fcn.00411ea0
mov byte [esp + 0x3d0], 0xe
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4136a4
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov byte [esp + 0x3d0], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4136cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x3d0], 0xa
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x413713
mov ebx, dword [esp + 0x40]
xor esi, esi
test ebx, ebx
jle 0x41370a
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413705
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x4136e6
push edi
call fcn.0044d212
add esp, 4
mov byte [esp + 0x3d0], 7
mov edi, dword [esp + 0x28]
test edi, edi
je 0x413b39
mov ebx, dword [esp + 0x2c]
xor esi, esi
test ebx, ebx
jle 0x413755
mov eax, dword [edi + esi*4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413750
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebx
jl 0x413731
push edi
call fcn.0044d212
add esp, 4
jmp 0x413b39
push 0x4abc9e
lea ecx, [esp + 0x110]
call fcn.00425d90
lea ecx, [esp + 0x10c]
push ecx
push str.sico
lea edx, [esp + 0x1d4]
push edx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x27
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x28
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x8c]
call fcn.00402020
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x3d0], 0x27
call fcn.00426160
lea ecx, [esp + 0x10c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
push 0x4abc9e
lea ecx, [esp + 0x130]
call fcn.00425d90
lea eax, [esp + 0x12c]
push eax
push 0x4ad060
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x29
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x2a
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x90]
call fcn.00402020
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x3d0], 0x29
call fcn.00426160
lea ecx, [esp + 0x12c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
mov edx, dword [esp + 0x8c]
cmp dword [edx - 0xc], 0
jne 0x413879
push 3
push 0x4ad064
lea ecx, [esp + 0x94]
call fcn.00402540
push 0x4abc9e
lea ecx, [esp + 0x150]
call fcn.00425d90
lea eax, [esp + 0x14c]
push eax
push 0x4ac10c
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x3dc], 0x2b
call fcn.00426a80
mov ecx, eax
mov byte [esp + 0x3d0], 0x2c
call fcn.0043d8c0
push eax
lea ecx, [esp + 0x94]
call fcn.00402020
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x3d0], 0x2b
call fcn.00426160
lea ecx, [esp + 0x14c]
mov byte [esp + 0x3d0], 0x16
call fcn.00426160
mov esi, dword [edi + 0x3e0]
add edi, 0x3d8
test esi, esi
jl 0x413cbe
lea eax, [esi + 1]
call fcn.00415e90
imul esi, esi, 0x2c
add esi, dword [edi + 4]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esi], edx
mov edx, dword [esp + 0x74]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esi + 0x10], eax
lea ebx, [esi + 0x14]
mov dword [esi + 0xc], edx
mov edi, dword [ebx]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x413994
cmp dword [edi + 0xc], 0
jl 0x413988
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x413988
push eax
call fcn.00402640
mov dword [esp + 0x24], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41397d
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x413994
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.00402540
mov ecx, dword [esp + 0x80]
mov edi, dword [esi + 0x18]
lea ebx, [esi + 0x18]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x4139f4
cmp dword [edi + 0xc], 0
jl 0x4139e8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4139e8
push eax
call fcn.00402640
mov dword [esp + 0x24], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4139dd
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x4139f4
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.00402540
mov ecx, dword [esp + 0x84]
mov edi, dword [esi + 0x1c]
lea ebx, [esi + 0x1c]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x413a54
cmp dword [edi + 0xc], 0
jl 0x413a48
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x413a48
push eax
call fcn.00402640
mov dword [esp + 0x24], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413a3d
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x413a54
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.00402540
mov ecx, dword [esp + 0x88]
mov edi, dword [esi + 0x20]
lea ebx, [esi + 0x20]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x413ab4
cmp dword [edi + 0xc], 0
jl 0x413aa8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x413aa8
push eax
call fcn.00402640
mov dword [esp + 0x24], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413a9d
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [ebx], ecx
jmp 0x413ab4
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.00402540
lea edx, [esp + 0x8c]
lea ecx, [esi + 0x24]
push edx
call fcn.00402260
lea eax, [esp + 0x90]
lea ecx, [esi + 0x28]
push eax
call fcn.00402260
lea esi, [esp + 0x68]
call fcn.00411ea0
mov byte [esp + 0x3d0], 0xe
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413aff
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
mov byte [esp + 0x3d0], 0xd
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413b27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x38]
call fcn.004159d0
lea edi, [esp + 0x24]
call fcn.004159d0
mov byte [esp + 0x3d0], 6
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413b61
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x64]
inc esi
push str.updatetipdatasv2
lea ecx, [esp + 0xa8]
mov dword [esp + 0x68], esi
call fcn.004267d0
mov ecx, eax
call fcn.00426550
cmp esi, eax
jl 0x412554
mov ebx, dword [esp + 0xd4]
mov ebp, dword [esp + 0x9c]
lea ecx, [esp + 0x29c]
push ecx
mov byte [esp + 0x3d4], 5
call fcn.0041a160
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3d0], 4
call fcn.00426160
lea ecx, [esp + 0xa4]
mov byte [esp + 0x3d0], 3
call fcn.00426160
lea edi, [esp + 0x334]
call fcn.004072a0
cmp dword [esp + 0x330], 0x10
jb 0x413bf8
mov edx, dword [esp + 0x31c]
push edx
call fcn.0044d212
add esp, 4
mov dword [esp + 0x330], 0xf
mov dword [esp + 0x32c], 0
mov byte [esp + 0x31c], 0
test ebx, ebx
je 0x413c23
push ebx
call fcn.0044d212
add esp, 4
test ebp, ebp
mov dword [esp + 0x3d0], 0xffffffff
je 0x413c3b
push ebp
call fcn.0044d212
add esp, 4
mov eax, dword [esp + 0x60]
cmp dword [eax + 0x3e0], 0
jle 0x413c5b
mov eax, dword [eax + 0x20]
push 0
push 0
push 0x7fa
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov esi, dword [esp + 0xbc]
xor ecx, ecx
push ecx
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], 0
mov word [esi + 4], cx
push 0x4ab640
mov ecx, esi
call fcn.00414ff0
mov eax, esi
mov ecx, dword [esp + 0x3c8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3b0]
xor ecx, esp
call fcn.0046c016
add esp, 0x3c0
ret 8
push 0x80004005
call fcn.004010b0
call fcn.00402780
call fcn.0044db4c
int3