Function at 0x4508a0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x143c
call fcn.004ff310
mov eax, dword [0x62acc0]
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 0x450920
cmp eax, 1
je 0x450920
cmp eax, 2
je 0x450914
cmp eax, 3
je 0x450914
mov dword [ebp - 0x1410], 2
jmp 0x45092a
mov dword [ebp - 0x1410], 1
jmp 0x45092a
mov dword [ebp - 0x1410], 0
cmp dword [edi + 0x7c], 0
jne 0x450951
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.004fe8dc
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 0x450997
lea edx, [edi + 0x38]
mov esi, 0xc
lea ecx, [edi + 0x28]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x450997
add ecx, 4
add edx, 4
sub esi, 4
jae 0x450974
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004fe8dc
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, 0x90fe00
movzx eax, word [esi + 0xc]
push eax
call fcn.004404d0
push dword [ebp - 0x1410]
mov edx, dword [esi]
mov ecx, esi
imul eax, eax, 0x11c
add eax, dword [0x91155c]
push eax
call dword [edx + 8]
mov eax, dword [ebp - 0x1410]
sub eax, 0
je 0x451195
sub eax, 1
je 0x450e5e
sub eax, 1
jne 0x4514cd
push 0x1400
push eax
lea eax, [ebp - 0x1404]
push eax
call fcn.00500bb0
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 0x450be4
lea esi, [ebp - 0x1400]
nop dword [eax + eax]
mov eax, dword [edi + 0x80]
lea ecx, [ebx*4]
mov eax, dword [eax + ecx]
mov ecx, 0x90fe00
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
imul edx, eax, 0x11c
add edx, dword [0x91155c]
mov dword [ebp - 0x140c], edx
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x1420], eax
test eax, 0x800000
jne 0x450bcb
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 0x450b02
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 0x450b6e
mov eax, dword [edi + 0x7c]
dec eax
cmp ebx, eax
je 0x450b69
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 0x450b6e
mov ecx, 1
xor eax, eax
test ebx, ebx
cmovne eax, ecx
test eax, eax
je 0x450b9e
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 0x450baf
mov dword [esi + 0xc], eax
test byte [ebp - 0x1420], 2
je 0x450bbb
inc dword [esi + 4]
cmp dword [ebp - 0x1408], 0
je 0x450bcb
mov dword [esi + 4], 0xffffffff
mov eax, dword [edi + 0x7c]
inc ebx
dec eax
cmp ebx, eax
jl 0x450a80
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 0x450e45
inc esi
lea edx, [ebp - 0x13f4]
xor edi, edi
cmp dword [edx - 8], 0xffffffff
jne 0x450c2f
inc dword [ebp - 0x1418]
jmp 0x450c31
add edi, dword [edx]
cmp ecx, dword [edx - 4]
cmovl ecx, dword [edx - 4]
add edx, 0x14
sub esi, 1
jne 0x450c21
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 0x450e0f
mov dword [ebp - 0x1430], eax
lea esi, [eax*4]
mov ecx, 0x90fe00
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
imul eax, eax, 0x11c
add eax, dword [0x91155c]
mov dword [ebp - 0x1438], eax
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x80]
mov ecx, dword [esi + eax]
test edx, 0x800000
je 0x450cfe
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0x140c]
jmp 0x450dea
mov eax, dword [ebp - 0x1408]
mov esi, dword [ecx + 0x20]
mov ebx, dword [eax + 8]
test dl, 8
je 0x450d36
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 0x450d5b
test dl, 2
je 0x450d5b
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 0x450dab
mov eax, dword [ebp - 0x1430]
cmp dword [ebp - 0x1434], eax
jne 0x450dab
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 0x450dea
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 0x450ca3
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 0x450c71
lea eax, [ecx + 2]
mov word [edi + 0x14], ax
lea eax, [edx + 3]
mov word [edi + 0x16], ax
jmp 0x4514cd
mov edx, dword [ebp - 0x1424]
lea eax, [ecx + 2]
mov word [edi + 0x14], ax
lea eax, [edx + 3]
mov word [edi + 0x16], ax
jmp 0x4514cd
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 0x450f2c
xor ebx, ebx
nop word [eax + eax]
mov eax, dword [edi + 0x80]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov ecx, 0x90fe00
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
imul edx, eax, 0x11c
add edx, dword [0x91155c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
jne 0x450f0d
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 0x450f00
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 0x450e80
mov dword [ebp - 0x1408], ebx
mov ebx, dword [ebp - 0x1424]
mov dword [ebp - 0x1418], esi
add esi, 0xffffffff
js 0x4514cd
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 0x45103e
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 0x45103e
test esi, esi
js 0x45103e
mov eax, dword [edi + 0x80]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov ecx, 0x90fe00
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
imul ecx, eax, 0x11c
mov eax, dword [0x91155c]
mov ecx, dword [ecx + eax + 0xc]
test ecx, 0x1000
je 0x45102f
test ecx, 0x800000
jne 0x45102f
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 0x45102f
dec dword [ebp - 0x1408]
or eax, 0xffffffff
add esi, eax
mov eax, dword [ebp - 0x1414]
cmp ebx, eax
jg 0x450fc0
mov ecx, dword [ebp - 0x1408]
test ecx, ecx
jle 0x451051
sub eax, ebx
cdq
idiv ecx
mov ecx, eax
jmp 0x451053
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 0x4514be
lea esi, [eax*4]
mov dword [ebp - 0x1428], ebx
mov eax, dword [edi + 0x80]
mov ecx, 0x90fe00
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
mov ecx, dword [edi + 0x80]
imul eax, eax, 0x11c
add eax, dword [0x91155c]
mov dword [ebp - 0x1438], eax
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
je 0x4510d3
mov eax, dword [ecx + esi]
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x45117a
mov ecx, dword [ecx + esi]
cmp byte [ecx + 0x5c], 0
je 0x45114a
test al, 4
je 0x4510ef
mov esi, dword [ebp - 0x141c]
mov eax, dword [edi + 0x28]
jmp 0x451102
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 0x451120
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 0x45117a
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 0x45117a
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 0x451073
jmp 0x4514be
xor eax, eax
xor ebx, ebx
mov word [edi + 0x18], ax
mov eax, dword [edi + 0x7c]
dec eax
test eax, eax
jle 0x451264
nop dword [eax]
mov eax, dword [edi + 0x80]
lea esi, [ebx*4]
mov ecx, 0x90fe00
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
imul edx, eax, 0x11c
add edx, dword [0x91155c]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
jne 0x451257
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 [eax + esi]
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 0x45124a
mov eax, dword [ebp - 0x1430]
add word [edi + 0x18], ax
mov eax, dword [edi + 0x80]
mov eax, dword [eax + esi]
mov byte [eax + 0x5c], 1
mov eax, dword [edi + 0x7c]
inc ebx
dec eax
cmp ebx, eax
jl 0x4511b0
lea esi, [ebx - 1]
test esi, esi
js 0x4514cd
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 0x451378
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 0x45137e
test esi, esi
js 0x45137e
mov eax, dword [edi + 0x80]
lea ecx, [esi*4]
mov eax, dword [eax + ecx]
mov ecx, 0x90fe00
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
imul ecx, eax, 0x11c
mov eax, dword [0x91155c]
mov ecx, dword [ecx + eax + 0xc]
test ecx, 0x1000
je 0x451367
test ecx, 0x800000
jne 0x451367
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 0x451367
dec dword [ebp - 0x1408]
or eax, 0xffffffff
add esi, eax
mov eax, dword [ebp - 0x141c]
cmp ebx, eax
jg 0x4512f8
jmp 0x45137e
mov ebx, dword [ebp - 0x140c]
mov ecx, dword [ebp - 0x1408]
test ecx, ecx
jle 0x451391
sub eax, ebx
cdq
idiv ecx
mov ecx, eax
jmp 0x451393
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 0x4514be
lea esi, [eax*4]
mov dword [ebp - 0x1418], ebx
mov eax, dword [edi + 0x80]
mov ecx, 0x90fe00
mov eax, dword [eax + esi]
movzx eax, word [eax + 0xc]
push eax
call fcn.004404d0
mov ecx, dword [edi + 0x80]
imul eax, eax, 0x11c
add eax, dword [0x91155c]
mov dword [ebp - 0x1438], eax
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x142c], eax
test eax, 0x800000
je 0x451413
mov eax, dword [ecx + esi]
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x4514a8
mov ecx, dword [ecx + esi]
cmp byte [ecx + 0x5c], 0
je 0x451478
test al, 4
je 0x45142f
mov edx, dword [ebp - 0x1414]
mov eax, dword [edi + 0x2c]
jmp 0x451443
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 0x451455
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 0x4514a8
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 0x4514a8
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 0x4513b3
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 0x4514fc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4514d8
pop ebx
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004fe8dc
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.004fe8dc
mov esp, ebp
pop ebp
ret 0xc