Function at 0x406050
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e0
mov eax, dword [0x424064]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x2e0], ecx
mov dword [ebp - 0x2a8], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x2b4], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x2b8], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x29c], ecx
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x2ac], ecx
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x2c0], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x2c4], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x28c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x288], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x2a4], ecx
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x294], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x298], ecx
mov ecx, dword [eax + 0x3c]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x2a0], ecx
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x2d8], eax
mov eax, dword [eax + 0x44]
xor ebx, ebx
mov dword [ebp - 0x2dc], edx
mov dword [ebp - 0x2bc], edx
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x2b0], eax
add edi, 2
movzx eax, byte [edi - 2]
cdq
mov ecx, eax
movzx eax, byte [edi - 1]
mov esi, edx
shld esi, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi]
or esi, edx
shld esi, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 1]
or esi, edx
shld esi, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 2]
or esi, edx
shld esi, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 3]
or esi, edx
shld esi, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 4]
or esi, edx
shld esi, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [edi + 5]
or esi, edx
shld esi, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or esi, edx
mov dword [ebp + ebx*8 - 0x284], ecx
mov dword [ebp + ebx*8 - 0x280], esi
inc ebx
lea edi, [edi + 8]
cmp ebx, 0x10
jl 0x406113
lea eax, [ebp - 0x214]
mov dword [ebp - 0x2d0], 0x40
mov esi, dword [eax - 0x68]
mov ebx, dword [eax - 0x64]
mov ecx, esi
shl ecx, 0x18
mov dword [ebp - 0x2c8], ecx
mov ecx, esi
mov edx, ebx
shrd ecx, edx, 8
shr edx, 8
or dword [ebp - 0x2c8], edx
xor edi, edi
or edi, ecx
mov ecx, dword [eax - 0x68]
mov edx, ebx
shrd ecx, edx, 1
shr edx, 1
mov dword [ebp - 0x2cc], edi
mov edi, esi
xor esi, esi
or esi, ecx
mov ecx, dword [eax - 0x68]
shrd ecx, ebx, 7
shl edi, 0x1f
or edi, edx
mov edx, dword [ebp - 0x2cc]
xor edx, esi
mov esi, dword [ebp - 0x2c8]
xor edx, ecx
mov ecx, dword [eax]
xor esi, edi
shr ebx, 7
xor esi, ebx
mov dword [ebp - 0x2cc], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x2c8], esi
mov esi, ecx
shrd ecx, edx, 0x13
shr edx, 0x13
xor ebx, ebx
or ebx, ecx
mov ecx, dword [eax]
shl esi, 0xd
or esi, edx
mov edx, dword [eax + 4]
mov edi, edx
shld edx, ecx, 3
shl ecx, 3
mov dword [ebp - 0x2d4], esi
xor esi, esi
or esi, edx
mov edx, dword [eax + 4]
shr edi, 0x1d
or edi, ecx
mov ecx, dword [ebp - 0x2d4]
xor ecx, esi
mov esi, dword [eax]
shrd esi, edx, 6
xor ebx, edi
shr edx, 6
xor ebx, esi
xor ecx, edx
mov edx, dword [ebp - 0x2cc]
add edx, ebx
mov ebx, dword [ebp - 0x2c8]
adc ebx, ecx
add edx, dword [eax - 0x70]
adc ebx, dword [eax - 0x6c]
add edx, dword [eax - 0x28]
adc ebx, dword [eax - 0x24]
dec dword [ebp - 0x2d0]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ebx
lea eax, [eax + 8]
jne 0x4061b6
xor eax, eax
mov dword [ebp - 0x2c8], eax
lea esp, [esp]
mov ecx, dword [ebp - 0x288]
mov eax, dword [ebp - 0x28c]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x288]
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x28c]
mov esi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
shl esi, 0xe
or esi, ecx
mov ecx, dword [ebp - 0x288]
xor edi, esi
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x28c]
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x298]
xor ecx, dword [ebp - 0x2a4]
xor ebx, edx
and ecx, dword [ebp - 0x28c]
xor edx, edx
xor ecx, dword [ebp - 0x298]
or edx, eax
mov eax, dword [ebp - 0x2a0]
xor eax, dword [ebp - 0x294]
xor edi, esi
and eax, dword [ebp - 0x288]
xor ebx, edx
xor eax, dword [ebp - 0x2a0]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2bc]
add ebx, dword [eax + 0x41c3b0]
adc edi, dword [eax + 0x41c3b4]
add ebx, dword [ebp + eax - 0x284]
adc edi, dword [ebp + eax - 0x280]
add ebx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x2a8]
adc edi, dword [ebp - 0x2b0]
add dword [ebp - 0x2c0], ebx
mov edx, eax
adc dword [ebp - 0x2c4], edi
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x2a8]
shr ecx, 0x1c
shl edx, 4
or edx, ecx
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x290], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [ebp - 0x2b0], edx
shr esi, 2
shl eax, 0x1e
or esi, eax
xor dword [ebp - 0x290], esi
mov eax, dword [ebp - 0x2a8]
xor edx, edx
or edx, ecx
mov ecx, dword [ebp - 0x2bc]
xor dword [ebp - 0x2b0], edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
xor edx, edx
or esi, eax
or edx, ecx
xor dword [ebp - 0x290], esi
xor dword [ebp - 0x2b0], edx
mov ecx, dword [ebp - 0x2b4]
mov eax, dword [ebp - 0x2b8]
mov esi, ecx
and ecx, dword [ebp - 0x2a8]
or esi, dword [ebp - 0x2a8]
mov edx, eax
and eax, dword [ebp - 0x2bc]
or edx, dword [ebp - 0x2bc]
and esi, dword [ebp - 0x29c]
and edx, dword [ebp - 0x2ac]
or esi, ecx
mov ecx, dword [ebp - 0x290]
or edx, eax
mov eax, dword [ebp - 0x2b0]
add ecx, esi
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x290], ecx
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2c0]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x2c4]
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x2c0]
mov esi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x2c0]
shl esi, 0xe
or esi, ecx
mov ecx, dword [ebp - 0x2c4]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
xor ebx, edx
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2a4]
xor ecx, dword [ebp - 0x28c]
xor edx, edx
and ecx, dword [ebp - 0x2c0]
or edx, eax
xor ecx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x294]
xor eax, dword [ebp - 0x288]
xor edi, esi
and eax, dword [ebp - 0x2c4]
xor ebx, edx
xor eax, dword [ebp - 0x294]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2b0]
add ebx, dword [eax + 0x41c3b8]
adc edi, dword [eax + 0x41c3bc]
add ebx, dword [ebp + eax - 0x27c]
adc edi, dword [ebp + eax - 0x278]
add ebx, dword [ebp - 0x298]
mov eax, dword [ebp - 0x290]
adc edi, dword [ebp - 0x2a0]
add dword [ebp - 0x29c], ebx
mov edx, eax
adc dword [ebp - 0x2ac], edi
shrd eax, ecx, 0x1c
xor esi, esi
shl edx, 4
shr ecx, 0x1c
or esi, eax
mov dword [ebp - 0x298], esi
or edx, ecx
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x290]
mov esi, ecx
shld ecx, eax, 0x1e
shl eax, 0x1e
shr esi, 2
or esi, eax
xor dword [ebp - 0x298], esi
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x2a0], edx
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2a0], edx
mov ecx, dword [ebp - 0x2b0]
mov esi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr esi, 7
or esi, eax
xor dword [ebp - 0x298], esi
mov eax, dword [ebp - 0x2bc]
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2a0], edx
mov ecx, dword [ebp - 0x2a8]
mov esi, ecx
and ecx, dword [ebp - 0x290]
or esi, dword [ebp - 0x290]
mov edx, eax
and eax, dword [ebp - 0x2b0]
or edx, dword [ebp - 0x2b0]
and esi, dword [ebp - 0x2b4]
and edx, dword [ebp - 0x2b8]
or esi, ecx
mov ecx, dword [ebp - 0x298]
or edx, eax
mov eax, dword [ebp - 0x2a0]
add ecx, esi
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x298], ecx
mov ecx, dword [ebp - 0x2ac]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x29c]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x29c]
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x2ac]
mov esi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
shl esi, 0xe
or esi, ecx
mov ecx, dword [ebp - 0x2ac]
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x29c]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
xor ebx, edx
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2c0]
xor ecx, dword [ebp - 0x28c]
xor edx, edx
and ecx, dword [ebp - 0x29c]
or edx, eax
mov eax, dword [ebp - 0x2c4]
xor eax, dword [ebp - 0x288]
xor ebx, edx
xor edi, esi
and eax, dword [ebp - 0x2ac]
xor eax, dword [ebp - 0x288]
xor ecx, dword [ebp - 0x28c]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2a0]
add ebx, dword [eax + 0x41c3c0]
adc edi, dword [eax + 0x41c3c4]
add ebx, dword [ebp + eax - 0x274]
adc edi, dword [ebp + eax - 0x270]
add ebx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x298]
adc edi, dword [ebp - 0x294]
add dword [ebp - 0x2b4], ebx
mov edx, eax
adc dword [ebp - 0x2b8], edi
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x298]
shr ecx, 0x1c
shl edx, 4
or edx, ecx
mov ecx, dword [ebp - 0x2a0]
mov dword [ebp - 0x2a4], esi
mov esi, ecx
shld ecx, eax, 0x1e
shl eax, 0x1e
shr esi, 2
or esi, eax
xor dword [ebp - 0x2a4], esi
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x294], edx
xor edx, edx
or edx, ecx
xor dword [ebp - 0x294], edx
mov ecx, dword [ebp - 0x2a0]
mov esi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr esi, 7
or esi, eax
xor dword [ebp - 0x2a4], esi
mov eax, dword [ebp - 0x2b0]
xor edx, edx
or edx, ecx
xor dword [ebp - 0x294], edx
mov ecx, dword [ebp - 0x290]
mov esi, ecx
or esi, dword [ebp - 0x298]
and ecx, dword [ebp - 0x298]
and esi, dword [ebp - 0x2a8]
mov edx, eax
and eax, dword [ebp - 0x2a0]
or edx, dword [ebp - 0x2a0]
or esi, ecx
and edx, dword [ebp - 0x2bc]
mov ecx, dword [ebp - 0x2a4]
or edx, eax
mov eax, dword [ebp - 0x294]
add ecx, esi
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x2a4], ecx
mov ecx, dword [ebp - 0x2b8]
mov dword [ebp - 0x294], eax
mov eax, dword [ebp - 0x2b4]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x2b4]
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x2b8]
mov esi, eax
xor edx, edx
shl esi, 0xe
shrd eax, ecx, 0x12
or edx, eax
mov eax, dword [ebp - 0x2b4]
shr ecx, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2b8]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2c0]
xor ecx, dword [ebp - 0x29c]
xor ebx, edx
and ecx, dword [ebp - 0x2b4]
xor edx, edx
xor ecx, dword [ebp - 0x2c0]
or edx, eax
mov eax, dword [ebp - 0x2c4]
xor eax, dword [ebp - 0x2ac]
xor edi, esi
and eax, dword [ebp - 0x2b8]
xor ebx, edx
xor eax, dword [ebp - 0x2c4]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x294]
add ebx, dword [eax + 0x41c3c8]
adc edi, dword [eax + 0x41c3cc]
add ebx, dword [ebp + eax - 0x26c]
adc edi, dword [ebp + eax - 0x268]
add ebx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x2a4]
adc edi, dword [ebp - 0x288]
add dword [ebp - 0x2a8], ebx
mov edx, eax
adc dword [ebp - 0x2bc], edi
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x2a4]
shl edx, 4
shr ecx, 0x1c
or edx, ecx
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x28c], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [ebp - 0x288], edx
shr esi, 2
xor edx, edx
or edx, ecx
mov ecx, dword [ebp - 0x294]
xor dword [ebp - 0x288], edx
shl eax, 0x1e
or esi, eax
xor dword [ebp - 0x28c], esi
mov eax, dword [ebp - 0x2a4]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
or edx, ecx
xor dword [ebp - 0x288], edx
mov ecx, dword [ebp - 0x298]
shl eax, 0x19
or esi, eax
xor dword [ebp - 0x28c], esi
mov eax, dword [ebp - 0x2a0]
mov esi, ecx
or esi, dword [ebp - 0x2a4]
and ecx, dword [ebp - 0x2a4]
and esi, dword [ebp - 0x290]
mov edx, eax
or edx, dword [ebp - 0x294]
and eax, dword [ebp - 0x294]
and edx, dword [ebp - 0x2b0]
or esi, ecx
mov ecx, dword [ebp - 0x28c]
or edx, eax
add ecx, esi
mov eax, dword [ebp - 0x288]
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x28c], ecx
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x2a8]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x2bc]
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x2a8]
mov esi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
shl esi, 0xe
or esi, ecx
mov ecx, dword [ebp - 0x2bc]
xor edi, esi
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x2a8]
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
xor ebx, edx
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x29c]
xor ecx, dword [ebp - 0x2b4]
xor edx, edx
and ecx, dword [ebp - 0x2a8]
or edx, eax
xor ecx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x2ac]
xor eax, dword [ebp - 0x2b8]
xor edi, esi
and eax, dword [ebp - 0x2bc]
xor ebx, edx
xor eax, dword [ebp - 0x2ac]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x288]
add ebx, dword [eax + 0x41c3d0]
adc edi, dword [eax + 0x41c3d4]
add ebx, dword [ebp + eax - 0x264]
adc edi, dword [ebp + eax - 0x260]
add ebx, dword [ebp - 0x2c0]
mov eax, dword [ebp - 0x28c]
adc edi, dword [ebp - 0x2c4]
add dword [ebp - 0x290], ebx
mov edx, eax
adc dword [ebp - 0x2b0], edi
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x28c]
shr ecx, 0x1c
shl edx, 4
or edx, ecx
mov ecx, dword [ebp - 0x288]
mov dword [ebp - 0x2c0], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [ebp - 0x2c4], edx
shr esi, 2
xor edx, edx
shl eax, 0x1e
or esi, eax
xor dword [ebp - 0x2c0], esi
or edx, ecx
mov ecx, dword [ebp - 0x288]
xor dword [ebp - 0x2c4], edx
mov esi, ecx
mov eax, dword [ebp - 0x28c]
shld ecx, eax, 0x19
shl eax, 0x19
shr esi, 7
or esi, eax
xor dword [ebp - 0x2c0], esi
mov eax, dword [ebp - 0x294]
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2c4], edx
mov ecx, dword [ebp - 0x2a4]
mov esi, ecx
and ecx, dword [ebp - 0x28c]
or esi, dword [ebp - 0x28c]
mov edx, eax
and eax, dword [ebp - 0x288]
or edx, dword [ebp - 0x288]
and esi, dword [ebp - 0x298]
and edx, dword [ebp - 0x2a0]
or esi, ecx
mov ecx, dword [ebp - 0x2c0]
or edx, eax
mov eax, dword [ebp - 0x2c4]
add ecx, esi
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x2c0], ecx
mov ecx, dword [ebp - 0x2b0]
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x290]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x2b0]
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x290]
mov esi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x290]
shl esi, 0xe
or esi, ecx
mov ecx, dword [ebp - 0x2b0]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
xor ebx, edx
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2b4]
xor ecx, dword [ebp - 0x2a8]
xor edx, edx
and ecx, dword [ebp - 0x290]
or edx, eax
mov eax, dword [ebp - 0x2b8]
xor eax, dword [ebp - 0x2bc]
xor ecx, dword [ebp - 0x2b4]
and eax, dword [ebp - 0x2b0]
xor edi, esi
xor eax, dword [ebp - 0x2b8]
xor ebx, edx
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
add ebx, dword [eax + 0x41c3d8]
adc edi, dword [eax + 0x41c3dc]
add ebx, dword [ebp + eax - 0x25c]
adc edi, dword [ebp + eax - 0x258]
add ebx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x2c0]
adc edi, dword [ebp - 0x2ac]
add dword [ebp - 0x298], ebx
mov edx, eax
adc dword [ebp - 0x2a0], edi
mov ecx, dword [ebp - 0x2c4]
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x2c0]
shr ecx, 0x1c
shl edx, 4
or edx, ecx
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x29c], esi
mov esi, ecx
shld ecx, eax, 0x1e
shl eax, 0x1e
shr esi, 2
or esi, eax
xor dword [ebp - 0x29c], esi
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2ac], edx
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2ac], edx
mov ecx, dword [ebp - 0x2c4]
mov esi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr esi, 7
or esi, eax
xor dword [ebp - 0x29c], esi
mov eax, dword [ebp - 0x2c4]
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2ac], edx
mov ecx, dword [ebp - 0x2c0]
mov esi, ecx
or esi, dword [ebp - 0x28c]
and ecx, dword [ebp - 0x28c]
and esi, dword [ebp - 0x2a4]
mov edx, eax
and eax, dword [ebp - 0x288]
or edx, dword [ebp - 0x288]
or esi, ecx
and edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x29c]
or edx, eax
mov eax, dword [ebp - 0x2ac]
add ecx, esi
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x29c], ecx
mov ecx, dword [ebp - 0x2a0]
mov dword [ebp - 0x2ac], eax
mov eax, dword [ebp - 0x298]
mov ebx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x298]
xor edi, edi
or edi, ecx
mov ecx, dword [ebp - 0x2a0]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2a0]
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x298]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
xor ebx, edx
xor edx, edx
shl esi, 0x12
shr ecx, 0xe
or edx, eax
or esi, ecx
xor ebx, edx
mov ecx, dword [ebp - 0x2a8]
xor ecx, dword [ebp - 0x290]
mov eax, dword [ebp - 0x2bc]
xor eax, dword [ebp - 0x2b0]
and ecx, dword [ebp - 0x298]
and eax, dword [ebp - 0x2a0]
xor ecx, dword [ebp - 0x2a8]
xor eax, dword [ebp - 0x2bc]
xor edi, esi
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2ac]
add ebx, dword [eax + 0x41c3e0]
adc edi, dword [eax + 0x41c3e4]
add ebx, dword [ebp + eax - 0x254]
adc edi, dword [ebp + eax - 0x250]
add ebx, dword [ebp - 0x2b4]
mov eax, dword [ebp - 0x29c]
adc edi, dword [ebp - 0x2b8]
add dword [ebp - 0x2a4], ebx
mov edx, eax
adc dword [ebp - 0x294], edi
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x29c]
shr ecx, 0x1c
shl edx, 4
or edx, ecx
mov ecx, dword [ebp - 0x2ac]
mov dword [ebp - 0x2b4], esi
mov esi, ecx
shld ecx, eax, 0x1e
shl eax, 0x1e
shr esi, 2
or esi, eax
xor dword [ebp - 0x2b4], esi
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x2b8], edx
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2b8], edx
mov ecx, dword [ebp - 0x2ac]
mov esi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr esi, 7
or esi, eax
xor dword [ebp - 0x2b4], esi
mov eax, dword [ebp - 0x2c4]
xor edx, edx
or edx, ecx
xor dword [ebp - 0x2b8], edx
mov ecx, dword [ebp - 0x2c0]
mov esi, ecx
or esi, dword [ebp - 0x29c]
and ecx, dword [ebp - 0x29c]
and esi, dword [ebp - 0x28c]
mov edx, eax
and eax, dword [ebp - 0x2ac]
or edx, dword [ebp - 0x2ac]
or esi, ecx
and edx, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x2b4]
or edx, eax
mov eax, dword [ebp - 0x2b8]
add ecx, esi
adc eax, edx
add ecx, ebx
adc eax, edi
mov dword [ebp - 0x2b4], ecx
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x2b8], eax
mov eax, dword [ebp - 0x2a4]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
xor edi, edi
or ebx, eax
mov eax, dword [ebp - 0x2a4]
or edi, ecx
mov ecx, dword [ebp - 0x294]
mov esi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
shl esi, 0xe
or esi, ecx
mov ecx, dword [ebp - 0x294]
xor edi, esi
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x2a4]
mov esi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
shl esi, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x290]
xor ecx, dword [ebp - 0x298]
xor ebx, edx
and ecx, dword [ebp - 0x2a4]
xor edx, edx
xor ecx, dword [ebp - 0x290]
or edx, eax
mov eax, dword [ebp - 0x2b0]
xor eax, dword [ebp - 0x2a0]
xor edi, esi
and eax, dword [ebp - 0x294]
xor ebx, edx
xor eax, dword [ebp - 0x2b0]
add ebx, ecx
adc edi, eax
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2b8]
add ebx, dword [eax + 0x41c3e8]
adc edi, dword [eax + 0x41c3ec]
add ebx, dword [ebp + eax - 0x24c]
adc edi, dword [ebp + eax - 0x248]
add ebx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x2b4]
adc edi, dword [ebp - 0x2bc]
add dword [ebp - 0x28c], ebx
mov edx, eax
adc dword [ebp - 0x288], edi
shrd eax, ecx, 0x1c
xor esi, esi
or esi, eax
mov eax, dword [ebp - 0x2b4]
shl edx, 4
shr ecx, 0x1c
or edx, ecx
mov ecx, dword [ebp - 0x2b8]
mov dword [ebp - 0x2a8], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [ebp - 0x2bc], edx
shr esi, 2
shl eax, 0x1e
or esi, eax
xor dword [ebp - 0x2a8], esi
mov eax, dword [ebp - 0x2b4]
xor edx, edx
or edx, ecx
mov ecx, dword [ebp - 0x2b8]
xor dword [ebp - 0x2bc], edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
shl eax, 0x19
or esi, eax
xor dword [ebp - 0x2a8], esi
mov eax, dword [ebp - 0x2ac]
or edx, ecx
mov ecx, dword [ebp - 0x29c]
xor dword [ebp - 0x2bc], edx
mov esi, ecx
or esi, dword [ebp - 0x2b4]
mov edx, eax
or edx, dword [ebp - 0x2b8]
and eax, dword [ebp - 0x2b8]
and esi, dword [ebp - 0x2c0]
and edx, dword [ebp - 0x2c4]
and ecx, dword [ebp - 0x2b4]
or edx, eax
mov eax, dword [ebp - 0x2a8]
or esi, ecx
add eax, esi
mov esi, dword [ebp - 0x2bc]
adc esi, edx
add eax, ebx
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2c8]
adc esi, edi
add eax, 0x40
mov dword [ebp - 0x2bc], esi
mov dword [ebp - 0x2c8], eax
cmp eax, 0x280
jl 0x4062b0
mov eax, dword [ebp - 0x2d8]
mov ecx, dword [ebp - 0x2e0]
add ecx, dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x2dc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x2b4]
adc edx, esi
mov dword [eax + 0xc], edx
add dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x2b8]
pop edi
adc dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x29c]
add dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x2ac]
pop esi
adc dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x2c0]
add dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x2c4]
pop ebx
adc dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x28c]
add dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x288]
adc dword [eax + 0x2c], ecx
mov ecx, dword [ebp - 0x2a4]
add dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x294]
adc dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0x298]
add dword [eax + 0x38], ecx
mov ecx, dword [ebp - 0x2a0]
adc dword [eax + 0x3c], ecx
mov ecx, dword [ebp - 0x290]
add dword [eax + 0x40], ecx
mov ecx, dword [ebp - 0x2b0]
adc dword [eax + 0x44], ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a558
mov esp, ebp
pop ebp
ret