Function at 0x10059370
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 0x10059381
lea ecx, [eax + 0x28]
mov dword [ebp - 0x18], 0x10
jmp 0x10059440
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 0x10059440
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 0x100594e6
mov edi, esi
not edi
and edi, ebx
mov ebx, esi
and ebx, edx
or edi, ebx
mov ebx, dword [ebp - 8]
jmp 0x10059505
cmp edi, 0x28
jb 0x100594ff
cmp edi, 0x3c
jae 0x100594ff
mov edi, ebx
or edi, edx
and ebx, edx
and edi, esi
or edi, ebx
mov ebx, dword [ebp - 8]
jmp 0x10059505
mov edi, esi
xor edi, ebx
xor edi, edx
mov edx, dword [ebp - 0xc]
add edx, 0xfffffffe
cmp edx, 0x14
jae 0x10059519
mov dword [ebp - 4], 0x5a827999
jmp 0x1005953b
cmp edx, 0x28
jae 0x10059527
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x1005953b
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 0x1005957d
mov ebx, edx
not ebx
and ebx, edi
mov edi, edx
and edi, esi
or ebx, edi
jmp 0x10059599
cmp ebx, 0x28
jb 0x10059593
cmp ebx, 0x3c
jae 0x10059593
mov ebx, edi
or ebx, esi
and ebx, edx
and edi, esi
or ebx, edi
jmp 0x10059599
mov ebx, edx
xor ebx, edi
xor ebx, esi
mov edi, dword [ebp - 0xc]
dec edi
cmp edi, 0x14
jae 0x100595ab
mov dword [ebp - 4], 0x5a827999
jmp 0x100595cd
cmp edi, 0x28
jae 0x100595b9
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x100595cd
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 0x1005961a
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ebx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x10059639
cmp esi, 0x28
jb 0x10059633
cmp esi, 0x3c
jae 0x10059633
mov esi, edi
or esi, ebx
and edi, ebx
and esi, edx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x10059639
mov esi, edx
xor esi, edi
xor esi, ebx
mov ebx, dword [ebp - 0xc]
cmp ebx, 0x14
jae 0x1005964a
mov dword [ebp - 4], 0x5a827999
jmp 0x1005966c
cmp ebx, 0x28
jae 0x10059658
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x1005966c
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 0x100596b9
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ebx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x100596d8
cmp esi, 0x28
jb 0x100596d2
cmp esi, 0x3c
jae 0x100596d2
mov esi, edi
or esi, ebx
and edi, ebx
and esi, edx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x100596d8
mov esi, edx
xor esi, edi
xor esi, ebx
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, 0x14
jae 0x100596ea
mov dword [ebp - 4], 0x5a827999
jmp 0x1005970c
cmp ebx, 0x28
jae 0x100596f8
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x1005970c
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 0x1005975b
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ebx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x1005977a
cmp esi, 0x28
jb 0x10059774
cmp esi, 0x3c
jae 0x10059774
mov esi, edi
or esi, ebx
and edi, ebx
and esi, edx
or esi, edi
mov edi, dword [ebp - 8]
jmp 0x1005977a
mov esi, edx
xor esi, edi
xor esi, ebx
mov ebx, dword [ebp - 0xc]
add ebx, 2
cmp ebx, 0x14
jae 0x1005978e
mov dword [ebp - 4], 0x5a827999
jmp 0x100597b0
cmp ebx, 0x28
jae 0x1005979c
mov dword [ebp - 4], 0x6ed9eba1
jmp 0x100597b0
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 0x100594c8
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