Function at 0x1000d420
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [ebp + 0xc]
push ebx
lea ecx, [eax + 0xc30]
push esi
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], ecx
cmp eax, ecx
ja 0x1000d530
fld qword [esp + 0x58]
mov ebx, dword [ebp + 0x10]
fld qword [esp + 0x50]
mov esi, dword [esp + 0x3c]
fld qword [esp + 0x48]
mov edi, dword [esp + 0x3c]
fld qword [esp + 0x40]
mov eax, dword [esp + 0x24]
cmp eax, 0x39e6
ja 0x1000d9b3
je 0x1000d846
cmp eax, 0x1a5e
ja 0x1000d78f
je 0x1000d6be
cmp eax, 0x1256
ja 0x1000d695
je 0x1000d565
sub eax, 0x1208
je 0x1000d53b
sub eax, 0x27
jne case.0x1000d9d9.14862
mov eax, dword [ebp + 0x18]
fstp st(0)
fstp st(2)
add eax, 4
fstp st(0)
push eax
fstp st(0)
call fcn.1001df00
mov ecx, dword [ebp + 0x18]
sub eax, dword [ecx + 0x1c]
add esp, 4
test eax, eax
jle 0x1000d4de
mov eax, ecx
add eax, 4
push eax
call fcn.1001df00
mov edx, dword [ebp + 0x18]
add esp, 4
sub eax, dword [edx + 0x1c]
jmp 0x1000d4e0
xor eax, eax
inc eax
cdq
sub eax, edx
sar eax, 1
push eax
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
push eax
call fcn.1001b4a0
add esp, 8
mov dword [esp + 0x34], eax
fld qword [esp + 0x40]
fld qword [esp + 0x48]
fld qword [esp + 0x50]
fld qword [esp + 0x58]
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
mov eax, dword [esp + 0x24]
add eax, 0x27
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x3c]
jbe 0x1000d460
fstp st(0)
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x18]
fstp st(0)
push 0
fstp st(2)
add ecx, 4
fstp st(0)
push 0
fstp st(0)
push ecx
call fcn.100061b0
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 0x18]
lea edx, [eax + ecx*8]
add esp, 0xc
mov dword [esp + 0x28], edx
jmp 0x1000d4fb
cmp dword [esp + 0x1c], 0
fstp st(3)
fstp st(1)
mov dword [esp + 0x18], 0
fstp st(0)
jle 0x1000d675
mov ecx, dword [esp + 0x28]
mov eax, 0x116f
mov dword [esp + 0x28], eax
cmp eax, 0x13b4
ja 0x1000d5d1
je 0x1000d63e
cmp eax, 0x1268
ja 0x1000d5ca
je 0x1000d63e
sub eax, 0x116f
je 0x1000d5bc
sub eax, 0x53
je 0x1000d625
sub eax, 0x53
jne 0x1000d63f
jmp 0x1000d5ec
fstp st(0)
xor edi, edi
fld qword [ecx]
fmul qword [0x10039290]
jmp 0x1000d63f
sub eax, 0x12bb
jmp 0x1000d5df
cmp eax, 0x1500
ja 0x1000d607
je 0x1000d5eb
sub eax, 0x1407
je 0x1000d625
sub eax, 0x53
je 0x1000d5ec
sub eax, 0x53
jne 0x1000d63f
inc edi
mov eax, edi
shl eax, 4
mov edx, ecx
sub edx, eax
fld qword [edx - 8]
fadd qword [eax + ecx + 8]
fmul qword [edi*8 + 0x10038398]
faddp st(1)
jmp 0x1000d63f
sub eax, 0x1553
je 0x1000d63e
sub eax, 0x53
je 0x1000d625
sub eax, 0x53
jne 0x1000d63f
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
fst qword [eax + edx*8]
jmp 0x1000d63f
mov eax, edi
shl eax, 4
mov edx, ecx
sub edx, eax
fld qword [edx - 8]
fadd qword [eax + ecx + 8]
fmul qword [edi*8 + 0x10038398]
faddp st(1)
inc edi
mov eax, dword [esp + 0x28]
add eax, 0x53
mov dword [esp + 0x28], eax
cmp eax, 0x15f9
jbe 0x1000d58b
mov eax, dword [esp + 0x18]
inc eax
add ecx, 0x10
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x1000d582
fstp qword [esp + 0x40]
mov dword [esp + 0x28], ecx
jmp 0x1000d677
fstp st(0)
mov eax, dword [esp + 0x1c]
mov edx, dword [ebp + 0x18]
push 0
lea ecx, [eax + eax]
push ecx
add edx, 4
push edx
call fcn.100061b0
add esp, 0xc
jmp 0x1000d4fb
cmp eax, 0x1a37
jne case.0x1000d9d9.14862
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp + 8]
mov eax, ecx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [edx]
cdq
idiv ecx
mov dword [esp + 0x38], eax
jmp case.0x1000d9d9.14862
mov ecx, 1
xor edx, edx
cmp dword [esp + 0x20], ecx
jle case.0x1000d9d9.14862
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], 4
mov eax, dword [esp + 0x18]
cmp eax, 0x75
ja case.0x1000d6ef.1
movzx eax, byte [eax + 0x1000db58]
jmp dword [eax*4 + 0x1000db44]
mov eax, dword [ebp + 8]
fstp st(3)
mov eax, dword [eax]
fstp st(1)
fld qword [ebx + edx*8]
sub eax, edx
fsub qword [ebx + eax*8]
lea eax, [ebx + eax*8]
fld qword [eax]
fadd qword [ebx + edx*8]
fxch st(1)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
add dword [esp + 0x18], 0x27
dec dword [esp + 0x30]
jne 0x1000d6df
inc ecx
cmp ecx, dword [esp + 0x20]
jl 0x1000d6cf
fxch st(1)
fst qword [esp + 0x48]
fxch st(2)
fst qword [esp + 0x50]
fxch st(3)
fst qword [esp + 0x58]
fxch st(3)
jmp 0x1000d50f
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0x2c]
fld qword [eax + ebx*8]
fmul st(3)
fld st(4)
fmul qword [eax + ecx*8]
faddp st(1)
fstp qword [eax + ecx*8]
fxch st(1)
fst qword [eax + ebx*8]
mov ebx, dword [ebp + 0x10]
jmp 0x1000d717
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
sub eax, ecx
add edx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
jmp case.0x1000d6ef.1
mov eax, dword [ebp + 0x14]
fstp st(1)
fld qword [eax + ecx*8]
mov ebx, dword [esp + 0x2c]
fmul st(2)
fld qword [eax + ebx*8]
mov ebx, dword [ebp + 0x10]
fmul st(4)
fsubp st(1)
jmp 0x1000d717
cmp eax, 0x3998
ja 0x1000d7d7
je 0x1000d7cb
cmp eax, 0x1a85
je 0x1000d7b7
cmp eax, 0x3971
jne case.0x1000d9d9.14862
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
jmp case.0x1000d9d9.14862
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x20]
fld qword [eax + ecx*8]
fmul qword [ebx]
fstp qword [eax + ecx*8]
jmp case.0x1000d9d9.14862
mov edx, dword [ebp + 0x18]
mov esi, dword [edx]
not esi
jmp case.0x1000d9d9.14862
cmp eax, 0x39bf
jne case.0x1000d9d9.14862
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je case.0x1000d9d9.14862
test byte [ebp + 0x14], 3
je case.0x1000d9d9.14862
mov edx, dword [ebp + 8]
mov ecx, 0x5cd
mov eax, ecx
sub eax, 0x5cd
je 0x1000d812
sub eax, 0x3d
jne 0x1000d831
dec dword [edx]
jmp 0x1000d831
mov eax, dword [ebp + 0x14]
movzx edx, byte [eax]
xor edx, esi
and edx, 0xff
shr esi, 8
xor esi, dword [edx*4 + 0x100362b8]
mov edx, dword [ebp + 8]
inc eax
mov dword [ebp + 0x14], eax
add ecx, 0x3d
cmp ecx, 0x60a
jbe 0x1000d800
cmp dword [edx], 0
jne 0x1000d7ee
jmp case.0x1000d9d9.14862
mov ecx, dword [ebp + 8]
cmp dword [ecx], 0x20
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x10], eax
jb case.0x1000d9d9.14862
mov ecx, 0x77e4
mov dword [esp + 0x30], ecx
cmp ecx, 0x78bc
ja 0x1000d8d5
je case.0x1000d885.30728
add ecx, 0xffff881c
cmp ecx, 0xb4
ja case.0x1000d8ee.30945
movzx edx, byte [ecx + 0x1000dbe0]
jmp dword [edx*4 + 0x1000dbd0]
xor esi, dword [eax]
add eax, 4
mov ecx, esi
shr ecx, 0x10
mov edx, esi
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x100366b8]
shr edx, 8
and edx, 0xff
xor ecx, dword [edx*4 + 0x10036ab8]
mov edx, esi
shr edx, 0x18
xor ecx, dword [edx*4 + 0x100362b8]
and esi, 0xff
xor ecx, dword [esi*4 + 0x10036eb8]
mov esi, ecx
jmp case.0x1000d8ee.30945
add ecx, 0xffff8720
cmp ecx, 0xb4
ja case.0x1000d8ee.30945
movzx ecx, byte [ecx + 0x1000dcac]
jmp dword [ecx*4 + 0x1000dc98]
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x100366b8]
mov ecx, esi
shr ecx, 8
and ecx, 0xff
xor edx, dword [ecx*4 + 0x10036ab8]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x100362b8]
mov ecx, dword [ebp + 8]
and esi, 0xff
xor edx, dword [esi*4 + 0x10036eb8]
add dword [ecx], 0xffffffe0
mov esi, edx
jmp case.0x1000d8ee.30945
xor esi, dword [eax]
add eax, 4
mov edx, esi
shr edx, 0x10
mov ecx, esi
and edx, 0xff
mov edx, dword [edx*4 + 0x100366b8]
shr ecx, 8
and ecx, 0xff
xor edx, dword [ecx*4 + 0x10036ab8]
mov ecx, esi
shr ecx, 0x18
xor edx, dword [ecx*4 + 0x100362b8]
and esi, 0xff
xor edx, dword [esi*4 + 0x10036eb8]
mov esi, edx
jmp case.0x1000d8ee.30945
xor esi, dword [eax]
add eax, 4
mov ecx, dword [esp + 0x30]
add ecx, 0x24
mov dword [esp + 0x30], ecx
cmp ecx, 0x7994
jbe 0x1000d862
mov edx, dword [ebp + 8]
cmp dword [edx], 0x20
jae 0x1000d859
mov dword [esp + 0x10], eax
jmp case.0x1000d9d9.14862
cmp eax, 0x3aa9
ja 0x1000dab4
je 0x1000d528
add eax, 0xffffc5f3
cmp eax, 0x75
ja case.0x1000d9d9.14862
movzx eax, byte [eax + 0x1000dd78]
jmp dword [eax*4 + 0x1000dd64]
mov ecx, dword [ebp + 8]
cmp dword [ecx], 4
jb case.0x1000d9d9.14862
mov edx, ecx
mov ecx, 0x3cce
mov eax, ecx
sub eax, 0x3cce
je 0x1000da4e
sub eax, 0x2c
je 0x1000da0b
sub eax, 0x2c
jne 0x1000da5b
add dword [edx], 0xfffffffc
jmp 0x1000da5b
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x100366b8]
mov eax, esi
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x10036ab8]
mov eax, esi
shr eax, 0x18
xor edx, dword [eax*4 + 0x100362b8]
and esi, 0xff
xor edx, dword [esi*4 + 0x10036eb8]
mov esi, edx
mov edx, dword [ebp + 8]
jmp 0x1000da5b
mov eax, dword [esp + 0x10]
xor esi, dword [eax]
add eax, 4
mov dword [esp + 0x10], eax
add ecx, 0x2c
cmp ecx, 0x3d26
jbe 0x1000d9f3
cmp dword [edx], 4
jae 0x1000d9ee
jmp case.0x1000d9d9.14862
mov ecx, dword [ebp + 8]
cmp dword [ecx], 0
je 0x1000da98
mov eax, dword [ebp + 0x14]
movzx edx, byte [eax]
xor edx, esi
and edx, 0xff
shr esi, 8
xor esi, dword [edx*4 + 0x100362b8]
inc eax
dec dword [ecx]
mov dword [ebp + 0x14], eax
jne 0x1000da78
not esi
jmp case.0x1000d9d9.14862
mov dword [esp + 0x14], esi
jmp case.0x1000d9d9.14862
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x14], eax
jmp case.0x1000d9d9.14862
sub eax, 0x67c0
je 0x1000daef
sub eax, 0x27
je 0x1000dace
sub eax, 0x27
je 0x1000d528
jmp case.0x1000d9d9.14862
mov ecx, dword [ebp + 0x18]
fstp st(0)
fstp st(2)
push ecx
fstp st(0)
fstp st(0)
call fcn.10025dec
add esp, 4
mov dword [esp + 0x14], 0
jmp 0x1000d4fb
mov eax, dword [ebp + 0x18]
fstp st(0)
fstp st(2)
add eax, 0x28
fstp st(0)
fstp st(0)
call fcn.10005000
mov edx, dword [ebp + 0x18]
cmp dword [edx], 0
mov dword [esp + 0x30], 0
jle 0x1000d4fb
mov eax, edx
add eax, 0x58
mov dword [esp + 0x18], eax
nop
mov eax, dword [esp + 0x18]
call fcn.1000c490
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x18]
add dword [esp + 0x18], 0x30
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [ecx]
jl 0x1000db20
jmp 0x1000d4fb