Function at 0x440480
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7f8357
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1f0
mov eax, dword [0x90cf34]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0xf
mov byte [ebp - 0x98], 0
lea eax, [edx + 0x864]
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 8
mov dword [ebp - 0x1f8], eax
jb 0x44050e
mov eax, dword [eax]
mov dword [ebp - 0x1f8], eax
cmp dword [0x1807dcc], 8
mov eax, 0x1807db8
cmovae eax, dword [0x1807db8]
cmp dword [edx + 0x800], 8
mov dword [ebp - 0x1f4], eax
lea eax, [edx + 0x7ec]
mov dword [ebp - 0x1ec], eax
jb 0x440544
mov eax, dword [eax]
mov dword [ebp - 0x1ec], eax
mov ecx, 0x17
lea edi, [ebp - 0x110]
mov esi, 0x8d3360
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
cmp dword [0x18011f4], 2
lea eax, [esi + 1]
jl 0x440690
movaps xmm4, xmmword [0x8d5c60]
movaps xmm3, xmmword [0x8d5cd0]
movaps xmm6, xmmword [0x8d5c80]
movd xmm5, eax
mov eax, 0x1f
movd xmm7, eax
nop dword [eax]
movd xmm0, esi
lea eax, [esi + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x8d5cb0]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x110]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movq qword [ebp + esi*2 - 0x110], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x8d5cb0]
paddw xmm1, xmm0
movq xmm0, qword [ebp + esi*2 - 0x108]
pxor xmm1, xmm0
movq qword [ebp + esi*2 - 0x108], xmm1
add esi, 8
cmp esi, 0x28
jl 0x440590
cmp esi, 0x2f
jge 0x4406be
nop dword [eax + eax]
mov eax, 0x94f2095
mov ecx, esi
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x37
sub ecx, eax
add ecx, 0x32
xor word [ebp + esi*2 - 0x110], cx
inc esi
cmp esi, 0x2f
jl 0x440690
mov edx, dword [ebp - 0x1fc]
lea eax, [edx + 0x11c]
push eax
lea eax, [edx + 0x15c]
push eax
push dword [ebp - 0x1f8]
lea eax, [ebp - 0x110]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1ec]
push 0x8d2dd8
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00413d70
add esp, 0x20
xorps xmm0, xmm0
mov dword [ebp - 0xe8], 0
xor eax, eax
movlpd qword [ebp - 0x100], xmm0
movaps xmm0, xmmword [0x8d5ca0]
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
movups xmmword [ebp - 0xc8], xmm0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x6c], 8
lea eax, [ebp - 0x80]
push ecx
cmovae eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x100]
push eax
call fcn.00455c70
xor edi, edi
lea esi, [edi + 1]
cmp dword [ebp - 0x88], edi
je 0x440bab
push edi
lea ecx, [ebp - 0x50]
call fcn.0045ef40
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 3
call fcn.00464cf0
push esi
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x1e8]
call fcn.00466990
lea ecx, [ebp - 0x50]
call fcn.00461b30
test al, al
je 0x440b7b
push 0x8d2e24
lea ecx, [ebp - 0x50]
call fcn.0045f7c0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, eax
call fcn.00460ba0
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xb0]
call fcn.00450220
mov edx, eax
mov byte [ebp - 4], 6
cmp dword [edx + 0x14], 8
jb 0x4407f0
mov edx, dword [edx]
mov ecx, edx
mov dword [ebp - 0x28], 0
xor eax, eax
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x440810
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x38]
call fcn.0040d800
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x9c]
cmp edx, 8
jb 0x44086d
mov ecx, dword [ebp - 0xb0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x440863
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dbb
push edx
push ecx
call fcn.0059982b
add esp, 8
xor eax, eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 7
mov word [ebp - 0xb0], ax
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x4408c2
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4408b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dc0
push edx
push ecx
call fcn.0059982b
add esp, 8
push 0x8d2e2c
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
call fcn.0045f7c0
lea ecx, [ebp - 0x170]
push ecx
mov ecx, eax
call fcn.00460ba0
cmp dword [eax + 0x14], 0x10
jb 0x4408f7
mov eax, dword [eax]
push eax
call fcn.006ad465
mov edx, dword [ebp - 0x15c]
add esp, 4
mov esi, eax
mov dword [ebp - 0x1f4], esi
cmp edx, 0x10
jb 0x440942
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x440938
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dc5
push edx
push ecx
call fcn.0059982b
add esp, 8
cmp dword [ebp - 0x28], 0
je 0x440a0a
mov esi, dword [ebp - 0x1f0]
xor edi, edi
mov dword [ebp - 0x1ec], 1
nop
mov eax, dword [esi]
xorps xmm0, xmm0
mov dword [esi + 4], eax
xor eax, eax
movlpd qword [ebp - 0x158], xmm0
movaps xmm0, xmmword [0x8d5ca0]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 7
mov word [ebp - 0x150], ax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], 7
mov word [ebp - 0x138], ax
movups xmmword [ebp - 0x120], xmm0
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x38]
cmp dword [ebp - 0x24], 8
lea ecx, [ebp - 0x158]
push esi
cmovae eax, dword [ebp - 0x38]
push eax
call fcn.004553b0
test eax, eax
je 0x4409de
mov eax, dword [esi + 4]
sub eax, dword [esi]
cmp eax, 0x400
ja 0x440a4b
push 0xc8
call dword [0x810368]
lea ecx, [ebp - 0x158]
inc edi
call fcn.00455310
cmp edi, 3
jl 0x440960
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1ec]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x440b7b
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x440b71
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dca
jmp 0x440b71
mov ax, word [0x8d23b8]
movq xmm0, qword [0x8d23b0]
movq qword [ebp - 0x20], xmm0
mov word [ebp - 0x18], ax
test ah, ah
je 0x440aa3
xor edx, edx
mov dword [ebp - 0x1ec], edx
nop
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1ec]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x20], cl
inc edx
mov dword [ebp - 0x1ec], edx
cmp edx, 0xa
jl 0x440a70
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x68]
call fcn.00405c20
mov edx, esi
lea ecx, [ebp - 0x68]
call fcn.00413aa0
mov edx, dword [ebp - 0x54]
cmp edx, 0x10
jb 0x440aed
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x440ae3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dcf
push edx
push ecx
call fcn.0059982b
add esp, 8
mov ecx, dword [esi]
mov eax, dword [esi + 4]
push 0
sub eax, ecx
push eax
push ecx
call fcn.005b6dcd
add esp, 0xc
lea ecx, [ebp - 0x158]
call fcn.00455310
mov edx, dword [ebp - 0x24]
cmp edx, 8
jb 0x440b45
mov ecx, dword [ebp - 0x38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x440b3b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dd4
push edx
push ecx
call fcn.0059982b
add esp, 8
xor eax, eax
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x1e8]
mov dword [ebp - 0x24], 7
mov word [ebp - 0x38], ax
call fcn.0043d1d0
lea ecx, [ebp - 0x50]
call fcn.0045f310
jmp 0x440d07
push edx
push ecx
call fcn.0059982b
add esp, 8
lea ecx, [ebp - 0x1e8]
call fcn.0043d1d0
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 2
call fcn.0045f310
test edi, edi
je 0x440bab
mov eax, dword [ebp - 0x1fc]
cmp dword [eax + 0x7b0], 0
je 0x440bab
mov dword [eax + 0x7b0], esi
push 4
call fcn.005b6dc0
add esp, 4
push 0x8d1730
call fcn.005b6d77
add esp, 4
push 0x8d2e38
push 0x70
call fcn.005b23f0
push eax
call dword [0x810620]
mov esi, eax
test esi, esi
je 0x440d07
push esi
call fcn.005b23f0
push eax
call dword [0x810618]
mov edi, eax
test edi, edi
je 0x440d07
push esi
call fcn.005b23f0
push eax
call dword [0x810610]
mov esi, eax
test esi, esi
je 0x440d07
push edi
call dword [0x8103e0]
push dword [ebp - 0x1f4]
mov ecx, eax
lea eax, [ecx + esi]
mov esi, dword [ebp - 0x1f0]
push eax
push ecx
mov ecx, esi
push dword [esi + 4]
call fcn.00406910
mov ax, word [0x8d23b8]
movq xmm0, qword [0x8d23b0]
movq qword [ebp - 0x20], xmm0
mov word [ebp - 0x18], ax
test ah, ah
je 0x440c87
xor edx, edx
mov dword [ebp - 0x1f0], edx
mov eax, 0x94f2095
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1f0]
movsx eax, al
mov cl, dl
imul eax, eax, 0x37
sub cl, al
add cl, 0x32
xor byte [ebp + edx - 0x20], cl
inc edx
mov dword [ebp - 0x1f0], edx
cmp edx, 0xa
jl 0x440c54
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x50], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440ca0
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00405af0
mov edx, esi
lea ecx, [ebp - 0x50]
call fcn.00413aa0
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x440cf4
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x440cea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dd9
push edx
push ecx
call fcn.0059982b
add esp, 8
mov ecx, dword [esi]
mov eax, dword [esi + 4]
push 0
sub eax, ecx
push eax
push ecx
call fcn.005b6dcd
add esp, 0xc
lea ecx, [ebp - 0x100]
call fcn.00455310
mov edx, dword [ebp - 0x6c]
cmp edx, 8
jb 0x440d4c
mov ecx, dword [ebp - 0x80]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x440d42
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440dde
push edx
push ecx
call fcn.0059982b
add esp, 8
mov edx, dword [ebp - 0x84]
xor eax, eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 7
mov word [ebp - 0x80], ax
cmp edx, 0x10
jb 0x440d96
mov ecx, dword [ebp - 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x440d8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x440de3
push edx
push ecx
call fcn.0059982b
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0059961f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
call fcn.006a6ec9
int3