Function at 0x5b6200
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6573fc
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x6cd05c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x90], ebx
call fcn.0045dea5
push dword [ebx + 0xb0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0x80
push dword [ebx + 0x20]
call esi
push dword [ebx + 0xb0]
push 0
push 0x80
push dword [ebx + 0x20]
call esi
push 0
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
mov edi, eax
push 1
push 0xf020
push edi
call esi
push 1
push 0xf030
push edi
call esi
push 1
push 0xf060
push edi
call esi
push dword [0x6e89c4]
mov ecx, ebx
call fcn.00456b17
mov edx, 0x6984a0
lea ecx, [ebp - 0xa0]
call fcn.00405a10
mov dword [ebp - 4], 0
lea eax, [ebp - 0xa0]
push dword [0x6e89c4]
push eax
call fcn.00403fc0
add esp, 8
mov ecx, ebx
push dword [ebp - 0xa0]
push 0x3ea
call fcn.00456705
mov ecx, eax
call fcn.00456b17
mov edx, 0x6984e0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 1
mov ecx, ebx
push dword [eax]
push 0x3eb
call fcn.00456705
mov ecx, eax
call fcn.00456b17
mov byte [ebp - 4], 0
or edi, 0xffffffff
mov ecx, dword [ebp - 0x8c]
mov eax, edi
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x5b6380
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edx, dword [eax + 4]
mov dword [ebp - 0x88], edx
mov edx, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6378
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x90]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b636e
push 0
push dword [edx + 4]
call esi
jmp 0x5b6380
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6380
mov ecx, edx
call dword [ebp - 0x88]
mov edx, 0x6985c0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 2
mov ecx, ebx
push dword [eax]
push 0x3ec
call fcn.00456705
mov ecx, eax
call fcn.00456b17
mov byte [ebp - 4], 0
mov eax, edi
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b63ed
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b63e9
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b63e9
push 0
push dword [edx + 4]
call esi
jmp 0x5b63ed
mov ecx, edx
call edi
push dword [0x6e89c4]
mov ecx, ebx
push 0x47e
call fcn.00456705
mov ecx, eax
call fcn.00456b17
movsd xmm0, qword [0x6e8648]
sub esp, 8
mulsd xmm0, qword [0x6abaf8]
movsd qword [ebp - 0x98], xmm0
fld qword [ebp - 0x98]
fstp qword [esp]
call fcn.0059b320
add esp, 8
mov esi, dword [sym.imp.GDI32.dll_CreateFontW]
fstp qword [ebp - 0x98]
cvttsd2si eax, qword [ebp - 0x98]
lea edi, [ebx + 0xb4]
push 0x6982c4
push 2
push 0
push 0
push 0
push 0xff
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push eax
call esi
push eax
mov ecx, edi
call fcn.00458379
movsd xmm0, qword [0x6e8648]
sub esp, 8
mulsd xmm0, qword [0x6abb00]
movsd qword [ebp - 0x98], xmm0
fld qword [ebp - 0x98]
fstp qword [esp]
call fcn.0059b320
add esp, 8
fstp qword [ebp - 0x98]
cvttsd2si eax, qword [ebp - 0x98]
push 0x6985d8
push 2
push 0
push 0
push 0
push 0xff
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push eax
call esi
push eax
lea ecx, [ebx + 0xbc]
call fcn.00458379
mov edx, 0x698620
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 3
lea ecx, [ebx + 0xd60]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6552
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b654e
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b654e
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [edx + 4]
call esi
jmp 0x5b6558
mov ecx, edx
call esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
jne 0x5b6560
xor eax, eax
jmp 0x5b6563
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xd80]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x6988e0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 4
lea ecx, [ebx + 0xdf0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6600
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b65f8
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x90]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b65ee
push 0
push dword [edx + 4]
call esi
jmp 0x5b6600
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6600
mov ecx, edx
call dword [ebp - 0x88]
test edi, edi
jne 0x5b6608
xor eax, eax
jmp 0x5b660b
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xe10]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x698ea0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 5
lea ecx, [ebx + 0xe80]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b66a8
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b66a0
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x90]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6696
push 0
push dword [edx + 4]
call esi
jmp 0x5b66a8
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b66a8
mov ecx, edx
call dword [ebp - 0x88]
test edi, edi
jne 0x5b66b0
xor eax, eax
jmp 0x5b66b3
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xea0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699090
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 6
lea ecx, [ebx + 0x4f0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6750
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6748
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b673e
push 0
push dword [edx + 4]
call esi
jmp 0x5b6750
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6750
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x510]
mov dword [ebx + 0x57c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6777
xor eax, eax
jmp 0x5b677a
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x510]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699170
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 7
lea ecx, [ebx + 0x580]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6817
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b680f
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6805
push 0
push dword [edx + 4]
call esi
jmp 0x5b6817
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6817
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x5a0]
mov dword [ebx + 0x60c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b683e
xor eax, eax
jmp 0x5b6841
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x5a0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699260
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 8
lea ecx, [ebx + 0x610]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b68de
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b68d6
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b68cc
push 0
push dword [edx + 4]
call esi
jmp 0x5b68de
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b68de
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x630]
mov dword [ebx + 0x69c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6905
xor eax, eax
jmp 0x5b6908
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x630]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x6992c0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 9
lea ecx, [ebx + 0x6a0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b69a5
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b699d
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6993
push 0
push dword [edx + 4]
call esi
jmp 0x5b69a5
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b69a5
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x6c0]
mov dword [ebx + 0x72c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b69cc
xor eax, eax
jmp 0x5b69cf
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x6c0]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0xf0]
lea esi, [ebx + 0xd0]
mov dword [esi + 0x80], 0xdb9357
mov dword [esi + 0x84], 0xdb9357
mov dword [esi + 0x88], 0xdb9357
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5b6a21
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, 0x699320
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0xa
mov ecx, esi
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6aae
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6aa6
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6a9c
mov eax, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [edx + 4]
call eax
jmp 0x5b6aae
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6aae
mov ecx, edx
call dword [ebp - 0x88]
push ecx
mov edx, 0x699350
mov ecx, esp
call fcn.00405a10
mov ecx, esi
call fcn.005b0c40
call fcn.0045d3be
push 0x7f89
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [esi + 0xb0], eax
test eax, eax
jne 0x5b6ae5
mov ecx, esi
call fcn.005b0740
cmp dword [esi + 0x94], 1
je 0x5b6b2d
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5b6b23
lea eax, [esi + 0xa0]
test eax, eax
je 0x5b6b08
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [esi + 0x94], 1
mov edx, 0x6993c0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0xb
lea ecx, [ebx + 0x730]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6b99
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6b95
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6b95
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [edx + 4]
call esi
jmp 0x5b6b9f
mov ecx, edx
call esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x105
push 0
push 0
push dword [ebx + 0x750]
mov dword [ebx + 0x7bc], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6bc6
xor eax, eax
jmp 0x5b6bc9
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x750]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699430
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0xc
lea ecx, [ebx + 0x7c0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6c66
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6c5e
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6c54
push 0
push dword [edx + 4]
call esi
jmp 0x5b6c66
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6c66
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x7e0]
mov dword [ebx + 0x84c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6c8d
xor eax, eax
jmp 0x5b6c90
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x7e0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699520
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0xd
lea ecx, [ebx + 0x850]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6d2d
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6d25
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6d1b
push 0
push dword [edx + 4]
call esi
jmp 0x5b6d2d
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6d2d
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x870]
mov dword [ebx + 0x8dc], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6d54
xor eax, eax
jmp 0x5b6d57
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x870]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699610
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0xe
lea ecx, [ebx + 0x8e0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6df4
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6dec
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6de2
push 0
push dword [edx + 4]
call esi
jmp 0x5b6df4
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6df4
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x900]
mov dword [ebx + 0x96c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6e1b
xor eax, eax
jmp 0x5b6e1e
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x900]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x6996f0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0xf
lea ecx, [ebx + 0x970]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6ebb
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6eb3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6ea9
push 0
push dword [edx + 4]
call esi
jmp 0x5b6ebb
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6ebb
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0x990]
mov dword [ebx + 0x9fc], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6ee2
xor eax, eax
jmp 0x5b6ee5
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0x990]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x6997e0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x10
lea ecx, [ebx + 0xa00]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b6f82
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b6f7a
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b6f70
push 0
push dword [edx + 4]
call esi
jmp 0x5b6f82
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b6f82
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0xa20]
mov dword [ebx + 0xa8c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b6fa9
xor eax, eax
jmp 0x5b6fac
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xa20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x6998d0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x11
lea ecx, [ebx + 0xa90]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b7049
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b7041
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b7037
push 0
push dword [edx + 4]
call esi
jmp 0x5b7049
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b7049
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0xab0]
mov dword [ebx + 0xb1c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b7070
xor eax, eax
jmp 0x5b7073
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xab0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699940
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x12
lea ecx, [ebx + 0xb20]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b7110
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b7108
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b70fe
push 0
push dword [edx + 4]
call esi
jmp 0x5b7110
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b7110
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0xb40]
mov dword [ebx + 0xbac], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b7137
xor eax, eax
jmp 0x5b713a
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xb40]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebx + 0x250]
lea esi, [ebx + 0x230]
mov dword [esi + 0x80], 0xdb9357
mov dword [esi + 0x84], 0xdb9357
mov dword [esi + 0x88], 0xdb9357
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5b718c
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, 0x699980
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x13
mov ecx, esi
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b7219
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b7211
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b7207
mov eax, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [edx + 4]
call eax
jmp 0x5b7219
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b7219
mov ecx, edx
call dword [ebp - 0x88]
push ecx
mov edx, 0x6999a0
mov ecx, esp
call fcn.00405a10
mov ecx, esi
call fcn.005b0c40
call fcn.0045d3be
push 0x7f89
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [esi + 0xb0], eax
test eax, eax
jne 0x5b7250
mov ecx, esi
call fcn.005b0740
cmp dword [esi + 0x94], 1
je 0x5b7298
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5b728e
lea eax, [esi + 0xa0]
test eax, eax
je 0x5b7273
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [esi + 0x94], 1
mov edx, 0x699a10
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x14
lea ecx, [ebx + 0xbb0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b7304
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b7300
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b7300
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [edx + 4]
call esi
jmp 0x5b730a
mov ecx, edx
call esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0x105
push 0
push 0
push dword [ebx + 0xbd0]
mov dword [ebx + 0xc3c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b7331
xor eax, eax
jmp 0x5b7334
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xbd0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699af0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x15
lea ecx, [ebx + 0xc40]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b73d1
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b73c9
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b73bf
push 0
push dword [edx + 4]
call esi
jmp 0x5b73d1
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b73d1
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0xc60]
mov dword [ebx + 0xccc], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b73f8
xor eax, eax
jmp 0x5b73fb
mov eax, dword [edi + 4]
push 1
push eax
push 0x30
push dword [ebx + 0xc60]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, 0x699bd0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x16
lea ecx, [ebx + 0xcd0]
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b7498
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b7490
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x88], edi
lea edi, [ebx + 0xb4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b7486
push 0
push dword [edx + 4]
call esi
jmp 0x5b7498
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b7498
mov ecx, edx
call dword [ebp - 0x88]
push 0x105
push 0
push 0
push dword [ebx + 0xcf0]
mov dword [ebx + 0xd5c], 0x646464
call dword [sym.imp.USER32.dll_RedrawWindow]
test edi, edi
jne 0x5b74bf
xor eax, eax
jmp 0x5b74c2
mov eax, dword [edi + 4]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push eax
push 0x30
push dword [ebx + 0xcf0]
call edi
push dword [ebx + 0x3b0]
lea esi, [ebx + 0x390]
mov dword [esi + 0x80], 0xdb9357
mov dword [esi + 0x84], 0xdb9357
mov dword [esi + 0x88], 0xdb9357
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5b7516
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, 0x699bf0
lea ecx, [ebp - 0x8c]
call fcn.00405a10
mov byte [ebp - 4], 0x17
mov ecx, esi
push dword [eax]
call fcn.00456b17
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b75a3
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x90]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b759b
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x90]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b7591
mov eax, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [edx + 4]
call eax
jmp 0x5b75a3
mov ecx, edx
call dword [ebp - 0x88]
jmp 0x5b75a3
mov ecx, edx
call dword [ebp - 0x88]
push ecx
mov edx, 0x699c20
mov ecx, esp
call fcn.00405a10
mov ecx, esi
call fcn.005b0c40
call fcn.0045d3be
push 0x7f89
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [esi + 0xb0], eax
test eax, eax
jne 0x5b75da
mov ecx, esi
call fcn.005b0740
cmp dword [esi + 0x94], 1
je 0x5b761e
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5b7614
lea eax, [esi + 0xa0]
test eax, eax
je 0x5b75fd
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x20]
call edi
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [esi + 0x94], 1
push 0x3ea
mov ecx, ebx
call fcn.00456705
mov esi, eax
test esi, esi
je 0x5b7692
push 0
push 0
push 0x31
push dword [esi + 0x20]
call edi
push eax
call fcn.00458626
test eax, eax
je 0x5b7692
lea ecx, [ebp - 0x84]
push ecx
push 0x5c
push dword [eax + 4]
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x5b7692
lea eax, [ebp - 0x84]
mov dword [ebp - 0x74], 0x2bc
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
lea ecx, [ebx + 0xc4]
call fcn.00458379
lea eax, [ebx + 0xc4]
test eax, eax
je 0x5b7688
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x20]
call edi
mov byte [ebp - 0x8c], 0
lea eax, [ebp - 0x10]
push dword [ebp - 0x8c]
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x1c], 0x1e
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0x2d
push eax
mov dword [ebp - 0x14], 0x3c
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
call fcn.0040aa60
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x8c], 0
lea ecx, [ebp - 0xb4]
push dword [ebp - 0x8c]
mov dword [ebp - 0x28], 0x3c
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x24], 0x5a
push eax
mov dword [ebp - 0x20], 0x78
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
call fcn.0040aa60
mov byte [ebp - 4], 0x19
xor esi, esi
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xb4]
sar eax, 2
mov dword [ebp - 0x9c], 0x1e
mov dword [ebp - 0x88], 0x3c
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x5b78a0
mov ecx, dword [ebp - 0xbc]
mov eax, edx
mov edi, dword [ebp - 0xc0]
sub ecx, edi
sar ecx, 2
sub edi, edx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x94], edi
cmp ecx, esi
jbe 0x5b7901
movsd xmm0, qword [0x6e8648]
sub esp, 8
mulsd xmm0, qword [0x6aba00]
mov edi, dword [edi + eax]
mov dword [ebp - 0xc8], edi
movsd qword [ebp - 0xa8], xmm0
fld qword [ebp - 0xa8]
fstp qword [esp]
call fcn.0059b320
fstp qword [ebp - 0xa8]
cvttsd2si eax, qword [ebp - 0xa8]
add esp, 8
cmp edi, eax
jg 0x5b789a
mov edi, dword [ebp - 0xb0]
sub edi, dword [ebp - 0xb4]
sar edi, 2
cmp edi, esi
jbe 0x5b7901
movsd xmm0, qword [0x6e8650]
sub esp, 8
mulsd xmm0, qword [0x6aba20]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
movsd qword [ebp - 0x18], xmm0
fld qword [ebp - 0x18]
fstp qword [esp]
mov dword [ebp - 0xa4], eax
call fcn.0059b320
mov edx, dword [ebp - 0xa4]
add esp, 8
fstp qword [ebp - 0x18]
cvttsd2si eax, qword [ebp - 0x18]
cmp edx, eax
jg 0x5b789a
mov ecx, dword [ebp - 0xc4]
cmp ecx, esi
jbe 0x5b7901
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], eax
cmp edi, esi
jbe 0x5b7901
mov eax, dword [ebp - 0x90]
inc esi
mov edi, dword [ebp - 0x94]
add eax, 4
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x90], eax
cmp esi, dword [ebp - 0x8c]
jb 0x5b77a0
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x3ef
mov ecx, ebx
call fcn.00456705
mov esi, eax
call fcn.0045d3be
push 0
push dword [ebp - 0x9c]
push dword [ebp - 0x88]
mov ecx, dword [eax + 8]
push 1
push 0x44e
push ecx
call dword [sym.imp.USER32.dll_LoadImageW]
push eax
push 1
push 0xf7
push dword [esi + 0x20]
mov dword [ebp - 0x94], eax
call edi
push 0x3f3
mov ecx, ebx
call fcn.00456705
mov esi, eax
lea eax, [ebx + 0xbc]
test eax, eax
jne 0x5b790b
xor ecx, ecx
jmp 0x5b790e
push str.invalid_vector_T__subscript
call fcn.005857f6
mov ecx, dword [eax + 4]
push 1
push ecx
push 0x30
push dword [esi + 0x20]
call edi
push dword [ebp - 0x94]
push 1
push 0xf7
push dword [esi + 0x20]
call edi
push 0x3f0
mov ecx, ebx
call fcn.00456705
mov esi, eax
call fcn.0045d3be
push 0
push dword [ebp - 0x9c]
push dword [ebp - 0x88]
mov ecx, dword [eax + 8]
push 1
push 0x44d
push ecx
call dword [sym.imp.USER32.dll_LoadImageW]
push eax
push 1
push 0xf7
push dword [esi + 0x20]
call edi
lea eax, [ebx + 0xbc]
test eax, eax
je 0x5b7976
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x20]
call edi
push 0
push 0x3ea
mov ecx, ebx
call fcn.00456705
mov ecx, eax
call fcn.00456b68
push 0
push 0x3eb
mov ecx, ebx
call fcn.00456705
mov ecx, eax
call fcn.00456b68
push 0
push 0x3ec
mov ecx, ebx
call fcn.00456705
mov ecx, eax
call fcn.00456b68
push 0
push 0x49a
mov ecx, ebx
call fcn.00456705
mov ecx, eax
call fcn.00456b68
push 0
push 0xfa0
push 1
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_SetTimer]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x94], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x5b7a17
mov eax, dword [ecx]
jmp 0x5b7a19
mov eax, ecx
push 1
push 0x697ca8
mov byte [eax], 0
call fcn.00401e90
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x1a
call fcn.005affc0
mov byte [ebp - 4], 0x1b
mov ecx, dword [eax]
mov byte [ebp - 4], 0x1c
call fcn.005aeb80
mov esi, dword [ebp - 0x14]
or ebx, 0xffffffff
test esi, esi
je 0x5b7a6c
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x5b7a6c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x5b7a6c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x5b7a88
mov eax, dword [ebp - 0xac]
sub eax, ecx
sar eax, 2
push eax
push ecx
call fcn.0040a9a0
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x5b7a9e
push dword [ebp - 0x8c]
push eax
call fcn.0040a9a0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xa0]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x5b7ae7
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b7ae3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b7ae3
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x5b7ae7
mov ecx, edx
call esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00583e60
mov esp, ebp
pop ebp
ret