Function at 0x41b1c0
Capabilities:
Encrypt data using hc-128

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
push esi
push edi
cmp dword [0x44f380], 0xa45ff929
jne 0x41b1e6
mov eax, dword [0x44f25c]
sub eax, 0xd59aff2
mov dword [0x44f25c], eax
mov dword [ebp - 0x108], 0
jmp 0x41b201
mov ecx, dword [ebp - 0x108]
add ecx, 1
mov dword [ebp - 0x108], ecx
cmp dword [ebp - 0x108], 0x10
je 0x41b25f
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + edx*4]
shl ecx, 0x18
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + 0xc]
movzx edx, byte [eax + edx*4 + 1]
shl edx, 0x10
or ecx, edx
mov eax, dword [ebp - 0x108]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + eax*4 + 2]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + 0xc]
movzx edx, byte [eax + edx*4 + 3]
or ecx, edx
mov eax, dword [ebp - 0x108]
mov dword [ebp + eax*4 - 0x100], ecx
jmp 0x41b1f2
movsx ecx, word [0x44f1c4]
movsx edx, word [0x44f3f0]
sub ecx, edx
sub ecx, 0x8dac931
mov eax, dword [0x44f2d0]
sub eax, ecx
mov dword [0x44f2d0], eax
mov cx, word [0x44f3f0]
add cx, 1
mov word [0x44f3f0], cx
mov esi, dword [ebp + 8]
add esi, 8
mov ecx, 9
lea edi, [ebp - 0x138]
rep movsd dword es:[edi], dword [esi]
push 0x100
push 0x342b
call fcn.0041a2a0
add esp, 8
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], 0
jmp 0x41b2d9
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x108], 0x40
je 0x41b62e
mov eax, dword [0x44f030]
mov ecx, dword [0x44f128]
lea edx, [ecx + eax - 0x26b750d2]
mov dword [0x44f128], edx
cmp dword [ebp - 0x108], 0xf
jle 0x41b430
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp + eax*4 - 0x108]
shr ecx, 0x11
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + edx*4 - 0x108]
shl eax, 0xf
or ecx, eax
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + edx*4 - 0x108]
shr eax, 0x13
mov edx, dword [ebp - 0x108]
mov edx, dword [ebp + edx*4 - 0x108]
shl edx, 0xd
or eax, edx
xor ecx, eax
mov eax, dword [ebp - 0x108]
mov edx, dword [ebp + eax*4 - 0x108]
shr edx, 0xa
xor ecx, edx
mov eax, dword [ebp - 0x108]
mov dword [ebp + eax*4 - 0x100], ecx
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp + ecx*4 - 0x100]
mov eax, dword [ebp - 0x108]
add edx, dword [ebp + eax*4 - 0x11c]
mov ecx, dword [ebp - 0x108]
mov dword [ebp + ecx*4 - 0x100], edx
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + edx*4 - 0x13c]
shr eax, 7
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp + ecx*4 - 0x13c]
shl edx, 0x19
or eax, edx
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp + ecx*4 - 0x13c]
shr edx, 0x12
mov ecx, dword [ebp - 0x108]
mov ecx, dword [ebp + ecx*4 - 0x13c]
shl ecx, 0xe
or edx, ecx
xor eax, edx
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp + edx*4 - 0x13c]
shr ecx, 3
xor eax, ecx
mov edx, dword [ebp - 0x108]
add eax, dword [ebp + edx*4 - 0x100]
mov ecx, dword [ebp - 0x108]
mov dword [ebp + ecx*4 - 0x100], eax
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp + edx*4 - 0x100]
mov ecx, dword [ebp - 0x108]
add eax, dword [ebp + ecx*4 - 0x140]
mov edx, dword [ebp - 0x108]
mov dword [ebp + edx*4 - 0x100], eax
mov eax, dword [0x44f004]
add eax, 0x7ba8e6e0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movss dword [0x44f2a8], xmm0
mov ecx, dword [0x44f004]
sub ecx, 1
mov dword [0x44f004], ecx
mov edx, dword [ebp - 0x128]
shr edx, 6
mov eax, dword [ebp - 0x128]
shl eax, 0x1a
or edx, eax
mov ecx, dword [ebp - 0x128]
shr ecx, 0xb
mov eax, dword [ebp - 0x128]
shl eax, 0x15
or ecx, eax
xor edx, ecx
mov ecx, dword [ebp - 0x128]
shr ecx, 0x19
mov eax, dword [ebp - 0x128]
shl eax, 7
or ecx, eax
xor edx, ecx
add edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
xor ecx, dword [ebp - 0x120]
and ecx, dword [ebp - 0x128]
xor ecx, dword [ebp - 0x120]
add edx, ecx
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
add edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x108]
add edx, dword [ebp + eax*4 - 0x100]
mov dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x138]
shr ecx, 2
mov edx, dword [ebp - 0x138]
shl edx, 0x1e
or ecx, edx
mov eax, dword [ebp - 0x138]
shr eax, 0xd
mov edx, dword [ebp - 0x138]
shl edx, 0x13
or eax, edx
xor ecx, eax
mov eax, dword [ebp - 0x138]
shr eax, 0x16
mov edx, dword [ebp - 0x138]
shl edx, 0xa
or eax, edx
xor ecx, eax
mov eax, dword [ebp - 0x138]
and eax, dword [ebp - 0x134]
mov edx, dword [ebp - 0x138]
or edx, dword [ebp - 0x134]
and edx, dword [ebp - 0x130]
or eax, edx
add ecx, eax
mov dword [ebp - 0x110], ecx
fld dword [0x44f368]
mov eax, dword [0x44f0e4]
add eax, 0x590b848e
mov dword [ebp - 0x13c], eax
fiadd dword [ebp - 0x13c]
fld qword [0x4498e0]
fld dword [0x44f368]
fsub qword [0x4492e8]
fstp dword [0x44f368]
fcompi st(1)
fstp st(0)
jb 0x41b5a7
mov cx, word [0x44f250]
add cx, 1
mov word [0x44f250], cx
movsx edx, word [0x44f250]
mov eax, dword [0x44f064]
lea ecx, [eax + edx + 0x644804d6]
mov dword [0x44f064], ecx
mov edx, dword [ebp - 0x12c]
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0x110]
mov dword [ebp - 0x11c], eax
fld dword [0x44f360]
fadd qword [0x4498d8]
fstp dword [0x44f360]
mov dword [ebp - 0x114], 8
jmp 0x41b5f8
mov ecx, dword [ebp - 0x114]
sub ecx, 1
mov dword [ebp - 0x114], ecx
cmp dword [ebp - 0x114], 0
je 0x41b61d
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp + eax*4 - 0x13c]
mov dword [ebp + edx*4 - 0x138], ecx
jmp 0x41b5e9
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x138], edx
jmp 0x41b2ca
movsx eax, word [0x44f4f8]
mov ecx, 0x26d09a73
sub ecx, eax
mov edx, dword [0x44f438]
add edx, 0x51d8761c
cmp ecx, edx
jl 0x41b6b6
fld qword [0x44f208]
fadd qword [0x4498d0]
fld qword [0x4498c8]
fcompi st(1)
fstp st(0)
jb 0x41b6b6
fld qword [0x44f208]
mov eax, dword [0x44f1d8]
mov dword [ebp - 0x140], eax
fild dword [ebp - 0x140]
fsubrp st(1)
movsx ecx, word [0x44f1d0]
mov dword [ebp - 0x144], ecx
fild dword [ebp - 0x144]
fld qword [0x44f200]
fadd qword [0x4498c0]
fsubrp st(1)
fld qword [0x44f208]
fsub qword [0x4492e8]
fstp qword [0x44f208]
fxch st(1)
fcompi st(1)
fstp st(0)
mov edx, dword [ebp - 0x104]
push edx
push 0x100
call fcn.00404630
add esp, 8
fld dword [0x44f368]
fadd qword [0x4498b8]
fstp dword [0x44f368]
mov dword [ebp - 0x108], 0
jmp 0x41b6f7
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 8
je 0x41b729
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4 + 8]
mov ecx, dword [ebp - 0x108]
add eax, dword [ebp + ecx*4 - 0x138]
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*4 + 8], eax
jmp 0x41b6e8
pop edi
pop esi
mov esp, ebp
pop ebp
ret