Function at 0x420e70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x34
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x6cfc]
cmp eax, 0x1180
jne 0x42120f
mov eax, dword [ebx + 0x6cf4]
cmp eax, 0x2100
je 0x421102
cmp eax, 0x6000
jne 0x42104c
mov eax, dword [ebx + 0x6ce8]
mov ecx, dword [ebx + 0x6ce0]
shr eax, 2
je 0x42103d
cmp eax, 4
jb 0x421adc
mov esi, ecx
and esi, 0xf
je 0x420ee5
test esi, 3
jne 0x421adc
neg esi
add esi, 0x10
shr esi, 2
lea edx, [esi + 4]
cmp eax, edx
jb 0x421adc
mov edi, eax
sub edi, esi
and edi, 3
neg edi
add edi, eax
test esi, esi
jbe 0x420f23
mov dword [esp], eax
xor edx, edx
mov ebx, dword [ecx + edx*4]
test ebx, ebx
jl 0x421ac3
add ebx, 0x80000000
mov dword [ecx + edx*4], ebx
inc edx
cmp edx, esi
jb 0x420f04
mov eax, dword [esp]
mov ebx, dword [ebp + 8]
movdqu xmm1, xmmword [0x4bb9b0]
pcmpeqd xmm0, xmm0
nop
movdqu xmm6, xmmword [ecx + esi*4]
movdqa xmm3, xmm1
pcmpeqd xmm3, xmm6
movdqa xmm4, xmm0
pxor xmm2, xmm2
pxor xmm4, xmm3
pcmpgtd xmm2, xmm6
paddd xmm6, xmm1
pand xmm4, xmm2
pand xmm3, xmm2
pxor xmm2, xmm0
movdqa xmm5, xmm4
pand xmm2, xmm6
pand xmm6, xmm4
pandn xmm3, xmm2
pandn xmm5, xmm3
por xmm6, xmm5
movdqu xmmword [ecx + esi*4], xmm6
add esi, 4
cmp esi, edi
jb 0x420f30
cmp edi, eax
jae 0x420f9e
mov esi, dword [ecx + edi*4]
test esi, esi
jl 0x421aaa
add esi, 0x80000000
mov dword [ecx + edi*4], esi
inc edi
cmp edi, eax
jb 0x420f85
mov eax, dword [ebx + 0x6ce8]
mov ecx, dword [ebx + 0x6ce0]
shr eax, 2
mov esi, ecx
je 0x42103f
mov edi, eax
shr edi, 1
je 0x421aa0
mov dword [esp], eax
xor edx, edx
movzx eax, byte [ecx + edx*8 + 1]
lea esi, [edx + edx*2]
mov byte [ecx + esi*2], al
movzx ebx, byte [ecx + edx*8 + 2]
mov byte [ecx + esi*2 + 1], bl
movzx ebx, byte [ecx + edx*8 + 3]
mov byte [ecx + esi*2 + 2], bl
movzx ebx, byte [ecx + edx*8 + 5]
mov byte [ecx + esi*2 + 3], bl
movzx ebx, byte [ecx + edx*8 + 6]
mov byte [ecx + esi*2 + 4], bl
movzx ebx, byte [ecx + edx*8 + 7]
inc edx
mov byte [ecx + esi*2 + 5], bl
cmp edx, edi
jb 0x420fc4
mov eax, dword [esp]
lea esi, [edx + edx*2]
mov ebx, dword [ebp + 8]
lea esi, [ecx + esi*2]
lea edi, [edx + edx + 1]
lea edx, [edi - 1]
cmp edx, eax
jae 0x421035
movzx eax, byte [ecx + edi*4 - 3]
lea esi, [edi + edi*2]
add esi, ecx
mov byte [esi - 3], al
movzx edx, byte [ecx + edi*4 - 2]
mov byte [esi - 2], dl
movzx ecx, byte [ecx + edi*4 - 1]
mov byte [esi - 1], cl
mov ecx, dword [ebx + 0x6ce0]
jmp 0x42103f
mov esi, ecx
sub esi, ecx
mov dword [ebx + 0x6ce8], esi
jmp 0x421a7e
cmp eax, 0x5080
jne 0x421a7e
mov edx, dword [ebx + 0x6ce8]
mov eax, edx
mov ecx, dword [ebx + 0x6ce0]
mov esi, ecx
shr eax, 2
je 0x4210f5
shr edx, 3
je 0x421ae3
mov dword [esp], eax
xor edi, edi
movzx eax, byte [ecx + edi*8 + 1]
lea esi, [edi + edi*2]
mov byte [ecx + esi*2], al
movzx ebx, byte [ecx + edi*8 + 2]
mov byte [ecx + esi*2 + 1], bl
movzx ebx, byte [ecx + edi*8 + 3]
mov byte [ecx + esi*2 + 2], bl
movzx ebx, byte [ecx + edi*8 + 5]
mov byte [ecx + esi*2 + 3], bl
movzx ebx, byte [ecx + edi*8 + 6]
mov byte [ecx + esi*2 + 4], bl
movzx ebx, byte [ecx + edi*8 + 7]
inc edi
mov byte [ecx + esi*2 + 5], bl
cmp edi, edx
jb 0x42107e
mov eax, dword [esp]
lea edx, [edi + edi*2]
mov ebx, dword [ebp + 8]
lea esi, [ecx + edx*2]
lea edi, [edi + edi + 1]
lea edx, [edi - 1]
cmp edx, eax
jae 0x4210ef
movzx eax, byte [ecx + edi*4 - 3]
lea esi, [edi + edi*2]
add esi, ecx
mov byte [esi - 3], al
movzx edx, byte [ecx + edi*4 - 2]
mov byte [esi - 2], dl
movzx ecx, byte [ecx + edi*4 - 1]
mov byte [esi - 1], cl
mov ecx, dword [ebx + 0x6ce0]
sub esi, ecx
mov dword [ebx + 0x6ce8], esi
jmp 0x421a7e
mov eax, dword [ebx + 0x6ce8]
mov esi, dword [ebx + 0x6ce0]
shr eax, 2
je 0x421a7e
cmp eax, 4
jb 0x421b1f
mov edi, esi
and edi, 0xf
je 0x42113b
test edi, 3
jne 0x421b1f
neg edi
add edi, 0x10
shr edi, 2
lea edx, [edi + 4]
cmp eax, edx
jb 0x421b1f
mov ecx, eax
sub ecx, edi
and ecx, 3
neg ecx
add ecx, eax
test edi, edi
jbe 0x421179
mov dword [esp], eax
xor edx, edx
mov ebx, dword [esi + edx*4]
test ebx, ebx
jl 0x421b06
add ebx, 0x80000000
mov dword [esi + edx*4], ebx
inc edx
cmp edx, edi
jb 0x42115a
mov eax, dword [esp]
mov ebx, dword [ebp + 8]
movdqu xmm1, xmmword [0x4bb9b0]
pcmpeqd xmm0, xmm0
nop dword [eax]
nop dword [eax]
movdqu xmm7, xmmword [esi + edi*4]
movdqa xmm4, xmm1
pcmpeqd xmm4, xmm7
movdqa xmm5, xmm0
pxor xmm2, xmm2
pxor xmm5, xmm4
pcmpgtd xmm2, xmm7
movdqa xmm3, xmm1
pand xmm5, xmm2
pand xmm4, xmm2
paddd xmm3, xmm7
pxor xmm2, xmm0
pand xmm3, xmm2
movdqa xmm6, xmm5
pandn xmm4, xmm3
paddd xmm7, xmm1
pandn xmm6, xmm4
pand xmm7, xmm5
por xmm7, xmm6
movdqu xmmword [esi + edi*4], xmm7
add edi, 4
cmp edi, ecx
jb 0x421190
cmp ecx, eax
jae 0x421a7e
mov edi, dword [esi + ecx*4]
test edi, edi
jl 0x421aed
add edi, 0x80000000
mov dword [esi + ecx*4], edi
inc ecx
cmp ecx, eax
jb 0x4211f1
jmp 0x421a7e
cmp eax, 0xd0
jne 0x421a7e
mov eax, dword [ebx + 0x6cf4]
cmp eax, 0x60
je 0x4223e1
cmp eax, 0x200
je 0x42213e
cmp eax, 0x1180
je 0x421f98
cmp eax, 0x2100
je 0x4217eb
cmp eax, 0x6000
jne 0x42159c
mov edx, dword [ebx + 0x6ce8]
mov dword [esp + 0x14], edx
shr edx, 1
mov ecx, dword [ebx + 0x6ce0]
lea eax, [edx*4]
cmp eax, dword [ebx + 0x6cec]
ja 0x4213ce
test edx, edx
jle 0x4213c6
lea edi, [ecx + edx*4 - 4]
lea esi, [ecx + edx*2 - 2]
sub edi, esi
cmp edi, eax
jg 0x42129f
mov esi, edi
lea edi, [edx + edx]
neg esi
cmp esi, edi
jle 0x421344
neg edx
dec edx
neg edx
dec edx
cmp edx, 4
jl 0x421b26
mov edi, ecx
and edi, 0xf
je 0x4212c9
test edi, 3
jne 0x421b26
neg edi
add edi, 0x10
shr edi, 2
lea esi, [edi + 4]
cmp edx, esi
jl 0x421b26
mov esi, edx
sub esi, edi
and esi, 3
neg esi
add esi, edx
test edi, edi
jbe 0x421307
mov dword [esp], 0
mov dword [esp + 4], edx
mov ebx, dword [esp]
movzx edx, word [ecx + ebx*2]
shl edx, 0x10
mov dword [ecx + ebx*4], edx
inc ebx
cmp ebx, edi
jb 0x4212f1
mov edx, dword [esp + 4]
mov ebx, dword [ebp + 8]
movq xmm0, qword [ecx + edi*2]
punpcklwd xmm0, xmm0
psrad xmm0, 0x10
pslld xmm0, 0x10
movdqu xmmword [ecx + edi*4], xmm0
add edi, 4
cmp edi, esi
jb 0x421307
cmp esi, edx
jae 0x421339
movzx edi, word [ecx + esi*2]
shl edi, 0x10
mov dword [ecx + esi*4], edi
inc esi
cmp esi, edx
jb 0x42132a
mov ecx, dword [ebx + 0x6ce0]
jmp 0x4213c6
shr dword [esp + 0x14], 2
je 0x421b2d
xor esi, esi
lea edi, [ecx + edx*2]
mov dword [esp], edi
lea edi, [ecx + edx*4]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
mov edx, esi
mov ecx, dword [esp + 8]
mov ebx, edi
mov eax, dword [esp]
movzx edi, word [edx + eax - 2]
inc esi
shl edi, 0x10
mov dword [ecx + ebx - 4], edi
movzx edi, word [edx + eax - 4]
add edx, 0xfffffffc
shl edi, 0x10
mov dword [ecx + ebx - 8], edi
add ecx, 0xfffffff8
cmp esi, dword [esp + 0x14]
jb 0x421375
mov ecx, dword [esp + 0xc]
lea edi, [esi + esi + 1]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 4]
mov ebx, dword [ebp + 8]
lea esi, [edi - 1]
cmp esi, edx
jae 0x421339
sub edx, edi
movzx esi, word [ecx + edx*2]
shl esi, 0x10
mov dword [ecx + edx*4], esi
mov ecx, dword [ebx + 0x6ce0]
mov dword [ebx + 0x6ce8], eax
jmp 0x4213fa
push 2
call fcn.0049ba21
push dword [0x52c00c]
push 0x29e
push str._.........._srclibmpg123_format.c:_i__error:__s_n
push eax
call fcn.0040f2f0
add esp, 0x14
mov ecx, dword [ebx + 0x6ce0]
mov eax, dword [ebx + 0x6ce8]
shr eax, 2
je 0x42158d
cmp eax, 4
jb 0x421b73
mov esi, ecx
and esi, 0xf
je 0x421427
test esi, 3
jne 0x421b73
neg esi
add esi, 0x10
shr esi, 2
lea edx, [esi + 4]
cmp eax, edx
jb 0x421b73
mov edi, eax
sub edi, esi
and edi, 3
neg edi
add edi, eax
test esi, esi
jbe 0x421467
mov dword [esp + 0x10], eax
xor edx, edx
mov ebx, dword [ecx + edx*4]
test ebx, ebx
jl 0x421b5a
add ebx, 0x80000000
mov dword [ecx + edx*4], ebx
inc edx
cmp edx, esi
jb 0x421447
mov eax, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
movdqu xmm1, xmmword [0x4bb9b0]
pcmpeqd xmm0, xmm0
nop dword [eax + eax]
nop dword [eax + eax]
movdqu xmm6, xmmword [ecx + esi*4]
movdqa xmm3, xmm1
pcmpeqd xmm3, xmm6
movdqa xmm4, xmm0
pxor xmm2, xmm2
pxor xmm4, xmm3
pcmpgtd xmm2, xmm6
paddd xmm6, xmm1
pand xmm4, xmm2
pand xmm3, xmm2
pxor xmm2, xmm0
movdqa xmm5, xmm4
pand xmm2, xmm6
pand xmm6, xmm4
pandn xmm3, xmm2
pandn xmm5, xmm3
por xmm6, xmm5
movdqu xmmword [ecx + esi*4], xmm6
add esi, 4
cmp esi, edi
jb 0x421480
cmp edi, eax
jae 0x4214ee
mov esi, dword [ecx + edi*4]
test esi, esi
jl 0x421b41
add esi, 0x80000000
mov dword [ecx + edi*4], esi
inc edi
cmp edi, eax
jb 0x4214d5
mov eax, dword [ebx + 0x6ce8]
mov ecx, dword [ebx + 0x6ce0]
shr eax, 2
mov esi, ecx
je 0x42158f
mov edi, eax
shr edi, 1
je 0x421b37
mov dword [esp], eax
xor edx, edx
movzx eax, byte [ecx + edx*8 + 1]
lea esi, [edx + edx*2]
mov byte [ecx + esi*2], al
movzx ebx, byte [ecx + edx*8 + 2]
mov byte [ecx + esi*2 + 1], bl
movzx ebx, byte [ecx + edx*8 + 3]
mov byte [ecx + esi*2 + 2], bl
movzx ebx, byte [ecx + edx*8 + 5]
mov byte [ecx + esi*2 + 3], bl
movzx ebx, byte [ecx + edx*8 + 6]
mov byte [ecx + esi*2 + 4], bl
movzx ebx, byte [ecx + edx*8 + 7]
inc edx
mov byte [ecx + esi*2 + 5], bl
cmp edx, edi
jb 0x421514
mov eax, dword [esp]
lea esi, [edx + edx*2]
mov ebx, dword [ebp + 8]
lea esi, [ecx + esi*2]
lea edi, [edx + edx + 1]
lea edx, [edi - 1]
cmp edx, eax
jae 0x421585
movzx eax, byte [ecx + edi*4 - 3]
lea esi, [edi + edi*2]
add esi, ecx
mov byte [esi - 3], al
movzx edx, byte [ecx + edi*4 - 2]
mov byte [esi - 2], dl
movzx ecx, byte [ecx + edi*4 - 1]
mov byte [esi - 1], cl
mov ecx, dword [ebx + 0x6ce0]
jmp 0x42158f
mov esi, ecx
sub esi, ecx
mov dword [ebx + 0x6ce8], esi
jmp 0x421a7e
cmp eax, 0x5080
jne 0x421a7e
mov eax, dword [ebx + 0x6ce8]
mov dword [esp + 0x14], eax
shr eax, 1
mov ecx, dword [ebx + 0x6ce0]
lea edx, [eax*4]
cmp edx, dword [ebx + 0x6cec]
ja 0x421720
test eax, eax
jle 0x421718
lea edi, [ecx + eax*4 - 4]
lea esi, [ecx + eax*2 - 2]
sub edi, esi
cmp edi, edx
jg 0x4215f1
mov esi, edi
lea edi, [eax + eax]
neg esi
cmp esi, edi
jle 0x421696
neg eax
dec eax
neg eax
dec eax
cmp eax, 4
jl 0x421b7a
mov edi, ecx
and edi, 0xf
je 0x42161b
test edi, 3
jne 0x421b7a
neg edi
add edi, 0x10
shr edi, 2
lea esi, [edi + 4]
cmp eax, esi
jl 0x421b7a
mov esi, eax
sub esi, edi
and esi, 3
neg esi
add esi, eax
test edi, edi
jbe 0x421659
mov dword [esp], 0
mov dword [esp + 4], eax
mov ebx, dword [esp]
movzx eax, word [ecx + ebx*2]
shl eax, 0x10
mov dword [ecx + ebx*4], eax
inc ebx
cmp ebx, edi
jb 0x421643
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 8]
movq xmm0, qword [ecx + edi*2]
punpcklwd xmm0, xmm0
psrad xmm0, 0x10
pslld xmm0, 0x10
movdqu xmmword [ecx + edi*4], xmm0
add edi, 4
cmp edi, esi
jb 0x421659
cmp esi, eax
jae 0x42168b
movzx edi, word [ecx + esi*2]
shl edi, 0x10
mov dword [ecx + esi*4], edi
inc esi
cmp esi, eax
jb 0x42167c
mov ecx, dword [ebx + 0x6ce0]
jmp 0x421718
shr dword [esp + 0x14], 2
je 0x421b81
xor esi, esi
lea edi, [ecx + eax*2]
mov dword [esp], edi
lea edi, [ecx + eax*4]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], eax
mov edx, esi
mov ecx, dword [esp + 8]
mov ebx, edi
mov eax, dword [esp]
movzx edi, word [edx + eax - 2]
inc esi
shl edi, 0x10
mov dword [ecx + ebx - 4], edi
movzx edi, word [edx + eax - 4]
add edx, 0xfffffffc
shl edi, 0x10
mov dword [ecx + ebx - 8], edi
add ecx, 0xfffffff8
cmp esi, dword [esp + 0x14]
jb 0x4216c7
mov edx, dword [esp + 0xc]
lea edi, [esi + esi + 1]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 8]
lea esi, [edi - 1]
cmp esi, eax
jae 0x42168b
sub eax, edi
movzx esi, word [ecx + eax*2]
shl esi, 0x10
mov dword [ecx + eax*4], esi
mov ecx, dword [ebx + 0x6ce0]
mov dword [ebx + 0x6ce8], edx
jmp 0x42174c
push 2
call fcn.0049ba21
push dword [0x52c00c]
push 0x29e
push str._.........._srclibmpg123_format.c:_i__error:__s_n
push eax
call fcn.0040f2f0
add esp, 0x14
mov ecx, dword [ebx + 0x6ce0]
mov edx, dword [ebx + 0x6ce8]
mov eax, edx
mov esi, ecx
shr eax, 2
je 0x4217de
shr edx, 3
je 0x421b8b
mov dword [esp], eax
xor edi, edi
movzx eax, byte [ecx + edi*8 + 1]
lea esi, [edi + edi*2]
mov byte [ecx + esi*2], al
movzx ebx, byte [ecx + edi*8 + 2]
mov byte [ecx + esi*2 + 1], bl
movzx ebx, byte [ecx + edi*8 + 3]
mov byte [ecx + esi*2 + 2], bl
movzx ebx, byte [ecx + edi*8 + 5]
mov byte [ecx + esi*2 + 3], bl
movzx ebx, byte [ecx + edi*8 + 6]
mov byte [ecx + esi*2 + 4], bl
movzx ebx, byte [ecx + edi*8 + 7]
inc edi
mov byte [ecx + esi*2 + 5], bl
cmp edi, edx
jb 0x421767
mov eax, dword [esp]
lea edx, [edi + edi*2]
mov ebx, dword [ebp + 8]
lea esi, [ecx + edx*2]
lea edi, [edi + edi + 1]
lea edx, [edi - 1]
cmp edx, eax
jae 0x4217d8
movzx eax, byte [ecx + edi*4 - 3]
lea esi, [edi + edi*2]
add esi, ecx
mov byte [esi - 3], al
movzx edx, byte [ecx + edi*4 - 2]
mov byte [esi - 2], dl
movzx ecx, byte [ecx + edi*4 - 1]
mov byte [esi - 1], cl
mov ecx, dword [ebx + 0x6ce0]
sub esi, ecx
mov dword [ebx + 0x6ce8], esi
jmp 0x421a7e
mov eax, dword [ebx + 0x6ce8]
mov dword [esp + 0x14], eax
shr eax, 1
mov ecx, dword [ebx + 0x6ce0]
lea edx, [eax*4]
cmp edx, dword [ebx + 0x6cec]
ja 0x421964
test eax, eax
jle 0x42195c
lea edi, [ecx + eax*4 - 4]
lea esi, [ecx + eax*2 - 2]
sub edi, esi
cmp edi, edx
jg 0x421835
mov esi, edi
lea edi, [eax + eax]
neg esi
cmp esi, edi
jle 0x4218da
neg eax
dec eax
neg eax
dec eax
cmp eax, 4
jl 0x421b95
mov edi, ecx
and edi, 0xf
je 0x42185f
test edi, 3
jne 0x421b95
neg edi
add edi, 0x10
shr edi, 2
lea esi, [edi + 4]
cmp eax, esi
jl 0x421b95
mov esi, eax
sub esi, edi
and esi, 3
neg esi
add esi, eax
test edi, edi
jbe 0x42189d
mov dword [esp], 0
mov dword [esp + 4], eax
mov ebx, dword [esp]
movzx eax, word [ecx + ebx*2]
shl eax, 0x10
mov dword [ecx + ebx*4], eax
inc ebx
cmp ebx, edi
jb 0x421887
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 8]
movq xmm0, qword [ecx + edi*2]
punpcklwd xmm0, xmm0
psrad xmm0, 0x10
pslld xmm0, 0x10
movdqu xmmword [ecx + edi*4], xmm0
add edi, 4
cmp edi, esi
jb 0x42189d
cmp esi, eax
jae 0x4218cf
movzx edi, word [ecx + esi*2]
shl edi, 0x10
mov dword [ecx + esi*4], edi
inc esi
cmp esi, eax
jb 0x4218c0
mov ecx, dword [ebx + 0x6ce0]
jmp 0x42195c
shr dword [esp + 0x14], 2
je 0x421b9c
xor esi, esi
lea edi, [ecx + eax*2]
mov dword [esp], edi
lea edi, [ecx + eax*4]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov edx, esi
mov ecx, dword [esp + 8]
mov ebx, edi
mov eax, dword [esp]
movzx edi, word [edx + eax - 2]
inc esi
shl edi, 0x10
mov dword [ecx + ebx - 4], edi
movzx edi, word [edx + eax - 4]
add edx, 0xfffffffc
shl edi, 0x10
mov dword [ecx + ebx - 8], edi
add ecx, 0xfffffff8
cmp esi, dword [esp + 0x14]
jb 0x42190b
mov edx, dword [esp + 0x10]
lea edi, [esi + esi + 1]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 8]
lea esi, [edi - 1]
cmp esi, eax
jae 0x4218cf
sub eax, edi
movzx esi, word [ecx + eax*2]
shl esi, 0x10
mov dword [ecx + eax*4], esi
mov ecx, dword [ebx + 0x6ce0]
mov dword [ebx + 0x6ce8], edx
jmp 0x421990
push 2
call fcn.0049ba21
push dword [0x52c00c]
push 0x29e
push str._.........._srclibmpg123_format.c:_i__error:__s_n
push eax
call fcn.0040f2f0
add esp, 0x14
mov ecx, dword [ebx + 0x6ce0]
mov edx, dword [ebx + 0x6ce8]
shr edx, 2
je 0x421a7e
cmp edx, 4
jb 0x421f91
mov edi, ecx
and edi, 0xf
je 0x4219bd
test edi, 3
jne 0x421f91
neg edi
add edi, 0x10
shr edi, 2
lea eax, [edi + 4]
cmp edx, eax
jb 0x421f91
mov esi, edx
sub esi, edi
and esi, 3
neg esi
add esi, edx
test edi, edi
jbe 0x4219fd
mov dword [esp + 0x10], edx
xor eax, eax
mov ebx, dword [ecx + eax*4]
test ebx, ebx
jl 0x421f78
add ebx, 0x80000000
mov dword [ecx + eax*4], ebx
inc eax
cmp eax, edi
jb 0x4219dd
mov edx, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
movdqu xmm1, xmmword [0x4bb9b0]
pcmpeqd xmm0, xmm0
nop dword [eax]
movdqu xmm6, xmmword [ecx + edi*4]
movdqa xmm3, xmm1
pcmpeqd xmm3, xmm6
movdqa xmm4, xmm0
pxor xmm2, xmm2
pxor xmm4, xmm3
pcmpgtd xmm2, xmm6
paddd xmm6, xmm1
pand xmm4, xmm2
pand xmm3, xmm2
pxor xmm2, xmm0
movdqa xmm5, xmm4
pand xmm2, xmm6
pand xmm6, xmm4
pandn xmm3, xmm2
pandn xmm5, xmm3
por xmm6, xmm5
movdqu xmmword [ecx + edi*4], xmm6
add edi, 4
cmp edi, esi
jb 0x421a10
cmp esi, edx
jae 0x421a7e
mov edi, dword [ecx + esi*4]
test edi, edi
jl 0x421f5f
add edi, 0x80000000
mov dword [ecx + esi*4], edi
inc esi
cmp esi, edx
jb 0x421a65
mov eax, dword [ebx + 0x6dbc]
test eax, 0x100000
je 0x421a96
test eax, 0x200000
jne 0x421ba6
add esp, 0x34
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, 1
jmp 0x421011
cmp esi, 0x80000000
lea edx, [esi - 0x80000000]
mov esi, 0
cmovne esi, edx
jmp 0x420f96
cmp ebx, 0x80000000
lea eax, [ebx - 0x80000000]
mov ebx, 0
cmovne ebx, eax
jmp 0x420f15
xor edi, edi
jmp 0x420f81
mov edi, 1
jmp 0x4210cb
cmp edi, 0x80000000
lea edx, [edi - 0x80000000]
mov edi, 0
cmovne edi, edx
jmp 0x421202
cmp ebx, 0x80000000
lea eax, [ebx - 0x80000000]
mov ebx, 0
cmovne ebx, eax
jmp 0x42116b
xor ecx, ecx
jmp 0x4211e9
xor esi, esi
jmp 0x421326
mov edi, 1
jmp 0x4213ad
mov edi, 1
jmp 0x421561
cmp esi, 0x80000000
lea edx, [esi - 0x80000000]
mov esi, 0
cmovne esi, edx
jmp 0x4214e6
cmp ebx, 0x80000000
lea eax, [ebx - 0x80000000]
mov ebx, 0
cmovne ebx, eax
jmp 0x421458
xor edi, edi
jmp 0x4214d1
xor esi, esi
jmp 0x421678
mov edi, 1
jmp 0x4216ff
mov edi, 1
jmp 0x4217b4
xor esi, esi
jmp 0x4218bc
mov edi, 1
jmp 0x421943
mov eax, dword [ebx + 0x6cf4]
test eax, eax
jle 0x421a96
test al, 0xf
jne 0x421a96
test al, 0x40
je 0x421bc7
mov esi, 2
jmp 0x421c01
test eax, 0x4000
je 0x421bd5
mov esi, 3
jmp 0x421c01
test eax, 0x100
jne 0x421bfc
cmp eax, 0x200
je 0x421bfc
mov edx, 8
xor esi, esi
cmp eax, 0x400
cmove esi, edx
cmp esi, 2
jge 0x421c01
jmp 0x421a96
mov esi, 4
xor edx, edx
mov eax, dword [ebx + 0x6ce8]
div esi
mov ecx, eax
imul ecx, esi
mov ebx, dword [ebx + 0x6ce0]
lea edx, [ebx + ecx]
cmp esi, 2
jb 0x421a96
je 0x421eb0
cmp esi, 3
je 0x421e09
cmp esi, 4
jne 0x421c78
cmp ebx, edx
jae 0x421a96
add ecx, 3
xor eax, eax
shr ecx, 2
mov dword [esp + 8], ecx
movzx ecx, byte [ebx + eax*4 + 1]
movzx edx, byte [ebx + eax*4 + 2]
mov byte [ebx + eax*4 + 1], dl
mov byte [ebx + eax*4 + 2], cl
movzx ecx, byte [ebx + eax*4]
movzx edx, byte [ebx + eax*4 + 3]
mov byte [ebx + eax*4], dl
mov byte [ebx + eax*4 + 3], cl
inc eax
cmp eax, dword [esp + 8]
jb 0x421c4a
jmp 0x421a96
cmp esi, 8
jne 0x421cf2
cmp ebx, edx
jae 0x421a96
add ecx, 7
xor eax, eax
shr ecx, 3
mov dword [esp + 8], ecx
nop dword [eax + eax]
nop dword [eax]
invalid
mov dh, 0x4c