Function at 0x4c3232
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x144
mov eax, dword [0x5c9040]
xor eax, esp
mov dword [esp + 0x13c], eax
push ebx
push ebp
push esi
push edi
mov eax, ecx
lea edi, [esp + 0x128]
push 8
pop ecx
push 0x10
lea esi, [eax + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x2a]
lea esi, [edx + 2]
sub edi, edx
pop edx
movzx ecx, byte [esi - 2]
movzx eax, byte [esi - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
mov dword [edi + esi], ecx
lea esi, [esi + 4]
sub edx, 1
jne 0x4c326f
mov ebp, dword [esp + 0x128]
xor ebx, ebx
mov edi, dword [esp + 0x138]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x144]
mov edx, edi
shl edx, 0x15
mov eax, edi
shr eax, 0xb
mov ecx, edi
or edx, eax
shl ecx, 0x1a
mov eax, edi
shr eax, 6
or ecx, eax
mov eax, edi
xor edx, ecx
shl eax, 7
mov ecx, edi
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x13c]
xor eax, dword [esp + 0x140]
xor edx, ecx
and eax, edi
mov ecx, ebp
xor eax, dword [esp + 0x140]
add edx, eax
shr ecx, 0x16
add edx, dword [esp + ebx + 0x28]
mov eax, ebp
add edx, dword [ebx + 0x568580]
shr eax, 0xd
add esi, edx
mov edi, dword [esp + 0x134]
mov edx, ebp
shl edx, 0x13
add edi, esi
or edx, eax
mov dword [esp + 0x20], esi
mov eax, ebp
mov dword [esp + 0x134], edi
shl eax, 0xa
or ecx, eax
mov eax, ebp
xor edx, ecx
shr eax, 2
mov ecx, ebp
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x12c]
xor edx, ecx
mov ecx, eax
and eax, ebp
or ecx, ebp
and ecx, dword [esp + 0x130]
or eax, ecx
mov ecx, edi
add eax, edx
ror ecx, 0x19
mov dword [esp + 0x24], eax
lea ebp, [eax + esi]
mov esi, dword [esp + 0x140]
mov eax, edi
mov dword [esp + 0x144], ebp
ror eax, 0xb
mov edx, ebp
xor ecx, eax
ror edx, 0x16
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x13c]
xor eax, dword [esp + 0x138]
and eax, edi
xor eax, dword [esp + 0x13c]
add ecx, eax
mov eax, ebp
add ecx, dword [esp + ebx + 0x2c]
add ecx, dword [ebx + 0x568584]
ror eax, 0xd
add esi, ecx
xor edx, eax
mov dword [esp + 0x20], esi
mov eax, ebp
ror eax, 2
mov ecx, ebp
xor edx, eax
or ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x12c]
mov eax, ebp
and eax, dword [esp + 0x14]
or eax, ecx
mov ebx, dword [esp + 0x130]
add eax, edx
add ebx, esi
mov dword [esp + 0x24], eax
add eax, esi
mov dword [esp + 0x140], eax
mov esi, ebx
mov ecx, dword [esp + 0x140]
mov eax, ebx
ror eax, 0xb
mov edx, ecx
ror esi, 0x19
xor esi, eax
mov dword [esp + 0x130], ebx
mov eax, ebx
ror edx, 0x16
ror eax, 6
xor esi, eax
mov eax, edi
xor eax, dword [esp + 0x138]
and eax, ebx
xor eax, dword [esp + 0x138]
add esi, eax
mov eax, dword [esp + 0x10]
add esi, dword [esp + eax + 0x30]
add esi, dword [eax + 0x568588]
mov eax, ecx
add esi, dword [esp + 0x13c]
ror eax, 0xd
xor edx, eax
mov dword [esp + 0x20], esi
mov eax, ecx
or ecx, ebp
and ecx, dword [esp + 0x14]
ror eax, 2
xor edx, eax
mov eax, dword [esp + 0x140]
and eax, ebp
mov ebp, dword [esp + 0x12c]
or eax, ecx
add ebp, esi
add eax, edx
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x24], eax
mov ecx, ebp
ror ecx, 0x19
lea edx, [esi + eax]
mov eax, ebp
ror eax, 0xb
xor ecx, eax
mov esi, dword [esp + 0x138]
mov eax, ebp
mov dword [esp + 0x13c], edx
ror eax, 6
xor ecx, eax
ror edx, 0x16
mov eax, edi
xor eax, ebx
and eax, ebp
xor eax, edi
add ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [esp + eax + 0x34]
add ecx, dword [eax + 0x56858c]
mov eax, dword [esp + 0x13c]
add esi, ecx
ror eax, 0xd
xor edx, eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x13c]
ror eax, 2
xor edx, eax
mov eax, dword [esp + 0x140]
mov ecx, eax
and eax, dword [esp + 0x13c]
or ecx, dword [esp + 0x13c]
and ecx, dword [esp + 0x144]
or eax, ecx
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
add edx, esi
add eax, esi
mov dword [esp + 0x128], edx
mov dword [esp + 0x138], eax
mov esi, edx
ror esi, 0x19
mov eax, edx
ror eax, 0xb
xor esi, eax
mov ecx, dword [esp + 0x138]
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, ebx
xor eax, ebp
and eax, edx
mov edx, ecx
xor eax, ebx
ror edx, 0x16
add esi, eax
mov eax, dword [esp + 0x10]
add esi, dword [esp + eax + 0x38]
add esi, dword [eax + 0x568590]
mov eax, ecx
ror eax, 0xd
add esi, edi
xor edx, eax
mov edi, dword [esp + 0x144]
mov eax, ecx
mov dword [esp + 0x20], esi
or ecx, dword [esp + 0x13c]
add edi, esi
and ecx, dword [esp + 0x140]
ror eax, 2
xor edx, eax
mov dword [esp + 0x144], edi
mov eax, dword [esp + 0x138]
and eax, dword [esp + 0x13c]
or eax, ecx
mov ecx, edi
add eax, edx
ror ecx, 0x19
mov dword [esp + 0x24], eax
lea edx, [eax + esi]
mov esi, dword [esp + 0x144]
mov eax, edi
mov dword [esp + 0x134], edx
ror eax, 0xb
xor ecx, eax
ror edx, 0x16
mov eax, edi
mov edi, dword [esp + 0x128]
ror eax, 6
xor ecx, eax
mov eax, ebp
xor eax, edi
and esi, eax
mov eax, dword [esp + 0x10]
xor esi, ebp
add esi, ecx
add esi, dword [esp + eax + 0x3c]
add esi, dword [eax + 0x568594]
add esi, ebx
mov ebx, dword [esp + 0x134]
mov eax, ebx
mov dword [esp + 0x20], esi
ror eax, 0xd
xor edx, eax
mov eax, ebx
ror eax, 2
xor edx, eax
mov eax, dword [esp + 0x138]
mov ecx, eax
and eax, dword [esp + 0x134]
or ecx, ebx
mov ebx, dword [esp + 0x13c]
and ecx, ebx
or eax, ecx
add eax, edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0x24], eax
add edx, esi
add eax, esi
mov dword [esp + 0x140], edx
mov dword [esp + 0x130], eax
mov esi, edx
ror esi, 0x19
mov eax, edx
ror eax, 0xb
xor esi, eax
mov ecx, dword [esp + 0x130]
mov eax, edx
ror eax, 6
xor esi, eax
mov eax, dword [esp + 0x144]
xor eax, edi
and eax, edx
mov edx, ecx
xor eax, edi
ror edx, 0x16
add esi, eax
mov eax, dword [esp + 0x10]
add esi, dword [esp + eax + 0x40]
add esi, dword [eax + 0x568598]
mov eax, ecx
ror eax, 0xd
add esi, ebp
mov ebp, dword [esp + 0x138]
xor edx, eax
mov eax, ecx
mov dword [esp + 0x20], esi
or ecx, dword [esp + 0x134]
add ebx, esi
ror eax, 2
and ecx, ebp
xor edx, eax
mov dword [esp + 0x13c], ebx
mov eax, dword [esp + 0x130]
and eax, dword [esp + 0x134]
or eax, ecx
mov ecx, ebx
add eax, edx
ror ecx, 0x19
mov dword [esp + 0x24], eax
add eax, esi
mov esi, dword [esp + 0x140]
xor esi, dword [esp + 0x144]
mov dword [esp + 0x12c], eax
and esi, ebx
xor esi, dword [esp + 0x144]
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
ror eax, 6
xor ecx, eax
add esi, ecx
mov ecx, dword [esp + 0x12c]
add esi, dword [esp + ebx + 0x44]
mov edx, ecx
add esi, dword [ebx + 0x56859c]
mov eax, ecx
ror eax, 0xd
add esi, edi
ror edx, 0x16
xor edx, eax
mov dword [esp + 0x20], esi
mov eax, ecx
or ecx, dword [esp + 0x130]
ror eax, 2
xor edx, eax
and ecx, dword [esp + 0x134]
mov eax, dword [esp + 0x12c]
and eax, dword [esp + 0x130]
lea edi, [esi + ebp]
or eax, ecx
mov dword [esp + 0x138], edi
add eax, edx
add ebx, 0x20
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ebx
lea ebp, [esi + eax]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x128], ebp
cmp ebx, 0x40
jb 0x4c32b0
push 0x40
pop ebx
mov ecx, dword [esp + ebx - 0x14]
mov esi, ecx
mov edx, dword [esp + ebx + 0x20]
mov eax, ecx
ror eax, 7
shr ecx, 3
ror esi, 0x12
xor esi, eax
mov eax, edx
xor esi, ecx
ror eax, 0x11
mov ecx, edx
shr edx, 0xa
ror ecx, 0x13
xor ecx, eax
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx - 0x18]
add esi, dword [esp + ebx + 0xc]
mov dword [esp + ebx + 0x28], esi
mov edx, dword [esp + 0x138]
mov edi, edx
shl edi, 0x15
mov eax, edx
shr eax, 0xb
mov ecx, edx
or edi, eax
shl ecx, 0x1a
mov eax, edx
shr eax, 6
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x13c]
xor eax, dword [esp + 0x140]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x128]
xor eax, dword [esp + 0x140]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x568580]
mov eax, edx
shr eax, 0xd
add edi, esi
add edi, dword [esp + 0x144]
mov esi, edx
shl esi, 0x13
or esi, eax
add dword [esp + 0x134], edi
mov eax, edx
mov dword [esp + 0x20], edi
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x12c]
xor esi, ecx
mov ecx, eax
or ecx, edx
and eax, edx
and ecx, dword [esp + 0x130]
or eax, ecx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x144], eax
mov ecx, dword [esp + ebx - 0x10]
mov esi, ecx
mov edx, dword [esp + ebx + 0x24]
mov eax, ecx
ror esi, 0x12
ror eax, 7
xor esi, eax
shr ecx, 3
xor esi, ecx
mov eax, edx
ror eax, 0x11
mov ecx, edx
ror ecx, 0x13
xor ecx, eax
shr edx, 0xa
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx + 0x10]
add esi, dword [esp + ebx - 0x14]
mov dword [esp + ebx + 0x2c], esi
mov edx, dword [esp + 0x134]
mov edi, edx
shl edi, 0x15
mov eax, edx
shr eax, 0xb
mov ecx, edx
or edi, eax
shl ecx, 0x1a
mov eax, edx
shr eax, 6
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x13c]
xor eax, dword [esp + 0x138]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x144]
xor eax, dword [esp + 0x13c]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x568584]
mov eax, edx
add edi, esi
shr eax, 0xd
add edi, dword [esp + 0x140]
mov esi, edx
shl esi, 0x13
or esi, eax
add dword [esp + 0x130], edi
mov eax, edx
mov dword [esp + 0x20], edi
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x128]
xor esi, ecx
mov ecx, eax
or ecx, edx
and eax, edx
and ecx, dword [esp + 0x12c]
or eax, ecx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x140], eax
mov ecx, dword [esp + ebx + 0x28]
mov esi, ecx
mov edx, dword [esp + ebx - 0xc]
mov eax, ecx
ror esi, 0x13
ror eax, 0x11
shr ecx, 0xa
xor esi, eax
xor esi, ecx
mov ecx, edx
ror ecx, 0x12
mov eax, edx
ror eax, 7
xor ecx, eax
shr edx, 3
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx + 0x14]
add esi, dword [esp + ebx - 0x10]
mov dword [esp + ebx + 0x30], esi
mov edx, dword [esp + 0x130]
mov edi, edx
shl edi, 0x15
mov eax, edx
shr eax, 0xb
mov ecx, edx
or edi, eax
shl ecx, 0x1a
mov eax, edx
shr eax, 6
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x134]
xor eax, dword [esp + 0x138]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x140]
xor eax, dword [esp + 0x138]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x568588]
mov eax, edx
shr eax, 0xd
add edi, esi
add edi, dword [esp + 0x13c]
mov esi, edx
shl esi, 0x13
or esi, eax
add dword [esp + 0x12c], edi
mov eax, edx
mov dword [esp + 0x20], edi
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x144]
xor esi, ecx
mov ecx, eax
or ecx, edx
and eax, edx
and ecx, dword [esp + 0x128]
or eax, ecx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x13c], eax
mov ecx, dword [esp + ebx - 8]
mov esi, ecx
mov edx, dword [esp + ebx + 0x2c]
mov eax, ecx
ror eax, 7
ror esi, 0x12
shr ecx, 3
xor esi, eax
xor esi, ecx
mov eax, edx
mov ecx, edx
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
shr edx, 0xa
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx + 0x18]
add esi, dword [esp + ebx - 0xc]
mov dword [esp + ebx + 0x34], esi
mov edx, dword [esp + 0x12c]
mov edi, edx
shl edi, 0x15
mov eax, edx
shr eax, 0xb
mov ecx, edx
or edi, eax
shl ecx, 0x1a
mov eax, edx
shr eax, 6
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x134]
xor eax, dword [esp + 0x130]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x13c]
xor eax, dword [esp + 0x134]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x56858c]
mov eax, edx
add edi, esi
shr eax, 0xd
add edi, dword [esp + 0x138]
mov esi, edx
shl esi, 0x13
or esi, eax
add dword [esp + 0x128], edi
mov eax, edx
mov dword [esp + 0x20], edi
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, edx
or eax, dword [esp + 0x140]
xor esi, ecx
and eax, dword [esp + 0x144]
and edx, dword [esp + 0x140]
or eax, edx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x138], eax
mov ecx, dword [esp + ebx - 4]
mov esi, ecx
mov edx, dword [esp + ebx + 0x30]
mov eax, ecx
ror esi, 0x12
ror eax, 7
xor esi, eax
shr ecx, 3
xor esi, ecx
mov eax, edx
mov ecx, edx
ror eax, 0x11
ror ecx, 0x13
shr edx, 0xa
xor ecx, eax
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx + 0x1c]
add esi, dword [esp + ebx - 8]
mov dword [esp + ebx + 0x38], esi
mov edx, dword [esp + 0x128]
mov edi, edx
mov eax, edx
shr eax, 0xb
mov ecx, edx
shl ecx, 0x1a
shl edi, 0x15
or edi, eax
mov eax, edx
shr eax, 6
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x130]
xor eax, dword [esp + 0x12c]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x138]
xor eax, dword [esp + 0x130]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x568590]
mov eax, edx
add edi, esi
shr eax, 0xd
add edi, dword [esp + 0x134]
mov esi, edx
shl esi, 0x13
or esi, eax
add dword [esp + 0x144], edi
mov eax, edx
mov dword [esp + 0x20], edi
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x13c]
xor esi, ecx
mov ecx, eax
or ecx, edx
and eax, edx
and ecx, dword [esp + 0x140]
or eax, ecx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x134], eax
mov ecx, dword [esp + ebx + 0x34]
mov esi, ecx
mov edx, dword [esp + ebx]
mov eax, ecx
ror esi, 0x13
ror eax, 0x11
xor esi, eax
shr ecx, 0xa
xor esi, ecx
mov eax, edx
mov ecx, edx
ror eax, 7
ror ecx, 0x12
xor ecx, eax
shr edx, 3
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx - 4]
add esi, dword [esp + ebx + 0x20]
mov dword [esp + ebx + 0x3c], esi
mov edx, dword [esp + 0x144]
mov edi, edx
mov eax, edx
shl edi, 0x15
shr eax, 0xb
or edi, eax
mov ecx, edx
mov eax, edx
shr eax, 6
shl ecx, 0x1a
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x12c]
xor eax, dword [esp + 0x128]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x134]
xor eax, dword [esp + 0x12c]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x568594]
mov eax, edx
add edi, esi
shr eax, 0xd
add edi, dword [esp + 0x130]
mov esi, edx
add dword [esp + 0x140], edi
shl esi, 0x13
or esi, eax
mov dword [esp + 0x20], edi
mov eax, edx
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, edx
or eax, dword [esp + 0x138]
xor esi, ecx
and eax, dword [esp + 0x13c]
and edx, dword [esp + 0x138]
or eax, edx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x130], eax
mov ecx, dword [esp + ebx + 4]
mov esi, ecx
mov edx, dword [esp + ebx + 0x38]
mov eax, ecx
ror eax, 7
shr ecx, 3
ror esi, 0x12
xor esi, eax
mov eax, edx
xor esi, ecx
ror eax, 0x11
mov ecx, edx
shr edx, 0xa
ror ecx, 0x13
xor ecx, eax
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx + 0x24]
add esi, dword [esp + ebx]
mov dword [esp + ebx + 0x40], esi
mov edx, dword [esp + 0x140]
mov edi, edx
mov eax, edx
shl edi, 0x15
shr eax, 0xb
mov ecx, edx
or edi, eax
shl ecx, 0x1a
mov eax, edx
shr eax, 6
or ecx, eax
xor edi, ecx
mov ecx, edx
mov eax, edx
shl eax, 7
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x128]
xor eax, dword [esp + 0x144]
xor edi, ecx
and eax, edx
mov edx, dword [esp + 0x130]
xor eax, dword [esp + 0x128]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x568598]
mov eax, edx
add edi, esi
shr eax, 0xd
add edi, dword [esp + 0x12c]
mov esi, edx
add dword [esp + 0x13c], edi
shl esi, 0x13
or esi, eax
mov dword [esp + 0x20], edi
mov eax, edx
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x134]
xor esi, ecx
mov ecx, eax
or ecx, edx
and eax, edx
and ecx, dword [esp + 0x138]
or eax, ecx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + ebx + 8]
mov esi, ecx
mov edx, dword [esp + ebx + 0x3c]
mov eax, ecx
ror eax, 7
shr ecx, 3
ror esi, 0x12
xor esi, eax
mov eax, edx
xor esi, ecx
ror eax, 0x11
mov ecx, edx
shr edx, 0xa
ror ecx, 0x13
xor ecx, eax
xor ecx, edx
add esi, ecx
add esi, dword [esp + ebx + 4]
add esi, dword [esp + ebx + 0x28]
mov dword [esp + ebx + 0x44], esi
mov edx, dword [esp + 0x13c]
mov edi, edx
shl edi, 0x15
mov eax, edx
shr eax, 0xb
mov ecx, edx
or edi, eax
shl ecx, 0x1a
mov eax, edx
shr eax, 6
or ecx, eax
mov eax, edx
xor edi, ecx
shl eax, 7
mov ecx, edx
shr ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x144]
xor edi, ecx
xor eax, dword [esp + 0x140]
and eax, edx
mov edx, dword [esp + 0x12c]
xor eax, dword [esp + 0x144]
mov ecx, edx
add edi, eax
shr ecx, 0x16
add edi, dword [ebx + 0x56859c]
mov eax, edx
shr eax, 0xd
add edi, esi
add edi, dword [esp + 0x128]
mov esi, edx
add dword [esp + 0x138], edi
add ebx, 0x20
shl esi, 0x13
or esi, eax
mov dword [esp + 0x20], edi
mov eax, edx
shl eax, 0xa
or ecx, eax
mov eax, edx
xor esi, ecx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
or ecx, eax
mov eax, dword [esp + 0x130]
xor esi, ecx
mov ecx, eax
or ecx, edx
and eax, edx
and ecx, dword [esp + 0x134]
or eax, ecx
add eax, esi
mov dword [esp + 0x24], eax
add eax, edi
mov dword [esp + 0x128], eax
cmp ebx, 0x100
jb 0x4c3757
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x120]
sub edx, dword [esp + 0x18]
push 8
pop esi
mov eax, dword [ecx + edx]
add dword [ecx], eax
lea ecx, [ecx + 4]
sub esi, 1
jne 0x4c3eec
push 0x128
lea eax, [esp + 0x24]
push esi
push eax
mov eax, dword [fcn.0051c010]
call eax
mov ecx, dword [esp + 0x158]
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0051b034
add esp, 0x144
ret