Function at 0x4bb490
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x4c
mov eax, dword [esp + 0x50]
push ebx
mov ebx, dword [esp + 0x58]
push ebp
mov ecx, ebx
push esi
shr ecx, 2
push edi
lea edx, [eax + ecx*4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x68]
add dword [edx + 0x10], ebx
cmp dword [edx + 0x10], ebx
mov esi, dword [edx]
mov ecx, dword [edx + 4]
mov ebp, dword [edx + 8]
mov edi, dword [edx + 0xc]
jae 0x4bb4c5
inc dword [edx + 0x14]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
cmp ebx, edx
jae 0x4bbf05
xor edx, edx
xor ebx, ebx
mov dh, byte [eax + 3]
mov bl, byte [eax + 1]
mov dl, byte [eax + 2]
mov dword [esp + 0x60], esi
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax]
add eax, 4
shl edx, 8
or edx, ebx
mov ebx, edi
xor ebx, ebp
mov dword [esp + 0x1c], edx
and ebx, ecx
mov dword [esp + 0x18], edi
xor ebx, edi
add eax, 4
add ebx, edx
mov dword [esp + 0x14], ebp
add eax, 4
mov dword [esp + 0x10], ecx
lea edx, [esi + ebx - 0x28955b88]
xor ebx, ebx
mov esi, edx
mov bl, byte [eax - 7]
shr esi, 0x19
shl edx, 7
or esi, edx
xor edx, edx
mov dh, byte [eax - 5]
add esi, ecx
mov dl, byte [eax - 6]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 8]
shl edx, 8
or edx, ebx
mov ebx, ebp
xor ebx, ecx
mov dword [esp + 0x20], edx
and ebx, esi
xor ebx, ebp
add ebx, edx
lea edx, [edi + ebx - 0x173848aa]
xor ebx, ebx
mov edi, edx
mov bl, byte [eax - 3]
shr edi, 0x14
shl edx, 0xc
or edi, edx
xor edx, edx
mov dh, byte [eax - 1]
add edi, esi
mov dl, byte [eax - 2]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 4]
shl edx, 8
or edx, ebx
mov ebx, ecx
xor ebx, esi
mov dword [esp + 0x24], edx
and ebx, edi
xor ebx, ecx
add ebx, edx
lea edx, [ebx + ebp + 0x242070db]
mov ebp, edx
shr ebp, 0xf
shl edx, 0x11
or ebp, edx
xor edx, edx
mov dh, byte [eax + 3]
add ebp, edi
mov dl, byte [eax + 2]
shl edx, 8
xor ebx, ebx
mov bl, byte [eax + 1]
add eax, 4
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 4]
add eax, 4
shl edx, 8
or edx, ebx
mov ebx, edi
xor ebx, esi
mov dword [esp + 0x28], edx
and ebx, ebp
add eax, 4
xor ebx, esi
add ebx, edx
lea edx, [ecx + ebx - 0x3e423112]
xor ebx, ebx
mov ecx, edx
mov bl, byte [eax - 7]
shl ecx, 0x16
shr edx, 0xa
or ecx, edx
xor edx, edx
mov dh, byte [eax - 5]
add ecx, ebp
mov dl, byte [eax - 6]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 8]
shl edx, 8
or edx, ebx
mov ebx, edi
xor ebx, ebp
mov dword [esp + 0x2c], edx
and ebx, ecx
xor ebx, edi
add ebx, edx
lea edx, [esi + ebx - 0xa83f051]
xor ebx, ebx
mov esi, edx
mov bl, byte [eax - 3]
shr esi, 0x19
shl edx, 7
or esi, edx
xor edx, edx
mov dh, byte [eax - 1]
add esi, ecx
mov dl, byte [eax - 2]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 4]
shl edx, 8
or edx, ebx
mov ebx, ebp
xor ebx, ecx
mov dword [esp + 0x30], edx
and ebx, esi
xor ebx, ebp
add ebx, edx
lea edx, [edi + ebx + 0x4787c62a]
xor ebx, ebx
mov edi, edx
mov bl, byte [eax + 1]
shr edi, 0x14
shl edx, 0xc
or edi, edx
xor edx, edx
mov dh, byte [eax + 3]
add edi, esi
mov dl, byte [eax + 2]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax]
shl edx, 8
or edx, ebx
mov ebx, ecx
mov dword [esp + 0x34], edx
xor ebx, esi
and ebx, edi
add eax, 4
xor ebx, ecx
add eax, 4
add ebx, edx
add eax, 4
add eax, 4
lea edx, [ebx + ebp - 0x57cfb9ed]
xor ebx, ebx
mov ebp, edx
mov bl, byte [eax - 0xb]
shr ebp, 0xf
shl edx, 0x11
or ebp, edx
xor edx, edx
mov dh, byte [eax - 9]
add ebp, edi
mov dl, byte [eax - 0xa]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 0xc]
shl edx, 8
or edx, ebx
mov ebx, edi
xor ebx, esi
mov dword [esp + 0x38], edx
and ebx, ebp
xor ebx, esi
add ebx, edx
lea ecx, [ecx + ebx - 0x2b96aff]
xor ebx, ebx
mov edx, ecx
mov bl, byte [eax - 7]
shl edx, 0x16
shr ecx, 0xa
or edx, ecx
xor ecx, ecx
mov ch, byte [eax - 5]
add edx, ebp
mov cl, byte [eax - 6]
shl ecx, 8
or ecx, ebx
xor ebx, ebx
mov bl, byte [eax - 8]
shl ecx, 8
or ecx, ebx
mov ebx, edi
xor ebx, ebp
mov dword [esp + 0x3c], ecx
and ebx, edx
xor ebx, edi
add ebx, ecx
lea ecx, [esi + ebx + 0x698098d8]
xor ebx, ebx
mov esi, ecx
mov bl, byte [eax - 3]
shr esi, 0x19
shl ecx, 7
or esi, ecx
xor ecx, ecx
mov ch, byte [eax - 1]
add esi, edx
mov cl, byte [eax - 2]
shl ecx, 8
or ecx, ebx
xor ebx, ebx
mov bl, byte [eax - 4]
shl ecx, 8
or ecx, ebx
mov ebx, ebp
xor ebx, edx
mov dword [esp + 0x40], ecx
and ebx, esi
xor ebx, ebp
add ebx, ecx
lea ecx, [edi + ebx - 0x74bb0851]
mov edi, ecx
shr edi, 0x14
shl ecx, 0xc
or edi, ecx
xor ecx, ecx
xor ebx, ebx
mov ch, byte [eax + 3]
mov bl, byte [eax + 1]
mov cl, byte [eax + 2]
add edi, esi
shl ecx, 8
or ecx, ebx
xor ebx, ebx
mov bl, byte [eax]
add eax, 4
shl ecx, 8
or ecx, ebx
mov ebx, edx
xor ebx, esi
mov dword [esp + 0x44], ecx
and ebx, edi
add eax, 4
xor ebx, edx
add eax, 4
add ebx, ecx
lea ecx, [ebx + ebp - 0xa44f]
xor ebx, ebx
mov ebp, ecx
mov bl, byte [eax - 7]
shr ebp, 0xf
shl ecx, 0x11
or ebp, ecx
xor ecx, ecx
mov ch, byte [eax - 5]
add ebp, edi
mov cl, byte [eax - 6]
shl ecx, 8
or ecx, ebx
xor ebx, ebx
mov bl, byte [eax - 8]
shl ecx, 8
or ecx, ebx
mov ebx, edi
xor ebx, esi
mov dword [esp + 0x48], ecx
and ebx, ebp
xor ebx, esi
add ebx, ecx
lea edx, [edx + ebx - 0x76a32842]
xor ebx, ebx
mov ecx, edx
mov bl, byte [eax - 3]
shl ecx, 0x16
shr edx, 0xa
or ecx, edx
xor edx, edx
mov dh, byte [eax - 1]
add ecx, ebp
mov dl, byte [eax - 2]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 4]
shl edx, 8
or edx, ebx
mov ebx, edi
xor ebx, ebp
mov dword [esp + 0x4c], edx
and ebx, ecx
xor ebx, edi
add ebx, edx
lea edx, [esi + ebx + 0x6b901122]
xor ebx, ebx
mov esi, edx
mov bl, byte [eax + 1]
shr esi, 0x19
shl edx, 7
or esi, edx
xor edx, edx
mov dh, byte [eax + 3]
add esi, ecx
mov dl, byte [eax + 2]
shl edx, 8
or edx, ebx
shl edx, 8
xor ebx, ebx
mov bl, byte [eax]
add eax, 4
or edx, ebx
mov ebx, ebp
xor ebx, ecx
mov dword [esp + 0x50], edx
and ebx, esi
add eax, 4
xor ebx, ebp
add eax, 4
add ebx, edx
lea edx, [edi + ebx - 0x2678e6d]
xor ebx, ebx
mov edi, edx
mov bl, byte [eax - 7]
shr edi, 0x14
shl edx, 0xc
or edi, edx
xor edx, edx
mov dh, byte [eax - 5]
add edi, esi
mov dl, byte [eax - 6]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 8]
shl edx, 8
or edx, ebx
mov ebx, ecx
xor ebx, esi
mov dword [esp + 0x54], edx
and ebx, edi
xor ebx, ecx
add ebx, edx
lea edx, [ebx + ebp - 0x5986bc72]
xor ebx, ebx
mov ebp, edx
mov bl, byte [eax - 3]
shr ebp, 0xf
shl edx, 0x11
or ebp, edx
xor edx, edx
mov dh, byte [eax - 1]
add ebp, edi
mov dl, byte [eax - 2]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [eax - 4]
shl edx, 8
or edx, ebx
mov ebx, edi
xor ebx, esi
mov dword [esp + 0x58], edx
and ebx, ebp
xor ebx, esi
add ebx, edx
lea ecx, [ecx + ebx + 0x49b40821]
mov ebx, dword [esp + 0x20]
mov edx, ecx
shl edx, 0x16
shr ecx, 0xa
or edx, ecx
mov ecx, ebp
add edx, ebp
xor ecx, edx
and ecx, edi
xor ecx, ebp
add ecx, ebx
mov ebx, dword [esp + 0x34]
lea esi, [esi + ecx - 0x9e1da9e]
mov ecx, esi
shr ecx, 0x1b
shl esi, 5
or ecx, esi
mov esi, edx
add ecx, edx
xor esi, ecx
and esi, ebp
xor esi, edx
add esi, ebx
mov ebx, dword [esp + 0x48]
lea edi, [edi + esi - 0x3fbf4cc0]
mov esi, edi
shr esi, 0x17
shl edi, 9
or esi, edi
add esi, ecx
mov edi, esi
xor edi, ecx
and edi, edx
xor edi, ecx
add edi, ebx
lea ebp, [edi + ebp + 0x265e5a51]
mov edi, esi
mov ebx, ebp
shr ebx, 0x12
shl ebp, 0xe
or ebx, ebp
mov ebp, dword [esp + 0x1c]
add ebx, esi
xor edi, ebx
and edi, ecx
xor edi, esi
add edi, ebp
lea edx, [edx + edi - 0x16493856]
mov edi, dword [esp + 0x30]
mov ebp, edx
shl ebp, 0x14
shr edx, 0xc
or ebp, edx
mov edx, ebx
add ebp, ebx
xor edx, ebp
and edx, esi
xor edx, ebx
add edx, edi
mov edi, dword [esp + 0x44]
lea ecx, [ecx + edx - 0x29d0efa3]
mov edx, ecx
shr edx, 0x1b
shl ecx, 5
or edx, ecx
mov ecx, ebp
add edx, ebp
xor ecx, edx
and ecx, ebx
xor ecx, ebp
add ecx, edi
mov edi, dword [esp + 0x58]
lea esi, [esi + ecx + 0x2441453]
mov ecx, esi
shr ecx, 0x17
shl esi, 9
or ecx, esi
add ecx, edx
mov esi, ecx
xor esi, edx
and esi, ebp
xor esi, edx
add esi, edi
mov edi, ecx
lea ebx, [ebx + esi - 0x275e197f]
mov esi, ebx
shr esi, 0x12
shl ebx, 0xe
or esi, ebx
mov ebx, dword [esp + 0x2c]
add esi, ecx
xor edi, esi
and edi, edx
xor edi, ecx
add edi, ebx
lea ebp, [edi + ebp - 0x182c0438]
mov edi, esi
mov ebx, ebp
shl ebx, 0x14
shr ebp, 0xc
or ebx, ebp
add ebx, esi
xor edi, ebx
mov ebp, dword [esp + 0x40]
and edi, ecx
xor edi, esi
add edi, ebp
lea edx, [edx + edi + 0x21e1cde6]
mov edi, dword [esp + 0x54]
mov ebp, edx
shr ebp, 0x1b
shl edx, 5
or ebp, edx
mov edx, ebx
add ebp, ebx
xor edx, ebp
and edx, esi
xor edx, ebx
add edx, edi
mov edi, dword [esp + 0x28]
lea ecx, [ecx + edx - 0x3cc8f82a]
mov edx, ecx
shr edx, 0x17
shl ecx, 9
or edx, ecx
add edx, ebp
mov ecx, edx
xor ecx, ebp
and ecx, ebx
xor ecx, ebp
add ecx, edi
mov edi, dword [esp + 0x3c]
lea esi, [esi + ecx - 0xb2af279]
mov ecx, esi
shr ecx, 0x12
shl esi, 0xe
or ecx, esi
mov esi, edx
add ecx, edx
xor esi, ecx
and esi, ebp
xor esi, edx
add esi, edi
mov edi, ecx
lea ebx, [ebx + esi + 0x455a14ed]
mov esi, ebx
shl esi, 0x14
shr ebx, 0xc
or esi, ebx
mov ebx, dword [esp + 0x50]
add esi, ecx
xor edi, esi
and edi, edx
xor edi, ecx
add edi, ebx
lea ebp, [edi + ebp - 0x561c16fb]
mov edi, esi
mov ebx, ebp
shr ebx, 0x1b
shl ebp, 5
or ebx, ebp
mov ebp, dword [esp + 0x24]
add ebx, esi
xor edi, ebx
and edi, ecx
xor edi, esi
add edi, ebp
mov ebp, dword [esp + 0x38]
lea edx, [edx + edi - 0x3105c08]
mov edi, edx
shr edi, 0x17
shl edx, 9
or edi, edx
add edi, ebx
mov edx, edi
xor edx, ebx
and edx, esi
xor edx, ebx
add edx, ebp
lea ecx, [ecx + edx + 0x676f02d9]
mov ebp, ecx
shr ebp, 0x12
shl ecx, 0xe
or ebp, ecx
add ebp, edi
mov edx, edi
xor edx, ebp
mov ecx, edx
and ecx, ebx
xor ecx, edi
add ecx, dword [esp + 0x4c]
lea esi, [esi + ecx - 0x72d5b376]
mov ecx, esi
shl ecx, 0x14
shr esi, 0xc
or ecx, esi
mov esi, dword [esp + 0x30]
add ecx, ebp
xor edx, ecx
add edx, esi
mov esi, ebp
xor esi, ecx
lea ebx, [ebx + edx - 0x5c6be]
mov edx, ebx
shr edx, 0x1c
shl ebx, 4
or edx, ebx
mov ebx, dword [esp + 0x3c]
add edx, ecx
xor esi, edx
add esi, ebx
mov ebx, dword [esp + 0x48]
lea edi, [edi + esi - 0x788e097f]
mov esi, edi
shr esi, 0x15
shl edi, 0xb
or esi, edi
add esi, edx
mov edi, esi
xor edi, ecx
xor edi, edx
add edi, ebx
lea ebx, [edi + ebp + 0x6d9d6122]
mov edi, ebx
shr edi, 0x10
shl ebx, 0x10
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
mov ebp, ebx
xor ebp, edx
add ebp, dword [esp + 0x54]
lea ebp, [ecx + ebp - 0x21ac7f4]
mov ecx, ebp
shl ecx, 0x17
shr ebp, 9
or ecx, ebp
mov ebp, dword [esp + 0x20]
add ecx, edi
xor ebx, ecx
add ebx, ebp
mov ebp, dword [esp + 0x2c]
lea ebx, [edx + ebx - 0x5b4115bc]
mov edx, ebx
shr edx, 0x1c
shl ebx, 4
or edx, ebx
mov ebx, edi
add edx, ecx
xor ebx, ecx
xor ebx, edx
add ebx, ebp
mov ebp, dword [esp + 0x38]
lea ebx, [esi + ebx + 0x4bdecfa9]
mov esi, ebx
shr esi, 0x15
shl ebx, 0xb
or esi, ebx
add esi, edx
mov ebx, esi
xor ebx, ecx
xor ebx, edx
add ebx, ebp
lea ebx, [edi + ebx - 0x944b4a0]
mov edi, ebx
shl ebx, 0x10
shr edi, 0x10
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
mov ebp, ebx
xor ebp, edx
add ebp, dword [esp + 0x44]
lea ebp, [ecx + ebp - 0x41404390]
mov ecx, ebp
shl ecx, 0x17
shr ebp, 9
or ecx, ebp
mov ebp, dword [esp + 0x50]
add ecx, edi
xor ebx, ecx
add ebx, ebp
mov ebp, dword [esp + 0x1c]
lea ebx, [edx + ebx + 0x289b7ec6]
mov edx, ebx
shr edx, 0x1c
shl ebx, 4
or edx, ebx
mov ebx, edi
add edx, ecx
xor ebx, ecx
xor ebx, edx
add ebx, ebp
mov ebp, dword [esp + 0x28]
lea ebx, [esi + ebx - 0x155ed806]
mov esi, ebx
shr esi, 0x15
shl ebx, 0xb
or esi, ebx
add esi, edx
mov ebx, esi
xor ebx, ecx
xor ebx, edx
add ebx, ebp
lea ebx, [edi + ebx - 0x2b10cf7b]
mov edi, ebx
shr edi, 0x10
shl ebx, 0x10
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
mov ebp, ebx
xor ebp, edx
add ebp, dword [esp + 0x34]
lea ebp, [ecx + ebp + 0x4881d05]
mov ecx, ebp
shl ecx, 0x17
shr ebp, 9
or ecx, ebp
mov ebp, dword [esp + 0x40]
add ecx, edi
xor ebx, ecx
add ebx, ebp
mov ebp, dword [esp + 0x4c]
lea ebx, [edx + ebx - 0x262b2fc7]
mov edx, ebx
shr edx, 0x1c
shl ebx, 4
or edx, ebx
mov ebx, edi
add edx, ecx
xor ebx, ecx
xor ebx, edx
add ebx, ebp
lea ebx, [esi + ebx - 0x1924661b]
mov esi, ebx
shr esi, 0x15
shl ebx, 0xb
or esi, ebx
add esi, edx
mov ebx, esi
xor ebx, ecx
xor ebx, edx
mov ebp, dword [esp + 0x58]
add ebx, ebp
mov ebp, dword [esp + 0x24]
lea ebx, [edi + ebx + 0x1fa27cf8]
mov edi, ebx
shr edi, 0x10
shl ebx, 0x10
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
xor ebx, edx
add ebx, ebp
mov ebp, dword [esp + 0x1c]
lea ebx, [ecx + ebx - 0x3b53a99b]
mov ecx, ebx
shl ecx, 0x17
shr ebx, 9
or ecx, ebx
mov ebx, esi
add ecx, edi
not ebx
or ebx, ecx
xor ebx, edi
add ebx, ebp
mov ebp, dword [esp + 0x38]
lea edx, [edx + ebx - 0xbd6ddbc]
mov ebx, edx
shr ebx, 0x1a
shl edx, 6
or ebx, edx
mov edx, edi
add ebx, ecx
not edx
or edx, ebx
xor edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x54]
lea esi, [esi + edx + 0x432aff97]
mov edx, esi
shr edx, 0x16
shl esi, 0xa
or edx, esi
mov esi, ecx
add edx, ebx
not esi
or esi, edx
xor esi, ebx
add esi, ebp
mov ebp, dword [esp + 0x30]
lea edi, [edi + esi - 0x546bdc59]
mov esi, edi
shr esi, 0x11
shl edi, 0xf
or esi, edi
mov edi, ebx
add esi, edx
not edi
or edi, esi
xor edi, edx
add edi, ebp
mov ebp, dword [esp + 0x4c]
lea ecx, [ecx + edi - 0x36c5fc7]
mov edi, ecx
shl edi, 0x15
shr ecx, 0xb
or edi, ecx
mov ecx, edx
add edi, esi
not ecx
or ecx, edi
xor ecx, esi
add ecx, ebp
lea ebx, [ebx + ecx + 0x655b59c3]
mov ecx, ebx
shr ecx, 0x1a
shl ebx, 6
or ecx, ebx
mov ebx, esi
add ecx, edi
not ebx
mov ebp, dword [esp + 0x28]
or ebx, ecx
xor ebx, edi
add ebx, ebp
mov ebp, dword [esp + 0x44]
lea edx, [edx + ebx - 0x70f3336e]
mov ebx, edx
shr ebx, 0x16
shl edx, 0xa
or ebx, edx
mov edx, edi
add ebx, ecx
not edx
or edx, ebx
xor edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x20]
lea esi, [esi + edx - 0x100b83]
mov edx, esi
shr edx, 0x11
shl esi, 0xf
or edx, esi
mov esi, ecx
add edx, ebx
not esi
or esi, edx
xor esi, ebx
add esi, ebp
mov ebp, dword [esp + 0x3c]
lea edi, [edi + esi - 0x7a7ba22f]
mov esi, edi
shl esi, 0x15
shr edi, 0xb
or esi, edi
mov edi, ebx
add esi, edx
not edi
or edi, esi
xor edi, edx
add edi, ebp
mov ebp, dword [esp + 0x58]
lea ecx, [ecx + edi + 0x6fa87e4f]
mov edi, ecx
shr edi, 0x1a
shl ecx, 6
or edi, ecx
mov ecx, edx
add edi, esi
not ecx
or ecx, edi
xor ecx, esi
add ecx, ebp
mov ebp, dword [esp + 0x34]
lea ebx, [ebx + ecx - 0x1d31920]
mov ecx, ebx
shr ecx, 0x16
shl ebx, 0xa
or ecx, ebx
mov ebx, esi
add ecx, edi
not ebx
or ebx, ecx
xor ebx, edi
add ebx, ebp
mov ebp, dword [esp + 0x50]
lea edx, [edx + ebx - 0x5cfebcec]
mov ebx, edx
shr ebx, 0x11
shl edx, 0xf
or ebx, edx
mov edx, edi
add ebx, ecx
not edx
or edx, ebx
xor edx, ecx
add edx, ebp
lea esi, [esi + edx + 0x4e0811a1]
mov edx, esi
shl edx, 0x15
shr esi, 0xb
or edx, esi
mov ebp, dword [esp + 0x2c]
mov esi, ecx
add edx, ebx
not esi
or esi, edx
xor esi, ebx
add esi, ebp
mov ebp, dword [esp + 0x48]
lea edi, [edi + esi - 0x8ac817e]
mov esi, edi
shr esi, 0x1a
shl edi, 6
or esi, edi
mov edi, ebx
add esi, edx
not edi
or edi, esi
xor edi, edx
add edi, ebp
mov ebp, dword [esp + 0x24]
lea ecx, [ecx + edi - 0x42c50dcb]
mov edi, ecx
shr edi, 0x16
shl ecx, 0xa
or edi, ecx
mov ecx, edx
add edi, esi
not ecx
or ecx, edi
xor ecx, esi
add ecx, ebp
lea ebx, [ebx + ecx + 0x2ad7d2bb]
mov ecx, ebx
shr ecx, 0x11
shl ebx, 0xf
or ecx, ebx
mov ebx, dword [esp + 0x40]
add ecx, edi
mov ebp, ecx
mov ecx, esi
not ecx
or ecx, ebp
xor ecx, edi
add ecx, ebx
mov ebx, dword [esp + 0x18]
add edi, ebx
lea edx, [edx + ecx - 0x14792c6f]
mov ecx, dword [esp + 0x60]
add esi, ecx
mov ecx, edx
shl ecx, 0x15
shr edx, 0xb
or ecx, edx
mov edx, dword [esp + 0x10]
add ecx, edx
mov edx, dword [esp + 0x14]
add ecx, ebp
add ebp, edx
cmp eax, dword [esp + 0x64]
jb 0x4bb4d5
mov eax, dword [esp + 0x68]
mov dword [eax + 0xc], edi
mov dword [eax], esi
pop edi
mov dword [eax + 8], ebp
pop esi
pop ebp
mov dword [eax + 4], ecx
pop ebx
add esp, 0x4c
ret