Function at 0x41fb79
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
movaps xmm0, xmmword [0x4cf260]
xor ecx, ecx
mov eax, dword [0x4f7c74]
inc ecx
cmp byte [0x504ac3], 0
push ebx
mov ebx, dword [ebp + 0xc]
movups xmmword [ebp - 0x48], xmm0
push esi
movaps xmm0, xmmword [0x4cf270]
push edi
mov dword [ebp - 0x38], 0x20
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x4c], 0x3fcccccd
je 0x41fbc3
test eax, eax
je 0x41fbc3
mov dword [ebp - 0x10], ecx
jmp 0x41fbc7
and dword [ebp - 0x10], 0
cmp byte [0x504ac1], 0
je 0x41fbdb
test eax, eax
je 0x41fbdb
mov edi, ecx
mov dword [ebp - 8], ecx
jmp 0x41fbe0
xor edi, edi
mov dword [ebp - 8], edi
movzx ecx, byte [0x4f7c63]
push 4
pop edx
cmp byte [0x4f7c63], dl
push 4
cmovb edx, ecx
movzx ecx, byte [0x4f7c65]
xor eax, eax
cmp eax, edx
sbb eax, eax
and eax, edx
pop edx
cmp byte [0x4f7c65], dl
mov eax, dword [ebp + eax*4 - 0x48]
cmovb edx, ecx
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp eax, edx
sbb eax, eax
and eax, edx
movss xmm2, dword [ebp + eax*4 - 0x5c]
mov eax, dword [0x507378]
inc eax
movss dword [ebp - 0x18], xmm2
cmp dword [0x4f7e64], 0
mov dword [0x507378], eax
jne 0x420ab7
cmp dword [0x506cd8], 0
je 0x420ab2
mov esi, dword [0x507374]
test esi, esi
je 0x420ab2
push 0x4c
pop edx
push 0xa
pop ecx
test ebx, ebx
je 0x41fd33
test edi, edi
je 0x41fccf
cmp dword [ebp - 0x10], 0
jne 0x41fca6
push 8
pop ebx
mov eax, 0x101
mov ecx, edx
mov edi, esi
rep stosd dword es:[edi], eax
lea edi, [eax + 0x2f]
push edi
add esi, edi
push 0
push esi
call fcn.0049a3b0
add esp, 0xc
add esi, edi
push 0x4c
pop edx
sub ebx, 1
jne 0x41fc76
movss xmm2, dword [ebp - 0x18]
jmp 0x41fd30
add esi, 0xd10
mov edi, ecx
push edx
push 0
push esi
call fcn.0049a3b0
add esp, 0xc
add esi, 0x98
push 0x4c
pop edx
sub edi, 1
jne 0x41fcae
movss xmm2, dword [ebp - 0x18]
jmp 0x41fd33
mov esi, dword [0x507374]
add esi, 0x980
cmp dword [ebp - 0x10], 0
jne 0x41fd0f
push 8
pop ebx
push 0x13
pop ecx
mov eax, 0x10001
mov edi, esi
rep stosd dword es:[edi], eax
push edx
mov edi, 0x98
add esi, edi
push 0
push esi
call fcn.0049a3b0
add esp, 0xc
add esi, edi
push 0x4c
pop edx
sub ebx, 1
jne 0x41fce4
jmp 0x41fc9c
push 5
pop edx
push 9
add esi, 0x688
pop ebx
xor eax, eax
mov edi, esi
mov ecx, ebx
add esi, 0x98
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
sub edx, 1
jne 0x41fd1b
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
test edi, edi
jne 0x41fd52
push 0x12c
push edi
push 0x507380
call fcn.0049a3b0
add esp, 0xc
jmp 0x420968
mov esi, dword [ebp - 8]
test esi, esi
jne 0x4202f8
cmp dword [ebp - 0x10], esi
jne 0x420060
cmp byte [0x4f7c60], 2
jne 0x41fedd
mov edi, dword [0x507374]
add edi, 0x850
test ebx, ebx
je 0x420ab2
mov al, byte [0x4f7c61]
or dword [ebp - 0x20], 0xffffffff
shr al, 2
and al, 3
jne 0x41fde2
push 0xf
xor ebx, ebx
pop edx
mov eax, dword [ebp + 8]
xor esi, esi
push 4
movsx eax, byte [ebx + eax]
cmp eax, 0xfffffff8
lea ecx, [eax + 8]
cmovge esi, ecx
cmp esi, edx
pop ecx
cmovg esi, edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub al, cl
imul ecx, esi, 0x98
cbw
push 0xf
mov dl, al
xor dl, ah
sub dl, ah
add dl, 0x12
mov byte [ecx + edi], dl
inc edi
inc ebx
pop edx
cmp ebx, 0x4b
jl 0x41fd9c
jmp 0x420972
cmp al, 1
jne 0x41fe62
push 0xf
xor ebx, ebx
pop edx
mov eax, dword [ebp + 8]
xor esi, esi
push 4
movsx eax, byte [ebx + eax]
cmp eax, 0xfffffff8
lea ecx, [eax + 8]
cmovge esi, ecx
cmp esi, edx
pop ecx
cmovg esi, edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub al, cl
mov ecx, esi
cbw
mov dl, al
xor dl, ah
sub dl, ah
add dl, 0x12
cmp dword [ebp - 0x20], 0xffffffff
cmovne ecx, dword [ebp - 0x20]
imul eax, esi, 0x98
mov dword [ebp - 0x20], esi
add eax, edi
cmp esi, ecx
jl 0x41fe44
sub esi, ecx
inc esi
mov byte [eax], dl
lea eax, [eax - 0x98]
sub esi, 1
jne 0x41fe35
jmp 0x41fe53
sub ecx, esi
mov byte [eax], dl
lea eax, [eax + 0x98]
sub ecx, 1
jne 0x41fe46
inc edi
inc ebx
push 0xf
pop edx
cmp ebx, 0x4b
jl 0x41fdeb
jmp 0x420972
cmp al, 2
jne 0x420975
push 0xf
xor ebx, ebx
pop edx
mov eax, dword [ebp + 8]
xor esi, esi
push 4
movsx eax, byte [ebx + eax]
cmp eax, 0xfffffff8
lea ecx, [eax + 8]
cmovge esi, ecx
cmp esi, edx
pop ecx
cmovg esi, edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub al, cl
imul ecx, esi, 0x98
cbw
mov dl, al
xor dl, ah
sub dl, ah
add ecx, edi
add dl, 0x12
cmp esi, 7
jle 0x41febc
add esi, 0xfffffff9
mov byte [ecx], dl
lea ecx, [ecx - 0x98]
sub esi, 1
jne 0x41fead
jmp 0x41fece
push 8
pop eax
sub eax, esi
mov byte [ecx], dl
lea ecx, [ecx + 0x98]
sub eax, 1
jne 0x41fec1
inc edi
inc ebx
push 0xf
pop edx
cmp ebx, 0x4b
jl 0x41fe6f
jmp 0x420972
xor esi, esi
push 0xf
mov dword [ebp - 0x18], esi
pop ebx
mov al, byte [0x4f7c61]
mov edx, esi
and edx, 0xfffffffc
and al, 0x20
mov byte [ebp - 1], al
jne 0x41ff14
movzx eax, byte [edx + edi + 2]
movzx ecx, byte [edx + edi + 3]
add ecx, eax
movzx eax, byte [edx + edi + 1]
add ecx, eax
movzx eax, byte [edx + edi]
add ecx, eax
shr ecx, 2
jmp 0x41ff18
movzx ecx, byte [esi + edi]
mov edx, dword [esi*4 + 0x507380]
cmp ecx, ebx
cmova ecx, ebx
mov eax, ecx
shl eax, 4
cmp eax, edx
jge 0x41ff37
mov ecx, edx
sub ecx, dword [ebp - 0x1c]
mov eax, ecx
sar ecx, 4
mov dword [esi*4 + 0x507380], eax
test eax, eax
jns 0x41ff4a
and dword [esi*4 + 0x507380], 0
mov eax, dword [0x507374]
xor edx, edx
test ecx, ecx
cmovns edx, ecx
mov cl, byte [0x4f7c61]
add eax, 0x850
and cl, 3
add eax, esi
mov byte [ebp - 2], cl
mov dword [ebp - 0x20], eax
cmp cl, 1
jne 0x41ff76
lea ecx, [edx + 2]
jmp 0x41ff80
push 0x11
cmp cl, 2
pop ecx
jne 0x41ff80
sub ecx, edx
mov edi, dword [esi*4 + 0x5074b0]
mov ebx, edx
shl ebx, 8
cmp edi, ebx
jg 0x41ff9d
mov edi, ebx
mov dword [esi*4 + 0x5075e0], 0x40400000
cmp dword [ebp + 0xc], 0
je 0x42001f
cmp byte [ebp - 1], 0
jne 0x41ffb5
mov eax, esi
and eax, 3
cmp al, 3
je 0x42001f
mov eax, dword [ebp - 0x20]
cmp byte [ebp - 2], 2
je 0x41ffda
xor ebx, ebx
test edx, edx
jle 0x41ffeb
mov esi, dword [ebp - 0x20]
mov al, cl
sub al, bl
inc ebx
mov byte [esi], al
lea esi, [esi + 0x98]
cmp ebx, edx
jl 0x41ffc4
mov esi, dword [ebp - 0x18]
jmp 0x41ffeb
test edx, edx
jle 0x41ffeb
mov byte [eax], cl
lea eax, [eax + 0x98]
sub edx, 1
jne 0x41ffde
cmp byte [0x4f7c64], 0
push 0xf
pop ebx
je 0x420022
mov eax, edi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
cmp eax, ebx
ja 0x420022
add eax, 0xe
imul ecx, eax, 0x98
mov eax, dword [0x507374]
add ecx, esi
mov byte [ecx + eax], 0x17
jmp 0x420022
push 0xf
pop ebx
movss xmm0, dword [esi*4 + 0x5075e0]
cvttss2si eax, xmm0
push 0
mulss xmm0, xmm2
sub edi, eax
pop eax
cmovs edi, eax
mov dword [esi*4 + 0x5074b0], edi
mov edi, dword [ebp + 8]
movss dword [esi*4 + 0x5075e0], xmm0
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x4b
jl 0x41fee5
jmp 0x420968
mov al, byte [0x4f7c60]
cmp al, 1
jne 0x420206
push 0xf
xor esi, esi
mov dword [ebp - 0x20], 0xf00
pop ebx
mov al, byte [0x4f7c61]
mov edx, esi
and edx, 0xfffffffc
and al, 0x20
mov byte [ebp - 2], al
jne 0x4200a8
movzx eax, byte [edi + edx*2 + 2]
movzx ecx, byte [edi + edx*2 + 3]
add ecx, eax
movzx eax, byte [edi + edx*2 + 1]
add ecx, eax
movzx eax, byte [edi + edx*2]
add ecx, eax
shr ecx, 2
jmp 0x4200b5
movzx ecx, byte [edi + esi*2 + 1]
movzx eax, byte [edi + esi*2]
add ecx, eax
shr ecx, 1
mov edx, dword [esi*8 + 0x507380]
cmp ecx, ebx
cmova ecx, ebx
mov eax, ecx
shl eax, 4
cmp eax, edx
jge 0x4200d4
mov ecx, edx
sub ecx, dword [ebp - 0x1c]
mov eax, ecx
sar ecx, 4
mov dword [esi*8 + 0x507380], eax
test eax, eax
jns 0x4200e7
and dword [esi*8 + 0x507380], 0
mov eax, dword [0x507374]
xor edx, edx
test ecx, ecx
cmovns edx, ecx
add eax, 0x1008
add eax, esi
mov dword [ebp - 0x24], eax
mov al, byte [0x4f7c61]
and al, 3
mov byte [ebp - 1], al
cmp al, 1
jne 0x420110
lea ebx, [edx + 2]
jmp 0x420119
push 0x11
pop ebx
cmp al, 2
jne 0x420119
sub ebx, edx
mov edi, dword [esi*8 + 0x5074b0]
mov eax, edx
shl eax, 8
cmp edi, eax
jg 0x420136
mov edi, eax
mov dword [esi*8 + 0x5075e0], 0x40400000
imul eax, edx, 5
push 0xf
pop ecx
push 5
cdq
idiv ecx
mov ecx, eax
pop eax
cmp ecx, eax
cmovg ecx, eax
cmp dword [ebp + 0xc], 0
je 0x4201c8
cmp byte [ebp - 2], 0
jne 0x42015e
mov eax, esi
and eax, 3
cmp al, 3
je 0x4201c8
imul eax, edi, 5
cdq
idiv dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
test ecx, ecx
jle 0x4201a4
cmp byte [ebp - 1], 2
je 0x420191
and dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x24]
mov al, bl
sub al, byte [ebp - 0x18]
add dword [ebp - 0x18], 3
mov byte [edx], al
lea edx, [edx + 0x98]
sub ecx, 1
jne 0x420179
jmp 0x4201a1
mov eax, dword [ebp - 0x24]
mov byte [eax], bl
lea eax, [eax + 0x98]
sub ecx, 1
jne 0x420194
mov eax, dword [ebp - 0x28]
cmp byte [0x4f7c64], 0
je 0x4201c8
push 4
pop ecx
cmp eax, ecx
ja 0x4201c8
add eax, 0x1b
imul ecx, eax, 0x98
mov eax, dword [0x507374]
add ecx, esi
mov byte [ecx + eax], 0x17
movss xmm0, dword [esi*8 + 0x5075e0]
cvttss2si eax, xmm0
push 0
mulss xmm0, xmm2
sub edi, eax
pop eax
cmovs edi, eax
mov dword [esi*8 + 0x5074b0], edi
mov edi, dword [ebp + 8]
movss dword [esi*8 + 0x5075e0], xmm0
inc esi
push 0xf
pop ebx
cmp esi, 0x25
jl 0x420079
jmp 0x420968
cmp al, 2
jne 0x420968
movzx edi, byte [0x4f7c61]
mov eax, dword [0x507374]
push 0xfffffffffffffffb
pop ebx
shr edi, 2
add eax, 0x1008
push 0xf
and edi, 3
mov dword [ebp - 0x1c], eax
xor esi, esi
pop ecx
mov eax, dword [ebp + 8]
push 4
movsx eax, byte [esi + eax]
add eax, 8
imul eax, eax, 5
cdq
and edx, ecx
xor ecx, ecx
add eax, edx
sar eax, 4
test eax, eax
cmovns ecx, eax
pop eax
cmp ecx, eax
cmovg ecx, eax
test edi, edi
je 0x4202d5
cmp ebx, 0xfffffffb
je 0x4202d5
cmp edi, 1
jne 0x42029b
imul eax, ecx, 0x98
mov edx, ebx
mov ebx, ecx
add eax, dword [ebp - 0x1c]
add eax, esi
cmp ecx, edx
jl 0x420288
sub ecx, edx
inc ecx
mov byte [eax], 0x12
lea eax, [eax - 0x98]
sub ecx, 1
jne 0x420278
jmp 0x4202e6
sub edx, ecx
inc edx
mov byte [eax], 0x12
lea eax, [eax + 0x98]
sub edx, 1
jne 0x42028b
jmp 0x4202e6
cmp edi, 2
jne 0x4202e6
imul eax, ecx, 0x98
add eax, dword [ebp - 0x1c]
add eax, esi
cmp ecx, edi
jl 0x4202c0
dec ecx
mov byte [eax], 0x12
lea eax, [eax - 0x98]
sub ecx, 1
jne 0x4202b0
jmp 0x4202e6
push 3
pop edx
sub edx, ecx
mov byte [eax], 0x12
lea eax, [eax + 0x98]
sub edx, 1
jne 0x4202c5
jmp 0x4202e6
imul eax, ecx, 0x98
mov ebx, ecx
mov ecx, dword [ebp - 0x1c]
add eax, esi
mov byte [eax + ecx], 0x12
inc esi
push 0xf
pop ecx
cmp esi, 0x26
jl 0x420230
jmp 0x420968
cmp dword [ebp - 0x10], 0
jne 0x4206b2
cmp byte [0x4f7c60], 2
jne 0x4204f0
mov edi, dword [0x507374]
test ebx, ebx
je 0x420ab2
mov al, byte [0x4f7c61]
or dword [ebp - 0x28], 0xffffffff
shr al, 2
and al, 3
jne 0x420395
push 0xf
xor ebx, ebx
pop edx
mov ecx, dword [ebp + 8]
mov eax, ebx
shr eax, 1
xor esi, esi
push 4
movsx eax, byte [eax + ecx]
cmp eax, 0xfffffff8
lea ecx, [eax + 8]
cmovge esi, ecx
cmp esi, edx
pop ecx
cmovg esi, edx
add ebx, 2
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub al, cl
imul ecx, esi, 0x130
cbw
push 0xf
mov dl, al
xor dl, ah
sub dl, ah
add dl, 0x12
mov byte [ecx + edi], dl
lea edi, [edi + 2]
mov byte [ecx + edi + 0x96], dl
mov byte [ecx + edi - 1], dl
mov byte [ecx + edi + 0x97], dl
pop edx
cmp ebx, 0x96
jl 0x420332
jmp 0x420972
cmp al, 1
jne 0x420447
push 0xf
xor ebx, ebx
pop edx
mov ecx, dword [ebp + 8]
mov eax, ebx
shr eax, 1
xor esi, esi
push 4
movsx eax, byte [eax + ecx]
cmp eax, 0xfffffff8
lea ecx, [eax + 8]
cmovge esi, ecx
cmp esi, edx
pop ecx
cmovg esi, edx
mov eax, esi
cdq
sub eax, edx
mov edx, esi
sar eax, 1
sub al, cl
cbw
mov cl, al
xor cl, ah
sub cl, ah
add cl, 0x12
cmp dword [ebp - 0x28], 0xffffffff
cmovne edx, dword [ebp - 0x28]
imul eax, esi, 0x130
mov dword [ebp - 0x28], esi
inc eax
add eax, edi
cmp esi, edx
jl 0x42040f
sub esi, edx
inc esi
mov byte [eax - 1], cl
mov byte [eax + 0x97], cl
mov byte [eax], cl
lea eax, [eax - 0x130]
mov byte [eax + 0x1c8], cl
sub esi, 1
jne 0x4203f1
jmp 0x42042d
sub edx, esi
mov byte [eax - 1], cl
mov byte [eax + 0x97], cl
mov byte [eax], cl
lea eax, [eax + 0x130]
mov byte [eax - 0x98], cl
sub edx, 1
jne 0x420411
add ebx, 2
add edi, 2
push 0xf
pop edx
cmp ebx, 0x96
jl 0x4203a2
jmp 0x420972
cmp al, 2
jne 0x420975
push 0xf
xor ebx, ebx
pop edx
mov ecx, dword [ebp + 8]
mov eax, ebx
shr eax, 1
xor esi, esi
push 4
movsx eax, byte [eax + ecx]
cmp eax, 0xfffffff8
lea ecx, [eax + 8]
cmovge esi, ecx
cmp esi, edx
pop ecx
cmovg esi, edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub al, cl
imul ecx, esi, 0x130
cbw
mov dl, al
xor dl, ah
sub dl, ah
inc ecx
add dl, 0x12
add ecx, edi
cmp esi, 7
jle 0x4204b5
add esi, 0xfffffff9
mov byte [ecx - 1], dl
mov byte [ecx + 0x97], dl
mov byte [ecx], dl
lea ecx, [ecx - 0x130]
mov byte [ecx + 0x1c8], dl
sub esi, 1
jne 0x420497
jmp 0x4204d6
push 8
pop eax
sub eax, esi
mov byte [ecx - 1], dl
mov byte [ecx + 0x97], dl
mov byte [ecx], dl
lea ecx, [ecx + 0x130]
mov byte [ecx - 0x98], dl
sub eax, 1
jne 0x4204ba
add ebx, 2
add edi, 2
push 0xf
pop edx
cmp ebx, 0x96
jl 0x420454
jmp 0x420972
xor eax, eax
push 0xf
mov dword [ebp - 0x18], eax
pop esi
cdq
sub eax, edx
mov ebx, eax
mov al, byte [0x4f7c61]
sar ebx, 1
mov edx, ebx
and edx, 0xfffffffc
and al, 0x20
mov byte [ebp - 2], al
jne 0x42052e
movzx eax, byte [edx + edi + 2]
movzx ecx, byte [edx + edi + 3]
add ecx, eax
movzx eax, byte [edx + edi + 1]
add ecx, eax
movzx eax, byte [edx + edi]
add ecx, eax
shr ecx, 2
jmp 0x420532
movzx ecx, byte [ebx + edi]
cmp ecx, esi
mov edi, ebx
cmova ecx, esi
shl edi, 2
mov eax, ecx
mov dword [ebp - 0x28], edi
shl eax, 4
mov edx, dword [edi + 0x507380]
cmp eax, edx
jge 0x420558
mov ecx, edx
sub ecx, dword [ebp - 0x1c]
mov eax, ecx
sar ecx, 4
mov dword [edi + 0x507380], eax
test eax, eax
jns 0x420569
and dword [edi + 0x507380], 0
mov al, byte [0x4f7c61]
xor esi, esi
mov edx, dword [ebp - 0x18]
test ecx, ecx
cmovns esi, ecx
add edx, dword [0x507374]
and al, 3
mov byte [ebp - 1], al
cmp al, 1
jne 0x42058c
lea ecx, [esi + 2]
jmp 0x420595
push 0x11
pop ecx
cmp al, 2
jne 0x420595
sub ecx, esi
mov edi, dword [edi + 0x5074b0]
mov eax, esi
shl eax, 8
mov dword [ebp - 0x20], ecx
cmp edi, eax
jg 0x4205b6
mov edi, eax
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x5075e0], 0x40400000
add esi, esi
cmp dword [ebp + 0xc], 0
je 0x420667
cmp byte [ebp - 2], 0
jne 0x4205d4
and ebx, 3
cmp bl, 3
je 0x420667
cmp byte [ebp - 1], 2
je 0x4205fb
xor ebx, ebx
test esi, esi
jle 0x42060f
mov eax, ebx
shr eax, 1
sub cl, al
inc ebx
mov byte [edx + 1], cl
mov byte [edx], cl
lea edx, [edx + 0x98]
mov ecx, dword [ebp - 0x20]
cmp ebx, esi
jl 0x4205e0
jmp 0x42060f
test esi, esi
jle 0x42060f
mov byte [edx + 1], cl
mov byte [edx], cl
lea edx, [edx + 0x98]
sub esi, 1
jne 0x4205ff
cmp byte [0x4f7c64], 0
je 0x420667
mov ecx, edi
test ecx, ecx
jns 0x420624
add ecx, 0xff
sar ecx, 8
lea eax, [ecx - 1]
cmp eax, 0xe
ja 0x420667
imul eax, ecx, 0x130
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov eax, dword [0x507374]
mov byte [ecx + eax + 1], 0x17
mov eax, dword [0x507374]
mov byte [ecx + eax], 0x17
mov eax, dword [0x507374]
mov byte [ecx + eax + 0x99], 0x17
mov eax, dword [0x507374]
mov byte [ecx + eax + 0x98], 0x17
mov ecx, dword [ebp - 0x28]
movaps xmm0, xmm2
push 0
movss xmm1, dword [ecx + 0x5075e0]
cvttss2si eax, xmm1
mulss xmm0, xmm1
sub edi, eax
pop eax
cmovs edi, eax
mov eax, dword [ebp - 0x18]
add eax, 2
mov dword [ecx + 0x5074b0], edi
mov edi, dword [ebp + 8]
movss dword [ecx + 0x5075e0], xmm0
mov dword [ebp - 0x18], eax
push 0xf
pop esi
cmp eax, 0x96
jl 0x4204f8
jmp 0x420968
mov al, byte [0x4f7c60]
push 0xf
pop ebx
mov dword [ebp - 0x30], ebx
cmp al, 2
jne 0x4207b9
movzx edi, byte [0x4f7c61]
mov eax, dword [0x507374]
shr edi, 2
add eax, 0xd10
push 0xfffffffffffffffb
and edi, 3
mov dword [ebp - 0x20], eax
pop ebx
xor esi, esi
mov eax, dword [ebp + 8]
xor ecx, ecx
push 9
movsx eax, byte [esi + eax]
add eax, 8
imul eax, eax, 0xa
cdq
and edx, 0xf
add eax, edx
sar eax, 4
test eax, eax
cmovns ecx, eax
pop eax
cmp ecx, eax
cmovg ecx, eax
test edi, edi
je 0x420793
cmp ebx, 0xfffffffb
je 0x420793
cmp edi, 1
jne 0x420754
imul eax, ecx, 0x98
mov edx, ebx
mov ebx, ecx
add eax, dword [ebp - 0x20]
add eax, esi
cmp ecx, edx
jl 0x420741
sub ecx, edx
inc ecx
mov byte [eax], 0x12
lea eax, [eax - 0x98]
sub ecx, 1
jne 0x420731
jmp 0x4207a4
sub edx, ecx
inc edx
mov byte [eax], 0x12
lea eax, [eax + 0x98]
sub edx, 1
jne 0x420744
jmp 0x4207a4
cmp edi, 2
jne 0x4207a4
imul eax, ecx, 0x98
push 4
pop edx
add eax, dword [ebp - 0x20]
add eax, esi
cmp ecx, edx
jl 0x42077e
add ecx, 0xfffffffd
mov byte [eax], 0x12
lea eax, [eax - 0x98]
sub ecx, 1
jne 0x42076e
jmp 0x4207a4
push 5
pop edx
sub edx, ecx
mov byte [eax], 0x12
lea eax, [eax + 0x98]
sub edx, 1
jne 0x420783
jmp 0x4207a4
imul eax, ecx, 0x98
mov ebx, ecx
mov ecx, dword [ebp - 0x20]
add eax, esi
mov byte [eax + ecx], 0x12
inc esi
cmp esi, 0x4b
jl 0x4206e4
mov al, byte [0x4f7c60]
mov edi, dword [ebp + 8]
push 0xf
pop ebx
cmp al, 1
jne 0x420968
xor esi, esi
mov dword [ebp - 0x20], 0xf00
mov dword [ebp - 0x2c], esi
mov al, byte [0x4f7c61]
mov edx, esi
and edx, 0xfffffffc
and al, 0x20
mov byte [ebp - 2], al
jne 0x4207fc
movzx eax, byte [edx + edi + 2]
movzx ecx, byte [edx + edi + 3]
add ecx, eax
movzx eax, byte [edx + edi + 1]
add ecx, eax
movzx eax, byte [edx + edi]
add ecx, eax
shr ecx, 2
jmp 0x420800
movzx ecx, byte [esi + edi]
mov edx, dword [esi*4 + 0x507380]
cmp ecx, ebx
cmova ecx, ebx
mov eax, ecx
shl eax, 4
cmp eax, edx
jge 0x42081f
mov ecx, edx
sub ecx, dword [ebp - 0x1c]
mov eax, ecx
sar ecx, 4
mov dword [esi*4 + 0x507380], eax
test eax, eax
jns 0x420832
and dword [esi*4 + 0x507380], 0
mov eax, dword [0x507374]
xor edx, edx
test ecx, ecx
cmovns edx, ecx
mov cl, byte [0x4f7c61]
add eax, 0xd10
and cl, 3
add eax, esi
mov byte [ebp - 1], cl
mov dword [ebp - 0x18], eax
cmp cl, 1
jne 0x42085e
lea ebx, [edx + 2]
jmp 0x420868
push 0x11
pop ebx
cmp cl, 2
jne 0x420868
sub ebx, edx
mov edi, dword [esi*4 + 0x5074b0]
mov eax, edx
shl eax, 8
mov dword [ebp - 0x24], edi
cmp edi, eax
jg 0x42088b
mov edi, eax
mov dword [esi*4 + 0x5075e0], 0x40400000
mov dword [ebp - 0x24], edi
imul eax, edx, 0xa
cdq
idiv dword [ebp - 0x30]
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x28], eax
je 0x42092c
cmp byte [ebp - 2], 0
jne 0x4208b2
mov ecx, esi
and ecx, 3
cmp cl, 3
je 0x42092c
mov cl, byte [ebp - 1]
imul eax, edi, 0xa
cdq
idiv dword [ebp - 0x20]
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], edx
test eax, eax
jle 0x42090a
cmp cl, 2
je 0x4208fa
xor edi, edi
mov esi, eax
mov eax, edi
add edi, 0xf
cdq
push 0xa
pop ecx
idiv ecx
mov cl, bl
sub cl, al
mov eax, dword [ebp - 0x18]
mov byte [eax], cl
add eax, 0x98
mov dword [ebp - 0x18], eax
sub esi, 1
jne 0x4208ce
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x34]
jmp 0x42090a
mov ecx, dword [ebp - 0x18]
mov byte [ecx], bl
lea ecx, [ecx + 0x98]
sub eax, 1
jne 0x4208fd
cmp byte [0x4f7c64], 0
je 0x42092c
cmp edx, 9
ja 0x42092c
lea eax, [edx + 0x16]
imul ecx, eax, 0x98
mov eax, dword [0x507374]
add ecx, esi
mov byte [ecx + eax], 0x17
movss xmm0, dword [esi*4 + 0x5075e0]
cvttss2si eax, xmm0
push 0
mulss xmm0, xmm2
sub edi, eax
pop eax
cmovs edi, eax
mov dword [esi*4 + 0x5074b0], edi
mov edi, dword [ebp + 8]
movss dword [esi*4 + 0x5075e0], xmm0
inc esi
mov dword [ebp - 0x2c], esi
push 0xf
pop ebx
cmp esi, 0x4b
jl 0x4207cd
cmp dword [ebp + 0xc], 0
je 0x420ab2
mov esi, dword [ebp - 8]
cmp dword [0x4f7c74], 0
je 0x420a12
mov eax, dword [0x530df0]
test eax, eax
je 0x420a12
push eax
lea ecx, [ebp - 0xc]
call fcn.00485a48
lea ecx, [ebp - 0xc]
call fcn.004081ec
test eax, eax
je 0x420a0a
lea ecx, [ebp - 0xc]
call fcn.004081ec
push eax
call fcn.00419cef
cmp dword [ebp + 8], 0
pop ecx
je 0x4209fa
push 0xcc0020
xor edx, edx
mov ecx, esi
push edx
push edx
push dword [0x506d08]
cmp dword [ebp - 0x10], edx
jne 0x4209d9
push 0x10
pop eax
shl eax, cl
push eax
push 0x4c
jmp 0x4209e1
push 5
pop eax
shl eax, cl
push eax
push 0x26
pop eax
mov ecx, esi
shl eax, cl
lea ecx, [ebp - 0xc]
push eax
push edx
push edx
call fcn.004081ec
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
jmp 0x420a0a
push 0
push 0
push dword [0x531f70]
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [ebp - 0xc]
jmp 0x420aad
cmp dword [0x4f7c80], 0
je 0x420ab2
cmp dword [0x4f7c84], 0x15e
jl 0x420ab2
cmp dword [0x4f7c88], 0xe
je 0x420ab2
mov eax, dword [0x530df4]
test eax, eax
je 0x420ab2
cmp dword [0x531f78], 0
je 0x420ab2
push eax
lea ecx, [ebp - 0x14]
call fcn.00485a48
lea ecx, [ebp - 0x14]
call fcn.004081ec
test eax, eax
je 0x420aaa
lea ecx, [ebp - 0x14]
call fcn.004081ec
push eax
call fcn.00419cef
cmp dword [ebp + 8], 0
pop ecx
je 0x420a9a
push 0xcc0020
xor eax, eax
lea ecx, [ebp - 0x14]
push eax
push eax
push dword [0x506d08]
push 0x10
push 0x48
push eax
push eax
call fcn.004081ec
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
jmp 0x420aaa
push 0
push 0
push dword [0x531f78]
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [ebp - 0x14]
call fcn.00485a66
mov eax, dword [0x507378]
pop edi
dec eax
pop esi
mov dword [0x507378], eax
pop ebx
leave
ret