Function at 0x969510
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x328
mov ecx, dword [0xbd33e0]
mov edx, dword [ebp + 8]
lea edi, [esp + 0x2e0]
mov eax, dword [ebp + 0xc]
xor ecx, ebp
lea esi, [edx + 0x10]
mov dword [esp + 0x320], ecx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
movzx edx, byte [eax + ecx*8]
movzx esi, byte [eax + ecx*8 + 1]
movzx edi, byte [eax + ecx*8 + 5]
movzx ebx, byte [eax + ecx*8 + 7]
shl edx, 0x18
shl esi, 0x10
shl edi, 0x10
or esi, edx
movzx edx, byte [eax + ecx*8 + 2]
shl edx, 8
or edx, esi
movzx esi, byte [eax + ecx*8 + 3]
or esi, edx
movzx edx, byte [eax + ecx*8 + 4]
shl edx, 0x18
or edi, edx
movzx edx, byte [eax + ecx*8 + 6]
mov dword [esp + ecx*8 + 0x64], esi
shl edx, 8
or edx, edi
or ebx, edx
mov dword [esp + ecx*8 + 0x60], ebx
inc ecx
cmp ecx, 0x10
jne 0x969547
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov eax, 0x10
mov esi, dword [esp + eax*8 + 0x54]
mov edi, dword [esp + eax*8 + 0x50]
mov dword [esp + 0x10], eax
mov eax, esi
mov ebx, esi
shld eax, edi, 0xd
shld ebx, edi, 0x1a
xor ebx, eax
mov eax, esi
shld eax, edi, 3
mov dword [esp + 4], eax
mov eax, edi
shld edi, esi, 3
shld eax, esi, 0xd
shr esi, 6
xor ebx, edi
xor esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
xor esi, dword [esp + 4]
mov edi, dword [esp + eax*8 - 0x18]
mov ebx, dword [esp + eax*8 - 0x14]
mov eax, edi
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
shld eax, ebx, 0x1f
mov dword [esp + 0xc], eax
mov eax, ebx
mov ebx, edi
mov edi, dword [esp + 8]
shr eax, 7
xor eax, dword [esp + 0xc]
shld ebx, edi, 0x18
mov edi, dword [esp + 4]
xor eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov ebx, eax
shld ebx, edi, 0x1f
mov edi, dword [esp + 4]
shld eax, edi, 0x19
mov edi, dword [esp + 4]
xor eax, ebx
mov ebx, dword [esp + 8]
shld ebx, edi, 0x18
xor eax, ebx
mov ebx, dword [esp + 0x10]
add ecx, dword [esp + ebx*8 + 0x28]
adc edx, dword [esp + ebx*8 + 0x2c]
add ecx, dword [esp + 0x14]
adc edx, esi
add ecx, eax
mov esi, ebx
adc edx, dword [esp + 0xc]
mov dword [esp + ebx*8 + 0x60], ecx
mov ecx, dword [esp + 4]
inc esi
mov eax, esi
cmp esi, 0x50
mov dword [esp + ebx*8 + 0x64], edx
mov edx, dword [esp + 8]
jne 0x9695a7
mov edx, dword [esp + 0x300]
mov ecx, dword [esp + 0x314]
mov eax, dword [esp + 0x304]
mov ebx, dword [esp + 0x2e4]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x310]
mov ecx, dword [esp + 0x30c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x308]
mov ecx, dword [esp + 0x2e0]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2e8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
mov ecx, eax
mov esi, edx
mov edi, eax
shld ecx, edx, 0xe
shld esi, eax, 0x17
shld edi, edx, 0x17
xor esi, ecx
mov ecx, eax
shld ecx, edx, 0x12
xor esi, ecx
mov ecx, edx
shld ecx, eax, 0xe
xor edi, ecx
mov ecx, edx
mov edx, dword [esp + 0x14]
shld ecx, eax, 0x12
mov eax, dword [esp + 0x2c]
xor edi, ecx
xor edx, dword [esp + 4]
mov ecx, eax
xor ecx, dword [esp + 0x34]
and edx, dword [esp + 0x10]
and ecx, dword [esp + 0xc]
xor edx, dword [esp + 0x14]
xor ecx, eax
mov eax, dword [esp + 0x4c]
add edx, dword [esp + 0x318]
mov dword [esp + 0x4c], eax
adc ecx, dword [esp + 0x31c]
add edx, dword [eax*8 + 0xb6af60]
adc ecx, dword [eax*8 + 0xb6af64]
add edx, edi
mov edi, ebx
adc ecx, esi
add edx, dword [esp + eax*8 + 0x60]
mov esi, ebx
adc ecx, dword [esp + eax*8 + 0x64]
mov eax, dword [esp + 8]
shld esi, eax, 0x1e
shld edi, eax, 0x19
xor edi, esi
mov esi, eax
shld esi, ebx, 4
xor edi, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x44], edi
mov edi, eax
shld edi, ebx, 0x1e
mov ebx, eax
shld ebx, esi, 0x19
mov esi, dword [esp + 0x30]
xor ebx, edi
shld esi, eax, 4
xor ebx, esi
mov esi, dword [esp + 0x1c]
and eax, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
or eax, esi
mov esi, dword [esp + 0x30]
and eax, dword [esp + 0x28]
or eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
or esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
and esi, dword [esp + 0x3c]
and edi, dword [esp + 0x24]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x2f8]
or esi, dword [esp + 0x18]
add eax, ebx
mov ebx, dword [esp + 0x2fc]
adc esi, dword [esp + 0x44]
add edi, edx
adc ebx, ecx
add eax, edx
mov edx, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2f8], edi
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x318], eax
mov eax, dword [esp + 0x14]
adc esi, ecx
shld edx, ebx, 0xe
mov ecx, esi
mov dword [esp + 0x44], esi
mov esi, ebx
shld esi, edi, 0x17
mov dword [esp + 0x31c], ecx
mov ecx, dword [esp + 0x2c]
xor esi, edx
mov edx, edi
shld edx, ebx, 0x12
xor esi, edx
mov edx, edi
mov dword [esp + 0x20], esi
mov esi, ebx
shld edx, ebx, 0x17
shld esi, edi, 0xe
xor edx, esi
mov esi, ebx
shld esi, edi, 0x12
mov edi, dword [esp + 0xc]
xor edx, esi
mov esi, dword [esp + 0x10]
xor edi, dword [esp + 0x34]
xor esi, dword [esp + 4]
and edi, ebx
mov ebx, dword [esp + 0x4c]
and esi, dword [esp + 0x38]
xor edi, dword [esp + 0x34]
lea ebx, [ebx*8]
mov dword [esp + 0x48], ebx
xor esi, dword [esp + 4]
mov ebx, dword [esp + 0x48]
or ebx, 8
add eax, dword [ebx + 0xb6af60]
adc ecx, dword [ebx + 0xb6af64]
add eax, dword [esp + ebx + 0x60]
mov dword [esp + 0x2c], ecx
mov ecx, eax
mov eax, dword [esp + 0x2c]
adc eax, dword [esp + ebx + 0x64]
add ecx, esi
mov ebx, dword [esp + 0x18]
adc eax, edi
add ecx, edx
mov edi, dword [esp + 0x44]
adc eax, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, edi
mov edx, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
shld ecx, eax, 0x1e
shld edx, eax, 0x19
mov esi, eax
xor edx, ecx
mov ecx, eax
shld esi, edi, 0x19
shld ecx, edi, 4
xor edx, ecx
mov ecx, eax
shld ecx, edi, 0x1e
xor esi, ecx
mov ecx, edi
shld ecx, eax, 4
mov eax, dword [esp + 0x30]
xor esi, ecx
mov ecx, edi
or edi, eax
and ecx, eax
mov eax, dword [esp + 8]
and edi, dword [esp + 0x24]
or ebx, eax
or edi, ecx
mov ecx, dword [esp + 0x18]
and ebx, dword [esp + 0x1c]
and ecx, eax
mov eax, dword [esp + 0x28]
or ebx, ecx
mov ecx, dword [esp + 0x3c]
add ebx, esi
mov esi, dword [esp + 0x2c]
adc edi, edx
mov edx, dword [esp + 0x14]
add eax, edx
adc ecx, esi
add edx, ebx
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
mov edx, eax
adc esi, edi
mov ebx, ecx
mov dword [esp + 0x3c], ecx
shld edx, ecx, 0xe
shld ecx, eax, 0x17
mov edi, esi
mov dword [esp + 0x2c], esi
mov esi, ebx
mov dword [esp + 0x2f4], ebx
xor ecx, edx
mov edx, eax
shld esi, eax, 0xe
mov dword [esp + 0x314], edi
mov edi, dword [esp + 0x38]
shld edx, ebx, 0x12
xor ecx, edx
mov edx, eax
shld edx, ebx, 0x17
mov dword [esp + 0x20], ecx
mov ecx, eax
xor edx, esi
mov esi, ebx
xor edi, dword [esp + 0x10]
shld esi, eax, 0x12
mov eax, dword [esp + 0x14]
xor edx, esi
mov esi, dword [esp + 0x40]
and edi, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0xc]
xor edi, dword [esp + 0x10]
xor esi, eax
and esi, ebx
mov ebx, dword [esp + 0x48]
xor esi, eax
mov eax, dword [esp + 0x34]
or ebx, 0x10
add ecx, dword [ebx + 0xb6af60]
adc eax, dword [ebx + 0xb6af64]
add ecx, dword [esp + ebx + 0x60]
adc eax, dword [esp + ebx + 0x64]
add ecx, edi
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
adc eax, esi
add ecx, edx
mov esi, edi
adc eax, dword [esp + 0x20]
mov dword [esp + 4], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov edx, eax
shld esi, eax, 0x19
shld ecx, edi, 0x1e
shld edx, edi, 0x19
xor edx, ecx
mov ecx, edi
shld ecx, eax, 4
xor edx, ecx
mov ecx, edi
shld ecx, eax, 0x1e
xor esi, ecx
mov ecx, eax
shld ecx, edi, 4
mov edi, eax
or edi, ebx
xor esi, ecx
mov ecx, eax
mov eax, dword [esp + 0x18]
and ecx, ebx
and edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
or ebx, eax
or edi, ecx
mov ecx, dword [esp + 0x14]
and ebx, dword [esp + 8]
and ecx, eax
mov eax, dword [esp + 0x1c]
or ebx, ecx
mov ecx, dword [esp + 0x24]
add ebx, esi
mov esi, dword [esp + 0x34]
adc edi, edx
mov edx, dword [esp + 4]
add eax, edx
adc ecx, esi
add edx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 4], edx
mov edx, eax
adc esi, edi
mov ebx, ecx
mov dword [esp + 0x24], ecx
shld edx, ecx, 0xe
shld ecx, eax, 0x17
mov edi, esi
mov dword [esp + 0x34], esi
mov esi, ebx
mov dword [esp + 0x2ec], ebx
xor ecx, edx
mov edx, eax
shld esi, eax, 0xe
mov dword [esp + 0x30c], edi
mov edi, dword [esp + 0x28]
shld edx, ebx, 0x12
xor ecx, edx
mov edx, eax
shld edx, ebx, 0x17
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xc]
xor edx, esi
mov esi, ebx
xor edi, dword [esp + 0x38]
shld esi, eax, 0x12
mov eax, dword [esp + 4]
xor edx, esi
mov esi, dword [esp + 0x3c]
and edi, dword [esp + 0x1c]
mov dword [esp + 0x308], eax
mov eax, dword [esp + 0x40]
xor edi, dword [esp + 0x38]
xor esi, eax
and esi, ebx
mov ebx, dword [esp + 0x48]
xor esi, eax
mov eax, dword [esp + 0x10]
or ebx, 0x18
add eax, dword [ebx + 0xb6af60]
adc ecx, dword [ebx + 0xb6af64]
add eax, dword [esp + ebx + 0x60]
adc ecx, dword [esp + ebx + 0x64]
add eax, edi
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
adc ecx, esi
add eax, edx
mov esi, edi
mov dword [esp + 0x10], eax
adc ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov edx, eax
mov dword [esp + 0xc], ecx
mov ecx, eax
shld esi, eax, 0x19
shld ecx, edi, 0x1e
shld edx, edi, 0x19
xor edx, ecx
mov ecx, edi
shld ecx, eax, 4
xor edx, ecx
mov ecx, edi
shld ecx, eax, 0x1e
xor esi, ecx
mov ecx, eax
shld ecx, edi, 4
mov edi, eax
or edi, ebx
xor esi, ecx
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 4]
or ebx, eax
or edi, ecx
mov ecx, dword [esp + 4]
and ebx, dword [esp + 0x18]
and ecx, eax
mov eax, dword [esp + 8]
or ebx, ecx
mov ecx, dword [esp + 0x30]
add ebx, esi
mov esi, dword [esp + 0xc]
adc edi, edx
mov edx, dword [esp + 0x10]
add eax, edx
adc ecx, esi
add edx, ebx
mov dword [esp + 8], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x10], edx
mov edx, eax
adc esi, edi
mov ebx, ecx
mov edi, dword [esp + 0x1c]
shld edx, ecx, 0xe
shld ecx, eax, 0x17
mov dword [esp + 0xc], esi
mov esi, ebx
mov dword [esp + 0x2e4], ebx
mov dword [esp + 0x30], ebx
xor ecx, edx
mov edx, eax
shld esi, eax, 0xe
shld edx, ebx, 0x12
xor ecx, edx
mov edx, eax
shld edx, ebx, 0x17
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
xor edx, esi
mov esi, ebx
shld esi, eax, 0x12
mov eax, dword [esp + 0x10]
xor edx, esi
mov esi, dword [esp + 0x24]
xor edi, ecx
and edi, dword [esp + 8]
mov dword [esp + 0x300], eax
mov eax, dword [esp + 0xc]
xor edi, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x3c]
xor esi, eax
and esi, ebx
mov ebx, dword [esp + 0x48]
xor esi, eax
mov eax, dword [esp + 0x38]
or ebx, 0x20
add eax, dword [ebx + 0xb6af60]
adc ecx, dword [ebx + 0xb6af64]
add eax, dword [esp + ebx + 0x60]
adc ecx, dword [esp + ebx + 0x64]
add eax, edi
mov ebx, dword [esp + 0xc]
adc ecx, esi
add eax, edx
mov edx, ebx
mov edi, ebx
adc ecx, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, ebx
shld edx, eax, 0x19
mov esi, eax
shld ecx, eax, 0x1e
shld esi, ebx, 0x19
xor edx, ecx
mov ecx, eax
shld ecx, ebx, 4
xor edx, ecx
mov ecx, eax
shld ecx, ebx, 0x1e
xor esi, ecx
mov ecx, ebx
shld ecx, eax, 4
xor esi, ecx
mov ecx, dword [esp + 0x34]
or ebx, ecx
and edi, ecx
mov ecx, dword [esp + 4]
and ebx, dword [esp + 0x2c]
or ebx, edi
mov edi, eax
mov dword [esp + 0x20], ebx
mov ebx, eax
and edi, ecx
mov eax, dword [esp + 0x18]
or ebx, ecx
mov ecx, dword [esp + 0x44]
and ebx, dword [esp + 0x14]
or ebx, edi
mov edi, dword [esp + 0x40]
add ebx, esi
mov esi, dword [esp + 0x20]
adc esi, edx
mov edx, dword [esp + 0x38]
add eax, edx
adc ecx, edi
add ebx, edx
mov edx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x318], eax
adc esi, edi
mov edi, ecx
shld edx, ecx, 0xe
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2f8], ebx
mov ebx, dword [esp + 0x28]
shld edi, eax, 0x17
mov dword [esp + 0x20], esi
mov dword [esp + 0x2fc], esi
mov esi, dword [esp + 0x30]
xor edi, edx
mov edx, eax
shld edx, ecx, 0x12
xor edi, edx
mov edx, ecx
mov dword [esp + 0x40], edi
mov edi, eax
shld edx, eax, 0xe
shld edi, ecx, 0x17
xor edi, edx
mov edx, ecx
shld edx, eax, 0x12
mov eax, dword [esp + 0x24]
xor edi, edx
mov edx, dword [esp + 8]
xor esi, eax
xor edx, dword [esp + 0x1c]
and esi, ecx
mov ecx, dword [esp + 0x48]
xor esi, eax
mov eax, dword [esp + 0x3c]
and edx, dword [esp + 0x18]
or ecx, 0x28
xor edx, dword [esp + 0x1c]
add ebx, dword [ecx + 0xb6af60]
adc eax, dword [ecx + 0xb6af64]
add ebx, dword [esp + ecx + 0x60]
adc eax, dword [esp + ecx + 0x64]
add ebx, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0xc]
adc ecx, esi
add eax, edi
mov edi, dword [esp + 0x20]
mov esi, edx
adc ecx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, edi
shld esi, edi, 0x19
mov dword [esp + 0x3c], ecx
mov ecx, edi
shld eax, edx, 0x1e
shld ecx, edx, 0x19
xor ecx, eax
mov eax, edx
shld eax, edi, 4
xor ecx, eax
mov eax, edx
shld eax, edi, 0x1e
xor esi, eax
mov eax, edi
shld eax, edx, 4
xor esi, eax
mov eax, edi
or edi, ebx
and eax, ebx
and edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
or edi, eax
mov eax, edx
or edx, ebx
and edx, dword [esp + 4]
and eax, ebx
mov ebx, dword [esp + 0x3c]
or edx, eax
mov eax, dword [esp + 0x28]
add edx, esi
mov esi, dword [esp + 0x2c]
adc edi, ecx
mov ecx, dword [esp + 0x14]
add ecx, eax
adc esi, ebx
add edx, eax
mov eax, ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], edx
mov edx, esi
adc edi, ebx
shld eax, esi, 0xe
mov ebx, ecx
mov dword [esp + 0x314], esi
mov dword [esp + 0x2c], esi
shld edx, ecx, 0x17
shld ebx, esi, 0x17
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2f4], edi
mov edi, dword [esp + 0x44]
xor edx, eax
mov eax, ecx
shld eax, esi, 0x12
xor edx, eax
mov eax, esi
shld eax, ecx, 0xe
mov dword [esp + 0x40], edx
mov edx, ecx
xor edi, dword [esp + 0x30]
xor ebx, eax
mov eax, esi
shld eax, ecx, 0x12
mov ecx, dword [esp + 0x18]
xor ebx, eax
mov eax, dword [esp + 0x28]
and edi, esi
mov esi, dword [esp + 0x1c]
xor edi, dword [esp + 0x30]
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 8]
xor ecx, eax
and ecx, edx
mov edx, dword [esp + 0x48]
xor ecx, eax
mov eax, dword [esp + 0x24]
or edx, 0x30
add esi, dword [edx + 0xb6af60]
adc eax, dword [edx + 0xb6af64]
add esi, dword [esp + edx + 0x60]
adc eax, dword [esp + edx + 0x64]
add esi, ecx
mov edx, esi
adc eax, edi
add edx, ebx
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
adc eax, dword [esp + 0x40]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov esi, edi
mov dword [esp + 0x24], eax
mov eax, ebx
shld ecx, edi, 0x19
shld esi, ebx, 0x19
shld eax, edi, 0x1e
xor ecx, eax
mov eax, edi
shld eax, ebx, 4
xor ecx, eax
mov eax, edi
shld eax, ebx, 0x1e
xor esi, eax
mov eax, ebx
shld eax, edi, 4
xor esi, eax
mov eax, ebx
or ebx, edx
and ebx, dword [esp + 0xc]
and eax, edx
mov edx, edi
mov edi, dword [esp + 0x28]
or ebx, eax
mov eax, dword [esp + 0x38]
or edi, eax
and edx, eax
mov eax, dword [esp + 0x1c]
and edi, dword [esp + 0x10]
or edi, edx
mov edx, dword [esp + 0x24]
add edi, esi
mov esi, dword [esp + 0x34]
adc ebx, ecx
mov ecx, dword [esp + 4]
add ecx, eax
adc esi, edx
add edi, eax
mov eax, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x308], ecx
adc ebx, edx
mov edx, esi
shld eax, esi, 0xe
mov dword [esp + 0x30c], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x2e8], edi
shld edx, ecx, 0x17
mov dword [esp + 0x2ec], ebx
xor edx, eax
mov eax, ecx
shld eax, esi, 0x12
xor edx, eax
mov eax, esi
mov dword [esp + 0x1c], edx
mov edx, ecx
shld eax, ecx, 0xe
shld edx, esi, 0x17
xor edx, eax
mov eax, esi
shld eax, ecx, 0x12
mov ecx, dword [esp + 0x14]
xor edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
xor ecx, eax
and ecx, dword [esp + 4]
xor edx, dword [esp + 0x44]
xor ecx, eax
mov eax, dword [esp + 0x48]
and edx, esi
mov esi, dword [esp + 8]
xor edx, dword [esp + 0x44]
or eax, 0x38
add esi, dword [eax + 0xb6af60]
mov dword [esp + 0x40], edx
mov dword [esp + 8], esi
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 8]
adc esi, dword [eax + 0xb6af64]
add edx, dword [esp + eax + 0x60]
mov dword [esp + 8], edx
adc esi, dword [esp + eax + 0x64]
mov eax, dword [esp + 8]
add eax, ecx
mov ecx, ebx
adc esi, dword [esp + 0x40]
add eax, dword [esp + 0x24]
mov dword [esp + 0x24], ebx
mov edx, esi
mov dword [esp + 0x48], eax
mov eax, ebx
mov esi, edi
adc edx, dword [esp + 0x1c]
shld eax, edi, 0x1e
shld ecx, edi, 0x19
shld esi, ebx, 0x19
mov dword [esp + 0x1c], edi
xor ecx, eax
mov eax, edi
shld eax, ebx, 4
xor ecx, eax
mov eax, edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x3c]
shld eax, ebx, 0x1e
xor esi, eax
mov eax, ebx
shld eax, edi, 4
xor esi, eax
mov eax, ebx
or ebx, edx
and eax, edx
mov edx, dword [esp + 0x28]
and ebx, dword [esp + 0x20]
or ebx, eax
mov eax, edi
or edi, edx
and edi, dword [esp + 0x38]
and eax, edx
mov edx, dword [esp + 0x48]
or edi, eax
mov eax, dword [esp + 0xc]
add edi, esi
mov esi, dword [esp + 0x10]
adc ebx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebx
add esi, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x300], esi
mov esi, dword [esp + 0x4c]
adc eax, ecx
add edi, edx
adc ebx, ecx
mov dword [esp + 0x304], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 0x2e0], edi
mov dword [esp + 0x2e4], ebx
add esi, 8
cmp esi, 0x50
mov dword [esp + 0x4c], esi
jb 0x9696ff
mov dword [esp + 0x50], edx
mov eax, dword [ebp + 8]
mov edx, dword [esp + 8]
mov dword [esp + 0x54], ecx
add dword [eax + 0x10], edx
adc dword [eax + 0x14], ebx
mov edx, dword [esp + 0x1c]
add dword [eax + 0x18], edx
mov edx, dword [esp + 0x24]
adc dword [eax + 0x1c], edx
mov edx, dword [esp + 0x28]
add dword [eax + 0x20], edx
mov edx, dword [esp + 0x3c]
adc dword [eax + 0x24], edx
mov edx, dword [esp + 0x38]
add dword [eax + 0x28], edx
mov edx, dword [esp + 0x20]
adc dword [eax + 0x2c], edx
mov ecx, dword [esp + 0x10]
add dword [eax + 0x30], ecx
mov ecx, dword [esp + 0xc]
adc dword [eax + 0x34], ecx
mov ecx, dword [esp + 4]
add dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x34]
adc dword [eax + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add dword [eax + 0x40], ecx
mov ecx, dword [esp + 0x2c]
adc dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x18]
add dword [eax + 0x48], ecx
mov ecx, dword [esp + 0x44]
adc dword [eax + 0x4c], ecx
lea eax, [esp + 0x50]
push 0x2d0
push eax
call fcn.00965b40
add esp, 8
mov ecx, dword [esp + 0x320]
xor ecx, ebp
call fcn.00989fe9
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret