Function at 0x4069d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
lea ebp, [ecx + 0x28]
push edi
mov edx, ebp
mov edi, 4
mov esi, dword [edx]
mov dword [esp + 0x18], esi
mov eax, esi
shl eax, 0x10
and esi, 0xff00
or eax, esi
movzx esi, byte [edx + 3]
shl eax, 8
or eax, esi
xor ebx, ebx
mov bh, byte [esp + 0x1a]
add edx, 0x10
or eax, ebx
mov dword [edx - 0x10], eax
mov esi, dword [edx - 0xc]
mov dword [esp + 0x18], esi
mov eax, esi
shl eax, 0x10
xor ebx, ebx
mov bh, byte [esp + 0x1a]
and esi, 0xff00
or eax, esi
movzx esi, byte [edx - 9]
shl eax, 8
or eax, ebx
or eax, esi
mov dword [edx - 0xc], eax
mov esi, dword [edx - 8]
mov dword [esp + 0x18], esi
xor ebx, ebx
mov bh, byte [esp + 0x1a]
mov eax, esi
shl eax, 0x10
and esi, 0xff00
or eax, esi
movzx esi, byte [edx - 5]
shl eax, 8
or eax, ebx
or eax, esi
mov dword [edx - 8], eax
mov esi, dword [edx - 4]
mov dword [esp + 0x18], esi
xor ebx, ebx
mov bh, byte [esp + 0x1a]
mov eax, esi
shl eax, 0x10
and esi, 0xff00
or eax, esi
movzx esi, byte [edx - 1]
shl eax, 8
or eax, ebx
or eax, esi
dec edi
mov dword [edx - 4], eax
jne 0x4069e1
mov eax, ebp
mov ebx, 0x10
mov edi, dword [eax + 0x20]
mov edx, dword [eax + 0x34]
mov ebp, dword [eax]
mov esi, dword [eax + 8]
xor edx, edi
xor edx, ebp
mov ebp, dword [eax + 0x24]
xor edx, esi
mov edi, edx
add edx, edx
shr edi, 0x1f
or edi, edx
mov edx, dword [eax + 0x38]
xor edx, ebp
xor edx, dword [eax + 4]
mov dword [eax + 0x40], edi
mov edi, dword [eax + 0xc]
xor edx, edi
mov ebp, edx
add edx, edx
shr ebp, 0x1f
or ebp, edx
mov edx, dword [eax + 0x3c]
mov dword [eax + 0x44], ebp
xor edx, dword [eax + 0x28]
xor edx, dword [eax + 0x10]
xor edx, esi
mov esi, edx
shr esi, 0x1f
add edx, edx
or esi, edx
mov edx, dword [eax + 0x2c]
mov dword [eax + 0x48], esi
xor edx, dword [eax + 0x14]
mov esi, dword [eax + 0x40]
xor edx, edi
xor edx, esi
mov esi, edx
shr esi, 0x1f
add edx, edx
or esi, edx
mov dword [eax + 0x4c], esi
add eax, 0x10
dec ebx
jne 0x406a91
mov eax, dword [ecx + 0x14]
mov dword [ecx], eax
mov eax, dword [ecx + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x10], eax
mov ebp, 2
lea eax, [ecx + 0x2c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
lea ecx, [ecx]
mov esi, dword [ecx]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
mov edi, dword [ecx + 4]
lea edx, [ebp - 2]
cmp edx, 0x14
jae 0x406b51
mov edx, edi
not edx
and edx, eax
mov eax, edi
and eax, ebx
or edx, eax
jmp 0x406b6d
cmp edx, 0x28
jb 0x406b67
cmp edx, 0x3c
jae 0x406b67
mov edx, ebx
or edx, eax
and edx, edi
and ebx, eax
or edx, ebx
jmp 0x406b6d
mov edx, edi
xor edx, ebx
xor edx, eax
lea eax, [ebp - 2]
cmp eax, 0x14
jae 0x406b7c
mov ebx, 0x5a827999
jmp 0x406b99
cmp eax, 0x28
jae 0x406b88
mov ebx, 0x6ed9eba1
jmp 0x406b99
cmp eax, 0x3c
sbb ebx, ebx
and ebx, 0xc4b8fb06
add ebx, 0xca62c1d6
mov eax, esi
shl esi, 5
shr eax, 0x1b
or eax, esi
mov esi, dword [esp + 0x14]
add eax, dword [esi - 4]
add eax, dword [ecx + 0x10]
add eax, ebx
add eax, edx
mov edx, dword [ecx + 0xc]
mov dword [ecx + 0x10], edx
mov edx, dword [ecx + 8]
mov esi, edi
shr edi, 2
mov dword [ecx + 0xc], edx
mov edx, dword [ecx]
shl esi, 0x1e
or esi, edi
lea ebx, [ebp - 1]
cmp ebx, 0x14
mov dword [ecx + 4], edx
mov edx, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
mov dword [ecx + 8], esi
mov dword [ecx], eax
jae 0x406bed
mov ebx, edi
not ebx
and ebx, edx
mov edx, edi
and edx, esi
or ebx, edx
jmp 0x406c0f
cmp ebx, 0x28
jb 0x406c09
cmp ebx, 0x3c
jae 0x406c09
mov ebx, esi
or ebx, edx
mov ebp, esi
and ebp, edx
and ebx, edi
or ebx, ebp
mov ebp, dword [esp + 0x18]
jmp 0x406c0f
mov ebx, edi
xor ebx, esi
xor ebx, edx
lea edx, [ebp - 1]
cmp edx, 0x14
jae 0x406c21
mov dword [esp + 0x10], 0x5a827999
jmp 0x406c45
cmp edx, 0x28
jae 0x406c30
mov dword [esp + 0x10], 0x6ed9eba1
jmp 0x406c45
cmp edx, 0x3c
sbb edx, edx
and edx, 0xc4b8fb06
add edx, 0xca62c1d6
mov dword [esp + 0x10], edx
mov edx, eax
shl eax, 5
shr edx, 0x1b
or edx, eax
add edx, dword [ecx + 0x10]
add edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add edx, ebx
mov ebx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0xc], esi
mov esi, edi
shr edi, 2
mov dword [ecx + 0x10], eax
mov eax, dword [ecx]
shl esi, 0x1e
or esi, edi
add edx, ebx
cmp ebp, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
mov dword [ecx + 8], esi
mov dword [ecx], edx
jae 0x406c96
mov ebx, edi
not ebx
and ebx, eax
mov eax, edi
and eax, esi
or ebx, eax
jmp 0x406cb8
cmp ebp, 0x28
jb 0x406cb2
cmp ebp, 0x3c
jae 0x406cb2
mov ebx, esi
or ebx, eax
mov ebp, esi
and ebp, eax
and ebx, edi
or ebx, ebp
mov ebp, dword [esp + 0x18]
jmp 0x406cb8
mov ebx, edi
xor ebx, esi
xor ebx, eax
cmp ebp, 0x14
jae 0x406cc7
mov dword [esp + 0x10], 0x5a827999
jmp 0x406ce9
cmp ebp, 0x28
jae 0x406cd6
mov dword [esp + 0x10], 0x6ed9eba1
jmp 0x406ce9
cmp ebp, 0x3c
sbb eax, eax
and eax, 0xc4b8fb06
add eax, 0xca62c1d6
mov dword [esp + 0x10], eax
mov eax, edx
shl edx, 5
shr eax, 0x1b
or eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [edx + 4]
add eax, dword [ecx + 0x10]
add eax, dword [esp + 0x10]
mov edx, dword [ecx + 0xc]
mov dword [ecx + 0xc], esi
mov esi, edi
add eax, ebx
shr edi, 2
mov dword [ecx + 0x10], edx
mov edx, dword [ecx]
shl esi, 0x1e
or esi, edi
lea ebx, [ebp + 1]
cmp ebx, 0x14
mov dword [ecx + 4], edx
mov edx, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
mov dword [ecx + 8], esi
mov dword [ecx], eax
jae 0x406d3c
mov ebx, edi
not ebx
and ebx, edx
mov edx, edi
and edx, esi
or ebx, edx
jmp 0x406d5e
cmp ebx, 0x28
jb 0x406d58
cmp ebx, 0x3c
jae 0x406d58
mov ebx, esi
or ebx, edx
mov ebp, esi
and ebp, edx
and ebx, edi
or ebx, ebp
mov ebp, dword [esp + 0x18]
jmp 0x406d5e
mov ebx, edi
xor ebx, esi
xor ebx, edx
lea edx, [ebp + 1]
cmp edx, 0x14
jae 0x406d70
mov dword [esp + 0x10], 0x5a827999
jmp 0x406d94
cmp edx, 0x28
jae 0x406d7f
mov dword [esp + 0x10], 0x6ed9eba1
jmp 0x406d94
cmp edx, 0x3c
sbb edx, edx
and edx, 0xc4b8fb06
add edx, 0xca62c1d6
mov dword [esp + 0x10], edx
mov edx, eax
shl eax, 5
shr edx, 0x1b
or edx, eax
mov eax, dword [esp + 0x14]
add edx, dword [eax + 8]
add edx, dword [ecx + 0x10]
add edx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0xc], esi
mov esi, edi
add edx, ebx
shr edi, 2
mov dword [ecx + 0x10], eax
mov eax, dword [ecx]
shl esi, 0x1e
or esi, edi
lea ebx, [ebp + 2]
cmp ebx, 0x14
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
mov dword [ecx + 8], esi
mov dword [ecx], edx
jae 0x406de7
mov ebx, edi
not ebx
and ebx, eax
mov eax, edi
and eax, esi
or ebx, eax
jmp 0x406e09
cmp ebx, 0x28
jb 0x406e03
cmp ebx, 0x3c
jae 0x406e03
mov ebx, esi
or ebx, eax
mov ebp, esi
and ebp, eax
and ebx, edi
or ebx, ebp
mov ebp, dword [esp + 0x18]
jmp 0x406e09
mov ebx, edi
xor ebx, esi
xor ebx, eax
lea eax, [ebp + 2]
cmp eax, 0x14
jae 0x406e1b
mov dword [esp + 0x10], 0x5a827999
jmp 0x406e3d
cmp eax, 0x28
jae 0x406e2a
mov dword [esp + 0x10], 0x6ed9eba1
jmp 0x406e3d
cmp eax, 0x3c
sbb eax, eax
and eax, 0xc4b8fb06
add eax, 0xca62c1d6
mov dword [esp + 0x10], eax
mov eax, edx
shl edx, 5
shr eax, 0x1b
or eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [edx + 0xc]
add eax, dword [ecx + 0x10]
add eax, dword [esp + 0x10]
mov edx, dword [ecx + 0xc]
mov dword [ecx + 0xc], esi
mov esi, dword [ecx]
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x14]
mov dword [ecx + 0x10], edx
add esi, 0x14
mov edx, edi
add ebp, 5
shl edx, 0x1e
shr edi, 2
mov dword [esp + 0x14], esi
add eax, ebx
or edx, edi
lea esi, [ebp - 2]
cmp esi, 0x50
mov dword [ecx + 8], edx
mov dword [ecx], eax
mov dword [esp + 0x18], ebp
jb 0x406b30
mov esi, dword [ecx + 0x14]
mov edi, dword [ecx + 0x18]
add esi, eax
mov eax, dword [ecx + 4]
add eax, edi
mov dword [ecx + 0x18], eax
mov eax, dword [ecx + 0x1c]
add edx, eax
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x1c], edx
mov edx, dword [ecx + 0xc]
mov dword [ecx + 0x14], esi
add edx, dword [ecx + 0x20]
pop edi
mov dword [ecx + 0x20], edx
mov edx, dword [ecx + 0x24]
pop esi
add eax, edx
pop ebp
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x168], 0
pop ebx
add esp, 0xc
ret