Function at 0x47ad50
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov esi, ecx
mov esi, dword [ecx + 8]
mov edi, dword [ecx]
mov eax, dword [esp + 0x80]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 0x10]
mov dword [esp + 0x64], ecx
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x4c], esi
mov esi, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], ebx
mov edi, dword [edx + 4]
mov dword [esp + 0x5c], esi
rol esi, 5
mov ebx, dword [edx]
mov dword [esp + 0x54], edx
mov edx, ecx
mov dword [esp + 0x68], ecx
add esi, ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x38], edi
bswap edi
mov dword [esp + 0x1c], ebx
bswap ebx
mov dword [esp + 4], edi
mov edi, dword [esp + 0x4c]
xor edx, edi
and edx, ebp
xor edx, ecx
add edx, esi
mov esi, ebp
mov ebp, dword [esp + 0x5c]
rol esi, 0x1e
lea eax, [ebx + edx + 0x5a827999]
mov ebx, edi
mov edx, esi
xor edx, edi
and edx, ebp
mov ebx, ebp
xor edx, edi
rol ebx, 0x1e
mov edi, esi
add edx, ecx
mov ecx, eax
xor edi, ebx
add edx, dword [esp + 4]
rol ecx, 5
and edi, eax
rol eax, 0x1e
xor edi, esi
mov dword [esp + 0xc], eax
add edi, dword [esp + 0x4c]
lea ecx, [ecx + edx + 0x5a827999]
mov edx, dword [esp + 0x54]
mov edx, dword [edx + 8]
mov dword [esp + 0x18], edx
bswap edx
add edi, edx
mov edx, ecx
rol edx, 5
lea ebp, [edx + edi + 0x5a827999]
mov edi, eax
mov edx, dword [esp + 0x54]
xor edi, ebx
mov dword [esp], ebp
and edi, ecx
rol ecx, 0x1e
xor edi, ebx
add edi, esi
mov esi, dword [edx + 0xc]
mov dword [esp + 4], esi
bswap esi
add edi, esi
mov esi, ebp
rol esi, 5
lea ebp, [esi + edi + 0x5a827999]
mov esi, ecx
mov edi, eax
xor esi, eax
mov eax, dword [esp]
and esi, eax
rol eax, 0x1e
xor esi, edi
mov edi, edx
add esi, ebx
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x10], ebx
bswap ebx
add esi, ebx
mov ebx, ebp
rol ebx, 5
lea edx, [ebx + esi + 0x5a827999]
mov esi, eax
mov ebx, eax
mov eax, dword [edi + 0x14]
xor esi, ecx
and esi, ebp
rol ebp, 0x1e
xor esi, ecx
add esi, dword [esp + 0xc]
mov dword [esp], eax
bswap eax
add esi, eax
mov eax, edx
rol eax, 5
lea esi, [eax + esi + 0x5a827999]
mov eax, ebp
xor eax, ebx
and eax, edx
rol edx, 0x1e
xor eax, ebx
mov dword [esp + 0x3c], edx
add eax, ecx
mov ecx, dword [edi + 0x18]
mov dword [esp + 0xc], ecx
bswap ecx
add eax, ecx
mov ecx, esi
rol ecx, 5
lea eax, [ecx + eax + 0x5a827999]
mov ecx, dword [edi + 0x1c]
mov dword [esp + 8], eax
mov eax, edx
xor eax, ebp
and eax, esi
rol esi, 0x1e
xor eax, ebp
mov dword [esp + 0x14], ecx
bswap ecx
mov dword [esp + 0x30], esi
xor esi, edx
add eax, ebx
mov ebx, dword [esp + 8]
add eax, ecx
mov ecx, ebx
and esi, ebx
rol ecx, 5
xor esi, edx
mov edx, dword [edi + 0x20]
lea eax, [ecx + eax + 0x5a827999]
mov ecx, dword [esp + 0x1c]
add esi, ebp
mov dword [esp + 0x34], eax
mov eax, edi
mov ebx, dword [eax + 0x28]
mov ebp, dword [eax + 0x24]
mov edi, edx
xor ecx, edx
mov edx, dword [eax + 0x34]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x28], edx
xor ecx, edx
mov edx, dword [esp + 0x18]
xor ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, edx
mov edx, ebx
xor edx, edi
xor ecx, ebx
mov ebx, dword [eax + 0x38]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edx
xor ecx, edx
mov edx, dword [esp + 0x10]
xor ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x2c], ecx
xor edx, ecx
mov ecx, dword [esp + 0xc]
xor edx, ecx
mov dword [esp + 0x10], edx
mov edx, ecx
mov ecx, edi
mov ecx, dword [esp + 8]
xor edx, ebx
mov ebx, dword [esp + 0x34]
xor edx, edi
mov dword [esp + 0xc], edx
mov edx, edi
rol ecx, 0x1e
bswap edx
mov dword [esp + 8], ecx
mov edi, ecx
mov ecx, dword [esp + 0x30]
add esi, edx
mov edx, ebx
rol edx, 5
lea esi, [edx + esi + 0x5a827999]
mov edx, dword [eax + 0x2c]
xor edi, ecx
and edi, ebx
mov ebx, dword [esp + 4]
xor edi, ecx
mov ecx, dword [esp + 0x38]
mov eax, edx
xor eax, ebp
add edi, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
mov eax, dword [esp]
xor ecx, ebp
xor ecx, dword [esp + 0x20]
xor ecx, ebx
xor ebx, edx
xor ebx, eax
mov dword [esp + 0x38], ecx
xor eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x40]
xor eax, ecx
mov dword [esp], eax
mov eax, ecx
mov ecx, dword [esp + 8]
xor eax, dword [esp + 0x24]
xor eax, ebp
bswap ebp
add edi, ebp
mov ebp, esi
mov dword [esp + 0x14], eax
rol ebp, 5
lea edi, [ebp + edi + 0x5a827999]
mov ebp, dword [esp + 0x34]
rol ebp, 0x1e
mov eax, ebp
xor eax, ecx
and eax, esi
rol esi, 0x1e
xor eax, ecx
mov ecx, dword [esp + 0x2c]
add eax, dword [esp + 0x30]
xor ecx, ebx
bswap ebx
add eax, ebx
mov ebx, edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x28]
rol ebx, 5
lea eax, [ebx + eax + 0x5a827999]
mov ebx, esi
xor ebx, ebp
and ebx, edi
xor ecx, edx
bswap edx
rol edi, 0x1e
xor ebx, ebp
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x2c]
add ebx, dword [esp + 8]
add ebx, edx
mov edx, eax
rol edx, 5
lea edx, [edx + ebx + 0x5a827999]
mov ebx, edi
xor ebx, esi
and ebx, eax
rol eax, 0x1e
xor ebx, esi
add ebx, ebp
mov ebp, dword [esp + 0x20]
xor ebp, ecx
bswap ecx
add ebx, ecx
mov ecx, edx
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x24]
rol ecx, 5
lea ecx, [ecx + ebx + 0x5a827999]
mov ebx, eax
xor ebx, edi
and ebx, edx
rol edx, 0x1e
xor ebx, edi
add ebx, esi
mov esi, dword [esp + 0x28]
xor ebp, esi
bswap esi
add ebx, esi
mov esi, ecx
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x20]
rol esi, 5
lea esi, [esi + ebx + 0x5a827999]
mov ebx, edx
xor ebx, eax
and ebx, ecx
bswap ebp
rol ecx, 0x1e
xor ebx, eax
mov dword [esp + 0x20], ebp
add ebx, edi
mov edi, esi
add ebx, ebp
rol edi, 5
mov ebp, dword [esp + 0x24]
lea edi, [edi + ebx + 0x5a827999]
mov ebx, ecx
xor ebx, edx
and ebx, esi
rol esi, 0x1e
xor ebx, edx
bswap ebp
add ebx, eax
mov eax, edi
mov dword [esp + 0x24], ebp
rol eax, 5
add ebx, ebp
lea eax, [eax + ebx + 0x5a827999]
mov ebx, dword [esp + 0x1c]
bswap ebx
rol ebx, 1
add edx, ebx
mov ebp, ebx
mov dword [esp + 0x1c], ebx
mov ebx, esi
xor ebx, ecx
and ebx, edi
rol edi, 0x1e
xor ebx, ecx
add ebx, edx
mov edx, eax
rol edx, 5
lea edx, [edx + ebx + 0x5a827999]
mov ebx, dword [esp + 0x38]
bswap ebx
rol ebx, 1
mov dword [esp + 0x38], ebx
add ecx, ebx
mov ebx, edi
xor ebx, esi
and ebx, eax
rol eax, 0x1e
xor ebx, esi
add ebx, ecx
mov ecx, edx
rol ecx, 5
lea ecx, [ecx + ebx + 0x5a827999]
mov ebx, dword [esp + 0x18]
bswap ebx
rol ebx, 1
mov dword [esp + 0x18], ebx
add esi, ebx
mov ebx, eax
xor ebx, edi
and ebx, edx
rol edx, 0x1e
xor ebx, edi
add ebx, esi
mov esi, ecx
rol esi, 5
lea esi, [esi + ebx + 0x5a827999]
mov ebx, dword [esp + 4]
bswap ebx
xor ebx, ebp
rol ebx, 1
mov ebp, ebx
mov dword [esp + 4], ebx
mov ebx, edx
xor ebx, eax
add edi, ebp
and ebx, ecx
rol ecx, 0x1e
xor ebx, eax
add edi, ebx
mov ebx, esi
rol ebx, 5
lea edi, [ebx + edi + 0x5a827999]
mov ebx, dword [esp + 0x10]
bswap ebx
xor ebx, dword [esp + 0x38]
rol ebx, 1
mov ebp, ebx
mov dword [esp + 0x10], ebx
mov ebx, edx
xor ebx, esi
add eax, ebp
rol esi, 0x1e
xor ebx, ecx
add eax, ebx
mov ebx, edi
rol ebx, 5
lea eax, [ebx + eax + 0x6ed9eba1]
mov ebx, dword [esp]
bswap ebx
xor ebx, dword [esp + 0x18]
rol ebx, 1
mov ebp, ebx
mov dword [esp], ebx
mov ebx, ecx
xor ebx, edi
add edx, ebp
rol edi, 0x1e
xor ebx, esi
add edx, ebx
mov ebx, eax
rol ebx, 5
lea ebx, [ebx + edx + 0x6ed9eba1]
mov edx, dword [esp + 0xc]
bswap edx
xor edx, dword [esp + 4]
rol edx, 1
mov ebp, edx
mov dword [esp + 0xc], edx
mov edx, esi
xor edx, eax
add ecx, ebp
rol eax, 0x1e
xor edx, edi
add ecx, edx
mov edx, ebx
rol edx, 5
lea ecx, [edx + ecx + 0x6ed9eba1]
mov edx, dword [esp + 0x14]
bswap edx
xor edx, dword [esp + 0x10]
rol edx, 1
mov ebp, edx
mov dword [esp + 0x14], edx
mov edx, edi
xor edx, ebx
add esi, ebp
mov ebp, dword [esp + 0x1c]
rol ebx, 0x1e
xor edx, eax
add esi, edx
mov edx, ecx
rol edx, 5
lea esi, [edx + esi + 0x6ed9eba1]
mov edx, dword [esp + 0x44]
xor ebp, dword [esp]
bswap edx
xor ebp, edx
mov edx, eax
xor edx, ecx
rol ebp, 1
rol ecx, 0x1e
mov dword [esp + 0x34], ebp
add edi, ebp
mov ebp, dword [esp + 0x38]
xor edx, ebx
add edi, edx
mov edx, esi
rol edx, 5
lea edi, [edx + edi + 0x6ed9eba1]
mov edx, dword [esp + 0x48]
xor ebp, dword [esp + 0xc]
bswap edx
xor ebp, edx
mov edx, ebx
xor edx, esi
rol ebp, 1
rol esi, 0x1e
mov dword [esp + 0x28], ebp
add eax, ebp
mov ebp, dword [esp + 0x18]
xor edx, ecx
add eax, edx
mov edx, edi
rol edx, 5
lea edx, [edx + eax + 0x6ed9eba1]
mov eax, dword [esp + 0x3c]
xor ebp, dword [esp + 0x14]
bswap eax
xor ebp, eax
mov eax, ecx
xor eax, edi
rol ebp, 1
rol edi, 0x1e
mov dword [esp + 0x50], ebp
add ebx, ebp
mov ebp, dword [esp + 4]
xor eax, esi
add ebx, eax
mov eax, edx
rol eax, 5
lea ebx, [eax + ebx + 0x6ed9eba1]
mov eax, dword [esp + 0x40]
xor ebp, dword [esp + 0x34]
bswap eax
xor ebp, eax
mov eax, esi
xor eax, edx
rol ebp, 1
rol edx, 0x1e
xor eax, edi
add ecx, ebp
mov dword [esp + 0x2c], ebp
add ecx, eax
mov eax, ebx
rol eax, 5
lea ebp, [eax + ecx + 0x6ed9eba1]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 8]
xor ecx, dword [esp + 0x28]
bswap eax
xor ecx, eax
mov eax, edi
xor eax, ebx
rol ecx, 1
rol ebx, 0x1e
xor eax, edx
add esi, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x30]
add esi, eax
mov eax, ebp
rol eax, 5
lea eax, [eax + esi + 0x6ed9eba1]
mov esi, dword [esp]
bswap ecx
xor esi, dword [esp + 0x50]
xor esi, ecx
mov ecx, edx
xor ecx, ebp
rol esi, 1
rol ebp, 0x1e
xor ecx, ebx
add edi, esi
mov dword [esp + 0x44], esi
add edi, ecx
mov ecx, eax
rol ecx, 5
lea esi, [ecx + edi + 0x6ed9eba1]
mov edi, dword [esp + 0x1c]
mov ecx, ebx
xor ecx, eax
rol eax, 0x1e
xor ecx, ebp
xor edi, dword [esp + 0xc]
xor edi, dword [esp + 0x2c]
xor edi, dword [esp + 0x20]
rol edi, 1
add edx, edi
mov dword [esp + 0x3c], edi
add edx, ecx
mov ecx, esi
rol ecx, 5
lea ecx, [ecx + edx + 0x6ed9eba1]
mov edx, dword [esp + 4]
xor edx, dword [esp + 0x28]
xor edx, edi
mov edi, dword [esp + 0x38]
xor edx, edi
xor edi, dword [esp + 0x14]
mov dword [esp + 0x30], edx
mov edx, ebp
xor edx, esi
rol esi, 0x1e
xor edx, eax
xor edi, dword [esp + 8]
xor edi, dword [esp + 0x24]
rol edi, 1
add ebx, edi
mov dword [esp + 0x24], edi
mov edi, eax
add ebx, edx
mov edx, ecx
xor edi, ecx
rol ecx, 0x1e
rol edx, 5
xor edi, esi
lea edx, [edx + ebx + 0x6ed9eba1]
mov ebx, dword [esp + 0x1c]
xor ebx, dword [esp + 0x34]
xor ebx, dword [esp + 0x44]
xor ebx, dword [esp + 0x18]
rol ebx, 1
add ebp, ebx
mov dword [esp + 0x1c], ebx
mov ebx, esi
add ebp, edi
mov edi, edx
xor ebx, edx
rol edx, 0x1e
rol edi, 5
xor ebx, ecx
lea edi, [edi + ebp + 0x6ed9eba1]
mov ebp, dword [esp + 0x30]
rol ebp, 1
add eax, ebp
mov dword [esp + 0x30], ebp
add eax, ebx
mov ebx, edi
rol ebx, 5
lea ebp, [ebx + eax + 0x6ed9eba1]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
xor eax, dword [esp + 8]
xor eax, dword [esp + 0x30]
xor eax, ebx
xor ebx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov eax, ecx
xor eax, edi
rol edi, 0x1e
xor eax, edx
xor ebx, dword [esp + 0x24]
xor ebx, dword [esp + 0x18]
rol ebx, 1
add esi, ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 4]
add esi, eax
mov eax, ebp
rol eax, 5
lea eax, [eax + esi + 0x6ed9eba1]
mov esi, edx
xor ebx, dword [esp + 0x2c]
xor esi, ebp
rol ebp, 0x1e
xor esi, edi
xor ebx, dword [esp + 0x1c]
xor ebx, dword [esp]
rol ebx, 1
add ecx, ebx
mov dword [esp + 4], ebx
add ecx, esi
mov esi, eax
rol esi, 5
lea ebx, [esi + ecx + 0x6ed9eba1]
mov esi, dword [esp + 0x48]
mov ecx, edi
xor ecx, eax
rol eax, 0x1e
xor ecx, ebp
rol esi, 1
add edx, esi
mov dword [esp + 0x48], esi
add edx, ecx
mov ecx, ebx
rol ecx, 5
lea edx, [ecx + edx + 0x6ed9eba1]
mov ecx, dword [esp + 0x28]
xor ecx, dword [esp + 0x24]
xor ecx, esi
mov esi, dword [esp + 0x14]
xor ecx, esi
xor esi, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
mov ecx, ebp
xor ecx, ebx
rol ebx, 0x1e
xor ecx, eax
xor esi, dword [esp + 0x10]
xor esi, dword [esp]
rol esi, 1
add edi, esi
mov dword [esp + 0x14], esi
mov esi, eax
add edi, ecx
mov ecx, edx
xor esi, edx
rol edx, 0x1e
rol ecx, 5
xor esi, ebx
lea ecx, [ecx + edi + 0x6ed9eba1]
mov edi, dword [esp + 0xc]
xor edi, dword [esp + 0x3c]
xor edi, dword [esp + 4]
xor edi, dword [esp + 0x34]
rol edi, 1
add ebp, edi
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x40]
add ebp, esi
mov esi, ecx
rol esi, 5
lea ebp, [esi + ebp + 0x6ed9eba1]
mov esi, ebx
xor esi, ecx
rol edi, 1
rol ecx, 0x1e
xor esi, edx
add eax, edi
mov dword [esp + 0x40], edi
add eax, esi
mov esi, ebp
rol esi, 5
lea eax, [esi + eax + 0x6ed9eba1]
mov esi, dword [esp + 8]
xor esi, dword [esp + 0x10]
xor esi, edi
mov edi, dword [esp + 0x50]
xor esi, edi
mov dword [esp + 0x20], esi
mov esi, edi
mov edi, ebp
xor esi, dword [esp + 0x1c]
or edi, ecx
and edi, edx
xor esi, dword [esp + 0x14]
xor esi, dword [esp + 0x34]
mov dword [esp], esi
mov esi, ebp
rol ebp, 0x1e
and esi, ecx
or edi, esi
mov esi, dword [esp]
rol esi, 1
add ebx, esi
mov dword [esp], esi
mov esi, eax
add ebx, edi
mov edi, eax
rol esi, 5
or edi, ebp
lea ebx, [esi + ebx - 0x70e44324]
mov esi, eax
rol eax, 0x1e
and esi, ebp
and edi, ecx
or edi, esi
mov esi, dword [esp + 0x28]
xor esi, dword [esp + 0x30]
xor esi, dword [esp + 0xc]
xor esi, dword [esp + 0x2c]
rol esi, 1
add edx, esi
mov dword [esp + 0x28], esi
mov esi, ebx
add edx, edi
rol esi, 5
mov edi, ebx
or edi, eax
lea esi, [esi + edx - 0x70e44324]
mov edx, ebx
rol ebx, 0x1e
and edx, eax
and edi, ebp
or edi, edx
mov edx, dword [esp + 0x20]
rol edx, 1
add ecx, edx
mov dword [esp + 0x20], edx
mov edx, esi
add ecx, edi
rol edx, 5
mov edi, dword [esp + 0x44]
lea ecx, [edx + ecx - 0x70e44324]
mov edx, dword [esp + 0x24]
xor edx, dword [esp + 0x14]
xor edx, dword [esp + 0x20]
xor edx, edi
mov dword [esp + 0x34], edx
mov edx, edi
mov edi, esi
xor edx, dword [esp + 4]
or edi, ebx
and edi, eax
xor edx, dword [esp]
xor edx, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
mov edx, esi
rol esi, 0x1e
and edx, ebx
or edi, edx
mov edx, dword [esp + 0x18]
rol edx, 1
add ebp, edx
mov dword [esp + 0x18], edx
mov edx, ecx
add ebp, edi
rol edx, 5
mov edi, ecx
lea edx, [edx + ebp - 0x70e44324]
mov ebp, ecx
and edi, esi
rol ecx, 0x1e
or ebp, esi
and ebp, ebx
or ebp, edi
mov edi, dword [esp + 8]
xor edi, dword [esp + 0x48]
xor edi, dword [esp + 0x28]
xor edi, dword [esp + 0x3c]
rol edi, 1
add eax, edi
mov dword [esp + 8], edi
mov edi, edx
add eax, ebp
rol edi, 5
mov ebp, edx
or ebp, ecx
lea edi, [edi + eax - 0x70e44324]
mov eax, edx
rol edx, 0x1e
and eax, ecx
and ebp, esi
or ebp, eax
mov eax, dword [esp + 0x34]
rol eax, 1
add ebx, eax
mov dword [esp + 0x34], eax
mov eax, edi
add ebx, ebp
rol eax, 5
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + ebx - 0x70e44324]
mov eax, dword [esp + 0x10]
xor eax, dword [esp]
xor eax, dword [esp + 0x34]
xor eax, ebp
mov dword [esp + 0x2c], eax
mov eax, ebp
mov ebp, edi
xor eax, dword [esp + 0xc]
or ebp, edx
and ebp, ecx
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, edi
rol edi, 0x1e
and eax, edx
or ebp, eax
mov eax, dword [esp + 0x1c]
rol eax, 1
add esi, eax
mov dword [esp + 0x1c], eax
mov eax, ebx
add esi, ebp
mov ebp, ebx
rol eax, 5
or ebp, edi
lea esi, [eax + esi - 0x70e44324]
mov eax, ebx
rol ebx, 0x1e
and eax, edi
and ebp, edx
or ebp, eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x40]
xor eax, dword [esp + 8]
xor eax, dword [esp + 0x30]
rol eax, 1
add ecx, eax
mov dword [esp + 0x24], eax
mov eax, esi
add ecx, ebp
rol eax, 5
mov ebp, esi
or ebp, ebx
lea eax, [eax + ecx - 0x70e44324]
mov ecx, esi
rol esi, 0x1e
and ecx, ebx
and ebp, edi
or ebp, ecx
mov ecx, dword [esp + 0x2c]
rol ecx, 1
add edx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, eax
add edx, ebp
rol ecx, 5
mov ebp, dword [esp + 4]
lea edx, [ecx + edx - 0x70e44324]
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x18]
xor ecx, dword [esp + 0x2c]
xor ecx, ebp
mov dword [esp + 0x3c], ecx
mov ecx, ebp
mov ebp, eax
xor ecx, dword [esp + 0x28]
or ebp, esi
and ebp, ebx
xor ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x30]
mov dword [esp + 0x38], ecx
mov ecx, eax
rol eax, 0x1e
and ecx, esi
or ebp, ecx
mov ecx, dword [esp + 0x38]
rol ecx, 1
add edi, ecx
mov dword [esp + 0x38], ecx
mov ecx, edx
add edi, ebp
mov ebp, edx
rol ecx, 5
or ebp, eax
lea edi, [ecx + edi - 0x70e44324]
mov ecx, edx
rol edx, 0x1e
and ecx, eax
and ebp, esi
or ebp, ecx
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x20]
xor ecx, dword [esp + 0x24]
xor ecx, dword [esp + 0x48]
rol ecx, 1
add ebx, ecx
mov dword [esp + 0x10], ecx
mov ecx, edi
add ebx, ebp
rol ecx, 5
mov ebp, edi
or ebp, edx
lea ecx, [ecx + ebx - 0x70e44324]
mov ebx, edi
rol edi, 0x1e
and ebx, edx
and ebp, eax
or ebp, ebx
mov ebx, dword [esp + 0x3c]
rol ebx, 1
add esi, ebx
mov dword [esp + 0x3c], ebx
mov ebx, ecx
add esi, ebp
rol ebx, 5
mov ebp, dword [esp + 0xc]
lea esi, [ebx + esi - 0x70e44324]
mov ebx, dword [esp]
xor ebx, dword [esp + 0x1c]
xor ebx, dword [esp + 0x3c]
xor ebx, ebp
xor ebp, dword [esp + 8]
mov dword [esp + 0x44], ebx
mov ebx, ecx
and ebx, edi
xor ebp, dword [esp + 0x38]
xor ebp, dword [esp + 0x48]
mov dword [esp + 4], ebp
mov ebp, ecx
rol ecx, 0x1e
or ebp, edi
and ebp, edx
or ebp, ebx
mov ebx, dword [esp + 4]
rol ebx, 1
add eax, ebx
mov dword [esp + 4], ebx
mov ebx, esi
add eax, ebp
rol ebx, 5
mov ebp, esi
or ebp, ecx
lea ebx, [ebx + eax - 0x70e44324]
mov eax, esi
rol esi, 0x1e
and eax, ecx
and ebp, edi
or ebp, eax
mov eax, dword [esp + 0x14]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x10]
xor eax, dword [esp + 0x40]
rol eax, 1
add edx, eax
mov dword [esp + 0x14], eax
mov eax, ebx
add edx, ebp
rol eax, 5
mov ebp, ebx
or ebp, esi
lea eax, [eax + edx - 0x70e44324]
mov edx, ebx
rol ebx, 0x1e
and edx, esi
and ebp, ecx
or ebp, edx
mov edx, dword [esp + 0x44]
rol edx, 1
add edi, edx
mov dword [esp + 0x44], edx
mov edx, eax
add edi, ebp
rol edx, 5
mov ebp, dword [esp + 0x28]
lea edi, [edx + edi - 0x70e44324]
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x38]
xor edx, dword [esp + 0x44]
xor edx, ebp
mov dword [esp + 0x30], edx
mov edx, ebp
mov ebp, eax
xor edx, dword [esp + 0x24]
or ebp, ebx
and ebp, esi
xor edx, dword [esp + 4]
xor edx, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov edx, eax
rol eax, 0x1e
and edx, ebx
or ebp, edx
mov edx, dword [esp + 0xc]
rol edx, 1
add ecx, edx
mov dword [esp + 0xc], edx
mov edx, edi
add ecx, ebp
rol edx, 5
lea ebp, [edx + ecx - 0x70e44324]
mov edx, edi
mov ecx, edi
rol edi, 0x1e
or edx, eax
and ecx, eax
and edx, ebx
or edx, ecx
mov ecx, dword [esp]
xor ecx, dword [esp + 0x2c]
xor ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x20]
rol ecx, 1
add esi, ecx
mov dword [esp], ecx
mov ecx, ebp
add esi, edx
rol ecx, 5
mov edx, ebp
lea ecx, [ecx + esi - 0x70e44324]
mov esi, ebp
and edx, edi
rol ebp, 0x1e
or esi, edi
and esi, eax
or esi, edx
mov edx, dword [esp + 0x30]
rol edx, 1
add ebx, edx
mov dword [esp + 0x30], edx
mov edx, ecx
add ebx, esi
rol edx, 5
mov esi, dword [esp + 8]
lea edx, [edx + ebx - 0x70e44324]
mov ebx, dword [esp + 0x1c]
xor ebx, dword [esp + 4]
xor ebx, dword [esp + 0x30]
xor ebx, esi
xor esi, dword [esp + 0x10]
mov dword [esp + 0x28], ebx
mov ebx, ecx
or ebx, ebp
and ebx, edi
xor esi, dword [esp + 0xc]
xor esi, dword [esp + 0x20]
mov dword [esp + 0x20], esi
mov esi, ecx
rol ecx, 0x1e
and esi, ebp
or ebx, esi
mov esi, dword [esp + 0x20]
rol esi, 1
add eax, esi
mov dword [esp + 0x20], esi
mov esi, edx
add eax, ebx
rol esi, 5
mov ebx, edx
or ebx, ecx
lea esi, [esi + eax - 0x70e44324]
mov eax, edx
rol edx, 0x1e
and eax, ecx
and ebx, ebp
or ebx, eax
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x3c]
xor eax, dword [esp]
xor eax, dword [esp + 0x34]
rol eax, 1
add edi, eax
mov dword [esp + 0x18], eax
mov eax, esi
add edi, ebx
mov ebx, dword [esp + 0x28]
rol eax, 5
lea edi, [eax + edi - 0x70e44324]
mov eax, ecx
xor eax, esi
rol esi, 0x1e
xor eax, edx
rol ebx, 1
add ebp, ebx
mov dword [esp + 0x28], ebx
add ebp, eax
mov eax, edi
rol eax, 5
lea ebx, [eax + ebp - 0x359d3e2a]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
xor ebp, dword [esp + 0xc]
xor ebp, dword [esp + 0x28]
xor ebp, eax
mov dword [esp + 0x40], ebp
mov ebp, eax
mov eax, edx
xor ebp, dword [esp + 0x14]
xor eax, edi
rol edi, 0x1e
xor eax, esi
xor ebp, dword [esp + 0x20]
xor ebp, dword [esp + 0x34]
rol ebp, 1
add ecx, ebp
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x1c]
add ecx, eax
mov eax, ebx
rol eax, 5
lea ecx, [eax + ecx - 0x359d3e2a]
mov eax, esi
xor ebp, dword [esp + 0x44]
xor eax, ebx
rol ebx, 0x1e
xor eax, edi
xor ebp, dword [esp + 0x18]
xor ebp, dword [esp + 0x2c]
rol ebp, 1
add edx, ebp
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x40]
add edx, eax
mov eax, ecx
rol eax, 5
lea eax, [eax + edx - 0x359d3e2a]
mov edx, edi
xor edx, ecx
rol ebp, 1
rol ecx, 0x1e
xor edx, ebx
add esi, ebp
mov dword [esp + 0x40], ebp
add esi, edx
mov edx, eax
rol edx, 5
lea esi, [edx + esi - 0x359d3e2a]
mov edx, dword [esp + 4]
xor edx, dword [esp + 0x20]
xor edx, ebp
mov ebp, edx
mov edx, dword [esp + 0x10]
xor ebp, edx
mov dword [esp + 8], ebp
mov ebp, edx
mov edx, ebx
xor ebp, dword [esp]
xor edx, eax
rol eax, 0x1e
xor edx, ecx
xor ebp, dword [esp + 0x24]
xor ebp, dword [esp + 0x2c]
rol ebp, 1
add edi, ebp
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x38]
add edi, edx
mov edx, esi
rol edx, 5
lea edi, [edx + edi - 0x359d3e2a]
mov edx, ecx
xor ebp, dword [esp + 0x30]
xor edx, esi
rol esi, 0x1e
xor edx, eax
xor ebp, dword [esp + 0x1c]
xor ebp, dword [esp + 0x3c]
rol ebp, 1
add ebx, ebp
mov dword [esp + 0x38], ebp
add ebx, edx
mov edx, edi
rol edx, 5
lea ebp, [edx + ebx - 0x359d3e2a]
mov ebx, dword [esp + 8]
mov edx, eax
xor edx, edi
rol edi, 0x1e
xor edx, esi
rol ebx, 1
add ecx, ebx
mov dword [esp + 8], ebx
add ecx, edx
mov edx, ebp
rol edx, 5
lea ebx, [edx + ecx - 0x359d3e2a]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
xor edx, dword [esp + 0x24]
xor edx, dword [esp + 8]
xor edx, ecx
mov dword [esp + 0x2c], edx
mov edx, ecx
mov ecx, esi
xor edx, dword [esp + 0x18]
xor ecx, ebp
rol ebp, 0x1e
xor ecx, edi
xor edx, dword [esp + 0x34]
xor edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], ebp
rol edx, 1
add eax, edx
mov dword [esp + 0x14], edx
add eax, ecx
mov ecx, ebx
rol ecx, 5
lea edx, [ecx + eax - 0x359d3e2a]
mov ecx, dword [esp + 4]
mov eax, edi
xor eax, ebx
xor eax, ebp
xor ecx, dword [esp + 0x28]
xor ecx, dword [esp + 0x38]
xor ecx, dword [esp + 0x44]
rol ecx, 1
add esi, ecx
mov dword [esp + 4], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
add esi, eax
mov eax, edx
rol ecx, 0x1e
rol eax, 5
lea esi, [eax + esi - 0x359d3e2a]
mov eax, ebp
mov ebp, ecx
xor eax, edx
rol ebx, 1
rol edx, 0x1e
xor eax, ecx
add edi, ebx
mov ecx, dword [esp]
mov dword [esp + 0x2c], ebx
mov dword [esp], edx
add edi, eax
mov eax, esi
rol eax, 5
lea eax, [eax + edi - 0x359d3e2a]
mov edi, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
xor dword [esp + 8], eax
xor eax, dword [esp + 0x34]
xor eax, ebx
mov ebx, ecx
xor ebx, dword [esp + 0x1c]
xor eax, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x3c]
xor ecx, esi
rol eax, 1
xor ecx, edx
mov edx, esi
mov esi, dword [esp]
rol edx, 0x1e
xor ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x44]
rol ebx, 1
add ebp, ebx
mov dword [esp + 0x20], ebx
add ebp, ecx
mov ecx, dword [esp + 0x10]
rol ecx, 5
lea ebx, [ecx + ebp - 0x359d3e2a]
mov ecx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
xor ecx, dword [esp + 0x40]
xor esi, ebp
rol ebp, 0x1e
xor esi, edx
mov dword [esp + 0x10], ebp
xor ecx, dword [esp + 4]
xor ecx, dword [esp + 0x30]
rol ecx, 1
add edi, ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp]
add edi, esi
mov esi, ebx
rol esi, 5
lea esi, [esi + edi - 0x359d3e2a]
mov edi, edx
xor edi, ebx
add ecx, eax
rol ebx, 0x1e
xor edi, ebp
xor ebp, esi
add ecx, edi
mov edi, esi
xor ebp, ebx
rol esi, 0x1e
rol edi, 5
lea edi, [edi + ecx - 0x359d3e2a]
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x24]
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, eax
xor eax, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
mov ecx, edi
rol ecx, 5
xor eax, dword [esp + 0x20]
xor eax, dword [esp + 0x30]
rol eax, 1
add edx, eax
add edx, ebp
mov ebp, dword [esp + 8]
lea ecx, [ecx + edx - 0x359d3e2a]
mov edx, dword [esp + 0x10]
mov dword [esp], ecx
mov ecx, ebx
xor ecx, edi
rol edi, 0x1e
xor ebp, dword [esp + 0xc]
xor ecx, esi
xor ebp, dword [esp + 0x28]
rol ebp, 1
add edx, ebp
mov dword [esp + 8], ebp
mov ebp, dword [esp]
add edx, ecx
mov ecx, ebp
rol ecx, 5
lea ecx, [ecx + edx - 0x359d3e2a]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, esi
xor ecx, ebp
xor ecx, edi
rol edx, 1
add ebx, edx
mov dword [esp + 0x14], edx
add ebx, ecx
mov ecx, dword [esp + 0x18]
rol ecx, 5
lea ebp, [ecx + ebx - 0x359d3e2a]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 4]
xor ebx, dword [esp + 0x24]
xor ecx, dword [esp + 0x1c]
xor ebx, dword [esp + 8]
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x28]
rol eax, 5
xor ebx, dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [esp]
rol edx, 1
add esi, edx
mov dword [esp + 4], edx
rol ebx, 1
add ebx, edi
xor edi, dword [esp + 0x18]
rol ecx, 0x1e
mov dword [esp], ecx
mov edx, dword [esp]
xor edi, ecx
add esi, edi
mov edi, dword [esp + 0x18]
lea ecx, [eax + esi - 0x359d3e2a]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
rol ecx, 5
rol edi, 0x1e
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x14]
xor eax, dword [esp + 0x1c]
rol eax, 1
add eax, edx
xor edx, ebp
rol ebp, 0x1e
xor edx, edi
add ebx, edx
lea edx, [ecx + ebx - 0x359d3e2a]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov esi, edx
rol esi, 5
xor ecx, dword [esp + 0x38]
xor ecx, dword [esp + 4]
xor ecx, dword [esp + 0x40]
rol ecx, 1
add ecx, dword [esp + 0x5c]
add ecx, edi
xor edi, ebx
rol ebx, 0x1e
xor edi, ebp
add eax, edi
lea edi, [eax + esi]
lea esi, [esi + eax - 0x359d3e2a]
mov eax, ebx
mov ebx, ebp
xor ebx, edx
rol esi, 5
rol edx, 0x1e
xor ebx, eax
add ecx, ebx
mov ebx, dword [esp + 0x58]
lea esi, [esi + ecx - 0x359d3e2a]
mov ecx, dword [esp + 0x4c]
lea ebx, [ebx + edi - 0x359d3e2a]
mov edi, dword [esp + 0x64]
add ecx, edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], ecx
mov dword [edi], esi
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
add edx, eax
mov dword [edi + 0xc], edx
mov ecx, edx
mov edx, dword [esp + 0x54]
add ebp, dword [edi + 0x10]
add edx, 0x40
dec dword [esp + 0x60]
mov edx, edx
mov dword [edi + 0x10], ebp
jne 0x47ad80
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret