Function at 0x10099620
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x48
call fcn.10163470
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov edx, dword [ecx]
push ebp
mov ebp, dword [ecx + 0xc]
push esi
mov esi, dword [ecx + 8]
push edi
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebp
test ecx, ecx
je 0x10099f2f
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebp
push ebx
lea esp, [esp]
dec ecx
mov dword [esp + 0x64], ecx
movzx ecx, byte [eax + 1]
shl ecx, 8
movzx edx, byte [eax]
or edx, ecx
movzx ecx, byte [eax + 2]
shl ecx, 0x10
or edx, ecx
movzx ecx, byte [eax + 3]
shl ecx, 0x18
or edx, ecx
movzx ecx, byte [eax + 5]
shl ecx, 8
movzx ebx, byte [eax + 4]
or ebx, ecx
movzx ecx, byte [eax + 6]
shl ecx, 0x10
or ebx, ecx
movzx ecx, byte [eax + 7]
shl ecx, 0x18
or ebx, ecx
mov ecx, ebp
xor ecx, esi
and ecx, edi
xor ecx, ebp
add ecx, edx
movzx ebp, byte [eax + 8]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x48]
add edx, 0xd76aa478
add edx, ecx
movzx ecx, byte [eax + 9]
rol edx, 7
shl ecx, 8
or ebp, ecx
movzx ecx, byte [eax + 0xa]
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [eax + 0xb]
shl ecx, 0x18
or ebp, ecx
add edx, edi
mov ecx, esi
xor ecx, edi
and ecx, edx
xor ecx, esi
mov esi, dword [esp + 0x38]
add ecx, ebx
add esi, 0xe8c7b756
add esi, ecx
movzx ecx, byte [eax + 0xd]
rol esi, 0xc
shl ecx, 8
mov dword [esp + 0x40], ebx
movzx ebx, byte [eax + 0xc]
or ebx, ecx
movzx ecx, byte [eax + 0xe]
shl ecx, 0x10
or ebx, ecx
movzx ecx, byte [eax + 0xf]
shl ecx, 0x18
or ebx, ecx
mov ecx, edi
xor ecx, edx
add esi, edx
and ecx, esi
xor ecx, edi
mov edi, dword [esp + 0x3c]
add ecx, ebp
add edi, 0x242070db
add edi, ecx
movzx ecx, byte [eax + 0x11]
rol edi, 0x11
mov dword [esp + 0x44], ebp
movzx ebp, byte [eax + 0x10]
shl ecx, 8
add edi, esi
or ebp, ecx
movzx ecx, byte [eax + 0x12]
mov dword [esp + 0x38], ebx
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [eax + 0x13]
shl ecx, 0x18
or ebp, ecx
mov ecx, esi
xor ecx, edx
and ecx, edi
xor ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x20], ebp
movzx ebp, byte [eax + 0x14]
add ebx, 0xc1bdceee
add ebx, ecx
movzx ecx, byte [eax + 0x15]
rol ebx, 0x16
shl ecx, 8
or ebp, ecx
movzx ecx, byte [eax + 0x16]
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [eax + 0x17]
shl ecx, 0x18
or ebp, ecx
add ebx, edi
mov ecx, esi
xor ecx, edi
and ecx, ebx
xor ecx, esi
add ecx, 0xf57c0faf
add ecx, dword [esp + 0x20]
mov dword [esp + 0x30], ebp
add edx, ecx
movzx ecx, byte [eax + 0x18]
rol edx, 7
mov dword [esp + 0x14], ecx
movzx ecx, byte [eax + 0x19]
shl ecx, 8
or dword [esp + 0x14], ecx
movzx ecx, byte [eax + 0x1a]
shl ecx, 0x10
or dword [esp + 0x14], ecx
movzx ecx, byte [eax + 0x1b]
shl ecx, 0x18
or dword [esp + 0x14], ecx
mov ecx, edi
xor ecx, ebx
add edx, ebx
and ecx, edx
xor ecx, edi
add ebp, 0x4787c62a
add ecx, ebp
movzx ebp, byte [eax + 0x1c]
add esi, ecx
movzx ecx, byte [eax + 0x1d]
rol esi, 0xc
shl ecx, 8
or ebp, ecx
movzx ecx, byte [eax + 0x1e]
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [eax + 0x1f]
shl ecx, 0x18
or ebp, ecx
add esi, edx
mov ecx, ebx
xor ecx, edx
and ecx, esi
xor ecx, ebx
add ecx, 0xa8304613
add ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ebp
add edi, ecx
movzx ecx, byte [eax + 0x20]
rol edi, 0x11
mov dword [esp + 0x60], ecx
movzx ecx, byte [eax + 0x21]
shl ecx, 8
add edi, esi
or dword [esp + 0x60], ecx
movzx ecx, byte [eax + 0x22]
shl ecx, 0x10
or dword [esp + 0x60], ecx
movzx ecx, byte [eax + 0x23]
shl ecx, 0x18
or dword [esp + 0x60], ecx
mov ecx, esi
xor ecx, edx
and ecx, edi
xor ecx, edx
add ebp, 0xfd469501
add ecx, ebp
add ebx, ecx
movzx ecx, byte [eax + 0x25]
rol ebx, 0x16
shl ecx, 8
movzx ebp, byte [eax + 0x24]
or ebp, ecx
movzx ecx, byte [eax + 0x26]
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [eax + 0x27]
shl ecx, 0x18
or ebp, ecx
add ebx, edi
mov ecx, esi
xor ecx, edi
and ecx, ebx
xor ecx, esi
add ecx, dword [esp + 0x60]
mov dword [esp + 0x24], ebp
lea ebp, [edx + 0x698098d8]
add ebp, ecx
movzx ecx, byte [eax + 0x29]
rol ebp, 7
movzx edx, byte [eax + 0x28]
shl ecx, 8
or edx, ecx
movzx ecx, byte [eax + 0x2a]
shl ecx, 0x10
or edx, ecx
movzx ecx, byte [eax + 0x2b]
shl ecx, 0x18
or edx, ecx
mov ecx, edi
xor ecx, ebx
add ebp, ebx
and ecx, ebp
xor ecx, edi
add ecx, 0x8b44f7af
add ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
add esi, ecx
movzx ecx, byte [eax + 0x2c]
rol esi, 0xc
mov dword [esp + 0x18], ecx
movzx ecx, byte [eax + 0x2d]
shl ecx, 8
or dword [esp + 0x18], ecx
movzx ecx, byte [eax + 0x2e]
shl ecx, 0x10
or dword [esp + 0x18], ecx
movzx ecx, byte [eax + 0x2f]
shl ecx, 0x18
or dword [esp + 0x18], ecx
add esi, ebp
mov ecx, ebx
xor ecx, ebp
and ecx, esi
xor ecx, ebx
add ecx, edx
lea edx, [edi - 0xa44f]
movzx edi, byte [eax + 0x30]
add edx, ecx
movzx ecx, byte [eax + 0x31]
rol edx, 0x11
shl ecx, 8
add edx, esi
or edi, ecx
movzx ecx, byte [eax + 0x32]
mov dword [esp + 0x48], esi
shl ecx, 0x10
or edi, ecx
movzx ecx, byte [eax + 0x33]
shl ecx, 0x18
or edi, ecx
mov ecx, esi
xor ecx, ebp
and ecx, edx
xor ecx, ebp
add ecx, dword [esp + 0x18]
lea esi, [ebx - 0x76a32842]
add esi, ecx
movzx ecx, byte [eax + 0x35]
rol esi, 0x16
shl ecx, 8
movzx ebx, byte [eax + 0x34]
or ebx, ecx
movzx ecx, byte [eax + 0x36]
shl ecx, 0x10
or ebx, ecx
movzx ecx, byte [eax + 0x37]
shl ecx, 0x18
or ebx, ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x48]
add esi, edx
mov ecx, ebx
xor ecx, edx
and ecx, esi
xor ecx, ebx
add ecx, edi
mov dword [esp + 0x34], edi
lea edi, [ebp + 0x6b901122]
movzx ebp, byte [eax + 0x38]
add edi, ecx
movzx ecx, byte [eax + 0x39]
rol edi, 7
shl ecx, 8
or ebp, ecx
movzx ecx, byte [eax + 0x3a]
shl ecx, 0x10
or ebp, ecx
movzx ecx, byte [eax + 0x3b]
shl ecx, 0x18
or ebp, ecx
mov ecx, edx
xor ecx, esi
add edi, esi
and ecx, edi
xor ecx, edx
add ecx, dword [esp + 0x1c]
add ebx, 0xfd987193
add ebx, ecx
movzx ecx, byte [eax + 0x3c]
rol ebx, 0xc
mov dword [esp + 0x10], ecx
movzx ecx, byte [eax + 0x3d]
shl ecx, 8
or dword [esp + 0x10], ecx
movzx ecx, byte [eax + 0x3e]
shl ecx, 0x10
or dword [esp + 0x10], ecx
movzx ecx, byte [eax + 0x3f]
shl ecx, 0x18
or dword [esp + 0x10], ecx
add ebx, edi
mov ecx, esi
xor ecx, edi
and ecx, ebx
xor ecx, esi
add ecx, 0xa679438e
add ecx, ebp
add edx, ecx
rol edx, 0x11
mov ecx, ebx
add edx, ebx
xor ecx, edi
and ecx, edx
mov dword [esp + 0x48], ebp
lea eax, [eax + 0x40]
xor ecx, edi
add ecx, 0x49b40821
add ecx, dword [esp + 0x10]
add esi, ecx
rol esi, 0x16
add esi, edx
mov ecx, edx
xor ecx, esi
and ecx, ebx
xor ecx, edx
add ecx, 0xf61e2562
add ecx, dword [esp + 0x40]
add edi, ecx
mov ecx, esi
rol edi, 5
add edi, esi
xor ecx, edi
and ecx, edx
xor ecx, esi
add ecx, 0xc040b340
add ecx, dword [esp + 0x14]
add ebx, ecx
rol ebx, 9
add ebx, edi
mov ecx, ebx
xor ecx, edi
and ecx, esi
xor ecx, edi
add ecx, 0x265e5a51
add ecx, dword [esp + 0x18]
add edx, ecx
mov ecx, ebx
rol edx, 0xe
add edx, ebx
xor ecx, edx
and ecx, edi
xor ecx, ebx
add ecx, 0xe9b6c7aa
add ecx, dword [esp + 0x28]
add esi, ecx
mov ecx, edx
rol esi, 0x14
add esi, edx
xor ecx, esi
and ecx, ebx
xor ecx, edx
add ecx, 0xd62f105d
add ecx, dword [esp + 0x30]
add edi, ecx
mov ecx, esi
rol edi, 5
add edi, esi
xor ecx, edi
and ecx, edx
xor ecx, esi
add ecx, 0x2441453
add ecx, dword [esp + 0x3c]
add ebx, ecx
rol ebx, 9
add ebx, edi
mov ecx, ebx
xor ecx, edi
and ecx, esi
xor ecx, edi
add ecx, 0xd8a1e681
add ecx, dword [esp + 0x10]
add edx, ecx
mov ecx, ebx
rol edx, 0xe
add edx, ebx
xor ecx, edx
and ecx, edi
xor ecx, ebx
add ecx, 0xe7d3fbc8
add ecx, dword [esp + 0x20]
add esi, ecx
mov ecx, edx
rol esi, 0x14
add esi, edx
xor ecx, esi
and ecx, ebx
xor ecx, edx
add ecx, 0x21e1cde6
add ecx, dword [esp + 0x24]
add edi, ecx
rol edi, 5
add edi, esi
mov ecx, esi
xor ecx, edi
and ecx, edx
xor ecx, esi
add ecx, 0xc33707d6
add ecx, ebp
add ebx, ecx
rol ebx, 9
add ebx, edi
mov ecx, ebx
xor ecx, edi
and ecx, esi
xor ecx, edi
add ecx, 0xf4d50d87
add ecx, dword [esp + 0x38]
add edx, ecx
mov ecx, ebx
rol edx, 0xe
add edx, ebx
xor ecx, edx
and ecx, edi
xor ecx, ebx
add ecx, 0x455a14ed
add ecx, dword [esp + 0x60]
lea ebp, [edx + 0x676f02d9]
add esi, ecx
mov ecx, edx
rol esi, 0x14
add esi, edx
xor ecx, esi
and ecx, ebx
xor ecx, edx
add ecx, 0xa9e3e905
add ecx, dword [esp + 0x1c]
add edi, ecx
mov ecx, esi
rol edi, 5
add edi, esi
xor ecx, edi
and ecx, edx
xor ecx, esi
add ecx, 0xfcefa3f8
add ecx, dword [esp + 0x44]
add ebx, ecx
rol ebx, 9
add ebx, edi
mov ecx, ebx
xor ecx, edi
and ecx, esi
xor ecx, edi
add ecx, dword [esp + 0x2c]
mov edx, ebx
add ebp, ecx
rol ebp, 0xe
add ebp, ebx
xor edx, ebp
mov ecx, edx
and ecx, edi
xor ecx, ebx
add ecx, 0x8d2a4c8a
add ecx, dword [esp + 0x34]
add esi, ecx
mov ecx, ebp
rol esi, 0x14
add esi, ebp
xor edx, esi
add edx, 0xfffa3942
add edx, dword [esp + 0x30]
xor ecx, esi
add edi, edx
rol edi, 4
add edi, esi
xor ecx, edi
add ecx, 0x8771f681
add ecx, dword [esp + 0x60]
add ebx, ecx
rol ebx, 0xb
add ebx, edi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
add ecx, 0x6d9d6122
add ecx, dword [esp + 0x18]
mov edx, ebx
add ebp, ecx
rol ebp, 0x10
add ebp, ebx
xor edx, ebp
mov ecx, edx
xor ecx, edi
add ecx, 0xfde5380c
add ecx, dword [esp + 0x48]
add esi, ecx
mov ecx, ebp
rol esi, 0x17
add esi, ebp
xor ecx, esi
xor edx, esi
add edx, 0xa4beea44
add edx, dword [esp + 0x40]
add edi, edx
rol edi, 4
add edi, esi
xor ecx, edi
add ecx, 0x4bdecfa9
add ecx, dword [esp + 0x20]
add ebx, ecx
rol ebx, 0xb
add ebx, edi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
add ecx, 0xf6bb4b60
add ecx, dword [esp + 0x2c]
mov edx, ebx
add ebp, ecx
rol ebp, 0x10
add ebp, ebx
xor edx, ebp
mov ecx, edx
xor ecx, edi
add ecx, 0xbebfbc70
add ecx, dword [esp + 0x3c]
add esi, ecx
mov ecx, ebp
rol esi, 0x17
add esi, ebp
xor edx, esi
xor ecx, esi
add edx, 0x289b7ec6
add edx, dword [esp + 0x1c]
add edi, edx
rol edi, 4
add edi, esi
xor ecx, edi
add ecx, 0xeaa127fa
add ecx, dword [esp + 0x28]
add ebx, ecx
rol ebx, 0xb
add ebx, edi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
add ecx, 0xd4ef3085
add ecx, dword [esp + 0x38]
mov edx, ebx
add ebp, ecx
rol ebp, 0x10
add ebp, ebx
xor edx, ebp
mov ecx, edx
xor ecx, edi
add ecx, 0x4881d05
add ecx, dword [esp + 0x14]
add esi, ecx
rol esi, 0x17
add esi, ebp
xor edx, esi
add edx, dword [esp + 0x24]
add edi, 0xd9d4d039
add edx, edi
rol edx, 4
add edx, esi
lea edi, [ebx - 0x1924661b]
mov ecx, ebp
xor ecx, esi
xor ecx, edx
add ecx, dword [esp + 0x34]
add edi, ecx
rol edi, 0xb
add edi, edx
mov ebx, edi
xor ebx, esi
xor ebx, edx
add ebx, 0x1fa27cf8
add ebx, dword [esp + 0x10]
mov ecx, edi
add ebx, ebp
rol ebx, 0x10
add ebx, edi
xor ecx, ebx
xor ecx, edx
add ecx, 0xc4ac5665
add ecx, dword [esp + 0x44]
add esi, ecx
rol esi, 0x17
add esi, ebx
mov ecx, edi
not ecx
or ecx, esi
xor ecx, ebx
add ecx, 0xf4292244
add ecx, dword [esp + 0x28]
add edx, ecx
mov ecx, ebx
not ecx
rol edx, 6
add edx, esi
or ecx, edx
xor ecx, esi
add ecx, 0x432aff97
add ecx, dword [esp + 0x2c]
add edi, ecx
rol edi, 0xa
add edi, edx
mov ecx, esi
not ecx
or ecx, edi
xor ecx, edx
add ecx, 0xab9423a7
add ecx, dword [esp + 0x48]
add ebx, ecx
mov ecx, edx
not ecx
rol ebx, 0xf
add ebx, edi
or ecx, ebx
xor ecx, edi
add ecx, 0xfc93a039
add ecx, dword [esp + 0x30]
add esi, ecx
rol esi, 0x15
add esi, ebx
mov ecx, edi
not ecx
or ecx, esi
xor ecx, ebx
add ecx, 0x655b59c3
add ecx, dword [esp + 0x34]
add edx, ecx
mov ecx, ebx
not ecx
rol edx, 6
add edx, esi
or ecx, edx
xor ecx, esi
add ecx, 0x8f0ccc92
add ecx, dword [esp + 0x38]
add edi, ecx
rol edi, 0xa
add edi, edx
mov ecx, esi
not ecx
or ecx, edi
xor ecx, edx
add ecx, 0xffeff47d
add ecx, dword [esp + 0x3c]
add ebx, ecx
mov ecx, edx
not ecx
rol ebx, 0xf
add ebx, edi
or ecx, ebx
xor ecx, edi
add ecx, 0x85845dd1
add ecx, dword [esp + 0x40]
add esi, ecx
rol esi, 0x15
add esi, ebx
mov ecx, edi
not ecx
or ecx, esi
xor ecx, ebx
add ecx, 0x6fa87e4f
add ecx, dword [esp + 0x60]
lea ebp, [esi + 0x4e0811a1]
add edx, ecx
mov ecx, ebx
rol edx, 6
not ecx
add edx, esi
or ecx, edx
xor ecx, esi
add ecx, 0xfe2ce6e0
add ecx, dword [esp + 0x10]
add edi, ecx
mov ecx, esi
not ecx
lea esi, [edx - 0x8ac817e]
rol edi, 0xa
add edi, edx
or ecx, edi
xor ecx, edx
add ecx, 0xa3014314
add ecx, dword [esp + 0x14]
add ebx, ecx
rol ebx, 0xf
add ebx, edi
mov ecx, edx
not ecx
or ecx, ebx
xor ecx, edi
add ecx, dword [esp + 0x1c]
lea edx, [ebx + 0x2ad7d2bb]
add ebp, ecx
mov ecx, edi
not ecx
rol ebp, 0x15
add ebp, ebx
or ecx, ebp
xor ecx, ebx
add ecx, dword [esp + 0x20]
add esi, ecx
mov ecx, ebx
rol esi, 6
not ecx
add esi, ebp
or ecx, esi
xor ecx, ebp
add ecx, 0xbd3af235
add ecx, dword [esp + 0x18]
add edi, ecx
mov ecx, ebp
not ecx
rol edi, 0xa
add edi, esi
or ecx, edi
xor ecx, esi
add ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x5c]
add edx, ecx
rol edx, 0xf
add dword [ebx], esi
mov ecx, esi
mov esi, dword [esp + 0x4c]
not ecx
add edx, edi
or ecx, edx
xor ecx, edi
add ecx, dword [esp + 0x24]
add ebp, 0xeb86d391
add ecx, ebp
rol ecx, 0x15
mov ebp, dword [ebx]
add ecx, edx
add esi, ecx
mov ecx, dword [esp + 0x50]
add ecx, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], ecx
mov dword [ebx + 8], ecx
mov dword [esp + 0x4c], esi
mov dword [ebx + 4], esi
mov esi, ecx
mov ecx, dword [esp + 0x54]
add ecx, edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], ecx
mov ebp, ecx
mov dword [esp + 0x38], ecx
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x10099670
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x48
ret