Function at 0x51f330
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x528673
push eax
mov dword fs:[0], esp
sub esp, 0x1f8
push ebx
push esi
push edi
test cl, cl
je 0x51f552
call fcn.00420480
mov ecx, eax
test ecx, ecx
jne 0x51f36e
push 0x80004005
call fcn.00420020
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x51f383
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x51f385
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0
mov ecx, 1
mov dword [ebp - 0xf4], 1
mov dword [ebp - 0x18], 0x104
mov dword [ebp - 0x2a], 0x6e616d6d
mov word [ebp - 0x33], 0x5c6c
mov dword [ebp - 0x30], 0x5c6e6570
mov word [ebp - 0x26], 0x64
mov dword [ebp - 0x3c], 0x70747468
mov dword [ebp - 0x37], 0x6c656873
mov word [ebp - 0x2c], 0x6f63
mov byte [ebp - 0x31], 0x6f
mov byte [ebp - 0x38], 0x5c
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x51f3fd
push 0x104
lea ecx, [ebp - 0x14]
call fcn.0041fd60
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x18]
mov ecx, 0x80000000
push eax
push esi
lea eax, [ebp - 0xf4]
push eax
push 0x545d74
lea edx, [ebp - 0x3c]
call fcn.0052fbf0
push dword [esi - 8]
push esi
call fcn.00469a19
add esp, 0x18
test eax, eax
js 0x51f548
cmp eax, dword [esi - 8]
jg 0x51f548
mov dword [esi - 0xc], eax
lea ecx, [ebp - 0x14]
mov byte [eax + esi], 0
call fcn.00411c00
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x5c], 0x45524946
mov byte [ebp - 0x58], 0
cmp dword [esi - 0xc], 0
jl 0x51f477
lea eax, [ebp - 0x5c]
push eax
push esi
call fcn.00469139
add esp, 8
test eax, eax
je 0x51f477
sub eax, esi
js 0x51f477
mov edi, 2
jmp 0x51f4ec
mov word [ebp - 0x8c], 0x4843
mov dword [ebp - 0x89], 0x454d4f
mov byte [ebp - 0x8a], 0x52
cmp dword [esi - 0xc], 0
jl 0x51f4b6
lea eax, [ebp - 0x8c]
push eax
push esi
call fcn.00469139
add esp, 8
test eax, eax
je 0x51f4b6
sub eax, esi
js 0x51f4b6
mov edi, 1
jmp 0x51f4ec
mov word [ebp - 0x4c], 0x4549
mov byte [ebp - 0x4a], 0
cmp dword [esi - 0xc], 0
jl 0x51f9a2
lea eax, [ebp - 0x4c]
push eax
push esi
call fcn.00469139
add esp, 8
test eax, eax
je 0x51f9a2
sub eax, esi
js 0x51f9a2
mov edi, 3
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x51f535
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x51f533
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edx
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00420020
call fcn.00420480
mov ecx, eax
test ecx, ecx
jne 0x51f567
push 0x80004005
call fcn.00420020
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x51f57c
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x51f57e
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 1
lea eax, [ebp - 0x200]
push 0x104
push 0
push eax
mov dword [ebp - 0x54], 1
mov dword [ebp - 0xf4], 0x104
mov dword [ebp - 0xaa], 0x6f684372
mov dword [ebp - 0xde], 0x6e69575c
mov word [ebp - 0xe3], 0x736f
mov word [ebp - 0xc1], 0x6c72
mov word [ebp - 0xd2], 0x6c6c
mov word [ebp - 0xf0], 0x6f53
mov word [ebp - 0xe6], 0x6369
mov dword [ebp - 0xda], 0x73776f64
mov dword [ebp - 0xed], 0x72617774
mov dword [ebp - 0xc6], 0x5c736e6f
mov word [ebp - 0xce], 0x7373
mov word [ebp - 0xd5], 0x6853
mov dword [ebp - 0xa6], 0x656369
mov dword [ebp - 0xbf], 0x6f737341
mov dword [ebp - 0xb2], 0x70747468
mov dword [ebp - 0xbb], 0x74616963
mov dword [ebp - 0xb7], 0x736e6f69
mov word [ebp - 0xcb], 0x6963
mov byte [ebp - 0xe4], 0x72
mov word [ebp - 0xe1], 0x666f
mov word [ebp - 0xc8], 0x6974
mov word [ebp - 0xd0], 0x415c
mov word [ebp - 0xe9], 0x5c65
mov dword [ebp - 0xae], 0x6573555c
mov byte [ebp - 0xdf], 0x74
mov byte [ebp - 0xcc], 0x6f
mov byte [ebp - 0xd6], 0x5c
mov byte [ebp - 0xc2], 0x55
mov byte [ebp - 0xd3], 0x65
mov byte [ebp - 0xee], 0x66
mov byte [ebp - 0xb3], 0x5c
mov byte [ebp - 0xc9], 0x61
mov byte [ebp - 0xe7], 0x4d
call fcn.00443110
add esp, 0xc
lea ecx, [ebp - 0x200]
call fcn.005297e0
call fcn.00420480
mov ecx, eax
test ecx, ecx
jne 0x51f6f2
push 0x80004005
call fcn.00420020
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x51f707
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x51f709
call edx
add eax, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x200]
mov dword [ebp - 0x7c], 0x255c7325
push eax
lea eax, [ebp - 0x7c]
mov word [ebp - 0x78], 0x73
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00419930
mov word [ebp - 0x94], 0x7250
mov ecx, 1
mov dword [ebp - 0x91], 0x646967
add esp, 0x10
mov byte [ebp - 0x92], 0x6f
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x51f77c
push 0x104
lea ecx, [ebp - 0x14]
call fcn.0041fd60
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0xf4]
push eax
push esi
lea eax, [ebp - 0x54]
mov edx, edi
push eax
lea eax, [ebp - 0x94]
mov ecx, 0x80000003
push eax
call fcn.0052fbf0
push dword [esi - 8]
push esi
call fcn.00469a19
add esp, 0x18
test eax, eax
js 0x51f548
cmp eax, dword [esi - 8]
jg 0x51f548
mov dword [esi - 0xc], eax
lea ecx, [ebp - 0x14]
mov byte [eax + esi], 0
call fcn.00411c00
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x64], 0x45524946
mov byte [ebp - 0x60], 0
cmp dword [esi - 0xc], 0
jl 0x51f7fd
lea eax, [ebp - 0x64]
push eax
push esi
call fcn.00469139
add esp, 8
test eax, eax
je 0x51f7fd
sub eax, esi
js 0x51f7fd
mov ebx, 2
jmp 0x51f901
mov dword [ebp - 0x9b], 0x4d4f5248
mov word [ebp - 0x97], 0x45
mov byte [ebp - 0x9c], 0x43
cmp dword [esi - 0xc], 0
jl 0x51f83f
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.00469139
add esp, 8
test eax, eax
je 0x51f83f
sub eax, esi
js 0x51f83f
mov ebx, 1
jmp 0x51f901
mov word [ebp - 0x4f], 0x45
mov byte [ebp - 0x50], 0x49
cmp dword [esi - 0xc], 0
jl 0x51f86e
lea eax, [ebp - 0x50]
push eax
push esi
call fcn.00469139
add esp, 8
test eax, eax
je 0x51f86e
sub eax, esi
js 0x51f86e
mov ebx, 3
jmp 0x51f901
push ecx
lea eax, [ebp - 0x48]
mov word [ebp - 0x3e], 0x454d
push eax
lea ecx, [ebp - 0x14]
mov word [ebp - 0x2a], 0x5950
mov dword [ebp - 0x27], 0x563852
mov dword [ebp - 0x35], 0x46304533
mov dword [ebp - 0x43], 0x56454630
mov dword [ebp - 0x47], 0x51585050
mov dword [ebp - 0x2f], 0x45503741
mov word [ebp - 0x31], 0x5142
mov word [ebp - 0x3b], 0x5950
mov word [ebp - 0x38], 0x3236
mov byte [ebp - 0x28], 0x4b
mov byte [ebp - 0x3f], 0x5a
mov byte [ebp - 0x3c], 0x32
mov byte [ebp - 0x48], 0x41
mov byte [ebp - 0x2b], 0x41
mov byte [ebp - 0x39], 0x53
mov byte [ebp - 0x36], 0x4e
call fcn.00411c60
test eax, eax
jns 0x51f8fc
push ecx
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], 0x45474445
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 0x68], 0
call fcn.00411c60
test eax, eax
js 0x51f99a
mov ebx, 4
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 1
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x51f941
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x14]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x51f93c
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x51f941
mov ecx, edx
call dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x51f987
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x51f985
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edx
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x18]
call fcn.0041ffd0
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.0041ffd0
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x73], 0x707474
mov byte [ebp - 0x74], 0x68
call fcn.00529490
test eax, eax
jne 0x51fa19
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x13], 0x73707474
mov byte [ebp - 0x14], 0x68
mov byte [ebp - 0xf], al
call fcn.00529490
test eax, eax
jne 0x51fa19
lea ecx, [ebp - 0x20]
mov word [ebp - 0x1d], 0x6d
mov word [ebp - 0x20], 0x682e
mov byte [ebp - 0x1e], 0x74
call fcn.00529490
test eax, eax
jne 0x51fa19
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0x6d74682e
mov word [ebp - 0x80], 0x6c
call fcn.00529490
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret