Function at 0x401830
Capabilities:
Encode data using xor

Disassembly:
pushal
sub esp, 0x2cc
mov esi, 0x4057ec
mov edi, 0x405760
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
xor esi, esi
mov eax, dword [edi + esi*8]
mov edx, dword [edi + esi*8 + 4]
mov ebx, dword [edi + esi*8 + 8]
mov ecx, dword [edi + esi*8 + 0xc]
bswap eax
bswap edx
bswap ebx
bswap ecx
mov dword [esp + esi*8 + 0x4c], edx
mov dword [esp + esi*8 + 0x50], eax
mov dword [esp + esi*8 + 0x54], ecx
mov dword [esp + esi*8 + 0x58], ebx
add esi, 2
cmp esi, 0x10
jne 0x4018b1
mov dword [esp + 0x40], esi
mov edi, dword [esp + 0x40]
lea esi, [edi - 2]
mov eax, dword [esp + esi*8 + 0x4c]
mov edx, dword [esp + esi*8 + 0x50]
mov ebx, eax
mov ecx, edx
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x13
shrd edx, ebp, 0x13
shld ebx, ecx, 3
shld ecx, ebp, 3
shrd esi, edi, 6
shr edi, 6
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov edi, dword [esp + 0x40]
lea esi, [edi - 7]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + edi*8 + 0x4c], eax
mov dword [esp + edi*8 + 0x50], edx
mov edi, dword [esp + 0x40]
lea esi, [edi - 0xf]
mov eax, dword [esp + esi*8 + 0x4c]
mov edx, dword [esp + esi*8 + 0x50]
mov ebx, eax
mov ecx, edx
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 1
shrd edx, ebp, 1
shrd ebx, ecx, 8
shrd ecx, ebp, 8
shrd esi, edi, 7
shr edi, 7
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov edi, dword [esp + 0x40]
lea esi, [edi - 0x10]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
add dword [esp + edi*8 + 0x4c], eax
adc dword [esp + edi*8 + 0x50], edx
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 0x50
jne 0x4018e4
xor edx, edx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
xor ebx, dword [esp + 0x30]
xor ecx, dword [esp + 0x34]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 0x30]
xor edi, dword [esp + 0x34]
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 0
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
or ebx, dword [esp + 8]
or ecx, dword [esp + 0xc]
and ebx, dword [esp + 0x10]
and ecx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
and esi, dword [esp]
and edi, dword [esp + 4]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
add dword [esp + 0x18], esi
adc dword [esp + 0x1c], edi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
xor ebx, dword [esp + 0x28]
xor ecx, dword [esp + 0x2c]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 0x28]
xor edi, dword [esp + 0x2c]
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 1
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
or ebx, dword [esp]
or ecx, dword [esp + 4]
and ebx, dword [esp + 8]
and ecx, dword [esp + 0xc]
mov esi, dword [esp]
mov edi, dword [esp + 4]
and esi, dword [esp + 0x38]
and edi, dword [esp + 0x3c]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
add dword [esp + 0x10], esi
adc dword [esp + 0x14], edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
xor ebx, dword [esp + 0x20]
xor ecx, dword [esp + 0x24]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 0x20]
xor edi, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 2
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
or ebx, dword [esp + 0x38]
or ecx, dword [esp + 0x3c]
and ebx, dword [esp]
and ecx, dword [esp + 4]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
and esi, dword [esp + 0x30]
and edi, dword [esp + 0x34]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
add dword [esp + 8], esi
adc dword [esp + 0xc], edi
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
xor ebx, dword [esp + 0x18]
xor ecx, dword [esp + 0x1c]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 0x18]
xor edi, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 3
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
or ebx, dword [esp + 0x30]
or ecx, dword [esp + 0x34]
and ebx, dword [esp + 0x38]
and ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
and esi, dword [esp + 0x28]
and edi, dword [esp + 0x2c]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
add dword [esp], esi
adc dword [esp + 4], edi
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp]
mov edi, dword [esp + 4]
xor ebx, dword [esp + 0x10]
xor ecx, dword [esp + 0x14]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 0x10]
xor edi, dword [esp + 0x14]
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 4
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
or ebx, dword [esp + 0x28]
or ecx, dword [esp + 0x2c]
and ebx, dword [esp + 0x30]
and ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
and esi, dword [esp + 0x20]
and edi, dword [esp + 0x24]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
add dword [esp + 0x38], esi
adc dword [esp + 0x3c], edi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
xor ebx, dword [esp + 8]
xor ecx, dword [esp + 0xc]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 8]
xor edi, dword [esp + 0xc]
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 5
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
or ebx, dword [esp + 0x20]
or ecx, dword [esp + 0x24]
and ebx, dword [esp + 0x28]
and ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
and esi, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
add dword [esp + 0x30], esi
adc dword [esp + 0x34], edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
xor ebx, dword [esp]
xor ecx, dword [esp + 4]
and esi, ebx
and edi, ecx
xor esi, dword [esp]
xor edi, dword [esp + 4]
add eax, dword [esp + 8]
adc edx, dword [esp + 0xc]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 6
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
or ebx, dword [esp + 0x18]
or ecx, dword [esp + 0x1c]
and ebx, dword [esp + 0x20]
and ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
and esi, dword [esp + 0x10]
and edi, dword [esp + 0x14]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
add dword [esp + 0x28], esi
adc dword [esp + 0x2c], edi
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0xe
shrd edx, ebp, 0xe
shrd ebx, ecx, 0x12
shrd ecx, ebp, 0x12
shld esi, edi, 0x17
shld edi, ebp, 0x17
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
xor ebx, dword [esp + 0x38]
xor ecx, dword [esp + 0x3c]
and esi, ebx
and edi, ecx
xor esi, dword [esp + 0x38]
xor edi, dword [esp + 0x3c]
add eax, dword [esp]
adc edx, dword [esp + 4]
add eax, esi
adc edx, edi
mov esi, dword [esp + 0x40]
shl esi, 3
add esi, 7
add eax, dword [esi*8 + 0x405080]
adc edx, dword [esi*8 + 0x405084]
add eax, dword [esp + esi*8 + 0x4c]
adc edx, dword [esp + esi*8 + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, eax
mov edi, edx
mov ebx, eax
mov ecx, edx
push ebp
mov ebp, eax
shrd eax, edx, 0x1c
shrd edx, ebp, 0x1c
shld ebx, ecx, 0x1e
shld ecx, ebp, 0x1e
shld esi, edi, 0x19
shld edi, ebp, 0x19
pop ebp
xor eax, ebx
xor edx, ecx
xor eax, esi
xor edx, edi
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
or ebx, dword [esp + 0x10]
or ecx, dword [esp + 0x14]
and ebx, dword [esp + 0x18]
and ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
and esi, dword [esp + 8]
and edi, dword [esp + 0xc]
or ebx, esi
or ecx, edi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add eax, ebx
adc edx, ecx
add eax, esi
adc edx, edi
mov dword [esp], eax
mov dword [esp + 4], edx
add dword [esp + 0x20], esi
adc dword [esp + 0x24], edi
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 0xa
jne 0x4019a3
mov eax, dword [esp]
mov edx, dword [esp + 4]
add dword [0x4057ec], eax
adc dword [0x4057f0], edx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
add dword [0x4057f4], eax
adc dword [0x4057f8], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add dword [0x4057fc], eax
adc dword [0x405800], edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add dword [0x405804], eax
adc dword [0x405808], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add dword [0x40580c], eax
adc dword [0x405810], edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add dword [0x405814], eax
adc dword [0x405818], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add dword [0x40581c], eax
adc dword [0x405820], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add dword [0x405824], eax
adc dword [0x405828], edx
add esp, 0x2cc
popal
ret