Function at 0x4d0b90
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x48
mov eax, dword [0x8815d0]
xor eax, esp
mov dword [esp + 0x44], eax
push esi
mov esi, dword [esp + 0x50]
push edi
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], ecx
test esi, esi
je 0x4d135a
nop dword [eax + eax]
mov eax, esi
mov edx, 0x80
sub edx, dword [edi + 0x10]
sub eax, ecx
cmp edx, eax
cmova edx, eax
mov eax, dword [edi + 0x14]
add eax, 8
mov dword [esp + 0x48], edx
add eax, dword [edi + 0x10]
lea esi, [edi + eax*4]
lea eax, [edx*4]
mov dword [esp + 0x44], eax
test edx, edx
je 0x4d0c25
push eax
mov eax, dword [esp + 0x38]
add eax, 0x1c10
push esi
lea eax, [edi + eax*4]
push eax
call fcn.004347f0
mov eax, dword [esp + 0x50]
add esp, 0xc
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x5c]
lea eax, [eax + ecx*4]
push eax
push esi
call fcn.004347f0
mov edx, dword [esp + 0x54]
add esp, 0xc
add dword [edi + 0x10], edx
add dword [esp + 0x34], edx
cmp dword [edi + 0x10], 0x80
jb 0x4d1356
mov edx, dword [edi + 0x14]
mov eax, 0x400
sub edx, 0xffffff80
mov dword [edi + 0x10], 0
and edx, 0x3ff
xor ecx, ecx
sub eax, edx
mov dword [esp + 0x48], edx
mov dword [edi + 0x14], edx
cmp eax, 4
jb 0x4d0d0a
add edx, 9
lea eax, [edi + 0x3034]
mov esi, 0x3fc
lea edx, [edi + edx*4]
mov edi, dword [esp + 0x48]
sub esi, edi
shr esi, 2
inc esi
lea edi, [edi + esi*4]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x38]
nop dword [eax + eax]
movss xmm0, dword [ecx*4 + 0x88a780]
lea eax, [eax + 0x20]
mulss xmm0, dword [edx - 4]
lea edx, [edx + 0x10]
movss dword [eax - 0x2c], xmm0
mov dword [eax - 0x28], 0
movss xmm0, dword [ecx*4 + 0x88a784]
mulss xmm0, dword [edx - 0x10]
movss dword [eax - 0x24], xmm0
mov dword [eax - 0x20], 0
movss xmm0, dword [ecx*4 + 0x88a788]
mulss xmm0, dword [edx - 0xc]
movss dword [eax - 0x1c], xmm0
mov dword [eax - 0x18], 0
movss xmm0, dword [ecx*4 + 0x88a78c]
add ecx, 4
mulss xmm0, dword [edx - 8]
movss dword [eax - 0x14], xmm0
mov dword [eax - 0x10], 0
sub esi, 1
jne 0x4d0c90
mov edx, dword [esp + 0x48]
cmp edx, 0x400
jae 0x4d0d62
lea esi, [ecx*4 + 0x88a780]
add ecx, 0x605
lea eax, [edx + 8]
lea eax, [edi + eax*4]
mov dword [esp + 0x44], eax
lea eax, [edi + ecx*8]
mov ecx, 0x400
sub ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
nop
movss xmm0, dword [ecx]
lea eax, [eax + 8]
mulss xmm0, dword [esi]
lea ecx, [ecx + 4]
mov dword [eax - 4], 0
lea esi, [esi + 4]
movss dword [eax - 8], xmm0
sub edx, 1
jne 0x4d0d40
mov eax, dword [edi + 0x14]
mov ecx, 0x400
sub ecx, eax
xor esi, esi
mov dword [esp + 0x44], ecx
test eax, eax
je 0x4d0db3
mov eax, dword [esp + 0x44]
lea ecx, [ecx*4 + 0x88a780]
add eax, 0x605
lea edx, [edi + 0x20]
lea eax, [edi + eax*8]
nop dword [eax]
movss xmm0, dword [edx]
lea edx, [edx + 4]
mulss xmm0, dword [ecx]
lea eax, [eax + 8]
mov dword [eax - 4], 0
inc esi
add ecx, 4
movss dword [eax - 8], xmm0
cmp esi, dword [edi + 0x14]
jb 0x4d0d90
lea esi, [edi + 0x3028]
push ecx
lea eax, [esi + 0x2000]
mov dword [esp], 0xbf800000
push eax
push esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], eax
call fcn.004e1330
lea eax, [edi + 0x1020]
mov dword [esp + 0x3c], 0
mov edi, dword [esp + 0x3c]
mov ecx, esi
add esp, 0xc
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], ecx
mov esi, eax
nop word [eax + eax]
movss xmm0, dword [ecx + 4]
movss xmm1, dword [ecx]
movss dword [esp + 0x28], xmm0
cvtps2pd xmm0, xmm0
movss dword [esp + 0x40], xmm1
movsd qword [esp + 0x2c], xmm0
fld qword [esp + 0x2c]
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x2c], xmm0
fld qword [esp + 0x2c]
call fcn.00503190
mov eax, edi
xorps xmm0, xmm0
and eax, 7
sub esp, 8
fstp dword [esp + 0x38]
movss xmm1, dword [esp + 0x38]
fld dword [esp + 0x30]
movaps xmm2, xmm1
subss xmm2, dword [esi]
cvtsi2sd xmm0, eax
shr eax, 0x1f
movss dword [esi], xmm1
addsd xmm0, qword [eax*8 + 0x50f650]
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x5c0054]
subss xmm2, xmm0
mulss xmm2, dword [0x5c0050]
movss dword [esp + 0x38], xmm2
cvttss2si esi, xmm2
call fcn.005059e7
mov ecx, dword [esp + 0x4c]
mov eax, esi
add esp, 8
fstp dword [ecx + 0x2000]
and eax, 0x80000001
jns 0x4d0eb5
dec eax
or eax, 0xfffffffe
inc eax
movss xmm1, dword [esp + 0x30]
add eax, esi
mov esi, dword [esp + 0x48]
add esi, 4
mov dword [esp + 0x48], esi
movd xmm0, eax
mov eax, edi
cvtdq2ps xmm0, xmm0
shr eax, 0x1f
subss xmm1, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
inc edi
mulss xmm1, dword [0x58ff4c]
addsd xmm0, qword [eax*8 + 0x50f650]
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [ecx + 0x2004], xmm1
add ecx, 8
mov dword [esp + 0x44], ecx
cmp edi, 0x201
jb 0x4d0e00
mov edi, dword [esp + 0x38]
xorps xmm0, xmm0
movq qword [esp + 0x3c], xmm0
lea esi, [edi + 0x6030]
lea ecx, [edi + 0x7038]
mov dword [esp + 0x30], esi
cmp esi, ecx
je 0x4d0f50
mov edx, dword [esp + 0x40]
mov eax, esi
mov edi, dword [esp + 0x3c]
mov dword [eax], edi
mov dword [eax + 4], edx
add eax, 8
cmp eax, ecx
jne 0x4d0f40
mov edi, dword [esp + 0x38]
xor edx, edx
lea ecx, [edi + 0x18]
mov eax, 0x2007fff
mov dword [esp + 0x28], ecx
div dword [ecx]
mov ecx, 0x201
inc eax
cmp eax, ecx
cmovb ecx, eax
xor edx, edx
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4d0fd4
mov esi, dword [esp + 0x40]
lea ecx, [edi + 0x5028]
nop
mov eax, dword [esp + 0x28]
movss xmm0, dword [ecx]
mov eax, dword [eax]
imul eax, edx
add eax, 0x8000
shr eax, 0x10
comiss xmm0, dword [edi + eax*8 + 0x6030]
jbe 0x4d0fb2
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [edi + 0x1c]
movss dword [edi + eax*8 + 0x6034], xmm0
movss xmm0, dword [edi + eax*8 + 0x6030]
inc edx
addss xmm0, dword [ecx]
add ecx, 8
movss dword [edi + eax*8 + 0x6030], xmm0
cmp edx, esi
jb 0x4d0f80
mov esi, dword [esp + 0x30]
lea edx, [edi + 0x1824]
mov edi, 0x201
mov dword [esp + 0x48], edx
movss xmm1, dword [esi + 4]
mulss xmm1, dword [0x5c0054]
addss xmm1, dword [edx]
mulss xmm1, dword [0x5c0050]
cvttss2si ecx, xmm1
mov eax, ecx
and eax, 0x80000001
jns 0x4d100e
dec eax
or eax, 0xfffffffe
inc eax
add eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
mulss xmm1, dword [0x58ff48]
movss dword [edx], xmm1
movss xmm0, dword [esi]
movss dword [esp + 0x40], xmm0
mov eax, dword [esp + 0x40]
and eax, 0x7fffffff
movss dword [esp + 0x28], xmm1
cmp eax, 0x7f800000
ja 0x4d10ac
movss dword [esp + 0x40], xmm0
mov eax, dword [esp + 0x40]
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x4d10ac
xorps xmm2, xmm2
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x4d10ac
cvtps2pd xmm0, xmm1
call fcn.0043e7d0
movss xmm1, dword [esp + 0x28]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esi]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x1c], xmm0
cvtps2pd xmm0, xmm1
call fcn.0043e990
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x40]
mulss xmm1, dword [esi]
movss dword [esp + 0x20], xmm1
jmp 0x4d1124
push ecx
movss dword [esp], xmm0
call fcn.005029e9
add esp, 4
push dword [esp + 0x48]
test eax, eax
je 0x4d110a
movss xmm0, dword [esi]
lea eax, [esp + 0x44]
xorps xmm0, xmmword [0x511aa0]
push eax
lea eax, [esp + 0x10]
movss dword [esp + 0x48], xmm0
push eax
call fcn.004d0790
movss xmm2, dword [0x511aa0]
add esp, 0xc
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x20], xmm1
jmp 0x4d112c
lea eax, [esp + 0x20]
push esi
push eax
call fcn.004d0790
movss xmm1, dword [esp + 0x2c]
add esp, 0xc
movss xmm0, dword [esp + 0x1c]
movss xmm2, dword [0x511aa0]
mov edx, dword [esp + 0x48]
movss dword [esi - 0x3008], xmm0
add edx, 4
movss dword [esi - 0x3004], xmm1
add esi, 8
mov dword [esp + 0x48], edx
sub edi, 1
jne 0x4d0fe3
mov edi, dword [esp + 0x38]
mov edx, 0x49
lea eax, [edi + 0x403c]
lea ecx, [edi + 0x401c]
nop dword [eax + eax]
movss xmm1, dword [ecx + 8]
lea eax, [eax + 0x38]
movss xmm0, dword [ecx + 4]
xorps xmm1, xmm2
movss dword [eax - 0x40], xmm1
movss dword [eax - 0x44], xmm0
movss xmm1, dword [ecx]
movss xmm0, dword [ecx - 4]
xorps xmm1, xmm2
movss dword [eax - 0x38], xmm1
movss dword [eax - 0x3c], xmm0
movss xmm1, dword [ecx - 8]
movss xmm0, dword [ecx - 0xc]
xorps xmm1, xmm2
movss dword [eax - 0x30], xmm1
movss dword [eax - 0x34], xmm0
movss xmm1, dword [ecx - 0x10]
movss xmm0, dword [ecx - 0x14]
xorps xmm1, xmm2
movss dword [eax - 0x28], xmm1
movss dword [eax - 0x2c], xmm0
movss xmm1, dword [ecx - 0x18]
movss xmm0, dword [ecx - 0x1c]
xorps xmm1, xmm2
movss dword [eax - 0x20], xmm1
movss dword [eax - 0x24], xmm0
movss xmm1, dword [ecx - 0x20]
movss xmm0, dword [ecx - 0x24]
xorps xmm1, xmm2
movss dword [eax - 0x18], xmm1
movss dword [eax - 0x1c], xmm0
movss xmm1, dword [ecx - 0x28]
movss xmm0, dword [ecx - 0x2c]
xorps xmm1, xmm2
sub ecx, 0x38
movss dword [eax - 0x14], xmm0
movss dword [eax - 0x10], xmm1
sub edx, 1
jne 0x4d1170
mov esi, dword [esp + 0x24]
push ecx
mov dword [esp], 0x3f800000
push dword [esp + 0x1c]
push esi
call fcn.004e1330
mov eax, dword [edi + 0x14]
add esp, 0xc
movss xmm1, dword [0x5c004c]
cmp eax, 0x400
jae 0x4d1282
add eax, 0x80a
mov edx, 0x400
sub edx, dword [edi + 0x14]
mov ecx, 0x88a780
lea eax, [edi + eax*4]
nop
movss xmm0, dword [ecx]
add ecx, 4
mulss xmm0, dword [esi]
add esi, 8
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
sub edx, 1
jne 0x4d1260
mov ecx, dword [edi + 0x14]
mov edx, 0x400
xor esi, esi
sub edx, ecx
test ecx, ecx
je 0x4d12da
lea ecx, [edx*4 + 0x88a780]
add edx, 0x605
lea eax, [edi + 0x2028]
lea edx, [edi + edx*8]
nop dword [eax + eax]
movss xmm0, dword [ecx]
inc esi
mulss xmm0, dword [edx]
add ecx, 4
add edx, 8
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
mov dword [esp + 0x24], eax
cmp esi, dword [edi + 0x14]
jb 0x4d12b0
mov ecx, dword [edi + 0x14]
mov esi, edi
lea eax, [ecx + 0x80a]
push 0x200
lea eax, [esi + eax*4]
push eax
lea eax, [edi + 0x20]
lea eax, [eax + ecx*4]
push eax
call fcn.004347f0
mov eax, dword [edi + 0x14]
lea ecx, [esp + 0x1c]
add eax, 0x80a
mov dword [esp + 0x20], 0
add esp, 0xc
mov dword [esp + 0x10], 0
lea edx, [esi + eax*4]
lea eax, [esp + 0x14]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4d1335
push 0x200
push 0
push edx
call fcn.00434d70
add esp, 0xc
jmp 0x4d1344
mov ecx, 0x80
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x54]
cmp ecx, esi
jb 0x4d0bc0
jmp 0x4d135a
mov esi, dword [esp + 0x54]
push 0
mov eax, 0x200
lea edx, [edi + 0x7040]
cmp esi, eax
lea ecx, [edx + esi*4]
cmova eax, esi
push eax
lea eax, [edi + 0x8080]
push eax
lea eax, [edi + 0x8040]
push eax
push dword [esp + 0x74]
push dword [esp + 0x74]
push ecx
push edx
call dword [0x882330]
mov ecx, dword [esp + 0x6c]
add esp, 0x20
pop edi
pop esi
xor ecx, esp
call fcn.00432bfc
add esp, 0x48
ret 0x14