Function at 0x73791404
Capabilities:
Print debug messages

Disassembly:
push 0xa0
push 0x737916d8
call fcn.73761361
push dword [0x7379f190]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [section..data]
call sub.GDI32.dll_GdiEntry13
mov esi, eax
cmp esi, dword [0x7379f99c]
je 0x73791448
cmp dword [section..data], 1
jne 0x73791448
call fcn.7376cc76
mov dword [0x7379f99c], esi
and dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
mov ebx, dword [eax + 4]
mov dword [ebp - 0x30], ebx
mov esi, dword [eax]
mov edx, dword [esi + 8]
mov ecx, edx
mov dword [ebp - 0x2c], ecx
mov edi, dword [ecx + 4]
mov dword [ebp - 0x20], edi
mov ecx, dword [eax + 0x1c]
test cl, 4
je 0x7379147d
mov esi, 0x88760082
jmp 0x73791487
test ecx, 0x10000000
jne 0x737914a2
xor esi, esi
dec dword [section..data]
push dword [0x7379f190]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or dword [ebp - 4], 0xffffffff
jmp 0x7379163c
or dword [ebp - 4], 0xffffffff
test byte [eax + 0x23], 0x80
je 0x737914b6
mov esi, 0x8876028f
jmp 0x7379162a
test cl, 2
je 0x737914c5
mov esi, 0x8876024c
jmp 0x7379162a
push 8
pop ecx
add edi, 0x65c
add esi, 0x64
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x737914dc
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ecx
je 0x737914ec
mov esi, 0x8876024b
jmp 0x7379162a
push ecx
push ecx
push ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1c]
push eax
push edx
call fcn.73764625
add esp, 0x18
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x73791511
cmp dword [ebp - 0x28], eax
je 0x737914e2
cmp dword [ebp - 0x1c], eax
jne 0x7379151a
mov eax, dword [ebp - 0x2c]
test byte [eax + 0xc], 1
jne 0x737914e2
mov edi, dword [ebp - 0x20]
test byte [edi + 6], 0x40
je 0x73791541
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp eax, 0x7379f100
je 0x73791536
cmp eax, 0x7379f300
jne 0x737914e2
push 0x737916a0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov esi, dword [ebp - 0x24]
test byte [esi + 0x21], 2
je 0x7379160a
xor eax, eax
cmp dword [ebp - 0x1c], eax
je 0x73791569
cmp dword [ebp - 0x28], eax
jne 0x73791564
mov esi, 0x887600e1
jmp 0x7379162a
cmp dword [ebp - 0x1c], eax
jne 0x73791594
lea eax, [ebp - 0xb0]
push eax
push esi
call fcn.73764fe9
lea eax, [ebp - 0xb0]
push eax
push edi
call fcn.7376ab89
add esp, 0x10
test eax, eax
jne 0x73791594
mov esi, 0x8876005f
jmp 0x7379162a
test byte [ebx + 4], 4
jne 0x7379160a
push dword [ebp + 8]
jmp 0x737915a9
mov ecx, dword [ecx + 4]
test byte [ecx + 4], 4
jne 0x737915b6
push eax
call fcn.737638f6
pop ecx
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x7379159f
cmp dword [eax + 4], esi
je 0x7379160a
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
and dword [ecx + 4], 0xfffffffb
or dword [ebx + 4], 4
mov edx, dword [ebx + 4]
mov edi, dword [ecx + 4]
mov esi, edi
and esi, 4
xor edx, edi
and edx, 1
xor edx, edi
mov dword [ecx + 4], edx
mov edx, dword [ebx + 4]
and edx, 0xfffffffe
or edx, esi
mov dword [ebx + 4], edx
mov edx, dword [ecx + 0x24]
mov esi, dword [ebx + 0x24]
mov dword [ecx + 0x24], esi
mov dword [ebx + 0x24], edx
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
mov esi, dword [ebp - 0x24]
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov dword [esi + 8], ecx
mov edi, dword [ebp - 0x20]
mov eax, dword [edi + 0x170]
push dword [ebp + 8]
cmp dword [eax + 0x378], 0
jne 0x7379164e
call fcn.73791201
pop ecx
mov edi, eax
test edi, edi
je 0x73791640
mov esi, edi
dec dword [section..data]
push dword [0x7379f190]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x73791698
test byte [esi + 0x1c], 0x10
je 0x73791656
push esi
call fcn.737913c1
jmp 0x73791653
call fcn.7378febe
pop ecx
mov edi, eax
dec dword [section..data]
push dword [0x7379f190]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
jmp 0x73791698
call fcn.7376139c
ret 4