Function at 0x40b3b0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4cbb10
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x50d4cc]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
mov eax, dword [0x50d4cc]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 8]
lea ebx, [eax + 0x28]
lea eax, [esp + 0x38]
mov dword [esp + 0x30], ecx
push eax
mov ecx, ebx
call fcn.00411100
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x519b84
call edi
mov eax, dword [ebx + 0x44]
mov esi, dword [ebx + 0x48]
push 0x519b84
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x519b84
call edi
mov eax, dword [ebx + 0x48]
mov edi, dword [ebx + 0x44]
push 0x519b84
mov dword [esp + 0x48], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x20], 0
movss dword [esp + 0x28], xmm0
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
add eax, 0x14c
mov dword [esp + 0x58], 0
push eax
call fcn.0040f7f0
mov ebx, dword [esp + 0x30]
sub esp, 0x10
mov dword [esp + 0x68], 0xffffffff
movss xmm2, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm2
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 4], xmm0
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [esp], xmm0
push dword [esi + 4]
movss dword [esp + 0x40], xmm0
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipFillRectangle]
test eax, eax
je 0x40b4d2
mov dword [ebx + 4], eax
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov esi, dword [esp + 0x1c]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov eax, dword [esi + 0x160]
sub eax, dword [esi + 0x158]
mov ecx, dword [esi + 0x164]
sbb ecx, dword [esi + 0x15c]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x28]
mov dword [esp + 0x20], eax
or eax, ecx
mov dword [esp + 0x1c], ecx
movss dword [esp + 0x18], xmm0
je 0x40b700
mov ecx, esi
call fcn.0040ca90
mov ebx, eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x28], ebx
mov ecx, dword [ebx + 0x154]
mov edx, dword [ecx]
call dword [edx + 0x80]
add ebx, 0x34
je 0x40b549
add ebx, 0xfffffff8
jmp 0x40b54b
xor ebx, ebx
push 0x519b84
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebx]
push 0x519b84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x519b84
shr ebx, 0x1f
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test bl, 1
mov ebx, dword [esp + 0x24]
push 0x519b84
mov ebx, dword [ebx + 0x20]
je 0x40b607
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movss xmm0, dword [esp + 0x28]
subss xmm0, dword [esp + 0x44]
mov edx, dword [esi + 0x16c]
mov ecx, dword [esi + 0x168]
shr ebx, 1
movss dword [esp + 0x18], xmm0
call fcn.004c86ff
movss xmm1, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cvtsd2ss xmm0, xmm0
mulss xmm1, xmm0
movss dword [esp + 0x18], xmm1
call fcn.004c86ff
movss xmm1, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0x18], xmm1
test bl, 1
je 0x40b684
movss xmm0, dword [esp + 0x3c]
addss xmm0, dword [esp + 0x28]
subss xmm0, xmm1
movss dword [esp + 0x34], xmm0
jmp 0x40b684
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esi + 0x16c]
mov ecx, dword [esi + 0x168]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
shr ebx, 1
subss xmm0, dword [esp + 0x40]
movss dword [esp + 0x14], xmm0
call fcn.004c86ff
movss xmm1, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cvtsd2ss xmm0, xmm0
mulss xmm1, xmm0
movss dword [esp + 0x14], xmm1
call fcn.004c86ff
movss xmm1, dword [esp + 0x14]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0x14], xmm1
test bl, 1
je 0x40b684
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm0, dword [esp + 0x38]
subss xmm0, xmm1
movss dword [esp + 0x2c], xmm0
mov dword [esp + 0x24], 0
lea eax, [esi + 0x150]
mov dword [esp + 0x58], 1
push eax
lea ecx, [esp + 0x28]
call fcn.0040f7f0
mov ebx, dword [esp + 0x30]
sub esp, 0x10
mov dword [esp + 0x68], 0xffffffff
movss xmm1, dword [esp + 0x28]
movss xmm0, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
movss xmm2, dword [esp + 0x3c]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x24]
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
push dword [esi + 4]
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipFillRectangle]
test eax, eax
je 0x40b6f8
mov dword [ebx + 4], eax
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
xor eax, eax
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.0048b090
mov esp, ebp
pop ebp
ret 8