Function at 0x49e9b0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a284f
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x4bf070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 4], 0
push 0
movq qword [ebp - 0x68], xmm0
push 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call fcn.0040ae10
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 1
call fcn.004067c0
mov dword [ebp - 0x38], 0x636f7250
mov word [ebp - 0x31], 0x694c
mov word [ebp - 0x34], 0x7365
mov word [ebp - 0x2f], 0x7473
mov byte [ebp - 0x32], 0x73
mov byte [ebp - 0x2d], 0
call fcn.0040c560
mov ecx, eax
test ecx, ecx
jne 0x49ea49
push 0x80004005
call fcn.0040c2a0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49ea5e
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x49ea60
call edx
add eax, 0x10
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x58]
push 0x4b7fa4
push eax
call fcn.0040ae40
mov eax, dword [ebp - 0x68]
add esp, 0xc
mov dword [ebp - 0x70], 0x3b7325
mov esi, dword [eax]
cmp esi, eax
je 0x49ebd4
mov eax, dword [esi + 8]
xorps xmm0, xmm0
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov dword [ebp - 0x48], eax
movq qword [ebp - 0x50], xmm0
mov eax, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x49eab5
call dword [eax + 0x10]
mov ecx, eax
cmp dword [edi + 0xc], 0
lea eax, [edi + 0xc]
jl 0x49eac7
cmp ecx, dword [edi]
jne 0x49eac7
lock inc dword [eax]
jmp 0x49eaf3
mov eax, dword [ecx]
lea ebx, [edi + 4]
push 1
push dword [ebx]
call dword [eax]
mov edi, eax
test edi, edi
je 0x49ec39
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
lea ecx, [edi + 0x10]
mov edx, dword [ebx]
inc edx
push edx
push dword [ebp - 0x48]
call fcn.0040c050
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 3
mov eax, dword [esi + 0xc]
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x49eb17
call dword [eax + 0x10]
mov ecx, eax
cmp dword [edi + 0xc], 0
lea eax, [edi + 0xc]
jl 0x49eb29
cmp ecx, dword [edi]
jne 0x49eb29
lock inc dword [eax]
jmp 0x49eb55
mov eax, dword [ecx]
lea ebx, [edi + 4]
push 1
push dword [ebx]
call dword [eax]
mov edi, eax
test edi, edi
je 0x49ec39
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
lea ecx, [edi + 0x10]
mov edx, dword [ebx]
inc edx
push edx
push dword [ebp - 0x48]
call fcn.0040c050
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x50]
call fcn.00406760
mov byte [ebp - 4], 5
push dword [eax]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0040bb80
mov byte [ebp - 4], 4
add esp, 0xc
mov ecx, dword [ebp - 0x54]
or eax, 0xffffffff
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x49ebbd
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49ebb9
mov eax, dword [edx + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [eax + 4]
call ebx
jmp 0x49ebbd
mov ecx, edx
call edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 2
call fcn.00406e30
mov esi, dword [esi]
cmp esi, dword [ebp - 0x68]
jne 0x49ea93
xorps xmm0, xmm0
push 0
movq qword [ebp - 0x60], xmm0
push 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
call fcn.0040ae10
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 6
call fcn.00407670
mov dword [ebp - 0x21], 0x694c6576
mov dword [ebp - 0x26], 0x6d655264
mov word [ebp - 0x1c], 0x74
mov word [ebp - 0x28], 0x6441
mov byte [ebp - 0x22], 0x6f
mov byte [ebp - 0x1d], 0x73
call fcn.0040c560
mov ecx, eax
test ecx, ecx
jne 0x49ec3e
push 0x80004005
call fcn.0040c2a0
call fcn.0040c1b0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49ec53
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x49ec55
call edx
add eax, 0x10
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x54]
push 0x4b7fa4
push eax
call fcn.0040ae40
mov eax, dword [ebp - 0x60]
add esp, 0xc
mov dword [ebp - 0x42], 0x3b732520
mov word [ebp - 0x44], 0x7325
mov byte [ebp - 0x3e], 0
mov esi, dword [eax]
cmp esi, eax
je 0x49ee2d
mov eax, dword [esi + 8]
xorps xmm0, xmm0
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov dword [ebp - 0x48], eax
movq qword [ebp - 0x50], xmm0
mov eax, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x49ecb4
call dword [eax + 0x10]
mov ecx, eax
cmp dword [edi + 0xc], 0
lea eax, [edi + 0xc]
jl 0x49ecc6
cmp ecx, dword [edi]
jne 0x49ecc6
lock inc dword [eax]
jmp 0x49ecf2
mov eax, dword [ecx]
lea ebx, [edi + 4]
push 1
push dword [ebx]
call dword [eax]
mov edi, eax
test edi, edi
je 0x49ec39
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
lea ecx, [edi + 0x10]
mov edx, dword [ebx]
inc edx
push edx
push dword [ebp - 0x48]
call fcn.0040c050
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 8
mov eax, dword [esi + 0xc]
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x49ed16
call dword [eax + 0x10]
mov ecx, eax
cmp dword [edi + 0xc], 0
lea eax, [edi + 0xc]
jl 0x49ed28
cmp ecx, dword [edi]
jne 0x49ed28
lock inc dword [eax]
jmp 0x49ed54
mov eax, dword [ecx]
lea ebx, [edi + 4]
push 1
push dword [ebx]
call dword [eax]
mov edi, eax
test edi, edi
je 0x49ec39
mov ecx, dword [ebx]
mov dword [edi + 4], ecx
lea ecx, [edi + 0x10]
mov edx, dword [ebx]
inc edx
push edx
push dword [ebp - 0x48]
call fcn.0040c050
add esp, 8
lea eax, [edi + 0x10]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x50]
call fcn.00406790
mov edi, eax
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x50]
call fcn.00406760
mov byte [ebp - 4], 0xb
push dword [edi]
push dword [eax]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0040bb80
mov byte [ebp - 4], 0xa
add esp, 0x10
mov edx, dword [ebp - 0x90]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49edd7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49edd5
mov eax, dword [ecx + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [eax + 4]
call ebx
jmp 0x49eddd
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 9
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x49ee16
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49ee12
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call ebx
jmp 0x49ee16
mov ecx, edx
call edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.00406e30
mov esi, dword [esi]
cmp esi, dword [ebp - 0x60]
jne 0x49ec92
call fcn.0040c560
mov ecx, eax
test ecx, ecx
jne 0x49ee42
push 0x80004005
call fcn.0040c2a0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49ee57
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x49ee59
call edx
add eax, 0x10
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x48]
mov edi, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x58]
push edi
push ebx
push dword [ebp + 8]
push str._s_r_n_s_r_n_r_n_s
push eax
call fcn.0040ae40
add esp, 0x14
lea ecx, [ebp - 0x48]
push 0x4b7fbc
push 0x4b7fc0
call fcn.00408f10
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x94], 0xf
mov dword [ebp - 0x98], 0
mov byte [ebp - 0xa8], 0
cmp byte [esi], 0
jne 0x49eeb8
xor ecx, ecx
jmp 0x49eec9
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49eec0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0xa8]
call fcn.00405710
lea edx, [ebp - 0xa8]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x88]
call fcn.00406380
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x94]
cmp eax, 0x10
jb 0x49ef3f
mov ecx, dword [ebp - 0xa8]
inc eax
cmp eax, 0x1000
jb 0x49ef36
test cl, 0x1f
je 0x49ef12
call fcn.0041acb1
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x49ef1e
call fcn.0041acb1
sub ecx, eax
cmp ecx, 4
jae 0x49ef2a
call fcn.0041acb1
cmp ecx, 0x23
jbe 0x49ef34
call fcn.0041acb1
mov ecx, eax
push ecx
call fcn.00415539
add esp, 4
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
mov ecx, esp
mov dword [ebp - 0x8c], esp
push eax
mov dword [ebp - 0x94], 0xf
mov dword [ebp - 0x98], 0
mov byte [ebp - 0xa8], 0
call fcn.0040bf20
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x10
call fcn.004135a0
mov byte [ebp - 4], 0xf
call fcn.0049d120
mov byte [ebp - 4], 0xc
add esp, 8
mov eax, dword [ebp - 0x74]
cmp eax, 0x10
jb 0x49efe3
mov ecx, dword [ebp - 0x88]
inc eax
cmp eax, 0x1000
jb 0x49efda
test cl, 0x1f
je 0x49efb6
call fcn.0041acb1
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x49efc2
call fcn.0041acb1
sub ecx, eax
cmp ecx, 4
jae 0x49efce
call fcn.0041acb1
cmp ecx, 0x23
jbe 0x49efd8
call fcn.0041acb1
mov ecx, eax
push ecx
call fcn.00415539
add esp, 4
mov dword [ebp - 0x74], 0xf
add esi, 0xfffffff0
mov dword [ebp - 0x78], 0
or eax, 0xffffffff
mov byte [ebp - 0x88], 0
mov byte [ebp - 4], 7
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x49f02f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49f02d
mov eax, dword [ecx + 4]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [eax + 4]
call esi
jmp 0x49f035
call edx
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 6
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x49f066
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49f064
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call esi
jmp 0x49f066
call edx
mov eax, dword [ebp - 0x60]
mov edi, dword [eax]
mov dword [eax], eax
mov dword [eax + 4], eax
cmp edi, eax
je 0x49f095
mov ebx, eax
mov esi, dword [edi]
lea ecx, [edi + 8]
call fcn.00406e30
push edi
call fcn.00415539
add esp, 4
mov edi, esi
cmp esi, ebx
jne 0x49f076
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
push eax
call fcn.00415539
add esp, 4
mov byte [ebp - 4], 1
add ebx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x49f0d3
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49f0d1
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x49f0d3
call edx
mov ebx, dword [ebp - 0x68]
mov edi, dword [ebx]
mov dword [ebx], ebx
mov dword [ebx + 4], ebx
cmp edi, ebx
je 0x49f0fa
mov esi, dword [edi]
lea ecx, [edi + 8]
call fcn.00406e30
push edi
call fcn.00415539
add esp, 4
mov edi, esi
cmp esi, ebx
jne 0x49f0e1
push 0x10
push 1
push ebx
call fcn.00405660
mov dword [ebp - 4], 0xffffffff
add esp, 0xc
mov ecx, dword [ebp + 8]
or eax, 0xffffffff
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x49f144
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x49f140
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x49f144
mov ecx, edx
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041553e
mov esp, ebp
pop ebp
ret