Function at 0x406370
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x128
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov ch, byte [eax]
movzx edx, byte [eax + 2]
mov cl, byte [eax + 1]
shl ecx, 8
or ecx, edx
shl ecx, 8
movzx edx, byte [eax + 3]
or ecx, edx
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov ch, byte [eax + 4]
movzx edx, byte [eax + 6]
mov cl, byte [eax + 5]
shl ecx, 8
or ecx, edx
shl ecx, 8
movzx edx, byte [eax + 7]
or ecx, edx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov ch, byte [eax + 8]
movzx edx, byte [eax + 0xa]
mov cl, byte [eax + 9]
shl ecx, 8
or ecx, edx
shl ecx, 8
movzx edx, byte [eax + 0xb]
or ecx, edx
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov ch, byte [eax + 0xc]
movzx edx, byte [eax + 0xe]
mov cl, byte [eax + 0xd]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0xf]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov ch, byte [eax + 0x10]
movzx edx, byte [eax + 0x12]
mov cl, byte [eax + 0x11]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x13]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov ch, byte [eax + 0x14]
movzx edx, byte [eax + 0x16]
mov cl, byte [eax + 0x15]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x17]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x1a]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov ch, byte [eax + 0x18]
mov cl, byte [eax + 0x19]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x1b]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x1e]
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov ch, byte [eax + 0x1c]
mov cl, byte [eax + 0x1d]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x1f]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov ch, byte [eax + 0x20]
movzx edx, byte [eax + 0x22]
mov cl, byte [eax + 0x21]
shl ecx, 8
or ecx, edx
shl ecx, 8
movzx edx, byte [eax + 0x23]
or ecx, edx
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov ch, byte [eax + 0x24]
movzx edx, byte [eax + 0x26]
mov cl, byte [eax + 0x25]
shl ecx, 8
or ecx, edx
shl ecx, 8
movzx edx, byte [eax + 0x27]
or ecx, edx
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 0x28]
movzx edx, byte [eax + 0x2a]
mov cl, byte [eax + 0x29]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x2b]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x50], ecx
xor ecx, ecx
mov ch, byte [eax + 0x2c]
movzx edx, byte [eax + 0x2e]
mov cl, byte [eax + 0x2d]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x2f]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov ch, byte [eax + 0x30]
movzx edx, byte [eax + 0x32]
mov cl, byte [eax + 0x31]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x33]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x58], ecx
xor ecx, ecx
mov ch, byte [eax + 0x34]
movzx edx, byte [eax + 0x36]
mov cl, byte [eax + 0x35]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x37]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x3a]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov ch, byte [eax + 0x38]
mov cl, byte [eax + 0x39]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x3b]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 0x3e]
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov ch, byte [eax + 0x3c]
mov cl, byte [eax + 0x3d]
movzx eax, byte [eax + 0x3f]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
mov dword [esp + 0x64], ecx
push ebx
push ebp
push esi
lea eax, [esp + 0x38]
mov dword [esp + 0x20], 6
push edi
mov edx, dword [eax]
mov ecx, dword [eax + 0x34]
mov esi, edx
shr esi, 0x12
mov edi, edx
shl edi, 0xe
or esi, edi
mov edi, edx
mov ebx, edx
shr ebx, 7
mov ebp, dword [eax - 4]
shl edi, 0x19
or edi, ebx
xor esi, edi
shr edx, 3
xor esi, edx
mov edx, ecx
mov edi, ecx
mov ebx, ecx
shl ebx, 0xf
shr edx, 0x13
shl edi, 0xd
or edx, edi
mov edi, ecx
shr ecx, 0xa
shr edi, 0x11
or edi, ebx
xor edx, edi
xor edx, ecx
mov ecx, dword [eax + 0x20]
add esi, edx
mov edx, dword [eax + 4]
add esi, ebp
lea edi, [esi + ecx]
mov ecx, dword [eax + 0x38]
mov esi, ecx
mov ebx, ecx
shl ebx, 0xd
shr esi, 0x13
or esi, ebx
mov ebx, ecx
shr ebx, 0x11
mov ebp, ecx
shl ebp, 0xf
or ebx, ebp
xor esi, ebx
shr ecx, 0xa
xor esi, ecx
mov ecx, edx
shr ecx, 0x12
mov ebx, edx
shl ebx, 0xe
or ecx, ebx
mov ebx, edx
shl ebx, 0x19
mov ebp, edx
shr ebp, 7
or ebx, ebp
mov ebp, dword [eax + 0x24]
xor ecx, ebx
shr edx, 3
xor ecx, edx
add esi, ecx
mov ecx, dword [eax]
add esi, ebp
lea edx, [esi + ecx]
mov ecx, dword [eax + 8]
mov esi, edi
mov ebx, edi
shl ebx, 0xd
shr esi, 0x13
or esi, ebx
mov ebx, edi
shr ebx, 0x11
mov ebp, edi
shl ebp, 0xf
or ebx, ebp
xor esi, ebx
mov dword [eax + 0x3c], edi
mov dword [eax + 0x40], edx
mov ebx, edi
mov ebp, ecx
shr ebx, 0xa
xor esi, ebx
mov ebx, ecx
shl ebp, 0xe
shr ebx, 0x12
or ebx, ebp
mov ebp, ecx
shr ecx, 7
shl ebp, 0x19
or ebp, ecx
mov ecx, dword [eax + 8]
xor ebx, ebp
shr ecx, 3
xor ebx, ecx
mov ecx, dword [eax + 4]
add esi, ebx
add esi, dword [eax + 0x28]
add esi, ecx
mov ebx, edx
shr ebx, 0x13
mov ecx, edx
shl ecx, 0xd
or ebx, ecx
mov ecx, edx
shr ecx, 0x11
mov ebp, edx
shl ebp, 0xf
or ecx, ebp
xor ebx, ecx
mov ecx, dword [eax + 0xc]
mov ebp, ecx
shr edx, 0xa
xor ebx, edx
mov edx, ecx
shl ebp, 0xe
shr edx, 0x12
or edx, ebp
mov ebp, ecx
shr ecx, 7
shl ebp, 0x19
or ebp, ecx
mov ecx, dword [eax + 0xc]
shr ecx, 3
xor edx, ebp
xor edx, ecx
mov ecx, dword [eax + 8]
add ebx, edx
add ebx, dword [eax + 0x2c]
lea edx, [ebx + ecx]
mov ebx, esi
mov ecx, esi
shl ecx, 0xd
shr ebx, 0x13
or ebx, ecx
mov ecx, esi
mov ebp, esi
shl ebp, 0xf
shr ecx, 0x11
or ecx, ebp
mov dword [eax + 0x44], esi
xor ebx, ecx
mov ecx, dword [eax + 0x10]
shr esi, 0xa
xor ebx, esi
mov esi, ecx
mov ebp, ecx
shl ebp, 0xe
shr esi, 0x12
or esi, ebp
mov ebp, ecx
shr ecx, 7
shl ebp, 0x19
or ebp, ecx
mov ecx, dword [eax + 0x10]
xor esi, ebp
shr ecx, 3
mov dword [eax + 0x48], edx
xor esi, ecx
mov ecx, dword [eax + 0xc]
add ebx, esi
add ebx, dword [eax + 0x30]
lea esi, [ebx + ecx]
mov ebx, edx
shr ebx, 0x13
mov ecx, edx
shl ecx, 0xd
or ebx, ecx
mov ecx, edx
shr ecx, 0x11
mov ebp, edx
shl ebp, 0xf
or ecx, ebp
xor ebx, ecx
mov ecx, dword [eax + 0x14]
mov ebp, ecx
shl ebp, 0xe
shr edx, 0xa
xor ebx, edx
mov edx, ecx
shr edx, 0x12
or edx, ebp
mov ebp, ecx
shr ecx, 7
shl ebp, 0x19
or ebp, ecx
mov ecx, dword [eax + 0x14]
xor edx, ebp
shr ecx, 3
xor edx, ecx
add ebx, dword [eax + 0x34]
mov ecx, dword [eax + 0x10]
add edx, ebx
add edx, ecx
mov ebx, esi
mov ecx, esi
shl ecx, 0xd
mov ebp, esi
shr ebx, 0x13
or ebx, ecx
mov ecx, esi
shl ebp, 0xf
mov dword [eax + 0x4c], esi
shr esi, 0xa
shr ecx, 0x11
or ecx, ebp
xor ebx, ecx
mov ecx, dword [eax + 0x18]
xor ebx, esi
mov esi, ecx
shr esi, 0x12
mov ebp, ecx
shl ebp, 0xe
or esi, ebp
mov ebp, ecx
shl ebp, 0x19
shr ecx, 7
or ebp, ecx
mov ecx, dword [eax + 0x18]
xor esi, ebp
add ebx, dword [eax + 0x38]
mov ebp, dword [eax + 0x14]
shr ecx, 3
xor esi, ecx
mov ecx, dword [eax + 0x1c]
add esi, ebx
add esi, ebp
mov dword [eax + 0x54], esi
mov esi, ecx
mov ebx, ecx
shl ebx, 0xe
shr esi, 0x12
or esi, ebx
mov ebx, ecx
mov dword [eax + 0x50], edx
shl ebx, 0x19
mov ebp, ecx
shr ecx, 3
shr ebp, 7
or ebx, ebp
xor esi, ebx
xor esi, ecx
mov ecx, edx
shr ecx, 0x13
mov ebx, edx
shl ebx, 0xd
or ecx, ebx
mov ebx, edx
mov ebp, edx
shl ebp, 0xf
shr ebx, 0x11
or ebx, ebp
mov ebp, dword [eax + 0x18]
xor ecx, ebx
shr edx, 0xa
xor ecx, edx
add esi, ebp
add ecx, esi
add ecx, edi
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x24]
add eax, 0x20
dec ecx
mov dword [esp + 0x24], ecx
jne 0x406570
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0xc]
mov esi, dword [ecx + 0x1c]
mov edi, dword [ecx + 8]
mov ebx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x24], esi
mov esi, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], 0
jmp 0x406842
mov ebx, dword [esp + 0x14]
mov ecx, ebx
shl ecx, 0x15
mov ebp, ebx
shr ebp, 0xb
or ecx, ebp
mov dword [esp + 0x10], ecx
mov ecx, ebx
shl ecx, 0x1a
mov ebp, ebx
shr ebp, 6
or ecx, ebp
xor dword [esp + 0x10], ecx
mov ecx, ebx
mov ebp, ebx
shr ecx, 0x19
shl ebp, 7
or ecx, ebp
mov ebp, dword [esp + 0x10]
xor ebp, ecx
mov ecx, dword [esp + 0x24]
and ecx, ebx
mov dword [esp + 0x10], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x18]
not ebp
and ebp, esi
xor ebp, ecx
mov ecx, dword [esp + 0x10]
add ecx, ebp
add ecx, dword [ebx + 0x414bf8]
mov ebp, dword [esp + ebx + 0x38]
mov ebx, dword [esp + 0x20]
add ecx, ebp
add ecx, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x10], ecx
mov ecx, ebx
xor ecx, edi
mov dword [esp + 0x34], ecx
mov ecx, ebx
and ecx, edi
mov dword [esp + 0x2c], ecx
mov ecx, edi
shl ecx, 0x13
mov ebx, edi
shr ebx, 0xd
or ecx, ebx
mov ebx, edi
shr ebx, 0x16
mov ebp, edi
shl ebp, 0xa
or ebx, ebp
xor ecx, ebx
mov ebx, edi
shl ebx, 0x1e
mov ebp, edi
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x2c]
xor ecx, ebx
mov ebx, dword [esp + 0x34]
and ebx, edx
xor ebx, ebp
add ecx, dword [esp + 0x10]
add ecx, ebx
mov ebx, eax
shl ebx, 0x15
mov ebp, eax
shr ebp, 0xb
or ebx, ebp
mov dword [esp + 0x10], ebx
mov ebx, eax
mov ebp, eax
shl ebx, 0x1a
mov dword [esp + 0x1c], ecx
shr ebp, 6
or ebx, ebp
xor dword [esp + 0x10], ebx
mov ebx, eax
shr ebx, 0x19
mov ebp, eax
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x10]
xor ebp, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x10], ebp
mov ebp, eax
not ebp
and ebp, ebx
mov ebx, dword [esp + 0x14]
and ebx, eax
xor ebp, ebx
mov ebx, dword [esp + 0x10]
add ebx, ebp
mov ebp, dword [esp + 0x18]
add ebx, dword [ebp + 0x414bfc]
add ebx, dword [esp + ebp + 0x3c]
mov ebp, ecx
add ebx, esi
add edx, ebx
mov dword [esp + 0x10], ebx
mov ebx, ecx
shl ebx, 0x13
mov esi, ecx
shr esi, 0xd
or ebx, esi
shl ebp, 0xa
mov esi, ecx
shr esi, 0x16
or esi, ebp
xor ebx, esi
mov esi, ecx
mov ebp, ecx
shr ebp, 2
shl esi, 0x1e
or esi, ebp
mov ebp, dword [esp + 0x2c]
xor ebx, esi
mov esi, dword [esp + 0x34]
and esi, ecx
add ebx, dword [esp + 0x10]
xor esi, ebp
add esi, ebx
mov ecx, edx
shl ecx, 0x15
mov ebx, edx
shr ebx, 0xb
or ecx, ebx
mov ebx, edx
shl ebx, 0x1a
mov ebp, edx
shr ebp, 6
or ebx, ebp
xor ecx, ebx
mov ebx, edx
shr ebx, 0x19
mov ebp, edx
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor ecx, ebx
mov ebx, edx
not ebx
and ebx, ebp
mov ebp, eax
and ebp, edx
xor ebx, ebp
add ecx, ebx
mov ebx, dword [esp + 0x18]
add ecx, dword [esp + ebx + 0x40]
add ecx, dword [ebx + 0x414c00]
add ecx, dword [esp + 0x24]
add dword [esp + 0x20], ecx
mov dword [esp + 0x10], ecx
mov ecx, esi
shl ecx, 0x13
mov ebx, esi
shr ebx, 0xd
or ecx, ebx
mov ebx, esi
shr ebx, 0x16
mov ebp, esi
shl ebp, 0xa
or ebx, ebp
xor ecx, ebx
mov ebx, esi
shl ebx, 0x1e
mov ebp, esi
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x1c]
xor ecx, ebx
mov ebx, esi
xor ebx, edi
and ebx, ebp
mov ebp, esi
and ebp, edi
xor ebx, ebp
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
add ecx, ebp
add ecx, ebx
mov ebx, edi
shl ebx, 0x15
mov ebp, edi
shr ebp, 0xb
or ebx, ebp
mov dword [esp + 0x10], ebx
mov ebx, edi
shl ebx, 0x1a
mov ebp, edi
shr ebp, 6
or ebx, ebp
xor dword [esp + 0x10], ebx
mov ebx, edi
shr ebx, 0x19
mov ebp, edi
shl ebp, 7
or ebx, ebp
mov ebp, dword [esp + 0x10]
xor ebp, ebx
mov ebx, edi
mov dword [esp + 0x10], ebp
not ebx
and ebx, eax
mov ebp, edx
and ebp, edi
mov edi, dword [esp + 0x10]
xor ebx, ebp
add edi, ebx
mov ebx, dword [esp + 0x18]
add edi, dword [esp + ebx + 0x44]
mov ebp, dword [ebx + 0x414c04]
mov ebx, dword [esp + 0x14]
add edi, ebp
mov ebp, dword [esp + 0x28]
add edi, ebx
add ebp, edi
mov dword [esp + 0x10], edi
mov edi, ecx
mov ebx, ecx
shr ebx, 0xd
shl edi, 0x13
or edi, ebx
mov dword [esp + 0x28], ebp
mov ebx, ecx
shr ebx, 0x16
mov ebp, ecx
shl ebp, 0xa
or ebx, ebp
xor edi, ebx
mov ebx, ecx
shl ebx, 0x1e
mov ebp, ecx
shr ebp, 2
or ebx, ebp
xor edi, ebx
mov ebp, dword [esp + 0x1c]
mov ebx, esi
xor ebx, ecx
and ebx, ebp
mov ebp, esi
and ebp, ecx
xor ebx, ebp
add edi, dword [esp + 0x10]
add ebx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov ebx, edi
shl ebx, 0x15
mov ebp, edi
shr ebp, 0xb
or ebx, ebp
mov dword [esp + 0x10], ebx
mov ebx, edi
shl ebx, 0x1a
mov ebp, edi
shr ebp, 6
or ebx, ebp
xor dword [esp + 0x10], ebx
mov ebx, edi
shr ebx, 0x19
mov ebp, edi
shl ebp, 7
or ebx, ebp
xor dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x20]
and ebp, edi
mov ebx, edi
mov edi, dword [esp + 0x10]
not ebx
and ebx, edx
xor ebx, ebp
add edi, ebx
mov ebx, dword [esp + 0x18]
add edi, dword [esp + ebx + 0x48]
add edi, dword [ebx + 0x414c08]
mov ebp, dword [esp + 0x1c]
add edi, eax
mov eax, dword [esp + 0x14]
add ebp, edi
mov dword [esp + 0x10], edi
mov edi, eax
shl edi, 0x13
mov ebx, eax
shr ebx, 0xd
or edi, ebx
mov dword [esp + 0x1c], ebp
mov ebx, eax
shr ebx, 0x16
mov ebp, eax
shl ebp, 0xa
or ebx, ebp
xor edi, ebx
mov ebx, eax
mov ebp, eax
shl ebx, 0x1e
shr ebp, 2
or ebx, ebp
xor edi, ebx
mov ebx, ecx
xor ebx, eax
and ebx, esi
mov ebp, ecx
and ebp, eax
xor ebx, ebp
add edi, dword [esp + 0x10]
add ebx, edi
mov edi, dword [esp + 0x1c]
mov eax, ebx
mov ebx, edi
shl ebx, 0x15
mov ebp, edi
shr ebp, 0xb
or ebx, ebp
mov dword [esp + 0x10], ebx
mov ebx, edi
shl ebx, 0x1a
mov ebp, edi
shr ebp, 6
or ebx, ebp
xor dword [esp + 0x10], ebx
mov ebx, edi
shr ebx, 0x19
mov ebp, edi
shl ebp, 7
or ebx, ebp
xor dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x20]
mov ebx, edi
not ebx
and ebx, ebp
and edi, dword [esp + 0x28]
xor ebx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
mov ebx, dword [esp + 0x18]
add edi, dword [esp + ebx + 0x4c]
add edi, dword [ebx + 0x414c0c]
add edi, edx
mov ebx, eax
shl ebx, 0x13
mov edx, eax
shr edx, 0xd
or ebx, edx
mov edx, eax
shr edx, 0x16
mov ebp, eax
shl ebp, 0xa
or edx, ebp
xor ebx, edx
mov edx, eax
shl edx, 0x1e
mov ebp, eax
shr ebp, 2
or edx, ebp
xor ebx, edx
mov edx, dword [esp + 0x14]
mov ebp, edx
xor ebp, eax
add ebx, edi
and ebp, ecx
and edx, eax
add esi, edi
xor ebp, edx
add ebp, ebx
mov edi, esi
mov ebx, esi
shr ebx, 0xb
shl edi, 0x15
or edi, ebx
mov edx, ebp
mov ebx, esi
shl ebx, 0x1a
mov ebp, esi
shr ebp, 6
or ebx, ebp
xor edi, ebx
mov ebx, esi
shr ebx, 0x19
mov ebp, esi
shl ebp, 7
or ebx, ebp
xor edi, ebx
mov ebp, dword [esp + 0x28]
mov ebx, esi
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x1c]
and ebp, esi
xor ebx, ebp
add edi, ebx
mov ebx, dword [esp + 0x18]
add edi, dword [esp + ebx + 0x50]
add edi, dword [ebx + 0x414c10]
add edi, dword [esp + 0x20]
add ecx, edi
mov dword [esp + 0x10], edi
mov edi, edx
shl edi, 0x13
mov ebx, edx
shr ebx, 0xd
or edi, ebx
mov ebx, edx
shr ebx, 0x16
mov ebp, edx
shl ebp, 0xa
or ebx, ebp
xor edi, ebx
mov ebx, edx
shl ebx, 0x1e
mov ebp, edx
shr ebp, 2
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor edi, ebx
mov ebx, eax
xor ebx, edx
and ebx, ebp
mov ebp, eax
and ebp, edx
xor ebx, ebp
add edi, dword [esp + 0x10]
add ebx, edi
mov edi, ecx
shl edi, 0x15
mov ebp, ecx
shr ebp, 0xb
or edi, ebp
mov dword [esp + 0x10], edi
mov edi, ecx
shl edi, 0x1a
mov ebp, ecx
shr ebp, 6
or edi, ebp
xor dword [esp + 0x10], edi
mov edi, ecx
shr edi, 0x19
mov ebp, ecx
shl ebp, 7
or edi, ebp
mov ebp, dword [esp + 0x10]
xor ebp, edi
mov edi, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebp
not edi
and edi, dword [esp + 0x1c]
mov ebp, esi
and ebp, ecx
mov ecx, dword [esp + 0x10]
xor edi, ebp
add ecx, edi
mov edi, dword [esp + 0x18]
add ecx, dword [esp + edi + 0x54]
mov ebp, dword [edi + 0x414c14]
mov edi, dword [esp + 0x28]
add ecx, ebp
mov ebp, dword [esp + 0x14]
add ecx, edi
add ebp, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
mov ecx, ebx
shl ecx, 0x13
mov edi, ebx
shr edi, 0xd
or ecx, edi
mov edi, ebx
shr edi, 0x16
mov ebp, ebx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, ebx
shl edi, 0x1e
mov ebp, ebx
shr ebp, 2
or edi, ebp
xor ecx, edi
mov edi, edx
xor edi, ebx
and edi, eax
mov ebp, edx
and ebp, ebx
xor edi, ebp
add ecx, dword [esp + 0x10]
add edi, ecx
mov ecx, dword [esp + 0x18]
add ecx, 0x20
cmp ecx, 0x100
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], ecx
jl 0x40683e
mov ecx, dword [esp + 0x30]
mov ebp, dword [ecx + 8]
add ebp, edi
mov edi, dword [ecx + 0xc]
add edi, ebx
mov dword [ecx + 0xc], edi
mov edi, dword [ecx + 0x10]
add edi, edx
mov edx, dword [ecx + 0x14]
add edx, eax
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x14]
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x18], eax
mov eax, dword [ecx + 0x1c]
add eax, edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ecx + 0x20]
add eax, esi
mov dword [ecx + 0x10], edi
pop edi
mov dword [ecx + 0x20], eax
mov eax, dword [ecx + 0x24]
pop esi
mov dword [ecx + 8], ebp
add eax, edx
pop ebp
mov dword [ecx + 0x24], eax
pop ebx
add esp, 0x128
ret 4