Function at 0x41dd16
Capabilities:
Encode data using xor
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x50
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov esi, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x3c]
mov dword [esp + 0x20], ebx
mov edi, dword [ebp + 0x18]
movzx ebx, byte [edi + 1]
mov eax, dword [ebp + 0x18]
movzx edx, byte [eax + 3]
shr dl, 6
mov byte [esp + 0x48], dl
mov edi, dword [ebp + 0x34]
test edi, edi
je 0x41e2a4
test esi, esi
je 0x41e2a4
add esi, 0x80000000
pxor xmm1, xmm1
cvtsi2sd xmm1, esi
movsd xmm2, qword [0x4a4b08]
addsd xmm1, xmm2
mov esi, dword [ebp + 0x34]
add esi, 0x80000000
pxor xmm0, xmm0
cvtsi2sd xmm0, esi
addsd xmm0, xmm2
divsd xmm1, xmm0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movd xmm3, eax
movd xmm4, edx
punpckldq xmm3, xmm4
movq qword [esp + 0x40], xmm3
fild qword [esp + 0x40]
test edx, edx
jns 0x41ddc0
fadd dword [0x4a4b10]
fstp qword [esp + 0x38]
movsd xmm5, qword [esp + 0x38]
mulsd xmm5, xmm1
movsd xmm1, qword [0x4a4b18]
addsd xmm5, xmm1
movsd xmm6, qword [0x4a4b20]
comisd xmm5, xmm6
jae 0x41e2b8
fnstcw word [esp + 0x4e]
movzx eax, word [esp + 0x4e]
or ah, 0xc
mov word [esp + 0x4c], ax
movsd qword [esp + 0x38], xmm5
fld qword [esp + 0x38]
fldcw word [esp + 0x4c]
fistp qword [esp + 0x38]
fldcw word [esp + 0x4e]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], esi
and ebx, 8
jne 0x41e2fe
mov eax, 0x240
mul dword [ebp + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
add eax, 0xfffff970
adc edx, 0xffffffff
sub eax, esi
sbb edx, edi
mov ebx, 0xfff
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov edx, eax
xor eax, eax
cmp ebx, edx
sbb eax, dword [esp + 0x34]
jae 0x41e499
add esi, 0xb10
adc edi, 0
mov ebx, esi
and ebx, 0x3fffffff
mov eax, esi
mov edx, edi
shrd eax, edx, 0x1e
shr edx, 0x1e
and eax, 0x3fffffff
add ebx, eax
mov eax, edi
shr eax, 0x1c
add ebx, eax
mov eax, 0x38e38e39
mul ebx
mov eax, edx
shr eax, 1
and edx, 0xfffffffe
add edx, edx
add edx, edx
add eax, edx
sub ebx, eax
sub esi, ebx
sbb edi, 0
imul ebx, edi, 0x38e38e39
imul eax, esi, 0x8e38e38e
add ebx, eax
mov eax, 0x38e38e39
mul esi
mov esi, eax
mov edi, edx
add edi, ebx
shrd esi, edi, 6
mov dword [ebp + 8], esi
mov eax, esi
add eax, esi
add eax, eax
add eax, eax
add eax, esi
shl eax, 6
mov ebx, dword [esp + 0x38]
sub eax, ebx
sub eax, 0x690
mov dword [esp + 0x14], eax
mov esi, dword [ebp + 0x18]
cmp byte [esp + 0x48], 3
je 0x41e4b7
lea ebx, [esi + 0x15]
cmp dword [ebp + 0x10], 0xffffffff
je 0x41e366
cmp byte [ebx], 0x58
jne 0x41e381
cmp byte [ebx + 1], 0x69
jne 0x41e381
cmp byte [ebx + 2], 0x6e
jne 0x41e381
cmp byte [ebx + 3], 0x67
jne 0x41e381
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], eax
test eax, 0x1000000
jne 0x41e489
add ebx, 8
test dword [esp + 0x24], 0x2000000
je 0x41df4f
mov esi, dword [ebp + 0xc]
bswap esi
mov dword [ebx], esi
add ebx, 4
test dword [esp + 0x24], 0x4000000
je 0x41e1f8
test ecx, ecx
je 0x41e860
lea esi, [ecx + 1]
mov eax, ebx
sub eax, esi
cmp eax, 0xe
jbe 0x41e7f2
mov edi, ecx
neg edi
mov eax, edi
and eax, 0xf
je 0x41ec69
movzx edx, byte [ecx]
mov byte [ebx], dl
test edi, 0xe
je 0x41ebc0
movzx edx, byte [ecx + 1]
mov byte [ebx + 1], dl
cmp eax, 2
jbe 0x41ec54
movzx edx, byte [ecx + 2]
mov byte [ebx + 2], dl
test edi, 0xc
je 0x41ec3f
movzx edx, byte [ecx + 3]
mov byte [ebx + 3], dl
cmp eax, 4
jbe 0x41ec7e
movzx edx, byte [ecx + 4]
mov byte [ebx + 4], dl
cmp eax, 5
je 0x41ecd2
movzx edx, byte [ecx + 5]
mov byte [ebx + 5], dl
cmp eax, 6
je 0x41ecbd
movzx edx, byte [ecx + 6]
mov byte [ebx + 6], dl
and edi, 8
je 0x41eca8
movzx edx, byte [ecx + 7]
mov byte [ebx + 7], dl
cmp eax, 8
jbe 0x41ec93
movzx edx, byte [ecx + 8]
mov byte [ebx + 8], dl
cmp eax, 9
je 0x41ed50
movzx edx, byte [ecx + 9]
mov byte [ebx + 9], dl
cmp eax, 0xa
je 0x41ed3b
movzx edx, byte [ecx + 0xa]
mov byte [ebx + 0xa], dl
cmp eax, 0xb
je 0x41ed26
movzx edx, byte [ecx + 0xb]
mov byte [ebx + 0xb], dl
cmp eax, 0xc
je 0x41ed11
movzx edx, byte [ecx + 0xc]
mov byte [ebx + 0xc], dl
cmp eax, 0xd
je 0x41ecfc
movzx edx, byte [ecx + 0xd]
mov byte [ebx + 0xd], dl
cmp eax, 0xf
jne 0x41ece7
movzx edx, byte [ecx + 0xe]
mov byte [ebx + 0xe], dl
mov dword [esp + 0x48], 0x55
mov dword [esp + 0x38], 0xf
mov esi, 0x64
sub esi, eax
lea edx, [ecx + eax]
add eax, ebx
movdqu xmm1, xmmword [edx]
movdqu xmmword [eax], xmm1
movdqu xmm7, xmmword [edx + 0x10]
movdqu xmmword [eax + 0x10], xmm7
movdqu xmm0, xmmword [edx + 0x20]
movdqu xmmword [eax + 0x20], xmm0
movdqu xmm2, xmmword [edx + 0x30]
movdqu xmmword [eax + 0x30], xmm2
movdqu xmm4, xmmword [edx + 0x40]
movdqu xmmword [eax + 0x40], xmm4
mov edi, esi
shr edi, 4
cmp edi, 6
jne 0x41ec2c
movdqu xmm3, xmmword [edx + 0x50]
movdqu xmmword [eax + 0x50], xmm3
mov eax, dword [esp + 0x38]
add eax, 0x60
mov edi, dword [esp + 0x48]
sub edi, 0x60
cmp esi, 0x60
je 0x41e854
movzx edx, byte [ecx + eax]
mov byte [ebx + eax], dl
cmp edi, 1
je 0x41e854
movzx edx, byte [ecx + eax + 1]
mov byte [ebx + eax + 1], dl
cmp edi, 2
je 0x41e854
movzx edx, byte [ecx + eax + 2]
mov byte [ebx + eax + 2], dl
cmp edi, 3
je 0x41e854
movzx edx, byte [ecx + eax + 3]
mov byte [ebx + eax + 3], dl
cmp edi, 4
je 0x41e854
movzx edx, byte [ecx + eax + 4]
mov byte [ebx + eax + 4], dl
cmp edi, 5
je 0x41e854
movzx edx, byte [ecx + eax + 5]
mov byte [ebx + eax + 5], dl
cmp edi, 6
je 0x41e854
movzx edx, byte [ecx + eax + 6]
mov byte [ebx + eax + 6], dl
cmp edi, 7
je 0x41e854
movzx edx, byte [ecx + eax + 7]
mov byte [ebx + eax + 7], dl
cmp edi, 8
je 0x41e854
movzx edx, byte [ecx + eax + 8]
mov byte [ebx + eax + 8], dl
cmp edi, 9
je 0x41e854
movzx edx, byte [ecx + eax + 9]
mov byte [ebx + eax + 9], dl
cmp edi, 0xa
je 0x41e854
movzx edx, byte [ecx + eax + 0xa]
mov byte [ebx + eax + 0xa], dl
cmp edi, 0xb
je 0x41e854
movzx edx, byte [ecx + eax + 0xb]
mov byte [ebx + eax + 0xb], dl
cmp edi, 0xc
je 0x41e854
movzx edx, byte [ecx + eax + 0xc]
mov byte [ebx + eax + 0xc], dl
cmp edi, 0xd
je 0x41e854
movzx edx, byte [ecx + eax + 0xd]
mov byte [ebx + eax + 0xd], dl
cmp edi, 0xe
je 0x41e854
movzx ecx, byte [ecx + eax + 0xe]
mov byte [ebx + eax + 0xe], cl
lea ebx, [ebx + 0x64]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x28]
test dword [esp + 0x24], 0x8000000
je 0x41e20c
mov ecx, dword [ebp + 0x10]
bswap ecx
mov dword [ebx], ecx
add ebx, 4
mov edi, dword [esp + 0x24]
test edi, 0x10000000
je 0x41e450
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x41e7ba
mov edx, dword [ebp + 0x1c]
lea ecx, [edx + 1]
mov esi, ebx
sub esi, ecx
cmp esi, 0xe
jbe 0x41e38b
mov eax, dword [ebp + 0x1c]
movdqu xmm5, xmmword [eax]
movdqu xmmword [ebx], xmm5
movzx edx, byte [eax + 0x10]
mov byte [ebx + 0x10], dl
mov ecx, dword [ebp + 0x1c]
movzx eax, byte [ecx + 0x11]
mov byte [ebx + 0x11], al
mov esi, dword [ebp + 0x1c]
movzx edx, byte [esi + 0x12]
mov byte [esp + 0x48], dl
mov byte [ebx + 0x12], dl
mov ecx, dword [ebp + 0x1c]
movzx eax, byte [ecx + 0x13]
mov byte [ebx + 0x13], al
add ebx, 0x14
and edi, 0x20000000
jne 0x41e401
test dword [esp + 0x24], 0x40000000
je 0x41e297
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
or eax, edx
jne 0x41e547
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movsd xmm1, qword [0x4a4b00]
mov dword [ebp + 0x34], 1
jmp 0x41dd98
subsd xmm5, xmm6
movsd qword [esp + 0x38], xmm5
fnstcw word [esp + 0x4e]
movzx edx, word [esp + 0x4e]
or dh, 0xc
mov word [esp + 0x4c], dx
fld qword [esp + 0x38]
fldcw word [esp + 0x4c]
fistp qword [esp + 0x38]
fldcw word [esp + 0x4e]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
add edi, 0x80000000
mov dword [esp + 0x38], esi
and ebx, 8
je 0x41de28
mov eax, 0x480
mul dword [ebp + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
add eax, 0xfffff970
adc edx, 0xffffffff
sub eax, esi
sbb edx, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, 0xfff
mov ebx, dword [esp + 0x30]
cmp eax, ebx
mov eax, 0
sbb eax, dword [esp + 0x34]
jb 0x41e4bf
mov eax, dword [esp + 0x28]
sub eax, esi
sub eax, 0x690
mov dword [esp + 0x14], eax
mov esi, dword [ebp + 0x18]
cmp byte [esp + 0x48], 3
je 0x41def2
lea ebx, [esi + 0x24]
cmp dword [ebp + 0x10], 0xffffffff
jne 0x41deff
cmp byte [ebx], 0x49
jne 0x41e381
cmp byte [ebx + 1], 0x6e
jne 0x41e381
cmp byte [ebx + 2], 0x66
jne 0x41e381
cmp byte [ebx + 3], 0x6f
je 0x41df26
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
mov esi, dword [ebp + 0x1c]
movzx edx, byte [esi + edi]
mov byte [ebx + edi], dl
movzx ecx, byte [esi + edi + 1]
mov byte [ebx + edi + 1], cl
movzx eax, byte [esi + edi + 2]
mov byte [ebx + edi + 2], al
movzx edx, byte [esi + edi + 3]
mov byte [ebx + edi + 3], dl
movzx ecx, byte [esi + edi + 4]
mov byte [ebx + edi + 4], cl
movzx eax, byte [esi + edi + 5]
mov byte [ebx + edi + 5], al
movzx edx, byte [esi + edi + 6]
mov byte [ebx + edi + 6], dl
movzx ecx, byte [esi + edi + 7]
mov byte [ebx + edi + 7], cl
movzx eax, byte [esi + edi + 8]
mov byte [ebx + edi + 8], al
movzx edx, byte [esi + edi + 9]
mov byte [ebx + edi + 9], dl
add edi, 0xa
cmp edi, 0x14
jne 0x41e390
add ebx, 0x14
test dword [esp + 0x24], 0x20000000
je 0x41e27d
mov edi, dword [ebp + 0x20]
lea esi, [edi + 1]
mov ecx, ebx
sub ecx, esi
cmp ecx, 0xe
jbe 0x41eb56
mov eax, dword [ebp + 0x20]
movdqu xmm6, xmmword [eax]
movdqu xmmword [ebx], xmm6
movzx edx, byte [eax + 0x10]
mov byte [ebx + 0x10], dl
mov edi, dword [ebp + 0x20]
movzx ecx, byte [edi + 0x11]
mov byte [ebx + 0x11], cl
mov esi, dword [ebp + 0x20]
movzx eax, byte [esi + 0x12]
mov byte [esp + 0x48], al
mov byte [ebx + 0x12], al
mov edx, dword [ebp + 0x20]
movzx ecx, byte [edx + 0x13]
mov byte [ebx + 0x13], cl
add ebx, 0x14
jmp 0x41e27d
test dword [esp + 0x24], 0x20000000
je 0x41e27d
mov esi, dword [ebp + 0x1c]
test esi, esi
jne 0x41e401
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
jmp 0x41e448
mov edi, dword [ebp + 8]
bswap edi
mov dword [ebx + 8], edi
add ebx, 0xc
jmp 0x41df3b
mov edi, dword [esp + 0x28]
sub edi, esi
sub edi, 0x690
mov dword [esp + 0x14], edi
mov esi, dword [ebp + 0x18]
cmp byte [esp + 0x48], 3
jne 0x41def2
lea ebx, [esi + 0xd]
jmp 0x41def5
add esi, 0xb10
adc edi, 0
mov ebx, esi
and ebx, 0x3fffffff
mov eax, esi
mov edx, edi
shrd eax, edx, 0x1e
shr edx, 0x1e
and eax, 0x3fffffff
add ebx, eax
mov eax, edi
shr eax, 0x1c
add ebx, eax
mov eax, 0x38e38e39
mul ebx
mov eax, edx
shr eax, 1
and edx, 0xfffffffe
add edx, edx
add edx, edx
add eax, edx
sub ebx, eax
sub esi, ebx
sbb edi, 0
imul ebx, edi, 0x38e38e39
imul eax, esi, 0x8e38e38e
add ebx, eax
mov eax, 0x38e38e39
mul esi
mov esi, eax
mov edi, edx
add edi, ebx
shrd esi, edi, 7
mov dword [ebp + 8], esi
mov eax, esi
add eax, esi
add eax, eax
add eax, eax
add eax, esi
shl eax, 7
mov ebx, dword [esp + 0x38]
sub eax, ebx
sub eax, 0x690
mov dword [esp + 0x14], eax
jmp 0x41e34b
cmp dword [ebp + 0x10], 0xffffffff
sete cl
mov eax, 0x51eb851f
mul dword [ebp + 0x30]
shr edx, 5
mov esi, dword [esp + 0x14]
mov eax, esi
sar eax, 8
mov edi, eax
and edi, 0xf
cmp dword [ebp + 0x34], 0xac44
je 0x41eb4c
cmp dword [ebp + 0x34], 0xbb80
je 0x41ec19
cmp dword [ebp + 0x34], 0xbb81
sbb eax, eax
and eax, 0x40
sub eax, 0x24
mov dword [ebx], 0x454d414c
mov dword [ebx + 4], 0x322e3548
mov byte [ebx + 8], 0x32
mov byte [ebx + 9], cl
mov byte [ebx + 0xa], dl
mov dword [ebx + 0xb], 0
mov dword [ebx + 0xf], 0
mov word [ebx + 0x13], 0
mov byte [ebx + 0x15], 0x69
mov ecx, edi
mov byte [ebx + 0x16], cl
mov edx, esi
mov byte [ebx + 0x17], dl
mov byte [ebx + 0x18], al
mov word [ebx + 0x19], 0
mov byte [ebx + 0x1b], 0
mov esi, dword [ebp + 0x2c]
bswap esi
mov dword [ebx + 0x1c], esi
movzx eax, word [esp + 0x20]
xchg al, ah
mov word [ebx + 0x20], ax
lea edi, [ebx + 0x22]
cmp dword [ebp + 0x18], edi
jae 0x41ec23
xor eax, eax
mov edx, edi
sub edx, dword [ebp + 0x18]
and edx, 7
je 0x41e6e9
cmp edx, 1
je 0x41e6c5
cmp edx, 2
je 0x41e6aa
cmp edx, 3
je 0x41e68f
cmp edx, 4
nop
je 0x41e674
cmp edx, 5
je 0x41e659
cmp edx, 6
je 0x41e63e
mov esi, dword [ebp + 0x18]
movzx eax, byte [esi]
movzx eax, word [eax + eax + 0x4a4880]
add dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add dword [ebp + 0x18], 1
cmp edi, dword [ebp + 0x18]
je 0x41e7ac
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 1]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 2]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 3]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 4]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 5]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 6]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
mov edx, eax
movzx eax, byte [ecx + 7]
xor eax, edx
movzx esi, al
shr ax, 8
xor ax, word [esi + esi + 0x4a4880]
add ecx, 8
cmp edi, ecx
jne 0x41e6ec
movzx ecx, ah
mov byte [ebx + 0x22], cl
mov byte [ebx + 0x23], al
jmp 0x41e297
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
add ebx, 0x14
test dword [esp + 0x24], 0x20000000
jne 0x41e465
jmp 0x41e27d
xor esi, esi
movzx eax, byte [ecx + esi]
mov byte [ebx + esi], al
movzx edx, byte [ecx + esi + 1]
mov byte [ebx + esi + 1], dl
movzx eax, byte [ecx + esi + 2]
mov byte [ebx + esi + 2], al
movzx edx, byte [ecx + esi + 3]
mov byte [ebx + esi + 3], dl
movzx eax, byte [ecx + esi + 4]
mov byte [ebx + esi + 4], al
movzx edx, byte [ecx + esi + 5]
mov byte [ebx + esi + 5], dl
movzx eax, byte [ecx + esi + 6]
mov byte [ebx + esi + 6], al
movzx edx, byte [ecx + esi + 7]
mov byte [ebx + esi + 7], dl
movzx eax, byte [ecx + esi + 8]
mov byte [ebx + esi + 8], al
movzx edx, byte [ecx + esi + 9]
mov byte [ebx + esi + 9], dl
add esi, 0xa
cmp esi, 0x64
jne 0x41e7f4
lea edi, [ebx + 0x64]
mov dword [esp + 0x28], edi
jmp 0x41e1f4
mov ecx, dword [ebp + 8]
test ecx, ecx
jle 0x41ebd5
mov edx, dword [ebp + 0xc]
test edx, edx
jle 0x41ebd5
mov ecx, dword [0x4bc344]
mov eax, dword [ebp + 8]
mov dword [ecx*8 + 0x4bc360], eax
mov edi, dword [ebp + 0xc]
mov dword [ecx*8 + 0x4bc364], edi
lea edi, [ecx + 1]
mov dword [0x4bc344], edi
test edi, edi
jle 0x41ea60
cmp ecx, 2
jbe 0x41ed65
mov edx, edi
shr edx, 2
mov esi, edx
shl esi, 5
xor eax, eax
and edx, 1
je 0x41e926
movdqu xmm7, xmmword [0x4bc360]
shufps xmm7, xmmword [0x4bc370], 0x88
movdqa xmm0, xmm7
pslld xmm0, 1
paddd xmm0, xmm7
pslld xmm0, 3
paddd xmm0, xmm7
pslld xmm0, 2
movd dword [0x4bc360], xmm0
pshufd xmm2, xmm0, 0x55
movd dword [0x4bc368], xmm2
movdqa xmm3, xmm0
punpckhdq xmm3, xmm0
movd dword [0x4bc370], xmm3
pshufd xmm4, xmm0, 0xff
movd dword [0x4bc378], xmm4
mov eax, 0x20
cmp esi, 0x20
je 0x41e9eb
movdqu xmm5, xmmword [eax + 0x4bc360]
shufps xmm5, xmmword [eax + 0x4bc370], 0x88
movdqa xmm6, xmm5
pslld xmm6, 1
paddd xmm6, xmm5
pslld xmm6, 3
paddd xmm6, xmm5
pslld xmm6, 2
movd dword [eax + 0x4bc360], xmm6
pshufd xmm7, xmm6, 0x55
movd dword [eax + 0x4bc368], xmm7
movdqa xmm0, xmm6
punpckhdq xmm0, xmm6
movd dword [eax + 0x4bc370], xmm0
pshufd xmm2, xmm6, 0xff
movd dword [eax + 0x4bc378], xmm2
movdqu xmm3, xmmword [eax + 0x4bc380]
shufps xmm3, xmmword [eax + 0x4bc390], 0x88
movdqa xmm4, xmm3
pslld xmm4, 1
paddd xmm4, xmm3
pslld xmm4, 3
paddd xmm4, xmm3
pslld xmm4, 2
movd dword [eax + 0x4bc380], xmm4
pshufd xmm5, xmm4, 0x55
movd dword [eax + 0x4bc388], xmm5
movdqa xmm6, xmm4
punpckhdq xmm6, xmm4
movd dword [eax + 0x4bc390], xmm6
pshufd xmm7, xmm4, 0xff
movd dword [eax + 0x4bc398], xmm7
add eax, 0x40
cmp esi, eax
jne 0x41e926
mov edx, edi
and edx, 0xfffffffc
and edi, 3
je 0x41ea60
mov edi, dword [edx*8 + 0x4bc360]
lea esi, [edi + edi]
add esi, edi
add esi, esi
add esi, esi
add esi, esi
add esi, edi
add esi, esi
add esi, esi
mov dword [edx*8 + 0x4bc360], esi
lea edi, [edx + 1]
cmp edx, ecx
jge 0x41ea60
mov esi, dword [edi*8 + 0x4bc360]
lea eax, [esi + esi]
add eax, esi
add eax, eax
add eax, eax
add eax, eax
add eax, esi
add eax, eax
add eax, eax
mov dword [edi*8 + 0x4bc360], eax
lea esi, [edx + 2]
cmp ecx, edi
jle 0x41ea60
mov ecx, dword [esi*8 + 0x4bc360]
lea edx, [ecx + ecx]
add edx, ecx
add edx, edx
add edx, edx
add edx, edx
add edx, ecx
add edx, edx
add edx, edx
mov dword [esi*8 + 0x4bc360], edx
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [ebp + 0xc]
movsd xmm2, qword [0x4a4b28]
divsd xmm2, xmm0
mov edx, dword [0x4bc360]
mov edi, ebx
lea ebx, [ebx + 0x64]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x48], 0
xor ebx, ebx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edi
cmp ecx, edx
jl 0x41eac3
mov edi, dword [esp + 0x38]
mov esi, edi
add edi, 1
mov ebx, edx
mov edx, dword [edi*8 + 0x4bc360]
cmp edx, ecx
jle 0x41eaa2
mov dword [esp + 0x38], edi
mov eax, dword [esi*8 + 0x4bc364]
mov dword [esp + 0x48], eax
mov edi, edx
sub edi, ebx
test edi, edi
jle 0x41ed89
mov esi, dword [esp + 0x38]
mov esi, dword [esi*8 + 0x4bc364]
mov eax, dword [esp + 0x48]
sub esi, eax
pxor xmm4, xmm4
cvtsi2sd xmm4, esi
mov esi, ecx
sub esi, ebx
pxor xmm3, xmm3
cvtsi2sd xmm3, esi
mulsd xmm4, xmm3
pxor xmm5, xmm5
cvtsi2sd xmm5, edi
divsd xmm4, xmm5
pxor xmm6, xmm6
cvtsi2sd xmm6, eax
addsd xmm4, xmm6
mulsd xmm4, xmm2
addsd xmm4, xmm1
cvttsd2si edi, xmm4
xor eax, eax
test edi, edi
cmovns eax, edi
mov esi, 0xff
cmp eax, esi
cmovg eax, esi
mov edi, dword [esp + 0x30]
mov byte [edi], al
add ecx, dword [ebp + 8]
add edi, 1
mov dword [esp + 0x30], edi
cmp dword [esp + 0x28], edi
jne 0x41ea9a
jmp 0x41e1f4
mov eax, 0x5c
jmp 0x41e590
xor edi, edi
mov esi, dword [ebp + 0x20]
movzx eax, byte [esi + edi]
mov byte [ebx + edi], al
movzx edx, byte [esi + edi + 1]
mov byte [ebx + edi + 1], dl
movzx ecx, byte [esi + edi + 2]
mov byte [ebx + edi + 2], cl
movzx eax, byte [esi + edi + 3]
mov byte [ebx + edi + 3], al
movzx edx, byte [esi + edi + 4]
mov byte [ebx + edi + 4], dl
movzx ecx, byte [esi + edi + 5]
mov byte [ebx + edi + 5], cl
movzx eax, byte [esi + edi + 6]
mov byte [ebx + edi + 6], al
movzx edx, byte [esi + edi + 7]
mov byte [ebx + edi + 7], dl
movzx ecx, byte [esi + edi + 8]
mov byte [ebx + edi + 8], cl
movzx eax, byte [esi + edi + 9]
mov byte [ebx + edi + 9], al
add edi, 0xa
cmp edi, 0x14
jne 0x41eb5b
jmp 0x41e448
mov dword [esp + 0x48], 0x63
mov dword [esp + 0x38], 1
jmp 0x41e07f
mov edx, ebx
mov esi, 0x64
xor eax, eax
test bl, 1
jne 0x41ed7a
test dl, 2
jne 0x41ed6c
mov ecx, esi
shr ecx, 2
mov edi, edx
rep stosd dword es:[edi], eax
test esi, 2
je 0x41ec03
stosw word es:[edi], ax
lea ebx, [ebx + 0x64]
mov dword [esp + 0x28], ebx
and esi, 1
je 0x41e1f4
stosb byte es:[edi], al
jmp 0x41e1f4
mov eax, 0xffffff9c
jmp 0x41e590
xor eax, eax
xor ecx, ecx
jmp 0x41e7af
mov eax, dword [esp + 0x38]
add eax, 0x50
mov edi, dword [esp + 0x48]
sub edi, 0x50
jmp 0x41e0ea
mov dword [esp + 0x48], 0x61
mov dword [esp + 0x38], 3
jmp 0x41e07f
mov dword [esp + 0x48], 0x62
mov dword [esp + 0x38], 2
jmp 0x41e07f
mov dword [esp + 0x48], 0x64
mov dword [esp + 0x38], 0
jmp 0x41e07f
mov dword [esp + 0x48], 0x60
mov dword [esp + 0x38], 4
jmp 0x41e07f
mov dword [esp + 0x48], 0x5c
mov dword [esp + 0x38], 8
jmp 0x41e07f
mov dword [esp + 0x48], 0x5d
mov dword [esp + 0x38], 7
jmp 0x41e07f
mov dword [esp + 0x48], 0x5e
mov dword [esp + 0x38], 6
jmp 0x41e07f
mov dword [esp + 0x48], 0x5f
mov dword [esp + 0x38], 5
jmp 0x41e07f
mov dword [esp + 0x48], 0x56
mov dword [esp + 0x38], 0xe
jmp 0x41e07f
mov dword [esp + 0x48], 0x57
mov dword [esp + 0x38], 0xd
jmp 0x41e07f
mov dword [esp + 0x48], 0x58
mov dword [esp + 0x38], 0xc
jmp 0x41e07f
mov dword [esp + 0x48], 0x59
mov dword [esp + 0x38], 0xb
jmp 0x41e07f
mov dword [esp + 0x48], 0x5a
mov dword [esp + 0x38], 0xa
jmp 0x41e07f
mov dword [esp + 0x48], 0x5b
mov dword [esp + 0x38], 9
jmp 0x41e07f
xor edx, edx
jmp 0x41e9f5
mov edi, edx
stosw word es:[edi], ax
mov edx, edi
sub esi, 2
jmp 0x41ebf0
mov edi, ebx
stosb byte es:[edi], al
mov edx, edi
mov esi, 0x63
jmp 0x41ebe7
mov dword [esp + 8], 0xa8
mov dword [esp + 4], str.hmp3_src_xhead.c
mov dword [esp], str.__table_k__0____target0_____0
call dword [sym.imp.msvcrt.dll__assert]