Function at 0x4511a0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x143c
call fcn.004ffc70
mov eax, dword [0x62bcc0]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov edi, ecx
mov dword [ebp - 0x1434], 0
mov dword [ebp - 0x1428], edi
mov dword [ebp - 0x140c], 0
mov dword [ebp - 0x1420], 0
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1408], 0
mov dword [ebp - 0x1418], 0
test eax, eax
je 0x451220
cmp eax, 1
je 0x451220
cmp eax, 2
je 0x451214
cmp eax, 3
je 0x451214
mov dword [ebp - 0x1410], 2
jmp 0x45122a
mov dword [ebp - 0x1410], 1
jmp 0x45122a
mov dword [ebp - 0x1410], 0
cmp dword [edi + 0x7c], 0
jne 0x451251
mov ax, word [ebp + 8]
mov word [edi + 0x14], ax
mov ax, word [ebp + 0xc]
mov word [edi + 0x16], ax
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ff23c
mov esp, ebp
pop ebp
ret 0xc
push esi
push 0
push 0x4d2
push 0xf
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp byte [ebp + 0x10], 0
jne 0x451297
lea edx, [edi + 0x38]
mov esi, 0xc
lea ecx, [edi + 0x28]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x451297
add ecx, 4
add edx, 4
sub esi, 4
jae 0x451274
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ff23c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [edi + 0x28]
movd xmm1, dword [edi + 0x30]
cvtdq2pd xmm1, xmm1
push ebx
mov ebx, dword [edi + 0x2c]
mov ecx, dword [edi + 0x7c]
mov dword [ebp - 0x143c], eax
mov dword [ebp - 0x1424], ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
cvttsd2si eax, xmm1
movd xmm1, dword [edi + 0x34]
cvtdq2pd xmm1, xmm1
mov dword [ebp - 0x141c], eax
subsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [ebp - 0x1414], eax
mov eax, dword [edi + 0x80]
mov esi, dword [eax + ecx*4 - 4]
mov ecx, 0x911000
movzx eax, word [esi + 0xc]
push eax
call fcn.00440910
push dword [ebp - 0x1410]
mov edx, dword [esi]
mov ecx, esi
imul eax, eax, 0x11c
add eax, dword [0x91275c]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x1410]
sub eax, 0
je 0x451a95
sub eax, 1
je 0x45175e
sub eax, 1
jne 0x451dcd
push 0x1400
push eax
lea eax, [ebp - 0x1404]
push eax
call fcn.00501660
mov eax, dword [edi + 0x7c]
xor edx, edx
xor esi, esi
mov dword [ebp - 0x1410], edx
dec eax
mov dword [ebp - 0x1414], esi
add esp, 0xc
xor ebx, ebx
test eax, eax
jle 0x4514e4
lea esi, [ebp - 0x1400]
nop dword [eax + eax]
mov eax, dword [edi + 0x80]
lea ecx, [ebx*4]
mov eax, dword [eax + ecx]
mov ecx, 0x911000
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
imul edx, eax, 0x11c
add edx, dword [0x91275c]
mov dword [ebp - 0x140c], edx
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x1420], eax
test eax, 0x800000
jne 0x4514cb
mov eax, dword [edi + 0x80]
push 2
push edx
mov ecx, dword [eax + ebx*4]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi + 0x80]
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x141c], eax
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x1434]
cmp ecx, eax
jle 0x451402
test byte [ebp - 0x1420], 8
cmove eax, ecx
mov dword [ebp - 0x1434], eax
mov eax, dword [edi + 0x78]
mov edx, dword [ebp - 0x1410]
add eax, ecx
add edx, eax
xor ecx, ecx
cmp edx, dword [ebp + 8]
mov eax, 1
mov dword [ebp - 0x1410], edx
setg cl
cmp dword [esi + 4], 0xffffffff
cmove ecx, eax
mov eax, dword [ebp - 0x1420]
and eax, 8
mov dword [ebp - 0x1408], eax
mov eax, 1
cmovne ecx, eax
mov eax, dword [ebp - 0x140c]
cmp word [eax + 2], 4
jne 0x45146e
mov eax, dword [edi + 0x7c]
dec eax
cmp ebx, eax
je 0x451469
mov eax, dword [edi + 0x80]
mov eax, dword [eax + ebx*4 + 4]
mov eax, dword [eax + 0x20]
add eax, edx
cmp eax, dword [ebp + 8]
jle 0x45146e
mov ecx, 1
xor eax, eax
test ebx, ebx
cmovne eax, ecx
test eax, eax
je 0x45149e
mov eax, dword [ebp - 0x141c]
inc dword [ebp - 0x1414]
mov ecx, dword [eax + 0x20]
sub edx, ecx
lea eax, [ebx - 1]
mov dword [esi + 8], edx
mov dword [esi], eax
add esi, 0x14
mov dword [ebp - 0x1410], ecx
mov dword [esi - 4], ebx
mov eax, dword [ebp - 0x141c]
mov eax, dword [eax + 0x24]
cmp eax, dword [esi + 0xc]
jle 0x4514af
mov dword [esi + 0xc], eax
test byte [ebp - 0x1420], 2
je 0x4514bb
inc dword [esi + 4]
cmp dword [ebp - 0x1408], 0
je 0x4514cb
mov dword [esi + 4], 0xffffffff
mov eax, dword [edi + 0x7c]
inc ebx
dec eax
cmp ebx, eax
jl 0x451380
mov edx, dword [ebp - 0x1410]
mov esi, dword [ebp - 0x1414]
lea ecx, [esi + esi*4]
mov dword [ebp + ecx*4 - 0x13f8], edx
lea eax, [ebx - 1]
mov dword [ebp + ecx*4 - 0x1400], eax
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebp - 0x1434]
cmovl ecx, dword [ebp - 0x1434]
mov dword [ebp - 0x1420], ecx
xor ecx, ecx
test esi, esi
js 0x451745
inc esi
lea edx, [ebp - 0x13f4]
xor edi, edi
cmp dword [edx - 8], 0xffffffff
jne 0x45152f
inc dword [ebp - 0x1418]
jmp 0x451531
add edi, dword [edx]
cmp ecx, dword [edx - 4]
cmovl ecx, dword [edx - 4]
add edx, 0x14
sub esi, 1
jne 0x451521
mov eax, dword [ebp - 0x1414]
lea esi, [ebp - 0x13fc]
mov ebx, dword [ebp - 0x142c]
inc eax
mov edx, dword [ebp - 0x1424]
mov dword [ebp - 0x141c], edi
mov dword [ebp - 0x140c], ecx
mov dword [ebp - 0x1408], esi
mov dword [ebp - 0x1414], eax
mov eax, dword [ebp - 0x143c]
mov edi, dword [esi - 4]
mov dword [ebp - 0x1410], eax
mov eax, dword [esi - 8]
cmp eax, edi
mov dword [ebp - 0x142c], edi
mov edi, dword [ebp - 0x1428]
mov dword [ebp - 0x1434], eax
jg 0x45170f
mov dword [ebp - 0x1430], eax
lea esi, [eax*4]
mov ecx, 0x911000
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
imul eax, eax, 0x11c
add eax, dword [0x91275c]
mov dword [ebp - 0x1438], eax
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x80]
mov ecx, dword [esi + eax]
test edx, 0x800000
je 0x4515fe
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0x140c]
jmp 0x4516ea
mov eax, dword [ebp - 0x1408]
mov esi, dword [ecx + 0x20]
mov ebx, dword [eax + 8]
test dl, 8
je 0x451636
mov eax, dword [ebp - 0x1420]
cmp eax, esi
mov ebx, dword [ecx + 0x24]
cmovl eax, esi
mov esi, eax
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 0x141c]
cdq
idiv dword [ebp - 0x1418]
cmp eax, ebx
cmovge ebx, eax
jmp 0x45165b
test dl, 2
je 0x45165b
mov edx, dword [ebp - 0x1408]
mov eax, dword [ebp - 0x1420]
mov edi, dword [ebp - 0x1408]
sub eax, dword [edx + 4]
cdq
idiv dword [edi]
mov edi, dword [ebp - 0x1428]
add esi, eax
mov eax, dword [ebp - 0x1438]
cmp word [eax + 2], 4
jne 0x4516ab
mov eax, dword [ebp - 0x1430]
cmp dword [ebp - 0x1434], eax
jne 0x4516ab
mov ebx, dword [ecx + 0x24]
mov eax, dword [ebp - 0x140c]
mov esi, dword [ebp - 0x1424]
push 0x44
push ebx
push eax
push esi
push dword [ebp - 0x1410]
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebp - 0x140c]
add esi, ebx
mov dword [ebp - 0x1424], esi
jmp 0x4516ea
push 0x44
push ebx
push esi
push dword [ebp - 0x1424]
push dword [ebp - 0x1410]
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [edi + 0x78]
mov edx, dword [ebp - 0x1410]
add eax, esi
mov ecx, dword [ebp - 0x140c]
add edx, eax
cmp edx, ecx
mov dword [ebp - 0x1410], edx
cmovg ecx, edx
mov dword [ebp - 0x140c], ecx
mov eax, dword [ebp - 0x1434]
inc eax
mov dword [ebp - 0x1434], eax
cmp eax, dword [ebp - 0x142c]
jle 0x4515a3
mov edx, dword [ebp - 0x1424]
mov esi, dword [ebp - 0x1408]
mov eax, dword [edi + 0x78]
add esi, 0x14
add eax, ebx
mov dword [ebp - 0x1408], esi
add edx, eax
sub dword [ebp - 0x1414], 1
mov dword [ebp - 0x1424], edx
jne 0x451571
lea eax, [ecx + 2]
mov word [edi + 0x14], ax
lea eax, [edx + 3]
mov word [edi + 0x16], ax
jmp 0x451dcd
mov edx, dword [ebp - 0x1424]
lea eax, [ecx + 2]
mov word [edi + 0x14], ax
lea eax, [edx + 3]
mov word [edi + 0x16], ax
jmp 0x451dcd
xor eax, eax
xor esi, esi
mov word [edi + 0x18], ax
mov eax, dword [edi + 0x7c]
dec eax
mov dword [ebp - 0x1418], esi
test eax, eax
jle 0x45182c
xor ebx, ebx
nop word [eax + eax]
mov eax, dword [edi + 0x80]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov ecx, 0x911000
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
imul edx, eax, 0x11c
add edx, dword [0x91275c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
jne 0x45180d
mov eax, dword [edi + 0x80]
push 1
push edx
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi + 0x80]
mov ecx, dword [ebp - 0x142c]
mov eax, dword [eax + esi*4]
mov edx, dword [eax + 0x24]
mov eax, dword [edi + 0x78]
add eax, edx
add dword [ebp - 0x1420], eax
test cl, 2
lea eax, [ebx + 1]
cmove eax, ebx
mov ebx, eax
test ecx, 0x1000
jne 0x451800
add word [edi + 0x18], dx
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi*4]
mov byte [eax + 0x5c], 1
mov eax, dword [edi + 0x7c]
inc esi
dec eax
cmp esi, eax
jl 0x451780
mov dword [ebp - 0x1408], ebx
mov ebx, dword [ebp - 0x1424]
mov dword [ebp - 0x1418], esi
add esi, 0xffffffff
js 0x451dcd
mov eax, dword [edi + 0x80]
mov ecx, dword [ebp - 0x1418]
mov eax, dword [eax + ecx*4]
movzx ecx, bx
mov ebx, dword [ebp - 0x1420]
mov byte [eax + 0x5c], 0
lea eax, [ebx + 2]
add eax, ecx
movzx edx, ax
mov ax, word [edi + 0x18]
add ax, 2
mov word [edi + 0x14], dx
add ax, cx
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0x1414]
mov word [edi + 0x1c], dx
cmp ebx, eax
jle 0x45193e
mov ebx, dword [ebp - 0x1418]
mov eax, dword [edi + 0x80]
mov eax, dword [eax + ebx*4]
mov byte [eax + 0x5c], 1
mov edx, dword [edi + 0x80]
mov cx, word [edi + 0x18]
mov eax, dword [edx + ebx*4]
add cx, word [eax + 0x24]
mov word [edi + 0x18], cx
mov eax, dword [edx + ebx*4]
mov ebx, dword [ebp - 0x1420]
add ebx, dword [eax + 0x24]
mov eax, dword [ebp - 0x1414]
cmp ebx, eax
jle 0x45193e
test esi, esi
js 0x45193e
mov eax, dword [edi + 0x80]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov ecx, 0x911000
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
imul ecx, eax, 0x11c
mov eax, dword [0x91275c]
mov ecx, dword [ecx + eax + 0xc]
test ecx, 0x1000
je 0x45192f
test ecx, 0x800000
jne 0x45192f
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi*4]
mov byte [eax + 0x5c], 0
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x24]
add eax, dword [edi + 0x78]
sub ebx, eax
test cl, 2
je 0x45192f
dec dword [ebp - 0x1408]
or eax, 0xffffffff
add esi, eax
mov eax, dword [ebp - 0x1414]
cmp ebx, eax
jg 0x4518c0
mov ecx, dword [ebp - 0x1408]
test ecx, ecx
jle 0x451951
sub eax, ebx
cdq
idiv ecx
mov ecx, eax
jmp 0x451953
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmovns eax, ecx
xor ebx, ebx
mov dword [ebp - 0x1430], eax
xor eax, eax
mov dword [ebp - 0x1418], eax
cmp dword [edi + 0x7c], eax
jle 0x451dbe
lea esi, [eax*4]
mov dword [ebp - 0x1428], ebx
mov eax, dword [edi + 0x80]
mov ecx, 0x911000
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
mov ecx, dword [edi + 0x80]
imul eax, eax, 0x11c
add eax, dword [0x91275c]
mov dword [ebp - 0x1438], eax
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
je 0x4519d3
mov eax, dword [ecx + esi]
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x451a7a
mov ecx, dword [ecx + esi]
cmp byte [ecx + 0x5c], 0
je 0x451a4a
test al, 4
je 0x4519ef
mov esi, dword [ebp - 0x141c]
mov eax, dword [edi + 0x28]
jmp 0x451a02
mov eax, dword [ebp - 0x141c]
mov esi, dword [ecx + 0x20]
sub eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, dword [edi + 0x28]
test byte [ebp - 0x142c], 2
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x1428], edx
je 0x451a20
add edx, dword [ebp - 0x1430]
mov dword [ebp - 0x1428], edx
push 0x44
push edx
push esi
mov esi, dword [ebp - 0x1424]
push esi
push eax
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [edi + 0x78]
add eax, dword [ebp - 0x1428]
add esi, eax
mov dword [ebp - 0x1424], esi
jmp 0x451a7a
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebp - 0x1438]
mov ecx, dword [edi + 0x98]
mov ax, word [edx]
mov word [ecx + ebx*2], ax
inc ebx
cmp ebx, 1
jne 0x451a7a
cmp word [edx + 2], 4
cmove ebx, dword [ebp - 0x1428]
mov eax, dword [ebp - 0x1418]
inc eax
mov dword [ebp - 0x1418], eax
cmp eax, dword [edi + 0x7c]
jl 0x451973
jmp 0x451dbe
xor eax, eax
xor ebx, ebx
mov word [edi + 0x18], ax
mov eax, dword [edi + 0x7c]
dec eax
test eax, eax
jle 0x451b64
nop dword [eax]
mov eax, dword [edi + 0x80]
lea esi, [ebx*4]
mov ecx, 0x911000
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
imul edx, eax, 0x11c
add edx, dword [0x91275c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
jne 0x451b57
mov eax, dword [edi + 0x80]
push 0
push edx
mov ecx, dword [esi + eax]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi + 0x80]
mov edx, dword [ebp - 0x142c]
mov eax, dword [esi + eax]
mov ecx, dword [eax + 0x20]
mov eax, dword [edi + 0x78]
add eax, ecx
mov dword [ebp - 0x1430], ecx
mov ecx, dword [ebp - 0x1408]
add dword [ebp - 0x140c], eax
test dl, 2
lea eax, [ecx + 1]
cmove eax, ecx
mov dword [ebp - 0x1408], eax
test edx, 0x1000
jne 0x451b4a
mov eax, dword [ebp - 0x1430]
add word [edi + 0x18], ax
mov eax, dword [edi + 0x80]
mov eax, dword [esi + eax]
mov byte [eax + 0x5c], 1
mov eax, dword [edi + 0x7c]
inc ebx
dec eax
cmp ebx, eax
jl 0x451ab0
lea esi, [ebx - 1]
test esi, esi
js 0x451dcd
mov eax, dword [edi + 0x80]
mov eax, dword [eax + ebx*4]
mov byte [eax + 0x5c], 0
mov eax, dword [ebp - 0x143c]
movzx ecx, ax
mov eax, dword [ebp - 0x140c]
add eax, 2
add eax, ecx
movzx edx, ax
mov ax, word [edi + 0x18]
add ax, 2
mov word [edi + 0x14], dx
add ax, cx
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0x141c]
mov word [edi + 0x1c], dx
cmp dword [ebp - 0x140c], eax
jle 0x451c78
mov eax, dword [edi + 0x80]
mov eax, dword [eax + ebx*4]
mov byte [eax + 0x5c], 1
mov edx, dword [edi + 0x80]
mov cx, word [edi + 0x18]
mov eax, dword [edx + ebx*4]
add cx, word [eax + 0x20]
mov word [edi + 0x18], cx
mov eax, dword [edx + ebx*4]
mov ebx, dword [ebp - 0x140c]
add ebx, dword [eax + 0x20]
mov eax, dword [ebp - 0x141c]
cmp ebx, eax
jle 0x451c7e
test esi, esi
js 0x451c7e
mov eax, dword [edi + 0x80]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov ecx, 0x911000
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
imul ecx, eax, 0x11c
mov eax, dword [0x91275c]
mov ecx, dword [ecx + eax + 0xc]
test ecx, 0x1000
je 0x451c67
test ecx, 0x800000
jne 0x451c67
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi*4]
mov byte [eax + 0x5c], 0
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x20]
add eax, dword [edi + 0x78]
sub ebx, eax
test cl, 2
je 0x451c67
dec dword [ebp - 0x1408]
or eax, 0xffffffff
add esi, eax
mov eax, dword [ebp - 0x141c]
cmp ebx, eax
jg 0x451bf8
jmp 0x451c7e
mov ebx, dword [ebp - 0x140c]
mov ecx, dword [ebp - 0x1408]
test ecx, ecx
jle 0x451c91
sub eax, ebx
cdq
idiv ecx
mov ecx, eax
jmp 0x451c93
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmovns eax, ecx
xor ebx, ebx
mov dword [ebp - 0x1430], eax
xor eax, eax
mov dword [ebp - 0x1428], eax
cmp dword [edi + 0x7c], eax
jle 0x451dbe
lea esi, [eax*4]
mov dword [ebp - 0x1418], ebx
mov eax, dword [edi + 0x80]
mov ecx, 0x911000
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.00440910
mov ecx, dword [edi + 0x80]
imul eax, eax, 0x11c
add eax, dword [0x91275c]
mov dword [ebp - 0x1438], eax
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
je 0x451d13
mov eax, dword [ecx + esi]
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x451da8
mov ecx, dword [ecx + esi]
cmp byte [ecx + 0x5c], 0
je 0x451d78
test al, 4
je 0x451d2f
mov edx, dword [ebp - 0x1414]
mov eax, dword [edi + 0x2c]
jmp 0x451d43
mov eax, dword [ebp - 0x1414]
sub eax, dword [ecx + 0x24]
cdq
sub eax, edx
mov edx, dword [ecx + 0x24]
sar eax, 1
add eax, dword [edi + 0x2c]
test byte [ebp - 0x142c], 2
mov esi, dword [ecx + 0x20]
je 0x451d55
add esi, dword [ebp - 0x1430]
push 0x44
push edx
push esi
push eax
push dword [ebp - 0x143c]
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [edi + 0x78]
add eax, esi
add dword [ebp - 0x143c], eax
jmp 0x451da8
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebp - 0x1438]
mov ecx, dword [edi + 0x98]
mov ax, word [edx]
mov word [ecx + ebx*2], ax
inc ebx
cmp ebx, 1
jne 0x451da8
cmp word [edx + 2], 4
cmove ebx, dword [ebp - 0x1418]
mov eax, dword [ebp - 0x1428]
inc eax
mov dword [ebp - 0x1428], eax
cmp eax, dword [edi + 0x7c]
jl 0x451cb3
mov eax, dword [edi + 0x98]
mov ecx, 0xffff
mov word [eax + ebx*2], cx
lea ecx, [edi + 0x28]
mov esi, 0xc
lea edx, [edi + 0x38]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x451dfc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x451dd8
pop ebx
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ff23c
mov esp, ebp
pop ebp
ret 0xc
movups xmm0, xmmword [edi + 0x28]
push 0
push 0
push dword [edi]
movups xmmword [edi + 0x38], xmm0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [ebp - 4]
pop ebx
pop esi
xor ecx, ebp
pop edi
call fcn.004ff23c
mov esp, ebp
pop ebp
ret 0xc