Function at 0x100c99d0
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0x40
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
xor ecx, eax
mov eax, dword [edx + 4]
push ebx
push ebp
push esi
mov esi, eax
ror esi, 8
and esi, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
xor esi, eax
mov eax, dword [edx + 8]
push edi
mov edi, eax
ror edi, 8
and edi, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
xor edi, eax
mov eax, dword [edx + 0xc]
mov ebp, eax
ror ebp, 8
and ebp, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
xor ebp, eax
mov eax, dword [esp + 0x5c]
add eax, 0xffffff80
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [esp + 0x1c], eax
shl eax, 4
mov edx, dword [eax + 0x10188ef8]
mov ebx, dword [eax + 0x10188efc]
xor edx, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x10188f00]
mov eax, dword [eax + 0x10188f04]
xor ecx, edi
xor eax, ebp
mov dword [esp + 0x14], edx
mov edx, ecx
mov dword [esp + 0x10], eax
mov eax, ecx
shr edx, 0x10
shr eax, 0x18
mov dword [esp + 0x24], esi
xor ebx, esi
movzx esi, dl
mov edx, dword [eax*4 + 0x10188f28]
xor edx, dword [esi*4 + 0x10189328]
mov eax, ecx
shr eax, 8
movzx ecx, cl
movzx eax, al
xor edx, dword [eax*4 + 0x10189728]
mov eax, dword [esp + 0x10]
xor edx, dword [ecx*4 + 0x10189b28]
mov ecx, eax
shr ecx, 0x18
mov esi, dword [ecx*4 + 0x10188f28]
mov dword [esp + 0x18], edx
mov edx, eax
shr edx, 0x10
mov dword [esp + 0x28], edi
mov ecx, eax
movzx edi, dl
xor esi, dword [edi*4 + 0x10189328]
shr ecx, 8
movzx ecx, cl
xor esi, dword [ecx*4 + 0x10189728]
mov dword [esp + 0x2c], ebp
movzx eax, al
xor esi, dword [eax*4 + 0x10189b28]
mov edi, dword [esp + 0x14]
mov eax, ebx
shr eax, 0x10
mov ecx, ebx
movzx eax, al
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x10188f28]
xor ecx, dword [eax*4 + 0x10189328]
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x10189728]
movzx eax, bl
xor ecx, dword [eax*4 + 0x10189b28]
mov edx, dword [esp + 0x18]
mov ebx, edi
shr ebx, 0x10
mov eax, edi
shr eax, 0x18
mov eax, dword [eax*4 + 0x10188f28]
movzx ebx, bl
xor eax, dword [ebx*4 + 0x10189328]
mov ebx, edi
shr ebx, 8
movzx edi, bl
xor eax, dword [edi*4 + 0x10189728]
movzx edi, byte [esp + 0x14]
xor eax, dword [edi*4 + 0x10189b28]
xor ecx, edx
xor edx, esi
xor eax, ecx
xor esi, ecx
xor edx, eax
xor ecx, edx
mov ebp, dword [esp + 0x5c]
ror edx, 0x10
mov edi, esi
ror edi, 8
and edi, 0xff00ff00
rol esi, 8
and esi, 0xff00ff
xor edi, esi
mov ebx, ecx
shr ebx, 8
mov esi, ecx
shl esi, 8
xor ebx, esi
and ebx, 0xff00ff
shl ecx, 8
xor ebx, ecx
xor ebx, edx
xor edx, edi
xor eax, ebx
xor edx, eax
xor edi, ebx
xor ebx, edx
cmp ebp, 0x80
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
jle 0x100c9c3f
mov edx, dword [esp + 0x54]
mov ecx, dword [edx + 0x10]
mov esi, ecx
ror esi, 8
and esi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
xor esi, ecx
mov ecx, dword [edx + 0x14]
mov edi, ecx
ror edi, 8
and edi, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
xor edi, ecx
cmp ebp, 0xc0
jle 0x100c9c39
mov ecx, dword [edx + 0x18]
mov ebp, ecx
ror ebp, 8
and ebp, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
xor ebp, ecx
mov ecx, dword [edx + 0x1c]
mov edx, ecx
ror edx, 8
and edx, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
xor edx, ecx
jmp 0x100c9c47
xor edx, edx
xor ebp, ebp
jmp 0x100c9c47
xor edx, edx
xor ebp, ebp
xor edi, edi
xor esi, esi
xor ebp, dword [esp + 0x18]
xor edx, dword [esp + 0x10]
xor esi, eax
mov eax, dword [esp + 0x1c]
xor edi, ebx
cmp eax, 2
jne 0x100c9c60
xor eax, eax
jmp 0x100c9c61
inc eax
mov dword [esp + 0x1c], eax
shl eax, 4
mov ecx, dword [eax + 0x10188ef8]
mov ebx, dword [eax + 0x10188f00]
xor ebx, ebp
xor ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x10188efc]
mov eax, dword [eax + 0x10188f04]
xor eax, edx
mov dword [esp + 0x10], eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor ecx, edi
mov dword [esp + 0x54], ecx
mov ecx, ebx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x10189728]
xor ecx, dword [eax*4 + 0x10189b28]
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x10188f28]
movzx eax, bl
xor ecx, dword [eax*4 + 0x10189328]
mov eax, dword [esp + 0x10]
mov ebx, eax
shr eax, 0x10
movzx eax, al
shr ebx, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [ebx*4 + 0x10189728]
mov ebx, dword [esp + 0x18]
xor eax, dword [ebx*4 + 0x10189b28]
mov ebx, dword [esp + 0x10]
shr ebx, 8
movzx ebx, bl
xor eax, dword [ebx*4 + 0x10188f28]
movzx ebx, byte [esp + 0x10]
xor eax, dword [ebx*4 + 0x10189328]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov ebx, eax
shr eax, 0x10
movzx eax, al
shr ebx, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [ebx*4 + 0x10189728]
mov ebx, dword [esp + 0x18]
xor eax, dword [ebx*4 + 0x10189b28]
mov ebx, dword [esp + 0x54]
shr ebx, 8
movzx ebx, bl
xor eax, dword [ebx*4 + 0x10188f28]
movzx ebx, byte [esp + 0x54]
xor eax, dword [ebx*4 + 0x10189328]
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov ebx, eax
shr eax, 0x10
movzx eax, al
shr ebx, 0x18
xor ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [ebx*4 + 0x10189728]
mov ebx, dword [esp + 0x18]
xor eax, dword [ebx*4 + 0x10189b28]
mov ebx, dword [esp + 0x14]
shr ebx, 8
movzx ebx, bl
xor eax, dword [ebx*4 + 0x10188f28]
movzx ebx, byte [esp + 0x14]
xor eax, dword [ebx*4 + 0x10189328]
mov ebx, dword [esp + 0x10]
xor eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
xor ebx, eax
mov dword [esp + 0x10], ebx
xor ecx, dword [esp + 0x14]
xor eax, ecx
mov dword [esp + 0x54], eax
mov eax, ebx
shr eax, 8
shl ebx, 8
xor eax, ebx
mov ebx, dword [esp + 0x10]
and eax, 0xff00ff
shl ebx, 8
xor eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, ebx
ror eax, 8
and eax, 0xff00ff00
rol ebx, 8
and ebx, 0xff00ff
xor eax, ebx
mov ebx, dword [esp + 0x14]
xor eax, ecx
xor ecx, dword [esp + 0x10]
xor dword [esp + 0x10], eax
mov dword [esp + 0x54], eax
ror ebx, 0x10
xor ebx, eax
mov eax, ebx
xor ecx, eax
xor eax, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x14]
mov eax, ecx
xor eax, dword [esp + 0x54]
xor ecx, dword [esp + 0x28]
xor eax, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
xor dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], ecx
cmp eax, 2
jne 0x100c9e5b
xor eax, eax
jmp 0x100c9e5c
inc eax
shl eax, 4
xor ecx, dword [eax + 0x10188f00]
xor ebx, dword [eax + 0x10188ef8]
mov dword [esp + 0x14], ebx
mov ebx, dword [eax + 0x10188efc]
xor dword [esp + 0x54], ebx
mov eax, dword [eax + 0x10188f04]
xor dword [esp + 0x10], eax
mov ebx, ecx
mov eax, ecx
shr eax, 0x18
shr ebx, 0x10
movzx ebx, bl
mov dword [esp + 0x1c], ebx
mov ebx, dword [eax*4 + 0x10188f28]
mov eax, dword [esp + 0x1c]
xor ebx, dword [eax*4 + 0x10189328]
mov eax, ecx
movzx ecx, cl
shr eax, 8
movzx eax, al
xor ebx, dword [eax*4 + 0x10189728]
mov eax, dword [esp + 0x10]
xor ebx, dword [ecx*4 + 0x10189b28]
mov ecx, eax
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x1c], eax
mov eax, dword [ecx*4 + 0x10188f28]
mov ecx, dword [esp + 0x1c]
xor eax, dword [ecx*4 + 0x10189328]
mov ecx, dword [esp + 0x10]
shr ecx, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x10189728]
movzx ecx, byte [esp + 0x10]
xor eax, dword [ecx*4 + 0x10189b28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov ecx, eax
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x1c], eax
mov eax, dword [ecx*4 + 0x10188f28]
mov ecx, dword [esp + 0x1c]
xor eax, dword [ecx*4 + 0x10189328]
mov ecx, dword [esp + 0x54]
shr ecx, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x10189728]
movzx ecx, byte [esp + 0x54]
xor eax, dword [ecx*4 + 0x10189b28]
mov ecx, dword [esp + 0x14]
xor eax, ebx
xor ebx, dword [esp + 0x10]
xor dword [esp + 0x10], eax
mov dword [esp + 0x18], ebx
mov ebx, ecx
shr ecx, 0x10
movzx ecx, cl
shr ebx, 0x18
mov dword [esp + 0x54], ecx
mov ecx, dword [ebx*4 + 0x10188f28]
mov ebx, dword [esp + 0x54]
xor ecx, dword [ebx*4 + 0x10189328]
mov ebx, dword [esp + 0x14]
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x10189728]
movzx ebx, byte [esp + 0x14]
xor ecx, dword [ebx*4 + 0x10189b28]
mov ebx, dword [esp + 0x18]
xor ecx, eax
xor ebx, ecx
xor eax, ebx
ror ebx, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
mov ebx, ecx
ror ebx, 8
and ebx, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
xor ebx, ecx
mov dword [esp + 0x10], ebx
mov ecx, eax
shr ecx, 8
mov ebx, eax
shl ebx, 8
xor ecx, ebx
mov ebx, dword [esp + 0x18]
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
xor ecx, ebx
xor ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor eax, ecx
xor ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, esi
xor ebx, eax
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x18]
mov eax, edi
xor eax, ebx
xor eax, ecx
mov dword [esp + 0x44], eax
mov eax, ebp
xor eax, ebx
mov dword [esp + 0x48], eax
mov eax, edx
xor eax, dword [esp + 0x10]
mov ebx, esi
xor eax, ecx
mov dword [esp + 0x4c], eax
mov ecx, edx
shl ecx, 0xd
mov eax, esi
shr eax, 0x13
xor ecx, eax
xor ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov dword [eax], ecx
shl ebx, 0xd
mov ecx, edi
shr ecx, 0x13
xor ecx, ebx
xor ecx, dword [esp + 0x24]
mov ebx, edi
mov dword [eax + 4], ecx
shl ebx, 0xd
mov ecx, ebp
shr ecx, 0x13
xor ecx, ebx
xor ecx, dword [esp + 0x28]
mov ebx, ebp
mov dword [eax + 8], ecx
shl ebx, 0xd
mov ecx, edx
shr ecx, 0x13
xor ecx, ebx
xor ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x3c]
shl ecx, 0xd
shr ebx, 0x13
xor ecx, ebx
mov ebx, dword [esp + 0x30]
xor ecx, esi
add eax, 0x10
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
shr ecx, 0x13
shl ebx, 0xd
xor ecx, ebx
xor ecx, edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 0x13
mov ebx, dword [esp + 0x34]
shl ebx, 0xd
xor ecx, ebx
xor ecx, ebp
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
shr ecx, 0x13
mov ebx, dword [esp + 0x38]
shl ebx, 0xd
xor ecx, ebx
xor ecx, edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x4c]
shl ecx, 0xd
mov ebx, dword [esp + 0x40]
shr ebx, 0x13
xor ecx, ebx
xor ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x44]
shr ecx, 0x13
shl ebx, 0xd
xor ecx, ebx
xor ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x44]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x48]
shr ecx, 0x13
add eax, 0x10
shl ebx, 0xd
xor ecx, ebx
xor ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
shr ecx, 0x13
shl ebx, 0xd
xor ecx, ebx
xor ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 0xd
shr ebx, 0x13
xor ecx, ebx
xor ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0x13
add eax, 0x10
shl ebx, 0xd
xor ecx, ebx
xor ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x13
shl ebx, 0xd
xor ecx, ebx
xor ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 0x13
shl ebx, 0xd
xor ecx, ebx
xor ecx, dword [esp + 0x4c]
mov ebx, esi
mov dword [eax + 0xc], ecx
shr ebx, 0x1f
lea ecx, [edx + edx]
xor ecx, ebx
xor ecx, dword [esp + 0x20]
add eax, 0x10
mov dword [eax], ecx
mov ecx, edi
shr ecx, 0x1f
lea ebx, [esi + esi]
xor ecx, ebx
xor ecx, dword [esp + 0x24]
lea ebx, [edi + edi]
mov dword [eax + 4], ecx
mov ecx, ebp
shr ecx, 0x1f
xor ecx, ebx
xor ecx, dword [esp + 0x28]
lea ebx, [ebp + ebp]
mov dword [eax + 8], ecx
mov ecx, edx
shr ecx, 0x1f
xor ecx, ebx
xor ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x3c]
add ecx, ecx
shr ebx, 0x1f
xor ecx, ebx
xor ecx, esi
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
shr ecx, 0x1f
add ebx, ebx
xor ecx, ebx
mov ebx, dword [esp + 0x34]
xor ecx, edi
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 0x1f
add eax, 0x10
add ebx, ebx
xor ecx, ebx
mov ebx, dword [esp + 0x38]
xor ecx, ebp
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
shr ecx, 0x1f
add ebx, ebx
xor ecx, ebx
mov ebx, dword [esp + 0x40]
xor ecx, edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x4c]
add ecx, ecx
shr ebx, 0x1f
xor ecx, ebx
xor ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x44]
shr ecx, 0x1f
add eax, 0x10
add ebx, ebx
xor ecx, ebx
xor ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
shr ecx, 0x1f
add ebx, ebx
xor ecx, ebx
xor ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
shr ecx, 0x1f
add ebx, ebx
xor ecx, ebx
xor ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x2c]
add ecx, ecx
shr ebx, 0x1f
xor ecx, ebx
add eax, 0x10
xor ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0x1f
mov ebx, dword [esp + 0x20]
add ebx, ebx
xor ecx, ebx
xor ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x1f
add ebx, ebx
xor ecx, ebx
xor ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 0x1f
add ebx, ebx
xor ecx, ebx
xor ecx, dword [esp + 0x4c]
mov ebx, ebp
mov dword [eax + 0xc], ecx
shr ebx, 3
mov ecx, edi
shl ecx, 0x1d
xor ecx, ebx
xor ecx, dword [esp + 0x20]
add eax, 0x10
mov dword [eax], ecx
mov ecx, ebp
shl ecx, 0x1d
mov ebx, edx
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x24]
mov ebx, esi
mov dword [eax + 4], ecx
shr ebx, 3
mov ecx, edx
shl ecx, 0x1d
xor ecx, ebx
xor ecx, dword [esp + 0x28]
mov ebx, edi
mov dword [eax + 8], ecx
shr ebx, 3
mov ecx, esi
shl ecx, 0x1d
xor ecx, ebx
xor ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x34]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
mov ebx, dword [esp + 0x3c]
xor ecx, esi
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x38]
shl ecx, 0x1d
add eax, 0x10
shr ebx, 3
xor ecx, ebx
mov ebx, dword [esp + 0x30]
xor ecx, edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
mov ebx, dword [esp + 0x34]
xor ecx, ebp
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x30]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, edx
mov dword [eax + 0xc], ecx
add eax, 0x10
mov ecx, dword [esp + 0x44]
shl ecx, 0x1d
mov ebx, dword [esp + 0x48]
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
shr ecx, 3
shl ebx, 0x1d
xor ecx, ebx
xor ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x40]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x28]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x20]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x2c]
add eax, 0x10
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x24]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x20]
shl ecx, 0x1d
shr ebx, 3
xor ecx, ebx
xor ecx, dword [esp + 0x4c]
mov ebx, edi
mov dword [eax + 0xc], ecx
shr ebx, 1
mov ecx, esi
shl ecx, 0x1f
xor ecx, ebx
xor ecx, dword [esp + 0x20]
add eax, 0x10
mov dword [eax], ecx
mov ecx, edi
shl ecx, 0x1f
mov ebx, ebp
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x24]
mov ebx, edx
mov dword [eax + 4], ecx
mov ecx, ebp
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov ecx, edx
shl ecx, 0x1f
mov ebx, esi
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x2c]
add eax, 0x10
cmp dword [esp + 0x5c], 0x80
mov dword [eax - 4], ecx
jle 0x100ca53d
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
mov ebx, dword [esp + 0x3c]
xor ecx, edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
mov ebx, dword [esp + 0x30]
xor ecx, ebp
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
mov ebx, dword [esp + 0x44]
xor ecx, edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x40]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x48]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x44]
shl ecx, 0x1f
add eax, 0x10
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
shr ecx, 1
shl ebx, 0x1f
xor ecx, ebx
xor ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x3c]
add eax, 0x10
mov dword [eax - 4], ecx
cmp dword [esp + 0x5c], 0xc0
jle 0x100ca5e8
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 0x1f
shr ebx, 1
xor ecx, ebx
xor ecx, dword [esp + 0x4c]
mov ebx, esi
mov dword [eax + 0xc], ecx
mov ecx, edi
shr ecx, 0xd
shl ebx, 0x13
xor ecx, ebx
xor ecx, dword [esp + 0x20]
add eax, 0x10
mov dword [eax], ecx
mov ecx, ebp
shr ecx, 0xd
shl edi, 0x13
xor ecx, edi
xor ecx, dword [esp + 0x24]
shl ebp, 0x13
mov dword [eax + 4], ecx
mov ecx, edx
shr ecx, 0xd
shl edx, 0x13
shr esi, 0xd
xor ecx, ebp
xor ecx, dword [esp + 0x28]
xor edx, esi
xor edx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x5c]
add eax, 0x100
cdq
pop edi
and edx, 0x1f
pop esi
add eax, edx
pop ebp
sar eax, 5
pop ebx
add esp, 0x40
ret