Function at 0x434c00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x99c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov edi, dword [esi + 0x28]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0xc], ecx
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x98]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x24], ecx
mov dword [ebp + 8], edx
mov ecx, dword [eax + 4]
mov ebx, dword [ebp - 0x24]
sub ecx, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 0xd0]
mov edx, ecx
and dl, 0x10
neg dl
sbb edx, edx
and cl, 0x20
and edx, 0xfffffffe
inc edx
imul edx, edi
neg cl
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
imul ecx, dword [ebx + 4]
mov ebx, dword [esi + 0xc]
sub ecx, edx
imul ebx, dword [eax + 4]
mov edx, dword [esi + 8]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax]
add ebx, edx
lea ebx, [ebx + ebx*2]
add ebx, ecx
mov dword [ebp - 0x1c], ebx
call fcn.00414930
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*2]
add esp, 4
add eax, dword [ecx]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0xd0]
mov edx, eax
mov ecx, eax
and dl, 0x10
neg dl
sbb edx, edx
and cl, 0x20
and edx, 0xfffffffe
inc edx
neg cl
sbb ecx, ecx
mov dword [ebp - 0x30], edx
and ecx, 0xfffffffe
mov dl, byte [esi + 0xca]
inc ecx
and edx, 0xff
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
mov cl, byte [esi + 0xcb]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
mov ecx, dword [0xc8b934]
test ecx, ecx
mov ecx, dword [ebp - 8]
je 0x434f19
mov edx, dword [ebp - 0xc]
cmp ecx, 0x80
mov ecx, dword [ebp + 8]
jne 0x4350b9
cmp edx, 0x80
jne 0x4350b9
cmp ecx, edx
jne 0x4350b9
test eax, eax
jne 0x434f38
lea edi, [edi + edi*2]
mov dword [ebp - 0x2c], 0xffffffff
mov eax, edi
mov dword [ebp - 8], edi
cdq
and edx, 7
add eax, edx
sar eax, 3
and edi, 0x80000007
mov dword [ebp - 0x20], eax
jns 0x434d45
dec edi
or edi, 0xfffffff8
inc edi
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x10]
test edi, edi
mov dword [ebp + 8], 0
jle 0x434d90
fild dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
add eax, edx
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fmul qword [0x4bc3c0]
fsin
fmul st(1)
fmul qword [0x4bc3b8]
call fcn.004af4d8
mov ecx, dword [ebp + 8]
mov dword [ebp + ecx*4 - 0x99c], eax
inc ecx
cmp ecx, edi
mov dword [ebp + 8], ecx
jl 0x434d59
fstp st(0)
xor ecx, ecx
test edi, edi
mov dword [ebp + 8], ecx
jle 0x434f0b
mov eax, dword [ebp - 0x18]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], edx
lea eax, [eax + eax*2]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0xc]
add eax, ecx
mov ecx, dword [ebp + 0xc]
cdq
inc ecx
idiv ecx
cmp edx, dword [0x6d1608]
je 0x434dce
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x434ee6
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + ecx*4 - 0x99c]
add eax, ecx
cmp eax, edi
jge 0x434ece
test eax, eax
jl 0x434ece
add eax, edi
mov ecx, dword [esi + 0xd0]
cdq
idiv edi
imul edx, dword [ebp - 0x3c]
test cl, 0x20
je 0x434e04
mov eax, dword [esi + 0x5c]
dec eax
jmp 0x434e06
xor eax, eax
test cl, 0x10
je 0x434e11
mov edi, dword [esi + 0x58]
dec edi
jmp 0x434e13
xor edi, edi
mov ecx, dword [esi + 0x38]
add eax, ecx
add eax, edx
mov edx, dword [ebp - 0x24]
imul eax, dword [edx + 4]
add eax, ecx
mov ecx, dword [ebp - 0x20]
add eax, edi
mov edi, dword [edx]
lea eax, [eax + eax*2]
add eax, edi
test ecx, ecx
mov dword [ebp - 0x14], eax
je 0x434ea1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
pxor mm3, mm3
movd mm4, dword [ebp - 0x2c]
punpcklbw mm4, mm3
movq mm0, qword [eax]
movq mm1, qword [ebx]
movq mm6, mm0
movq mm7, mm1
punpcklbw mm0, mm3
punpcklbw mm1, mm3
punpckhbw mm6, mm3
punpckhbw mm7, mm3
movq mm5, mm1
pxor mm5, mm4
pmullw mm1, mm1
pmullw mm0, mm5
paddusw mm0, mm1
movq mm5, mm7
pxor mm5, mm4
pmullw mm7, mm7
pmullw mm6, mm5
paddusw mm6, mm7
psrlw mm0, 8
psrlw mm6, 8
packuswb mm0, mm6
movq qword [ebx], mm0
add eax, 8
add ebx, 8
loop 0x434e49
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
xor edi, edi
test ecx, ecx
jle 0x434ec9
xor ecx, ecx
xor edx, edx
mov cl, byte [ebx]
mov dl, byte [edi + eax]
shl ecx, 8
inc edi
inc ebx
mov dl, byte [edx + ecx + 0x4dd030]
mov ecx, dword [ebp - 4]
mov byte [ebx - 1], dl
cmp edi, ecx
jl 0x434eaa
mov edi, dword [ebp - 0x10]
jmp 0x434ee9
mov ecx, dword [ebp - 8]
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x10]
add ebx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
add ebx, eax
mov eax, dword [ebp - 0x28]
inc ecx
add edx, eax
cmp ecx, edi
mov dword [ebp + 8], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], edx
jl 0x434daf
emms
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x80
cmp ecx, eax
jne 0x4350b3
cmp dword [ebp - 0xc], eax
jne 0x4350b3
cmp dword [ebp + 8], eax
jne 0x4350b3
mov eax, dword [ebp - 0x10]
mov dword [ebp + 8], 0
test eax, eax
jle 0x435267
mov eax, dword [ebp - 0x18]
lea ecx, [eax + eax*2]
mov dword [ebp - 0xc], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 8]
add eax, ecx
mov ecx, dword [ebp + 0xc]
cdq
inc ecx
idiv ecx
cmp edx, dword [0x6d1608]
je 0x434f7c
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x434f7c
lea edx, [edi + ebx]
lea ebx, [edx + edi*2]
jmp 0x435090
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x34]
add eax, ecx
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fmul qword [0x4bc3c0]
fsin
fimul dword [ebp - 0x38]
fmul qword [0x4bc3b8]
call fcn.004af4d8
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
add eax, edx
cmp eax, ecx
jge 0x43506f
test eax, eax
jl 0x43506f
add eax, ecx
cdq
idiv ecx
mov ecx, dword [esi + 0xd0]
imul edx, dword [ebp - 0x3c]
test cl, 0x20
je 0x434fd2
mov eax, dword [esi + 0x5c]
dec eax
jmp 0x434fd4
xor eax, eax
test cl, 0x10
je 0x434fe2
mov ecx, dword [esi + 0x58]
dec ecx
mov dword [ebp - 4], ecx
jmp 0x434fe9
mov dword [ebp - 4], 0
mov ecx, dword [esi + 0x38]
add eax, ecx
add eax, edx
mov edx, dword [ebp - 0x24]
imul eax, dword [edx + 4]
add eax, ecx
mov ecx, dword [ebp - 4]
add eax, ecx
mov ecx, dword [edx]
lea eax, [eax + eax*2]
add eax, ecx
test edi, edi
jle 0x435090
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], edi
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x18], ecx
xor edx, edx
xor ecx, ecx
mov dl, byte [ebx]
mov cl, byte [eax]
shl edx, 8
add ebx, 3
mov dl, byte [edx + ecx + 0x4dd030]
xor ecx, ecx
mov byte [ebx - 3], dl
mov cl, byte [ebx - 2]
xor edx, edx
mov dl, byte [eax + 1]
shl ecx, 8
mov cl, byte [ecx + edx + 0x4dd030]
xor edx, edx
mov byte [ebx - 2], cl
mov dl, byte [ebx - 1]
xor ecx, ecx
mov cl, byte [eax + 2]
shl edx, 8
mov dl, byte [edx + ecx + 0x4dd030]
mov ecx, dword [ebp - 4]
mov byte [ebx - 1], dl
mov edx, dword [ebp - 0x18]
add eax, edx
dec ecx
mov dword [ebp - 4], ecx
jne 0x435019
jmp 0x435090
lea edi, [edi + edi*2]
xor eax, eax
mov ecx, edi
mov dword [ebp - 8], edi
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x20]
mov eax, edx
add ebx, eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
inc eax
add ebx, edx
cmp eax, ecx
mov dword [ebp + 8], eax
jl 0x434f53
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [ebp + 8], 0
shl eax, 8
add eax, 0x58e650
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
shl edx, 8
shl ecx, 8
add edx, 0x58e650
add ecx, 0x58e650
test eax, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x28], ecx
jle 0x435267
mov eax, dword [ebp - 0x18]
lea eax, [eax + eax*2]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 8]
add eax, ecx
mov ecx, dword [ebp + 0xc]
cdq
inc ecx
idiv ecx
cmp edx, dword [0x6d1608]
je 0x435123
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x435123
lea edx, [edi + ebx]
lea ebx, [edx + edi*2]
jmp 0x435250
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x34]
add eax, ecx
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fmul qword [0x4bc3c0]
fsin
fimul dword [ebp - 0x38]
fmul qword [0x4bc3b8]
call fcn.004af4d8
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
add eax, edx
cmp eax, ecx
jge 0x43522f
test eax, eax
jl 0x43522f
add eax, ecx
cdq
idiv ecx
mov ecx, dword [esi + 0xd0]
imul edx, dword [ebp - 0x3c]
test cl, 0x20
je 0x435179
mov eax, dword [esi + 0x5c]
dec eax
jmp 0x43517b
xor eax, eax
test cl, 0x10
je 0x435189
mov ecx, dword [esi + 0x58]
dec ecx
mov dword [ebp - 4], ecx
jmp 0x435190
mov dword [ebp - 4], 0
mov ecx, dword [esi + 0x38]
add eax, ecx
add eax, edx
mov edx, dword [ebp - 0x24]
imul eax, dword [edx + 4]
add eax, ecx
mov ecx, dword [ebp - 4]
add eax, ecx
mov ecx, dword [edx]
lea eax, [eax + eax*2]
add eax, ecx
test edi, edi
jle 0x435250
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], edi
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp - 0x28]
xor edx, edx
mov dl, byte [eax]
xor ecx, ecx
add ebx, 3
mov cl, byte [edx + edi]
xor edx, edx
mov dl, byte [ebx - 3]
mov edi, dword [ebp - 0x1c]
shl edx, 8
mov cl, byte [ecx + edx + 0x4dd030]
xor edx, edx
mov byte [ebx - 3], cl
mov dl, byte [eax + 1]
xor ecx, ecx
mov cl, byte [edx + edi]
xor edx, edx
mov dl, byte [ebx - 2]
mov edi, dword [ebp - 0x14]
shl edx, 8
mov cl, byte [ecx + edx + 0x4dd030]
xor edx, edx
mov byte [ebx - 2], cl
mov dl, byte [eax + 2]
xor ecx, ecx
mov cl, byte [edx + edi]
xor edx, edx
mov dl, byte [ebx - 1]
shl edx, 8
mov cl, byte [ecx + edx + 0x4dd030]
mov edx, dword [ebp - 0x18]
mov byte [ebx - 1], cl
mov ecx, dword [ebp - 4]
add eax, edx
dec ecx
mov dword [ebp - 4], ecx
jne 0x4351c0
jmp 0x43524d
lea edi, [edi + edi*2]
xor eax, eax
mov ecx, edi
mov dword [ebp - 8], edi
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, edx
add ebx, eax
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
inc eax
add ebx, edx
cmp eax, ecx
mov dword [ebp + 8], eax
jl 0x4350fa
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret