Function at 0x43fe70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
lea ecx, [eax + 0x2c]
mov esi, 4
mov edx, dword [ecx - 4]
mov edi, edx
and edi, 0xff0000
mov ebx, edx
shr ebx, 0x10
or edi, ebx
shr edi, 8
mov ebx, edx
shl ebx, 0x10
and edx, 0xff00
or ebx, edx
shl ebx, 8
or edi, ebx
mov dword [ecx - 4], edi
mov edx, dword [ecx]
mov edi, edx
and edi, 0xff0000
mov ebx, edx
shr ebx, 0x10
or edi, ebx
shr edi, 8
mov ebx, edx
shl ebx, 0x10
and edx, 0xff00
or ebx, edx
shl ebx, 8
or edi, ebx
mov dword [ecx], edi
mov edx, dword [ecx + 4]
mov edi, edx
and edi, 0xff0000
mov ebx, edx
shr ebx, 0x10
or edi, ebx
mov ebx, edx
shl ebx, 0x10
and edx, 0xff00
or ebx, edx
shl ebx, 8
shr edi, 8
or edi, ebx
mov dword [ecx + 4], edi
mov edx, dword [ecx + 8]
mov edi, edx
and edi, 0xff0000
mov ebx, edx
shr ebx, 0x10
or edi, ebx
mov ebx, edx
shl ebx, 0x10
and edx, 0xff00
or ebx, edx
shr edi, 8
shl ebx, 8
or edi, ebx
mov dword [ecx + 8], edi
add ecx, 0x10
dec esi
jne 0x43fe81
lea ecx, [eax + 0x28]
mov dword [ebp - 0x18], 0x10
jmp 0x43ff40
mov edx, dword [ecx + 0x34]
xor edx, dword [ecx + 0x20]
mov esi, dword [ecx + 8]
mov ebx, dword [ecx + 0x38]
xor ebx, dword [ecx + 0x24]
mov edi, dword [ecx + 0xc]
xor ebx, dword [ecx + 4]
xor edx, esi
xor edx, dword [ecx]
xor ebx, edi
rol edx, 1
rol ebx, 1
mov dword [ecx + 0x44], ebx
mov ebx, dword [ecx + 0x3c]
xor ebx, dword [ecx + 0x28]
mov dword [ecx + 0x40], edx
xor ebx, dword [ecx + 0x10]
add ecx, 0x10
xor ebx, esi
mov esi, dword [ecx + 0x1c]
xor esi, dword [ecx + 4]
rol ebx, 1
xor esi, edx
xor esi, edi
rol esi, 1
dec dword [ebp - 0x18]
mov dword [ecx + 0x38], ebx
mov dword [ecx + 0x3c], esi
jne 0x43ff40
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov dword [eax], ecx
mov ecx, dword [eax + 0x1c]
mov dword [eax + 4], edx
mov edx, dword [eax + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [eax + 0x24]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov esi, dword [eax + 4]
mov ebx, edx
mov dword [ebp - 8], edx
mov edx, dword [eax + 8]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], 2
mov dword [ebp - 0x18], 0x2c
mov edi, dword [ebp - 0xc]
mov ecx, dword [eax]
add edi, 0xfffffffe
cmp edi, 0x14
jae 0x43ffe6
mov edi, esi
not edi
and edi, ebx
mov ebx, esi
and ebx, edx
or edi, ebx
mov ebx, dword [ebp - 8]
jmp 0x440005
cmp edi, 0x28
jb 0x43ffff
cmp edi, 0x3c
jae 0x43ffff
mov edi, ebx
or edi, edx
and ebx, edx
and edi, esi
or edi, ebx
mov ebx, dword [ebp - 8]
jmp 0x440005
mov edi, esi
xor edi, ebx
xor edi, edx
mov edx, dword [ebp - 0xc]
add edx, 0xfffffffe
cmp edx, 0x14
jae 0x440019
mov dword [ebp - 4], 0x5a827999
jmp 0x44003b
cmp edx, 0x28
jae 0x440027
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x44003b
cmp edx, 0x3c
sbb edx, edx
and edx, 0xc4b8fb06
add edx, 0xca62c1d6
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x18]
rol ecx, 5
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], ebx
add ecx, dword [ebp - 4]
add ecx, edi
add ecx, dword [edx + eax - 4]
mov edx, dword [eax]
mov edi, dword [ebp - 0x14]
mov dword [eax + 0x10], ebx
mov ebx, dword [ebp - 0xc]
ror esi, 2
dec ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
cmp ebx, 0x14
jae 0x44007d
mov ebx, edx
not ebx
and ebx, edi
mov edi, edx
and edi, esi
or ebx, edi
jmp 0x440099
cmp ebx, 0x28
jb 0x440093
cmp ebx, 0x3c
jae 0x440093
mov ebx, edi
or ebx, esi
and ebx, edx
and edi, esi
or ebx, edi
jmp 0x440099
mov ebx, edx
xor ebx, edi
xor ebx, esi
mov edi, dword [ebp - 0xc]
dec edi
cmp edi, 0x14
jae 0x4400ab
mov dword [ebp - 4], 0x5a827999
jmp 0x4400cd
cmp edi, 0x28
jae 0x4400b9
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x4400cd
cmp edi, 0x3c
sbb edi, edi
and edi, 0xc4b8fb06
add edi, 0xca62c1d6
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
rol ecx, 5
add ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 4]
add ecx, ebx
add ecx, dword [edi + eax]
mov edi, dword [ebp - 0x14]
ror edx, 2
mov dword [ebp - 0x10], edi
mov dword [eax + 0x10], edi
mov edi, esi
mov ebx, edx
mov edx, dword [eax]
mov dword [eax + 0xc], esi
mov esi, dword [ebp - 0xc]
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], ebx
mov dword [eax + 8], ebx
mov dword [eax + 4], edx
mov dword [eax], ecx
cmp esi, 0x14
jae 0x44011a
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ebx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x440139
cmp esi, 0x28
jb 0x440133
cmp esi, 0x3c
jae 0x440133
mov esi, edi
or esi, ebx
and edi, ebx
and esi, edx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x440139
mov esi, edx
xor esi, edi
xor esi, ebx
mov ebx, dword [ebp - 0xc]
cmp ebx, 0x14
jae 0x44014a
mov dword [ebp - 4], 0x5a827999
jmp 0x44016c
cmp ebx, 0x28
jae 0x440158
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x44016c
cmp ebx, 0x3c
sbb ebx, ebx
and ebx, 0xc4b8fb06
add ebx, 0xca62c1d6
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0x18]
rol ecx, 5
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edi
add ecx, dword [ebx + eax + 4]
mov dword [eax + 0x10], edi
add ecx, dword [ebp - 4]
mov edi, dword [ebp - 0x14]
add ecx, esi
mov esi, dword [ebp - 0xc]
ror edx, 2
mov ebx, edx
mov edx, dword [eax]
inc esi
mov dword [ebp - 8], edi
mov dword [eax + 0xc], edi
mov dword [ebp - 0x14], ebx
mov dword [eax + 8], ebx
mov dword [eax + 4], edx
mov dword [eax], ecx
cmp esi, 0x14
jae 0x4401b9
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ebx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x4401d8
cmp esi, 0x28
jb 0x4401d2
cmp esi, 0x3c
jae 0x4401d2
mov esi, edi
or esi, ebx
and edi, ebx
and esi, edx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x4401d8
mov esi, edx
xor esi, edi
xor esi, ebx
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, 0x14
jae 0x4401ea
mov dword [ebp - 4], 0x5a827999
jmp 0x44020c
cmp ebx, 0x28
jae 0x4401f8
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x44020c
cmp ebx, 0x3c
sbb ebx, ebx
and ebx, 0xc4b8fb06
add ebx, 0xca62c1d6
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0x18]
rol ecx, 5
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edi
add ecx, dword [ebx + eax + 8]
mov dword [eax + 0x10], edi
add ecx, dword [ebp - 4]
mov edi, dword [ebp - 0x14]
add ecx, esi
mov esi, dword [ebp - 0xc]
ror edx, 2
mov ebx, edx
mov edx, dword [eax]
add esi, 2
mov dword [ebp - 8], edi
mov dword [eax + 0xc], edi
mov dword [ebp - 0x14], ebx
mov dword [eax + 8], ebx
mov dword [eax + 4], edx
mov dword [eax], ecx
cmp esi, 0x14
jae 0x44025b
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ebx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x44027a
cmp esi, 0x28
jb 0x440274
cmp esi, 0x3c
jae 0x440274
mov esi, edi
or esi, ebx
and edi, ebx
and esi, edx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x44027a
mov esi, edx
xor esi, edi
xor esi, ebx
mov ebx, dword [ebp - 0xc]
add ebx, 2
cmp ebx, 0x14
jae 0x44028e
mov dword [ebp - 4], 0x5a827999
jmp 0x4402b0
cmp ebx, 0x28
jae 0x44029c
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x4402b0
cmp ebx, 0x3c
sbb ebx, ebx
and ebx, 0xc4b8fb06
add ebx, 0xca62c1d6
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0x18]
add dword [ebp - 0x18], 0x14
rol ecx, 5
add ecx, dword [ebx + eax + 0xc]
mov ebx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edi
add ecx, dword [ebp - 4]
mov dword [eax + 0x10], edi
add ecx, esi
mov esi, dword [eax]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
add ecx, 5
ror edx, 2
mov dword [ebp - 0xc], ecx
add ecx, 0xfffffffe
mov dword [ebp - 8], ebx
mov dword [eax + 0xc], ebx
mov dword [ebp - 0x14], edx
mov dword [eax + 8], edx
mov dword [eax + 4], esi
cmp ecx, 0x50
jb 0x43ffc8
mov ecx, dword [eax]
add dword [eax + 0x14], ecx
mov edx, dword [eax + 4]
mov ecx, dword [eax + 8]
add dword [eax + 0x18], edx
add dword [eax + 0x1c], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
add dword [eax + 0x20], edx
add dword [eax + 0x24], ecx
pop edi
pop esi
mov dword [eax + 0x168], 0
pop ebx
mov esp, ebp
pop ebp
ret